patches for v124
This commit is contained in:
@@ -246,7 +246,6 @@ Remove-support-for-device-memory-and-cpu-recovery.patch
|
||||
Log-dangling-attributes-in-some-html-elements.patch
|
||||
Keep-Side-Panel-Companion-disabled.patch
|
||||
Lock-Profile-Cookie-Database.patch
|
||||
Show-warnings-on-downloads-over-HTTP.patch
|
||||
Compress-libchrome-to-free-up-some-space.patch
|
||||
Cromite-Branding.patch
|
||||
Disable-Feeback-Collector.patch
|
||||
|
||||
@@ -23,21 +23,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/android/chrome_java_sources.gni | 2 +
|
||||
.../java/res/xml/incognito_preferences.xml | 37 ++++
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +
|
||||
.../AlwaysIncognitoLinkInterceptor.java | 53 ++++++
|
||||
.../AlwaysIncognitoLinkInterceptor.java | 54 ++++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 22 ++-
|
||||
.../chrome/browser/app/ChromeActivity.java | 4 +
|
||||
.../AppMenuPropertiesDelegateImpl.java | 27 ++-
|
||||
.../AppMenuPropertiesDelegateImpl.java | 28 ++-
|
||||
.../ChromeContextMenuPopulator.java | 7 +-
|
||||
.../CustomTabActivityLifecycleUmaTracker.java | 31 ----
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 4 +
|
||||
.../CustomTabIntentDataProvider.java | 5 +-
|
||||
.../browser/download/DownloadUtils.java | 16 +-
|
||||
.../history/HistoryContentManager.java | 7 +-
|
||||
.../browser/history/HistoryManager.java | 26 ++-
|
||||
.../chrome/browser/history/HistoryPage.java | 15 ++
|
||||
.../browser/history/HistoryManager.java | 27 ++-
|
||||
.../chrome/browser/history/HistoryPage.java | 16 ++
|
||||
.../native_page/NativePageFactory.java | 4 +-
|
||||
.../chrome/browser/ntp/RecentTabsManager.java | 28 ++-
|
||||
.../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++
|
||||
.../privacy/settings/IncognitoSettings.java | 161 ++++++++++++++++++
|
||||
.../browser/settings/SettingsActivity.java | 4 +
|
||||
.../HistoricalTabModelObserver.java | 5 +-
|
||||
.../tab/tab_restore/HistoricalTabSaver.java | 2 +-
|
||||
@@ -85,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../add-an-always-incognito-mode.inc | 3 +
|
||||
.../add-an-always-incognito-mode.inc | 1 +
|
||||
net/base/file_stream_context.cc | 2 +-
|
||||
66 files changed, 770 insertions(+), 101 deletions(-)
|
||||
66 files changed, 775 insertions(+), 101 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
|
||||
@@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognito
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
@@ -0,0 +1,53 @@
|
||||
@@ -0,0 +1,54 @@
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
@@ -199,6 +199,7 @@ new file mode 100644
|
||||
+import org.chromium.components.user_prefs.UserPrefs;
|
||||
+import org.chromium.components.prefs.PrefService;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.chrome.browser.preferences.Pref;
|
||||
+import org.chromium.base.Log;
|
||||
+
|
||||
@@ -222,7 +223,7 @@ new file mode 100644
|
||||
+ }
|
||||
+
|
||||
+ public static void setAlwaysIncognito(boolean enabled) {
|
||||
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .setBoolean(Pref.ALWAYS_INCOGNITO_ENABLED, enabled);
|
||||
+
|
||||
+ SharedPreferences.Editor sharedPreferenceEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
@@ -232,7 +233,7 @@ new file mode 100644
|
||||
+
|
||||
+ public static void migrateSettingToNative() {
|
||||
+ if (isAlwaysIncognito()) {
|
||||
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+ if (!prefService.getBoolean(Pref.ALWAYS_INCOGNITO_ENABLED)) {
|
||||
+ Log.i(TAG, "Pref migration from java to native");
|
||||
+ prefService.setBoolean(Pref.ALWAYS_INCOGNITO_ENABLED, true);
|
||||
@@ -263,7 +264,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
- mTabModelSelector.getTabModelFilterProvider().getTabModelFilter(false));
|
||||
-
|
||||
+ boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
|
||||
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+ boolean historyEnabledInIncognito =
|
||||
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ if ((alwaysIncognito && historyEnabledInIncognito) || !alwaysIncognito) {
|
||||
@@ -310,15 +311,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
@@ -37,6 +37,7 @@ import org.chromium.base.supplier.OneshotSupplier;
|
||||
@@ -37,6 +37,8 @@ import org.chromium.base.supplier.OneshotSupplier;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
|
||||
import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
|
||||
import org.chromium.chrome.browser.commerce.ShoppingFeatures;
|
||||
@@ -99,6 +100,10 @@ import java.util.ArrayList;
|
||||
@@ -99,6 +101,10 @@ import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
@@ -329,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
/**
|
||||
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
|
||||
* items based on activity state.
|
||||
@@ -593,6 +598,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -593,6 +599,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
||||
@@ -343,14 +345,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
// We have to iterate all menu items since same menu item ID may be associated with more
|
||||
// than one menu items.
|
||||
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
|
||||
@@ -656,7 +668,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -656,7 +669,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
if (item.getItemId() == R.id.recent_tabs_menu_id) {
|
||||
- item.setVisible(!isIncognito);
|
||||
+ if (always_incognito) {
|
||||
+ PrefService prefService =
|
||||
+ UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+ boolean historyEnabledInIncognito =
|
||||
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ item.setVisible(historyEnabledInIncognito);
|
||||
@@ -360,7 +362,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
}
|
||||
if (item.getItemId() == R.id.menu_select_tabs) {
|
||||
item.setVisible(isMenuSelectTabsVisible);
|
||||
@@ -865,8 +885,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -865,8 +886,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
&& !isChromeScheme
|
||||
&& !isFileScheme
|
||||
&& !isContentScheme
|
||||
@@ -523,7 +525,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
|
||||
- if (tab.isIncognito()) return false;
|
||||
+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
|
||||
+ if (always_incognito) {
|
||||
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+ boolean historyEnabledInIncognito =
|
||||
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ if (historyEnabledInIncognito == false)
|
||||
@@ -561,19 +563,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
||||
@@ -23,6 +23,7 @@ import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
import org.chromium.base.IntentUtils;
|
||||
import org.chromium.base.supplier.ObservableSupplier;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.base.supplier.ObservableSupplierImpl;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.R;
|
||||
@@ -50,6 +51,12 @@ import org.chromium.ui.base.Clipboard;
|
||||
@@ -50,6 +50,14 @@ import org.chromium.ui.base.Clipboard;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.components.prefs.PrefService;
|
||||
+import org.chromium.components.user_prefs.UserPrefs;
|
||||
@@ -582,7 +578,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
/** Combines and manages the different UI components of browsing history. */
|
||||
public class HistoryManager
|
||||
implements OnMenuItemClickListener,
|
||||
@@ -140,7 +147,7 @@ public class HistoryManager
|
||||
@@ -140,7 +148,7 @@ public class HistoryManager
|
||||
|
||||
mUmaRecorder.recordOpenHistory();
|
||||
// If incognito placeholder is shown, we don't need to create History UI elements.
|
||||
@@ -591,7 +587,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
mSelectableListLayout = null;
|
||||
mRootView = getIncognitoHistoryPlaceholderView();
|
||||
return;
|
||||
@@ -349,9 +356,22 @@ public class HistoryManager
|
||||
@@ -349,9 +357,22 @@ public class HistoryManager
|
||||
onBackPressStateChanged();
|
||||
}
|
||||
|
||||
@@ -600,7 +596,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
+ public boolean shouldShowIncognitoPlaceholder() {
|
||||
+ if (mIsIncognito &&
|
||||
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
|
||||
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+ boolean historyEnabledInIncognito =
|
||||
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ if (historyEnabledInIncognito) return false;
|
||||
@@ -615,7 +611,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
// If Incognito placeholder is shown no need to call any destroy method.
|
||||
return;
|
||||
}
|
||||
@@ -407,7 +427,7 @@ public class HistoryManager
|
||||
@@ -407,7 +428,7 @@ public class HistoryManager
|
||||
* @return True if manager handles this event, false if it decides to ignore.
|
||||
*/
|
||||
private boolean onBackPressed() {
|
||||
@@ -627,19 +623,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
|
||||
@@ -9,6 +9,7 @@ import android.net.Uri;
|
||||
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
@@ -16,6 +17,12 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
|
||||
@@ -16,6 +16,14 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
|
||||
import org.chromium.chrome.browser.ui.native_page.NativePageHost;
|
||||
import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.components.prefs.PrefService;
|
||||
+import org.chromium.components.user_prefs.UserPrefs;
|
||||
@@ -648,13 +638,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
/** Native page for managing browsing history. */
|
||||
public class HistoryPage extends BasicNativePage {
|
||||
private HistoryManager mHistoryManager;
|
||||
@@ -41,6 +48,14 @@ public class HistoryPage extends BasicNativePage {
|
||||
@@ -41,6 +49,14 @@ public class HistoryPage extends BasicNativePage {
|
||||
String url) {
|
||||
super(host);
|
||||
|
||||
+ if (profile.isOffTheRecord() &&
|
||||
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
|
||||
+ PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+ boolean historyEnabledInIncognito =
|
||||
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
|
||||
+ if (historyEnabledInIncognito == true) profile = profile.getOriginalProfile();
|
||||
@@ -740,7 +730,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
|
||||
@@ -0,0 +1,160 @@
|
||||
@@ -0,0 +1,161 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -776,6 +766,7 @@ new file mode 100644
|
||||
+import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.preferences.Pref;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
|
||||
@@ -799,7 +790,7 @@ new file mode 100644
|
||||
+ private static final String PREF_INCOGNITO_TAB_HISTORY = "incognito_history";
|
||||
+ private static final String PREF_INCOGNITO_SAVE_SITE_SETTING = "incognito_save_site_setting";
|
||||
+
|
||||
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ private final PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+
|
||||
+ @Override
|
||||
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
|
||||
@@ -79,14 +79,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../android/permissions_android_strings.grd | 17 ++++
|
||||
.../geolocation_permission_context_android.cc | 34 ++++++--
|
||||
.../geolocation_permission_context_android.h | 13 ++-
|
||||
.../permissions/permission_context_base.cc | 54 ++++++++++--
|
||||
.../permissions/permission_context_base.cc | 52 ++++++++++--
|
||||
.../permissions/permission_context_base.h | 23 +++++-
|
||||
components/permissions/permission_prompt.h | 3 +-
|
||||
components/permissions/permission_request.cc | 30 ++++++-
|
||||
components/permissions/permission_request.h | 16 +++-
|
||||
.../permissions/permission_request_manager.cc | 45 ++++++----
|
||||
.../permissions/permission_request_manager.h | 11 ++-
|
||||
34 files changed, 489 insertions(+), 62 deletions(-)
|
||||
34 files changed, 488 insertions(+), 61 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
|
||||
--- a/chrome/browser/permissions/last_tab_standing_tracker.cc
|
||||
@@ -106,12 +106,12 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br
|
||||
+ ContentSettingsType type) {
|
||||
+ ContentSettingsForOneType session_settings =
|
||||
+ content_settings->GetSettingsForOneType(
|
||||
+ type, content_settings::SessionModel::UserSession);
|
||||
+ type, content_settings::mojom::SessionModel::USER_SESSION);
|
||||
+
|
||||
+ GURL url = origin.GetURL();
|
||||
+ for (ContentSettingPatternSource& entry : session_settings) {
|
||||
+ if (content_settings::IsConstraintSessionExpiration(entry,
|
||||
+ mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) &&
|
||||
+ content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) &&
|
||||
+ entry.primary_pattern.Matches(url)) {
|
||||
+ content_settings->SetWebsiteSettingCustomScope(
|
||||
+ entry.primary_pattern, entry.secondary_pattern,
|
||||
@@ -153,12 +153,12 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome
|
||||
+ ContentSettingsType type) {
|
||||
+ ContentSettingsForOneType session_settings =
|
||||
+ content_settings->GetSettingsForOneType(
|
||||
+ type, content_settings::SessionModel::UserSession);
|
||||
+ type, content_settings::mojom::SessionModel::USER_SESSION);
|
||||
+
|
||||
+ GURL url = origin.GetURL();
|
||||
+ for (ContentSettingPatternSource& entry : session_settings) {
|
||||
+ if (content_settings::IsConstraintSessionExpiration(entry,
|
||||
+ mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) &&
|
||||
+ content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) &&
|
||||
+ entry.primary_pattern.Matches(url)) {
|
||||
+ content_settings->SetWebsiteSettingCustomScope(
|
||||
+ entry.primary_pattern, entry.secondary_pattern,
|
||||
@@ -233,7 +233,7 @@ diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b
|
||||
|
||||
void EmbeddedPermissionPrompt::AllowThisTime() {
|
||||
- delegate_->AcceptThisTime();
|
||||
+ delegate_->AcceptThisTime(mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
CloseCurrentViewAndMaybeShowNext(/*first_prompt=*/false);
|
||||
}
|
||||
|
||||
@@ -245,7 +245,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v
|
||||
return;
|
||||
case PermissionDialogButton::kAcceptOnce:
|
||||
- delegate_->AcceptThisTime();
|
||||
+ delegate_->AcceptThisTime(mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
return;
|
||||
case PermissionDialogButton::kDeny:
|
||||
delegate_->Deny();
|
||||
@@ -320,37 +320,37 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
|
||||
return constraints.session_model() == mojom::SessionModel::DURABLE;
|
||||
}
|
||||
|
||||
+ContentSettingConstraints GetConstraintSessionExpiration(mojom::LifetimeMode lifetime_mode) {
|
||||
+ContentSettingConstraints GetConstraintSessionExpiration(content_settings::mojom::LifetimeMode lifetime_mode) {
|
||||
+ int lifetime;
|
||||
+ base::Time now;
|
||||
+ if (lifetime_mode == mojom::LifetimeMode::ONLY_THIS_TIME) {
|
||||
+ if (lifetime_mode == content_settings::mojom::LifetimeMode::ONLY_THIS_TIME) {
|
||||
+ // note: this content settings will be discarded immediately
|
||||
+ // 1h is used as a magic constant to identify the one-time lifetime mode
|
||||
+ lifetime = 1;
|
||||
+ } else if (lifetime_mode == mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) {
|
||||
+ } else if (lifetime_mode == content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED) {
|
||||
+ now = base::Time::Now();
|
||||
+ lifetime = 24;
|
||||
+ } else {
|
||||
+ lifetime = 0;
|
||||
+ }
|
||||
+ mojom::ContentSettingConstraints c(now);
|
||||
+ ContentSettingConstraints c(now);
|
||||
+ c.set_lifetime(base::Hours(lifetime));
|
||||
+ c.set_session_model(mojom::SessionModel::USER_SESSION);
|
||||
+ return c;
|
||||
+}
|
||||
+
|
||||
+bool IsConstraintSessionExpiration(const ContentSettingPatternSource& source,
|
||||
+ mojom::LifetimeMode lifetime_mode) {
|
||||
+ if (source.metadata.session_model() != content_settings::SessionModel::UserSession)
|
||||
+ content_settings::mojom::LifetimeMode lifetime_mode) {
|
||||
+ if (source.metadata.session_model() != content_settings::mojom::SessionModel::USER_SESSION)
|
||||
+ return false;
|
||||
+
|
||||
+ LifetimeMode type;
|
||||
+ mojom::LifetimeMode type;
|
||||
+ if (source.metadata.lifetime() == base::Hours(24)) {
|
||||
+ type = mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED;
|
||||
+ type = content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED;
|
||||
+ } else if (source.metadata.expiration() == (base::Time() + base::Hours(1))) {
|
||||
+ type = mojom::LifetimeMode::ONLY_THIS_TIME;
|
||||
+ type = content_settings::mojom::LifetimeMode::ONLY_THIS_TIME;
|
||||
+ } else {
|
||||
+ type = mojom::LifetimeMode::UNTIL_BROWSER_CLOSED;
|
||||
+ type = content_settings::mojom::LifetimeMode::UNTIL_BROWSER_CLOSED;
|
||||
+ }
|
||||
+
|
||||
+ return lifetime_mode == type;
|
||||
@@ -366,11 +366,11 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b
|
||||
// Returns whether the given type supports tracking last_visit timestamps.
|
||||
bool CanTrackLastVisit(ContentSettingsType type);
|
||||
|
||||
+ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode);
|
||||
+ContentSettingConstraints GetConstraintSessionExpiration(mojom::LifetimeMode lifetime_mode);
|
||||
+
|
||||
+bool IsConstraintSessionExpiration(
|
||||
+ const ContentSettingPatternSource& source,
|
||||
+ LifetimeMode lifetime_mode);
|
||||
+ mojom::LifetimeMode lifetime_mode);
|
||||
+
|
||||
// Get a timestamp with week-precision.
|
||||
base::Time GetCoarseVisitedTime(base::Time time);
|
||||
@@ -385,7 +385,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo
|
||||
+
|
||||
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.content_settings
|
||||
+// GENERATED_JAVA_CLASS_NAME_OVERRIDE: LifetimeMode
|
||||
+enum class LifetimeMode {
|
||||
+enum LifetimeMode {
|
||||
+ ALWAYS = 99,
|
||||
+ ONLY_THIS_TIME = 1,
|
||||
+ UNTIL_ORIGIN_CLOSED = 2,
|
||||
@@ -498,7 +498,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
|
||||
(info.metadata.session_model() ==
|
||||
content_settings::mojom::SessionModel::ONE_TIME);
|
||||
+ permission_info.is_user_session =
|
||||
+ (info.metadata.session_model() == content_settings::SessionModel::UserSession);
|
||||
+ (info.metadata.session_model() == content_settings::mojom::SessionModel::USER_SESSION);
|
||||
|
||||
auto* page_specific_content_settings = GetPageSpecificContentSettings();
|
||||
if (page_specific_content_settings && setting == CONTENT_SETTING_ALLOW) {
|
||||
@@ -667,10 +667,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
|
||||
void PermissionDialogDelegate::Accept(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
CHECK(permission_prompt_);
|
||||
+ mojom::LifetimeMode lifetimeOption =
|
||||
+ static_cast<mojom::LifetimeMode>(
|
||||
+ content_settings::mojom::LifetimeMode lifetimeOption =
|
||||
+ static_cast<content_settings::mojom::LifetimeMode>(
|
||||
+ java_delegate_->GetSelectedLifetimeOption());
|
||||
+ if (lifetimeOption != mojom::LifetimeMode::ALWAYS) {
|
||||
+ if (lifetimeOption != content_settings::mojom::LifetimeMode::ALWAYS) {
|
||||
+ permission_prompt_->AcceptThisTime(lifetimeOption);
|
||||
+ return;
|
||||
+ }
|
||||
@@ -682,8 +682,8 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
CHECK(permission_prompt_);
|
||||
- permission_prompt_->AcceptThisTime();
|
||||
+ mojom::LifetimeMode lifetimeOption =
|
||||
+ static_cast<mojom::LifetimeMode>(
|
||||
+ content_settings::mojom::LifetimeMode lifetimeOption =
|
||||
+ static_cast<content_settings::mojom::LifetimeMode>(
|
||||
+ java_delegate_->GetSelectedLifetimeOption());
|
||||
+ permission_prompt_->AcceptThisTime(lifetimeOption);
|
||||
}
|
||||
@@ -691,10 +691,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
|
||||
void PermissionDialogDelegate::Cancel(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
CHECK(permission_prompt_);
|
||||
+ mojom::LifetimeMode lifetimeOption =
|
||||
+ static_cast<mojom::LifetimeMode>(
|
||||
+ content_settings::mojom::LifetimeMode lifetimeOption =
|
||||
+ static_cast<content_settings::mojom::LifetimeMode>(
|
||||
+ java_delegate_->GetSelectedLifetimeOption());
|
||||
+ if (lifetimeOption != mojom::LifetimeMode::ALWAYS) {
|
||||
+ if (lifetimeOption != content_settings::mojom::LifetimeMode::ALWAYS) {
|
||||
+ permission_prompt_->DenyThisTime(lifetimeOption);
|
||||
+ return;
|
||||
+ }
|
||||
@@ -721,11 +721,11 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_
|
||||
|
||||
-void PermissionPromptAndroid::AcceptThisTime() {
|
||||
- delegate_->AcceptThisTime();
|
||||
+void PermissionPromptAndroid::AcceptThisTime(mojom::LifetimeMode lifetimeOption) {
|
||||
+void PermissionPromptAndroid::AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption) {
|
||||
+ delegate_->AcceptThisTime(lifetimeOption);
|
||||
+}
|
||||
+
|
||||
+void PermissionPromptAndroid::DenyThisTime(mojom::LifetimeMode lifetimeOption) {
|
||||
+void PermissionPromptAndroid::DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption) {
|
||||
+ delegate_->DenyThisTime(lifetimeOption);
|
||||
}
|
||||
|
||||
@@ -738,9 +738,9 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_
|
||||
void Closing();
|
||||
void Accept();
|
||||
- void AcceptThisTime();
|
||||
+ void AcceptThisTime(mojom::LifetimeMode lifetimeOption);
|
||||
+ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption);
|
||||
void Deny();
|
||||
+ void DenyThisTime(mojom::LifetimeMode lifetimeOption);
|
||||
+ void DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption);
|
||||
void SetManageClicked();
|
||||
void SetLearnMoreClicked();
|
||||
bool ShouldCurrentRequestUseQuietUI();
|
||||
@@ -780,7 +780,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
DCHECK(is_final_decision);
|
||||
+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin,
|
||||
+ std::move(callback), persist, content_setting, is_one_time, is_final_decision,
|
||||
+ mojom::LifetimeMode::ALWAYS);
|
||||
+ content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
+}
|
||||
|
||||
+void GeolocationPermissionContextAndroid::NotifyPermissionSetWithLifetime(
|
||||
@@ -791,7 +791,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
+ bool persist,
|
||||
+ ContentSetting content_setting,
|
||||
+ bool is_one_time, bool is_final_decision,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
|
||||
if (content_setting == CONTENT_SETTING_ALLOW &&
|
||||
!location_settings_->IsSystemLocationSettingEnabled()) {
|
||||
@@ -836,7 +836,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
bool persist,
|
||||
ContentSetting content_setting,
|
||||
- bool is_one_time,
|
||||
+ bool is_one_time, mojom::LifetimeMode lifetime_option,
|
||||
+ bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option,
|
||||
LocationSettingsDialogOutcome prompt_outcome) {
|
||||
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
|
||||
if (prompt_outcome == GRANTED) {
|
||||
@@ -856,7 +856,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
ContentSetting content_setting,
|
||||
- bool is_one_time) {
|
||||
- GeolocationPermissionContext::NotifyPermissionSet(
|
||||
+ bool is_one_time, mojom::LifetimeMode lifetime_option) {
|
||||
+ bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
+ GeolocationPermissionContext::NotifyPermissionSetWithLifetime(
|
||||
id, requesting_origin, embedding_origin, std::move(callback), persist,
|
||||
- content_setting, is_one_time, /*is_final_decision=*/true);
|
||||
@@ -879,7 +879,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
+ ContentSetting content_setting,
|
||||
+ bool is_one_time,
|
||||
+ bool is_final_decision,
|
||||
+ mojom::LifetimeMode lifetime_option) override;
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) override;
|
||||
content::PermissionResult UpdatePermissionStatusWithDeviceStatus(
|
||||
content::PermissionResult result,
|
||||
const GURL& requesting_origin,
|
||||
@@ -887,7 +887,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
bool persist,
|
||||
ContentSetting content_setting,
|
||||
bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option,
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option,
|
||||
LocationSettingsDialogOutcome prompt_outcome);
|
||||
|
||||
void FinishNotifyPermissionSet(const PermissionRequestID& id,
|
||||
@@ -897,7 +897,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
ContentSetting content_setting,
|
||||
- bool is_one_time);
|
||||
+ bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
|
||||
std::unique_ptr<LocationSettings> location_settings_;
|
||||
|
||||
@@ -928,7 +928,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
bool is_one_time,
|
||||
- bool is_final_decision) {
|
||||
+ bool is_final_decision,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
|
||||
content_setting == CONTENT_SETTING_BLOCK ||
|
||||
content_setting == CONTENT_SETTING_DEFAULT);
|
||||
@@ -958,7 +958,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
+ DCHECK(is_one_time == false);
|
||||
+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, std::move(callback),
|
||||
+ persist, content_setting, is_one_time, is_final_decision,
|
||||
+ mojom::LifetimeMode::ALWAYS);
|
||||
+ content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
+}
|
||||
+
|
||||
+void PermissionContextBase::NotifyPermissionSetWithLifetime(
|
||||
@@ -970,7 +970,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
+ ContentSetting content_setting,
|
||||
+ bool is_one_time,
|
||||
+ bool is_final_decision,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
||||
if (persist) {
|
||||
@@ -980,26 +980,23 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
}
|
||||
|
||||
if (is_final_decision) {
|
||||
@@ -612,15 +641,26 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
@@ -612,6 +641,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
const GURL& embedding_origin,
|
||||
ContentSetting content_setting,
|
||||
bool is_one_time) {
|
||||
+ UpdateContentSetting(requesting_origin, embedding_origin, content_setting,
|
||||
+ is_one_time, mojom::LifetimeMode::ALWAYS);
|
||||
+ is_one_time, content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
+}
|
||||
+
|
||||
+void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
+ const GURL& embedding_origin,
|
||||
+ ContentSetting content_setting,
|
||||
+ bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
|
||||
DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
|
||||
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
|
||||
content_setting == CONTENT_SETTING_BLOCK);
|
||||
|
||||
- content_settings::ContentSettingConstraints constraints;
|
||||
+ mojom::ContentSettingConstraints constraints;
|
||||
@@ -621,6 +659,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
constraints.set_session_model(
|
||||
is_one_time ? content_settings::mojom::SessionModel::ONE_TIME
|
||||
: content_settings::mojom::SessionModel::DURABLE);
|
||||
@@ -1023,7 +1020,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
|
||||
+ ContentSetting content_setting,
|
||||
+ bool is_one_time,
|
||||
+ bool is_final_decision,
|
||||
+ mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
virtual void NotifyPermissionSet(const PermissionRequestID& id,
|
||||
const GURL& requesting_origin,
|
||||
const GURL& embedding_origin,
|
||||
@@ -1035,7 +1032,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
|
||||
+ const GURL& embedding_origin,
|
||||
+ ContentSetting content_setting,
|
||||
+ bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
virtual void UpdateContentSetting(const GURL& requesting_origin,
|
||||
const GURL& embedding_origin,
|
||||
ContentSetting content_setting,
|
||||
@@ -1058,7 +1055,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
|
||||
bool is_one_time,
|
||||
- bool is_final_decision);
|
||||
+ bool is_final_decision,
|
||||
+ mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
|
||||
void NotifyObservers(const ContentSettingsPattern& primary_pattern,
|
||||
const ContentSettingsPattern& secondary_pattern,
|
||||
@@ -1070,9 +1067,9 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions
|
||||
|
||||
virtual void Accept() = 0;
|
||||
- virtual void AcceptThisTime() = 0;
|
||||
+ virtual void AcceptThisTime(mojom::LifetimeMode lifetime_option) = 0;
|
||||
+ virtual void AcceptThisTime(content_settings::mojom::LifetimeMode lifetime_option) = 0;
|
||||
virtual void Deny() = 0;
|
||||
+ virtual void DenyThisTime(mojom::LifetimeMode lifetime_option) = 0;
|
||||
+ virtual void DenyThisTime(content_settings::mojom::LifetimeMode lifetime_option) = 0;
|
||||
virtual void Dismiss() = 0;
|
||||
virtual void Ignore() = 0;
|
||||
|
||||
@@ -1100,7 +1097,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
|
||||
|
||||
-void PermissionRequest::PermissionGranted(bool is_one_time) {
|
||||
+void PermissionRequest::PermissionGranted(bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
+ if (permission_decided_callback_withlifetime_) {
|
||||
+ std::move(permission_decided_callback_withlifetime_)
|
||||
+ .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, lifetime_option);
|
||||
@@ -1113,7 +1110,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
|
||||
|
||||
-void PermissionRequest::PermissionDenied() {
|
||||
+void PermissionRequest::PermissionDenied(bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
+ if (permission_decided_callback_withlifetime_) {
|
||||
+ std::move(permission_decided_callback_withlifetime_)
|
||||
+ .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, lifetime_option);
|
||||
@@ -1128,7 +1125,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
|
||||
+ if (permission_decided_callback_withlifetime_) {
|
||||
+ std::move(permission_decided_callback_withlifetime_)
|
||||
+ .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision,
|
||||
+ mojom::LifetimeMode::ALWAYS);
|
||||
+ content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
+ return;
|
||||
+ }
|
||||
if (permission_decided_callback_) {
|
||||
@@ -1144,7 +1141,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
|
||||
+ using PermissionDecidedCallbackWithLifetime =
|
||||
+ base::OnceCallback<void(ContentSetting /*result*/, bool /*is_one_time*/,
|
||||
+ bool /*is_final_decision*/,
|
||||
+ mojom::LifetimeMode /*lifetime_option*/)>;
|
||||
+ content_settings::mojom::LifetimeMode /*lifetime_option*/)>;
|
||||
+
|
||||
// `permission_decided_callback` is called when the permission request is
|
||||
// resolved by the user (see comment on PermissionDecidedCallback above).
|
||||
@@ -1165,11 +1162,11 @@ diff --git a/components/permissions/permission_request.h b/components/permission
|
||||
// |origin| are closed or navigated away from, and then the permission will
|
||||
// automatically expire after 1 day.
|
||||
- void PermissionGranted(bool is_one_time);
|
||||
+ void PermissionGranted(bool is_one_time, mojom::LifetimeMode lifetime_option);
|
||||
+ void PermissionGranted(bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option);
|
||||
|
||||
// Called when the user has denied the requested permission.
|
||||
- void PermissionDenied();
|
||||
+ void PermissionDenied(bool is_one_time, mojom::LifetimeMode lifetime_option);
|
||||
+ void PermissionDenied(bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option);
|
||||
|
||||
// Called when the user has cancelled the permission request. This
|
||||
// corresponds to a denial, but is segregated in case the context needs to
|
||||
@@ -1191,7 +1188,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kDenyPermissionPrompts)) {
|
||||
- request->PermissionDenied();
|
||||
+ request->PermissionDenied(/*is_one_time*/false, mojom::LifetimeMode::ALWAYS);
|
||||
+ request->PermissionDenied(/*is_one_time*/false, content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
request->RequestFinished();
|
||||
return;
|
||||
}
|
||||
@@ -1200,7 +1197,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
if (url::Origin::Create(request->requesting_origin()) ==
|
||||
auto_approval_origin.value()) {
|
||||
- request->PermissionGranted(/*is_one_time=*/false);
|
||||
+ request->PermissionGranted(/*is_one_time=*/false, mojom::LifetimeMode::ALWAYS);
|
||||
+ request->PermissionGranted(/*is_one_time=*/false, content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
}
|
||||
request->RequestFinished();
|
||||
return;
|
||||
@@ -1210,7 +1207,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
PermissionGrantedIncludingDuplicates(*requests_iter,
|
||||
- /*is_one_time=*/false);
|
||||
+ /*is_one_time=*/false,
|
||||
+ mojom::LifetimeMode::ALWAYS);
|
||||
+ content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
std::optional<ContentSettingsType> content_settings_type =
|
||||
@@ -1219,7 +1216,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
}
|
||||
|
||||
-void PermissionRequestManager::AcceptThisTime() {
|
||||
+void PermissionRequestManager::AcceptThisTime(mojom::LifetimeMode mode) {
|
||||
+void PermissionRequestManager::AcceptThisTime(content_settings::mojom::LifetimeMode mode) {
|
||||
if (ignore_callbacks_from_prompt_)
|
||||
return;
|
||||
DCHECK(view_);
|
||||
@@ -1237,15 +1234,15 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
}
|
||||
|
||||
void PermissionRequestManager::Deny() {
|
||||
+ Deny_(/*is_one_time*/ false, mojom::LifetimeMode::ALWAYS);
|
||||
+ Deny_(/*is_one_time*/ false, content_settings::mojom::LifetimeMode::ALWAYS);
|
||||
+}
|
||||
+
|
||||
+void PermissionRequestManager::DenyThisTime(mojom::LifetimeMode mode) {
|
||||
+void PermissionRequestManager::DenyThisTime(content_settings::mojom::LifetimeMode mode) {
|
||||
+ Deny_(/*is_one_time*/ true, mode);
|
||||
+}
|
||||
+
|
||||
+void PermissionRequestManager::Deny_(bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option) {
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
if (ignore_callbacks_from_prompt_)
|
||||
return;
|
||||
DCHECK(view_);
|
||||
@@ -1263,7 +1260,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
|
||||
PermissionRequest* request,
|
||||
- bool is_one_time) {
|
||||
+ bool is_one_time, mojom::LifetimeMode lifetime_option) {
|
||||
+ bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
DCHECK_EQ(1ul, base::ranges::count(requests_, request) +
|
||||
pending_permission_requests_.Count(request))
|
||||
<< "Only requests in [pending_permission_]requests_ can have duplicates";
|
||||
@@ -1272,7 +1269,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
VisitDuplicateRequests(
|
||||
base::BindRepeating(
|
||||
- [](bool is_one_time,
|
||||
+ [](bool is_one_time, mojom::LifetimeMode lifetime_option,
|
||||
+ [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option,
|
||||
const base::WeakPtr<PermissionRequest>& weak_request) {
|
||||
- weak_request->PermissionGranted(is_one_time);
|
||||
+ weak_request->PermissionGranted(is_one_time, lifetime_option);
|
||||
@@ -1284,7 +1281,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
|
||||
void PermissionRequestManager::PermissionDeniedIncludingDuplicates(
|
||||
- PermissionRequest* request) {
|
||||
+ PermissionRequest* request, bool is_one_time, mojom::LifetimeMode lifetime_option) {
|
||||
+ PermissionRequest* request, bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
DCHECK_EQ(1ul, base::ranges::count(requests_, request) +
|
||||
pending_permission_requests_.Count(request))
|
||||
<< "Only requests in [pending_permission_]requests_ can have duplicates";
|
||||
@@ -1295,7 +1292,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
- [](const base::WeakPtr<PermissionRequest>& weak_request) {
|
||||
- weak_request->PermissionDenied();
|
||||
- }),
|
||||
+ [](bool is_one_time, mojom::LifetimeMode lifetime_option, const base::WeakPtr<PermissionRequest>& weak_request) {
|
||||
+ [](bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option, const base::WeakPtr<PermissionRequest>& weak_request) {
|
||||
+ weak_request->PermissionDenied(is_one_time, lifetime_option);
|
||||
+ }, is_one_time, lifetime_option),
|
||||
request);
|
||||
@@ -1306,7 +1303,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
|
||||
switch (auto_response_for_test_) {
|
||||
case ACCEPT_ONCE:
|
||||
- AcceptThisTime();
|
||||
+ AcceptThisTime(mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
+ AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME);
|
||||
break;
|
||||
case ACCEPT_ALL:
|
||||
Accept();
|
||||
@@ -1318,10 +1315,10 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
|
||||
GURL GetEmbeddingOrigin() const override;
|
||||
void Accept() override;
|
||||
- void AcceptThisTime() override;
|
||||
+ void AcceptThisTime(mojom::LifetimeMode lifetime_option) override;
|
||||
+ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetime_option) override;
|
||||
void Deny() override;
|
||||
+ void Deny_(bool is_one_time, mojom::LifetimeMode lifetime_option);
|
||||
+ void DenyThisTime(mojom::LifetimeMode lifetime_option) override;
|
||||
+ void Deny_(bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option);
|
||||
+ void DenyThisTime(content_settings::mojom::LifetimeMode lifetime_option) override;
|
||||
void Dismiss() override;
|
||||
void Ignore() override;
|
||||
void FinalizeCurrentRequests() override;
|
||||
@@ -1331,12 +1328,12 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
|
||||
void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
|
||||
- bool is_one_time);
|
||||
+ bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
// Calls PermissionDenied on a request and all its duplicates.
|
||||
- void PermissionDeniedIncludingDuplicates(PermissionRequest* request);
|
||||
+ void PermissionDeniedIncludingDuplicates(PermissionRequest* request,
|
||||
+ bool is_one_time,
|
||||
+ mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
// Calls Cancelled on a request and all its duplicates.
|
||||
void CancelledIncludingDuplicates(PermissionRequest* request,
|
||||
bool is_final_decision = true);
|
||||
|
||||
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/bookmark_bar_strings.grdp | 6 ++
|
||||
.../bookmarks/browser/bookmark_codec.cc | 20 +++++-
|
||||
components/bookmarks/browser/bookmark_codec.h | 7 +-
|
||||
.../browser/bookmark_load_details.cc | 8 ++-
|
||||
.../browser/bookmark_load_details.cc | 14 +++-
|
||||
.../bookmarks/browser/bookmark_load_details.h | 2 +
|
||||
.../bookmarks/browser/bookmark_model.cc | 3 +-
|
||||
components/bookmarks/browser/bookmark_model.h | 7 ++
|
||||
@@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/bookmarks/browser/bookmark_uuids.h | 1 +
|
||||
components/bookmarks/browser/model_loader.cc | 8 ++-
|
||||
.../bookmark_specifics_conversions.cc | 1 +
|
||||
22 files changed, 234 insertions(+), 14 deletions(-)
|
||||
22 files changed, 240 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -585,7 +585,26 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
||||
|
||||
CHECK_EQ(kNumDefaultTopLevelPermanentFolders, root_node_->children().size());
|
||||
}
|
||||
@@ -105,8 +107,8 @@ void BookmarkLoadDetails::AddManagedNode(
|
||||
@@ -86,6 +88,10 @@ void BookmarkLoadDetails::PopulateNodeIdsForLocalOrSyncablePermanentNodes() {
|
||||
if (mobile_folder_node_->id() == 0) {
|
||||
mobile_folder_node_->set_id(max_id_++);
|
||||
}
|
||||
+
|
||||
+ if (tabs_collection_folder_node_->id() == 0) {
|
||||
+ tabs_collection_folder_node_->set_id(max_id_++);
|
||||
+ }
|
||||
}
|
||||
|
||||
void BookmarkLoadDetails::AddManagedNode(
|
||||
@@ -98,6 +104,7 @@ void BookmarkLoadDetails::AddManagedNode(
|
||||
CHECK_NE(bb_node_->id(), 0);
|
||||
CHECK_NE(other_folder_node_->id(), 0);
|
||||
CHECK_NE(mobile_folder_node_->id(), 0);
|
||||
+ CHECK_NE(tabs_collection_folder_node_->id(), 0);
|
||||
|
||||
has_managed_node_ = true;
|
||||
root_node_->Add(std::move(managed_node));
|
||||
@@ -105,8 +112,8 @@ void BookmarkLoadDetails::AddManagedNode(
|
||||
|
||||
void BookmarkLoadDetails::CreateIndices() {
|
||||
local_or_syncable_uuid_index_.insert(root_node_.get());
|
||||
@@ -596,6 +615,14 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/
|
||||
for (const auto& child : root_node_->children()) {
|
||||
if (child.get() == account_bb_node_ ||
|
||||
child.get() == account_other_folder_node_ ||
|
||||
@@ -125,6 +132,7 @@ void BookmarkLoadDetails::ResetPermanentNodePointers() {
|
||||
bb_node_ = nullptr;
|
||||
other_folder_node_ = nullptr;
|
||||
mobile_folder_node_ = nullptr;
|
||||
+ tabs_collection_folder_node_ = nullptr;
|
||||
account_bb_node_ = nullptr;
|
||||
account_other_folder_node_ = nullptr;
|
||||
account_mobile_folder_node_ = nullptr;
|
||||
diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h
|
||||
--- a/components/bookmarks/browser/bookmark_load_details.h
|
||||
+++ b/components/bookmarks/browser/bookmark_load_details.h
|
||||
|
||||
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
@@ -574,6 +574,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -575,6 +575,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
|
||||
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
|
||||
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
|
||||
|
||||
@@ -1284,6 +1285,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -1285,6 +1286,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Subject: Add option to force tablet UI
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../settings/AccessibilitySettings.java | 11 +++++++++++
|
||||
.../settings/AccessibilitySettings.java | 12 ++++++++++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++
|
||||
.../browser/tasks/ReturnToChromeUtil.java | 4 +++-
|
||||
.../chrome/browser/ui/RootUiCoordinator.java | 5 ++++-
|
||||
@@ -16,14 +16,22 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../strings/android_chrome_strings.grd | 7 +++++++
|
||||
components/BUILD.gn | 6 +++---
|
||||
.../res/xml/accessibility_preferences.xml | 5 +++++
|
||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||
.../AccessibilitySettingsDelegate.java | 11 +++++++++++
|
||||
.../chromium/ui/base/DeviceFormFactor.java | 6 ++++++
|
||||
14 files changed, 72 insertions(+), 6 deletions(-)
|
||||
14 files changed, 82 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -46,6 +46,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.image_descriptions.ImageDescriptionsControlle
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
|
||||
import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate;
|
||||
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
|
||||
import org.chromium.components.browser_ui.accessibility.FontSizePrefs;
|
||||
import org.chromium.components.browser_ui.accessibility.FontSizePrefs.FontSizePrefsObserver;
|
||||
import org.chromium.components.browser_ui.accessibility.PageZoomPreference;
|
||||
@@ -46,6 +47,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
public static final String PREF_ZOOM_INFO = "zoom_info";
|
||||
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
|
||||
|
||||
@@ -33,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -143,6 +146,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -143,6 +147,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mPrefService.getBoolean(Pref.READER_FOR_ACCESSIBILITY));
|
||||
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
@@ -46,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -214,6 +223,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -214,6 +224,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
|
||||
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
||||
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
|
||||
@@ -255,7 +263,23 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
@@ -26,6 +26,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -11,6 +11,15 @@ import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
* embedder-specific logic.
|
||||
*/
|
||||
public interface AccessibilitySettingsDelegate {
|
||||
+ /** An interface to control a single boolean preference. */
|
||||
+ interface BooleanPreferenceDelegate {
|
||||
+ /** @return whether the preference is enabled. */
|
||||
+ boolean isEnabled();
|
||||
+
|
||||
+ /** Called when the preference value is changed. */
|
||||
+ void setEnabled(boolean value);
|
||||
+ }
|
||||
+
|
||||
/** An interface to control a single integer preference. */
|
||||
interface IntegerPreferenceDelegate {
|
||||
/** @return int - Current value of the preference of this instance. */
|
||||
@@ -26,6 +35,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
/** @return The BrowserContextHandle that should be used to read and update settings. */
|
||||
BrowserContextHandle getBrowserContextHandle();
|
||||
|
||||
|
||||
@@ -9,10 +9,9 @@ Add DuckDuckGo Lite
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 31 +++++++++++++++++++
|
||||
.../search_engine_countries-inc.cc | 2 ++
|
||||
.../search_engine_countries-inc.cc | 3 ++
|
||||
.../search_engines/search_engine_type.h | 5 +++
|
||||
.../template_url_prepopulate_data.cc | 1 +
|
||||
4 files changed, 39 insertions(+)
|
||||
3 files changed, 39 insertions(+)
|
||||
|
||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
||||
--- a/components/search_engines/prepopulated_engines.json
|
||||
@@ -65,7 +64,15 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
|
||||
diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc
|
||||
--- a/components/search_engines/search_engine_countries-inc.cc
|
||||
+++ b/components/search_engines/search_engine_countries-inc.cc
|
||||
@@ -1443,5 +1443,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
@@ -33,6 +33,7 @@ struct EngineAndTier {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
constexpr EngineAndTier engines_default[] = {
|
||||
+ {SearchEngineTier::kTopEngines, &googleen},
|
||||
{SearchEngineTier::kTopEngines, &google},
|
||||
{SearchEngineTier::kTopEngines, &bing},
|
||||
{SearchEngineTier::kTopEngines, &yahoo},
|
||||
@@ -1443,5 +1444,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
for (size_t i = 0; i < num_engines; i++) {
|
||||
t_url.push_back(engines[i]);
|
||||
}
|
||||
@@ -92,15 +99,4 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
|
||||
// Enum to record the type of search engine a user used in keyword mode. This
|
||||
// should be kept aligned with the `OmniboxBuiltinEngineType` enum in enums.xml.
|
||||
// Entries should not be renumbered and numeric values should never be reused.
|
||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -100,6 +100,7 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLData(
|
||||
std::vector<EngineAndTier> engines =
|
||||
GetPrepopulationSetFromCountryID(country_id);
|
||||
for (const EngineAndTier& engine : engines) {
|
||||
+ {SearchEngineTier::kTopEngines, &googleen},
|
||||
if (engine.tier == SearchEngineTier::kTopEngines) {
|
||||
t_urls.push_back(
|
||||
TemplateURLDataFromPrepopulatedEngine(*engine.search_engine));
|
||||
--
|
||||
|
||||
@@ -24,12 +24,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../settings_localized_strings_provider.cc | 1 +
|
||||
.../core/browsing_data_policies_utils.cc | 20 ++---
|
||||
.../core/browsing_data_policies_utils.h | 11 +++
|
||||
.../browsing_data/core/browsing_data_utils.cc | 34 +++++++++
|
||||
.../browsing_data/core/browsing_data_utils.cc | 31 ++++++++
|
||||
.../core/clear_browsing_data_tab.h | 2 +-
|
||||
components/browsing_data/core/pref_names.cc | 17 +++++
|
||||
components/browsing_data/core/pref_names.h | 10 +++
|
||||
content/browser/storage_partition_impl.cc | 1 +
|
||||
25 files changed, 312 insertions(+), 17 deletions(-)
|
||||
25 files changed, 309 insertions(+), 17 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
@@ -496,7 +496,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
}
|
||||
this.clearButtonDisabled_ =
|
||||
this.getSelectedDataTypes_(page as HTMLElement).length === 0;
|
||||
+ if ((tab as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true;
|
||||
+ if ((page as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -583,7 +583,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp
|
||||
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
|
||||
--- a/components/browsing_data/core/browsing_data_utils.cc
|
||||
+++ b/components/browsing_data/core/browsing_data_utils.cc
|
||||
@@ -318,6 +318,40 @@ bool GetDeletionPreferenceFromDataType(
|
||||
@@ -318,6 +318,37 @@ bool GetDeletionPreferenceFromDataType(
|
||||
BrowsingDataType data_type,
|
||||
ClearBrowsingDataTab clear_browsing_data_tab,
|
||||
std::string* out_pref) {
|
||||
@@ -595,7 +595,7 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
|
||||
+ case BrowsingDataType::CACHE:
|
||||
+ *out_pref = prefs::kDeleteCacheAtStart;
|
||||
+ return true;
|
||||
+ case BrowsingDataType::COOKIES:
|
||||
+ case BrowsingDataType::SITE_DATA:
|
||||
+ *out_pref = prefs::kDeleteCookiesAtStart;
|
||||
+ return true;
|
||||
+ case BrowsingDataType::PASSWORDS:
|
||||
@@ -604,8 +604,6 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
|
||||
+ case BrowsingDataType::FORM_DATA:
|
||||
+ *out_pref = prefs::kDeleteFormDataAtStart;
|
||||
+ return true;
|
||||
+ case BrowsingDataType::BOOKMARKS:
|
||||
+ return false;
|
||||
+ case BrowsingDataType::SITE_SETTINGS:
|
||||
+ *out_pref = prefs::kDeleteSiteSettingsAtStart;
|
||||
+ return true;
|
||||
@@ -615,8 +613,7 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b
|
||||
+ case BrowsingDataType::HOSTED_APPS_DATA:
|
||||
+ *out_pref = prefs::kDeleteHostedAppsDataAtStart;
|
||||
+ return true;
|
||||
+ case BrowsingDataType::NUM_TYPES:
|
||||
+ NOTREACHED(); // This is not an actual type.
|
||||
+ case BrowsingDataType::TABS:
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
@@ -48,7 +48,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -52,6 +52,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -53,6 +53,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
|
||||
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
||||
|
||||
@@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -165,6 +168,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -166,6 +169,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
|
||||
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
@@ -71,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -250,6 +259,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -251,6 +260,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
|
||||
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
|
||||
mDelegate.requestRestart(getActivity());
|
||||
@@ -84,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -117,6 +117,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -118,6 +118,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
mSnackbarManager.showSnackbar(mSnackbar);
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
@@ -29,6 +29,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -38,6 +38,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
|
||||
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co
|
||||
|
||||
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ absl::optional<FeatureConfig> config = FeatureConfig();
|
||||
+ std::optional<FeatureConfig> config = FeatureConfig();
|
||||
+ config->valid = false;
|
||||
+ return config;
|
||||
+ }
|
||||
|
||||
@@ -36,7 +36,7 @@ Enabled by default
|
||||
.../platform/graphics/bitmap_image_metrics.h | 4 +-
|
||||
.../renderer/platform/image-decoders/BUILD.gn | 9 +
|
||||
.../platform/image-decoders/image_decoder.cc | 23 +
|
||||
.../image-decoders/jxl/jxl_image_decoder.cc | 683 ++++++++++++++++++
|
||||
.../image-decoders/jxl/jxl_image_decoder.cc | 684 ++++++++++++++++++
|
||||
.../image-decoders/jxl/jxl_image_decoder.h | 123 ++++
|
||||
.../jxl/jxl_image_decoder_test.cc | 626 ++++++++++++++++
|
||||
.../blink/tools/commit_stats/git-dirs.txt | 1 +
|
||||
@@ -58,7 +58,7 @@ Enabled by default
|
||||
.../libjxl/gen_headers/jxl/jxl_export.h | 11 +
|
||||
tools/metrics/histograms/enums.xml | 1 +
|
||||
.../histograms/metadata/blink/enums.xml | 2 +-
|
||||
53 files changed, 1995 insertions(+), 17 deletions(-)
|
||||
53 files changed, 1996 insertions(+), 17 deletions(-)
|
||||
create mode 100644 build/linux/unbundle/libjxl.gn
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-support-to-jxl.inc
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-support-to-jxl.inc
|
||||
@@ -765,7 +765,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_de
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc
|
||||
@@ -0,0 +1,683 @@
|
||||
@@ -0,0 +1,684 @@
|
||||
+// Copyright 2021 The Chromium Authors
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
@@ -815,11 +815,12 @@ new file mode 100644
|
||||
+ // The input ColorProfile owns the buffer memory, make a new copy for
|
||||
+ // the newly created one and pass the ownership of the new copy to the new
|
||||
+ // color profile.
|
||||
+ std::unique_ptr<uint8_t[]> owned_buffer(
|
||||
+ new uint8_t[buffer_donor.GetProfile()->size]);
|
||||
+ memcpy(owned_buffer.get(), buffer_donor.GetProfile()->buffer,
|
||||
+ buffer_donor.GetProfile()->size);
|
||||
+ new_profile.buffer = owned_buffer.get();
|
||||
+ auto owned_buffer = base::HeapArray<uint8_t>::Uninit(buffer_donor.GetProfile()->size);
|
||||
+ owned_buffer.copy_from(
|
||||
+ base::span<const uint8_t>(
|
||||
+ static_cast<const uint8_t*>(buffer_donor.GetProfile()->buffer),
|
||||
+ buffer_donor.GetProfile()->size));
|
||||
+ new_profile.buffer = std::move(owned_buffer.data());
|
||||
+ return std::make_unique<ColorProfile>(new_profile, std::move(owned_buffer));
|
||||
+}
|
||||
+} // namespace
|
||||
|
||||
@@ -8,18 +8,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/android/chrome_java_sources.gni | 1 -
|
||||
.../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +----
|
||||
chrome/browser/BUILD.gn | 6 ------
|
||||
chrome/browser/about_flags.cc | 2 ++
|
||||
.../browser/extensions/api/settings_private/prefs_util.cc | 2 ++
|
||||
chrome/browser/profiles/profile_impl.cc | 4 ++++
|
||||
chrome/browser/profiles/profile_manager.cc | 4 ++++
|
||||
chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++
|
||||
chrome/browser/ui/webui/management/management_ui_handler.cc | 2 ++
|
||||
components/supervised_user/buildflags.gni | 6 +-----
|
||||
.../core/browser/supervised_user_pref_store.cc | 1 +
|
||||
.../core/browser/supervised_user_preferences.cc | 2 +-
|
||||
.../supervised_user/core/browser/supervised_user_utils.cc | 4 ++++
|
||||
components/supervised_user/core/common/features.cc | 1 +
|
||||
components/supervised_user/core/common/pref_names.h | 4 ++++
|
||||
.../core/common/supervised_user_constants.cc | 2 ++
|
||||
15 files changed, 28 insertions(+), 18 deletions(-)
|
||||
16 files changed, 30 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
@@ -88,6 +89,25 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
"sync/glue/synced_tab_delegate_android.cc",
|
||||
"sync/glue/synced_tab_delegate_android.h",
|
||||
"sync/glue/synced_window_delegate_android.cc",
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -7886,6 +7886,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
{"enable-family-link-extensions-permissions",
|
||||
flag_descriptions::
|
||||
kEnableExtensionsPermissionsForSupervisedUsersOnDesktopName,
|
||||
@@ -7895,6 +7896,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(
|
||||
supervised_user::
|
||||
kEnableExtensionsPermissionsForSupervisedUsersOnDesktop)},
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
{"notification-scheduler", flag_descriptions::kNotificationSchedulerName,
|
||||
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
@@ -208,6 +228,17 @@ diff --git a/components/supervised_user/buildflags.gni b/components/supervised_u
|
||||
- is_ios || is_linux || is_mac || is_win
|
||||
+ enable_supervised_users = false
|
||||
}
|
||||
diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
||||
--- a/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
||||
+++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc
|
||||
@@ -126,6 +126,7 @@ SupervisedUserPrefStore::~SupervisedUserPrefStore() {}
|
||||
|
||||
void SupervisedUserPrefStore::OnNewSettingsAvailable(
|
||||
const base::Value::Dict& settings) {
|
||||
+ if ((true)) return;
|
||||
std::unique_ptr<PrefValueMap> old_prefs = std::move(prefs_);
|
||||
prefs_ = std::make_unique<PrefValueMap>();
|
||||
if (!settings.empty()) {
|
||||
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||
@@ -239,15 +270,6 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/
|
||||
}
|
||||
|
||||
bool EmitLogRecordHistograms(
|
||||
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
|
||||
--- a/components/supervised_user/core/common/features.cc
|
||||
+++ b/components/supervised_user/core/common/features.cc
|
||||
@@ -119,4 +119,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
|
||||
return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites);
|
||||
}
|
||||
|
||||
+SET_CROMITE_FEATURE_DISABLED(kForceGoogleSafeSearchForSupervisedUsers);
|
||||
} // namespace supervised_user
|
||||
diff --git a/components/supervised_user/core/common/pref_names.h b/components/supervised_user/core/common/pref_names.h
|
||||
--- a/components/supervised_user/core/common/pref_names.h
|
||||
+++ b/components/supervised_user/core/common/pref_names.h
|
||||
|
||||
@@ -263,7 +263,7 @@ diff --git a/url/url_constants.h b/url/url_constants.h
|
||||
inline constexpr char16_t kDataScheme16[] = u"data";
|
||||
inline constexpr char kFileScheme[] = "file";
|
||||
inline constexpr char16_t kFileScheme16[] = u"file";
|
||||
+inline constexpr char16_t kTraceScheme[] = "trk";
|
||||
+inline constexpr char kTraceScheme[] = "trk";
|
||||
inline constexpr char kFileSystemScheme[] = "filesystem";
|
||||
inline constexpr char16_t kFileSystemScheme16[] = u"filesystem";
|
||||
inline constexpr char kFtpScheme[] = "ftp";
|
||||
|
||||
@@ -18,11 +18,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../browser/omaha/UpdateMenuItemHelper.java | 82 +++++-
|
||||
.../browser/omaha/UpdateStatusProvider.java | 165 ++++++++---
|
||||
.../browser/omaha/VersionNumberGetter.java | 3 +-
|
||||
.../inline/BromiteInlineUpdateController.java | 272 ++++++++++++++++++
|
||||
.../inline/BromiteInlineUpdateController.java | 273 ++++++++++++++++++
|
||||
.../omaha/inline/InlineUpdateController.java | 51 ++++
|
||||
.../inline/InlineUpdateControllerFactory.java | 21 ++
|
||||
chrome/browser/BUILD.gn | 2 +
|
||||
chrome/browser/endpoint_fetcher/BUILD.gn | 32 +++
|
||||
chrome/browser/endpoint_fetcher/BUILD.gn | 32 ++
|
||||
chrome/browser/endpoint_fetcher/DEPS | 3 +
|
||||
chrome/browser/endpoint_fetcher/OWNERS | 1 +
|
||||
.../endpoint_fetcher_android.cc | 184 ++++++++++++
|
||||
@@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../endpoint_fetcher/endpoint_fetcher.h | 23 +-
|
||||
.../Bromite-auto-updater.inc | 3 +
|
||||
.../Bromite-auto-updater.inc | 1 +
|
||||
28 files changed, 1268 insertions(+), 52 deletions(-)
|
||||
28 files changed, 1269 insertions(+), 52 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
|
||||
@@ -755,7 +755,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||
@@ -0,0 +1,272 @@
|
||||
@@ -0,0 +1,273 @@
|
||||
+// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved.
|
||||
+//
|
||||
+// This file is part of Ungoogled Chromium Android.
|
||||
@@ -796,6 +796,7 @@ new file mode 100644
|
||||
+import org.chromium.chrome.browser.omaha.UpdateConfigs;
|
||||
+import org.chromium.chrome.browser.omaha.UpdateStatusProvider;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabCreator;
|
||||
+import org.chromium.content_public.browser.LoadUrlParams;
|
||||
@@ -992,7 +993,7 @@ new file mode 100644
|
||||
+
|
||||
+ callback.onResult(null);
|
||||
+ },
|
||||
+ Profile.getLastUsedRegularProfile(),
|
||||
+ ProfileManager.getLastUsedRegularProfile(),
|
||||
+ urlToCheck, /*timeout*/5000, /*follow_redirect*/true, TRAFFIC_ANNOTATION);
|
||||
+ }
|
||||
+
|
||||
@@ -1018,7 +1019,7 @@ new file mode 100644
|
||||
+
|
||||
+ callback.onResult(null);
|
||||
+ },
|
||||
+ Profile.getLastUsedRegularProfile(),
|
||||
+ ProfileManager.getLastUsedRegularProfile(),
|
||||
+ UPSTREAM_VERSION_URL, /*timeout*/5000, /*follow_redirect*/false, TRAFFIC_ANNOTATION);
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -131,7 +131,7 @@ diff --git a/services/network/public/cpp/client_hints.cc b/services/network/publ
|
||||
|
||||
std::optional<std::vector<network::mojom::WebClientHintsType>>
|
||||
ParseClientHintsHeader(const std::string& header) {
|
||||
+ if ((true)) return absl::nullopt;
|
||||
+ if ((true)) return std::nullopt;
|
||||
// Accept-CH is an sh-list of tokens; see:
|
||||
// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
|
||||
std::optional<net::structured_headers::List> maybe_list =
|
||||
|
||||
@@ -27,12 +27,12 @@ Require: bromite-build-utils.patch
|
||||
chrome/browser/ui/BUILD.gn | 1 +
|
||||
.../controls/rich_controls_container_view.h | 7 +
|
||||
.../ui/views/page_info/page_info_main_view.cc | 28 +-
|
||||
.../views/page_info/page_info_view_factory.cc | 19 +
|
||||
.../views/page_info/page_info_view_factory.h | 3 +
|
||||
.../views/page_info/page_info_view_factory.cc | 20 +
|
||||
.../views/page_info/page_info_view_factory.h | 5 +
|
||||
.../page_info/permission_toggle_row_view.cc | 163 ++++++-
|
||||
.../page_info/permission_toggle_row_view.h | 18 +-
|
||||
.../settings_localized_strings_provider.cc | 54 +++
|
||||
.../ui/webui/settings/site_settings_helper.cc | 32 +-
|
||||
.../ui/webui/settings/site_settings_helper.cc | 46 +-
|
||||
.../browser_ui/settings/android/BUILD.gn | 1 +
|
||||
.../preference_spinner_single_widget.xml | 92 ++++
|
||||
.../settings/SpinnerPreference.java | 24 +
|
||||
@@ -58,7 +58,7 @@ Require: bromite-build-utils.patch
|
||||
.../content_settings/core/browser/BUILD.gn | 7 +
|
||||
.../bromite_content_settings/placeholder.txt | 1 +
|
||||
.../core/browser/content_settings_registry.cc | 2 +
|
||||
.../core/browser/content_settings_uma_util.cc | 1 +
|
||||
.../core/browser/content_settings_uma_util.cc | 6 +-
|
||||
.../core/browser/content_settings_utils.cc | 12 +
|
||||
.../core/browser/website_settings_info.h | 38 ++
|
||||
.../core/browser/website_settings_registry.cc | 6 +
|
||||
@@ -82,7 +82,7 @@ Require: bromite-build-utils.patch
|
||||
.../platform/web_content_settings_client.h | 5 +
|
||||
.../execution_context/execution_context.cc | 16 +
|
||||
.../execution_context/execution_context.h | 5 +
|
||||
71 files changed, 1824 insertions(+), 77 deletions(-)
|
||||
71 files changed, 1834 insertions(+), 89 deletions(-)
|
||||
create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
|
||||
@@ -802,21 +802,22 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
|
||||
#include "components/page_info/core/features.h"
|
||||
#include "components/page_info/core/proto/about_this_site_metadata.pb.h"
|
||||
#include "components/page_info/page_info.h"
|
||||
@@ -256,7 +258,13 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
|
||||
@@ -256,7 +258,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
|
||||
ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT
|
||||
? info.default_setting
|
||||
: info.setting;
|
||||
+ return GetPermissionIcon(info, setting);
|
||||
+ return GetPermissionIcon(info, blocked_on_system_level, setting);
|
||||
+}
|
||||
|
||||
+// static
|
||||
+const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
|
||||
+ const PageInfo::PermissionInfo& info,
|
||||
+ bool blocked_on_system_level,
|
||||
+ ContentSetting setting) {
|
||||
// For guard content settings and Automatic Picture-in-Picture, ASK is treated
|
||||
// as an "on" state.
|
||||
const bool show_blocked_badge =
|
||||
@@ -521,6 +529,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
|
||||
@@ -521,6 +530,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
|
||||
icon = &kFullscreenIcon;
|
||||
break;
|
||||
default:
|
||||
@@ -837,12 +838,14 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
|
||||
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h
|
||||
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.h
|
||||
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h
|
||||
@@ -87,6 +87,9 @@ class PageInfoViewFactory {
|
||||
@@ -87,6 +87,11 @@ class PageInfoViewFactory {
|
||||
const PageInfo::PermissionInfo& info,
|
||||
bool blocked_on_system_level = false);
|
||||
|
||||
+ static const ui::ImageModel GetPermissionIcon(
|
||||
+ const PageInfo::PermissionInfo& info, ContentSetting setting);
|
||||
+ const PageInfo::PermissionInfo& info,
|
||||
+ bool blocked_on_system_level,
|
||||
+ ContentSetting setting);
|
||||
+
|
||||
// Returns the icon for the given object |info|.
|
||||
static const ui::ImageModel GetChosenObjectIcon(
|
||||
@@ -1205,6 +1208,27 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
|
||||
#include "components/content_settings/core/common/content_settings.h"
|
||||
#include "components/content_settings/core/common/content_settings_pattern.h"
|
||||
#include "components/content_settings/core/common/content_settings_utils.h"
|
||||
@@ -220,13 +222,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
|
||||
{ContentSettingsType::DIRECT_SOCKETS, nullptr},
|
||||
};
|
||||
|
||||
-static_assert(
|
||||
- std::size(kContentSettingsTypeGroupNames) ==
|
||||
- // Add one since the sequence is kMinValue = -1, 0, ..., kMaxValue
|
||||
- 1 + static_cast<int32_t>(ContentSettingsType::kMaxValue) -
|
||||
- static_cast<int32_t>(ContentSettingsType::kMinValue),
|
||||
- "kContentSettingsTypeGroupNames should have the correct number "
|
||||
- "of elements");
|
||||
+// static_assert(
|
||||
+// std::size(kContentSettingsTypeGroupNames) ==
|
||||
+// // Add one since the sequence is kMinValue = -1, 0, ..., kMaxValue
|
||||
+// 1 + static_cast<int32_t>(ContentSettingsType::kMaxValue) -
|
||||
+// static_cast<int32_t>(ContentSettingsType::kMinValue),
|
||||
+// "kContentSettingsTypeGroupNames should have the correct number "
|
||||
+// "of elements");
|
||||
|
||||
struct SiteSettingSourceStringMapping {
|
||||
SiteSettingSource source;
|
||||
@@ -476,6 +478,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
|
||||
return true;
|
||||
}
|
||||
@@ -2755,14 +2779,19 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
|
||||
diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_uma_util.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_uma_util.cc
|
||||
@@ -190,6 +190,7 @@ void RecordContentSettingsHistogram(const std::string& name,
|
||||
@@ -190,11 +190,7 @@ void RecordContentSettingsHistogram(const std::string& name,
|
||||
}
|
||||
|
||||
int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) {
|
||||
- static_assert(
|
||||
- kHistogramValue.size() ==
|
||||
- // DEFAULT is not in the histogram, so we want [0, kMaxValue]
|
||||
- 1 + static_cast<size_t>(ContentSettingsType::kMaxValue),
|
||||
- "Update content settings histogram lookup");
|
||||
+ if ((true)) return 0;
|
||||
static_assert(
|
||||
kHistogramValue.size() ==
|
||||
// DEFAULT is not in the histogram, so we want [0, kMaxValue]
|
||||
|
||||
auto found = kHistogramValue.find(content_setting);
|
||||
if (found != kHistogramValue.end()) {
|
||||
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_utils.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_utils.cc
|
||||
|
||||
@@ -9122,7 +9122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateCon
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
|
||||
@@ -60,10 +60,10 @@ import org.chromium.chrome.browser.omaha.VersionNumber;
|
||||
@@ -61,10 +61,10 @@ import org.chromium.chrome.browser.omaha.VersionNumber;
|
||||
public class BromiteInlineUpdateController implements InlineUpdateController {
|
||||
|
||||
private static final String TAG = "BromiteInlineUpdateController";
|
||||
@@ -9137,7 +9137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
|
||||
|
||||
public static String getDownloadUrl() {
|
||||
return UPDATE_VERSION_URL + BuildConfig.BUILD_TARGET_CPU + "_ChromePublic.apk";
|
||||
@@ -212,11 +212,20 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
|
||||
@@ -213,11 +213,20 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
|
||||
Log.i(TAG, "BromiteUpdater: obtained response '%s' and redirect URL '%s'", endpointResponse.getResponseString(), redirectURL);
|
||||
if (redirectURL.indexOf(REDIRECT_URL_PREFIX) == 0) {
|
||||
redirectURL = redirectURL.substring(REDIRECT_URL_PREFIX.length());
|
||||
@@ -9158,7 +9158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
|
||||
OmahaBase.setLatestModifiedVersion(parts[0]);
|
||||
callback.onResult(version);
|
||||
return;
|
||||
@@ -239,6 +248,10 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
|
||||
@@ -240,6 +249,10 @@ public class BromiteInlineUpdateController implements InlineUpdateController {
|
||||
}
|
||||
|
||||
private void checkLatestUpstreamVersion(final Callback<VersionNumber> callback) {
|
||||
|
||||
@@ -4,10 +4,10 @@ Subject: Disable PrivacyGuide
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
|
||||
chrome/browser/ui/webui/settings/settings_ui.cc | 3 +--
|
||||
.../common/chrome_features_cc/Disable-PrivacyGuide.inc | 9 +++++++++
|
||||
3 files changed, 11 insertions(+), 2 deletions(-)
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
|
||||
chrome/browser/ui/webui/settings/settings_ui.cc | 3 +--
|
||||
.../common/chrome_features_cc/Disable-PrivacyGuide.inc | 6 ++++++
|
||||
3 files changed, 8 insertions(+), 2 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -38,10 +38,7 @@ diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-PrivacyGuide.inc
|
||||
@@ -0,0 +1,9 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuide3);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuidePreload);
|
||||
+
|
||||
@@ -0,0 +1,6 @@
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivacyGuideAndroid3);
|
||||
|
||||
@@ -5,32 +5,33 @@ Subject: Disable all predictors code
|
||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/BUILD.gn | 2 --
|
||||
.../preloading_model_keyed_service.cc | 1 +
|
||||
.../preloading_model_keyed_service_factory.cc | 4 +---
|
||||
.../chrome_hints_manager.cc | 1 +
|
||||
.../model_validator_keyed_service.cc | 6 +++++-
|
||||
.../optimization_guide_keyed_service.cc | 1 -
|
||||
.../predictors/loading_predictor_config.cc | 4 ++--
|
||||
.../browser/predictors/predictors_features.cc | 11 ++--------
|
||||
chrome/browser/ui/tab_helpers.cc | 1 -
|
||||
.../ui/webui/omnibox/omnibox_page_handler.cc | 2 ++
|
||||
.../browser/autofill_optimization_guide.cc | 5 +++--
|
||||
.../browser/autocomplete_controller.cc | 2 ++
|
||||
.../optimization_guide/core/hints_fetcher.cc | 1 +
|
||||
.../optimization_guide/core/hints_manager.cc | 5 +++++
|
||||
.../core/optimization_guide_features.cc | 21 +++++++++++++------
|
||||
.../core/prediction_model_download_manager.cc | 6 ++++--
|
||||
.../core/prediction_model_fetcher_impl.cc | 1 +
|
||||
components/optimization_guide/features.gni | 3 +--
|
||||
components/search/ntp_features.cc | 3 +++
|
||||
.../Disable-all-predictors-code.inc | 4 ++++
|
||||
.../Disable-all-predictors-code.inc | 7 +++++++
|
||||
.../Disable-all-predictors-code.inc | 4 ++++
|
||||
.../Disable-all-predictors-code.inc | 2 ++
|
||||
.../document_speculation_rules.cc | 1 +
|
||||
.../platform/runtime_enabled_features.json5 | 2 +-
|
||||
25 files changed, 68 insertions(+), 32 deletions(-)
|
||||
chrome/browser/BUILD.gn | 2 --
|
||||
.../preloading_model_keyed_service.cc | 1 +
|
||||
.../preloading_model_keyed_service_factory.cc | 4 +---
|
||||
.../optimization_guide/chrome_hints_manager.cc | 1 +
|
||||
.../model_validator_keyed_service.cc | 6 +++++-
|
||||
.../optimization_guide_keyed_service.cc | 1 -
|
||||
.../predictors/loading_predictor_config.cc | 4 ++--
|
||||
chrome/browser/predictors/predictors_features.cc | 11 ++---------
|
||||
chrome/browser/ui/tab_helpers.cc | 1 -
|
||||
.../ui/webui/omnibox/omnibox_page_handler.cc | 2 ++
|
||||
.../core/browser/autofill_optimization_guide.cc | 5 +++--
|
||||
.../omnibox/browser/autocomplete_controller.cc | 2 ++
|
||||
.../optimization_guide/core/hints_fetcher.cc | 1 +
|
||||
.../optimization_guide/core/hints_manager.cc | 5 +++++
|
||||
.../core/optimization_guide_features.cc | 15 +++++++++------
|
||||
.../core/prediction_model_download_manager.cc | 6 ++++--
|
||||
.../core/prediction_model_fetcher_impl.cc | 1 +
|
||||
components/optimization_guide/features.gni | 3 +--
|
||||
.../core/page_content_annotations_features.cc | 5 +++++
|
||||
components/search/ntp_features.cc | 3 +++
|
||||
.../Disable-all-predictors-code.inc | 4 ++++
|
||||
.../Disable-all-predictors-code.inc | 1 +
|
||||
.../features_cc/Disable-all-predictors-code.inc | 4 ++++
|
||||
.../features_cc/Disable-all-predictors-code.inc | 2 ++
|
||||
.../document_speculation_rules.cc | 1 +
|
||||
.../platform/runtime_enabled_features.json5 | 2 +-
|
||||
26 files changed, 61 insertions(+), 32 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc
|
||||
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
|
||||
create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc
|
||||
@@ -322,7 +323,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
|
||||
}
|
||||
|
||||
RequestContextSet GetAllowedContextsForPersonalizedMetadata() {
|
||||
@@ -817,5 +812,19 @@ double GetOnDeviceModelDefaultTemperature() {
|
||||
@@ -817,5 +812,13 @@ double GetOnDeviceModelDefaultTemperature() {
|
||||
return kTemperature.Get();
|
||||
}
|
||||
|
||||
@@ -331,14 +332,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
|
||||
+SET_CROMITE_FEATURE_DISABLED(kRemoteOptimizationGuideFetchingAnonymousDataConsent);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationTargetPrediction);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideModelDownloading);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kRemotePageMetadata);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageEntitiesPageContentAnnotations);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPushNotifications);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageVisibilityBatchAnnotations);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsValidation);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPreventLongRunningPredictionModels);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsPersistSalientImageMetadata);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideFetchingForSRP);
|
||||
} // namespace features
|
||||
} // namespace optimization_guide
|
||||
@@ -403,6 +398,19 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio
|
||||
}
|
||||
|
||||
declare_args() {
|
||||
diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc
|
||||
--- a/components/page_content_annotations/core/page_content_annotations_features.cc
|
||||
+++ b/components/page_content_annotations/core/page_content_annotations_features.cc
|
||||
@@ -264,4 +264,9 @@ size_t MaxRelatedSearchesCacheSize() {
|
||||
"max_related_searches_cache_size", 10);
|
||||
}
|
||||
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kRemotePageMetadata);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageVisibilityBatchAnnotations);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsValidation);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsPersistSalientImageMetadata);
|
||||
} // namespace page_content_annotations::features
|
||||
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
|
||||
--- a/components/search/ntp_features.cc
|
||||
+++ b/components/search/ntp_features.cc
|
||||
@@ -427,14 +435,8 @@ diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predicto
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
|
||||
@@ -0,0 +1,7 @@
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrerenderFallbackToPreconnect);
|
||||
+
|
||||
+#if !BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+SET_CROMITE_FEATURE_DISABLED(kSafetyCheckNotificationPermissions);
|
||||
+
|
||||
+#endif
|
||||
diff --git a/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc b/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
||||
@@ -46,14 +46,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
|
||||
--- a/android_webview/browser/aw_content_browser_client.cc
|
||||
+++ b/android_webview/browser/aw_content_browser_client.cc
|
||||
@@ -1153,6 +1153,7 @@ bool AwContentBrowserClient::ShouldPreconnectNavigation(
|
||||
|
||||
void AwContentBrowserClient::OnDisplayInsecureContent(
|
||||
content::WebContents* web_contents) {
|
||||
@@ -1178,6 +1178,7 @@ network::mojom::AttributionSupport
|
||||
AwContentBrowserClient::GetAttributionSupport(
|
||||
AttributionReportingOsApiState state,
|
||||
bool client_os_disabled) {
|
||||
+ if ((true)) return network::mojom::AttributionSupport::kNone;
|
||||
AwSettings* aw_settings = AwSettings::FromWebContents(web_contents);
|
||||
if (aw_settings) {
|
||||
UMA_HISTOGRAM_ENUMERATION(
|
||||
// WebView only supports OS-level attribution and not web-attribution.
|
||||
switch (state) {
|
||||
case AttributionReportingOsApiState::kDisabled:
|
||||
@@ -1196,6 +1197,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
|
||||
const url::Origin* destination_origin,
|
||||
const url::Origin* reporting_origin,
|
||||
|
||||
@@ -4,14 +4,14 @@ Subject: Disallowing MIDI permission by default
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../Disallowing-MIDI-permission-by-default.inc | 1 +
|
||||
.../features_cc/Disallowing-MIDI-permission-by-default.inc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc
|
||||
|
||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc b/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc b/cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
|
||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Disallowing-MIDI-permission-by-default.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kBlockMidiByDefault);
|
||||
--
|
||||
|
||||
@@ -17,11 +17,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/android/BUILD.gn | 1 +
|
||||
.../settings/PasswordSettings.java | 81 ++++++++++++++++++-
|
||||
.../chromium/chrome/browser/tab/TabImpl.java | 55 +++++++++++++
|
||||
.../browser/tab/TabViewAndroidDelegate.java | 14 ++++
|
||||
.../chromium/chrome/browser/tab/TabImpl.java | 42 ++++++++++
|
||||
.../browser/tab/TabViewAndroidDelegate.java | 4 +
|
||||
chrome/browser/BUILD.gn | 7 ++
|
||||
chrome/browser/android/tab_android.cc | 15 ++++
|
||||
chrome/browser/android/tab_android.h | 2 +
|
||||
chrome/browser/android/tab_android.cc | 9 +++
|
||||
.../strings/android_chrome_strings.grd | 6 ++
|
||||
components/android_autofill/browser/BUILD.gn | 1 +
|
||||
.../browser/android_autofill_manager.cc | 2 +
|
||||
@@ -31,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../BrowserSelectionActionMenuDelegate.java | 62 ++++++++++++++
|
||||
.../browser/content_autofill_driver.cc | 55 +++++++++++++
|
||||
.../content/browser/content_autofill_driver.h | 10 +++
|
||||
.../content_autofill_driver_factory.cc | 13 +++
|
||||
.../content_autofill_driver_factory.cc | 12 +++
|
||||
.../content/renderer/autofill_agent.cc | 6 ++
|
||||
.../renderer/password_autofill_agent.cc | 5 +-
|
||||
.../autofill/core/browser/autofill_driver.h | 2 +
|
||||
@@ -40,9 +39,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../core/browser/browser_autofill_manager.h | 2 +
|
||||
.../autofill/core/common/autofill_prefs.cc | 2 +
|
||||
.../autofill/core/common/autofill_prefs.h | 5 ++
|
||||
.../embedder_support/view/ContentView.java | 46 +++++++++++
|
||||
.../chromium/ui/base/ViewAndroidDelegate.java | 8 ++
|
||||
27 files changed, 415 insertions(+), 3 deletions(-)
|
||||
.../embedder_support/view/ContentView.java | 47 +++++++++++
|
||||
.../chromium/ui/base/ViewAndroidDelegate.java | 4 +
|
||||
26 files changed, 380 insertions(+), 3 deletions(-)
|
||||
create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
@@ -185,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
@@ -81,6 +81,18 @@ import org.chromium.url.GURL;
|
||||
@@ -81,6 +81,19 @@ import org.chromium.url.GURL;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -199,21 +198,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
+import org.chromium.components.autofill.BrowserSelectionActionMenuDelegate;
|
||||
+import org.chromium.content_public.browser.SelectionPopupController;
|
||||
+import org.chromium.chrome.browser.preferences.Pref;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.components.user_prefs.UserPrefs;
|
||||
+
|
||||
/**
|
||||
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
|
||||
* class is not intended to be extended.
|
||||
@@ -243,6 +255,8 @@ class TabImpl implements Tab {
|
||||
|
||||
private String mPendingNativePageHost;
|
||||
|
||||
+ AutofillProvider mAutofillProvider;
|
||||
+
|
||||
/**
|
||||
* Creates an instance of a {@link TabImpl}. Package-private. Use {@link TabBuilder} to create
|
||||
* an instance.
|
||||
@@ -882,6 +896,11 @@ class TabImpl implements Tab {
|
||||
@@ -882,6 +895,11 @@ class TabImpl implements Tab {
|
||||
for (TabObserver observer : mObservers) observer.onDestroyed(this);
|
||||
mObservers.clear();
|
||||
|
||||
@@ -225,34 +216,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
mUserDataHost.destroy();
|
||||
mTabViewManager.destroy();
|
||||
hideNativePage(false, null);
|
||||
@@ -1539,6 +1558,16 @@ class TabImpl implements Tab {
|
||||
return mWebContentsState == null ? -1 : mWebContentsState.version();
|
||||
}
|
||||
|
||||
+ public void onProvideAutofillVirtualStructure(ViewStructure structure, int flags) {
|
||||
+ if (mAutofillProvider != null)
|
||||
+ mAutofillProvider.onProvideAutoFillVirtualStructure(structure, flags);
|
||||
+ }
|
||||
+
|
||||
+ public void autofill(final SparseArray<AutofillValue> values) {
|
||||
+ if (mAutofillProvider != null)
|
||||
+ mAutofillProvider.autofill(values);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Initializes the {@link WebContents}. Completes the browser content components initialization
|
||||
* around a native WebContents pointer.
|
||||
@@ -1610,6 +1639,30 @@ class TabImpl implements Tab {
|
||||
@@ -1610,6 +1628,30 @@ class TabImpl implements Tab {
|
||||
prepareAutofillProvider(webContents)
|
||||
? View.IMPORTANT_FOR_AUTOFILL_YES
|
||||
: View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
|
||||
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
+ boolean autofillEnabled = false;
|
||||
+ if (isIncognito()) {
|
||||
+ autofillEnabled = UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ autofillEnabled = UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .getBoolean(Pref.AUTOFILL_ANDROID_INCOGNITO_ENABLED);
|
||||
+ } else {
|
||||
+ autofillEnabled = UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ autofillEnabled = UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .getBoolean(Pref.AUTOFILL_ANDROID_ENABLED);
|
||||
+ }
|
||||
+
|
||||
@@ -273,15 +247,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
TabHelpers.initWebContentsHelpers(this);
|
||||
notifyContentChanged();
|
||||
} finally {
|
||||
@@ -2131,6 +2184,8 @@ class TabImpl implements Tab {
|
||||
|
||||
boolean handleNonNavigationAboutURL(GURL url);
|
||||
|
||||
+ void initializeAutofillIfNecessary(long nativeTabAndroid);
|
||||
+
|
||||
void onShow(long nativeTabAndroid);
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
|
||||
@@ -296,23 +261,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr
|
||||
/** Implementation of the abstract class {@link ViewAndroidDelegate} for Chrome. */
|
||||
public class TabViewAndroidDelegate extends ViewAndroidDelegate {
|
||||
private final TabImpl mTab;
|
||||
@@ -86,6 +90,16 @@ public class TabViewAndroidDelegate extends ViewAndroidDelegate {
|
||||
mTab.onBackgroundColorChanged(color);
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public void onProvideAutofillVirtualStructure(ViewStructure structure, int flags) {
|
||||
+ mTab.onProvideAutofillVirtualStructure(structure, flags);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void autofill(final SparseArray<AutofillValue> values) {
|
||||
+ mTab.autofill(values);
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public void onControlsChanged(
|
||||
int topControlsOffsetY,
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -347,30 +295,19 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
|
||||
using base::android::AttachCurrentThread;
|
||||
using base::android::ConvertUTF8ToJavaString;
|
||||
using base::android::JavaParamRef;
|
||||
@@ -536,3 +543,11 @@ static void JNI_TabImpl_Init(JNIEnv* env,
|
||||
@@ -364,6 +371,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
|
||||
if (autofill::AutofillProvider::FromWebContents(web_contents_.get())) {
|
||||
return;
|
||||
}
|
||||
+ autofill::ChromeAutofillClient::CreateForWebContents(web_contents_.get());
|
||||
android_autofill::AndroidAutofillClient::CreateForWebContents(
|
||||
web_contents_.get(), [&](const JavaRef<jobject>& client) {});
|
||||
|
||||
@@ -536,3 +544,4 @@ static void JNI_TabImpl_Init(JNIEnv* env,
|
||||
// This will automatically bind to the Java object and pass ownership there.
|
||||
new TabAndroid(env, obj, profile, id);
|
||||
}
|
||||
+
|
||||
+void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
|
||||
+ if (!autofill::ContentAutofillDriverFactory::FromWebContents(
|
||||
+ web_contents_.get())) {
|
||||
+ content::WebContents* web_contents = web_contents_.get();
|
||||
+ autofill::ChromeAutofillClient::CreateForWebContents(web_contents);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
|
||||
--- a/chrome/browser/android/tab_android.h
|
||||
+++ b/chrome/browser/android/tab_android.h
|
||||
@@ -173,6 +173,8 @@ class TabAndroid : public base::SupportsUserData {
|
||||
|
||||
void SetDevToolsAgentHost(scoped_refptr<content::DevToolsAgentHost> host);
|
||||
|
||||
+ void InitializeAutofillIfNecessary(JNIEnv* env);
|
||||
+
|
||||
// This should never return null, unless it is called in a state where no
|
||||
// tabs exist (such as on FRE), which should never happen. If it is called
|
||||
// then, a nullptr will be returned and must be handled accordingly.
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -765,15 +702,14 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
|
||||
namespace autofill {
|
||||
|
||||
class ScopedAutofillManagersObservation;
|
||||
@@ -95,6 +101,13 @@ ContentAutofillDriver* ContentAutofillDriverFactory::DriverForFrame(
|
||||
@@ -95,6 +101,12 @@ ContentAutofillDriver* ContentAutofillDriverFactory::DriverForFrame(
|
||||
// 5. `render_frame_host->~RenderFrameHostImpl()` finishes.
|
||||
if (render_frame_host->IsRenderFrameLive()) {
|
||||
driver = std::make_unique<ContentAutofillDriver>(render_frame_host, this);
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ if (!driver->GetAutofillManager().IsAndroidAutofill()) {
|
||||
+ driver->set_secondary_autofill_manager(
|
||||
+ base::WrapUnique(new AndroidAutofillManager(driver.get(),
|
||||
+ &client_.get())));
|
||||
+ base::WrapUnique(new AndroidAutofillManager(driver.get())));
|
||||
+ }
|
||||
+#endif
|
||||
for (Observer& observer : observers_) {
|
||||
@@ -907,10 +843,11 @@ diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autof
|
||||
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
|
||||
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
|
||||
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
|
||||
@@ -43,6 +43,11 @@ import org.chromium.ui.dragdrop.DragEventDispatchHelper.DragEventDispatchDestina
|
||||
@@ -43,6 +43,12 @@ import org.chromium.ui.dragdrop.DragEventDispatchHelper.DragEventDispatchDestina
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
+import android.os.Build;
|
||||
+import org.chromium.base.Log;
|
||||
+import android.util.SparseArray;
|
||||
+import android.view.autofill.AutofillValue;
|
||||
@@ -919,7 +856,7 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
|
||||
/**
|
||||
* The containing view for {@link WebContents} that exists in the Android UI hierarchy and exposes
|
||||
* the various {@link View} functionality to it.
|
||||
@@ -97,6 +102,8 @@ public class ContentView extends FrameLayout
|
||||
@@ -97,6 +103,8 @@ public class ContentView extends FrameLayout
|
||||
Context context,
|
||||
@Nullable EventOffsetHandler eventOffsetHandler,
|
||||
@Nullable WebContents webContents) {
|
||||
@@ -928,7 +865,7 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
|
||||
return new ContentView(context, eventOffsetHandler, webContents);
|
||||
}
|
||||
|
||||
@@ -660,4 +667,43 @@ public class ContentView extends FrameLayout
|
||||
@@ -660,4 +668,43 @@ public class ContentView extends FrameLayout
|
||||
mDragDropEventOffsetHandler.onPostDispatchDragEvent(event.getAction());
|
||||
return ret;
|
||||
}
|
||||
@@ -986,13 +923,4 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java b
|
||||
/** Class to acquire, position, and remove anchor views from the implementing View. */
|
||||
@JNINamespace("ui")
|
||||
public class ViewAndroidDelegate {
|
||||
@@ -597,4 +601,8 @@ public class ViewAndroidDelegate {
|
||||
sDragAndDropDelegateForTesting = testDelegate;
|
||||
ResettersForTesting.register(() -> sDragAndDropDelegateForTesting = null);
|
||||
}
|
||||
+
|
||||
+ public void onProvideAutofillVirtualStructure(ViewStructure structure, int flags) {}
|
||||
+
|
||||
+ public void autofill(final SparseArray<AutofillValue> values) {}
|
||||
}
|
||||
--
|
||||
|
||||
@@ -12,19 +12,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 1 +
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
chrome/android/java/AndroidManifest.xml | 28 +++-
|
||||
chrome/android/java/AndroidManifest.xml | 28 ++-
|
||||
.../res/layout/sharing_intent_content.xml | 88 ++++++++++
|
||||
.../chrome/browser/IntentHandler.java | 16 +-
|
||||
.../browser/LaunchIntentDispatcher.java | 14 +-
|
||||
.../init/ProcessInitializationHandler.java | 3 +
|
||||
.../SharedIntentShareActivity.java | 158 ++++++++++++++++++
|
||||
.../SharedIntentShareActivity.java | 159 ++++++++++++++++++
|
||||
.../flags/android/chrome_feature_list.cc | 1 +
|
||||
.../browser/flags/ChromeFeatureList.java | 1 +
|
||||
.../strings/android_chrome_strings.grd | 13 ++
|
||||
.../about_flags_cc/Enable-share-intent.inc | 12 ++
|
||||
.../Enable-share-intent.inc | 3 +
|
||||
.../Enable-share-intent.inc | 1 +
|
||||
14 files changed, 332 insertions(+), 8 deletions(-)
|
||||
14 files changed, 333 insertions(+), 8 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Enable-share-intent.inc
|
||||
@@ -306,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
|
||||
@@ -0,0 +1,158 @@
|
||||
@@ -0,0 +1,159 @@
|
||||
+// Copyright 2019 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
@@ -340,6 +340,7 @@ new file mode 100644
|
||||
+import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
+import org.chromium.ui.widget.ButtonCompat;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
|
||||
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
|
||||
+
|
||||
@@ -427,7 +428,7 @@ new file mode 100644
|
||||
+ String scheme = Uri.parse(linkUrl).getScheme();
|
||||
+ if (scheme == null) {
|
||||
+ linkUrl =
|
||||
+ TemplateUrlServiceFactory.getForProfile(Profile.getLastUsedRegularProfile())
|
||||
+ TemplateUrlServiceFactory.getForProfile(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .getUrlForSearchQuery(linkUrl);
|
||||
+ }
|
||||
+ updateTextLink();
|
||||
|
||||
@@ -46,7 +46,7 @@ deactivation of all pop-ups (default disabled)
|
||||
.../AdblockCustomFiltersFragment.java | 7 +-
|
||||
.../settings/AdblockCustomItemFragment.java | 20 +-
|
||||
.../settings/AdblockFilterListsAdapter.java | 6 +
|
||||
.../settings/AdblockSettingsFragment.java | 45 +-
|
||||
.../settings/AdblockSettingsFragment.java | 50 +-
|
||||
components/adblock/content/browser/BUILD.gn | 18 +-
|
||||
.../adblock_controller_factory_base.cc | 5 +-
|
||||
.../browser/adblock_url_loader_factory.cc | 17 +-
|
||||
@@ -128,7 +128,7 @@ deactivation of all pop-ups (default disabled)
|
||||
.../blink/renderer/core/css/style_engine.h | 1 +
|
||||
.../renderer/core/exported/web_document.cc | 15 +-
|
||||
.../definitions/adblock_private.d.ts | 14 +
|
||||
118 files changed, 9188 insertions(+), 1264 deletions(-)
|
||||
118 files changed, 9191 insertions(+), 1266 deletions(-)
|
||||
create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html
|
||||
create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts
|
||||
rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (56%)
|
||||
@@ -2375,7 +2375,15 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
@@ -32,7 +33,19 @@ public class AdblockSettingsFragment
|
||||
@@ -20,6 +21,7 @@ import androidx.preference.PreferenceFragmentCompat;
|
||||
import org.chromium.build.BuildConfig;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.components.adblock.AdblockController;
|
||||
import org.chromium.components.adblock.R;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
@@ -32,7 +34,19 @@ public class AdblockSettingsFragment
|
||||
private Preference mFilterLists;
|
||||
private Preference mAllowedDomains;
|
||||
private Preference mMoreOptions;
|
||||
@@ -2396,7 +2404,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock
|
||||
private static final String SETTINGS_ENABLED_KEY = "fragment_adblock_settings_enabled_key";
|
||||
private static final String SETTINGS_FILTER_LISTS_KEY =
|
||||
"fragment_adblock_settings_filter_lists_key";
|
||||
@@ -49,9 +62,20 @@ public class AdblockSettingsFragment
|
||||
@@ -49,27 +63,49 @@ public class AdblockSettingsFragment
|
||||
private long mOnOffTogleTimestamp;
|
||||
|
||||
private void bindPreferences() {
|
||||
@@ -2417,7 +2425,11 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock
|
||||
mAllowedDomains = findPreference(SETTINGS_ALLOWED_DOMAINS_KEY);
|
||||
mMoreOptions = findPreference(SETTINGS_MORE_OPTIONS_KEY);
|
||||
}
|
||||
@@ -62,14 +86,25 @@ public class AdblockSettingsFragment
|
||||
|
||||
private boolean areMoreOptionsEnabled() {
|
||||
- return UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ return UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
.getBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED);
|
||||
}
|
||||
|
||||
private void applyAdblockEnabled(boolean enabledValue) {
|
||||
@@ -2445,7 +2457,16 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock
|
||||
boolean enabled = AdblockController.getInstance().isEnabled();
|
||||
mAdblockEnabled.setChecked(enabled);
|
||||
mAdblockEnabled.setOnPreferenceChangeListener(this);
|
||||
@@ -107,7 +142,7 @@ public class AdblockSettingsFragment
|
||||
@@ -95,7 +131,7 @@ public class AdblockSettingsFragment
|
||||
|
||||
mOnOffTogleTimestamp = now;
|
||||
if (mOnOffClickCount >= ON_OFF_TOGGLE_COUNT_TO_ENABLE_MORE_OPTIONS) {
|
||||
- UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED, true);
|
||||
}
|
||||
}
|
||||
@@ -107,7 +143,7 @@ public class AdblockSettingsFragment
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
@@ -2454,7 +2475,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock
|
||||
bindPreferences();
|
||||
synchronizePreferences();
|
||||
}
|
||||
@@ -126,6 +161,8 @@ public class AdblockSettingsFragment
|
||||
@@ -126,6 +162,8 @@ public class AdblockSettingsFragment
|
||||
maybeEnableMoreOptions();
|
||||
|
||||
applyAdblockEnabled((Boolean) newValue);
|
||||
|
||||
@@ -6,7 +6,7 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../crash/MinidumpUploadServiceImpl.java | 22 +++
|
||||
.../crash_upload_list_android.cc | 25 ++-
|
||||
.../crash_upload_list_android.cc | 19 +-
|
||||
.../crash_upload_list_android.h | 1 +
|
||||
chrome/browser/net/chrome_network_delegate.cc | 7 +
|
||||
chrome/browser/ui/BUILD.gn | 1 +
|
||||
@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../upload_list/text_log_upload_list.cc | 1 +
|
||||
components/upload_list/upload_list.cc | 14 ++
|
||||
components/upload_list/upload_list.h | 9 +
|
||||
18 files changed, 385 insertions(+), 139 deletions(-)
|
||||
18 files changed, 379 insertions(+), 139 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
|
||||
@@ -111,20 +111,14 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chr
|
||||
// Crash reports can have multiple extensions (e.g. foo.dmp, foo.dmp.try1,
|
||||
// foo.skipped.try0).
|
||||
file = file.BaseName();
|
||||
@@ -135,7 +148,15 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList(
|
||||
@@ -135,7 +148,9 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList(
|
||||
RecordUnsuccessfulUploadListState(
|
||||
UnsuccessfulUploadListState::ADDING_AN_UPLOAD_ENTRY);
|
||||
id = id.substr(pos + 1);
|
||||
- uploads->push_back(std::make_unique<UploadList::UploadInfo>(
|
||||
- id, info.creation_time, upload_state, file_size));
|
||||
+ // Since current thread is an IO thread
|
||||
+ // to avoid failed DCHECK ThreadRestrictions::AssertSingletonAllowed()
|
||||
+ // remove ui::FormatBytes(): dcheck fail because it use base::FormatDouble()
|
||||
+ // and LazyInstance<NumberFormatWrapper>::DestructorAtExit().
|
||||
+ // also "upload.file_size" is unused.
|
||||
+ std::u16string file_size_string;
|
||||
+ auto upload = std::make_unique<UploadList::UploadInfo>(
|
||||
+ id, info.creation_time, upload_state, file_size_string);
|
||||
+ id, info.creation_time, upload_state, file_size);
|
||||
+ upload->file_path = file_path;
|
||||
+ uploads->push_back(std::move(upload));
|
||||
}
|
||||
|
||||
@@ -28,14 +28,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../tab_management/TabListRecyclerView.java | 19 +++-
|
||||
.../tab_management/TabSwitcherMediator.java | 27 +++++-
|
||||
.../settings/AccessibilitySettings.java | 16 ++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 50 ++++++++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 51 ++++++++++
|
||||
.../chrome/browser/app/ChromeActivity.java | 13 +++
|
||||
.../compositor/CompositorViewHolder.java | 8 ++
|
||||
.../layouts/LayoutManagerChrome.java | 17 +++-
|
||||
.../layouts/LayoutManagerChromeTablet.java | 4 +-
|
||||
.../layouts/ToolbarSwipeLayout.java | 14 ++-
|
||||
.../overlays/strip/StripLayoutHelper.java | 2 +-
|
||||
.../strip/StripLayoutHelperManager.java | 37 +++++++-
|
||||
.../strip/StripLayoutHelperManager.java | 38 +++++++-
|
||||
.../scene_layer/StaticTabSceneLayer.java | 7 +-
|
||||
.../scene_layer/TabListSceneLayer.java | 8 ++
|
||||
.../scene_layer/TabStripSceneLayer.java | 22 ++++-
|
||||
@@ -75,7 +75,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../toolbar/LocationBarFocusScrimHandler.java | 5 +
|
||||
.../bottom/BottomControlsContentDelegate.java | 9 +-
|
||||
.../bottom/BottomControlsCoordinator.java | 11 ++-
|
||||
.../bottom/BottomControlsMediator.java | 8 ++
|
||||
.../bottom/BottomControlsMediator.java | 18 +++-
|
||||
.../bottom/BottomControlsProperties.java | 6 +-
|
||||
.../bottom/BottomControlsViewBinder.java | 2 +
|
||||
.../bottom/ScrollingBottomViewSceneLayer.java | 19 +++-
|
||||
@@ -87,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../AccessibilitySettingsDelegate.java | 6 ++
|
||||
.../render_widget_host_view_android.cc | 3 +
|
||||
.../Move-navigation-bar-to-bottom.inc | 12 +++
|
||||
74 files changed, 901 insertions(+), 84 deletions(-)
|
||||
74 files changed, 909 insertions(+), 88 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
|
||||
|
||||
diff --git a/cc/base/features.cc b/cc/base/features.cc
|
||||
@@ -720,7 +720,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -49,6 +49,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -50,6 +50,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
|
||||
@@ -730,7 +730,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -84,6 +87,10 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -85,6 +88,10 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mFontSizePrefs = FontSizePrefs.getInstance(delegate.getBrowserContextHandle());
|
||||
}
|
||||
|
||||
@@ -741,7 +741,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
@@ -152,6 +159,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -153,6 +160,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
|
||||
forceTabletUiPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
@@ -754,7 +754,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -234,6 +247,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -235,6 +248,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mDelegate.getBrowserContextHandle(), (Integer) newValue);
|
||||
} else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) {
|
||||
PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue);
|
||||
@@ -767,10 +767,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -15,6 +15,12 @@ import org.chromium.chrome.browser.flags.CromiteNativeUtils;
|
||||
@@ -15,6 +15,13 @@ import org.chromium.chrome.browser.flags.CromiteNativeUtils;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
|
||||
+import org.chromium.chrome.R;
|
||||
+import android.app.Activity;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
|
||||
@@ -780,7 +781,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
/** The Chrome implementation of AccessibilitySettingsDelegate. */
|
||||
public class ChromeAccessibilitySettingsDelegate implements AccessibilitySettingsDelegate {
|
||||
private static class TextSizeContrastAccessibilityDelegate
|
||||
@@ -57,6 +63,12 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -57,6 +64,12 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
return new ForceTabletUIDelegate();
|
||||
}
|
||||
|
||||
@@ -793,7 +794,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
private final Profile mProfile;
|
||||
|
||||
/**
|
||||
@@ -67,6 +79,44 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -67,6 +80,44 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
mProfile = profile;
|
||||
}
|
||||
|
||||
@@ -1038,7 +1039,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
|
||||
@@ -81,6 +81,8 @@ import org.chromium.ui.interpolators.Interpolators;
|
||||
@@ -24,6 +24,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
|
||||
import org.chromium.base.supplier.ObservableSupplier;
|
||||
+import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
|
||||
import org.chromium.chrome.browser.compositor.LayerTitleCache;
|
||||
@@ -81,6 +82,8 @@ import org.chromium.ui.interpolators.Interpolators;
|
||||
import org.chromium.ui.resources.ResourceManager;
|
||||
import org.chromium.ui.util.ColorUtils;
|
||||
import org.chromium.url.GURL;
|
||||
@@ -1047,7 +1056,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -205,12 +207,16 @@ public class StripLayoutHelperManager
|
||||
@@ -205,12 +208,16 @@ public class StripLayoutHelperManager
|
||||
// Drag-Drop
|
||||
@Nullable private TabDragSource mTabDragSource;
|
||||
|
||||
@@ -1064,7 +1073,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
if (mModelSelectorButton.onDown(x, y, fromMouse)) {
|
||||
return;
|
||||
}
|
||||
@@ -233,6 +239,7 @@ public class StripLayoutHelperManager
|
||||
@@ -233,6 +240,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1072,7 +1081,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
mModelSelectorButton.drag(x, y);
|
||||
getActiveStripLayoutHelper().drag(time(), x, y, dx);
|
||||
}
|
||||
@@ -242,6 +249,7 @@ public class StripLayoutHelperManager
|
||||
@@ -242,6 +250,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1080,7 +1089,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
long time = time();
|
||||
if (mModelSelectorButton.click(x, y)) {
|
||||
mModelSelectorButton.handleClick(time);
|
||||
@@ -255,6 +263,7 @@ public class StripLayoutHelperManager
|
||||
@@ -255,6 +264,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1088,7 +1097,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY);
|
||||
}
|
||||
|
||||
@@ -263,6 +272,7 @@ public class StripLayoutHelperManager
|
||||
@@ -263,6 +273,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1096,7 +1105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
getActiveStripLayoutHelper().onLongPress(time(), x, y);
|
||||
}
|
||||
|
||||
@@ -364,7 +374,8 @@ public class StripLayoutHelperManager
|
||||
@@ -364,7 +375,8 @@ public class StripLayoutHelperManager
|
||||
@NonNull WindowAndroid windowAndroid,
|
||||
// TODO(crbug.com/1498252): Avoid passing the ToolbarManager instance. Potentially
|
||||
// implement an interface to manage strip transition states.
|
||||
@@ -1106,7 +1115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
mUpdateHost = updateHost;
|
||||
mLayerTitleCacheSupplier = layerTitleCacheSupplier;
|
||||
mDensity = context.getResources().getDisplayMetrics().density;
|
||||
@@ -492,6 +503,8 @@ public class StripLayoutHelperManager
|
||||
@@ -492,6 +504,8 @@ public class StripLayoutHelperManager
|
||||
mTabDragSource,
|
||||
toolbarContainerView,
|
||||
windowAndroid);
|
||||
@@ -1115,7 +1124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
|
||||
tabHoverCardViewStub.setOnInflateListener(
|
||||
(viewStub, view) -> {
|
||||
@@ -655,6 +668,10 @@ public class StripLayoutHelperManager
|
||||
@@ -655,6 +669,10 @@ public class StripLayoutHelperManager
|
||||
// value.
|
||||
yOffset -= getHeight();
|
||||
}
|
||||
@@ -1126,7 +1135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
mTabStripTreeProvider.pushAndUpdateStrip(
|
||||
this,
|
||||
mLayerTitleCacheSupplier.get(),
|
||||
@@ -667,7 +684,9 @@ public class StripLayoutHelperManager
|
||||
@@ -667,7 +685,9 @@ public class StripLayoutHelperManager
|
||||
getStripTransitionScrimColor(),
|
||||
scrimOpacity,
|
||||
mLeftPadding,
|
||||
@@ -1137,7 +1146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
return mTabStripTreeProvider;
|
||||
}
|
||||
|
||||
@@ -725,11 +744,21 @@ public class StripLayoutHelperManager
|
||||
@@ -725,11 +745,21 @@ public class StripLayoutHelperManager
|
||||
mLeftPadding,
|
||||
mRightPadding);
|
||||
|
||||
@@ -2114,8 +2123,8 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ // reverses the order of items in the menu
|
||||
+ ModelList modelListReversed = new ModelList();
|
||||
+ for (int i = 0; i < modelList.size(); i++) {
|
||||
+ modelListReversed.add(0, modelList.get(i));
|
||||
+ for (int i = 0; i < mModelList.size(); i++) {
|
||||
+ modelListReversed.add(0, mModelList.get(i));
|
||||
+ }
|
||||
+ mModelList = modelListReversed;
|
||||
+ }
|
||||
@@ -2613,6 +2622,23 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
int minHeight = mBrowserControlsSizer.getBottomControlsMinHeight();
|
||||
mModel.set(BottomControlsProperties.Y_OFFSET, bottomOffset - minHeight);
|
||||
|
||||
@@ -275,10 +283,12 @@ class BottomControlsMediator
|
||||
&& !mIsInSwipeLayout
|
||||
&& mBrowserControlsSizer.getBottomControlOffset() == 0;
|
||||
if (visible) {
|
||||
- // Translate view so that its bottom is aligned with browser controls min height.
|
||||
- mModel.set(
|
||||
- BottomControlsProperties.ANDROID_VIEW_TRANSLATE_Y,
|
||||
- -mBrowserControlsSizer.getBottomControlsMinHeight());
|
||||
+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ // Translate view so that its bottom is aligned with browser controls min height.
|
||||
+ mModel.set(
|
||||
+ BottomControlsProperties.ANDROID_VIEW_TRANSLATE_Y,
|
||||
+ -mBrowserControlsSizer.getBottomControlsMinHeight());
|
||||
+ }
|
||||
}
|
||||
mModel.set(BottomControlsProperties.ANDROID_VIEW_VISIBLE, visible);
|
||||
}
|
||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties.java
|
||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties.java
|
||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties.java
|
||||
@@ -2842,7 +2868,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
|
||||
/**
|
||||
@@ -23,6 +25,10 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -32,6 +34,10 @@ public interface AccessibilitySettingsDelegate {
|
||||
void setValue(int value);
|
||||
}
|
||||
|
||||
|
||||
@@ -577,7 +577,7 @@ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_c
|
||||
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
|
||||
--- a/net/socket/ssl_client_socket_impl.cc
|
||||
+++ b/net/socket/ssl_client_socket_impl.cc
|
||||
@@ -1187,7 +1187,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
@@ -1190,7 +1190,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
TransportSecurityState::PKPStatus pin_validity =
|
||||
context_->transport_security_state()->CheckPublicKeyPins(
|
||||
host_and_port_, server_cert_verify_result_.is_issued_by_known_root,
|
||||
@@ -587,7 +587,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
|
||||
switch (pin_validity) {
|
||||
case TransportSecurityState::PKPStatus::VIOLATED:
|
||||
server_cert_verify_result_.cert_status |=
|
||||
@@ -1209,7 +1210,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
@@ -1212,7 +1213,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
IsCertStatusError(server_cert_verify_result_.cert_status) &&
|
||||
result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED &&
|
||||
context_->transport_security_state()->ShouldSSLErrorsBeFatal(
|
||||
|
||||
@@ -24,13 +24,13 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
+bool BlobURLStoreImpl::IsSamePartition(
|
||||
+ const GURL& blob_url,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site) {
|
||||
+ const absl::optional<net::SchemefulSite>& top_level_site =
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site) {
|
||||
+ const std::optional<net::SchemefulSite>& top_level_site =
|
||||
+ registry_->GetUnsafeTopLevelSite(blob_url);
|
||||
+ if (top_level_site.has_value())
|
||||
+ return top_level_site == unsafe_top_level_site;
|
||||
+
|
||||
+ absl::optional<base::UnguessableToken> agent_cluster_id =
|
||||
+ std::optional<base::UnguessableToken> agent_cluster_id =
|
||||
+ registry_->GetUnsafeAgentClusterID(blob_url);
|
||||
+ return agent_cluster_id == unsafe_agent_cluster_id;
|
||||
+}
|
||||
@@ -45,14 +45,14 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
-void BlobURLStoreImpl::Resolve(const GURL& url, ResolveCallback callback) {
|
||||
+void BlobURLStoreImpl::Resolve(const GURL& url,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ ResolveCallback callback) {
|
||||
if (!registry_) {
|
||||
std::move(callback).Run(mojo::NullRemote(), std::nullopt);
|
||||
return;
|
||||
}
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ std::move(callback).Run(mojo::NullRemote(), absl::nullopt);
|
||||
+ std::move(callback).Run(mojo::NullRemote(), std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob = registry_->GetBlobFromUrl(url);
|
||||
@@ -63,7 +63,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsURLLoaderFactoryCallback callback) {
|
||||
if (!registry_) {
|
||||
BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
|
||||
@@ -73,7 +73,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
|
||||
+ std::move(callback).Run(absl::nullopt, absl::nullopt);
|
||||
+ std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
@@ -85,14 +85,14 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) {
|
||||
if (!registry_) {
|
||||
std::move(callback).Run(std::nullopt);
|
||||
return;
|
||||
}
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ std::move(callback).Run(absl::nullopt);
|
||||
+ std::move(callback).Run(std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob = registry_->GetBlobFromUrl(url);
|
||||
@@ -108,19 +108,19 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b
|
||||
- void Resolve(const GURL& url, ResolveCallback callback) override;
|
||||
+ void Resolve(const GURL& url,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ ResolveCallback callback) override;
|
||||
void ResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsURLLoaderFactoryCallback callback) override;
|
||||
void ResolveForNavigation(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) override;
|
||||
|
||||
private:
|
||||
@@ -131,7 +131,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b
|
||||
+ bool IsSamePartition(
|
||||
+ const GURL& blob_url,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const absl::optional<net::SchemefulSite>& unsafe_top_level_site);
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site);
|
||||
+
|
||||
const blink::StorageKey storage_key_;
|
||||
|
||||
@@ -179,9 +179,9 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi
|
||||
BlobURLNullOriginMap::GetInstance()->Remove(blob_url);
|
||||
}
|
||||
|
||||
+static absl::optional<BlinkSchemefulSite> GetInsecureTopLevelSite(
|
||||
+static std::optional<BlinkSchemefulSite> GetInsecureTopLevelSite(
|
||||
+ ExecutionContext* execution_context) {
|
||||
+ absl::optional<BlinkSchemefulSite> top_level_site;
|
||||
+ std::optional<BlinkSchemefulSite> top_level_site;
|
||||
+ if (execution_context->IsWindow()) {
|
||||
+ auto* window = To<LocalDOMWindow>(execution_context);
|
||||
+ if (window->top() && window->top()->GetFrame()) {
|
||||
|
||||
@@ -12,25 +12,26 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../browser/chrome_content_browser_client.cc | 2 +-
|
||||
.../net/profile_network_context_service.cc | 12 ++---
|
||||
.../privacy_sandbox_settings_delegate.cc | 1 +
|
||||
...storage_access_grant_permission_context.cc | 12 +++++
|
||||
.../experiment/experiment_manager_impl.cc | 1 +
|
||||
.../core/browser/cookie_settings.cc | 2 +
|
||||
.../core/common/cookie_settings_base.cc | 48 -------------------
|
||||
...ioning-all-cookies-by-top-frame-domain.inc | 3 ++
|
||||
...ioning-all-cookies-by-top-frame-domain.inc | 2 +
|
||||
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
|
||||
...ioning-all-cookies-by-top-frame-domain.inc | 10 ++++
|
||||
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
|
||||
...ioning-all-cookies-by-top-frame-domain.inc | 9 ++++
|
||||
net/cookies/canonical_cookie.cc | 13 +----
|
||||
net/cookies/cookie_deletion_info.cc | 3 +-
|
||||
net/cookies/parsed_cookie.h | 7 ++-
|
||||
.../sqlite/sqlite_persistent_cookie_store.cc | 10 ++++
|
||||
net/cookies/parsed_cookie.h | 6 ++-
|
||||
.../sqlite/sqlite_persistent_cookie_store.cc | 8 ++++
|
||||
net/url_request/url_request_http_job.cc | 10 ++--
|
||||
services/network/cookie_settings.cc | 5 +-
|
||||
services/network/restricted_cookie_manager.cc | 6 +++
|
||||
.../modules/cookie_store/cookie_init.idl | 2 +-
|
||||
.../modules/cookie_store/cookie_store.cc | 12 +++++
|
||||
.../modules/cookie_store/cookie_store.cc | 3 ++
|
||||
.../cookie_store_delete_options.idl | 2 +-
|
||||
ui/webui/webui_allowlist.cc | 1 +
|
||||
21 files changed, 72 insertions(+), 81 deletions(-)
|
||||
22 files changed, 70 insertions(+), 81 deletions(-)
|
||||
create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
|
||||
create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
|
||||
@@ -85,6 +86,28 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
|
||||
if (net::cookie_util::IsForceThirdPartyCookieBlockingEnabled()) {
|
||||
return false;
|
||||
}
|
||||
diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
|
||||
--- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
|
||||
+++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
|
||||
@@ -319,6 +319,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial(
|
||||
permissions::PermissionRequestData request_data,
|
||||
permissions::BrowserPermissionCallback callback,
|
||||
net::FirstPartySetMetadata metadata) {
|
||||
+ if ((true)) {
|
||||
+ // don't use implicit grants or heuristic, ask to user
|
||||
+ PermissionContextBase::DecidePermission(std::move(request_data),
|
||||
+ std::move(callback));
|
||||
+ // to deny:
|
||||
+ // NotifyPermissionSetInternal(request_data.id, request_data.requesting_origin,
|
||||
+ // request_data.embedding_origin,
|
||||
+ // std::move(callback),
|
||||
+ // /*persist=*/true, CONTENT_SETTING_BLOCK,
|
||||
+ // RequestOutcome::kDeniedByFirstPartySet);
|
||||
+ return;
|
||||
+ }
|
||||
if (metadata.AreSitesInSameFirstPartySet()) {
|
||||
switch (metadata.top_frame_entry()->site_type()) {
|
||||
case net::SiteType::kPrimary:
|
||||
diff --git a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc b/chrome/browser/tpcd/experiment/experiment_manager_impl.cc
|
||||
--- a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc
|
||||
+++ b/chrome/browser/tpcd/experiment/experiment_manager_impl.cc
|
||||
@@ -197,8 +220,7 @@ diff --git a/cromite_flags/components/permissions/features_cc/Partitioning-all-c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
|
||||
@@ -0,0 +1,2 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPermissionStorageAccessAPI);
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kShowRelatedWebsiteSetsPermissionGrants);
|
||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc b/cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
|
||||
new file mode 100644
|
||||
@@ -210,8 +232,7 @@ diff --git a/cromite_flags/net/base/features_cc/Partitioning-all-cookies-by-top-
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/net/base/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
|
||||
@@ -0,0 +1,10 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kPartitionedCookies);
|
||||
@@ -0,0 +1,9 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kCookieDomainRejectNonASCII);
|
||||
+
|
||||
+SET_CROMITE_FEATURE_DISABLED(kForceThirdPartyCookieBlocking);
|
||||
@@ -275,14 +296,13 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
|
||||
#include "net/base/net_export.h"
|
||||
#include "net/cookies/cookie_constants.h"
|
||||
|
||||
@@ -85,7 +86,11 @@ class NET_EXPORT ParsedCookie {
|
||||
@@ -85,7 +86,10 @@ class NET_EXPORT ParsedCookie {
|
||||
CookieSameSite SameSite(
|
||||
CookieSameSiteString* samesite_string = nullptr) const;
|
||||
CookiePriority Priority() const;
|
||||
- bool IsPartitioned() const { return partitioned_index_ != 0; }
|
||||
+ bool IsPartitioned() const {
|
||||
+ if (base::FeatureList::IsEnabled(net::features::kPartitionedCookies))
|
||||
+ return true;
|
||||
+ if ((true)) return true;
|
||||
+ return partitioned_index_ != 0;
|
||||
+ }
|
||||
bool HasInternalHtab() const { return internal_htab_; }
|
||||
@@ -291,7 +311,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
|
||||
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
||||
--- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
||||
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
|
||||
@@ -694,6 +694,16 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
|
||||
@@ -694,6 +694,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
|
||||
if (!restore_old_session_cookies_)
|
||||
DeleteSessionCookiesOnStartup();
|
||||
|
||||
@@ -299,10 +319,8 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq
|
||||
+ // (the information would be missing), we clean the current ones
|
||||
+ // present because they would otherwise be sent in third-party contexts
|
||||
+ // even if the flag is active.
|
||||
+ if (base::FeatureList::IsEnabled(features::kPartitionedCookies)) {
|
||||
+ if (!db()->Execute("DELETE FROM cookies WHERE top_frame_site_key = ''")) {
|
||||
+ LOG(WARNING) << "Unable to delete unpartitioned cookies.";
|
||||
+ }
|
||||
+ if (!db()->Execute("DELETE FROM cookies WHERE top_frame_site_key = ''")) {
|
||||
+ LOG(WARNING) << "Unable to delete unpartitioned cookies.";
|
||||
+ }
|
||||
+
|
||||
return true;
|
||||
@@ -379,36 +397,27 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t
|
||||
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
|
||||
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
|
||||
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
|
||||
@@ -341,6 +341,10 @@ ScriptPromiseTyped<IDLUndefined> CookieStore::set(
|
||||
@@ -341,6 +341,7 @@ ScriptPromiseTyped<IDLUndefined> CookieStore::set(
|
||||
CookieInit* set_options = CookieInit::Create();
|
||||
set_options->setName(name);
|
||||
set_options->setValue(value);
|
||||
+ if (RuntimeEnabledFeatures::PartitionedCookiesEnabled(
|
||||
+ CurrentExecutionContext(script_state->GetIsolate()))) {
|
||||
+ set_options->setPartitioned(true);
|
||||
+ }
|
||||
+ set_options->setPartitioned(true);
|
||||
return set(script_state, set_options, exception_state);
|
||||
}
|
||||
|
||||
@@ -365,6 +369,10 @@ ScriptPromiseTyped<IDLUndefined> CookieStore::Delete(
|
||||
@@ -365,6 +366,7 @@ ScriptPromiseTyped<IDLUndefined> CookieStore::Delete(
|
||||
set_options->setName(name);
|
||||
set_options->setValue("deleted");
|
||||
set_options->setExpires(0);
|
||||
+ if (RuntimeEnabledFeatures::PartitionedCookiesEnabled(
|
||||
+ CurrentExecutionContext(script_state->GetIsolate()))) {
|
||||
+ set_options->setPartitioned(true);
|
||||
+ }
|
||||
+ set_options->setPartitioned(true);
|
||||
return DoWrite(script_state, set_options, exception_state);
|
||||
}
|
||||
|
||||
@@ -380,6 +388,10 @@ ScriptPromiseTyped<IDLUndefined> CookieStore::Delete(
|
||||
@@ -380,6 +382,7 @@ ScriptPromiseTyped<IDLUndefined> CookieStore::Delete(
|
||||
set_options->setPath(options->path());
|
||||
set_options->setSameSite("strict");
|
||||
set_options->setPartitioned(options->partitioned());
|
||||
+ if (RuntimeEnabledFeatures::PartitionedCookiesEnabled(
|
||||
+ CurrentExecutionContext(script_state->GetIsolate()))) {
|
||||
+ set_options->setPartitioned(true);
|
||||
+ }
|
||||
+ set_options->setPartitioned(true);
|
||||
return DoWrite(script_state, set_options, exception_state);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../res/xml/referer_policy_preferences.xml | 31 +++++++
|
||||
.../privacy/settings/PrivacySettings.java | 6 ++
|
||||
.../RadioButtonGroupRefererSettings.java | 89 +++++++++++++++++++
|
||||
.../settings/RefererSettingsFragment.java | 79 ++++++++++++++++
|
||||
.../settings/RefererSettingsFragment.java | 80 +++++++++++++++++
|
||||
.../api/settings_private/prefs_util.cc | 5 ++
|
||||
.../net/system_network_context_manager.cc | 4 +
|
||||
chrome/browser/renderer_preferences_util.cc | 1 +
|
||||
@@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../renderer_host/navigation_request.cc | 9 ++
|
||||
.../network/public/cpp/resource_request.h | 2 +-
|
||||
.../renderer_preferences.h | 1 +
|
||||
23 files changed, 371 insertions(+), 1 deletion(-)
|
||||
23 files changed, 372 insertions(+), 1 deletion(-)
|
||||
create mode 100644 chrome/android/java/res/layout/radio_button_group_referer_policy_preference.xml
|
||||
create mode 100644 chrome/android/java/res/xml/referer_policy_preferences.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java
|
||||
@@ -295,7 +295,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java
|
||||
@@ -0,0 +1,79 @@
|
||||
@@ -0,0 +1,80 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -324,6 +324,7 @@ new file mode 100644
|
||||
+import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.preferences.Pref;
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.components.browser_ui.settings.TextMessagePreference;
|
||||
+import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
+import org.chromium.components.prefs.PrefService;
|
||||
@@ -336,10 +337,10 @@ new file mode 100644
|
||||
+ static final String PREF_REFERER_POLICY = "referer_page_radio_button_group";
|
||||
+
|
||||
+ private RadioButtonGroupRefererSettings mRefererPreference;
|
||||
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ private final PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
|
||||
+
|
||||
+ public static String getRefererSummaryString(Context context) {
|
||||
+ int policy = UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ int policy = UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .getInteger(Pref.REFERRERS_POLICY);
|
||||
+
|
||||
+ if (policy == 0) {
|
||||
@@ -368,9 +369,9 @@ new file mode 100644
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .setInteger(Pref.REFERRERS_POLICY, (int)newValue);
|
||||
+ UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
|
||||
+ .setBoolean(Pref.ENABLE_REFERRERS, (int)newValue != 0);
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
@@ -4,17 +4,18 @@ Subject: Remove blocklisted URLs upon bookmark creation
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../chrome/browser/bookmarks/TabBookmarker.java | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
.../chrome/browser/bookmarks/TabBookmarker.java | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java
|
||||
@@ -19,6 +19,11 @@ import org.chromium.components.bookmarks.BookmarkItem;
|
||||
@@ -19,6 +19,12 @@ import org.chromium.components.bookmarks.BookmarkItem;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
|
||||
|
||||
+import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
+import org.chromium.chrome.browser.suggestions.SuggestionsDependencyFactory;
|
||||
+import org.chromium.chrome.browser.suggestions.mostvisited.MostVisitedSites;
|
||||
+import org.chromium.url.GURL;
|
||||
@@ -22,7 +23,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBo
|
||||
/**
|
||||
* Helper class for managing the UI flow for bookmarking the active tab and kicking off the backend.
|
||||
* Shows a snackbar if a new bookmark was added. If the bookmark already exists, kicks off edit
|
||||
@@ -30,6 +35,7 @@ public class TabBookmarker {
|
||||
@@ -30,6 +36,7 @@ public class TabBookmarker {
|
||||
private final Supplier<BottomSheetController> mBottomSheetControllerSupplier;
|
||||
private final Supplier<SnackbarManager> mSnackbarManagerSupplier;
|
||||
private final boolean mIsCustomTab;
|
||||
@@ -30,14 +31,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/TabBo
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
@@ -105,6 +111,13 @@ public class TabBookmarker {
|
||||
@@ -105,6 +112,13 @@ public class TabBookmarker {
|
||||
return;
|
||||
}
|
||||
|
||||
+ // remove blocklisted URL from most visited sites
|
||||
+ if (mMostVisitedSites == null) {
|
||||
+ mMostVisitedSites =
|
||||
+ SuggestionsDependencyFactory.getInstance().createMostVisitedSites(Profile.getLastUsedRegularProfile());
|
||||
+ SuggestionsDependencyFactory.getInstance().createMostVisitedSites(ProfileManager.getLastUsedRegularProfile());
|
||||
+ }
|
||||
+ mMostVisitedSites.removeBlocklistedUrl(tabToBookmark.getOriginalUrl());
|
||||
+
|
||||
|
||||
@@ -69,7 +69,7 @@ diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.
|
||||
+ SetNetworkConnectionInfoOverride(
|
||||
+ /*on_line*/ true,
|
||||
+ /*type*/ WebConnectionType::kWebConnectionTypeWifi,
|
||||
+ /*effective_type*/ absl::nullopt,
|
||||
+ /*effective_type*/ std::nullopt,
|
||||
+ /*http_rtt_msec*/ 0,
|
||||
+ /*max_bandwidth_mbps*/ std::numeric_limits<double>::max());
|
||||
+ SetNetworkQuality(/*effective_type*/ WebEffectiveConnectionType::kType4G, base::TimeDelta(), base::TimeDelta(), 10000);
|
||||
|
||||
@@ -110,7 +110,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
|
||||
MakeGarbageCollected<WorkerClients>(),
|
||||
std::make_unique<SharedWorkerContentSettingsProxy>(
|
||||
std::move(content_settings)),
|
||||
+ absl::nullopt /* response_address_space */,
|
||||
+ std::nullopt /* response_address_space */,
|
||||
nullptr /* inherited_trial_features */, devtools_worker_token,
|
||||
std::move(worker_settings), mojom::blink::V8CacheOptions::kDefault,
|
||||
nullptr /* worklet_module_response_map */,
|
||||
@@ -272,7 +272,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third
|
||||
nullptr /* worker_main_script_load_params */,
|
||||
network::mojom::ReferrerPolicy::kDefault,
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>(),
|
||||
+ absl::nullopt /* response_address_space */,
|
||||
+ std::nullopt /* response_address_space */,
|
||||
String() /* source_code */, reject_coep_unsafe_none,
|
||||
std::move(back_forward_cache_controller_host));
|
||||
return;
|
||||
@@ -280,7 +280,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third
|
||||
ContinueStart(script_request_url_, std::move(worker_main_script_load_params),
|
||||
network::mojom::ReferrerPolicy::kDefault,
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>(),
|
||||
+ absl::nullopt /* response_address_space */,
|
||||
+ std::nullopt /* response_address_space */,
|
||||
String() /* source_code */, RejectCoepUnsafeNone(false),
|
||||
std::move(back_forward_cache_controller_host));
|
||||
}
|
||||
@@ -296,7 +296,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third
|
||||
network::mojom::ReferrerPolicy referrer_policy,
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>
|
||||
response_content_security_policies,
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space,
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space,
|
||||
const String& source_code,
|
||||
RejectCoepUnsafeNone reject_coep_unsafe_none,
|
||||
mojo::PendingRemote<mojom::blink::BackForwardCacheControllerHost>
|
||||
@@ -316,7 +316,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>
|
||||
- response_content_security_policies) {
|
||||
+ response_content_security_policies,
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space) {
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space) {
|
||||
base::UnguessableToken parent_devtools_token;
|
||||
std::unique_ptr<WorkerSettings> settings;
|
||||
ExecutionContext* execution_context = GetExecutionContext();
|
||||
@@ -335,7 +335,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_
|
||||
network::mojom::ReferrerPolicy,
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>
|
||||
response_content_security_policies,
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space,
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space,
|
||||
const String& source_code,
|
||||
RejectCoepUnsafeNone reject_coep_unsafe_none,
|
||||
mojo::PendingRemote<mojom::blink::BackForwardCacheControllerHost>
|
||||
@@ -345,7 +345,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_
|
||||
Vector<network::mojom::blink::ContentSecurityPolicyPtr>
|
||||
- response_content_security_policies);
|
||||
+ response_content_security_policies,
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space);
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space);
|
||||
scoped_refptr<WebWorkerFetchContext> CreateWebWorkerFetchContext();
|
||||
// May return nullptr.
|
||||
std::unique_ptr<WebContentSettingsClient> CreateWebContentSettingsClient();
|
||||
@@ -356,7 +356,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco
|
||||
KURL response_script_url = creation_params->script_url;
|
||||
network::mojom::ReferrerPolicy response_referrer_policy =
|
||||
creation_params->referrer_policy;
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space =
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space =
|
||||
+ creation_params->response_address_space;
|
||||
const bool parent_cross_origin_isolated_capability =
|
||||
creation_params->parent_cross_origin_isolated_capability;
|
||||
@@ -414,7 +414,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
|
||||
HttpsState starter_https_state,
|
||||
WorkerClients* worker_clients,
|
||||
std::unique_ptr<WebContentSettingsClient> content_settings_client,
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space,
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space,
|
||||
const Vector<mojom::blink::OriginTrialFeature>* inherited_trial_features,
|
||||
const base::UnguessableToken& parent_devtools_token,
|
||||
std::unique_ptr<WorkerSettings> worker_settings,
|
||||
@@ -441,7 +441,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
|
||||
HttpsState starter_https_state,
|
||||
WorkerClients*,
|
||||
std::unique_ptr<WebContentSettingsClient>,
|
||||
+ absl::optional<network::mojom::IPAddressSpace>,
|
||||
+ std::optional<network::mojom::IPAddressSpace>,
|
||||
const Vector<mojom::blink::OriginTrialFeature>* inherited_trial_features,
|
||||
const base::UnguessableToken& parent_devtools_token,
|
||||
std::unique_ptr<WorkerSettings>,
|
||||
@@ -452,7 +452,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
|
||||
+ // Worker script response's address space. This is valid only when the worker
|
||||
+ // script is fetched on the main thread (i.e., when
|
||||
+ // |off_main_thread_fetch_option| is kDisabled).
|
||||
+ absl::optional<network::mojom::IPAddressSpace> response_address_space;
|
||||
+ std::optional<network::mojom::IPAddressSpace> response_address_space;
|
||||
+
|
||||
base::UnguessableToken parent_devtools_token;
|
||||
|
||||
@@ -765,7 +765,7 @@ diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_imp
|
||||
starter_secure_context, starter_https_state, nullptr /* worker_clients */,
|
||||
- std::move(content_settings_proxy), nullptr /* inherited_trial_features */,
|
||||
+ std::move(content_settings_proxy),
|
||||
+ absl::nullopt /* response_address_space */,
|
||||
+ std::nullopt /* response_address_space */,
|
||||
+ nullptr /* inherited_trial_features */,
|
||||
worker_start_data->devtools_worker_token, std::move(worker_settings),
|
||||
// Generate the full code cache in the first execution of the script.
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 Jul 2023 15:26:11 +0000
|
||||
Subject: Show warnings on downloads over HTTP
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../chrome_features_cc/Show-warnings-on-downloads-over-HTTP.inc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Show-warnings-on-downloads-over-HTTP.inc
|
||||
|
||||
diff --git a/cromite_flags/chrome/common/chrome_features_cc/Show-warnings-on-downloads-over-HTTP.inc b/cromite_flags/chrome/common/chrome_features_cc/Show-warnings-on-downloads-over-HTTP.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/common/chrome_features_cc/Show-warnings-on-downloads-over-HTTP.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kInsecureDownloadWarnings);
|
||||
--
|
||||
@@ -531,8 +531,8 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
@@ -93,6 +93,11 @@ import org.chromium.content_public.browser.SelectionPopupController;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
@@ -94,6 +94,11 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
|
||||
+import org.chromium.content_public.browser.NavigationController;
|
||||
@@ -543,7 +543,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
/**
|
||||
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
|
||||
* class is not intended to be extended.
|
||||
@@ -633,6 +638,32 @@ class TabImpl implements Tab {
|
||||
@@ -632,6 +637,32 @@ class TabImpl implements Tab {
|
||||
params.setOverrideUserAgent(calculateUserAgentOverrideOption(null));
|
||||
}
|
||||
|
||||
@@ -576,7 +576,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
LoadUrlResult result = loadUrlInternal(params, fixedUrl);
|
||||
|
||||
for (TabObserver observer : mObservers) {
|
||||
@@ -1609,9 +1640,16 @@ class TabImpl implements Tab {
|
||||
@@ -1598,9 +1629,16 @@ class TabImpl implements Tab {
|
||||
|
||||
mWebContents.setImportance(mImportance);
|
||||
|
||||
@@ -596,7 +596,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
|
||||
mContentView.addOnAttachStateChangeListener(mAttachStateChangeListener);
|
||||
updateInteractableState();
|
||||
@@ -1802,6 +1840,10 @@ class TabImpl implements Tab {
|
||||
@@ -1791,6 +1829,10 @@ class TabImpl implements Tab {
|
||||
}
|
||||
mIsBeingRestored = true;
|
||||
for (TabObserver observer : mObservers) observer.onRestoreStarted(this);
|
||||
@@ -607,7 +607,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
} finally {
|
||||
TraceEvent.end("Tab.restoreIfNeeded");
|
||||
}
|
||||
@@ -2066,6 +2108,13 @@ class TabImpl implements Tab {
|
||||
@@ -2055,6 +2097,13 @@ class TabImpl implements Tab {
|
||||
}
|
||||
|
||||
private @UserAgentOverrideOption int calculateUserAgentOverrideOption(@Nullable GURL url) {
|
||||
@@ -621,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
|
||||
WebContents webContents = getWebContents();
|
||||
boolean currentRequestDesktopSite = TabUtils.isUsingDesktopUserAgent(webContents);
|
||||
@TabUserAgent int tabUserAgent = TabUtils.getTabUserAgent(this);
|
||||
@@ -2147,6 +2196,42 @@ class TabImpl implements Tab {
|
||||
@@ -2136,6 +2185,42 @@ class TabImpl implements Tab {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Subject: Add browser policy
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
base/win/win_util.cc | 63 +-------
|
||||
base/win/win_util.cc | 63 +--------
|
||||
chrome/android/java/AndroidManifest.xml | 4 -
|
||||
.../privacy_preferences_manager_impl.cc | 5 +
|
||||
.../metrics/chrome_feature_list_creator.cc | 12 ++
|
||||
@@ -14,13 +14,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
...ccount_consistency_mode_manager_factory.cc | 2 +-
|
||||
.../throttled_gaia_auth_fetcher.cc | 5 +
|
||||
chrome/browser/signin/chrome_signin_client.cc | 7 +-
|
||||
.../ui/webui/policy/policy_ui_handler.cc | 104 ++++++++++++-
|
||||
.../browser/signin/dice_response_handler.cc | 2 +
|
||||
.../ui/webui/policy/policy_ui_handler.cc | 104 +++++++++++++-
|
||||
.../ui/webui/policy/policy_ui_handler.h | 2 +
|
||||
.../strings/android/browser_ui_strings.grd | 2 +-
|
||||
.../commerce/core/commerce_feature_list.cc | 65 ++------
|
||||
.../commerce/core/commerce_feature_list.cc | 65 ++-------
|
||||
.../core/browser/browser_policy_connector.cc | 3 +
|
||||
.../common/command_line_policy_provider.cc | 3 +
|
||||
.../core/common/policy_loader_command_line.cc | 140 ++++++++++++++++--
|
||||
.../core/common/policy_loader_command_line.cc | 133 +++++++++++++++---
|
||||
.../policy/core/common/policy_pref_names.cc | 3 +
|
||||
.../policy/core/common/policy_pref_names.h | 1 +
|
||||
.../policy/core/common/policy_service_impl.cc | 3 +
|
||||
@@ -33,7 +34,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
components/signin/features.gni | 2 +-
|
||||
.../gaia_cookie_manager_service.cc | 4 +
|
||||
google_apis/gaia/gaia_auth_fetcher.cc | 1 +
|
||||
29 files changed, 319 insertions(+), 150 deletions(-)
|
||||
net/socket/ssl_client_socket_impl.cc | 3 +
|
||||
31 files changed, 317 insertions(+), 150 deletions(-)
|
||||
|
||||
diff --git a/base/win/win_util.cc b/base/win/win_util.cc
|
||||
--- a/base/win/win_util.cc
|
||||
@@ -326,6 +328,20 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign
|
||||
wait_for_network_callback_helper_->DelayNetworkCall(std::move(callback));
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/signin/dice_response_handler.cc
|
||||
--- a/chrome/browser/signin/dice_response_handler.cc
|
||||
+++ b/chrome/browser/signin/dice_response_handler.cc
|
||||
@@ -464,8 +464,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader(
|
||||
// - If there is a policy restriction on removing the primary account.
|
||||
bool invalidate_only_primary_account =
|
||||
identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSync) ||
|
||||
+#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
|
||||
switches::IsExplicitBrowserSigninUIOnDesktopEnabled(
|
||||
switches::ExplicitBrowserSigninPhase::kFull) ||
|
||||
+#endif
|
||||
!signin_client_->IsClearPrimaryAccountAllowed(
|
||||
/*has_sync_account=*/false);
|
||||
|
||||
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
|
||||
--- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc
|
||||
+++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
|
||||
@@ -448,7 +464,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse
|
||||
+ base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
|
||||
+
|
||||
+ // remove policy
|
||||
+ base::EraseIf(disabled_policies,
|
||||
+ std::erase_if(disabled_policies,
|
||||
+ [policy_name](const std::string& name) { return name == policy_name; });
|
||||
+
|
||||
+ // readd if exists and enabled
|
||||
@@ -645,7 +661,7 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo
|
||||
|
||||
namespace policy {
|
||||
|
||||
@@ -21,25 +46,108 @@ PolicyLoaderCommandLine::~PolicyLoaderCommandLine() = default;
|
||||
@@ -21,25 +46,101 @@ PolicyLoaderCommandLine::~PolicyLoaderCommandLine() = default;
|
||||
|
||||
PolicyBundle PolicyLoaderCommandLine::Load() {
|
||||
PolicyBundle bundle;
|
||||
@@ -731,13 +747,6 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo
|
||||
+ // Disable automatic https upgrade
|
||||
+ AddPolicy(disabled_policies_list, policy_map, policy::key::kHttpsUpgradesEnabled, base::Value(false));
|
||||
+
|
||||
+ // Check RSA key usage for server certicates issued by local trust anchors
|
||||
+ // Enforce TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 expects the digitalSignature key usage bit.
|
||||
+ AddPolicy(disabled_policies_list, policy_map, policy::key::kRSAKeyUsageForLocalAnchorsEnabled, base::Value(true));
|
||||
+
|
||||
+ // Disable Insecure Handshake Hashes
|
||||
+ AddPolicy(disabled_policies_list, policy_map, policy::key::kInsecureHashesInTLSHandshakesEnabled, base::Value(false));
|
||||
+
|
||||
+#if !BUILDFLAG(IS_ANDROID)
|
||||
+ AddPolicy(disabled_policies_list, policy_map, policy::key::kSideSearchEnabled, base::Value(false));
|
||||
+#endif
|
||||
@@ -961,4 +970,24 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
|
||||
CreateAndStartGaiaFetcher(
|
||||
" ", // To force an HTTP POST.
|
||||
kFormEncodedContentType, "Origin: https://www.google.com",
|
||||
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
|
||||
--- a/net/socket/ssl_client_socket_impl.cc
|
||||
+++ b/net/socket/ssl_client_socket_impl.cc
|
||||
@@ -772,6 +772,7 @@ int SSLClientSocketImpl::Init() {
|
||||
return ERR_UNEXPECTED;
|
||||
}
|
||||
|
||||
+ // Disable Insecure Handshake Hashes
|
||||
// Disable SHA-1 server signatures.
|
||||
// TODO(crbug.com/boringssl/699): Once the default is flipped in BoringSSL, we
|
||||
// no longer need to override it.
|
||||
@@ -1180,6 +1181,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
|
||||
cert_verifier_request_.reset();
|
||||
|
||||
+ SSL_set_enforce_rsa_key_usage(ssl_.get(), true);
|
||||
+
|
||||
// If the connection was good, check HPKP and CT status simultaneously,
|
||||
// but prefer to treat the HPKP error as more serious, if there was one.
|
||||
if (result == OK) {
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user