Browse Source

Release 91.0.4472.50

csagan5 4 years ago
parent
commit
1953e3d415

+ 6 - 0
CHANGELOG.md

@@ -1,3 +1,9 @@
+# 91.0.4472.50
+* unexpire tab group flags `#enable-tab-groups` and `#enable-tab-groups-ui-improvements`
+* replace known good hostname used for DoH test (fixes https://github.com/bromite/bromite/issues/1148)
+* drop patch to disable preview fetching
+* drop patch to restore horizontal tab switcher
+
 # 90.0.4430.204
 # 90.0.4430.204
 * fix for custom tab intent tab crashes when in always incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1116)
 * fix for custom tab intent tab crashes when in always incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1116)
 
 

+ 1 - 1
README.md

@@ -93,7 +93,6 @@ You can inspect all functionality/privacy changes by reading the [patches](https
 
 
 Flags which have been retired from upstream Chromium but are still available in Bromite.
 Flags which have been retired from upstream Chromium but are still available in Bromite.
 
 
-* `#enable-horizontal-tab-switcher`
 * `#pull-to-refresh`
 * `#pull-to-refresh`
 * `#enable-search-ready-omnibox`
 * `#enable-search-ready-omnibox`
 * `#darken-websites-checkbox-in-themes-setting`
 * `#darken-websites-checkbox-in-themes-setting`
@@ -101,6 +100,7 @@ Flags which have been retired from upstream Chromium but are still available in
 * `#enable-text-fragment-anchor`, disabled by default
 * `#enable-text-fragment-anchor`, disabled by default
 * `#num-raster-threads`
 * `#num-raster-threads`
 * `#enable-image-reader`, enabled by default
 * `#enable-image-reader`, enabled by default
+* `#enable-tab-groups` and `#enable-tab-groups-ui-improvements`
 
 
 New flags:
 New flags:
 
 

+ 1 - 0
build/bromite_patches_list.txt

@@ -147,4 +147,5 @@ Add-AllowUserCertificates-flag.patch
 Add-IsCleartextPermitted-flag.patch
 Add-IsCleartextPermitted-flag.patch
 Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch
 Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch
 Disable-FLoC-by-default.patch
 Disable-FLoC-by-default.patch
+Unexpire-tab-groups-flags.patch
 Automated-domain-substitution.patch
 Automated-domain-substitution.patch

+ 1 - 1
build/patches/Add-a-proxy-configuration-page.patch

@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
-@@ -344,6 +344,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
+@@ -342,6 +342,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
  std::vector<std::u16string>
  std::vector<std::u16string>
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    std::vector<std::u16string> builtins_to_provide;
    std::vector<std::u16string> builtins_to_provide;

+ 11 - 2
build/patches/Add-an-always-incognito-mode.patch

@@ -10,7 +10,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
  chrome/android/chrome_java_sources.gni        |  1 +
  chrome/android/chrome_java_sources.gni        |  1 +
  .../java/res/xml/privacy_preferences.xml      |  5 ++
  .../java/res/xml/privacy_preferences.xml      |  5 ++
  .../AlwaysIncognitoLinkInterceptor.java       | 80 +++++++++++++++++++
  .../AlwaysIncognitoLinkInterceptor.java       | 80 +++++++++++++++++++
- .../chrome/browser/ChromeTabbedActivity.java  |  6 +-
+ .../chrome/browser/ChromeTabbedActivity.java  |  8 +-
  .../chrome/browser/app/ChromeActivity.java    |  4 +
  .../chrome/browser/app/ChromeActivity.java    |  4 +
  .../AppMenuPropertiesDelegateImpl.java        |  6 ++
  .../AppMenuPropertiesDelegateImpl.java        |  6 ++
  .../ChromeContextMenuPopulator.java           | 28 +++++--
  .../ChromeContextMenuPopulator.java           | 28 +++++--
@@ -23,7 +23,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c
  .../webapps/WebappIntentDataProvider.java     | 14 ++++
  .../webapps/WebappIntentDataProvider.java     | 14 ++++
  .../flags/android/chrome_feature_list.cc      |  2 +-
  .../flags/android/chrome_feature_list.cc      |  2 +-
  .../strings/android_chrome_strings.grd        |  7 ++
  .../strings/android_chrome_strings.grd        |  7 ++
- 16 files changed, 186 insertions(+), 38 deletions(-)
+ 16 files changed, 187 insertions(+), 39 deletions(-)
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
  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
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
@@ -160,6 +160,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
          int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0;
          int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0;
  
  
          mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mOverviewModeBehaviorSupplier);
          mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mOverviewModeBehaviorSupplier);
+@@ -1715,7 +1717,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+             public void onTabStateInitialized() {
+                 if (!mCreatedTabOnStartup) return;
+ 
+-                TabModel model = mTabModelSelectorImpl.getModel(false);
++                TabModel model = mTabModelSelectorImpl.getModel(startIncognito);
+                 TasksUma.recordTasksUma(model);
+             }
+         });
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java

+ 15 - 28
build/patches/Automated-domain-substitution.patch

@@ -157,7 +157,6 @@ Subject: Automated domain substitution
  .../nacl_host/nacl_infobar_delegate.cc        |    2 +-
  .../nacl_host/nacl_infobar_delegate.cc        |    2 +-
  .../client/nearby_share_client_impl.cc        |    4 +-
  .../client/nearby_share_client_impl.cc        |    4 +-
  .../instantmessaging/constants.h              |    4 +-
  .../instantmessaging/constants.h              |    4 +-
