diff --git a/CHANGELOG.md b/CHANGELOG.md index fc8742af..ddda6e1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 79.0.3945.107 +* always show cookies, javascript and ads site settings (fixes https://github.com/bromite/bromite/issues/133) +* remove global ads and javascript menu options +* fix crash with first tab open when using always incognito (fixes https://github.com/bromite/bromite/issues/453) + # 79.0.3945.100 * log timeout values for DoH * enable DFM (fixes https://github.com/bromite/bromite/issues/441) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 5e7fa44b..110eded3 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,7 +1,5 @@ Disable-third-party-cookies-by-default.patch Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Disable-unified-consent-on-Android.patch -Unified-consent-miscellanous-backport-fixes.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch @@ -14,7 +12,6 @@ Remove-EV-certificates.patch promo-disable-Google-promotion-fetching.patch Disable-omission-of-URL-elements-in-Omnibox.patch Modify-default-preferences.patch -Disable-contextual-search-by-default.patch Do-not-store-passwords-by-default.patch Disable-NTP-remote-suggestions-by-default.patch Disable-references-to-fonts.googleapis.com.patch @@ -60,8 +57,6 @@ Add-flag-to-control-video-playback-resume-feature.patch Open-YouTube-links-in-Bromite.patch Add-exit-menu-item.patch Remove-help-menu-item.patch -Add-menu-option-to-toggle-global-Javascript-preference.patch -Add-menu-option-to-toggle-ad-blocker.patch User-Agent-anonymize.patch AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch @@ -144,3 +139,4 @@ Disable-password-reuse-detection-on-android.patch Allow-building-without-feed-support.patch Disable-addresses-autofill-by-default.patch Log-DoH-timeout.patch +Always-show-site-settings-for-cookies-javascript-and-ads.patch diff --git a/build/chromium_patches_list.txt b/build/chromium_patches_list.txt index 0fabaea1..daa4e582 100644 --- a/build/chromium_patches_list.txt +++ b/build/chromium_patches_list.txt @@ -1,6 +1,4 @@ Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Disable-unified-consent-on-Android.patch -Unified-consent-miscellanous-backport-fixes.patch AV1-codec-support.patch Switch-to-fstack-protector-strong.patch Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 281198b0..c80d3778 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -4,16 +4,18 @@ Subject: Add an always-incognito mode More specifically, add a preference that causes all new tabs and all clicked links to launch as incognito. +Make sure initial incognito status is correctly recognized. --- chrome/android/chrome_java_sources.gni | 1 + .../java/res/xml/privacy_preferences.xml | 5 ++ .../AlwaysIncognitoLinkInterceptor.java | 73 +++++++++++++++++++ - .../chrome/browser/ChromeActivity.java | 5 ++ - .../browser/appmenu/AppMenuHandlerImpl.java | 10 +++ + .../chrome/browser/ChromeActivity.java | 4 + + .../chrome/browser/ChromeTabbedActivity.java | 6 +- + .../browser/appmenu/AppMenuHandlerImpl.java | 9 +++ .../ChromeContextMenuPopulator.java | 9 ++- .../browser/tabmodel/ChromeTabCreator.java | 20 ++++- .../java/strings/android_chrome_strings.grd | 8 ++ - 8 files changed, 129 insertions(+), 2 deletions(-) + 9 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -72,7 +74,7 @@ new file mode 100644 + */ +public class AlwaysIncognitoLinkInterceptor extends EmptyTabObserver { + -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; ++ public static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; + + private final SharedPreferences alwaysIncognitoContainer; + private final Map lastUrls; @@ -123,51 +125,67 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -228,6 +228,8 @@ public abstract class ChromeActivity - - private static final int RECORD_MULTI_WINDOW_SCREEN_WIDTH_DELAY_MS = 5000; - -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; -+ - /** - * Timeout in ms for reading PartnerBrowserCustomizations provider. - */ -@@ -1706,6 +1708,9 @@ public abstract class ChromeActivity +@@ -55,6 +55,7 @@ import org.chromium.base.annotations.UsedByReflection; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; + import org.chromium.chrome.browser.IntentHandler.TabOpenType; + import org.chromium.chrome.browser.appmenu.AppMenuBlocker; +@@ -1706,6 +1707,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + return mIncognitoTabCreator; + } return incognito ? mIncognitoTabCreator : mRegularTabCreator; } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +@@ -49,6 +49,7 @@ import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.base.task.PostTask; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; + import org.chromium.chrome.browser.IntentHandler.TabOpenType; + import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; +@@ -1652,8 +1653,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo + Bundle savedInstanceState = getSavedInstanceState(); + + // We determine the model as soon as possible so every systems get initialized coherently. +- boolean startIncognito = savedInstanceState != null +- && savedInstanceState.getBoolean("is_incognito_selected", false); ++ boolean startIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false) ++ || (savedInstanceState != null ++ && savedInstanceState.getBoolean("is_incognito_selected", false)); + int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0; + + mTabModelSelectorImpl = (TabModelSelectorImpl) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java -@@ -20,6 +20,7 @@ import android.widget.PopupMenu; +@@ -20,8 +20,10 @@ import android.widget.PopupMenu; import org.chromium.base.Callback; import org.chromium.base.VisibleForTesting; +import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -@@ -58,6 +59,8 @@ class AppMenuHandlerImpl - */ - private Integer mHighlightMenuId; - -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; -+ - /** - * Whether the highlighted item should use a circle highlight or not. - */ -@@ -208,6 +211,13 @@ class AppMenuHandlerImpl + import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver; + import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; +@@ -208,6 +210,13 @@ class AppMenuHandlerImpl if (mDelegate.shouldShowHeader(appRect.height())) { headerResourceId = mDelegate.getHeaderResourceId(); } + -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + final MenuItem newTabOption = mAppMenu.getMenu().findItem(R.id.new_tab_menu_id); + if (newTabOption != null) + newTabOption.setVisible(false); @@ -179,28 +197,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -16,6 +16,7 @@ import androidx.annotation.IntDef; +@@ -16,7 +16,9 @@ import androidx.annotation.IntDef; import org.chromium.base.library_loader.LibraryProcessType; import org.chromium.base.metrics.RecordHistogram; +import org.chromium.base.ContextUtils; import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabPanel; -@@ -47,6 +48,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - private static final String TAG = "CCMenuPopulator"; - private final ContextMenuItemDelegate mDelegate; - private final @ContextMenuMode int mMode; -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; - private boolean mEnableLensWithSearchByImageText; - - /** + import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; @@ -301,7 +303,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL && !isEmptyUrl(params.getUrl()) && UrlUtilities.isAcceptedScheme(params.getUrl())) { - linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB)); -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false) ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false) + && !mDelegate.isIncognito()) { + // disallow open in new tab + } else diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 3e9585ee..d1562991 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -96,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -3987,6 +3987,13 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -3965,6 +3965,13 @@ The site does NOT gain access to the camera. The camera images are only visible 'Installing Extra ICU for Chrome…')."> Extra ICU diff --git a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch b/build/patches/Add-menu-option-to-toggle-ad-blocker.patch deleted file mode 100644 index 9d6daadf..00000000 --- a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch +++ /dev/null @@ -1,193 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 14 Sep 2019 10:19:07 +0200 -Subject: Add menu option to toggle ad blocker - ---- - .../java/res/menu/custom_tabs_menu.xml | 12 ++++++ - chrome/android/java/res/menu/main_menu.xml | 11 +++++ - .../chrome/browser/ChromeActivity.java | 8 ++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 ++++ - .../AppMenuPropertiesDelegateImpl.java | 40 +++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 2 + - .../java/strings/android_chrome_strings.grd | 11 +++++ - 7 files changed, 92 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -75,6 +75,18 @@ - android:checkable="true" /> - - -+ -+ -+ -+ -+ -+ -+ - - - - -+ -+ -+ -+ -+ -+ -+ - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2226,6 +2226,14 @@ public abstract class ChromeActivity - RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else { - return false; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1767,6 +1767,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo - reportNewTabShortcutUsed(true); - getTabCreator(true).launchNTP(); - } -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else if (id == R.id.all_bookmarks_menu_id) { - if (currentTab != null) { - getCompositorViewHolder().hideKeyboard(() -> { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -27,6 +27,7 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.ActivityTabProvider; - import org.chromium.chrome.browser.ChromeSwitches; -+import org.chromium.chrome.browser.ContentSettingsType; - import org.chromium.chrome.browser.ShortcutHelper; - import org.chromium.chrome.browser.banners.AppBannerManager; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; -@@ -235,6 +236,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - // Prepare translate menu button. - prepareTranslateMenuItem(menu, currentTab); - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - // Hide 'Add to homescreen' for the following: - // * chrome:// pages - Android doesn't know how to direct those URLs. - // * incognito pages - To avoid problems where users create shortcuts in incognito -@@ -310,6 +313,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - PrefServiceBridge.getInstance().isIncognitoModeManaged()); - } - -+ /** -+ * Updates the ad blocker item's state. -+ * -+ * @param menu {@link Menu} to enable ad blocker -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableAdBlockMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_adblock_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_adblock_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_adblock_check_id); -+ -+ -+ // Hide Block ads on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ -+ // Mark the checkbox if ad blocker is globally activated. -+ enableMenuCheck.setChecked(adBlockEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(adBlockEnabled -+ ? mContext.getString(R.string.menu_enable_adblock_on) -+ : mContext.getString(R.string.menu_enable_adblock_off)); -+ } -+ -+ - /** - * Sets the visibility and labels of the "Add to Home screen" and "Open WebAPK" menu items. - */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -205,6 +205,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - } - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); - updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); -diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd ---- a/chrome/android/java/strings/android_chrome_strings.grd -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2865,6 +2865,17 @@ To change this setting, <resetlink>reset sync

- Turn on Request desktop site - -+ -+ -+ Block ads -+ -+ -+ Turn off ad blocking -+ -+ -+ Turn on ad blocking -+ -+ - - Appearance - --- -2.17.1 - diff --git a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch b/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch deleted file mode 100644 index e5762575..00000000 --- a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch +++ /dev/null @@ -1,200 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Oct 2017 21:26:53 +0200 -Subject: Add menu option to toggle global Javascript preference - ---- - .../java/res/menu/custom_tabs_menu.xml | 12 ++++++ - chrome/android/java/res/menu/main_menu.xml | 13 +++++++ - .../chrome/browser/ChromeActivity.java | 8 ++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 ++++ - .../AppMenuPropertiesDelegateImpl.java | 39 +++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../java/strings/android_chrome_strings.grd | 11 ++++++ - 7 files changed, 92 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -49,6 +49,7 @@ - -+ - -@@ -63,6 +64,17 @@ - -+ -+

-+ -+ -+ -+
- - - -+ - - -@@ -71,6 +72,18 @@ - android:checkable="true" /> - - -+ -+ -+ -+ -+ -+ -+ -+ - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2216,6 +2216,14 @@ public abstract class ChromeActivity - currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent( - !usingDesktopUserAgent, reloadOnChange); - RecordUserAction.record("MobileMenuRequestDesktopSite"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); - } else { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1813,6 +1813,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo - NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); - } - RecordUserAction.record("MobileMenuDownloadManager"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.open_recently_closed_tab) { - TabModel currentModel = mTabModelSelectorImpl.getCurrentModel(); - if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -252,6 +252,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); - -+ updateEnableJavascriptMenuItem(menu, currentTab); -+ - // Only display reader mode settings menu option if the current page is in reader mode. - menu.findItem(R.id.reader_mode_prefs_id) - .setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl())); -@@ -438,6 +440,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - } - -+ /** -+ * Updates the enable JavaScript item's state. -+ * -+ * @param menu {@link Menu} for enable javascript -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableJavascriptMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_javascript_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_javascript_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_javascript_check_id); -+ -+ // Hide enable javascript on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ -+ // Mark the checkbox if Javascript is activated on this tab. -+ enableMenuCheck.setChecked(jsEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(jsEnabled -+ ? mContext.getString(R.string.menu_enable_javascript_on) -+ : mContext.getString(R.string.menu_enable_javascript_off)); -+ } -+ -+ -+ - /** - * Updates the request desktop site item's state. - * -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -206,6 +206,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); -+ updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); - } - } -diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd ---- a/chrome/android/java/strings/android_chrome_strings.grd -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2845,6 +2845,17 @@ To change this setting, <resetlink>reset sync

