Browse Source

Release 90.0.4430.59

csagan5 4 years ago
parent
commit
aaac339b89

+ 9 - 1
CHANGELOG.md

@@ -1,5 +1,13 @@
+# 90.0.4430.59
+* fix menu items not properly displayed with tab overflow menu regroup (fixes https://github.com/bromite/bromite/issues/963)
+* fix text displayed for menu entry to bookmark all tabs
+* bookmarks import/export: disable SAF by default (fixes https://github.com/bromite/bromite/issues/1039)
+* disable offline measurement background task
+* dropped patch to show warnings for TSLv1.0/v1.1 connections (upstream now disallows them)
+* disable AImageReader by default on Android 9 and below for Qualcomm (fixes https://github.com/bromite/bromite/issues/1005)
+
 # 89.0.4389.117
-* disable AImageReader by default on Android 9 and below (fixes https://github.com/bromite/bromite/issues/1005)
+* disable AImageReader by default on Android 9 and below for ARM (fixes https://github.com/bromite/bromite/issues/1005)
 * log checksum of AdBlock filters
 
 # 89.0.4389.100

+ 1 - 1
build/RELEASE

@@ -1 +1 @@
-90.0.4430.56
+90.0.4430.59

+ 0 - 1
build/bromite_patches_list.txt

@@ -23,7 +23,6 @@ ungoogled-chromium-Disable-translate-integration.patch
 ungoogled-chromium-Disable-profile-avatar.patch
 ungoogled-chromium-Disable-intranet-redirect-detector.patch
 ungoogled-chromium-Disable-Google-host-detection.patch
-ungoogled-chromium-Disable-GCM.patch
 ungoogled-chromium-Disable-Gaia.patch
 ungoogled-chromium-Disable-domain-reliability.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch

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

@@ -634,7 +634,7 @@ new file mode 100644
 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -256,6 +256,8 @@ static_library("ui") {
+@@ -254,6 +254,8 @@ static_library("ui") {
      "webui/metrics_handler.h",
      "webui/net_export_ui.cc",
      "webui/net_export_ui.h",
@@ -646,7 +646,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
 diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -53,6 +53,7 @@
+@@ -52,6 +52,7 @@
  #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
  #include "chrome/browser/ui/webui/policy/policy_ui.h"
  #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
@@ -654,7 +654,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
  #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
  #include "chrome/browser/ui/webui/signin_internals_ui.h"
  #include "chrome/browser/ui/webui/sync_internals/sync_internals_ui.h"
-@@ -558,6 +559,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -555,6 +556,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
      return &NewWebUI<MemoryInternalsUI>;
    if (url.host_piece() == chrome::kChromeUINetExportHost)
      return &NewWebUI<NetExportUI>;

+ 44 - 26
build/patches/Add-menu-item-to-bookmark-all-tabs.patch

@@ -4,11 +4,11 @@ Subject: Add menu item to bookmark all tabs
 
 ---
  chrome/android/java/res/menu/main_menu.xml    |  7 +++
- .../java/res/menu/main_menu_regroup.xml       |  4 ++
+ .../java/res/menu/main_menu_regroup.xml       |  9 +++
  .../chrome/browser/ChromeTabbedActivity.java  | 26 ++++++++
- .../browser/bookmarks/BookmarkBridge.java     | 62 +++++++++++++++++++
+ .../browser/bookmarks/BookmarkBridge.java     | 61 +++++++++++++++++++
  .../browser/bookmarks/BookmarkUtils.java      |  4 ++
- .../android/bookmarks/bookmark_bridge.cc      | 17 +++++
+ .../android/bookmarks/bookmark_bridge.cc      | 17 ++++++
  .../android/bookmarks/bookmark_bridge.h       |  4 ++
  .../bookmarks/chrome_bookmark_client.cc       |  2 +
  .../strings/android_chrome_strings.grd        |  3 +
@@ -19,7 +19,7 @@ Subject: Add menu item to bookmark all tabs
  components/bookmarks/browser/bookmark_model.h |  7 +++
  components/bookmarks/browser/bookmark_node.cc | 13 ++++
  components/bookmarks/browser/bookmark_node.h  |  5 ++
- 16 files changed, 168 insertions(+), 1 deletion(-)
+ 16 files changed, 172 insertions(+), 1 deletion(-)
 
 diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
 --- a/chrome/android/java/res/menu/main_menu.xml
@@ -29,36 +29,55 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
              android:title="@string/menu_bookmarks"
              android:icon="@drawable/btn_star_filled" />
 +        <item android:id="@+id/bookmark_all_tabs_menu_id"
-+            android:title="@string/accessibility_menu_bookmark"
++            android:title="@string/menu_bookmark_all_tabs"
 +            android:titleCondensed="@string/menu_bookmark_all_tabs"
 +            android:icon="@drawable/ic_folder_blue_24dp" />
          <item android:id="@+id/recent_tabs_menu_id"
              android:title="@string/menu_recent_tabs"
              android:icon="@drawable/devices_black_24dp" />
-@@ -136,6 +140,9 @@
-         <item android:id="@id/new_incognito_tab_menu_id"
-             android:title="@string/menu_new_incognito_tab"
-             android:icon="@drawable/incognito_simple" />
+@@ -145,6 +149,9 @@
+         <item android:id="@+id/menu_group_tabs"
+             android:title="@string/menu_group_tabs"
+             android:icon="@drawable/ic_widgets" />
 +        <item android:id="@+id/bookmark_all_tabs_menu_id"
 +            android:title="@string/menu_bookmark_all_tabs"
 +            android:icon="@drawable/ic_folder_blue_24dp" />
-         <item android:id="@+id/close_all_tabs_menu_id"
-             android:title="@string/menu_close_all_tabs"
-             android:icon="@drawable/btn_close_white" />
+         <item android:id="@+id/track_prices_row_menu_id"
+             android:title="@string/menu_track_prices"
+             android:icon="@drawable/ic_trending_down_black" />
 diff --git a/chrome/android/java/res/menu/main_menu_regroup.xml b/chrome/android/java/res/menu/main_menu_regroup.xml
 --- a/chrome/android/java/res/menu/main_menu_regroup.xml
 +++ b/chrome/android/java/res/menu/main_menu_regroup.xml
-@@ -32,6 +32,10 @@
-                 android:title="@string/accessibility_menu_bookmark"
-                 android:titleCondensed="@string/menu_bookmark"
-                 android:icon="@drawable/btn_star"/>
-+              <item android:id="@+id/bookmark_all_tabs_menu_id"
-+                android:title="@string/accessibility_menu_bookmark"
-+                android:titleCondensed="@string/menu_bookmark_all_tabs"
-+                android:icon="@drawable/ic_folder_blue_24dp" />
-               <item android:id="@+id/offline_page_id"
-                 android:title="@string/download_page"
-                 android:titleCondensed="@string/menu_download"
+@@ -89,6 +89,9 @@
+                     android:icon="@drawable/btn_star" />
+           </menu>
+         </item>
++        <item android:id="@+id/bookmark_all_tabs_menu_id"
++            android:title="@string/menu_bookmark_all_tabs"
++            android:icon="@drawable/ic_folder_blue_24dp" />
+         <item android:id="@+id/recent_tabs_menu_id"
+             android:title="@string/menu_recent_tabs"
+             android:icon="@drawable/devices_black_24dp" />
+@@ -210,6 +213,9 @@
+         <item android:id="@+id/menu_group_tabs"
+             android:title="@string/menu_group_tabs"
+             android:icon="@drawable/ic_widgets" />
++        <item android:id="@+id/bookmark_all_tabs_menu_id"
++            android:title="@string/menu_bookmark_all_tabs"
++            android:icon="@drawable/ic_folder_blue_24dp" />
+         <item android:id="@+id/track_prices_row_menu_id"
+             android:title="@string/menu_track_prices"
+             android:icon="@drawable/ic_trending_down_black" />
+@@ -252,6 +258,9 @@
+         <item android:id="@id/menu_group_tabs"
+             android:title="@string/menu_group_tabs"
+             android:icon="@drawable/ic_widgets" />
++        <item android:id="@+id/bookmark_all_tabs_menu_id"
++            android:title="@string/menu_bookmark_all_tabs"
++            android:icon="@drawable/ic_folder_blue_24dp" />
+         <item android:id="@id/track_prices_row_menu_id"
+             android:title="@string/menu_track_prices"
+             android:icon="@drawable/ic_trending_down_black" />
 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
@@ -164,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      /**
       * @return Id representing the special "other" folder from bookmark model.
       */
-@@ -1099,6 +1116,50 @@ public class BookmarkBridge {
+@@ -1099,6 +1116,49 @@ public class BookmarkBridge {
                  mNativeBookmarkBridge, BookmarkBridge.this, title, url);
      }
  
@@ -208,14 +227,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
 +        Snackbar snackbar = Snackbar.make(folderName, snackbarController, Snackbar.TYPE_ACTION,
 +                        Snackbar.UMA_BOOKMARK_ADDED)
 +                        .setTemplateText(activity.getString(R.string.bookmark_page_saved_folder));
-+//        snackbar.setSingleLine(false).setAction(activity.getString(R.string.bookmark_item_edit), null);
 +        snackbarManager.showSnackbar(snackbar);
 +    }
 +
      /**
       * @param url The URL of the reading list item.
       * @return The reading list item with the URL, or null if no such reading list item.
-@@ -1355,6 +1416,7 @@ public class BookmarkBridge {
+@@ -1355,6 +1415,7 @@ public class BookmarkBridge {
          void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
                  List<BookmarkId> folderList, List<Integer> depthList);
          BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);

+ 1 - 1
build/patches/Allow-playing-audio-in-background.patch

@@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
  void WebMediaPlayerImpl::EnabledAudioTracksChanged(
      const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
    DCHECK(main_task_runner_->BelongsToCurrentThread());
-@@ -3447,7 +3453,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
+@@ -3457,7 +3463,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
    // Audio only stream is allowed to play when in background.
    // TODO: We should check IsBackgroundOptimizationCandidate here. But we need
    // to move the logic of checking video frames out of that function.

+ 224 - 54
build/patches/Remove-binary-blob-integrations.patch

@@ -1,5 +1,5 @@
-From: Wengling Chen <feiyu2817@gmail.com>
-Date: Sat, 2 Nov 2019 09:22:31 +0100
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Mon, 5 Apr 2021 21:37:12 +0200
 Subject: Remove binary blob integrations
 
 Remove dependency on com.google.android.gms.auth
@@ -16,11 +16,13 @@ Remove dependency on fido, iid, instantapps, location
 Remove dependency on com.google.android.gms.cast
 Remove dependency on auth, signin, dynamic and tasks
 Remove google_services_gcm
+ungoogled-chromium: Disable GCM
+Disable Google Cloud Messaging (GCM) client
 
 Parts of this patch were developed by csagan5, uazo and others.
 ---
  ...em_webview_bundle.AndroidManifest.expected |   6 -
- chrome/android/BUILD.gn                       |  41 --
+ chrome/android/BUILD.gn                       |  36 --
  chrome/android/chrome_java_sources.gni        |   8 -
  chrome/android/java/AndroidManifest.xml       |  68 ---
  .../org/chromium/chrome/browser/AppHooks.java |  14 +-
@@ -37,11 +39,16 @@ Parts of this patch were developed by csagan5, uazo and others.
  .../settings/PasswordSettings.java            |  14 -
  .../browser/webauth/AuthenticatorImpl.java    |  29 +-
  .../modules/chrome_feature_modules.gni        |   3 -
+ chrome/browser/BUILD.gn                       |   2 -
  chrome/browser/language/android/BUILD.gn      |   1 -
  .../browser/language/AppLocaleUtils.java      |  24 -
+ .../prefetch/prefetch_service_factory.cc      |  16 -
+ .../push_messaging_service_factory.cc         |   8 +-
  .../browser/signin/services/android/BUILD.gn  |   1 -
+ chrome/browser/ui/BUILD.gn                    |   3 -
+ .../webui/chrome_web_ui_controller_factory.cc |   3 -
  chrome/test/android/BUILD.gn                  |   2 -
- components/background_task_scheduler/BUILD.gn |   6 -
+ components/background_task_scheduler/BUILD.gn |   5 -
  .../internal/BUILD.gn                         |  10 -
  .../BackgroundTaskGcmTaskService.java         | 160 ------
  ...ackgroundTaskSchedulerFactoryInternal.java |   6 +-
@@ -50,6 +57,7 @@ Parts of this patch were developed by csagan5, uazo and others.
  components/externalauth/android/BUILD.gn      |   3 -
  .../externalauth/ExternalAuthUtils.java       |  18 +-
  .../UserRecoverableErrorHandler.java          |   7 -
+ components/gcm_driver/gcm_client_impl.cc      |   4 +
  .../gcm_driver/instance_id/android/BUILD.gn   |   3 -
  .../instance_id/InstanceIDBridge.java         |  49 +-
  .../media_router/browser/android/BUILD.gn     |   9 -
@@ -57,9 +65,9 @@ Parts of this patch were developed by csagan5, uazo and others.
  .../media_router/CastSessionUtil.java         |  35 --
  .../components/media_router/MediaSink.java    |  44 +-
  .../media_router/MediaStatusBridge.java       |  40 +-
- .../caf/BaseNotificationController.java       |  42 --
+ .../caf/BaseNotificationController.java       |  52 --
  .../caf/BaseSessionController.java            | 100 +---
- .../caf/CafBaseMediaRouteProvider.java        | 111 +---
+ .../caf/CafBaseMediaRouteProvider.java        | 114 +---
  .../caf/CafMediaRouteProvider.java            |  16 -
  .../media_router/caf/CafMessageHandler.java   |  97 +---
  .../media_router/caf/CastMediaSource.java     |  10 +-
@@ -67,7 +75,7 @@ Parts of this patch were developed by csagan5, uazo and others.
  .../caf/CastSessionController.java            |  84 ---
  .../media_router/caf/CastUtils.java           |   8 -
  .../CafExpandedControllerActivity.java        |  41 +-
- .../CafRemotingMediaRouteProvider.java        |   2 +-
+ .../CafRemotingMediaRouteProvider.java        |   5 +-
  .../remoting/FlingingControllerAdapter.java   |  74 ---
  .../caf/remoting/RemotingMediaSource.java     |   8 +-
  .../remoting/RemotingSessionController.java   |  26 -
@@ -77,6 +85,7 @@ Parts of this patch were developed by csagan5, uazo and others.
  components/signin/public/android/BUILD.gn     |   2 -
  .../signin/GmsAvailabilityException.java      |   4 +-
  .../signin/SystemAccountManagerDelegate.java  |  21 +-
+ .../push_messaging/push_messaging_manager.cc  |   6 +-
  content/public/android/BUILD.gn               |   4 -
  content/public/common/content_features.cc     |   2 +-
  content/test/BUILD.gn                         |   4 -
@@ -88,7 +97,7 @@ Parts of this patch were developed by csagan5, uazo and others.
  third_party/android_deps/BUILD.gn             | 520 +-----------------
  .../gms/ChromiumPlayServicesAvailability.java |  10 +-
  third_party/google_android_play_core/BUILD.gn |   5 -
- 69 files changed, 65 insertions(+), 2549 deletions(-)
+ 76 files changed, 71 insertions(+), 2595 deletions(-)
  delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskService.java
  delete mode 100644 components/background_task_scheduler/internal/android/java/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManager.java
 
@@ -139,16 +148,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/android/modules/image_editor/provider:java",
      "//chrome/android/modules/stack_unwinder/provider:java",
      "//chrome/android/webapk/libs/client:client_java",
-@@ -422,8 +412,6 @@ android_library("chrome_java") {
-     "//components/feature_engagement:feature_engagement_java",
-     "//components/feed/core/proto:proto_java_v2",
-     "//components/find_in_page/android:java",
--    "//components/gcm_driver/android:gcm_driver_java",
--    "//components/gcm_driver/instance_id/android:instance_id_driver_java",
-     "//components/infobars/android:infobar_android_enums_java",
-     "//components/infobars/android:java",
-     "//components/infobars/core:infobar_enums_java",
-@@ -539,7 +527,6 @@ android_library("chrome_java") {
+@@ -539,7 +529,6 @@ android_library("chrome_java") {
      "//third_party/blink/public/mojom:android_mojo_bindings_java",
      "//third_party/blink/public/mojom:mojom_platform_java",
      "//third_party/gif_player:gif_player_java",
@@ -156,7 +156,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//third_party/metrics_proto:metrics_proto_java",
      "//ui/android:ui_java",
      "//ui/base/mojom:mojom_java",
-@@ -804,11 +791,6 @@ junit_binary("chrome_junit_tests") {
+@@ -804,11 +793,6 @@ junit_binary("chrome_junit_tests") {
      ":chrome_app_java_resources",
      ":chrome_java",
      ":partner_location_descriptor_proto_java",
@@ -168,7 +168,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:base_java_test_support",
      "//base:base_junit_test_support",
-@@ -1059,14 +1041,6 @@ android_library("chrome_test_java") {
+@@ -1059,14 +1043,6 @@ android_library("chrome_test_java") {
      ":chrome_app_java_resources",
      ":chrome_test_util_java",
      ":partner_location_descriptor_proto_java",
@@ -183,17 +183,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:base_java_test_support",
      "//base:jni_java",
-@@ -1212,9 +1186,6 @@ android_library("chrome_test_java") {
-     "//components/externalauth/android:java",
-     "//components/favicon/android:java",
-     "//components/feature_engagement:feature_engagement_java",
--    "//components/gcm_driver/android:gcm_driver_java",
--    "//components/gcm_driver/instance_id/android:instance_id_driver_java",
--    "//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
-     "//components/infobars/android:java",
-     "//components/infobars/android:javatests",
-     "//components/infobars/core:infobar_enums_java",
-@@ -2059,7 +2030,6 @@ android_library("browser_java_test_support") {
+@@ -2059,7 +2035,6 @@ android_library("browser_java_test_support") {
    ]
    deps = [
      ":chrome_java",
@@ -201,7 +191,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:base_java_test_support",
      "//chrome/browser/profiles/android:java",
-@@ -2200,8 +2170,6 @@ android_library("base_monochrome_module_java") {
+@@ -2200,8 +2175,6 @@ android_library("base_monochrome_module_java") {
  # enable_chrome_module is true and //chrome code is in a DFM.
  android_library("base_module_java") {
    sources = [
@@ -210,7 +200,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
      "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
      "java/src/org/chromium/chrome/browser/base/DexFixer.java",
-@@ -2212,8 +2180,6 @@ android_library("base_module_java") {
+@@ -2212,8 +2185,6 @@ android_library("base_module_java") {
      "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
@@ -219,7 +209,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
-@@ -2240,15 +2206,10 @@ android_library("base_module_java") {
+@@ -2240,15 +2211,10 @@ android_library("base_module_java") {
      "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
      "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
      "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
@@ -235,7 +225,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:jni_java",
      "//chrome/browser/download/android:file_provider_java",
-@@ -2265,7 +2226,6 @@ android_library("base_module_java") {
+@@ -2265,7 +2231,6 @@ android_library("base_module_java") {
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_collection_collection_java",
      "//third_party/androidx:androidx_fragment_fragment_java",
@@ -243,7 +233,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//ui/android:ui_no_recycler_view_java",
  
      # Deps needed for child processes.
-@@ -2284,7 +2244,6 @@ android_library("base_module_java") {
+@@ -2284,7 +2249,6 @@ android_library("base_module_java") {
      # Deps to pull services into base module.
      # TODO(crbug.com/1126301): Consider moving these to the chrome module to
      # reduce base dex size.
@@ -1408,6 +1398,18 @@ diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/
  
  # Modules shipped in Trichrome (Android Q+).
  trichrome_module_descs = monochrome_module_descs
+diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
+--- a/chrome/browser/BUILD.gn
++++ b/chrome/browser/BUILD.gn
+@@ -5926,8 +5926,6 @@ static_library("browser") {
+       "offline_pages/offliner_helper.h",
+       "offline_pages/offliner_user_data.cc",
+       "offline_pages/offliner_user_data.h",
+-      "offline_pages/prefetch/gcm_token.cc",
+-      "offline_pages/prefetch/gcm_token.h",
+       "offline_pages/prefetch/offline_metrics_collector_impl.cc",
+       "offline_pages/prefetch/offline_metrics_collector_impl.h",
+       "offline_pages/prefetch/offline_prefetch_download_client.cc",
 diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/android/BUILD.gn
 --- a/chrome/browser/language/android/BUILD.gn
 +++ b/chrome/browser/language/android/BUILD.gn
@@ -1459,6 +1461,57 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse
 -        }
      }
  }
+diff --git a/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc b/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc
+--- a/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc
++++ b/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc
+@@ -18,7 +18,6 @@
+ #include "chrome/browser/image_fetcher/image_fetcher_service_factory.h"
+ #include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/offline_pages/offline_page_model_factory.h"
+-#include "chrome/browser/offline_pages/prefetch/gcm_token.h"
+ #include "chrome/browser/offline_pages/prefetch/offline_metrics_collector_impl.h"
+ #include "chrome/browser/offline_pages/prefetch/prefetch_background_task_handler_impl.h"
+ #include "chrome/browser/profiles/profile.h"
+@@ -68,21 +67,6 @@ void SwitchToFullBrowserImageFetcher(PrefetchServiceImpl* prefetch_service,
+ }
+ 
+ void OnProfileCreated(PrefetchServiceImpl* prefetch_service, Profile* profile) {
+-  if (IsPrefetchingOfflinePagesEnabled()) {
+-    // Trigger an update of the cached GCM token. This needs to be post tasked
+-    // because otherwise leads to circular dependency between
+-    // PrefetchServiceFactory and GCMProfileServiceFactory. See
+-    // https://crbug.com/944952
+-    // Update is not a priority so make sure it happens after the critical
+-    // startup path.
+-    content::GetUIThreadTaskRunner({base::TaskPriority::BEST_EFFORT})
+-        ->PostTask(FROM_HERE,
+-                   base::BindOnce(
+-                       &GetGCMToken, profile, kPrefetchingOfflinePagesAppId,
+-                       base::BindOnce(&PrefetchServiceImpl::GCMTokenReceived,
+-                                      prefetch_service->GetWeakPtr())));
+-  }
+-
+   SwitchToFullBrowserImageFetcher(prefetch_service, profile->GetProfileKey());
+ }
+ 
+diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc
+--- a/chrome/browser/push_messaging/push_messaging_service_factory.cc
++++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc
+@@ -28,13 +28,7 @@
+ // static
+ PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile(
+     content::BrowserContext* context) {
+-  // The Push API is not currently supported in incognito mode.
+-  // See https://crbug.com/401439.
+-  if (context->IsOffTheRecord())
+-    return nullptr;
+-
+-  return static_cast<PushMessagingServiceImpl*>(
+-      GetInstance()->GetServiceForBrowserContext(context, true));
++  return nullptr;
+ }
+ 
+ // static
 diff --git a/chrome/browser/signin/services/android/BUILD.gn b/chrome/browser/signin/services/android/BUILD.gn
 --- a/chrome/browser/signin/services/android/BUILD.gn
 +++ b/chrome/browser/signin/services/android/BUILD.gn
@@ -1470,6 +1523,46 @@ diff --git a/chrome/browser/signin/services/android/BUILD.gn b/chrome/browser/si
      "//base:base_java",
      "//base:jni_java",
      "//chrome/browser/preferences:java",
+diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
+--- a/chrome/browser/ui/BUILD.gn
++++ b/chrome/browser/ui/BUILD.gn
+@@ -230,8 +230,6 @@ static_library("ui") {
+     "webui/flags/flags_ui.h",
+     "webui/flags/flags_ui_handler.cc",
+     "webui/flags/flags_ui_handler.h",
+-    "webui/gcm_internals_ui.cc",
+-    "webui/gcm_internals_ui.h",
+     "webui/internals/internals_ui.cc",
+     "webui/internals/internals_ui.h",
+     "webui/interstitials/interstitial_ui.cc",
+@@ -439,7 +437,6 @@ static_library("ui") {
+     "//components/feedback",
+     "//components/find_in_page",
+     "//components/flags_ui",
+-    "//components/gcm_driver",
+     "//components/google/core/common",
+     "//components/heap_profiling/multi_process",
+     "//components/history/content/browser",
+diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
++++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+@@ -36,7 +36,6 @@
+ #include "chrome/browser/ui/webui/download_internals/download_internals_ui.h"
+ #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h"
+ #include "chrome/browser/ui/webui/flags/flags_ui.h"
+-#include "chrome/browser/ui/webui/gcm_internals_ui.h"
+ #include "chrome/browser/ui/webui/internals/internals_ui.h"
+ #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h"
+ #include "chrome/browser/ui/webui/invalidations/invalidations_ui.h"
+@@ -540,8 +539,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+     return &NewWebUI<FlagsDeprecatedUI>;
+   if (url.host_piece() == chrome::kChromeUIFlagsHost)
+     return &NewWebUI<FlagsUI>;
+-  if (url.host_piece() == chrome::kChromeUIGCMInternalsHost)
+-    return &NewWebUI<GCMInternalsUI>;
+   if (url.host_piece() == chrome::kChromeUIInternalsHost)
+     return &NewWebUI<InternalsUI>;
+   if (url.host_piece() == chrome::kChromeUIInterstitialHost)
 diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
 --- a/chrome/test/android/BUILD.gn
 +++ b/chrome/test/android/BUILD.gn
@@ -1485,15 +1578,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
 diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
 --- a/components/background_task_scheduler/BUILD.gn
 +++ b/components/background_task_scheduler/BUILD.gn
-@@ -104,7 +104,6 @@ if (is_android) {
-     bypass_platform_checks = true
-     testonly = true
-     sources = [
--      "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskGcmTaskServiceTest.java",
-       "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskJobServiceTest.java",
-       "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerAlarmManagerTest.java",
-       "internal/android/junit/src/org/chromium/components/background_task_scheduler/internal/BackgroundTaskSchedulerGcmNetworkManagerTest.java",
-@@ -121,11 +120,6 @@ if (is_android) {
+@@ -121,11 +121,6 @@ if (is_android) {
  
      deps = [
        ":background_task_scheduler_task_ids_java",
@@ -2118,6 +2203,41 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex
              }
              // This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
              if (mDialog != null && !mDialog.isShowing()) {
+diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
+--- a/components/gcm_driver/gcm_client_impl.cc
++++ b/components/gcm_driver/gcm_client_impl.cc
+@@ -467,6 +467,7 @@ void GCMClientImpl::StartGCM() {
+ 
+ void GCMClientImpl::InitializeMCSClient() {
+   DCHECK(network_connection_tracker_);
++  return;
+   std::vector<GURL> endpoints;
+   endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
+   GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
+@@ -661,6 +662,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope,
+                                          int interval_ms) {
+   DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
+   DCHECK(mcs_client_);
++  return;
+   mcs_client_->AddHeartbeatInterval(scope, interval_ms);
+ }
+ 
+@@ -672,6 +674,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
+ 
+ void GCMClientImpl::StartCheckin() {
+   DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
++  return;
+ 
+   // Make sure no checkin is in progress.
+   if (checkin_request_)
+@@ -749,6 +752,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
+ 
+ void GCMClientImpl::SchedulePeriodicCheckin() {
+   DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
++  return;
+ 
+   // Make sure no checkin is in progress.
+   if (checkin_request_.get() || !device_checkin_info_.accounts_set)
 diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
 --- a/components/gcm_driver/instance_id/android/BUILD.gn
 +++ b/components/gcm_driver/instance_id/android/BUILD.gn
@@ -2663,6 +2783,27 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
      }
  
      /////////////////////////////////////////////////////////////////////////////////////////////
+@@ -122,20 +80,10 @@ public abstract class BaseNotificationController
+ 
+     @Override
+     public void onPlay(int actionSource) {
+-        if (!mSessionController.isConnected()) return;
+-
+-        mSessionController.getRemoteMediaClient().play();
+-        MediaRouteUmaRecorder.recordCastNotificationControlsAction(
+-                MediaRouteUmaRecorder.CastNotificationControls.RESUME);
+     }
+ 
+     @Override
+     public void onPause(int actionSource) {
+-        if (!mSessionController.isConnected()) return;
+-
+-        mSessionController.getRemoteMediaClient().pause();
+-        MediaRouteUmaRecorder.recordCastNotificationControlsAction(
+-                MediaRouteUmaRecorder.CastNotificationControls.PAUSE);
+     }
+ 
+     @Override
 diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
 --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
 +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/BaseSessionController.java
@@ -2831,15 +2972,18 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
 diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
 --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
 +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java
-@@ -13,7 +13,6 @@ import androidx.mediarouter.media.MediaRouter;
+@@ -12,10 +12,6 @@ import androidx.mediarouter.media.MediaRouteSelector;
+ import androidx.mediarouter.media.MediaRouter;
  import androidx.mediarouter.media.MediaRouter.RouteInfo;
  
- import com.google.android.gms.cast.framework.CastSession;
+-import com.google.android.gms.cast.framework.CastSession;
 -import com.google.android.gms.cast.framework.SessionManagerListener;
- import com.google.android.gms.cast.framework.media.RemoteMediaClient;
- 
+-import com.google.android.gms.cast.framework.media.RemoteMediaClient;
+-
  import org.chromium.base.Log;
-@@ -39,7 +38,7 @@ import java.util.Set;
+ import org.chromium.components.media_router.DiscoveryCallback;
+ import org.chromium.components.media_router.DiscoveryDelegate;
+@@ -39,7 +35,7 @@ import java.util.Set;
   * A base provider containing common implementation for CAF-based {@link MediaRouteProvider}s.
   */
  public abstract class CafBaseMediaRouteProvider
@@ -2848,7 +2992,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
      private static final String TAG = "CafMR";
  
      protected static final List<MediaSink> NO_SINKS = Collections.emptyList();
-@@ -155,7 +154,6 @@ public abstract class CafBaseMediaRouteProvider
+@@ -155,7 +151,6 @@ public abstract class CafBaseMediaRouteProvider
              // current session and clean up the routes (can't wait for session ending as the signal
              // might be delayed).
              sessionController().endSession();
@@ -2856,7 +3000,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
          }
          if (mPendingCreateRouteRequestInfo != null) {
              cancelPendingRequest("Request replaced");
-@@ -184,9 +182,6 @@ public abstract class CafBaseMediaRouteProvider
+@@ -184,9 +179,6 @@ public abstract class CafBaseMediaRouteProvider
              mManager.onCreateRouteRequestError("The sink does not exist", nativeRequestId);
          }
  
@@ -2866,7 +3010,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
          mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo(source, sink, presentationId,
                  origin, tabId, isOffTheRecord, nativeRequestId, targetRouteInfo);
  
-@@ -213,110 +208,6 @@ public abstract class CafBaseMediaRouteProvider
+@@ -213,110 +205,6 @@ public abstract class CafBaseMediaRouteProvider
          removeRoute(routeId, /* error= */ null);
      }
  
@@ -3466,7 +3610,17 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
 diff --git a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
 --- a/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
 +++ b/components/media_router/browser/android/java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java
-@@ -74,6 +74,6 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
+@@ -49,9 +49,6 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
+     @Override
+     public void detachRoute(String routeId) {
+         super.detachRoute(routeId);
+-        MediaRouteUmaRecorder.recordRemoteSessionTimeWithoutMediaElementPercentage(
+-                mSessionController.getFlingingController().getApproximateCurrentTime(),
+-                mSessionController.getFlingingController().getDuration());
+     }
+ 
+     @Override
+@@ -74,6 +71,6 @@ public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {
  
          if (!mRoutes.containsKey(routeId)) return null;
  
@@ -3794,6 +3948,22 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s
      }
  
      protected boolean hasGetAccountsPermission() {
+diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc
+--- a/content/browser/push_messaging/push_messaging_manager.cc
++++ b/content/browser/push_messaging/push_messaging_manager.cc
+@@ -957,11 +957,7 @@ void PushMessagingManager::Core::GetSubscriptionInfoOnUI(
+ 
+ PushMessagingService* PushMessagingManager::Core::service() {
+   DCHECK_CURRENTLY_ON(BrowserThread::UI);
+-  RenderProcessHost* process_host =
+-      RenderProcessHost::FromID(render_process_id_);
+-  return process_host
+-             ? process_host->GetBrowserContext()->GetPushMessagingService()
+-             : nullptr;
++  return nullptr;
+ }
+ 
+ base::WeakPtr<PushMessagingManager::Core>
 diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
 --- a/content/public/android/BUILD.gn
 +++ b/content/public/android/BUILD.gn

+ 1 - 1
build/patches/Timezone-customization.patch

@@ -507,7 +507,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          CharSequence[] descriptions = new String[2];
          descriptions[0] =
 -                getString(ContentSettingsResources.getSiteSummary(ContentSettingValues.ALLOW));
-+                getString(ContentSettingsResources.getSiteSummary(contentSettingsType, 
++                getString(ContentSettingsResources.getSiteSummary(contentSettingsType,
 +                                                                  ContentSettingValues.ALLOW));
          descriptions[1] =
 -                getString(ContentSettingsResources.getSiteSummary(ContentSettingValues.BLOCK));

+ 0 - 39
build/patches/ungoogled-chromium-Disable-GCM.patch

@@ -1,39 +0,0 @@
-From: csagan5 <32685696+csagan5@users.noreply.github.com>
-Date: Mon, 12 Feb 2018 21:37:10 +0100
-Subject: ungoogled-chromium: Disable GCM
-
-Disable Google Cloud Messaging (GCM) client
----
- components/gcm_driver/gcm_client_impl.cc | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
---- a/components/gcm_driver/gcm_client_impl.cc
-+++ b/components/gcm_driver/gcm_client_impl.cc
-@@ -464,6 +464,7 @@ void GCMClientImpl::StartGCM() {
-   device_checkin_info_.Reset();
-   StartCheckin();
- }
-+  return;
- 
- void GCMClientImpl::InitializeMCSClient() {
-   DCHECK(network_connection_tracker_);
-@@ -661,6 +662,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope,
-                                          int interval_ms) {
-   DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
-   DCHECK(mcs_client_);
-+  return;
-   mcs_client_->AddHeartbeatInterval(scope, interval_ms);
- }
- 
-@@ -735,6 +737,7 @@ void GCMClientImpl::OnCheckinCompleted(
-     }
- 
-     last_checkin_time_ = clock_->Now();
-+  return;
-     gcm_store_->SetLastCheckinInfo(
-         last_checkin_time_, device_checkin_info_.last_checkin_accounts,
-         base::BindOnce(&GCMClientImpl::SetLastCheckinInfoCallback,
--- 
-2.17.1
-