- chrome/browser/net/dns_probe_runner.cc        |    2 +-
  .../notification_platform_bridge_mac.mm       |    2 +-
  .../notification_platform_bridge_mac.mm       |    2 +-
  ...uction_proxy_metrics_observer_test_utils.h |    2 +-
  ...uction_proxy_metrics_observer_test_utils.h |    2 +-
  ...rvice_worker_page_load_metrics_observer.cc |    2 +-
  ...rvice_worker_page_load_metrics_observer.cc |    2 +-
@@ -1506,7 +1505,7 @@ Subject: Automated domain substitution
  weblayer/browser/default_search_engine.cc     |    2 +-
  weblayer/browser/default_search_engine.cc     |    2 +-
  ...weblayer_security_blocking_page_factory.cc |    2 +-
  ...weblayer_security_blocking_page_factory.cc |    2 +-
  weblayer/shell/app/shell_main_params.cc       |    2 +-
  weblayer/shell/app/shell_main_params.cc       |    2 +-
- 1503 files changed, 4541 insertions(+), 4541 deletions(-)
+ 1502 files changed, 4540 insertions(+), 4540 deletions(-)
 
 
 diff --git a/PRESUBMIT.py b/PRESUBMIT.py
 diff --git a/PRESUBMIT.py b/PRESUBMIT.py
 --- a/PRESUBMIT.py
 --- a/PRESUBMIT.py
@@ -5434,18 +5433,6 @@ diff --git a/chrome/browser/nearby_sharing/instantmessaging/constants.h b/chrome
  
  
  // Template for optional OAuth2 authorization HTTP header.
  // Template for optional OAuth2 authorization HTTP header.
  const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s";
  const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s";