- Find in page - -+ -+ -+ JavaScript -+ -+ -+ Turn off JavaScript -+ -+ -+ Turn on JavaScript -+ -+ - - Desktop site - --- -2.17.1 - diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 7108dbcf..8e9c94d5 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1173,8 +1173,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo +@@ -1174,8 +1174,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo boolean hadCipherData = CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState()); @@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -3699,6 +3699,12 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -3677,6 +3677,12 @@ The site does NOT gain access to the camera. The camera images are only visible IMAGE diff --git a/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch new file mode 100644 index 00000000..3e324c8f --- /dev/null +++ b/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch @@ -0,0 +1,131 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 28 Dec 2019 10:23:04 +0100 +Subject: Always show site settings for cookies, javascript and ads + +Avoid displaying info about intrusive ads +--- + .../website/SingleWebsitePreferences.java | 46 +++++++++---------- + .../browser/preferences/website/Website.java | 20 ++++++++ + 2 files changed, 42 insertions(+), 24 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +@@ -46,6 +46,7 @@ import java.util.Set; + */ + public class SingleWebsitePreferences extends PreferenceFragmentCompat + implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener { ++ public static final String TAG = "SingleWebsitePreferences"; + // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or + // EXTRA_SITE_ADDRESS (a WebsiteAddress) to be present (but not both). If + // EXTRA_SITE is present, the fragment will display the permissions in that +@@ -345,7 +346,24 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + } else if (i == ContentSettingException.Type.SOUND) { + setUpSoundPreference(preference); + } else { +- setUpListPreference(preference, mSite.getContentSettingPermission(i)); ++ // some Bromite-specific overrides for the defaults ++ @ContentSettingValues ++ @Nullable ++ Integer permission = mSite.getContentSettingPermission(i); ++ // initialize cookie and javascript with the category global defaults ++ if (permission == null) { ++ if (i == ContentSettingException.Type.COOKIE) ++ permission = PrefServiceBridge.getInstance().isCategoryEnabled( ++ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES) ++ ? ContentSettingValues.ALLOW ++ : ContentSettingValues.BLOCK; ++ else if (i == ContentSettingException.Type.JAVASCRIPT) ++ permission = PrefServiceBridge.getInstance().isCategoryEnabled( ++ ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT) ++ ? ContentSettingValues.ALLOW ++ : ContentSettingValues.BLOCK; ++ } ++ setUpListPreference(preference, permission); + } + return; + } +@@ -626,17 +644,8 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + } + + private void setUpAdsInformationalBanner() { +- // Add the informational banner which shows at the top of the UI if ad blocking is +- // activated on this site. +- boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled() +- && WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin()) +- && findPreference(PERMISSION_PREFERENCE_KEYS[ContentSettingException.Type.ADS]) +- != null; +- +- if (!adBlockingActivated) { +- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); +- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER); +- } ++ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); ++ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER); + } + + private SiteSettingsCategory getWarningCategory() { +@@ -711,6 +720,7 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + // TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are + // effectively treating non-ALLOW values as BLOCK. + int index = (value == ContentSettingValues.ALLOW ? 0 : 1); ++ + listPreference.setValueIndex(index); + listPreference.setOnPreferenceChangeListener(this); + listPreference.setSummary("%s"); +@@ -782,22 +792,10 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + setUpListPreference(preference, null); + return; + } +- // If the ad blocker is activated, then this site will have ads blocked unless there is an +- // explicit permission disallowing the blocking. +- boolean activated = +- WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin()); + @ContentSettingValues + @Nullable + Integer permission = mSite.getContentSettingPermission(ContentSettingException.Type.ADS); + +- // If |permission| is null, there is no explicit (non-default) permission set for this site. +- // If the site is not considered a candidate for blocking, do the standard thing and remove +- // the preference. +- if (permission == null && !activated) { +- setUpListPreference(preference, null); +- return; +- } +- + // However, if the blocking is activated, we still want to show the permission, even if it + // is in the default state. + if (permission == null) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +@@ -166,6 +166,26 @@ public class Website implements Serializable { + new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, + getAddress().getOrigin(), ContentSettingValues.BLOCK, ""); + } ++ } else if (type == ContentSettingException.Type.COOKIE) { ++ // It is possible to set the permission without having an existing exception, ++ // because we can show the ALLOW state even when this permission is set to the ++ // default. In that case, just set an exception now to ALLOW to enable changing the ++ // permission. ++ if (mContentSettingException[type] == null) { ++ mContentSettingException[type] = ++ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES, ++ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); ++ } ++ } else if (type == ContentSettingException.Type.JAVASCRIPT) { ++ // It is possible to set the permission without having an existing exception, ++ // because we can show the ALLOW state even when this permission is set to the ++ // default. In that case, just set an exception now to ALLOW to enable changing the ++ // permission. ++ if (mContentSettingException[type] == null) { ++ mContentSettingException[type] = ++ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, ++ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); ++ } + } else if (type == ContentSettingException.Type.SOUND) { + // It is possible to set the permission without having an existing exception, + // because we always show the sound permission in Site Settings. +-- +2.17.1 + diff --git a/build/patches/Disable-contextual-search-by-default.patch b/build/patches/Disable-contextual-search-by-default.patch deleted file mode 100644 index 4316f499..00000000 --- a/build/patches/Disable-contextual-search-by-default.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Daniel Micay -Date: Wed, 23 Nov 2016 09:26:51 -0500 -Subject: Disable contextual search by default - -Disable contextual search in preference by default ---- - .../chromium/chrome/browser/preferences/PrefServiceBridge.java | 2 +- - chrome/browser/profiles/profile.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -@@ -449,7 +449,7 @@ public class PrefServiceBridge { - * @return Whether the Contextual Search feature was disabled by the user explicitly. - */ - public boolean isContextualSearchDisabled() { -- return getContextualSearchPreference().equals(CONTEXTUAL_SEARCH_DISABLED); -+ return !getContextualSearchPreference().equals(CONTEXTUAL_SEARCH_ENABLED); - } - - /** -diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc ---- a/chrome/browser/profiles/profile.cc -+++ b/chrome/browser/profiles/profile.cc -@@ -154,7 +154,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { - #if defined(OS_ANDROID) - registry->RegisterStringPref( - prefs::kContextualSearchEnabled, -- std::string(), -+ "false", - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - #endif // defined(OS_ANDROID) - registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); --- -2.17.1 - diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index 64c5a2d1..ad4ac24d 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -40,7 +40,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -232,7 +232,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -231,7 +231,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { prefs::kMediaRouterFirstRunFlowAcknowledged, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); diff --git a/build/patches/Disable-unified-consent-on-Android.patch b/build/patches/Disable-unified-consent-on-Android.patch deleted file mode 100644 index 86a772ce..00000000 --- a/build/patches/Disable-unified-consent-on-Android.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Aug 2019 08:45:43 +0200 -Subject: Disable unified consent on Android - ---- - components/unified_consent/feature.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/unified_consent/feature.cc b/components/unified_consent/feature.cc ---- a/components/unified_consent/feature.cc -+++ b/components/unified_consent/feature.cc -@@ -11,7 +11,7 @@ namespace unified_consent { - // base::Feature definition. - const base::Feature kUnifiedConsent { - "UnifiedConsent", --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) - base::FEATURE_DISABLED_BY_DEFAULT - #else - base::FEATURE_ENABLED_BY_DEFAULT --- -2.17.1 - diff --git a/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch b/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch index ada62142..80fece9e 100644 --- a/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch +++ b/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch @@ -5,8 +5,9 @@ Subject: Revert "[Merge to M78] Enable AImageReader by default." This reverts commit 60c3d4531b180b911767fb3ea7c3553d7f408c25. --- gpu/config/gpu_finch_features.cc | 2 +- + gpu/ipc/service/gpu_init.cc | 8 ++------ media/base/media_switches.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc @@ -20,6 +21,31 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc // Use android SurfaceControl API for managing display compositor's buffer queue // and using overlays on Android. +diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc +--- a/gpu/ipc/service/gpu_init.cc ++++ b/gpu/ipc/service/gpu_init.cc +@@ -493,9 +493,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, + + #if defined(OS_ANDROID) + // Disable AImageReader if the workaround is enabled. +- if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { +- base::android::AndroidImageReader::DisableSupport(); +- } ++ base::android::AndroidImageReader::DisableSupport(); + #endif + #if defined(USE_OZONE) + gpu_feature_info_.supported_buffer_formats_for_allocation_and_texturing = +@@ -523,9 +521,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line, + default_offscreen_surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size()); + + // Disable AImageReader if the workaround is enabled. +- if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { +- base::android::AndroidImageReader::DisableSupport(); +- } ++ base::android::AndroidImageReader::DisableSupport(); + + UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation()); + } diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc diff --git a/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch b/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch index cd368074..a606944b 100644 --- a/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch +++ b/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch @@ -7,12 +7,14 @@ This reverts commit c672a0683e89eba3554e2562156b3c8532136f21. Restore translations Restore contextual search preference toggle +Disable unified consent on Android +Unified consent miscellanous backport fixes --- - .../java/res/xml/privacy_preferences.xml | 30 ++++ - .../privacy/PrivacyPreferences.java | 159 ++++++++++++++++-- - .../preferences/sync/SyncPreferenceUtils.java | 5 +- - .../sync/SyncNotificationController.java | 17 +- - .../java/strings/android_chrome_strings.grd | 15 ++ + .../java/res/xml/privacy_preferences.xml | 30 +++++ + .../privacy/PrivacyPreferences.java | 117 +++++++++++++++--- + .../preferences/sync/SyncPreferenceUtils.java | 2 +- + .../sync/SyncNotificationController.java | 11 +- + .../java/strings/android_chrome_strings.grd | 15 +++ .../android_chrome_strings_am.xtb | 19 ++- .../android_chrome_strings_ar.xtb | 19 ++- .../android_chrome_strings_bg.xtb | 19 ++- @@ -66,8 +68,11 @@ Restore contextual search preference toggle .../android_chrome_strings_zh-CN.xtb | 19 ++- .../android_chrome_strings_zh-TW.xtb | 19 ++- .../chrome/browser/sync/SyncTestRule.java | 9 +- - .../chromium/chrome/browser/sync/UkmTest.java | 50 +++++- - 59 files changed, 1200 insertions(+), 73 deletions(-) + .../chromium/chrome/browser/sync/UkmTest.java | 50 +++++++- + chrome/browser/profiles/profile.cc | 3 +- + .../unified_consent_service_factory.cc | 5 +- + components/unified_consent/feature.cc | 2 +- + 62 files changed, 1150 insertions(+), 82 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml @@ -128,14 +133,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -@@ -9,12 +9,15 @@ import android.support.graphics.drawable.VectorDrawableCompat; - import android.support.v7.preference.CheckBoxPreference; - import android.support.v7.preference.Preference; - import android.support.v7.preference.PreferenceFragmentCompat; -+import android.support.v7.preference.PreferenceScreen; - import android.view.Menu; - import android.view.MenuInflater; - import android.view.MenuItem; +@@ -15,6 +15,8 @@ import android.view.MenuItem; import org.chromium.base.BuildInfo; import org.chromium.chrome.R; @@ -144,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; -@@ -33,11 +36,21 @@ import org.chromium.ui.text.SpanApplier; +@@ -33,18 +35,25 @@ import org.chromium.ui.text.SpanApplier; */ public class PrivacyPreferences extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { @@ -158,7 +156,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; - private static final String PREF_USAGE_STATS = "usage_stats_reporting"; private static final String PREF_DO_NOT_TRACK = "do_not_track"; -+ private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports"; + private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; + private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = + "sync_and_services_link_divider"; @@ -167,15 +164,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri private ManagedPreferenceDelegate mManagedPreferenceDelegate; -@@ -49,6 +62,7 @@ public class PrivacyPreferences + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { +- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); +- privacyPrefManager.migrateNetworkPredictionPreferences(); + PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); getActivity().setTitle(R.string.prefs_privacy); setHasOptionsMenu(true); - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -+ PreferenceScreen preferenceScreen = getPreferenceScreen(); - - mManagedPreferenceDelegate = createManagedPreferenceDelegate(); - -@@ -62,26 +76,90 @@ public class PrivacyPreferences +@@ -62,26 +71,57 @@ public class PrivacyPreferences networkPredictionPref.setOnPreferenceChangeListener(this); networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); @@ -187,41 +183,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri - syncAndServicesLink.setSummary( - SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), - new SpanApplier.SpanInfo("", "", linkSpan))); -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ // Remove preferences that were migrated to SyncAndServicesPreferences. -+ preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR)); -+ preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); -+ preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING)); -+ preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING)); -+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -+ preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); -+ -+ // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. -+ networkPredictionPref.setTitle(R.string.preload_pages_title); -+ networkPredictionPref.setSummary(R.string.preload_pages_summary); -+ -+ // Put networkPredictionPref after canMakePaymentPref by overriding order value. -+ // However, calling setOrder doesn't change existing order if Preference has already -+ // been added to PreferenceGroup. Remove and re-add it to work around this. -+ // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch. -+ preferenceScreen.removePreference(networkPredictionPref); -+ networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); -+ preferenceScreen.addPreference(networkPredictionPref); -+ -+ Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); -+ NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { -+ PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class, -+ SyncAndServicesPreferences.createArguments(false)); -+ }); -+ syncAndServicesLink.setSummary( -+ SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), -+ new SpanApplier.SpanInfo("", "", linkSpan))); -+ -+ updateSummaries(); -+ return; -+ } -+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); ++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); ++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); + + ChromeBaseCheckBoxPreference navigationErrorPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); @@ -234,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); + + if (!ContextualSearchFieldTrial.isEnabled()) { -+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); ++ getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); + } + + // Listen to changes to the Extended Reporting pref. @@ -278,12 +241,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } return true; -@@ -98,6 +176,36 @@ public class PrivacyPreferences - */ +@@ -99,6 +139,35 @@ public class PrivacyPreferences public void updateSummaries() { PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -+ PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); -+ + + CharSequence textOn = getActivity().getResources().getText(R.string.text_on); + CharSequence textOff = getActivity().getResources().getText(R.string.text_off); + @@ -312,10 +273,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + if (safeBrowsingPref != null) { + safeBrowsingPref.setChecked(prefServiceBridge.isSafeBrowsingEnabled()); + } - ++ CheckBoxPreference canMakePaymentPref = (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT); -@@ -112,6 +220,19 @@ public class PrivacyPreferences + if (canMakePaymentPref != null) { +@@ -112,6 +181,12 @@ public class PrivacyPreferences prefServiceBridge.isDoNotTrackEnabled() ? R.string.text_on : R.string.text_off); } @@ -324,18 +286,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled(); + contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); + } -+ -+ Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING); -+ if (usageAndCrashPref != null) { -+ usageAndCrashPref.setSummary( -+ privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn -+ : textOff); -+ } + Preference usageStatsPref = findPreference(PREF_USAGE_STATS); if (usageStatsPref != null) { if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { -@@ -136,6 +257,18 @@ public class PrivacyPreferences +@@ -136,6 +211,18 @@ public class PrivacyPreferences return preference -> { String key = preference.getKey(); PrefServiceBridge prefs = PrefServiceBridge.getInstance(); @@ -357,14 +312,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -118,7 +118,10 @@ public class SyncPreferenceUtils { +@@ -118,7 +118,7 @@ public class SyncPreferenceUtils { if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { return res.getString(R.string.sync_need_passphrase); } - return context.getString(R.string.sync_and_services_summary_sync_on); -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ return context.getString(R.string.sync_and_services_summary_sync_on); -+ } + return context.getString(R.string.account_management_sync_summary, accountName); } return context.getString(R.string.sync_is_disabled); @@ -394,22 +346,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotifi import org.chromium.chrome.browser.sync.GoogleServiceAuthError.State; import org.chromium.chrome.browser.sync.ui.PassphraseActivity; import org.chromium.components.sync.AndroidSyncSettings; -@@ -154,9 +157,17 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC +@@ -154,9 +157,11 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC * @return the intent for opening the settings */ private Intent createSettingsIntent() { - return PreferencesLauncher.createIntentForSettingsPage(ContextUtils.getApplicationContext(), - SyncAndServicesPreferences.class.getName(), - SyncAndServicesPreferences.createArguments(false)); -+ final String fragmentName; -+ final Bundle fragmentArguments; -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ fragmentName = SyncAndServicesPreferences.class.getName(); -+ fragmentArguments = SyncAndServicesPreferences.createArguments(false); -+ } else { -+ fragmentName = AccountManagementFragment.class.getName(); -+ fragmentArguments = null; -+ } ++ final String fragmentName = AccountManagementFragment.class.getName(); ++ final Bundle fragmentArguments = null; ++ + return PreferencesLauncher.createIntentForSettingsPage( + ContextUtils.getApplicationContext(), fragmentName, fragmentArguments); } @@ -1954,6 +1900,46 @@ diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/UkmTe + } } } +diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc +--- a/chrome/browser/profiles/profile.cc ++++ b/chrome/browser/profiles/profile.cc +@@ -154,8 +154,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { + #if defined(OS_ANDROID) + registry->RegisterStringPref( + prefs::kContextualSearchEnabled, +- std::string(), +- user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ std::string()); + #endif // defined(OS_ANDROID) + registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); + registry->RegisterStringPref(prefs::kSessionExitType, std::string()); +diff --git a/chrome/browser/unified_consent/unified_consent_service_factory.cc b/chrome/browser/unified_consent/unified_consent_service_factory.cc +--- a/chrome/browser/unified_consent/unified_consent_service_factory.cc ++++ b/chrome/browser/unified_consent/unified_consent_service_factory.cc +@@ -36,10 +36,7 @@ std::vector GetSyncedServicePrefNames() { + return { + prefs::kSearchSuggestEnabled, prefs::kAlternateErrorPagesEnabled, + prefs::kSafeBrowsingEnabled, prefs::kSafeBrowsingScoutReportingEnabled, +- spellcheck::prefs::kSpellCheckUseSpellingService, +-#if defined(OS_ANDROID) +- prefs::kContextualSearchEnabled +-#endif ++ spellcheck::prefs::kSpellCheckUseSpellingService + }; + } + +diff --git a/components/unified_consent/feature.cc b/components/unified_consent/feature.cc +--- a/components/unified_consent/feature.cc ++++ b/components/unified_consent/feature.cc +@@ -11,7 +11,7 @@ namespace unified_consent { + // base::Feature definition. + const base::Feature kUnifiedConsent { + "UnifiedConsent", +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_ANDROID) + base::FEATURE_DISABLED_BY_DEFAULT + #else + base::FEATURE_ENABLED_BY_DEFAULT -- 2.17.1 diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch deleted file mode 100644 index 6d2db27e..00000000 --- a/build/patches/Unified-consent-miscellanous-backport-fixes.patch +++ /dev/null @@ -1,156 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Dec 2019 23:54:37 +0100 -Subject: Unified consent miscellanous backport fixes - ---- - .../privacy/PrivacyPreferences.java | 52 ++----------------- - .../preferences/sync/SyncPreferenceUtils.java | 3 -- - .../sync/SyncNotificationController.java | 12 ++--- - 3 files changed, 6 insertions(+), 61 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -@@ -9,7 +9,6 @@ import android.support.graphics.drawable.VectorDrawableCompat; - import android.support.v7.preference.CheckBoxPreference; - import android.support.v7.preference.Preference; - import android.support.v7.preference.PreferenceFragmentCompat; --import android.support.v7.preference.PreferenceScreen; - import android.view.Menu; - import android.view.MenuInflater; - import android.view.MenuItem; -@@ -45,7 +44,6 @@ public class PrivacyPreferences - private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search"; - private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; - private static final String PREF_DO_NOT_TRACK = "do_not_track"; -- private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports"; - private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; - private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = - "sync_and_services_link_divider"; -@@ -56,13 +54,10 @@ public class PrivacyPreferences - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); -- privacyPrefManager.migrateNetworkPredictionPreferences(); - PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); - getActivity().setTitle(R.string.prefs_privacy); - setHasOptionsMenu(true); - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -- PreferenceScreen preferenceScreen = getPreferenceScreen(); - - mManagedPreferenceDelegate = createManagedPreferenceDelegate(); - -@@ -76,41 +71,8 @@ public class PrivacyPreferences - networkPredictionPref.setOnPreferenceChangeListener(this); - networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- // Remove preferences that were migrated to SyncAndServicesPreferences. -- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR)); -- preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); -- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING)); -- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING)); -- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); -- -- // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. -- networkPredictionPref.setTitle(R.string.preload_pages_title); -- networkPredictionPref.setSummary(R.string.preload_pages_summary); -- -- // Put networkPredictionPref after canMakePaymentPref by overriding order value. -- // However, calling setOrder doesn't change existing order if Preference has already -- // been added to PreferenceGroup. Remove and re-add it to work around this. -- // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch. -- preferenceScreen.removePreference(networkPredictionPref); -- networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); -- preferenceScreen.addPreference(networkPredictionPref); -- -- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); -- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { -- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class, -- SyncAndServicesPreferences.createArguments(false)); -- }); -- syncAndServicesLink.setSummary( -- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), -- new SpanApplier.SpanInfo("", "", linkSpan))); -- -- updateSummaries(); -- return; -- } -- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); -+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); - - ChromeBaseCheckBoxPreference navigationErrorPref = - (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); -@@ -123,7 +85,7 @@ public class PrivacyPreferences - searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - - if (!ContextualSearchFieldTrial.isEnabled()) { -- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -+ getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); - } - - // Listen to changes to the Extended Reporting pref. -@@ -176,7 +138,6 @@ public class PrivacyPreferences - */ - public void updateSummaries() { - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); - - CharSequence textOn = getActivity().getResources().getText(R.string.text_on); - CharSequence textOff = getActivity().getResources().getText(R.string.text_off); -@@ -226,13 +187,6 @@ public class PrivacyPreferences - contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); - } - -- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING); -- if (usageAndCrashPref != null) { -- usageAndCrashPref.setSummary( -- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn -- : textOff); -- } -- - Preference usageStatsPref = findPreference(PREF_USAGE_STATS); - if (usageStatsPref != null) { - if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -118,9 +118,6 @@ public class SyncPreferenceUtils { - if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { - return res.getString(R.string.sync_need_passphrase); - } -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- return context.getString(R.string.sync_and_services_summary_sync_on); -- } - return context.getString(R.string.account_management_sync_summary, accountName); - } - return context.getString(R.string.sync_is_disabled); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -@@ -157,15 +157,9 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC - * @return the intent for opening the settings - */ - private Intent createSettingsIntent() { -- final String fragmentName; -- final Bundle fragmentArguments; -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- fragmentName = SyncAndServicesPreferences.class.getName(); -- fragmentArguments = SyncAndServicesPreferences.createArguments(false); -- } else { -- fragmentName = AccountManagementFragment.class.getName(); -- fragmentArguments = null; -- } -+ final String fragmentName = AccountManagementFragment.class.getName(); -+ final Bundle fragmentArguments = null; -+ - return PreferencesLauncher.createIntentForSettingsPage( - ContextUtils.getApplicationContext(), fragmentName, fragmentArguments); - } --- -2.17.1 -