-diff --git a/chrome/browser/net/dns_probe_runner.cc b/chrome/browser/net/dns_probe_runner.cc
---- a/chrome/browser/net/dns_probe_runner.cc
-+++ b/chrome/browser/net/dns_probe_runner.cc
-@@ -18,7 +18,7 @@
- 
- namespace chrome_browser_net {
- 
--const char DnsProbeRunner::kKnownGoodHostname[] = "google.com";
-+const char DnsProbeRunner::kKnownGoodHostname[] = "9oo91e.qjz9zk";
- 
- namespace {
- 
 diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/chrome/browser/notifications/notification_platform_bridge_mac.mm
 diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/chrome/browser/notifications/notification_platform_bridge_mac.mm
 --- a/chrome/browser/notifications/notification_platform_bridge_mac.mm
 --- a/chrome/browser/notifications/notification_platform_bridge_mac.mm
 +++ b/chrome/browser/notifications/notification_platform_bridge_mac.mm
 +++ b/chrome/browser/notifications/notification_platform_bridge_mac.mm
@@ -7718,7 +7705,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
  
  
  CHAR-LIMIT guidelines:
  CHAR-LIMIT guidelines:
    Certain strings need character limits to prevent a long translation from breaking the UI.
    Certain strings need character limits to prevent a long translation from breaking the UI.
-@@ -857,7 +857,7 @@ Privacy Sandbox is still in active development and is available in selected regi
+@@ -892,7 +892,7 @@ Privacy Sandbox is still in active development and is available in selected regi
          Choose another provider
          Choose another provider
        </message>
        </message>
        <message name="IDS_SETTINGS_SECURE_DROPDOWN_MODE_PRIVACY_POLICY" desc="Text that displays a link to the privacy policy of the resolver selected from a dropdown menu">
        <message name="IDS_SETTINGS_SECURE_DROPDOWN_MODE_PRIVACY_POLICY" desc="Text that displays a link to the privacy policy of the resolver selected from a dropdown menu">
@@ -7727,7 +7714,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_SETTINGS_SECURE_DNS_DISABLED_FOR_MANAGED_ENVIRONMENT" desc="Substring of the secure DNS setting when secure DNS is disabled due to detection of a managed environment">
        <message name="IDS_SETTINGS_SECURE_DNS_DISABLED_FOR_MANAGED_ENVIRONMENT" desc="Substring of the secure DNS setting when secure DNS is disabled due to detection of a managed environment">
          This setting is disabled on managed browsers
          This setting is disabled on managed browsers
-@@ -887,7 +887,7 @@ Privacy Sandbox is still in active development and is available in selected regi
+@@ -922,7 +922,7 @@ Privacy Sandbox is still in active development and is available in selected regi
        <message name="IDS_CLEAR_BROWSING_DATA_HISTORY_DIALOG_DATA_TEXT" desc="Text of the dialog that is shown after the deletion of browsing history items finished, indicating that the selected data has been removed, but there may be other forms of browsing history still present in user's Google account.">
        <message name="IDS_CLEAR_BROWSING_DATA_HISTORY_DIALOG_DATA_TEXT" desc="Text of the dialog that is shown after the deletion of browsing history items finished, indicating that the selected data has been removed, but there may be other forms of browsing history still present in user's Google account.">
          The selected data has been removed from Chrome and your synced devices.
          The selected data has been removed from Chrome and your synced devices.
  
  
@@ -7736,7 +7723,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_CLEAR_CACHE_TITLE" desc="Title for Clear Cache in Clear Browsing Data dialog">
        <message name="IDS_CLEAR_CACHE_TITLE" desc="Title for Clear Cache in Clear Browsing Data dialog">
          Cached images and files
          Cached images and files
-@@ -924,10 +924,10 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -959,10 +959,10 @@ Your Google account may have other forms of browsing history like searches and a
  				Record history even in incognito mode
  				Record history even in incognito mode
  			</message>
  			</message>
        <message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SIGNED_IN" desc="A text explaining other forms of activity for signed in users.">
        <message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SIGNED_IN" desc="A text explaining other forms of activity for signed in users.">
@@ -7749,7 +7736,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_CLEAR_SEARCH_HISTORY_LINK" desc="Text informing the user that they can clear search history and other data using MyActivity.">
        <message name="IDS_CLEAR_SEARCH_HISTORY_LINK" desc="Text informing the user that they can clear search history and other data using MyActivity.">
          To clear <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>search<ph name="END_LINK1">&lt;/link1&gt;</ph> or other forms of history, visit <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>My Google Activity<ph name="END_LINK2">&lt;/link2&gt;</ph>
          To clear <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>search<ph name="END_LINK1">&lt;/link1&gt;</ph> or other forms of history, visit <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>My Google Activity<ph name="END_LINK2">&lt;/link2&gt;</ph>
-@@ -990,7 +990,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1025,7 +1025,7 @@ Your Google account may have other forms of browsing history like searches and a
          Basic
          Basic
        </message>
        </message>
        <message name="IDS_ANDROID_HISTORY_OTHER_FORMS_OF_HISTORY" desc="The notification at the top of the history page indicating that deleting Chrome browsing history will not delete other forms of history stored at Google My Activity.">
        <message name="IDS_ANDROID_HISTORY_OTHER_FORMS_OF_HISTORY" desc="The notification at the top of the history page indicating that deleting Chrome browsing history will not delete other forms of history stored at Google My Activity.">
@@ -7758,7 +7745,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_ANDROID_HISTORY_BLOCKED_SITE" desc="The text displayed in the history page indicating that a visit to a web site was blocked due to an administrator policy.">
        <message name="IDS_ANDROID_HISTORY_BLOCKED_SITE" desc="The text displayed in the history page indicating that a visit to a web site was blocked due to an administrator policy.">
          Blocked site
          Blocked site
-@@ -1400,7 +1400,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1435,7 +1435,7 @@ Your Google account may have other forms of browsing history like searches and a
          In Lite mode, Chrome loads pages faster and uses up to 60 percent less data. To optimize the pages that you visit, Chrome sends your web traffic to Google. <ph name="BEGIN_LINK">&lt;link&gt;</ph>Learn more<ph name="END_LINK">&lt;/link&gt;</ph>
          In Lite mode, Chrome loads pages faster and uses up to 60 percent less data. To optimize the pages that you visit, Chrome sends your web traffic to Google. <ph name="BEGIN_LINK">&lt;link&gt;</ph>Learn more<ph name="END_LINK">&lt;/link&gt;</ph>
        </message>
        </message>
        <message name="IDS_DATA_REDUCTION_PROMO_LEARN_MORE_URL" desc="URL for Lite mode help center article" translateable="false">
        <message name="IDS_DATA_REDUCTION_PROMO_LEARN_MORE_URL" desc="URL for Lite mode help center article" translateable="false">
@@ -7767,7 +7754,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_DATA_REDUCTION_ENABLE_BUTTON_LITE_MODE" desc="Button the user presses if they want to enable Lite mode" >
        <message name="IDS_DATA_REDUCTION_ENABLE_BUTTON_LITE_MODE" desc="Button the user presses if they want to enable Lite mode" >
          Turn on Lite mode
          Turn on Lite mode
-@@ -1587,10 +1587,10 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1622,10 +1622,10 @@ Your Google account may have other forms of browsing history like searches and a
          Waiting for details of parents.
          Waiting for details of parents.
        </message>
        </message>
        <message name="IDS_ACCOUNT_MANAGEMENT_ONE_PARENT_NAME" desc="String for name of single parent for child account.">
        <message name="IDS_ACCOUNT_MANAGEMENT_ONE_PARENT_NAME" desc="String for name of single parent for child account.">
@@ -7780,7 +7767,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_ACCOUNT_MANAGEMENT_CHILD_CONTENT_TITLE" desc="Title of the Content setting, which controls which websites a child is allowed to visit.">
        <message name="IDS_ACCOUNT_MANAGEMENT_CHILD_CONTENT_TITLE" desc="Title of the Content setting, which controls which websites a child is allowed to visit.">
          Content
          Content
-@@ -1649,22 +1649,22 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1684,22 +1684,22 @@ Your Google account may have other forms of browsing history like searches and a
          Google Terms of Service
          Google Terms of Service
        </message>
        </message>
        <message name="IDS_GOOGLE_TERMS_OF_SERVICE_URL" desc="URL for Google terms of service" translateable="false">
        <message name="IDS_GOOGLE_TERMS_OF_SERVICE_URL" desc="URL for Google terms of service" translateable="false">
@@ -7807,7 +7794,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
  
  
        <!-- Sign-in strings -->
        <!-- Sign-in strings -->
-@@ -1681,7 +1681,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1716,7 +1716,7 @@ Your Google account may have other forms of browsing history like searches and a
          Also clear your Chrome data from this device
          Also clear your Chrome data from this device
        </message>
        </message>
        <message name="IDS_SIGNOUT_MANAGED_ACCOUNT_MESSAGE" desc="Message to display for sign out of Chrome dialog when the account has enterprise management, and all user data will be erased">
        <message name="IDS_SIGNOUT_MANAGED_ACCOUNT_MESSAGE" desc="Message to display for sign out of Chrome dialog when the account has enterprise management, and all user data will be erased">
@@ -7816,7 +7803,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_SIGN_IN_GETTING_ACCOUNT_MANAGEMENT_POLICY" desc="Title of progress bar dialog for getting management policy">
        <message name="IDS_SIGN_IN_GETTING_ACCOUNT_MANAGEMENT_POLICY" desc="Title of progress bar dialog for getting management policy">
          Contacting Google. This may take a minute…
          Contacting Google. This may take a minute…
-@@ -1826,7 +1826,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -1861,7 +1861,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
  
  
        <!-- Bluetooth Picker UI strings -->
        <!-- Bluetooth Picker UI strings -->
        <message name="IDS_BLUETOOTH_DIALOG_TITLE" desc="The header message shown on top of the dialog that lets the user pick a Bluetooth device for the site to pair with. Shown above a list of Bluetooth devices discovered. ">
        <message name="IDS_BLUETOOTH_DIALOG_TITLE" desc="The header message shown on top of the dialog that lets the user pick a Bluetooth device for the site to pair with. Shown above a list of Bluetooth devices discovered. ">
@@ -7825,7 +7812,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <message name="IDS_BLUETOOTH_SEARCHING" desc="The message shown in the Bluetooth picker dialog while scanning for devices.">
        <message name="IDS_BLUETOOTH_SEARCHING" desc="The message shown in the Bluetooth picker dialog while scanning for devices.">
          <ph name="BEGIN_LINK">&lt;link&gt;</ph>Get help<ph name="END_LINK">&lt;/link&gt;</ph> while scanning for devices…
          <ph name="BEGIN_LINK">&lt;link&gt;</ph>Get help<ph name="END_LINK">&lt;/link&gt;</ph> while scanning for devices…
        </message>
        </message>
-@@ -1871,7 +1871,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -1906,7 +1906,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
  
  
        <!-- Bluetooth Scanning Prompt strings -->
        <!-- Bluetooth Scanning Prompt strings -->
        <message name="IDS_BLUETOOTH_SCANNING_PROMPT_ORIGIN" desc="The label that is used to introduce Bluetooth scanning prompt details to the user when it is from a website.">
        <message name="IDS_BLUETOOTH_SCANNING_PROMPT_ORIGIN" desc="The label that is used to introduce Bluetooth scanning prompt details to the user when it is from a website.">
@@ -7834,7 +7821,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_BLUETOOTH_SCANNING_DEVICE_UNKNOWN" desc="Text to identify Bluetooth devices of unknown or unsupported class.">
        <message name="IDS_BLUETOOTH_SCANNING_DEVICE_UNKNOWN" desc="Text to identify Bluetooth devices of unknown or unsupported class.">
          Unknown or unsupported device (<ph name="DEVICE_ID">%1$s<ex>A1:B2:C3:D4:E5:F6</ex></ph>)
          Unknown or unsupported device (<ph name="DEVICE_ID">%1$s<ex>A1:B2:C3:D4:E5:F6</ex></ph>)
-@@ -3716,7 +3716,7 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
+@@ -3751,7 +3751,7 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
  
  
        <!-- WebUsb Picker UI strings -->
        <!-- WebUsb Picker UI strings -->
        <message name="IDS_USB_CHOOSER_DIALOG_PROMPT" desc="The text that is used to introduce the USB chooser dialog to the user.">
        <message name="IDS_USB_CHOOSER_DIALOG_PROMPT" desc="The text that is used to introduce the USB chooser dialog to the user.">
@@ -7843,7 +7830,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_USB_CHOOSER_DIALOG_NO_DEVICES_FOUND_PROMPT" desc="The label shown to the user to inform them that no USB devices were found matching the requirements that the application provided.">
        <message name="IDS_USB_CHOOSER_DIALOG_NO_DEVICES_FOUND_PROMPT" desc="The label shown to the user to inform them that no USB devices were found matching the requirements that the application provided.">
          No compatible devices found
          No compatible devices found
-@@ -3755,7 +3755,7 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
+@@ -3790,7 +3790,7 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
          Running in Chrome
          Running in Chrome
        </message>
        </message>
        <message name="IDS_TWA_RUNNING_IN_CHROME_V2" desc="Updated message on a snackbar indicating that the current Activity may use Chrome data (the rest of the app may not be).">
        <message name="IDS_TWA_RUNNING_IN_CHROME_V2" desc="Updated message on a snackbar indicating that the current Activity may use Chrome data (the rest of the app may not be).">
@@ -7852,7 +7839,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message">
        <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message">
          Got it
          Got it
-@@ -4019,7 +4019,7 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
+@@ -4054,7 +4054,7 @@ Data from your Incognito session will only be cleared from Chrome when you <ph n
          Sending to <ph name="device_name">%1$s<ex>Tanya's Pixel 2</ex></ph>...
          Sending to <ph name="device_name">%1$s<ex>Tanya's Pixel 2</ex></ph>...
        </message>
        </message>
        <message name="IDS_SEND_TAB_TO_SELF_NOTIFICATION_CONTEXT_TEXT" desc="Text displayed as the second line of a notification indicating the domain and the device the tab is shared from.">
        <message name="IDS_SEND_TAB_TO_SELF_NOTIFICATION_CONTEXT_TEXT" desc="Text displayed as the second line of a notification indicating the domain and the device the tab is shared from.">
@@ -23905,7 +23892,7 @@ diff --git a/content/browser/speech/tts_mac.mm b/content/browser/speech/tts_mac.
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
 --- a/content/browser/web_contents/web_contents_impl.cc
 --- a/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
 +++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -6479,7 +6479,7 @@ void WebContentsImpl::RunJavaScriptDialog(
+@@ -6483,7 +6483,7 @@ void WebContentsImpl::RunJavaScriptDialog(
              base::StringPrintf(
              base::StringPrintf(
                  "A different origin subframe tried to create a JavaScript "
                  "A different origin subframe tried to create a JavaScript "
                  "dialog. This is no longer allowed and was blocked. See "
                  "dialog. This is no longer allowed and was blocked. See "

+ 2 - 2
build/patches/Bromite-AdBlockUpdaterService.patch

@@ -242,8 +242,8 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
 +        android:order="13"
 +        android:order="13"
 +        android:title="@string/prefs_adblock"/>
 +        android:title="@string/prefs_adblock"/>
      <Preference
      <Preference
-         android:fragment="org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment"
-         android:key="safety_check"
+         android:fragment="org.chromium.chrome.browser.notifications.settings.NotificationSettings"
+         android:key="notifications"
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
 new file mode 100644
 new file mode 100644
 --- /dev/null
 --- /dev/null

+ 17 - 1
build/patches/Disable-safe-browsing.patch

@@ -7,6 +7,7 @@ Contains Android-specific fixes to remove Safe Browsing
 Disable CrowdDeny feature
 Disable CrowdDeny feature
 ---
 ---
  .../res/xml/google_services_preferences.xml   | 10 ---
  .../res/xml/google_services_preferences.xml   | 10 ---
+ .../android/java/res/xml/main_preferences.xml |  5 --
  .../java/res/xml/privacy_preferences.xml      |  9 ---
  .../java/res/xml/privacy_preferences.xml      |  9 ---
  .../res/xml/sync_and_services_preferences.xml | 10 ---
  .../res/xml/sync_and_services_preferences.xml | 10 ---
  .../EnhancedProtectionPromoController.java    |  8 ---
  .../EnhancedProtectionPromoController.java    |  8 ---
@@ -75,7 +76,7 @@ Disable CrowdDeny feature
  .../file_system_access_file_writer_impl.cc    | 41 +----------
  .../file_system_access_file_writer_impl.cc    | 41 +----------
  .../file_system_access_file_writer_impl.h     |  9 +--
  .../file_system_access_file_writer_impl.h     |  9 +--
  .../file_system_access_permission_context.h   |  6 --
  .../file_system_access_permission_context.h   |  6 --
- 69 files changed, 181 insertions(+), 639 deletions(-)
+ 70 files changed, 181 insertions(+), 644 deletions(-)
 
 
 diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
 diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
 --- a/chrome/android/java/res/xml/google_services_preferences.xml
 --- a/chrome/android/java/res/xml/google_services_preferences.xml
@@ -97,6 +98,21 @@ diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrom
      <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
      <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
          android:key="url_keyed_anonymized_data"
          android:key="url_keyed_anonymized_data"
          android:title="@string/url_keyed_anonymized_data_title"
          android:title="@string/url_keyed_anonymized_data_title"
+diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
+--- a/chrome/android/java/res/xml/main_preferences.xml
++++ b/chrome/android/java/res/xml/main_preferences.xml
+@@ -75,11 +75,6 @@
+         android:key="privacy"
+         android:order="12"
+         android:title="@string/prefs_privacy_security"/>
+-    <Preference
+-        android:fragment="org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment"
+-        android:key="safety_check"
+-        android:order="13"
+-        android:title="@string/prefs_safety_check"/>
+     <Preference
+         android:fragment="org.chromium.chrome.browser.notifications.settings.NotificationSettings"
+         android:key="notifications"
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 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
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml

+ 7 - 7
build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch

@@ -9,15 +9,15 @@ Subject: Offer builtin autocomplete for chrome://flags
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
-@@ -330,6 +330,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
- #if !defined(OS_ANDROID)
-   std::u16string settings(base::ASCIIToUTF16(chrome::kChromeUISettingsHost) +
-                           u"/");
+@@ -350,6 +350,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
+ #endif
+   builtins_to_provide.push_back(
+       base::ASCIIToUTF16(chrome::kChromeUIVersionURL));
 +  builtins_to_provide.push_back(
 +  builtins_to_provide.push_back(
 +      base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
 +      base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
-   for (size_t i = 0; i < base::size(kChromeSettingsSubPages); i++) {
-     builtins.push_back(settings +
-                        base::ASCIIToUTF16(kChromeSettingsSubPages[i]));
+   return builtins_to_provide;
+ }
+ 
 -- 
 -- 
 2.17.1
 2.17.1
 
 

+ 34 - 22
build/patches/Remove-signin-and-data-saver-integrations.patch

@@ -45,7 +45,7 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
  .../identity_disc/IdentityDiscController.java |   3 +-
  .../identity_disc/IdentityDiscController.java |   3 +-
  .../init/ChromeBrowserInitializer.java        |   2 -
  .../init/ChromeBrowserInitializer.java        |   2 -
  .../init/ProcessInitializationHandler.java    |  20 --
  .../init/ProcessInitializationHandler.java    |  20 --
- .../chrome/browser/ntp/RecentTabsManager.java |  60 +-----
+ .../chrome/browser/ntp/RecentTabsManager.java |  75 +------
  .../browser/ntp/RecentTabsRowAdapter.java     |   6 -
  .../browser/ntp/RecentTabsRowAdapter.java     |   6 -
  .../browser/omaha/RequestGenerator.java       |   3 -
  .../browser/omaha/RequestGenerator.java       |   3 -
  .../PasswordManagerLauncher.java              |  15 +-
  .../PasswordManagerLauncher.java              |  15 +-
@@ -73,7 +73,7 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
  .../signin/SystemAccountManagerDelegate.java  |  35 +---
  .../signin/SystemAccountManagerDelegate.java  |  35 +---
  .../net/HttpNegotiateAuthenticator.java       |  88 +--------
  .../net/HttpNegotiateAuthenticator.java       |  88 +--------
  .../chromoting/base/OAuthTokenFetcher.java    |   2 -
  .../chromoting/base/OAuthTokenFetcher.java    |   2 -
- 54 files changed, 44 insertions(+), 1256 deletions(-)
+ 54 files changed, 45 insertions(+), 1270 deletions(-)
  delete mode 100644 chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelperProvider.java
  delete mode 100644 chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelperProvider.java
 
 
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
@@ -480,7 +480,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
      <org.chromium.components.browser_ui.settings.ChromeBasePreference
      <org.chromium.components.browser_ui.settings.ChromeBasePreference
          android:key="manage_sync"
          android:key="manage_sync"
          android:order="5"
          android:order="5"
-@@ -115,11 +101,6 @@
+@@ -110,11 +96,6 @@
          android:key="languages"
          android:key="languages"
          android:order="20"
          android:order="20"
          android:title="@string/language_settings"/>
          android:title="@string/language_settings"/>
@@ -1563,13 +1563,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
-@@ -17,15 +17,11 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager;
+@@ -17,15 +17,10 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager;
  import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
  import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
  import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
  import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.Profile;
 -import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
 -import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
  import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
- import org.chromium.chrome.browser.signin.services.ProfileDataCache;
+-import org.chromium.chrome.browser.signin.services.ProfileDataCache;
  import org.chromium.chrome.browser.signin.services.SigninManager;
  import org.chromium.chrome.browser.signin.services.SigninManager;
  import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver;
  import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver;
  import org.chromium.chrome.browser.signin.ui.PersonalizedSigninPromoView;
  import org.chromium.chrome.browser.signin.ui.PersonalizedSigninPromoView;
@@ -1579,16 +1579,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
  import org.chromium.chrome.browser.tab.Tab;
  import org.chromium.chrome.browser.tab.Tab;
  import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
  import org.chromium.chrome.browser.ui.favicon.FaviconHelper;
  import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback;
  import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback;
-@@ -43,7 +39,7 @@ import java.util.List;
+@@ -43,8 +38,8 @@ import java.util.List;
  /**
  /**
   * Provides the domain logic and data for RecentTabsPage and RecentTabsRowAdapter.
   * Provides the domain logic and data for RecentTabsPage and RecentTabsRowAdapter.
   */
   */
 -public class RecentTabsManager implements ProfileSyncService.SyncStateChangedListener,
 -public class RecentTabsManager implements ProfileSyncService.SyncStateChangedListener,
+-                                          SignInStateObserver, ProfileDataCache.Observer,
 +public class RecentTabsManager implements
 +public class RecentTabsManager implements
-                                           SignInStateObserver, ProfileDataCache.Observer,
++                                          SignInStateObserver,
                                            AccountsChangeObserver {
                                            AccountsChangeObserver {
      /**
      /**
-@@ -79,14 +75,10 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+      * Implement this to receive updates when the page contents change.
+@@ -79,15 +74,9 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
      private List<RecentlyClosedTab> mRecentlyClosedTabs;
      private List<RecentlyClosedTab> mRecentlyClosedTabs;
      private RecentTabsPagePrefs mPrefs;
      private RecentTabsPagePrefs mPrefs;
      private RecentlyClosedTabManager mRecentlyClosedTabManager;
      private RecentlyClosedTabManager mRecentlyClosedTabManager;
@@ -1596,40 +1598,43 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
      private UpdatedCallback mUpdatedCallback;
      private UpdatedCallback mUpdatedCallback;
      private boolean mIsDestroyed;
      private boolean mIsDestroyed;
  
  
-     private final ProfileDataCache mProfileDataCache;
+-    private final ProfileDataCache mProfileDataCache;
 -    private final SigninPromoController mSigninPromoController;
 -    private final SigninPromoController mSigninPromoController;
 -    @Nullable
 -    @Nullable
 -    private final ProfileSyncService mProfileSyncService;
 -    private final ProfileSyncService mProfileSyncService;
- 
+-
      /**
      /**
       * Create an RecentTabsManager to be used with RecentTabsPage and RecentTabsRowAdapter.
       * Create an RecentTabsManager to be used with RecentTabsPage and RecentTabsRowAdapter.
-@@ -107,12 +99,8 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+      *
+@@ -107,12 +96,6 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
          mRecentlyClosedTabManager = sRecentlyClosedTabManagerForTests != null
          mRecentlyClosedTabManager = sRecentlyClosedTabManagerForTests != null
                  ? sRecentlyClosedTabManagerForTests
                  ? sRecentlyClosedTabManagerForTests
                  : new RecentlyClosedBridge(profile);
                  : new RecentlyClosedBridge(profile);
 -        mSignInManager = IdentityServicesProvider.get().getSigninManager(mProfile);
 -        mSignInManager = IdentityServicesProvider.get().getSigninManager(mProfile);
- 
-         mProfileDataCache = ProfileDataCache.createWithDefaultImageSizeAndNoBadge(context);
+-
+-        mProfileDataCache = ProfileDataCache.createWithDefaultImageSizeAndNoBadge(context);
 -        mSigninPromoController = new SigninPromoController(
 -        mSigninPromoController = new SigninPromoController(
 -                SigninAccessPoint.RECENT_TABS, SigninActivityLauncherImpl.get());
 -                SigninAccessPoint.RECENT_TABS, SigninActivityLauncherImpl.get());
 -        mProfileSyncService = ProfileSyncService.get();
 -        mProfileSyncService = ProfileSyncService.get();
  
  
          mRecentlyClosedTabManager.setTabsUpdatedRunnable(() -> {
          mRecentlyClosedTabManager.setTabsUpdatedRunnable(() -> {
              updateRecentlyClosedTabs();
              updateRecentlyClosedTabs();
-@@ -133,12 +121,6 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+@@ -133,14 +116,7 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
       */
       */
      public void destroy() {
      public void destroy() {
          mIsDestroyed = true;
          mIsDestroyed = true;
 -        if (mProfileSyncService != null) {
 -        if (mProfileSyncService != null) {
 -            mProfileSyncService.removeSyncStateChangedListener(this);
 -            mProfileSyncService.removeSyncStateChangedListener(this);
 -        }
 -        }
--
+ 
 -        mSignInManager.removeSignInStateObserver(this);
 -        mSignInManager.removeSignInStateObserver(this);
 -        mSignInManager = null;
 -        mSignInManager = null;
- 
-         mProfileDataCache.removeObserver(this);
+-
+-        mProfileDataCache.removeObserver(this);
          AccountManagerFacadeProvider.getInstance().removeObserver(this);
          AccountManagerFacadeProvider.getInstance().removeObserver(this);
-@@ -169,12 +151,6 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+ 
+         mFaviconHelper.destroy();
+@@ -169,13 +145,6 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
      }
      }
  
  
      private void registerObservers() {
      private void registerObservers() {
@@ -1639,10 +1644,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
 -
 -
 -        mSignInManager.addSignInStateObserver(this);
 -        mSignInManager.addSignInStateObserver(this);
 -
 -
-         mProfileDataCache.addObserver(this);
+-        mProfileDataCache.addObserver(this);
          AccountManagerFacadeProvider.getInstance().addObserver(this);
          AccountManagerFacadeProvider.getInstance().addObserver(this);
      }
      }
-@@ -370,29 +346,7 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+ 
+@@ -370,29 +339,7 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
       */
       */
      @PromoState
      @PromoState
      int getPromoType() {
      int getPromoType() {
@@ -1673,7 +1679,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
      }
      }
  
  
      /**
      /**
-@@ -400,13 +354,9 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+@@ -400,13 +347,9 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
       * @param view The view to be configured.
       * @param view The view to be configured.
       */
       */
      void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
      void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
@@ -1687,10 +1693,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
      }
      }
  
  
      // SignInStateObserver implementation.
      // SignInStateObserver implementation.
-@@ -432,12 +382,6 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
+@@ -426,18 +369,6 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
          update();
          update();
      }
      }
  
  
+-    // ProfileDataCache.Observer implementation.
+-    @Override
+-    public void onProfileDataUpdated(String accountEmail) {
+-        update();
+-    }
+-
 -    // ProfileSyncService.SyncStateChangedListener implementation.
 -    // ProfileSyncService.SyncStateChangedListener implementation.
 -    @Override
 -    @Override
 -    public void syncStateChanged() {
 -    public void syncStateChanged() {

+ 16 - 2
build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch

@@ -2,10 +2,24 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
 Date: Sun, 27 Oct 2019 10:00:13 +0100
 Date: Sun, 27 Oct 2019 10:00:13 +0100
 Subject: Replace DoH probe domain with RIPE domain
 Subject: Replace DoH probe domain with RIPE domain
 
 
+Replace known good hostname
 ---
 ---
- net/dns/dns_transaction.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ chrome/browser/net/dns_probe_runner.cc | 2 +-
+ net/dns/dns_transaction.cc             | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
 
+diff --git a/chrome/browser/net/dns_probe_runner.cc b/chrome/browser/net/dns_probe_runner.cc
+--- a/chrome/browser/net/dns_probe_runner.cc
++++ b/chrome/browser/net/dns_probe_runner.cc
+@@ -18,7 +18,7 @@
+ 
+ namespace chrome_browser_net {
+ 
+-const char DnsProbeRunner::kKnownGoodHostname[] = "google.com";
++const char DnsProbeRunner::kKnownGoodHostname[] = "www.ripe.net";
+ 
+ namespace {
+ 
 diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
 diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
 --- a/net/dns/dns_transaction.cc
 --- a/net/dns/dns_transaction.cc
 +++ b/net/dns/dns_transaction.cc
 +++ b/net/dns/dns_transaction.cc

+ 32 - 0
build/patches/Unexpire-tab-groups-flags.patch

@@ -0,0 +1,32 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Mon, 17 May 2021 22:32:36 +0200
+Subject: Unexpire tab groups flags
+
+---
+ chrome/browser/flag-metadata.json | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
+--- a/chrome/browser/flag-metadata.json
++++ b/chrome/browser/flag-metadata.json
+@@ -2509,7 +2509,7 @@
+   {
+     "name": "enable-tab-groups",
+     "owners": [ "memex-team@google.com" ],
+-    "expiry_milestone": 90
++    "expiry_milestone": -1
+   },
+   {
+     "name": "enable-tab-groups-continuation",
+@@ -2519,7 +2519,7 @@
+   {
+     "name": "enable-tab-groups-ui-improvements",
+     "owners": [ "memex-team@google.com" ],
+-    "expiry_milestone": 90
++    "expiry_milestone": -1
+   },
+   {
+     "name": "enable-tab-search",
+-- 
+2.17.1
+

+ 18 - 13
build/patches/User-agent-customization.patch

@@ -20,7 +20,7 @@ to use the flag in the hamburger menu to navigate with a custom useragent leavin
  .../chromium/chrome/browser/tab/TabImpl.java  |  71 +++++++
  .../chromium/chrome/browser/tab/TabImpl.java  |  71 +++++++
  .../chromium/chrome/browser/tab/TabUtils.java |  18 +-
  .../chromium/chrome/browser/tab/TabUtils.java |  18 +-
  .../browser/android/content/content_utils.cc  |  28 +++
  .../browser/android/content/content_utils.cc  |  28 +++
- .../preferences/browser_prefs_android.cc      |   6 +
+ .../preferences/browser_prefs_android.cc      |   7 +
  .../privacy_preferences_manager_impl.cc       | 118 +++++++++++
  .../privacy_preferences_manager_impl.cc       | 118 +++++++++++
  .../preferences/ChromePreferenceKeys.java     |   7 +-
  .../preferences/ChromePreferenceKeys.java     |   7 +-
  .../settings/PrivacyPreferencesManager.java   |   8 +
  .../settings/PrivacyPreferencesManager.java   |   8 +
@@ -35,10 +35,10 @@ to use the flag in the hamburger menu to navigate with a custom useragent leavin
  .../navigation_controller_android.cc          |   6 +-
  .../navigation_controller_android.cc          |   6 +-
  .../navigation_controller_android.h           |   3 +-
  .../navigation_controller_android.h           |   3 +-
  .../renderer_host/render_process_host_impl.cc |   1 +
  .../renderer_host/render_process_host_impl.cc |   1 +
- .../browser/web_contents/web_contents_impl.cc |   6 +
+ .../browser/web_contents/web_contents_impl.cc |   4 +
  .../framehost/NavigationControllerImpl.java   |   6 +-
  .../framehost/NavigationControllerImpl.java   |   6 +-
  content/renderer/render_thread_impl.cc        |   1 -
  content/renderer/render_thread_impl.cc        |   1 -
- 31 files changed, 748 insertions(+), 10 deletions(-)
+ 31 files changed, 747 insertions(+), 10 deletions(-)
  create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml
  create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml
  create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
  create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
@@ -202,7 +202,7 @@ new file mode 100644
 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
 --- a/chrome/android/java/res/xml/main_preferences.xml
 --- a/chrome/android/java/res/xml/main_preferences.xml
 +++ b/chrome/android/java/res/xml/main_preferences.xml
 +++ b/chrome/android/java/res/xml/main_preferences.xml
-@@ -101,6 +101,11 @@
+@@ -96,6 +96,11 @@
          android:key="content_settings"
          android:key="content_settings"
          android:order="19"
          android:order="19"
          android:title="@string/prefs_site_settings"/>
          android:title="@string/prefs_site_settings"/>
@@ -711,7 +711,14 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an
 diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrome/browser/android/preferences/browser_prefs_android.cc
 diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrome/browser/android/preferences/browser_prefs_android.cc
 --- a/chrome/browser/android/preferences/browser_prefs_android.cc
 --- a/chrome/browser/android/preferences/browser_prefs_android.cc
 +++ b/chrome/browser/android/preferences/browser_prefs_android.cc
 +++ b/chrome/browser/android/preferences/browser_prefs_android.cc
-@@ -17,6 +17,12 @@ namespace android {
+@@ -11,12 +11,19 @@
+ #include "chrome/browser/webauthn/android/cable_module_android.h"
+ #include "components/pref_registry/pref_registry_syncable.h"
+ #include "components/prefs/pref_registry_simple.h"
++#include "chrome/common/pref_names.h"
+ 
+ namespace android {
+ 
  void RegisterPrefs(PrefRegistrySimple* registry) {
  void RegisterPrefs(PrefRegistrySimple* registry) {
    RegisterClipboardAndroidPrefs(registry);
    RegisterClipboardAndroidPrefs(registry);
    webauthn::authenticator::RegisterLocalState(registry);
    webauthn::authenticator::RegisterLocalState(registry);
@@ -1129,18 +1136,16 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
  #include "base/threading/thread_task_runner_handle.h"
  #include "base/threading/thread_task_runner_handle.h"
  #include "base/time/time.h"
  #include "base/time/time.h"
  #include "base/trace_event/optional_trace_event.h"
  #include "base/trace_event/optional_trace_event.h"
-@@ -2487,6 +2488,11 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
+@@ -2485,6 +2486,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
+         !renderer_preferences_.user_agent_override.ua_metadata_override->mobile)
+ #endif
        prefs.viewport_meta_enabled = false;
        prefs.viewport_meta_enabled = false;
++    if (!command_line.HasSwitch(switches::kDesktopModeViewportMetaEnabled)) {
++      prefs.viewport_meta_enabled = false;
++    }
    }
    }
  
  
-+  if (IsOverridingUserAgent() &&
-+      !command_line.HasSwitch(switches::kDesktopModeViewportMetaEnabled)) {
-+    prefs.viewport_meta_enabled = false;
-+  }
-+
    prefs.main_frame_resizes_are_orientation_changes =
    prefs.main_frame_resizes_are_orientation_changes =
-       command_line.HasSwitch(switches::kMainFrameResizesAreOrientationChanges);
- 
 diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
 diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
 --- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
 --- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
 +++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
 +++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java