Selaa lähdekoodia

Patches for v97 (#1795)

Patches for v97

Add uazo's patch to build with use_sysroot=false
Start using new SystemWebView package name
Cleanup metrics patches and add a few more patches from Vanadium
Enable use_cfi_cast
Carl 3 vuotta sitten
vanhempi
commit
828f9666bf
100 muutettua tiedostoa jossa 1471 lisäystä ja 729 poistoa
  1. 1 1
      build/RELEASE
  2. 4 2
      build/bromite.gn_args
  3. 10 5
      build/bromite_patches_list.txt
  4. 1 0
      build/chromium_patches_list.txt
  5. 8 6
      build/patches/AImageReader-CFI-crash-mitigations.patch
  6. 2 0
      build/patches/API-level-21-prevent-crash-on-download.patch
  7. 3 1
      build/patches/AV1-codec-support.patch
  8. 8 6
      build/patches/Add-AllowUserCertificates-flag.patch
  9. 3 1
      build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch
  10. 2 0
      build/patches/Add-DuckDuckGo-Lite-search-engine.patch
  11. 2 0
      build/patches/Add-English-only-search-engine.patch
  12. 10 8
      build/patches/Add-IsCleartextPermitted-flag.patch
  13. 6 4
      build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch
  14. 9 7
      build/patches/Add-a-proxy-configuration-page.patch
  15. 18 16
      build/patches/Add-an-always-incognito-mode.patch
  16. 31 29
      build/patches/Add-bookmark-import-export-actions.patch
  17. 14 12
      build/patches/Add-custom-tab-intents-privacy-option.patch
  18. 7 5
      build/patches/Add-exit-menu-item.patch
  19. 4 2
      build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch
  20. 7 5
      build/patches/Add-flag-for-save-data-header.patch
  21. 11 9
      build/patches/Add-flag-to-configure-maximum-connections-per-host.patch
  22. 6 4
      build/patches/Add-flag-to-control-video-playback-resume-feature.patch
  23. 7 5
      build/patches/Add-flag-to-disable-IPv6-probes.patch
  24. 8 6
      build/patches/Add-flag-to-disable-WebGL.patch
  25. 5 3
      build/patches/Add-flag-to-disable-external-intent-requests.patch
  26. 10 8
      build/patches/Add-flag-to-disable-vibration.patch
  27. 39 36
      build/patches/Add-history-support-in-incognito-mode.patch
  28. 21 19
      build/patches/Add-menu-item-to-bookmark-all-tabs.patch
  29. 9 7
      build/patches/Add-menu-item-to-view-source.patch
  30. 8 6
      build/patches/Add-option-to-force-tablet-UI.patch
  31. 12 10
      build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
  32. 5 3
      build/patches/Add-option-to-use-home-page-as-NTP.patch
  33. 2 0
      build/patches/Add-support-for-ISupportHelpAndFeedback.patch
  34. 22 19
      build/patches/Allow-building-without-enable_reporting.patch
  35. 2 0
      build/patches/Allow-playing-audio-in-background.patch
  36. 2 0
      build/patches/Allow-website-sign-in-without-account-sign-in.patch
  37. 2 0
      build/patches/Always-allow-partner-customisation.patch
  38. 2 0
      build/patches/Always-use-new-tab-page-for-default-home-page.patch
  39. 4 2
      build/patches/Ask-user-before-closing-all-tabs.patch
  40. 2 0
      build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch
  41. 21 19
      build/patches/Automated-domain-substitution.patch
  42. 2 4
      build/patches/Battery-API-return-nothing.patch
  43. 2 0
      build/patches/Block-gateway-attacks-via-websockets.patch
  44. 7 5
      build/patches/Block-qjz9zk-or-trk-requests.patch
  45. 24 62
      build/patches/Bromite-AdBlockUpdaterService.patch
  46. 569 92
      build/patches/Bromite-auto-updater.patch
  47. 3 1
      build/patches/Bromite-package-name.patch
  48. 3 1
      build/patches/Change-default-webRTC-policy-to-not-use-any-address.patch
  49. 2 1
      build/patches/Chromium-package-name.patch
  50. 3 1
      build/patches/Disable-AGSA-by-default.patch
  51. 4 2
      build/patches/Disable-Accessibility-service-by-default.patch
  52. 3 1
      build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch
  53. 13 11
      build/patches/Disable-FLoC.patch
  54. 2 0
      build/patches/Disable-NTP-remote-suggestions-by-default.patch
  55. 4 2
      build/patches/Disable-all-promo-dialogs.patch
  56. 2 0
      build/patches/Disable-autofill-assistant-by-default.patch
  57. 17 15
      build/patches/Disable-conversion-measurement-api.patch
  58. 7 5
      build/patches/Disable-feeds-support-by-default.patch
  59. 9 7
      build/patches/Disable-fetching-of-all-field-trials.patch
  60. 2 0
      build/patches/Disable-lock-icon-in-address-bar-by-default.patch
  61. 2 0
      build/patches/Disable-media-router-and-remoting-by-default.patch
  62. 2 0
      build/patches/Disable-metrics-collection-for-NTP-tiles.patch
  63. 3 1
      build/patches/Disable-metrics-on-all-I-O-threads.patch
  64. 2 0
      build/patches/Disable-offline-pages-in-CCT.patch
  65. 2 0
      build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch
  66. 3 1
      build/patches/Disable-plugins-enumeration.patch
  67. 15 8
      build/patches/Disable-privacy-sandbox.patch
  68. 3 1
      build/patches/Disable-references-to-fonts.googleapis.com.patch
  69. 2 0
      build/patches/Disable-requests-for-single-word-Omnibar-searches.patch
  70. 131 127
      build/patches/Disable-safe-browsing.patch
  71. 2 0
      build/patches/Disable-search-engine-DSE-automatic-permission.patch
  72. 5 3
      build/patches/Disable-smart-selection-by-default.patch
  73. 7 5
      build/patches/Disable-some-signed-exchange-features.patch
  74. 2 0
      build/patches/Disable-support-for-RAR-files-inspection.patch
  75. 12 14
      build/patches/Disable-text-fragments-by-default.patch
  76. 2 0
      build/patches/Disable-the-DIAL-repeating-discovery.patch
  77. 2 0
      build/patches/Disable-third-party-cookies-by-default.patch
  78. 11 9
      build/patches/Disable-third-party-origin-trials.patch
  79. 3 1
      build/patches/Disable-unified-autoplay-feature.patch
  80. 2 0
      build/patches/Disable-update-scheduler.patch
  81. 89 0
      build/patches/Disable-various-metrics.patch
  82. 3 1
      build/patches/Do-not-build-API-keys-infobar.patch
  83. 4 2
      build/patches/Do-not-compile-QR-code-sharing.patch
  84. 3 1
      build/patches/Do-not-hide-component-extensions.patch
  85. 2 0
      build/patches/Do-not-ignore-download-location-prompt-setting.patch
  86. 24 0
      build/patches/Do-not-link-with-libatomic.patch
  87. 2 0
      build/patches/Do-not-store-passwords-by-default.patch
  88. 2 0
      build/patches/DoH-secure-mode-by-default.patch
  89. 2 0
      build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture-by-default.patch
  90. 3 1
      build/patches/Enable-SPPI-for-devices-with-enough-memory.patch
  91. 4 2
      build/patches/Enable-darken-websites-checkbox-in-themes.patch
  92. 5 3
      build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
  93. 23 24
      build/patches/Enable-native-Android-autofill.patch
  94. 3 1
      build/patches/Enable-network-isolation-features.patch
  95. 3 1
      build/patches/Enable-prefetch-privacy-changes-by-default.patch
  96. 15 13
      build/patches/Enable-share-intent.patch
  97. 3 1
      build/patches/Enable-user-agent-freeze-by-default.patch
  98. 36 33
      build/patches/Experimental-user-scripts-support.patch
  99. 2 0
      build/patches/Hardening-against-incognito-mode-detection.patch
  100. 2 0
      build/patches/Hide-passwords-manager-link.patch

+ 1 - 1
build/RELEASE

@@ -1 +1 @@
-96.0.4664.183
+97.0.4692.106

+ 4 - 2
build/bromite.gn_args

@@ -8,6 +8,7 @@ disable_android_lint=true
 disable_autofill_assistant_dfm=true
 disable_autofill_assistant_dfm=true
 disable_fieldtrial_testing_config=true
 disable_fieldtrial_testing_config=true
 disable_tab_ui_dfm=true
 disable_tab_ui_dfm=true
+enable_av1_decoder=true
 enable_dav1d_decoder=true
 enable_dav1d_decoder=true
 enable_gvr_services=false
 enable_gvr_services=false
 enable_hangout_services_extension=false
 enable_hangout_services_extension=false
@@ -24,6 +25,7 @@ enable_vr=false
 exclude_unwind_tables=false
 exclude_unwind_tables=false
 ffmpeg_branding="Chrome"
 ffmpeg_branding="Chrome"
 icu_use_data_file=true
 icu_use_data_file=true
+is_cfi=true
 is_component_build=false
 is_component_build=false
 is_debug=false
 is_debug=false
 is_official_build=true
 is_official_build=true
@@ -31,9 +33,9 @@ proprietary_codecs=true
 rtc_build_examples=false
 rtc_build_examples=false
 safe_browsing_mode=0
 safe_browsing_mode=0
 symbol_level=1
 symbol_level=1
+system_webview_package_name="org.bromite.webview"
 target_os="android"
 target_os="android"
-target_cpu="arm"
-treat_warnings_as_errors=false
+use_cfi_cast = true
 use_debug_fission=true
 use_debug_fission=true
 use_errorprone_java_compiler=false
 use_errorprone_java_compiler=false
 use_gnome_keyring=false
 use_gnome_keyring=false

+ 10 - 5
build/bromite_patches_list.txt

@@ -1,12 +1,11 @@
 Disable-third-party-cookies-by-default.patch
 Disable-third-party-cookies-by-default.patch
 do-not-hide-.orig-files.patch
 do-not-hide-.orig-files.patch
+Do-not-link-with-libatomic.patch
 do-not-add-suffix-to-package-name.patch
 do-not-add-suffix-to-package-name.patch
 exit-on-failure-of-inclusion.patch
 exit-on-failure-of-inclusion.patch
 AV1-codec-support.patch
 AV1-codec-support.patch
 Switch-to-fstack-protector-strong.patch
 Switch-to-fstack-protector-strong.patch
 Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
 Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
-enable-ftrivial-auto-var-init-zero.patch
-disable-broken-warning-for-auto-var-init.patch
 Bromite-package-name.patch
 Bromite-package-name.patch
 Restore-classic-new-tab-page.patch
 Restore-classic-new-tab-page.patch
 Always-use-new-tab-page-for-default-home-page.patch
 Always-use-new-tab-page-for-default-home-page.patch
@@ -35,7 +34,7 @@ ungoogled-chromium-Disable-Gaia.patch
 ungoogled-chromium-Disable-domain-reliability.patch
 ungoogled-chromium-Disable-domain-reliability.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch
 Disable-safe-browsing.patch
 Disable-safe-browsing.patch
-Skip-the-first-run-and-metrics.patch
+Skip-the-first-run-and-remove-report-sending.patch
 Disable-all-promo-dialogs.patch
 Disable-all-promo-dialogs.patch
 Remove-signin-and-data-saver-integrations.patch
 Remove-signin-and-data-saver-integrations.patch
 Hide-passwords-manager-link.patch
 Hide-passwords-manager-link.patch
@@ -52,7 +51,6 @@ Add-exit-menu-item.patch
 Remove-help-menu-item.patch
 Remove-help-menu-item.patch
 AudioBuffer-AnalyserNode-fp-mitigations.patch
 AudioBuffer-AnalyserNode-fp-mitigations.patch
 Multiple-fingerprinting-mitigations.patch
 Multiple-fingerprinting-mitigations.patch
-Disable-metrics-on-all-I-O-threads.patch
 Add-flag-to-configure-maximum-connections-per-host.patch
 Add-flag-to-configure-maximum-connections-per-host.patch
 Do-not-ignore-download-location-prompt-setting.patch
 Do-not-ignore-download-location-prompt-setting.patch
 Add-bookmark-import-export-actions.patch
 Add-bookmark-import-export-actions.patch
@@ -67,7 +65,7 @@ Do-not-build-API-keys-infobar.patch
 autofill-disable-autofill-download-manager.patch
 autofill-disable-autofill-download-manager.patch
 first_run-deactivate-autoupdate-globally.patch
 first_run-deactivate-autoupdate-globally.patch
 translate-disable-fetching-of-translate-languages-from-server.patch
 translate-disable-fetching-of-translate-languages-from-server.patch
-kill-TOS-and-metrics-opt-out.patch
+kill-TOS.patch
 kill-Vision.patch
 kill-Vision.patch
 kill-Location-fall-back-to-system.patch
 kill-Location-fall-back-to-system.patch
 kill-Auth.patch
 kill-Auth.patch
@@ -80,6 +78,8 @@ Disable-search-engine-DSE-automatic-permission.patch
 Add-flag-to-disable-IPv6-probes.patch
 Add-flag-to-disable-IPv6-probes.patch
 Add-a-proxy-configuration-page.patch
 Add-a-proxy-configuration-page.patch
 Use-4-tile-rows-never-show-logo.patch
 Use-4-tile-rows-never-show-logo.patch
+Disable-metrics-on-all-I-O-threads.patch
+Disable-various-metrics.patch
 Disable-metrics-collection-for-NTP-tiles.patch
 Disable-metrics-collection-for-NTP-tiles.patch
 Enable-SPPI-for-devices-with-enough-memory.patch
 Enable-SPPI-for-devices-with-enough-memory.patch
 Use-64-bit-WebView-processes.patch
 Use-64-bit-WebView-processes.patch
@@ -177,3 +177,8 @@ Disable-FLoC.patch
 Restore-offline-indicator-v2-flag.patch
 Restore-offline-indicator-v2-flag.patch
 Automated-domain-substitution.patch
 Automated-domain-substitution.patch
 Reintroduce-override_build_timestamp.patch
 Reintroduce-override_build_timestamp.patch
+enable-ftrivial-auto-var-init-zero.patch
+disable-appending-variations-header.patch
+use-Google-Chrome-branding-for-client-hints.patch
+Make-HTTPS-only-mode-the-default.patch
+disable-mobile-identity-consistency-by-default.patch

+ 1 - 0
build/chromium_patches_list.txt

@@ -2,6 +2,7 @@ AV1-codec-support.patch
 exit-on-failure-of-inclusion.patch
 exit-on-failure-of-inclusion.patch
 Reintroduce-override_build_timestamp.patch
 Reintroduce-override_build_timestamp.patch
 do-not-hide-.orig-files.patch
 do-not-hide-.orig-files.patch
+Do-not-link-with-libatomic.patch
 do-not-add-suffix-to-package-name.patch
 do-not-add-suffix-to-package-name.patch
 Switch-to-fstack-protector-strong.patch
 Switch-to-fstack-protector-strong.patch
 Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
 Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch

+ 8 - 6
build/patches/AImageReader-CFI-crash-mitigations.patch

@@ -82,8 +82,8 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
 --- a/chrome/browser/flag-metadata.json
 --- a/chrome/browser/flag-metadata.json
 +++ b/chrome/browser/flag-metadata.json
 +++ b/chrome/browser/flag-metadata.json
-@@ -2062,9 +2062,9 @@
-     "expiry_milestone": 97
+@@ -2095,9 +2095,9 @@
+     "expiry_milestone": 100
    },
    },
    {
    {
 -    "name": "enable-image-reader",
 -    "name": "enable-image-reader",
@@ -124,7 +124,7 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis
 diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
 diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
 --- a/gpu/config/gpu_finch_features.cc
 --- a/gpu/config/gpu_finch_features.cc
 +++ b/gpu/config/gpu_finch_features.cc
 +++ b/gpu/config/gpu_finch_features.cc
-@@ -51,6 +51,11 @@ bool IsDeviceBlocked(const char* field, const std::string& block_list) {
+@@ -52,6 +52,11 @@ bool IsDeviceBlocked(const char* field, const std::string& block_list) {
  }  // namespace
  }  // namespace
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
@@ -160,7 +160,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
    if (!gpu_preferences.enable_android_surface_control)
    if (!gpu_preferences.enable_android_surface_control)
      return kGpuFeatureStatusDisabled;
      return kGpuFeatureStatusDisabled;
  
  
-@@ -344,6 +347,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
+@@ -356,6 +359,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
      gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
      gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
          kGpuFeatureStatusBlocklisted;
          kGpuFeatureStatusBlocklisted;
    }
    }
@@ -229,7 +229,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -663,6 +663,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
+@@ -678,6 +678,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
  // Note: Has no effect if kMediaDrmPreprovisioning feature is disabled.
  // Note: Has no effect if kMediaDrmPreprovisioning feature is disabled.
  const base::Feature kMediaDrmPreprovisioningAtStartup{
  const base::Feature kMediaDrmPreprovisioningAtStartup{
      "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
      "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
@@ -243,7 +243,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 diff --git a/media/base/media_switches.h b/media/base/media_switches.h
 diff --git a/media/base/media_switches.h b/media/base/media_switches.h
 --- a/media/base/media_switches.h
 --- a/media/base/media_switches.h
 +++ b/media/base/media_switches.h
 +++ b/media/base/media_switches.h
-@@ -219,6 +219,7 @@ MEDIA_EXPORT extern const base::Feature kForceHardwareAudioDecoders;
+@@ -216,6 +216,7 @@ MEDIA_EXPORT extern const base::Feature kForceHardwareAudioDecoders;
  MEDIA_EXPORT extern const base::Feature kAllowNonSecureOverlays;
  MEDIA_EXPORT extern const base::Feature kAllowNonSecureOverlays;
  MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
  MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
  MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
  MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
@@ -251,3 +251,5 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h
  MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
  MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
  MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;
  MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;
  MEDIA_EXPORT extern const base::Feature kCanPlayHls;
  MEDIA_EXPORT extern const base::Feature kCanPlayHls;
+--
+2.25.1

+ 2 - 0
build/patches/API-level-21-prevent-crash-on-download.patch

@@ -33,3 +33,5 @@ diff --git a/components/background_task_scheduler/internal/android/java/src/org/
              } else if (obj instanceof Double) {
              } else if (obj instanceof Double) {
                  persistableBundle.putDouble(key, (Double) obj);
                  persistableBundle.putDouble(key, (Double) obj);
              } else if (obj instanceof double[]) {
              } else if (obj instanceof double[]) {
+--
+2.25.1

+ 3 - 1
build/patches/AV1-codec-support.patch

@@ -54,7 +54,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
 diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
 diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
 --- a/third_party/libaom/libaom_srcs.gni
 --- a/third_party/libaom/libaom_srcs.gni
 +++ b/third_party/libaom/libaom_srcs.gni
 +++ b/third_party/libaom/libaom_srcs.gni
-@@ -642,6 +642,11 @@ aom_mem_sources = [
+@@ -643,6 +643,11 @@ aom_mem_sources = [
  
  
  aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/float.asm" ]
  aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/float.asm" ]
  
  
@@ -210,3 +210,5 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/th
  #define CONFIG_RD_COMMAND 0
  #define CONFIG_RD_COMMAND 0
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_REALTIME_ONLY 1
  #define CONFIG_REALTIME_ONLY 1
+--
+2.25.1

+ 8 - 6
build/patches/Add-AllowUserCertificates-flag.patch

@@ -18,7 +18,7 @@ Subject: Add AllowUserCertificates flag
 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
-@@ -226,6 +226,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
+@@ -227,6 +227,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
  import org.chromium.content_public.browser.SelectionPopupController;
  import org.chromium.content_public.browser.SelectionPopupController;
  import org.chromium.content_public.browser.WebContents;
  import org.chromium.content_public.browser.WebContents;
  import org.chromium.content_public.common.ContentSwitches;
  import org.chromium.content_public.common.ContentSwitches;
@@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.printing.PrintManagerDelegateImpl;
  import org.chromium.printing.PrintManagerDelegateImpl;
  import org.chromium.printing.PrintingController;
  import org.chromium.printing.PrintingController;
  import org.chromium.printing.PrintingControllerImpl;
  import org.chromium.printing.PrintingControllerImpl;
-@@ -981,6 +982,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -990,6 +991,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
          UpdateMenuItemHelper.getInstance().onStart();
          UpdateMenuItemHelper.getInstance().onStart();
          ChromeActivitySessionTracker.getInstance().onStartWithNative();
          ChromeActivitySessionTracker.getInstance().onStartWithNative();
          ChromeCachedFlags.getInstance().cacheNativeFlags();
          ChromeCachedFlags.getInstance().cacheNativeFlags();
@@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
-@@ -90,6 +90,7 @@ public class ChromeCachedFlags {
+@@ -91,6 +91,7 @@ public class ChromeCachedFlags {
                  add(ChromeFeatureList
                  add(ChromeFeatureList
                                  .GIVE_JAVA_UI_THREAD_DEFAULT_TASK_TRAITS_USER_BLOCKING_PRIORITY);
                                  .GIVE_JAVA_UI_THREAD_DEFAULT_TASK_TRAITS_USER_BLOCKING_PRIORITY);
                  add(ChromeFeatureList.IMMERSIVE_UI_MODE);
                  add(ChromeFeatureList.IMMERSIVE_UI_MODE);
@@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/Chrom
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -2874,6 +2874,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2903,6 +2903,10 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kCSSContainerQueriesDescription, kOsAll,
       flag_descriptions::kCSSContainerQueriesDescription, kOsAll,
       FEATURE_VALUE_TYPE(blink::features::kCSSContainerQueries)},
       FEATURE_VALUE_TYPE(blink::features::kCSSContainerQueries)},
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
@@ -91,7 +91,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -150,6 +150,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -153,6 +153,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &feed::kFeedSignInPromoDismiss,
      &feed::kFeedSignInPromoDismiss,
      &feed::kInterestFeedContentSuggestions,
      &feed::kInterestFeedContentSuggestions,
      &feed::kInterestFeedSpinnerAlwaysAnimate,
      &feed::kInterestFeedSpinnerAlwaysAnimate,
@@ -99,7 +99,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &feed::kInterestFeedV1ClicksAndViewsConditionalUpload,
      &feed::kInterestFeedV1ClicksAndViewsConditionalUpload,
      &feed::kInterestFeedV2,
      &feed::kInterestFeedV2,
      &feed::kInterestFeedV2Autoplay,
      &feed::kInterestFeedV2Autoplay,
-@@ -387,6 +388,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2{
+@@ -392,6 +393,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2{
      "AdaptiveButtonInTopToolbarCustomizationV2",
      "AdaptiveButtonInTopToolbarCustomizationV2",
      base::FEATURE_DISABLED_BY_DEFAULT};
      base::FEATURE_DISABLED_BY_DEFAULT};
  
  
@@ -164,3 +164,5 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j
              return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
              return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
                                                 isIssuedByKnownRoot, verifiedChain);
                                                 isIssuedByKnownRoot, verifiedChain);
          }
          }
+--
+2.25.1

+ 3 - 1
build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch

@@ -9,7 +9,7 @@ Subject: Add Alt+D hotkey to focus address bar
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
-@@ -156,6 +156,8 @@ public class KeyboardShortcuts {
+@@ -154,6 +154,8 @@ public class KeyboardShortcuts {
                  KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
                  KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
          addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
          addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
                  KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
                  KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
@@ -18,3 +18,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
          shortcutGroups.add(chromeFeatureShortcutGroup);
          shortcutGroups.add(chromeFeatureShortcutGroup);
  
  
          KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
          KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
+--
+2.25.1

+ 2 - 0
build/patches/Add-DuckDuckGo-Lite-search-engine.patch

@@ -921,3 +921,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ask,
      &ask,
  };
  };
  // ----------------------------------------------------------------------------
  // ----------------------------------------------------------------------------
+--
+2.25.1

+ 2 - 0
build/patches/Add-English-only-search-engine.patch

@@ -1026,3 +1026,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
+--
+2.25.1

+ 10 - 8
build/patches/Add-IsCleartextPermitted-flag.patch

@@ -14,7 +14,7 @@ Subject: Add IsCleartextPermitted flag
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -7780,6 +7780,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -7817,6 +7817,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(
       FEATURE_VALUE_TYPE(
           chrome::android::kBookmarksExportUseSaf)},
           chrome::android::kBookmarksExportUseSaf)},
  
  
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1507,6 +1507,10 @@ const char kHttpsOnlyModeDescription[] =
+@@ -1474,6 +1474,10 @@ const char kHttpsOnlyModeDescription[] =
      "Adds a setting under chrome://settings/security to opt-in to HTTPS-First "
      "Adds a setting under chrome://settings/security to opt-in to HTTPS-First "
      "Mode.";
      "Mode.";
  
  
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -867,6 +867,9 @@ extern const char kHostedAppShimCreationDescription[];
+@@ -846,6 +846,9 @@ extern const char kHideShelfControlsInTabletModeDescription[];
  extern const char kHttpsOnlyModeName[];
  extern const char kHttpsOnlyModeName[];
  extern const char kHttpsOnlyModeDescription[];
  extern const char kHttpsOnlyModeDescription[];
  
  
@@ -56,8 +56,8 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/net/base/features.cc b/net/base/features.cc
 diff --git a/net/base/features.cc b/net/base/features.cc
 --- a/net/base/features.cc
 --- a/net/base/features.cc
 +++ b/net/base/features.cc
 +++ b/net/base/features.cc
-@@ -89,6 +89,9 @@ const base::FeatureParam<int> kUseDnsHttpsSvcbExtraTimePercent{
- const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
+@@ -92,6 +92,9 @@ const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
+ const base::Feature kEncryptedClientHello{"EncryptedClientHello",
                                            base::FEATURE_DISABLED_BY_DEFAULT};
                                            base::FEATURE_DISABLED_BY_DEFAULT};
  
  
 +const base::Feature kIsCleartextPermitted{"IsCleartextPermitted",
 +const base::Feature kIsCleartextPermitted{"IsCleartextPermitted",
@@ -69,9 +69,9 @@ diff --git a/net/base/features.cc b/net/base/features.cc
 diff --git a/net/base/features.h b/net/base/features.h
 diff --git a/net/base/features.h b/net/base/features.h
 --- a/net/base/features.h
 --- a/net/base/features.h
 +++ b/net/base/features.h
 +++ b/net/base/features.h
-@@ -37,6 +37,8 @@ NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin;
- // Enables TLS 1.3 early data.
- NET_EXPORT extern const base::Feature kEnableTLS13EarlyData;
+@@ -34,6 +34,8 @@ NET_EXPORT extern const base::Feature kAvoidH2Reprioritization;
+ // origin requests are restricted to contain at most the source origin.
+ NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin;
  
  
 +NET_EXPORT extern const base::Feature kIsCleartextPermitted;
 +NET_EXPORT extern const base::Feature kIsCleartextPermitted;
 +
 +
@@ -92,3 +92,5 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
      // Check whether the app allows cleartext traffic to this host, and return
      // Check whether the app allows cleartext traffic to this host, and return
      // ERR_CLEARTEXT_NOT_PERMITTED if not.
      // ERR_CLEARTEXT_NOT_PERMITTED if not.
      if (request->context()->check_cleartext_permitted() &&
      if (request->context()->check_cleartext_permitted() &&
+--
+2.25.1

+ 6 - 4
build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch

@@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -712,6 +712,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
+@@ -700,6 +700,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
      "authenticator (if available) to verify card ownership when retrieving "
      "authenticator (if available) to verify card ownership when retrieving "
      "credit cards from Google Payments.";
      "credit cards from Google Payments.";
  
  
@@ -48,7 +48,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -446,6 +446,9 @@ extern const char kEnableAutofillSaveCardInfoBarAccountIndicationFooterName[];
+@@ -440,6 +440,9 @@ extern const char kEnableAutofillSaveCardInfoBarAccountIndicationFooterName[];
  extern const char
  extern const char
      kEnableAutofillSaveCardInfoBarAccountIndicationFooterDescription[];
      kEnableAutofillSaveCardInfoBarAccountIndicationFooterDescription[];
  
  
@@ -75,7 +75,7 @@ diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmp
 diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
 diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
 --- a/chrome/common/chrome_switches.cc
 --- a/chrome/common/chrome_switches.cc
 +++ b/chrome/common/chrome_switches.cc
 +++ b/chrome/common/chrome_switches.cc
-@@ -335,6 +335,9 @@ const char kHomePage[]                      = "homepage";
+@@ -332,6 +332,9 @@ const char kHomePage[]                      = "homepage";
  // Causes the browser to launch directly in incognito mode.
  // Causes the browser to launch directly in incognito mode.
  const char kIncognito[]                     = "incognito";
  const char kIncognito[]                     = "incognito";
  
  
@@ -88,7 +88,7 @@ diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
 diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
 diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
 --- a/chrome/common/chrome_switches.h
 --- a/chrome/common/chrome_switches.h
 +++ b/chrome/common/chrome_switches.h
 +++ b/chrome/common/chrome_switches.h
-@@ -110,6 +110,7 @@ extern const char kForceStackedTabStripLayout[];
+@@ -109,6 +109,7 @@ extern const char kForceFirstRun[];
  extern const char kHideCrashRestoreBubble[];
  extern const char kHideCrashRestoreBubble[];
  extern const char kHomePage[];
  extern const char kHomePage[];
  extern const char kIncognito[];
  extern const char kIncognito[];
@@ -96,3 +96,5 @@ diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
  extern const char kInstallAutogeneratedTheme[];
  extern const char kInstallAutogeneratedTheme[];
  extern const char kInstallChromeApp[];
  extern const char kInstallChromeApp[];
  extern const char kInstantProcess[];
  extern const char kInstantProcess[];
+--
+2.25.1

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

@@ -70,7 +70,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -52,6 +52,7 @@ import org.chromium.ui.text.SpanApplier;
+@@ -51,6 +51,7 @@ import org.chromium.ui.text.SpanApplier;
  public class PrivacySettings
  public class PrivacySettings
          extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener,
          extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener,
                                                      INeedSnackbarManager {
                                                      INeedSnackbarManager {
@@ -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
-@@ -374,6 +374,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
+@@ -280,6 +280,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    builtins_to_provide.push_back(
    builtins_to_provide.push_back(
        base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
        base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
  #endif
  #endif
@@ -173,7 +173,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -164,6 +164,8 @@
+@@ -160,6 +160,8 @@
  #include "printing/buildflags/buildflags.h"
  #include "printing/buildflags/buildflags.h"
  #include "rlz/buildflags/buildflags.h"
  #include "rlz/buildflags/buildflags.h"
  
  
@@ -182,7 +182,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
  #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
  #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
  #include "chrome/browser/background/background_mode_manager.h"
  #include "chrome/browser/background/background_mode_manager.h"
  #endif
  #endif
-@@ -960,6 +962,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
+@@ -981,6 +983,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
    PluginsResourceService::RegisterPrefs(registry);
    PluginsResourceService::RegisterPrefs(registry);
  #endif
  #endif
  
  
@@ -647,7 +647,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/quota_internals/quota_internals_ui.h"
  #include "chrome/browser/ui/webui/signin_internals_ui.h"
  #include "chrome/browser/ui/webui/signin_internals_ui.h"
  #include "chrome/browser/ui/webui/support_tool_ui.h"
  #include "chrome/browser/ui/webui/support_tool_ui.h"
-@@ -644,6 +645,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -647,6 +648,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
      return &NewWebUI<MemoryInternalsUI>;
      return &NewWebUI<MemoryInternalsUI>;
    if (url.host_piece() == chrome::kChromeUINetExportHost)
    if (url.host_piece() == chrome::kChromeUINetExportHost)
      return &NewWebUI<NetExportUI>;
      return &NewWebUI<NetExportUI>;
@@ -1138,7 +1138,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
      kChromeUIOobeHost,
      kChromeUIOobeHost,
      kChromeUIOSCreditsHost,
      kChromeUIOSCreditsHost,
      kChromeUIOSSettingsHost,
      kChromeUIOSSettingsHost,
-@@ -584,6 +587,7 @@ const char* const kChromeHostURLs[] = {
+@@ -582,6 +585,7 @@ const char* const kChromeHostURLs[] = {
  #if !defined(OS_ANDROID)
  #if !defined(OS_ANDROID)
  #if !BUILDFLAG(IS_CHROMEOS_ASH)
  #if !BUILDFLAG(IS_CHROMEOS_ASH)
      kChromeUIAppLauncherPageHost,
      kChromeUIAppLauncherPageHost,
@@ -1149,7 +1149,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
 diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
 diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
 --- a/chrome/common/webui_url_constants.h
 --- a/chrome/common/webui_url_constants.h
 +++ b/chrome/common/webui_url_constants.h
 +++ b/chrome/common/webui_url_constants.h
-@@ -127,6 +127,8 @@ extern const char kChromeUIMemoryInternalsHost[];
+@@ -125,6 +125,8 @@ extern const char kChromeUIMemoryInternalsHost[];
  extern const char kChromeUINTPTilesInternalsHost[];
  extern const char kChromeUINTPTilesInternalsHost[];
  extern const char kChromeUINaClHost[];
  extern const char kChromeUINaClHost[];
  extern const char kChromeUINetExportHost[];
  extern const char kChromeUINetExportHost[];
@@ -1388,3 +1388,5 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co
  
  
      // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp,
      // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp,
      // &fallback_proxies}, or NULL if there is no proxy to use.
      // &fallback_proxies}, or NULL if there is no proxy to use.
+--
+2.25.1

+ 18 - 16
build/patches/Add-an-always-incognito-mode.patch

@@ -153,7 +153,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
  import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
  import org.chromium.chrome.browser.IntentHandler.TabOpenType;
  import org.chromium.chrome.browser.IntentHandler.TabOpenType;
  import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
  import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
-@@ -1770,8 +1771,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1760,8 +1761,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          Bundle savedInstanceState = getSavedInstanceState();
          Bundle savedInstanceState = getSavedInstanceState();
  
  
          // We determine the model as soon as possible so every systems get initialized coherently.
          // We determine the model as soon as possible so every systems get initialized coherently.
@@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
  import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
  import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
  import org.chromium.chrome.browser.device.DeviceClassManager;
  import org.chromium.chrome.browser.device.DeviceClassManager;
-@@ -1891,6 +1892,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -1910,6 +1911,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              throw new IllegalStateException(
              throw new IllegalStateException(
                      "Attempting to access TabCreator before initialization");
                      "Attempting to access TabCreator before initialization");
          }
          }
@@ -189,7 +189,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-@@ -538,6 +538,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -515,6 +515,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
      }
      }
  
  
      private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
      private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -301,7 +301,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
-@@ -34,6 +34,9 @@ import org.chromium.content_public.browser.WebContents;
+@@ -38,6 +38,9 @@ import org.chromium.network.mojom.ReferrerPolicy;
  import org.chromium.ui.base.WindowAndroid;
  import org.chromium.ui.base.WindowAndroid;
  import org.chromium.url.GURL;
  import org.chromium.url.GURL;
  
  
@@ -311,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
  /**
  /**
   * This class attempts to preload the tab if the url is known from the intent when the profile
   * This class attempts to preload the tab if the url is known from the intent when the profile
   * is created. This is done to improve startup latency.
   * is created. This is done to improve startup latency.
-@@ -185,17 +188,22 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
+@@ -349,17 +352,22 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
          Intent intent = mIntentSupplier.get();
          Intent intent = mIntentSupplier.get();
          GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
          GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
  
  
@@ -340,18 +340,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -29,6 +29,10 @@ import org.chromium.chrome.browser.profiles.Profile;
+@@ -27,6 +27,10 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragmen
+ import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
  import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
  import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
- import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
 +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
 +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
 +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
 +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
 +import org.chromium.chrome.browser.ApplicationLifetime;
 +import org.chromium.chrome.browser.ApplicationLifetime;
+ import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
- import org.chromium.components.browser_ui.settings.SettingsLauncher;
-@@ -43,7 +47,12 @@ import org.chromium.ui.text.SpanApplier;
+@@ -42,7 +46,12 @@ import org.chromium.ui.text.SpanApplier;
   * Fragment to keep track of the all the privacy related preferences.
   * Fragment to keep track of the all the privacy related preferences.
   */
   */
  public class PrivacySettings
  public class PrivacySettings
@@ -365,7 +365,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
      private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
      private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
      private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
-@@ -96,6 +105,25 @@ public class PrivacySettings
+@@ -99,6 +108,25 @@ public class PrivacySettings
                  (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
                  (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
          canMakePaymentPref.setOnPreferenceChangeListener(this);
          canMakePaymentPref.setOnPreferenceChangeListener(this);
  
  
@@ -391,7 +391,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          ChromeSwitchPreference networkPredictionPref =
          ChromeSwitchPreference networkPredictionPref =
                  (ChromeSwitchPreference) findPreference(PREF_NETWORK_PREDICTIONS);
                  (ChromeSwitchPreference) findPreference(PREF_NETWORK_PREDICTIONS);
          networkPredictionPref.setChecked(
          networkPredictionPref.setChecked(
-@@ -156,6 +184,9 @@ public class PrivacySettings
+@@ -130,6 +158,9 @@ public class PrivacySettings
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
              PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
              PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
                      (boolean) newValue);
                      (boolean) newValue);
@@ -401,7 +401,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
              UserPrefs.get(Profile.getLastUsedRegularProfile())
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
                      .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
-@@ -238,4 +269,8 @@ public class PrivacySettings
+@@ -208,4 +239,8 @@ public class PrivacySettings
          }
          }
          return false;
          return false;
      }
      }
@@ -434,7 +434,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -121,6 +121,8 @@ import org.chromium.ui.base.DeviceFormFactor;
+@@ -120,6 +120,8 @@ import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.base.IntentRequestTracker;
  import org.chromium.ui.base.IntentRequestTracker;
  import org.chromium.ui.modaldialog.ModalDialogManager;
  import org.chromium.ui.modaldialog.ModalDialogManager;
  import org.chromium.ui.util.TokenHolder;
  import org.chromium.ui.util.TokenHolder;
@@ -443,7 +443,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
  
  
  /**
  /**
   * A {@link RootUiCoordinator} variant that controls tabbed-mode specific UI.
   * A {@link RootUiCoordinator} variant that controls tabbed-mode specific UI.
-@@ -483,11 +485,13 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -494,11 +496,13 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
  
  
          // TODO(twellington): Supply TabModelSelector as well and move initialization earlier.
          // TODO(twellington): Supply TabModelSelector as well and move initialization earlier.
          if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
          if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
@@ -608,7 +608,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -455,7 +455,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
+@@ -460,7 +460,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
                                    base::FEATURE_ENABLED_BY_DEFAULT};
                                    base::FEATURE_ENABLED_BY_DEFAULT};
  
  
  const base::Feature kCCTIncognitoAvailableToThirdParty{
  const base::Feature kCCTIncognitoAvailableToThirdParty{
@@ -620,7 +620,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -924,6 +924,19 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -930,6 +930,19 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
        <message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
          Clears history from all synced devices.
          Clears history from all synced devices.
        </message>
        </message>
@@ -683,3 +683,5 @@ new file mode 100644
 +public interface INeedSnackbarManager {
 +public interface INeedSnackbarManager {
 +    void setSnackbarManager(SnackbarManager manager);
 +    void setSnackbarManager(SnackbarManager manager);
 +}
 +}
+--
+2.25.1

+ 31 - 29
build/patches/Add-bookmark-import-export-actions.patch

@@ -196,7 +196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
-@@ -85,6 +85,12 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
+@@ -86,6 +86,12 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
          } else if (menuItem.getItemId() == R.id.search_menu_id) {
          } else if (menuItem.getItemId() == R.id.search_menu_id) {
              mDelegate.openSearchUI();
              mDelegate.openSearchUI();
              return true;
              return true;
@@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
          }
          }
  
  
          SelectionDelegate<BookmarkId> selectionDelegate = mDelegate.getSelectionDelegate();
          SelectionDelegate<BookmarkId> selectionDelegate = mDelegate.getSelectionDelegate();
-@@ -136,6 +142,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
+@@ -137,6 +143,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
      void showLoadingUi() {
      void showLoadingUi() {
          setTitle(null);
          setTitle(null);
          setNavigationButton(NAVIGATION_BUTTON_NONE);
          setNavigationButton(NAVIGATION_BUTTON_NONE);
@@ -218,7 +218,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
          getMenu().findItem(R.id.search_menu_id).setVisible(false);
          getMenu().findItem(R.id.search_menu_id).setVisible(false);
          getMenu().findItem(R.id.edit_menu_id).setVisible(false);
          getMenu().findItem(R.id.edit_menu_id).setVisible(false);
      }
      }
-@@ -145,6 +153,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
+@@ -146,6 +154,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
          super.showNormalView();
          super.showNormalView();
  
  
          if (mDelegate == null) {
          if (mDelegate == null) {
@@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
              getMenu().findItem(R.id.search_menu_id).setVisible(false);
              getMenu().findItem(R.id.search_menu_id).setVisible(false);
              getMenu().findItem(R.id.edit_menu_id).setVisible(false);
              getMenu().findItem(R.id.edit_menu_id).setVisible(false);
          }
          }
-@@ -175,6 +185,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
+@@ -176,6 +186,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
      public void onFolderStateSet(BookmarkId folder) {
      public void onFolderStateSet(BookmarkId folder) {
          mCurrentFolder = mDelegate.getModel().getBookmarkById(folder);
          mCurrentFolder = mDelegate.getModel().getBookmarkById(folder);
  
  
@@ -330,7 +330,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
  import android.text.TextUtils;
  import android.text.TextUtils;
  import android.util.Pair;
  import android.util.Pair;
  
  
-@@ -30,8 +43,33 @@ import org.chromium.components.url_formatter.UrlFormatter;
+@@ -32,8 +45,33 @@ import org.chromium.components.url_formatter.UrlFormatter;
  import org.chromium.content_public.browser.WebContents;
  import org.chromium.content_public.browser.WebContents;
  import org.chromium.url.GURL;
  import org.chromium.url.GURL;
  
  
@@ -364,7 +364,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
  
  
  /**
  /**
   * Provides the communication channel for Android to fetch and manipulate the
   * Provides the communication channel for Android to fetch and manipulate the
-@@ -588,6 +626,209 @@ public class BookmarkBridge {
+@@ -614,6 +652,209 @@ public class BookmarkBridge {
                  mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
                  mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
      }
      }
  
  
@@ -574,7 +574,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      /**
      /**
       * Synchronously gets a list of bookmarks that match the specified search query.
       * Synchronously gets a list of bookmarks that match the specified search query.
       * @param query Keyword used for searching bookmarks.
       * @param query Keyword used for searching bookmarks.
-@@ -1100,6 +1341,39 @@ public class BookmarkBridge {
+@@ -1132,6 +1373,39 @@ public class BookmarkBridge {
          depthList.add(depth);
          depthList.add(depth);
      }
      }
  
  
@@ -614,7 +614,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
      private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
          List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
          List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
          for (int i = 0; i < left.length; i++) {
          for (int i = 0; i < left.length; i++) {
-@@ -1167,6 +1441,9 @@ public class BookmarkBridge {
+@@ -1202,6 +1476,9 @@ public class BookmarkBridge {
          int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type);
          int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type);
          void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type,
          void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type,
                  List<BookmarkId> bookmarksList);
                  List<BookmarkId> bookmarksList);
@@ -786,7 +786,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -1843,6 +1843,13 @@ static_library("browser") {
+@@ -1855,6 +1855,13 @@ static_library("browser") {
      "window_placement/window_placement_permission_context.h",
      "window_placement/window_placement_permission_context.h",
    ]
    ]
  
  
@@ -800,7 +800,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
    configs += [
    configs += [
      "//build/config/compiler:wexit_time_destructors",
      "//build/config/compiler:wexit_time_destructors",
      "//build/config:precompiled_headers",
      "//build/config:precompiled_headers",
-@@ -2974,6 +2981,8 @@ static_library("browser") {
+@@ -2989,6 +2996,8 @@ static_library("browser") {
        "autofill/manual_filling_view_interface.h",
        "autofill/manual_filling_view_interface.h",
        "banners/android/chrome_app_banner_manager_android.cc",
        "banners/android/chrome_app_banner_manager_android.cc",
        "banners/android/chrome_app_banner_manager_android.h",
        "banners/android/chrome_app_banner_manager_android.h",
@@ -809,7 +809,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "browser_process_platform_part_android.cc",
        "browser_process_platform_part_android.cc",
        "browser_process_platform_part_android.h",
        "browser_process_platform_part_android.h",
        "chrome_browser_field_trials_mobile.cc",
        "chrome_browser_field_trials_mobile.cc",
-@@ -3585,8 +3594,6 @@ static_library("browser") {
+@@ -3618,8 +3627,6 @@ static_library("browser") {
        "badging/badge_manager_factory.h",
        "badging/badge_manager_factory.h",
        "banners/app_banner_manager_desktop.cc",
        "banners/app_banner_manager_desktop.cc",
        "banners/app_banner_manager_desktop.h",
        "banners/app_banner_manager_desktop.h",
@@ -821,9 +821,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -7733,6 +7733,12 @@ const FeatureEntry kFeatureEntries[] = {
-      FEATURE_VALUE_TYPE(ui::kLibinputHandleTouchpad)},
- #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -7770,6 +7770,12 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(ash::features::kDesksTemplates)},
+ #endif
  
  
 +    {"export-bookmarks-use-saf",
 +    {"export-bookmarks-use-saf",
 +     flag_descriptions::kBookmarksExportUseSafName,
 +     flag_descriptions::kBookmarksExportUseSafName,
@@ -961,10 +961,10 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
 +};
 +};
 +
 +
 +
 +
- const int kInvalidId = -1;
- 
  class BookmarkTitleComparer {
  class BookmarkTitleComparer {
-@@ -156,6 +260,10 @@ BookmarkBridge::~BookmarkBridge() {
+  public:
+   explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
+@@ -154,6 +258,10 @@ BookmarkBridge::~BookmarkBridge() {
    if (partner_bookmarks_shim_)
    if (partner_bookmarks_shim_)
      partner_bookmarks_shim_->RemoveObserver(this);
      partner_bookmarks_shim_->RemoveObserver(this);
    reading_list_manager_->RemoveObserver(this);
    reading_list_manager_->RemoveObserver(this);
@@ -975,7 +975,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
  }
  }
  
  
  void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
  void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
-@@ -547,6 +655,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
+@@ -571,6 +679,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
    return count;
    return count;
  }
  }
  
  
@@ -1202,7 +1202,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
    jboolean IsEditBookmarksEnabled(JNIEnv* env);
    jboolean IsEditBookmarksEnabled(JNIEnv* env);
  
  
    void LoadEmptyPartnerBookmarkShimForTesting(
    void LoadEmptyPartnerBookmarkShimForTesting(
-@@ -146,6 +157,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
+@@ -156,6 +167,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
                               jlong id,
                               jlong id,
                               jint type);
                               jint type);
  
  
@@ -1218,7 +1218,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
    void SetBookmarkTitle(JNIEnv* env,
    void SetBookmarkTitle(JNIEnv* env,
                          const base::android::JavaParamRef<jobject>& obj,
                          const base::android::JavaParamRef<jobject>& obj,
                          jlong id,
                          jlong id,
-@@ -347,12 +367,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
+@@ -359,12 +379,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
    void DestroyJavaObject();
    void DestroyJavaObject();
  
  
    Profile* profile_;
    Profile* profile_;
@@ -1234,7 +1234,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
  
  
    // Information about the Partner bookmarks (must check for IsLoaded()).
    // Information about the Partner bookmarks (must check for IsLoaded()).
    // This is owned by profile.
    // This is owned by profile.
-@@ -363,6 +386,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
+@@ -375,6 +398,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
  
  
    // Observes the profile destruction and creation.
    // Observes the profile destruction and creation.
    base::ScopedObservation<Profile, ProfileObserver> profile_observation_{this};
    base::ScopedObservation<Profile, ProfileObserver> profile_observation_{this};
@@ -1340,7 +1340,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -5474,6 +5474,11 @@ const char kWebKioskEnableLacrosDescription[] =
+@@ -5468,6 +5468,11 @@ const char kWebKioskEnableLacrosDescription[] =
      "Chrome OS. When disabled, the Ash-chrome will be used";
      "Chrome OS. When disabled, the Ash-chrome will be used";
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -1355,7 +1355,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -3185,6 +3185,9 @@ extern const char kWebKioskEnableLacrosName[];
+@@ -3193,6 +3193,9 @@ extern const char kWebKioskEnableLacrosName[];
  extern const char kWebKioskEnableLacrosDescription[];
  extern const char kWebKioskEnableLacrosDescription[];
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -1368,7 +1368,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -174,6 +174,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -177,6 +177,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &kBackgroundThreadPool,
      &kBackgroundThreadPool,
      &kBentoOffline,
      &kBentoOffline,
      &kBookmarkBottomSheet,
      &kBookmarkBottomSheet,
@@ -1376,7 +1376,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &kCastDeviceFilter,
      &kCastDeviceFilter,
      &kCloseTabSuggestions,
      &kCloseTabSuggestions,
      &kCriticalPersistedTabData,
      &kCriticalPersistedTabData,
-@@ -824,6 +825,10 @@ const base::Feature kWebApkInstallCompleteNotification{
+@@ -829,6 +830,10 @@ const base::Feature kWebApkInstallCompleteNotification{
  const base::Feature kWebApkTrampolineOnInitialIntent{
  const base::Feature kWebApkTrampolineOnInitialIntent{
      "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT};
      "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -1401,7 +1401,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -552,6 +552,7 @@ public abstract class ChromeFeatureList {
+@@ -560,6 +560,7 @@ public abstract class ChromeFeatureList {
              "WebApkTrampolineOnInitialIntent";
              "WebApkTrampolineOnInitialIntent";
      public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting";
      public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting";
      public static final String WEB_OTP_CROSS_DEVICE_SIMPLE_STRING = "WebOtpCrossDeviceSimpleString";
      public static final String WEB_OTP_CROSS_DEVICE_SIMPLE_STRING = "WebOtpCrossDeviceSimpleString";
@@ -1470,7 +1470,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
-@@ -121,6 +121,8 @@ public final class ChromePreferenceKeys {
+@@ -122,6 +122,8 @@ public final class ChromePreferenceKeys {
      public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url";
      public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url";
      public static final String BOOKMARKS_LAST_USED_PARENT =
      public static final String BOOKMARKS_LAST_USED_PARENT =
              "enhanced_bookmark_last_used_parent_folder";
              "enhanced_bookmark_last_used_parent_folder";
@@ -1479,7 +1479,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
  
  
      /**
      /**
       * Whether Chrome is set as the default browser.
       * Whether Chrome is set as the default browser.
-@@ -1042,6 +1044,7 @@ public final class ChromePreferenceKeys {
+@@ -1049,6 +1051,7 @@ public final class ChromePreferenceKeys {
                  AUTOFILL_ASSISTANT_PROACTIVE_HELP,
                  AUTOFILL_ASSISTANT_PROACTIVE_HELP,
                  APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
                  APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
                  APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
                  APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1518,7 +1518,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
 diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
 --- a/chrome/common/BUILD.gn
 --- a/chrome/common/BUILD.gn
 +++ b/chrome/common/BUILD.gn
 +++ b/chrome/common/BUILD.gn
-@@ -414,6 +414,9 @@ static_library("common") {
+@@ -415,6 +415,9 @@ static_library("common") {
      sources += [
      sources += [
        "media/chrome_media_drm_bridge_client.cc",
        "media/chrome_media_drm_bridge_client.cc",
        "media/chrome_media_drm_bridge_client.h",
        "media/chrome_media_drm_bridge_client.h",
@@ -1782,3 +1782,5 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/se
   protected:
   protected:
    ~SelectFileDialogImpl() override;
    ~SelectFileDialogImpl() override;
  
  
+--
+2.25.1

+ 14 - 12
build/patches/Add-custom-tab-intents-privacy-option.patch

@@ -124,8 +124,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 @@ -94,6 +94,9 @@ public class PrivacySettings
 @@ -94,6 +94,9 @@ public class PrivacySettings
- 
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
+     private IncognitoLockSettings mIncognitoLockSettings;
  
  
 +    private ChromeSwitchPreference allowCustomTabIntentsPref;
 +    private ChromeSwitchPreference allowCustomTabIntentsPref;
 +    private ChromeSwitchPreference openExternalLinksPref;
 +    private ChromeSwitchPreference openExternalLinksPref;
@@ -133,8 +133,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      @Override
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
          PrivacyPreferencesManagerImpl privacyPrefManager =
          PrivacyPreferencesManagerImpl privacyPrefManager =
-@@ -232,6 +235,9 @@ public class PrivacySettings
-         incognitoReauthPreference.setChecked(lastPrefValue);
+@@ -206,6 +209,9 @@ public class PrivacySettings
+         updatePreferences();
      }
      }
  
  
 +    public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
 +    public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
@@ -143,10 +143,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      @Override
      public boolean onPreferenceChange(Preference preference, Object newValue) {
      public boolean onPreferenceChange(Preference preference, Object newValue) {
          String key = preference.getKey();
          String key = preference.getKey();
-@@ -266,6 +272,14 @@ public class PrivacySettings
-         } else if (PREF_INCOGNITO_TAB_HISTORY_ENABLED.equals(key)) {
-             UserPrefs.get(Profile.getLastUsedRegularProfile())
-                     .setBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED, (boolean) newValue);
+@@ -225,6 +231,14 @@ public class PrivacySettings
+         } else if (PREF_AUTOFILL_ASSISTANT.equals(key)) {
+             mSharedPreferencesManager.writeBoolean(
+                 ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
 +        } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
 +        } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
 +            SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
 +            SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
 +            sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
 +            sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
@@ -155,10 +155,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 +            SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
 +            SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
 +            sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
 +            sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
 +            sharedPreferencesEditor.apply();
 +            sharedPreferencesEditor.apply();
-         }
- 
-         return true;
-@@ -301,6 +315,16 @@ public class PrivacySettings
+         } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
+             PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
+                     (boolean) newValue);
+@@ -260,6 +274,16 @@ public class PrivacySettings
              canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
              canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
          }
          }
  
  
@@ -194,7 +194,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4609,6 +4609,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4622,6 +4622,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
        <message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
           Show original
           Show original
        </message>
        </message>
@@ -216,3 +216,5 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
  
  
        <!-- Autofill Assistant preferences -->
        <!-- Autofill Assistant preferences -->
        <!-- TODO(b/168178344): Move to Assistant settings strings section below. -->
        <!-- TODO(b/168178344): Move to Assistant settings strings section below. -->
+--
+2.25.1

+ 7 - 5
build/patches/Add-exit-menu-item.patch

@@ -14,7 +14,7 @@ Corrected Exit functionality
 diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
 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
 --- a/chrome/android/java/res/menu/main_menu.xml
 +++ b/chrome/android/java/res/menu/main_menu.xml
 +++ b/chrome/android/java/res/menu/main_menu.xml
-@@ -150,6 +150,9 @@
+@@ -147,6 +147,9 @@
              android:icon="@drawable/gm_filled_cardboard_24" />
              android:icon="@drawable/gm_filled_cardboard_24" />
          <item android:id="@+id/managed_by_menu_id"
          <item android:id="@+id/managed_by_menu_id"
              android:title="@string/managed" />
              android:title="@string/managed" />
@@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
      </group>
      </group>
  
  
      <!-- Items shown only in the tab switcher -->
      <!-- Items shown only in the tab switcher -->
-@@ -176,6 +179,9 @@
+@@ -173,6 +176,9 @@
          <item android:id="@id/preferences_id"
          <item android:id="@id/preferences_id"
              android:title="@string/menu_settings"
              android:title="@string/menu_settings"
              android:icon="@drawable/settings_cog" />
              android:icon="@drawable/settings_cog" />
@@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  /**
  /**
   * This is the main activity for ChromeMobile when not running in document mode.  All the tabs
   * This is the main activity for ChromeMobile when not running in document mode.  All the tabs
   * are accessible via a chrome specific tab switching UI.
   * are accessible via a chrome specific tab switching UI.
-@@ -2032,6 +2034,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2022,6 +2024,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          } else if (id == R.id.close_tab) {
          } else if (id == R.id.close_tab) {
              getCurrentTabModel().closeTab(currentTab, true, false, true);
              getCurrentTabModel().closeTab(currentTab, true, false, true);
              RecordUserAction.record("MobileTabClosed");
              RecordUserAction.record("MobileTabClosed");
@@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.chrome.browser.ChromeActivitySessionTracker;
  import org.chromium.chrome.browser.ChromeActivitySessionTracker;
  import org.chromium.chrome.browser.ChromeApplicationImpl;
  import org.chromium.chrome.browser.ChromeApplicationImpl;
  import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
  import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
-@@ -2316,6 +2317,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2346,6 +2347,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              return true;
              return true;
          }
          }
  
  
@@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -3223,6 +3223,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3222,6 +3222,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
        <message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
          Dark theme
          Dark theme
        </message>
        </message>
@@ -107,3 +107,5 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR_LIMIT=27]">
        <message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR_LIMIT=27]">
          Appearance
          Appearance
        </message>
        </message>
+--
+2.25.1

+ 4 - 2
build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch

@@ -15,7 +15,7 @@ and internal chrome:// pages will be used for the autocomplete results.
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -459,6 +459,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
+@@ -474,6 +474,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
       base::size(kReaderModeOfferInSettings), nullptr}};
       base::size(kReaderModeOfferInSettings), nullptr}};
  #endif  // OS_ANDROID
  #endif  // OS_ANDROID
  
  
@@ -38,7 +38,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
  const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
  const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
      {"mode", "always-none"}};
      {"mode", "always-none"}};
-@@ -4913,6 +4929,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5008,6 +5024,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
       FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
  #endif  // !defined(OS_ANDROID)
  #endif  // !defined(OS_ANDROID)
  
  
@@ -133,3 +133,5 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
        url.append(kChromeUIDefaultHost);
        url.append(kChromeUIDefaultHost);
      FixupPort(trimmed, parts.port, &url);
      FixupPort(trimmed, parts.port, &url);
      FixupPath(trimmed, parts.path, &url);
      FixupPath(trimmed, parts.path, &url);
+--
+2.25.1

+ 7 - 5
build/patches/Add-flag-for-save-data-header.patch

@@ -14,7 +14,7 @@ Subject: Add flag for save-data-header
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -4652,6 +4652,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4735,6 +4735,9 @@ const FeatureEntry kFeatureEntries[] = {
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
@@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1111,6 +1111,10 @@ const char kDisableKeepaliveFetchDescription[] =
+@@ -1096,6 +1096,10 @@ const char kDisableKeepaliveFetchDescription[] =
      "Disable fetch with keepalive set "
      "Disable fetch with keepalive set "
      "(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
      "(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
  
  
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -605,6 +605,9 @@ extern const char kDiagnosticsAppNavigationDescription[];
+@@ -596,6 +596,9 @@ extern const char kDiagnosticsAppNavigationDescription[];
  extern const char kDisableKeepaliveFetchName[];
  extern const char kDisableKeepaliveFetchName[];
  extern const char kDisableKeepaliveFetchDescription[];
  extern const char kDisableKeepaliveFetchDescription[];
  
  
@@ -70,7 +70,7 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont
 diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
 diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
 --- a/services/network/public/cpp/features.cc
 --- a/services/network/public/cpp/features.cc
 +++ b/services/network/public/cpp/features.cc
 +++ b/services/network/public/cpp/features.cc
-@@ -141,6 +141,10 @@ const base::FeatureParam<std::string>
+@@ -134,6 +134,10 @@ const base::FeatureParam<std::string>
                                                 "DisabledProviders", ""};
                                                 "DisabledProviders", ""};
  
  
  // Disable special treatment on requests with keepalive set (see
  // Disable special treatment on requests with keepalive set (see
@@ -84,7 +84,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
 diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
 diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
 --- a/services/network/public/cpp/features.h
 --- a/services/network/public/cpp/features.h
 +++ b/services/network/public/cpp/features.h
 +++ b/services/network/public/cpp/features.h
-@@ -54,6 +54,8 @@ extern const base::FeatureParam<std::string>
+@@ -52,6 +52,8 @@ extern const base::FeatureParam<std::string>
  COMPONENT_EXPORT(NETWORK_CPP)
  COMPONENT_EXPORT(NETWORK_CPP)
  extern const base::Feature kDisableKeepaliveFetch;
  extern const base::Feature kDisableKeepaliveFetch;
  
  
@@ -93,3 +93,5 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
  COMPONENT_EXPORT(NETWORK_CPP)
  COMPONENT_EXPORT(NETWORK_CPP)
  extern const base::Feature kTrustTokens;
  extern const base::Feature kTrustTokens;
  
  
+--
+2.25.1

+ 11 - 9
build/patches/Add-flag-to-configure-maximum-connections-per-host.patch

@@ -19,7 +19,7 @@ with limited CPU/memory resources and it is disabled by default.
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -849,6 +849,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
+@@ -862,6 +862,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
       net::kEffectiveConnectionType4G},
       net::kEffectiveConnectionType4G},
  };
  };
  
  
@@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  // Ensure that all effective connection types returned by Network Quality
  // Ensure that all effective connection types returned by Network Quality
  // Estimator (NQE) are also exposed via flags.
  // Estimator (NQE) are also exposed via flags.
  static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
  static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
-@@ -3918,6 +3923,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -3988,6 +3993,9 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kAndroidPictureInPictureAPIName,
       flag_descriptions::kAndroidPictureInPictureAPIName,
       flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
       flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
       FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
@@ -44,9 +44,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1626,6 +1626,10 @@ const char kMediaHistoryDescription[] =
-     "Enables Media History which records data around media playbacks on "
-     "websites.";
+@@ -1585,6 +1585,10 @@ const char kLogJsConsoleMessagesDescription[] =
+     "Enable logging JS console messages in system logs, please note that they "
+     "may contain PII.";
  
  
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostDescription[] =
 +const char kMaxConnectionsPerHostDescription[] =
@@ -58,9 +58,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -933,6 +933,9 @@ extern const char kLogJsConsoleMessagesDescription[];
- extern const char kMediaHistoryName[];
- extern const char kMediaHistoryDescription[];
+@@ -909,6 +909,9 @@ extern const char kLiteVideoForceOverrideDecisionDescription[];
+ extern const char kLogJsConsoleMessagesName[];
+ extern const char kLogJsConsoleMessagesDescription[];
  
  
 +extern const char kMaxConnectionsPerHostName[];
 +extern const char kMaxConnectionsPerHostName[];
 +extern const char kMaxConnectionsPerHostDescription[];
 +extern const char kMaxConnectionsPerHostDescription[];
@@ -110,7 +110,7 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
 diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
-@@ -73,6 +73,7 @@ executable("make_top_domain_list_variables") {
+@@ -89,6 +89,7 @@ executable("make_top_domain_list_variables") {
      "//base:i18n",
      "//base:i18n",
      "//components/url_formatter/spoof_checks/common_words:common",
      "//components/url_formatter/spoof_checks/common_words:common",
      "//third_party/icu",
      "//third_party/icu",
@@ -152,3 +152,5 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
    return g_max_sockets_per_group[pool_type];
    return g_max_sockets_per_group[pool_type];
  }
  }
  
  
+--
+2.25.1

+ 6 - 4
build/patches/Add-flag-to-control-video-playback-resume-feature.patch

@@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -2801,6 +2801,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2830,6 +2830,10 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kWebRtcRemoteEventLogName,
       flag_descriptions::kWebRtcRemoteEventLogName,
       flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
       flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
       FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
       FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
@@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -1196,6 +1196,11 @@ const char kEnablePenetratingImageSelectionDescription[] =
+@@ -1185,6 +1185,11 @@ const char kEnablePenetratingImageSelectionDescription[] =
      "Enables image options to be surfaced in the context menu for nodes "
      "Enables image options to be surfaced in the context menu for nodes "
      "covered by transparent overlays.";
      "covered by transparent overlays.";
  
  
@@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -673,6 +673,9 @@ extern const char kEnablePortalsDescription[];
+@@ -664,6 +664,9 @@ extern const char kEnablePortalsDescription[];
  extern const char kEnablePortalsCrossOriginName[];
  extern const char kEnablePortalsCrossOriginName[];
  extern const char kEnablePortalsCrossOriginDescription[];
  extern const char kEnablePortalsCrossOriginDescription[];
  
  
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -282,11 +282,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
+@@ -283,11 +283,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
  // when in background.
  // when in background.
  const base::Feature kResumeBackgroundVideo {
  const base::Feature kResumeBackgroundVideo {
    "resume-background-video",
    "resume-background-video",
@@ -68,3 +68,5 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
  };
  };
  
  
  // Experimental: Try to avoid destroying the media player when transferring a
  // Experimental: Try to avoid destroying the media player when transferring a
+--
+2.25.1

+ 7 - 5
build/patches/Add-flag-to-disable-IPv6-probes.patch

@@ -16,7 +16,7 @@ Subject: Add flag to disable IPv6 probes
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -4892,6 +4892,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4987,6 +4987,11 @@ const FeatureEntry kFeatureEntries[] = {
  #endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
  #endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
          // defined(OS_CHROMEOS)
          // defined(OS_CHROMEOS)
  
  
@@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -3124,6 +3124,10 @@ const char kContextualSearchRankerQueryDescription[] =
+@@ -3083,6 +3083,10 @@ const char kContextualSearchRankerQueryDescription[] =
  
  
  const char kContextualSearchSecondTapName[] =
  const char kContextualSearchSecondTapName[] =
      "Contextual Search second tap triggering";
      "Contextual Search second tap triggering";
@@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -736,6 +736,9 @@ extern const char kEnableWasmLazyCompilationName[];
+@@ -727,6 +727,9 @@ extern const char kEnableWasmLazyCompilationName[];
  extern const char kEnableWasmLazyCompilationDescription[];
  extern const char kEnableWasmLazyCompilationDescription[];
  
  
  extern const char kEnableWasmTieringName[];
  extern const char kEnableWasmTieringName[];
@@ -88,7 +88,7 @@ diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresour
 diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
 +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
-@@ -73,7 +73,8 @@ executable("make_top_domain_list_variables") {
+@@ -89,7 +89,8 @@ executable("make_top_domain_list_variables") {
      "//base:i18n",
      "//base:i18n",
      "//components/url_formatter/spoof_checks/common_words:common",
      "//components/url_formatter/spoof_checks/common_words:common",
      "//third_party/icu",
      "//third_party/icu",
@@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
  #include "net/log/net_log_with_source.h"
  #include "net/log/net_log_with_source.h"
  #include "net/socket/client_socket_factory.h"
  #include "net/socket/client_socket_factory.h"
  #include "net/socket/datagram_client_socket.h"
  #include "net/socket/datagram_client_socket.h"
-@@ -3695,8 +3696,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
+@@ -3697,8 +3698,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
    if (last_ipv6_probe_time_.is_null() ||
    if (last_ipv6_probe_time_.is_null() ||
        (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
        (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
            kIPv6ProbePeriodMs) {
            kIPv6ProbePeriodMs) {
@@ -151,3 +151,5 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
  extern const base::Feature kReporting;
  extern const base::Feature kReporting;
  COMPONENT_EXPORT(NETWORK_CPP)
  COMPONENT_EXPORT(NETWORK_CPP)
  extern const base::Feature kThrottleDelayable;
  extern const base::Feature kThrottleDelayable;
+--
+2.25.1

+ 8 - 6
build/patches/Add-flag-to-disable-WebGL.patch

@@ -11,7 +11,7 @@ Subject: Add flag to disable WebGL
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -2736,6 +2736,9 @@ const FeatureEntry::FeatureVariation kWin11StyleMenusVariations[] = {
+@@ -2771,6 +2771,9 @@ const FeatureEntry::FeatureVariation kWin11StyleMenusVariations[] = {
  // When adding a new choice, add it to the end of the list.
  // When adding a new choice, add it to the end of the list.
  const FeatureEntry kFeatureEntries[] = {
  const FeatureEntry kFeatureEntries[] = {
  // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
  // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
@@ -24,10 +24,10 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -690,6 +690,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
- const char kEnableAudioFocusEnforcementDescription[] =
-     "Enables enforcement of a single media session having audio focus at "
-     "any one time. Requires #enable-media-session-service to be enabled too.";
+@@ -678,6 +678,10 @@ const char kDocumentTransitionSlowdownFactorName[] =
+ const char kDocumentTransitionSlowdownFactorDescription[] =
+     "Slows down animations triggered by documentTransition JavaScript API for "
+     "debugging.";
 +const char kDisableWebGLName[] = "WebGL";
 +const char kDisableWebGLName[] = "WebGL";
 +
 +
 +const char kDisableWebGLDescription[] = "Enable or disable all versions of WebGL";
 +const char kDisableWebGLDescription[] = "Enable or disable all versions of WebGL";
@@ -38,7 +38,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -380,6 +380,9 @@ extern const char kForceColorProfileSRGB[];
+@@ -377,6 +377,9 @@ extern const char kForceColorProfileSRGB[];
  extern const char kForceColorProfileP3[];
  extern const char kForceColorProfileP3[];
  extern const char kForceColorProfileColorSpin[];
  extern const char kForceColorProfileColorSpin[];
  extern const char kForceColorProfileSCRGBLinear[];
  extern const char kForceColorProfileSCRGBLinear[];
@@ -48,3 +48,5 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
  extern const char kForceColorProfileHDR10[];
  extern const char kForceColorProfileHDR10[];
  
  
  extern const char kForceColorProfileName[];
  extern const char kForceColorProfileName[];
+--
+2.25.1

+ 5 - 3
build/patches/Add-flag-to-disable-external-intent-requests.patch

@@ -11,7 +11,7 @@ Subject: Add flag to disable external intent requests
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -2790,6 +2790,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2825,6 +2825,9 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kWebrtcCaptureMultiChannelApmName,
       flag_descriptions::kWebrtcCaptureMultiChannelApmName,
       flag_descriptions::kWebrtcCaptureMultiChannelApmDescription, kOsAll,
       flag_descriptions::kWebrtcCaptureMultiChannelApmDescription, kOsAll,
       FEATURE_VALUE_TYPE(features::kWebRtcEnableCaptureMultiChannelApm)},
       FEATURE_VALUE_TYPE(features::kWebRtcEnableCaptureMultiChannelApm)},
@@ -24,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -3378,6 +3378,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
+@@ -3349,6 +3349,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
  const char kPhotoPickerVideoSupportDescription[] =
  const char kPhotoPickerVideoSupportDescription[] =
      "Enables video files to be shown in the Photo Picker dialog";
      "Enables video files to be shown in the Photo Picker dialog";
  
  
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -1948,6 +1948,9 @@ extern const char kQueryTilesNTPDescription[];
+@@ -1939,6 +1939,9 @@ extern const char kQueryTilesNTPDescription[];
  extern const char kQueryTilesOmniboxName[];
  extern const char kQueryTilesOmniboxName[];
  extern const char kQueryTilesOmniboxDescription[];
  extern const char kQueryTilesOmniboxDescription[];
  extern const char kQueryTilesSingleTierName[];
  extern const char kQueryTilesSingleTierName[];
@@ -50,3 +50,5 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
  extern const char kQueryTilesSingleTierDescription[];
  extern const char kQueryTilesSingleTierDescription[];
  extern const char kQueryTilesEnableQueryEditingName[];
  extern const char kQueryTilesEnableQueryEditingName[];
  extern const char kQueryTilesEnableQueryEditingDescription[];
  extern const char kQueryTilesEnableQueryEditingDescription[];
+--
+2.25.1

+ 10 - 8
build/patches/Add-flag-to-disable-vibration.patch

@@ -18,7 +18,7 @@ Subject: Add flag to disable vibration
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -6354,6 +6354,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6361,6 +6361,10 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
       FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
  #endif
  #endif
  
  
@@ -32,7 +32,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -5283,6 +5283,9 @@ const char kDefaultCalculatorWebAppDescription[] =
+@@ -5267,6 +5267,9 @@ const char kDefaultCalculatorWebAppDescription[] =
      "chrome app.";
      "chrome app.";
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
  
  
@@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -3054,6 +3054,9 @@ extern const char kDefaultCalculatorWebAppName[];
+@@ -3053,6 +3053,9 @@ extern const char kDefaultCalculatorWebAppName[];
  extern const char kDefaultCalculatorWebAppDescription[];
  extern const char kDefaultCalculatorWebAppDescription[];
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
  
  
@@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -102,6 +102,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
+@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
    if (command_line.HasSwitch(switches::kDisableMediaSessionAPI))
    if (command_line.HasSwitch(switches::kDisableMediaSessionAPI))
      WebRuntimeFeatures::EnableMediaSession(false);
      WebRuntimeFeatures::EnableMediaSession(false);
@@ -69,7 +69,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
 diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
 diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
 --- a/content/public/common/content_features.cc
 --- a/content/public/common/content_features.cc
 +++ b/content/public/common/content_features.cc
 +++ b/content/public/common/content_features.cc
-@@ -102,7 +102,11 @@ const base::Feature kBackForwardCacheMemoryControls {
+@@ -113,7 +113,11 @@ const base::Feature kBackForwardCacheMemoryControls {
  #endif
  #endif
  };
  };
  
  
@@ -84,8 +84,8 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
 diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
 diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
 --- a/content/public/common/content_features.h
 --- a/content/public/common/content_features.h
 +++ b/content/public/common/content_features.h
 +++ b/content/public/common/content_features.h
-@@ -274,6 +274,8 @@ CONTENT_EXPORT extern const base::Feature kWarmUpNetworkProcess;
- CONTENT_EXPORT extern const base::Feature kWebNfc;
+@@ -289,6 +289,8 @@ extern const char kBigLittleSchedulingGpuMainBigParam[];
+ 
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
  
  
 +CONTENT_EXPORT extern const base::Feature kVibration;
 +CONTENT_EXPORT extern const base::Feature kVibration;
@@ -141,7 +141,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1577,6 +1577,10 @@
+@@ -1595,6 +1595,10 @@
        name: "OrientationEvent",
        name: "OrientationEvent",
        status: {"Android": "stable"},
        status: {"Android": "stable"},
      },
      },
@@ -152,3 +152,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
      {
      {
        name: "OriginIsolationHeader",
        name: "OriginIsolationHeader",
        status: "stable",
        status: "stable",
+--
+2.25.1

+ 39 - 36
build/patches/Add-history-support-in-incognito-mode.patch

@@ -19,7 +19,7 @@ See also: https://github.com/bromite/bromite/pull/1427
  .../browser/history/HistoryManager.java       |  17 +-
  .../browser/history/HistoryManager.java       |  17 +-
  .../chrome/browser/history/HistoryPage.java   |  15 +
  .../chrome/browser/history/HistoryPage.java   |  15 +
  .../chrome/browser/ntp/RecentTabsManager.java |   8 +-
  .../chrome/browser/ntp/RecentTabsManager.java |   8 +-
- .../privacy/settings/PrivacySettings.java     |  18 +
+ .../privacy/settings/PrivacySettings.java     |  17 +
  .../browser/tab/HistoricalTabSaver.java       |  12 +-
  .../browser/tab/HistoricalTabSaver.java       |  12 +-
  .../browser/tabmodel/TabPersistentStore.java  |   5 +-
  .../browser/tabmodel/TabPersistentStore.java  |   5 +-
  .../history/Bromite_HistoryManagerTest.java   | 112 ++++++
  .../history/Bromite_HistoryManagerTest.java   | 112 ++++++
@@ -46,7 +46,7 @@ See also: https://github.com/bromite/bromite/pull/1427
  chrome/common/pref_names.cc                   |   5 +
  chrome/common/pref_names.cc                   |   5 +
  chrome/common/pref_names.h                    |   4 +
  chrome/common/pref_names.h                    |   4 +
  chrome/test/BUILD.gn                          |   5 +
  chrome/test/BUILD.gn                          |   5 +
- 36 files changed, 1045 insertions(+), 38 deletions(-)
+ 36 files changed, 1044 insertions(+), 38 deletions(-)
  create mode 100644 chrome/android/javatests/src/org/chromium/chrome/browser/history/Bromite_HistoryManagerTest.java
  create mode 100644 chrome/android/javatests/src/org/chromium/chrome/browser/history/Bromite_HistoryManagerTest.java
  create mode 100644 chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/Bromite_PrivacySettingsFragmentTest_HistoryInAlwaysIncognito.java
  create mode 100644 chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/Bromite_PrivacySettingsFragmentTest_HistoryInAlwaysIncognito.java
  create mode 100644 chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/Bromite_AppMenuPropertiesDelegateUnitTest.java
  create mode 100644 chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/Bromite_AppMenuPropertiesDelegateUnitTest.java
@@ -56,7 +56,7 @@ See also: https://github.com/bromite/bromite/pull/1427
 diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni
 diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni
 --- a/chrome/android/chrome_junit_test_java_sources.gni
 --- a/chrome/android/chrome_junit_test_java_sources.gni
 +++ b/chrome/android/chrome_junit_test_java_sources.gni
 +++ b/chrome/android/chrome_junit_test_java_sources.gni
-@@ -226,3 +226,7 @@ chrome_junit_test_java_sources = [
+@@ -228,3 +228,7 @@ chrome_junit_test_java_sources = [
    "junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java",
    "junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java",
    "junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java",
    "junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java",
  ]
  ]
@@ -68,7 +68,7 @@ diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/
 diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni
 diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni
 --- a/chrome/android/chrome_test_java_sources.gni
 --- a/chrome/android/chrome_test_java_sources.gni
 +++ b/chrome/android/chrome_test_java_sources.gni
 +++ b/chrome/android/chrome_test_java_sources.gni
-@@ -653,3 +653,9 @@ chrome_test_java_sources = [
+@@ -660,3 +660,9 @@ chrome_test_java_sources = [
  if (enable_feed_v2) {
  if (enable_feed_v2) {
    chrome_test_java_sources += [ "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageColorWithFeedV2Test.java" ]
    chrome_test_java_sources += [ "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageColorWithFeedV2Test.java" ]
  }
  }
@@ -96,7 +96,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-@@ -92,6 +92,10 @@ import java.util.ArrayList;
+@@ -94,6 +94,10 @@ import java.util.ArrayList;
  import java.util.List;
  import java.util.List;
  import java.util.Map;
  import java.util.Map;
  
  
@@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
   * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
   * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
   * items based on activity state.
   * items based on activity state.
 @@ -153,6 +157,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
 @@ -153,6 +157,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
-     protected BookmarkBridge mBookmarkBridge;
+     private @StartSurfaceState int mStartSurfaceState;
      protected Runnable mAppMenuInvalidator;
      protected Runnable mAppMenuInvalidator;
  
  
 +    private PrefService sPrefServiceForTest;
 +    private PrefService sPrefServiceForTest;
@@ -121,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
      /**
      /**
       * Construct a new {@link AppMenuPropertiesDelegateImpl}.
       * Construct a new {@link AppMenuPropertiesDelegateImpl}.
       * @param context The activity context.
       * @param context The activity context.
-@@ -539,7 +550,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -516,7 +527,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
      }
      }
  
  
      private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
      private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -131,7 +131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
              final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id);
              final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id);
              if (newTabOption != null)
              if (newTabOption != null)
                  newTabOption.setVisible(false);
                  newTabOption.setVisible(false);
-@@ -601,7 +613,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -578,7 +590,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
              }
              }
  
  
              if (item.getItemId() == R.id.recent_tabs_menu_id) {
              if (item.getItemId() == R.id.recent_tabs_menu_id) {
@@ -148,7 +148,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
              }
              }
              if (item.getItemId() == R.id.menu_group_tabs) {
              if (item.getItemId() == R.id.menu_group_tabs) {
                  item.setVisible(isMenuGroupTabsVisible);
                  item.setVisible(isMenuGroupTabsVisible);
-@@ -811,7 +831,10 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -804,7 +824,10 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
          //                is not persisted when adding to the homescreen.
          //                is not persisted when adding to the homescreen.
          // * If creating shortcuts it not supported by the current home screen.
          // * If creating shortcuts it not supported by the current home screen.
          return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
          return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
@@ -163,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
-@@ -170,6 +170,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
+@@ -168,6 +168,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
                  downloadItemVisible = false;
                  downloadItemVisible = false;
                  openInChromeItemVisible = false;
                  openInChromeItemVisible = false;
              }
              }
@@ -277,7 +277,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
 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
-@@ -87,15 +87,15 @@ public class RecentTabsManager implements SignInStateObserver,
+@@ -76,15 +76,15 @@ public class RecentTabsManager implements SignInStateObserver,
       */
       */
      public RecentTabsManager(
      public RecentTabsManager(
              Tab tab, Profile profile, Context context, Runnable showHistoryManager) {
              Tab tab, Profile profile, Context context, Runnable showHistoryManager) {
@@ -308,7 +308,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  import org.chromium.chrome.R;
  import org.chromium.chrome.R;
  import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  import org.chromium.chrome.browser.flags.ChromeFeatureList;
  import org.chromium.chrome.browser.flags.ChromeFeatureList;
-@@ -149,6 +150,11 @@ public class PrivacySettings
+@@ -152,6 +153,11 @@ public class PrivacySettings
          Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
          Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
          secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
          secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
  
  
@@ -320,26 +320,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          updatePreferences();
          updatePreferences();
      }
      }
  
  
-@@ -203,11 +209,16 @@ public class PrivacySettings
-         } else if (PREF_INCOGNITO_LOCK.equals(key)) {
-             UserPrefs.get(Profile.getLastUsedRegularProfile())
-                     .setBoolean(Pref.INCOGNITO_REAUTHENTICATION_FOR_ANDROID, (boolean) newValue);
+@@ -171,6 +177,9 @@ public class PrivacySettings
+         } else if (PREF_ALWAYS_INCOGNITO.equals(key)) {
+             if (!mSnackbarManager.isShowing())
+                 mSnackbarManager.showSnackbar(mSnackbar);
 +        } else if (PREF_INCOGNITO_TAB_HISTORY_ENABLED.equals(key)) {
 +        } else if (PREF_INCOGNITO_TAB_HISTORY_ENABLED.equals(key)) {
 +            UserPrefs.get(Profile.getLastUsedRegularProfile())
 +            UserPrefs.get(Profile.getLastUsedRegularProfile())
 +                    .setBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED, (boolean) newValue);
 +                    .setBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED, (boolean) newValue);
-         }
- 
+         } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
+             UserPrefs.get(Profile.getLastUsedRegularProfile())
+                     .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
+@@ -178,6 +187,7 @@ public class PrivacySettings
          return true;
          return true;
      }
      }
  
  
 +    public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
 +    public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
-+
      @Override
      @Override
      public void onResume() {
      public void onResume() {
          super.onResume();
          super.onResume();
-@@ -249,6 +260,13 @@ public class PrivacySettings
-         closeTabsOnExitPref.setOnPreferenceChangeListener(this);
-         closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
+@@ -219,6 +229,13 @@ public class PrivacySettings
+                     PrivacySandboxSettingsFragment.getStatusString(getContext()));
+         }
  
  
 +        ChromeSwitchPreference historyInIncognitoPref =
 +        ChromeSwitchPreference historyInIncognitoPref =
 +                (ChromeSwitchPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
 +                (ChromeSwitchPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
@@ -348,7 +349,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 +                    prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
 +                    prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
 +        }
 +        }
 +
 +
-         updateIncognitoReauthPreference();
+         mIncognitoLockSettings.updateIncognitoReauthPreferenceIfNeeded(getActivity());
      }
      }
  
  
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/HistoricalTabSaver.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/HistoricalTabSaver.java
@@ -1277,7 +1278,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
  #else
  #else
  #include "chrome/browser/ui/browser.h"
  #include "chrome/browser/ui/browser.h"
  #include "chrome/browser/ui/browser_finder.h"
  #include "chrome/browser/ui/browser_finder.h"
-@@ -352,6 +355,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
+@@ -357,6 +360,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
  history::HistoryService* HistoryTabHelper::GetHistoryService() {
  history::HistoryService* HistoryTabHelper::GetHistoryService() {
    Profile* profile =
    Profile* profile =
        Profile::FromBrowserContext(web_contents()->GetBrowserContext());
        Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1291,7 +1292,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
    if (profile->IsOffTheRecord())
    if (profile->IsOffTheRecord())
      return NULL;
      return NULL;
  
  
-@@ -359,6 +369,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
+@@ -364,6 +374,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
        profile, ServiceAccessType::IMPLICIT_ACCESS);
        profile, ServiceAccessType::IMPLICIT_ACCESS);
  }
  }
  
  
@@ -1328,7 +1329,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
   private:
   private:
    explicit HistoryTabHelper(content::WebContents* web_contents);
    explicit HistoryTabHelper(content::WebContents* web_contents);
    friend class content::WebContentsUserData<HistoryTabHelper>;
    friend class content::WebContentsUserData<HistoryTabHelper>;
-@@ -68,9 +75,6 @@ class HistoryTabHelper : public content::WebContentsObserver,
+@@ -70,9 +77,6 @@ class HistoryTabHelper : public content::WebContentsObserver,
                             bool started_from_context_menu,
                             bool started_from_context_menu,
                             bool renderer_initiated) override;
                             bool renderer_initiated) override;
  
  
@@ -1571,7 +1572,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -216,6 +216,8 @@
+@@ -214,6 +214,8 @@
  #endif
  #endif
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
@@ -1580,18 +1581,18 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
  #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
  #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
  #include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
  #include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
  #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
  #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
-@@ -1259,6 +1261,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -1276,6 +1278,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
    variations::VariationsService::RegisterProfilePrefs(registry);
    variations::VariationsService::RegisterProfilePrefs(registry);
    video_tutorials::RegisterPrefs(registry);
    video_tutorials::RegisterPrefs(registry);
    feed::prefs::RegisterFeedSharedProfilePrefs(registry);
    feed::prefs::RegisterFeedSharedProfilePrefs(registry);
 +  HistoryTabHelper::RegisterProfilePrefs(registry);
 +  HistoryTabHelper::RegisterProfilePrefs(registry);
    feed::RegisterProfilePrefs(registry);
    feed::RegisterProfilePrefs(registry);
- #else  // defined(OS_ANDROID)
+ #else   // defined(OS_ANDROID)
    AppShortcutManager::RegisterProfilePrefs(registry);
    AppShortcutManager::RegisterProfilePrefs(registry);
 diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn
 diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn
 --- a/chrome/browser/ui/android/native_page/BUILD.gn
 --- a/chrome/browser/ui/android/native_page/BUILD.gn
 +++ b/chrome/browser/ui/android/native_page/BUILD.gn
 +++ b/chrome/browser/ui/android/native_page/BUILD.gn
-@@ -31,8 +31,10 @@ java_library("junit") {
+@@ -32,8 +32,10 @@ java_library("junit") {
  
  
    deps = [
    deps = [
      ":java",
      ":java",
@@ -1669,7 +1670,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -955,6 +955,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -961,6 +961,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_UI_RELAUNCH_NOTICE" desc="Summary for always incognito mode">
        <message name="IDS_UI_RELAUNCH_NOTICE" desc="Summary for always incognito mode">
          Your changes will take effect the next time you relaunch Bromite.
          Your changes will take effect the next time you relaunch Bromite.
        </message>
        </message>
@@ -1685,7 +1686,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
 diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
 --- a/chrome/common/pref_names.cc
 --- a/chrome/common/pref_names.cc
 +++ b/chrome/common/pref_names.cc
 +++ b/chrome/common/pref_names.cc
-@@ -3276,6 +3276,11 @@ const char kShowCaretBrowsingDialog[] =
+@@ -3298,6 +3298,11 @@ const char kShowCaretBrowsingDialog[] =
  const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
  const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
  #endif
  #endif
  
  
@@ -1700,9 +1701,9 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
 --- a/chrome/common/pref_names.h
 --- a/chrome/common/pref_names.h
 +++ b/chrome/common/pref_names.h
 +++ b/chrome/common/pref_names.h
-@@ -1201,6 +1201,10 @@ extern const char kLastWhatsNewVersion[];
- extern const char kLensRegionSearchEnabled[];
- #endif
+@@ -1206,6 +1206,10 @@ extern const char kPrivacyReviewShowWelcomeCard[];
+ 
+ extern const char kCorsNonWildcardRequestHeadersSupport[];
  
  
 +#if defined(OS_ANDROID)
 +#if defined(OS_ANDROID)
 +extern const char kIncognitoTabHistoryEnabled[];
 +extern const char kIncognitoTabHistoryEnabled[];
@@ -1714,7 +1715,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
 --- a/chrome/test/BUILD.gn
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -4818,6 +4818,11 @@ test("unit_tests") {
+@@ -4872,6 +4872,11 @@ test("unit_tests") {
      ]
      ]
    }
    }
  
  
@@ -1726,3 +1727,5 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
    if (is_android) {
    if (is_android) {
      sources += [
      sources += [
        "../browser/android/bookmarks/partner_bookmarks_shim_unittest.cc",
        "../browser/android/bookmarks/partner_bookmarks_shim_unittest.cc",
+--
+2.25.1

+ 21 - 19
build/patches/Add-menu-item-to-bookmark-all-tabs.patch

@@ -40,7 +40,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
          <item android:id="@+id/recent_tabs_menu_id"
          <item android:id="@+id/recent_tabs_menu_id"
              android:title="@string/menu_recent_tabs"
              android:title="@string/menu_recent_tabs"
              android:icon="@drawable/devices_black_24dp" />
              android:icon="@drawable/devices_black_24dp" />
-@@ -173,6 +177,9 @@
+@@ -170,6 +174,9 @@
          <item android:id="@+id/menu_group_tabs"
          <item android:id="@+id/menu_group_tabs"
              android:title="@string/menu_group_tabs"
              android:title="@string/menu_group_tabs"
              android:icon="@drawable/ic_widgets" />
              android:icon="@drawable/ic_widgets" />
@@ -62,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
  import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
  import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
  import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
  import org.chromium.chrome.browser.compositor.CompositorViewHolder;
  import org.chromium.chrome.browser.compositor.CompositorViewHolder;
-@@ -2044,6 +2046,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2034,6 +2036,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              // Close both incognito and normal tabs
              // Close both incognito and normal tabs
              getTabModelSelector().closeAllTabs();
              getTabModelSelector().closeAllTabs();
              RecordUserAction.record("MobileMenuCloseAllTabs");
              RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -71,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
          } else if (id == R.id.close_all_incognito_tabs_menu_id) {
          } else if (id == R.id.close_all_incognito_tabs_menu_id) {
              // Close only incognito tabs
              // Close only incognito tabs
              getTabModelSelector().getModel(true).closeAllTabs();
              getTabModelSelector().getModel(true).closeAllTabs();
-@@ -2093,6 +2097,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2083,6 +2087,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          mTabModalHandler.onOmniboxFocusChanged(hasFocus);
          mTabModalHandler.onOmniboxFocusChanged(hasFocus);
      }
      }
  
  
@@ -111,9 +111,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
  import org.chromium.base.ObserverList;
  import org.chromium.base.ObserverList;
  import org.chromium.base.ThreadUtils;
  import org.chromium.base.ThreadUtils;
  import org.chromium.base.annotations.CalledByNative;
  import org.chromium.base.annotations.CalledByNative;
-@@ -36,6 +37,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
- import org.chromium.chrome.browser.power_bookmarks.PowerBookmarkMeta;
+@@ -38,6 +39,10 @@ import org.chromium.chrome.browser.power_bookmarks.PowerBookmarkType;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.Profile;
+ import org.chromium.chrome.browser.read_later.ReadingListUtils;
  import org.chromium.chrome.browser.tab.Tab;
  import org.chromium.chrome.browser.tab.Tab;
 +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
 +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
 +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
  import org.chromium.components.bookmarks.BookmarkId;
  import org.chromium.components.bookmarks.BookmarkId;
  import org.chromium.components.bookmarks.BookmarkType;
  import org.chromium.components.bookmarks.BookmarkType;
  import org.chromium.components.url_formatter.SchemeDisplay;
  import org.chromium.components.url_formatter.SchemeDisplay;
-@@ -76,6 +81,7 @@ import java.io.File;
+@@ -78,6 +83,7 @@ import java.io.File;
   * bookmark model stored in native.
   * bookmark model stored in native.
   */
   */
  public class BookmarkBridge {
  public class BookmarkBridge {
@@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      private final Profile mProfile;
      private final Profile mProfile;
      private boolean mIsDoingExtensiveChanges;
      private boolean mIsDoingExtensiveChanges;
      private long mNativeBookmarkBridge;
      private long mNativeBookmarkBridge;
-@@ -557,6 +563,16 @@ public class BookmarkBridge {
+@@ -567,6 +573,16 @@ public class BookmarkBridge {
                  mNativeBookmarkBridge, BookmarkBridge.this);
                  mNativeBookmarkBridge, BookmarkBridge.this);
      }
      }
  
  
@@ -147,16 +147,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      /**
      /**
       * @return Id representing the special "other" folder from bookmark model.
       * @return Id representing the special "other" folder from bookmark model.
       */
       */
-@@ -1178,6 +1194,49 @@ public class BookmarkBridge {
+@@ -1210,6 +1226,49 @@ public class BookmarkBridge {
                  mNativeBookmarkBridge, BookmarkBridge.this, title, url);
                  mNativeBookmarkBridge, BookmarkBridge.this, title, url);
      }
      }
  
  
 +    // Used to bookmark all tabs in a specific folder, created if not existing
 +    // Used to bookmark all tabs in a specific folder, created if not existing
 +    public BookmarkId addToTabsCollection(Context context, Tab tab) {
 +    public BookmarkId addToTabsCollection(Context context, Tab tab) {
 +        BookmarkId parent = getTabsCollectionFolderId();
 +        BookmarkId parent = getTabsCollectionFolderId();
-+        long existingId = getUserBookmarkIdForTab(tab);
-+        if (existingId != BookmarkId.INVALID_ID) {
-+            BookmarkId existingBookmarkId = new BookmarkId(existingId, BookmarkType.NORMAL);
++        BookmarkId existingId = getUserBookmarkIdForTab(tab);
++        if (existingId != null && existingId.getId() != BookmarkId.INVALID_ID) {
++            BookmarkId existingBookmarkId = new BookmarkId(existingId.getId(), BookmarkType.NORMAL);
 +            BookmarkItem existingBookmark = getBookmarkById(existingBookmarkId);
 +            BookmarkItem existingBookmark = getBookmarkById(existingBookmarkId);
 +            if (parent.equals(existingBookmark.getParentId())) {
 +            if (parent.equals(existingBookmark.getParentId())) {
 +                // bookmark already exists in the tabs collection folder
 +                // bookmark already exists in the tabs collection folder
@@ -197,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      /**
      /**
       * @param url The URL of the reading list item.
       * @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.
       * @return The reading list item with the URL, or null if no such reading list item.
-@@ -1434,6 +1493,7 @@ public class BookmarkBridge {
+@@ -1467,6 +1526,7 @@ public class BookmarkBridge {
          void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
          void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller,
                  List<BookmarkId> folderList, List<Integer> depthList);
                  List<BookmarkId> folderList, List<Integer> depthList);
          BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
          BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller);
@@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
-@@ -595,6 +595,7 @@ public class BookmarkUtils {
+@@ -633,6 +633,7 @@ public class BookmarkUtils {
          List<BookmarkId> topLevelFolders = new ArrayList<>();
          List<BookmarkId> topLevelFolders = new ArrayList<>();
          BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
          BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
          BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
          BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
@@ -216,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
          BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
          BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
  
  
          List<BookmarkId> specialFoldersIds =
          List<BookmarkId> specialFoldersIds =
-@@ -620,6 +621,9 @@ public class BookmarkUtils {
+@@ -658,6 +659,9 @@ public class BookmarkUtils {
          if (bookmarkModel.isFolderVisible(mobileNodeId)) {
          if (bookmarkModel.isFolderVisible(mobileNodeId)) {
              topLevelFolders.add(mobileNodeId);
              topLevelFolders.add(mobileNodeId);
          }
          }
@@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
 diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
 diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
 --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
 --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
 +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
 +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
-@@ -428,6 +428,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
+@@ -429,6 +429,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
          top_level_folders.push_back(node.get());
          top_level_folders.push_back(node.get());
      }
      }
  
  
@@ -241,7 +241,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
      for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) {
      for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) {
        if (node->is_folder())
        if (node->is_folder())
          top_level_folders.push_back(node.get());
          top_level_folders.push_back(node.get());
-@@ -466,6 +471,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
+@@ -477,6 +482,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
    // Vector to temporarily contain all child bookmarks at same level for sorting
    // Vector to temporarily contain all child bookmarks at same level for sorting
    std::vector<const BookmarkNode*> bookmarks = {
    std::vector<const BookmarkNode*> bookmarks = {
        bookmark_model_->mobile_node(),
        bookmark_model_->mobile_node(),
@@ -249,7 +249,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
        bookmark_model_->bookmark_bar_node(),
        bookmark_model_->bookmark_bar_node(),
        bookmark_model_->other_node(),
        bookmark_model_->other_node(),
    };
    };
-@@ -520,6 +526,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
+@@ -531,6 +537,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
    return folder_id_obj;
    return folder_id_obj;
  }
  }
  
  
@@ -270,7 +270,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
 diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
 diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
 --- a/chrome/browser/android/bookmarks/bookmark_bridge.h
 --- a/chrome/browser/android/bookmarks/bookmark_bridge.h
 +++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
 +++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
-@@ -114,6 +114,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
+@@ -118,6 +118,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
        JNIEnv* env,
        JNIEnv* env,
        const base::android::JavaParamRef<jobject>& obj);
        const base::android::JavaParamRef<jobject>& obj);
  
  
@@ -349,7 +349,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -3306,6 +3306,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3305,6 +3305,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR_LIMIT=27]">
        <message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR_LIMIT=27]">
          Track prices
          Track prices
        </message>
        </message>
@@ -695,3 +695,5 @@ diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/compo
        DCHECK(node->is_folder());
        DCHECK(node->is_folder());
        return sync_pb::BookmarkSpecifics::FOLDER;
        return sync_pb::BookmarkSpecifics::FOLDER;
    }
    }
+--
+2.25.1

+ 9 - 7
build/patches/Add-menu-item-to-view-source.patch

@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
 diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
 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
 --- a/chrome/android/java/res/menu/main_menu.xml
 +++ b/chrome/android/java/res/menu/main_menu.xml
 +++ b/chrome/android/java/res/menu/main_menu.xml
-@@ -103,6 +103,9 @@
+@@ -100,6 +100,9 @@
          <item android:id="@+id/add_to_homescreen_id"
          <item android:id="@+id/add_to_homescreen_id"
              android:title="@string/menu_add_to_homescreen"
              android:title="@string/menu_add_to_homescreen"
              android:icon="@drawable/ic_add_to_home_screen" />
              android:icon="@drawable/ic_add_to_home_screen" />
@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -2067,6 +2067,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2057,6 +2057,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
                  NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
                  NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
              }
              }
              RecordUserAction.record("MobileMenuDownloadManager");
              RecordUserAction.record("MobileMenuDownloadManager");
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
 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
-@@ -2451,6 +2451,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2488,6 +2488,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              return true;
              return true;
          }
          }
  
  
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-@@ -511,6 +511,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -493,6 +493,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
                          isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
                          isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
  
  
          updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
          updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
@@ -76,8 +76,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
  
  
          updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
          updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
  
  
-@@ -1027,6 +1028,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
-         }
+@@ -1074,6 +1075,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+         readingListMenuItemEdit.setVisible(readingListItemExists);
      }
      }
  
  
 +    /**
 +    /**
@@ -99,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
-@@ -217,6 +217,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
+@@ -212,6 +212,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
  
  
              updateRequestDesktopSiteMenuItem(
              updateRequestDesktopSiteMenuItem(
                      menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
                      menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
@@ -121,3 +121,5 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <message name="IDS_UNSUPPORTED" desc="Message displayed to the user when an attempted action is not supported.">
        <message name="IDS_UNSUPPORTED" desc="Message displayed to the user when an attempted action is not supported.">
          Unsupported
          Unsupported
        </message>
        </message>
+--
+2.25.1

+ 8 - 6
build/patches/Add-option-to-force-tablet-UI.patch

@@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
-@@ -516,6 +516,7 @@ public final class ChromePreferenceKeys {
+@@ -510,6 +510,7 @@ public final class ChromePreferenceKeys {
      public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom";
      public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom";
  
  
      public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
      public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
@@ -89,7 +89,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
 diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
 diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
 +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
 +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
-@@ -355,7 +355,7 @@ public final class LocationBarCoordinator implements LocationBar, NativeInitObse
+@@ -352,7 +352,7 @@ public final class LocationBarCoordinator implements LocationBar, NativeInitObse
      // OmniboxSuggestionsDropdownEmbedder implementation
      // OmniboxSuggestionsDropdownEmbedder implementation
      @Override
      @Override
      public boolean isTablet() {
      public boolean isTablet() {
@@ -101,7 +101,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1228,6 +1228,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1261,6 +1261,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_SAFE_BROWSING_NO_PROTECTION_CONFIRMATION_DIALOG_CONFIRM" desc="Message for Safe Browsing no protection confirmation button.">
        <message name="IDS_SAFE_BROWSING_NO_PROTECTION_CONFIRMATION_DIALOG_CONFIRM" desc="Message for Safe Browsing no protection confirmation button.">
          Turn off
          Turn off
        </message>
        </message>
@@ -143,7 +143,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
 diff --git a/components/BUILD.gn b/components/BUILD.gn
 diff --git a/components/BUILD.gn b/components/BUILD.gn
 --- a/components/BUILD.gn
 --- a/components/BUILD.gn
 +++ b/components/BUILD.gn
 +++ b/components/BUILD.gn
-@@ -555,7 +555,7 @@ test("components_unittests") {
+@@ -561,7 +561,7 @@ test("components_unittests") {
  
  
    # On LaCrOS, tests use ash - chrome as a window manager, thus the dependency.
    # On LaCrOS, tests use ash - chrome as a window manager, thus the dependency.
    # On other platforms, no components should depend on Chrome.
    # On other platforms, no components should depend on Chrome.
@@ -152,7 +152,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
      assert_no_deps = [ "//chrome/*" ]
      assert_no_deps = [ "//chrome/*" ]
    }
    }
  
  
-@@ -804,7 +804,7 @@ if (!is_ios) {
+@@ -817,7 +817,7 @@ if (!is_ios) {
  
  
      # On LaCrOS, tests use ash - chrome as a window manager, thus the dependency.
      # On LaCrOS, tests use ash - chrome as a window manager, thus the dependency.
      # On other platforms, no components should depend on Chrome.
      # On other platforms, no components should depend on Chrome.
@@ -164,7 +164,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
 diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
 diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
 --- a/ui/android/BUILD.gn
 --- a/ui/android/BUILD.gn
 +++ b/ui/android/BUILD.gn
 +++ b/ui/android/BUILD.gn
-@@ -359,6 +359,8 @@ android_library("ui_no_recycler_view_java") {
+@@ -358,6 +358,8 @@ android_library("ui_no_recycler_view_java") {
      ":ui_java_resources",
      ":ui_java_resources",
      ":ui_utils_java",
      ":ui_utils_java",
      "//base:base_java",
      "//base:base_java",
@@ -195,3 +195,5 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
          return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
          return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
      }
      }
  
  
+--
+2.25.1

+ 12 - 10
build/patches/Add-option-to-not-persist-tabs-across-sessions.patch

@@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -1185,8 +1185,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1175,8 +1175,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              boolean hadCipherData =
              boolean hadCipherData =
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
  
  
@@ -59,16 +59,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  import org.chromium.chrome.R;
  import org.chromium.chrome.R;
  import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  import org.chromium.chrome.browser.flags.ChromeFeatureList;
  import org.chromium.chrome.browser.flags.ChromeFeatureList;
-@@ -63,6 +66,8 @@ public class PrivacySettings
+@@ -62,6 +65,8 @@ public class PrivacySettings
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
      private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
  
  
 +    private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
 +    private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
 +
 +
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
+     private IncognitoLockSettings mIncognitoLockSettings;
  
  
-     @Override
-@@ -178,7 +183,11 @@ public class PrivacySettings
+@@ -152,7 +157,11 @@ public class PrivacySettings
      @Override
      @Override
      public boolean onPreferenceChange(Preference preference, Object newValue) {
      public boolean onPreferenceChange(Preference preference, Object newValue) {
          String key = preference.getKey();
          String key = preference.getKey();
@@ -81,8 +81,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
              UserPrefs.get(Profile.getLastUsedRegularProfile())
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
                      .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
-@@ -234,6 +243,11 @@ public class PrivacySettings
-                     PrivacySandboxSettingsFragment.getStatusString(getContext()));
+@@ -193,6 +202,11 @@ public class PrivacySettings
+                             : R.string.text_off);
          }
          }
  
  
 +        ChromeSwitchPreference closeTabsOnExitPref =
 +        ChromeSwitchPreference closeTabsOnExitPref =
@@ -90,13 +90,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 +        closeTabsOnExitPref.setOnPreferenceChangeListener(this);
 +        closeTabsOnExitPref.setOnPreferenceChangeListener(this);
 +        closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
 +        closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
 +
 +
-         updateIncognitoReauthPreference();
-     }
- 
+         Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
+         if (secureDnsPref != null && secureDnsPref.isVisible()) {
+             secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4126,6 +4126,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4139,6 +4139,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
        <message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
          IMAGE
          IMAGE
        </message>
        </message>
@@ -109,3 +109,5 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <message name="IDS_CONTEXTMENU_LINK_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the link.">
        <message name="IDS_CONTEXTMENU_LINK_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the link.">
          LINK
          LINK
        </message>
        </message>
+--
+2.25.1

+ 5 - 3
build/patches/Add-option-to-use-home-page-as-NTP.patch

@@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
 +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
-@@ -524,6 +524,7 @@ public final class ChromePreferenceKeys {
+@@ -518,6 +518,7 @@ public final class ChromePreferenceKeys {
      public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
      public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
      public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_URI =
      public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_URI =
              "Chrome.Homepage.PartnerCustomizedDefaultUri";
              "Chrome.Homepage.PartnerCustomizedDefaultUri";
@@ -154,7 +154,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1004,6 +1004,9 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1010,6 +1010,9 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
        <message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
          Last hour
          Last hour
        </message>
        </message>
@@ -193,7 +193,7 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
 --- a/chrome/common/pref_names.h
 --- a/chrome/common/pref_names.h
 +++ b/chrome/common/pref_names.h
 +++ b/chrome/common/pref_names.h
-@@ -356,6 +356,7 @@ extern const char kExternalStorageReadOnly[];
+@@ -362,6 +362,7 @@ extern const char kExternalStorageReadOnly[];
  extern const char kSettingsShowOSBanner[];
  extern const char kSettingsShowOSBanner[];
  #endif  // defined(OS_CHROMEOS)
  #endif  // defined(OS_CHROMEOS)
  extern const char kShowHomeButton[];
  extern const char kShowHomeButton[];
@@ -201,3 +201,5 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
  extern const char kSpeechRecognitionFilterProfanities[];
  extern const char kSpeechRecognitionFilterProfanities[];
  extern const char kAllowDeletingBrowserHistory[];
  extern const char kAllowDeletingBrowserHistory[];
  extern const char kForceGoogleSafeSearch[];
  extern const char kForceGoogleSafeSearch[];
+--
+2.25.1

+ 2 - 0
build/patches/Add-support-for-ISupportHelpAndFeedback.patch

@@ -47,3 +47,5 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon
 +        void onHelpAndFeebackPressed();
 +        void onHelpAndFeebackPressed();
 +    }
 +    }
  }
  }
+--
+2.25.1

+ 22 - 19
build/patches/Allow-building-without-enable_reporting.patch

@@ -6,7 +6,7 @@ Subject: Allow building without enable_reporting
  content/browser/BUILD.gn                       |  8 ++++----
  content/browser/BUILD.gn                       |  8 ++++----
  .../devtools/protocol/network_handler.cc       |  2 ++
  .../devtools/protocol/network_handler.cc       |  2 ++
  .../devtools/protocol/network_handler.h        |  2 ++
  .../devtools/protocol/network_handler.h        |  2 ++
- .../cross_origin_embedder_policy_reporter.cc   |  2 ++
+ .../cross_origin_embedder_policy_reporter.cc   |  3 ++-
  .../net/cross_origin_opener_policy_reporter.cc | 16 +++++++---------
  .../net/cross_origin_opener_policy_reporter.cc | 16 +++++++---------
  .../renderer_host/render_frame_host_impl.cc    |  2 ++
  .../renderer_host/render_frame_host_impl.cc    |  2 ++
  .../web_package/signed_exchange_reporter.cc    |  2 ++
  .../web_package/signed_exchange_reporter.cc    |  2 ++
@@ -20,12 +20,12 @@ Subject: Allow building without enable_reporting
  .../blink/renderer/core/frame/local_frame.h    |  6 +++---
  .../blink/renderer/core/frame/local_frame.h    |  6 +++---
  .../renderer/core/frame/reporting_context.cc   |  9 +++++++++
  .../renderer/core/frame/reporting_context.cc   |  9 +++++++++
  .../renderer/core/frame/reporting_context.h    |  7 +++++--
  .../renderer/core/frame/reporting_context.h    |  7 +++++--
- 17 files changed, 56 insertions(+), 46 deletions(-)
+ 17 files changed, 56 insertions(+), 47 deletions(-)
 
 
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
 diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
 --- a/content/browser/BUILD.gn
 --- a/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
 +++ b/content/browser/BUILD.gn
-@@ -1275,6 +1275,10 @@ source_set("browser") {
+@@ -1219,6 +1219,10 @@ source_set("browser") {
      "net/browser_online_state_observer.cc",
      "net/browser_online_state_observer.cc",
      "net/browser_online_state_observer.h",
      "net/browser_online_state_observer.h",
      "net/cookie_store_factory.cc",
      "net/cookie_store_factory.cc",
@@ -36,7 +36,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
      "net/network_errors_listing_ui.cc",
      "net/network_errors_listing_ui.cc",
      "net/network_errors_listing_ui.h",
      "net/network_errors_listing_ui.h",
      "net/network_quality_observer_impl.cc",
      "net/network_quality_observer_impl.cc",
-@@ -3035,10 +3039,6 @@ source_set("browser") {
+@@ -2984,10 +2988,6 @@ source_set("browser") {
  
  
    if (enable_reporting) {
    if (enable_reporting) {
      sources += [
      sources += [
@@ -91,10 +91,11 @@ diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.cc b/cont
      base::DictionaryValue body_to_pass;
      base::DictionaryValue body_to_pass;
      for (const auto& pair : body) {
      for (const auto& pair : body) {
        body_to_pass.SetString(pair.first, pair.second);
        body_to_pass.SetString(pair.first, pair.second);
-@@ -122,6 +123,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
-         kType, *endpoint, context_url_, reporting_source_,
-         network_isolation_key_,
-         /*user_agent=*/absl::nullopt, std::move(body_to_pass));
+@@ -123,7 +124,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
+           kType, *endpoint, context_url_, reporting_source_,
+           network_isolation_key_,
+           /*user_agent=*/absl::nullopt, std::move(body_to_pass));
+-    }
 +#endif
 +#endif
    }
    }
  }
  }
@@ -179,7 +180,7 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten
 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -10649,6 +10649,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
+@@ -10855,6 +10855,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
  void RenderFrameHostImpl::MaybeGenerateCrashReport(
  void RenderFrameHostImpl::MaybeGenerateCrashReport(
      base::TerminationStatus status,
      base::TerminationStatus status,
      int exit_code) {
      int exit_code) {
@@ -187,7 +188,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
    if (!last_committed_url_.SchemeIsHTTPOrHTTPS())
    if (!last_committed_url_.SchemeIsHTTPOrHTTPS())
      return;
      return;
  
  
-@@ -10698,6 +10699,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
+@@ -10904,6 +10905,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
        /*type=*/"crash", /*group=*/"default", last_committed_url_,
        /*type=*/"crash", /*group=*/"default", last_committed_url_,
        GetReportingSource(), isolation_info_.network_isolation_key(),
        GetReportingSource(), isolation_info_.network_isolation_key(),
        absl::nullopt /* user_agent */, std::move(body));
        absl::nullopt /* user_agent */, std::move(body));
@@ -225,7 +226,7 @@ diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc
  #include "services/network/public/cpp/features.h"
  #include "services/network/public/cpp/features.h"
  #include "services/network/public/cpp/network_switches.h"
  #include "services/network/public/cpp/network_switches.h"
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/common/features.h"
-@@ -40,9 +41,11 @@ GetSwitchDependentFeatureOverrides(const base::CommandLine& command_line) {
+@@ -36,9 +37,11 @@ GetSwitchDependentFeatureOverrides(const base::CommandLine& command_line) {
        {switches::kEnableExperimentalWebPlatformFeatures,
        {switches::kEnableExperimentalWebPlatformFeatures,
         std::cref(features::kDocumentPolicyNegotiation),
         std::cref(features::kDocumentPolicyNegotiation),
         base::FeatureList::OVERRIDE_ENABLE_FEATURE},
         base::FeatureList::OVERRIDE_ENABLE_FEATURE},
@@ -240,7 +241,7 @@ diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc
 diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
 diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
 --- a/net/reporting/reporting_service.cc
 --- a/net/reporting/reporting_service.cc
 +++ b/net/reporting/reporting_service.cc
 +++ b/net/reporting/reporting_service.cc
-@@ -206,6 +206,12 @@ class ReportingServiceImpl : public ReportingService {
+@@ -207,6 +207,12 @@ class ReportingServiceImpl : public ReportingService {
        std::unique_ptr<const base::Value> body,
        std::unique_ptr<const base::Value> body,
        int depth,
        int depth,
        base::TimeTicks queued_ticks) {
        base::TimeTicks queued_ticks) {
@@ -256,7 +257,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
 diff --git a/services/network/network_context.cc b/services/network/network_context.cc
 --- a/services/network/network_context.cc
 --- a/services/network/network_context.cc
 +++ b/services/network/network_context.cc
 +++ b/services/network/network_context.cc
-@@ -1121,25 +1121,9 @@ void NetworkContext::SetDocumentReportingEndpoints(
+@@ -1126,25 +1126,9 @@ void NetworkContext::SetDocumentReportingEndpoints(
  
  
  void NetworkContext::SendReportsAndRemoveSource(
  void NetworkContext::SendReportsAndRemoveSource(
      const base::UnguessableToken& reporting_source) {
      const base::UnguessableToken& reporting_source) {
@@ -286,7 +287,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
 diff --git a/services/network/network_context.h b/services/network/network_context.h
 diff --git a/services/network/network_context.h b/services/network/network_context.h
 --- a/services/network/network_context.h
 --- a/services/network/network_context.h
 +++ b/services/network/network_context.h
 +++ b/services/network/network_context.h
-@@ -418,17 +418,6 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -420,17 +420,6 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
        const base::flat_map<std::string, std::string>& endpoints) override;
        const base::flat_map<std::string, std::string>& endpoints) override;
    void SendReportsAndRemoveSource(
    void SendReportsAndRemoveSource(
        const base::UnguessableToken& reporting_source) override;
        const base::UnguessableToken& reporting_source) override;
@@ -307,7 +308,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
 diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
 diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
 --- a/services/network/public/mojom/BUILD.gn
 --- a/services/network/public/mojom/BUILD.gn
 +++ b/services/network/public/mojom/BUILD.gn
 +++ b/services/network/public/mojom/BUILD.gn
-@@ -916,6 +916,9 @@ mojom("mojom") {
+@@ -941,6 +941,9 @@ mojom("mojom") {
      export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
      export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
      export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
      export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
      export_header_blink = "third_party/blink/public/platform/web_common.h"
      export_header_blink = "third_party/blink/public/platform/web_common.h"
@@ -320,7 +321,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
 diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
 --- a/services/network/public/mojom/network_context.mojom
 --- a/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
 +++ b/services/network/public/mojom/network_context.mojom
-@@ -986,6 +986,7 @@ interface NetworkContext {
+@@ -990,6 +990,7 @@ interface NetworkContext {
    // provided |network_isolation_key|.
    // provided |network_isolation_key|.
    //
    //
    // Spec: https://w3c.github.io/reporting/#concept-reports
    // Spec: https://w3c.github.io/reporting/#concept-reports
@@ -328,7 +329,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
    QueueReport(string type,
    QueueReport(string type,
                string group,
                string group,
                url.mojom.Url url,
                url.mojom.Url url,
-@@ -999,6 +1000,7 @@ interface NetworkContext {
+@@ -1003,6 +1004,7 @@ interface NetworkContext {
    // Note that this queued report will never be delivered if no reporting
    // Note that this queued report will never be delivered if no reporting
    // endpoint matching is registered for with the provided
    // endpoint matching is registered for with the provided
    // |network_isolation_key|.
    // |network_isolation_key|.
@@ -347,7 +348,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
  #include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h"
  #include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h"
  #include "services/network/public/cpp/features.h"
  #include "services/network/public/cpp/features.h"
  #include "services/network/public/mojom/content_security_policy.mojom-blink.h"
  #include "services/network/public/mojom/content_security_policy.mojom-blink.h"
-@@ -2302,9 +2303,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const {
+@@ -2323,9 +2324,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const {
    return base::UnguessableToken::Null();
    return base::UnguessableToken::Null();
  }
  }
  
  
@@ -373,7 +374,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
  #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
  #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
  #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
  #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
  #include "third_party/blink/public/common/frame/frame_ad_evidence.h"
  #include "third_party/blink/public/common/frame/frame_ad_evidence.h"
-@@ -545,9 +545,9 @@ class CORE_EXPORT LocalFrame final : public Frame,
+@@ -547,9 +547,9 @@ class CORE_EXPORT LocalFrame final : public Frame,
    }
    }
  
  
    SmoothScrollSequencer& GetSmoothScrollSequencer();
    SmoothScrollSequencer& GetSmoothScrollSequencer();
@@ -483,3 +484,5 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
  
  
    HeapMojoReceiver<mojom::blink::ReportingObserver, ReportingContext> receiver_;
    HeapMojoReceiver<mojom::blink::ReportingObserver, ReportingContext> receiver_;
  };
  };
+--
+2.25.1

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

@@ -49,3 +49,5 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
      return false;
      return false;
  
  
    if (using_media_player_renderer_ &&
    if (using_media_player_renderer_ &&
+--
+2.25.1

+ 2 - 0
build/patches/Allow-website-sign-in-without-account-sign-in.patch

@@ -19,3 +19,5 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/
  }
  }
  
  
  // static
  // static
+--
+2.25.1

+ 2 - 0
build/patches/Always-allow-partner-customisation.patch

@@ -32,3 +32,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
  
  
                      if (isCancelled()) return null;
                      if (isCancelled()) return null;
                      Provider provider = AppHooks.get().getCustomizationProvider();
                      Provider provider = AppHooks.get().getCustomizationProvider();
+--
+2.25.1

+ 2 - 0
build/patches/Always-use-new-tab-page-for-default-home-page.patch

@@ -20,3 +20,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
  
  
          String homepagePartnerDefaultUri = SharedPreferencesManager.getInstance().readString(
          String homepagePartnerDefaultUri = SharedPreferencesManager.getInstance().readString(
                  ChromePreferenceKeys.HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_URI, "");
                  ChromePreferenceKeys.HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_URI, "");
+--
+2.25.1

+ 4 - 2
build/patches/Ask-user-before-closing-all-tabs.patch

@@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  
  
  import org.chromium.base.CallbackController;
  import org.chromium.base.CallbackController;
  import org.chromium.base.CommandLine;
  import org.chromium.base.CommandLine;
-@@ -2044,8 +2045,23 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2034,8 +2035,23 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              ApplicationLifetime.terminate(false);
              ApplicationLifetime.terminate(false);
          } else if (id == R.id.close_all_tabs_menu_id) {
          } else if (id == R.id.close_all_tabs_menu_id) {
              // Close both incognito and normal tabs
              // Close both incognito and normal tabs
@@ -47,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -3297,6 +3297,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3296,6 +3296,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR_LIMIT=27]">
        <message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR_LIMIT=27]">
          Close all tabs
          Close all tabs
        </message>
        </message>
@@ -57,3 +57,5 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <message name="IDS_MENU_CLOSE_ALL_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR_LIMIT=27]">
        <message name="IDS_MENU_CLOSE_ALL_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR_LIMIT=27]">
          Close Incognito tabs
          Close Incognito tabs
        </message>
        </message>
+--
+2.25.1

+ 2 - 0
build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch

@@ -57,3 +57,5 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
  }
  }
  
  
  MediaElementAudioSourceNode* AudioContext::createMediaElementSource(
  MediaElementAudioSourceNode* AudioContext::createMediaElementSource(
+--
+2.25.1

+ 21 - 19
build/patches/Automated-domain-substitution.patch

@@ -5774,7 +5774,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
  
  
  const char kDisableProcessReuse[] = "Disable subframe process reuse";
  const char kDisableProcessReuse[] = "Disable subframe process reuse";
  const char kDisableProcessReuseDescription[] =
  const char kDisableProcessReuseDescription[] =
-@@ -2163,7 +2163,7 @@ const char kReduceUserAgentName[] = "Reduce User-Agent request header";
+@@ -2167,7 +2167,7 @@ const char kReduceUserAgentName[] = "Reduce User-Agent request header";
  const char kReduceUserAgentDescription[] =
  const char kReduceUserAgentDescription[] =
      "Reduce (formerly, \"freeze\") the amount of information available in "
      "Reduce (formerly, \"freeze\") the amount of information available in "
      "the User-Agent request header. "
      "the User-Agent request header. "
@@ -5783,7 +5783,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
  
  
  const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
  const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
  const char kRestrictGamepadAccessDescription[] =
  const char kRestrictGamepadAccessDescription[] =
-@@ -2180,7 +2180,7 @@ const char kIntensiveWakeUpThrottlingName[] =
+@@ -2184,7 +2184,7 @@ const char kIntensiveWakeUpThrottlingName[] =
  const char kIntensiveWakeUpThrottlingDescription[] =
  const char kIntensiveWakeUpThrottlingDescription[] =
      "When enabled, wake ups from DOM Timers are limited to 1 per minute in a "
      "When enabled, wake ups from DOM Timers are limited to 1 per minute in a "
      "page that has been hidden for 5 minutes. For additional details, see "
      "page that has been hidden for 5 minutes. For additional details, see "
@@ -8512,7 +8512,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.
-@@ -928,7 +928,7 @@ Privacy Sandbox trials are still in active development and are available in sele
+@@ -940,7 +940,7 @@ Privacy Sandbox trials are still in active development and are available in sele
          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">
@@ -8521,7 +8521,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
-@@ -965,7 +965,7 @@ Privacy Sandbox trials are still in active development and are available in sele
+@@ -977,7 +977,7 @@ Privacy Sandbox trials are still in active development and are available in sele
        <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.
  
  
@@ -8530,7 +8530,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
-@@ -1008,10 +1008,10 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1020,10 +1020,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.">
@@ -8543,7 +8543,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.">
          <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Search history<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>other forms of activity<ph name="END_LINK2">&lt;/link2&gt;</ph> may be saved in your Google Account when you’re signed in. You can delete them anytime.
          <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Search history<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>other forms of activity<ph name="END_LINK2">&lt;/link2&gt;</ph> may be saved in your Google Account when you’re signed in. You can delete them anytime.
-@@ -1083,7 +1083,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1095,7 +1095,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.">
@@ -8552,7 +8552,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
-@@ -1531,7 +1531,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1543,7 +1543,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">
@@ -8561,7 +8561,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
-@@ -1754,10 +1754,10 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1766,10 +1766,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.">
@@ -8574,7 +8574,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
-@@ -1816,22 +1816,22 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1828,22 +1828,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">
@@ -8601,7 +8601,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
  
  
        <!-- Sign-in strings -->
        <!-- Sign-in strings -->
-@@ -1848,7 +1848,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1860,7 +1860,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">
@@ -8610,7 +8610,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…
-@@ -1953,7 +1953,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1965,7 +1965,7 @@ Your Google account may have other forms of browsing history like searches and a
          Your data was encrypted with your <ph name="BEGIN_LINK">&lt;learnmore&gt;</ph>sync passphrase<ph name="END_LINK">&lt;/learnmore&gt;</ph> on <ph name="TIME">%1$s<ex>Sept 1, 2012</ex></ph>. Enter it to start sync.
          Your data was encrypted with your <ph name="BEGIN_LINK">&lt;learnmore&gt;</ph>sync passphrase<ph name="END_LINK">&lt;/learnmore&gt;</ph> on <ph name="TIME">%1$s<ex>Sept 1, 2012</ex></ph>. Enter it to start sync.
        </message>
        </message>
        <message name="IDS_SYNC_ACCOUNT_INFO"  desc="The message that appears in the options dialog indicating that the user is signed in with the given email address.">
        <message name="IDS_SYNC_ACCOUNT_INFO"  desc="The message that appears in the options dialog indicating that the user is signed in with the given email address.">
@@ -8619,7 +8619,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_SYNC_PASSPHRASE_CANNOT_BE_BLANK" desc="Inform user that they cannot use a blank password [CHAR_LIMIT=40]">
        <message name="IDS_SYNC_PASSPHRASE_CANNOT_BE_BLANK" desc="Inform user that they cannot use a blank password [CHAR_LIMIT=40]">
          This field cannot be blank
          This field cannot be blank
-@@ -2786,10 +2786,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -2798,10 +2798,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_SIGNIN_FRE_DISMISS_BUTTON" desc="Text for the dismiss button on the welcome sign-in screen. By clicking this button users will continue without signing in,">
        <message name="IDS_SIGNIN_FRE_DISMISS_BUTTON" desc="Text for the dismiss button on the welcome sign-in screen. By clicking this button users will continue without signing in,">
          Use without an account
          Use without an account
        </message>
        </message>
@@ -8632,7 +8632,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
          By continuing, you agree to the <ph name="BEGIN_TOS_LINK">&lt;TOS_LINK&gt;</ph>Terms of Service<ph name="END_TOS_LINK">&lt;/TOS_LINK&gt;</ph> and <ph name="BEGIN_PRIVACY_LINK">&lt;PRIVACY_LINK&gt;</ph>Privacy\u00A0Policy<ph name="END_PRIVACY_LINK">&lt;/PRIVACY_LINK&gt;</ph>.\nTo help improve the app, Chrome sends usage and crash data to Google. <ph name="BEGIN_UMA_LINK">&lt;UMA_LINK&gt;</ph>Manage<ph name="END_UMA_LINK">&lt;/UMA_LINK&gt;</ph>
          By continuing, you agree to the <ph name="BEGIN_TOS_LINK">&lt;TOS_LINK&gt;</ph>Terms of Service<ph name="END_TOS_LINK">&lt;/TOS_LINK&gt;</ph> and <ph name="BEGIN_PRIVACY_LINK">&lt;PRIVACY_LINK&gt;</ph>Privacy\u00A0Policy<ph name="END_PRIVACY_LINK">&lt;/PRIVACY_LINK&gt;</ph>.\nTo help improve the app, Chrome sends usage and crash data to Google. <ph name="BEGIN_UMA_LINK">&lt;UMA_LINK&gt;</ph>Manage<ph name="END_UMA_LINK">&lt;/UMA_LINK&gt;</ph>
        </message>
        </message>
        <message name="IDS_SIGNIN_FRE_UMA_DIALOG_TITLE" desc="Title for the FRE footer dialog">
        <message name="IDS_SIGNIN_FRE_UMA_DIALOG_TITLE" desc="Title for the FRE footer dialog">
-@@ -4055,7 +4055,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4067,7 +4067,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
  
  
        <!-- 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.">
@@ -8641,7 +8641,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
-@@ -4089,7 +4089,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4101,7 +4101,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          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).">
@@ -8650,7 +8650,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_TWA_CLEAR_DATA_DIALOG_TITLE" desc="Title of the clear data dialog showing after user uninstalls or clears data of an app hosting a Trusted Web Activity">
        <message name="IDS_TWA_CLEAR_DATA_DIALOG_TITLE" desc="Title of the clear data dialog showing after user uninstalls or clears data of an app hosting a Trusted Web Activity">
          <ph name="APP_NAME">%1$s<ex>YouTube</ex></ph> also has data in Chrome
          <ph name="APP_NAME">%1$s<ex>YouTube</ex></ph> also has data in Chrome
-@@ -4446,7 +4446,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4458,7 +4458,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          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.">
@@ -8659,7 +8659,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_SEND_TAB_TO_SELF_CONTENT_DESCRIPTION" desc="Accessibility string read when the bottom sheet is opened. It describes the bottom sheet where a user can pick a device to share the tab with.">
        <message name="IDS_SEND_TAB_TO_SELF_CONTENT_DESCRIPTION" desc="Accessibility string read when the bottom sheet is opened. It describes the bottom sheet where a user can pick a device to share the tab with.">
          List of devices to share a tab with.
          List of devices to share a tab with.
-@@ -4485,7 +4485,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4497,7 +4497,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
            Page sent. To see it, open Chrome on your <ph name="device_type">%1$s<ex>phone</ex></ph>
            Page sent. To see it, open Chrome on your <ph name="device_type">%1$s<ex>phone</ex></ph>
        </message>
        </message>
        <message name="IDS_SEND_TAB_TO_SELF_MANAGE_DEVICES_LINK" desc="Text with a link to a page where the user can manage the devices they can share a tab to.">
        <message name="IDS_SEND_TAB_TO_SELF_MANAGE_DEVICES_LINK" desc="Text with a link to a page where the user can manage the devices they can share a tab to.">
@@ -8668,7 +8668,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_SEND_TAB_TO_SELF_WHEN_SIGNED_IN_UNAVAILABLE" desc="Instructions for the user to enable the feature when it's currently unavailable.">
        <message name="IDS_SEND_TAB_TO_SELF_WHEN_SIGNED_IN_UNAVAILABLE" desc="Instructions for the user to enable the feature when it's currently unavailable.">
          You can send tabs between devices that are signed in with the same Google Account
          You can send tabs between devices that are signed in with the same Google Account
-@@ -5361,7 +5361,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -5383,7 +5383,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          Your browser is managed by your administrator
          Your browser is managed by your administrator
        </message>
        </message>
        <message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="The title of the chrome://management page when the browser runs in an environment managed by a known organization. (e.g. Employer owned device enrolled to CBCM)">
        <message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="The title of the chrome://management page when the browser runs in an environment managed by a known organization. (e.g. Employer owned device enrolled to CBCM)">
@@ -8677,7 +8677,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE" desc="The title of the chrome://management page when the browser runs in an environment which is not not managed by any organization. (e.g. A personal device bought at a store)">
        <message name="IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE" desc="The title of the chrome://management page when the browser runs in an environment which is not not managed by any organization. (e.g. A personal device bought at a store)">
          Your browser is not managed
          Your browser is not managed
-@@ -5370,7 +5370,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -5392,7 +5392,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          Your administrator can change your browser setup remotely. Activity on this device may also be managed outside of Chrome.
          Your administrator can change your browser setup remotely. Activity on this device may also be managed outside of Chrome.
        </message>
        </message>
        <message name="IDS_MANAGEMENT_LEARN_MORE" desc="The learn more link on chrome://management page that provides more information about managed devices.">
        <message name="IDS_MANAGEMENT_LEARN_MORE" desc="The learn more link on chrome://management page that provides more information about managed devices.">
@@ -9258,7 +9258,7 @@ diff --git a/chrome/browser/ui/webui/chromeos/parent_access/parent_access_ui.cc
 diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
-@@ -396,7 +396,7 @@ std::unique_ptr<CaptivePortalBlockingPage> CreateCaptivePortalBlockingPage(
+@@ -400,7 +400,7 @@ std::unique_ptr<CaptivePortalBlockingPage> CreateCaptivePortalBlockingPage(
      content::WebContents* web_contents) {
      content::WebContents* web_contents) {
    bool is_wifi_connection = false;
    bool is_wifi_connection = false;
    GURL landing_url("https://captive.portal/login");
    GURL landing_url("https://captive.portal/login");
@@ -42245,3 +42245,5 @@ diff --git a/weblayer/shell/app/shell_main_params.cc b/weblayer/shell/app/shell_
  
  
  #if defined(OS_WIN)
  #if defined(OS_WIN)
    GURL url(base::WideToUTF16(args[0]));
    GURL url(base::WideToUTF16(args[0]));
+--
+2.25.1

+ 2 - 4
build/patches/Battery-API-return-nothing.patch

@@ -8,7 +8,6 @@ Include @thestinger's fix for correct charging/unknown values
  1 file changed, 4 insertions(+), 22 deletions(-)
  1 file changed, 4 insertions(+), 22 deletions(-)
 
 
 diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
 diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
-index 840da4b66f62..7879bdb4e0c1 100644
 --- a/third_party/blink/renderer/modules/battery/battery_manager.cc
 --- a/third_party/blink/renderer/modules/battery/battery_manager.cc
 +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
 +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
 @@ -70,46 +70,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
 @@ -70,46 +70,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
@@ -62,6 +61,5 @@ index 840da4b66f62..7879bdb4e0c1 100644
  }
  }
  
  
  void BatteryManager::RegisterWithDispatcher() {
  void BatteryManager::RegisterWithDispatcher() {
--- 
-2.30.2
-
+--
+2.25.1

+ 2 - 0
build/patches/Block-gateway-attacks-via-websockets.patch

@@ -206,3 +206,5 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.h b/
    // The following methods are public for testing.
    // The following methods are public for testing.
  
  
    // Returns true if |protocol| is a valid WebSocket subprotocol name.
    // Returns true if |protocol| is a valid WebSocket subprotocol name.
+--
+2.25.1

+ 7 - 5
build/patches/Block-qjz9zk-or-trk-requests.patch

@@ -104,7 +104,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
 diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
 diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
 --- a/content/browser/child_process_security_policy_impl.cc
 --- a/content/browser/child_process_security_policy_impl.cc
 +++ b/content/browser/child_process_security_policy_impl.cc
 +++ b/content/browser/child_process_security_policy_impl.cc
-@@ -861,6 +861,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
+@@ -853,6 +853,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
  #endif  // BUILDFLAG(ENABLE_WEBSOCKETS)
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kFtpScheme);
    RegisterWebSafeScheme(url::kDataScheme);
    RegisterWebSafeScheme(url::kDataScheme);
@@ -115,7 +115,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro
 diff --git a/net/BUILD.gn b/net/BUILD.gn
 diff --git a/net/BUILD.gn b/net/BUILD.gn
 --- a/net/BUILD.gn
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -1039,6 +1039,8 @@ component("net") {
+@@ -1041,6 +1041,8 @@ component("net") {
      "url_request/url_request_http_job.cc",
      "url_request/url_request_http_job.cc",
      "url_request/url_request_http_job.h",
      "url_request/url_request_http_job.h",
      "url_request/url_request_interceptor.cc",
      "url_request/url_request_interceptor.cc",
@@ -209,7 +209,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
  
  
  using base::Time;
  using base::Time;
  using std::string;
  using std::string;
-@@ -595,6 +597,12 @@ URLRequest::URLRequest(const GURL& url,
+@@ -594,6 +596,12 @@ URLRequest::URLRequest(const GURL& url,
    // Sanity check out environment.
    // Sanity check out environment.
    DCHECK(base::ThreadTaskRunnerHandle::IsSet());
    DCHECK(base::ThreadTaskRunnerHandle::IsSet());
  
  
@@ -250,9 +250,9 @@ diff --git a/url/url_constants.cc b/url/url_constants.cc
  const char kTelScheme[] = "tel";
  const char kTelScheme[] = "tel";
  const char kUrnScheme[] = "urn";
  const char kUrnScheme[] = "urn";
 +const char kTraceScheme[] = "trk";
 +const char kTraceScheme[] = "trk";
+ const char kUuidInPackageScheme[] = "uuid-in-package";
  const char kWsScheme[] = "ws";
  const char kWsScheme[] = "ws";
  const char kWssScheme[] = "wss";
  const char kWssScheme[] = "wss";
- 
 diff --git a/url/url_constants.h b/url/url_constants.h
 diff --git a/url/url_constants.h b/url/url_constants.h
 --- a/url/url_constants.h
 --- a/url/url_constants.h
 +++ b/url/url_constants.h
 +++ b/url/url_constants.h
@@ -261,9 +261,9 @@ diff --git a/url/url_constants.h b/url/url_constants.h
  COMPONENT_EXPORT(URL) extern const char kTelScheme[];
  COMPONENT_EXPORT(URL) extern const char kTelScheme[];
  COMPONENT_EXPORT(URL) extern const char kUrnScheme[];
  COMPONENT_EXPORT(URL) extern const char kUrnScheme[];
 +COMPONENT_EXPORT(URL) extern const char kTraceScheme[];
 +COMPONENT_EXPORT(URL) extern const char kTraceScheme[];
+ COMPONENT_EXPORT(URL) extern const char kUuidInPackageScheme[];
  COMPONENT_EXPORT(URL) extern const char kWsScheme[];
  COMPONENT_EXPORT(URL) extern const char kWsScheme[];
  COMPONENT_EXPORT(URL) extern const char kWssScheme[];
  COMPONENT_EXPORT(URL) extern const char kWssScheme[];
- 
 diff --git a/url/url_util.cc b/url/url_util.cc
 diff --git a/url/url_util.cc b/url/url_util.cc
 --- a/url/url_util.cc
 --- a/url/url_util.cc
 +++ b/url/url_util.cc
 +++ b/url/url_util.cc
@@ -283,3 +283,5 @@ diff --git a/url/url_util.cc b/url/url_util.cc
    };
    };
  
  
    // Schemes that can be sent CORS requests.
    // Schemes that can be sent CORS requests.
+--
+2.25.1

+ 24 - 62
build/patches/Bromite-AdBlockUpdaterService.patch

@@ -25,7 +25,6 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
  chrome/browser/browser_process_impl.cc        |  20 ++
  chrome/browser/browser_process_impl.cc        |  20 ++
  chrome/browser/browser_process_impl.h         |   2 +
  chrome/browser/browser_process_impl.h         |   2 +
  chrome/browser/chrome_browser_main.cc         |   2 +
  chrome/browser/chrome_browser_main.cc         |   2 +
- .../browser/chrome_content_browser_client.cc  |  15 -
  .../flags/android/cached_feature_flags.cc     |  11 +
  .../flags/android/cached_feature_flags.cc     |  11 +
  .../browser/flags/CachedFeatureFlags.java     |  10 +
  .../browser/flags/CachedFeatureFlags.java     |  10 +
  .../net/system_network_context_manager.cc     |   4 +
  .../net/system_network_context_manager.cc     |   4 +
@@ -46,7 +45,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
  .../browser/subresource_filter_features.cc    | 113 +-------
  .../browser/subresource_filter_features.cc    | 113 +-------
  .../core/common/indexed_ruleset.cc            |   5 +-
  .../core/common/indexed_ruleset.cc            |   5 +-
  .../navigation_throttle_runner.cc             |   5 -
  .../navigation_throttle_runner.cc             |   5 -
- 37 files changed, 1157 insertions(+), 139 deletions(-)
+ 36 files changed, 1157 insertions(+), 124 deletions(-)
  create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
  create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
  create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
  create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@@ -59,7 +58,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
 diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
 diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
 --- a/chrome/android/chrome_java_resources.gni
 --- a/chrome/android/chrome_java_resources.gni
 +++ b/chrome/android/chrome_java_resources.gni
 +++ b/chrome/android/chrome_java_resources.gni
-@@ -557,6 +557,7 @@ chrome_java_resources = [
+@@ -556,6 +556,7 @@ chrome_java_resources = [
    "java/res/layout/account_chooser_dialog_title.xml",
    "java/res/layout/account_chooser_dialog_title.xml",
    "java/res/layout/account_divider_preference.xml",
    "java/res/layout/account_divider_preference.xml",
    "java/res/layout/account_management_account_row.xml",
    "java/res/layout/account_management_account_row.xml",
@@ -67,7 +66,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
    "java/res/layout/auto_sign_in_first_run_dialog.xml",
    "java/res/layout/auto_sign_in_first_run_dialog.xml",
    "java/res/layout/autofill_billing_address_dropdown.xml",
    "java/res/layout/autofill_billing_address_dropdown.xml",
    "java/res/layout/autofill_card_unmask_prompt.xml",
    "java/res/layout/autofill_card_unmask_prompt.xml",
-@@ -774,6 +775,7 @@ chrome_java_resources = [
+@@ -769,6 +770,7 @@ chrome_java_resources = [
    "java/res/xml/about_chrome_preferences.xml",
    "java/res/xml/about_chrome_preferences.xml",
    "java/res/xml/accessibility_preferences.xml",
    "java/res/xml/accessibility_preferences.xml",
    "java/res/xml/account_management_preferences.xml",
    "java/res/xml/account_management_preferences.xml",
@@ -78,7 +77,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
 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
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -986,6 +986,8 @@ chrome_java_sources = [
+@@ -974,6 +974,8 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
    "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
    "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
    "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
    "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
    "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
@@ -422,7 +421,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
 diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
 diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
 --- a/chrome/app/generated_resources.grd
 --- a/chrome/app/generated_resources.grd
 +++ b/chrome/app/generated_resources.grd
 +++ b/chrome/app/generated_resources.grd
-@@ -11012,6 +11012,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
+@@ -11029,6 +11029,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
        Never show this again.
        Never show this again.
      </message>
      </message>
  
  
@@ -442,16 +441,16 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
 diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
 diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
 --- a/chrome/browser/after_startup_task_utils.cc
 --- a/chrome/browser/after_startup_task_utils.cc
 +++ b/chrome/browser/after_startup_task_utils.cc
 +++ b/chrome/browser/after_startup_task_utils.cc
-@@ -26,6 +26,8 @@
- #include "ui/views/linux_ui/linux_ui.h"
- #endif
+@@ -30,6 +30,8 @@
+ #include "chromeos/lacros/lacros_service.h"
+ #endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
  
  
 +#include "chrome/browser/browser_process.h"
 +#include "chrome/browser/browser_process.h"
 +
 +
  using content::BrowserThread;
  using content::BrowserThread;
  
  
  namespace {
  namespace {
-@@ -121,6 +123,9 @@ void SetBrowserStartupIsComplete() {
+@@ -125,6 +127,9 @@ void SetBrowserStartupIsComplete() {
    g_after_startup_tasks.Get().clear();
    g_after_startup_tasks.Get().clear();
    g_after_startup_tasks.Get().shrink_to_fit();
    g_after_startup_tasks.Get().shrink_to_fit();
  
  
@@ -494,7 +493,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
 diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
 diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
 --- a/chrome/browser/browser_process_impl.cc
 --- a/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
-@@ -1075,6 +1075,26 @@ BrowserProcessImpl::component_updater() {
+@@ -1076,6 +1076,26 @@ BrowserProcessImpl::component_updater() {
    return component_updater_.get();
    return component_updater_.get();
  }
  }
  
  
@@ -543,7 +542,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
 diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
 diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
 --- a/chrome/browser/chrome_browser_main.cc
 --- a/chrome/browser/chrome_browser_main.cc
 +++ b/chrome/browser/chrome_browser_main.cc
 +++ b/chrome/browser/chrome_browser_main.cc
-@@ -1653,6 +1653,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
+@@ -1655,6 +1655,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
      speech::SodaInstaller::GetInstance()->Init(profile_->GetPrefs(),
      speech::SodaInstaller::GetInstance()->Init(profile_->GetPrefs(),
                                                 browser_process_->local_state());
                                                 browser_process_->local_state());
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -552,45 +551,6 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
    }
    }
  
  
  #if BUILDFLAG(IS_CHROMEOS_ASH)
  #if BUILDFLAG(IS_CHROMEOS_ASH)
-diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
---- a/chrome/browser/chrome_content_browser_client.cc
-+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -62,7 +62,6 @@
- #include "chrome/browser/hid/chrome_hid_delegate.h"
- #include "chrome/browser/interstitials/enterprise_util.h"
- #include "chrome/browser/lifetime/browser_shutdown.h"
--#include "chrome/browser/lookalikes/lookalike_url_navigation_throttle.h"
- #include "chrome/browser/media/audio_service_util.h"
- #include "chrome/browser/media/router/media_router_feature.h"
- #include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
-@@ -4091,16 +4090,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
-     content::NavigationHandle* handle) {
-   std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
- 
--  // MetricsNavigationThrottle requires that it runs before NavigationThrottles
--  // that may delay or cancel navigations, so only NavigationThrottles that
--  // don't delay or cancel navigations (e.g. throttles that are only observing
--  // callbacks without affecting navigation behavior) should be added before
--  // MetricsNavigationThrottle.
--  if (handle->IsInMainFrame()) {
--    throttles.push_back(
--        page_load_metrics::MetricsNavigationThrottle::Create(handle));
--  }
--
- #if BUILDFLAG(IS_CHROMEOS_ASH)
-   MaybeAddThrottle(
-       ash::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
-@@ -4198,10 +4187,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
-                    &throttles);
- #endif
- 
--  MaybeAddThrottle(
--      LookalikeUrlNavigationThrottle::MaybeCreateNavigationThrottle(handle),
--      &throttles);
--
-   MaybeAddThrottle(PDFIFrameNavigationThrottle::MaybeCreateThrottleFor(handle),
-                    &throttles);
- #if BUILDFLAG(ENABLE_PDF)
 diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc
 diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc
 --- a/chrome/browser/flags/android/cached_feature_flags.cc
 --- a/chrome/browser/flags/android/cached_feature_flags.cc
 +++ b/chrome/browser/flags/android/cached_feature_flags.cc
 +++ b/chrome/browser/flags/android/cached_feature_flags.cc
@@ -619,7 +579,7 @@ diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/brows
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
-@@ -267,6 +267,14 @@ public class CachedFeatureFlags {
+@@ -268,6 +268,14 @@ public class CachedFeatureFlags {
                  ChromeFeatureList.isEnabled(ChromeFeatureList.BACKGROUND_THREAD_POOL));
                  ChromeFeatureList.isEnabled(ChromeFeatureList.BACKGROUND_THREAD_POOL));
      }
      }
  
  
@@ -634,7 +594,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
      /**
      /**
       * Caches flags that must take effect on startup but are set via native code.
       * Caches flags that must take effect on startup but are set via native code.
       */
       */
-@@ -472,5 +480,7 @@ public class CachedFeatureFlags {
+@@ -485,5 +493,7 @@ public class CachedFeatureFlags {
      @NativeMethods
      @NativeMethods
      interface Natives {
      interface Natives {
          boolean isNetworkServiceWarmUpEnabled();
          boolean isNetworkServiceWarmUpEnabled();
@@ -645,7 +605,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
 --- a/chrome/browser/net/system_network_context_manager.cc
 --- a/chrome/browser/net/system_network_context_manager.cc
 +++ b/chrome/browser/net/system_network_context_manager.cc
 +++ b/chrome/browser/net/system_network_context_manager.cc
-@@ -351,6 +351,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
+@@ -338,6 +338,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
            SSLConfigServiceManager::CreateDefaultManager(local_state_)),
            SSLConfigServiceManager::CreateDefaultManager(local_state_)),
        proxy_config_monitor_(local_state_),
        proxy_config_monitor_(local_state_),
        stub_resolver_config_reader_(local_state_) {
        stub_resolver_config_reader_(local_state_) {
@@ -654,7 +614,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
  #if !defined(OS_ANDROID)
  #if !defined(OS_ANDROID)
    // QuicAllowed was not part of Android policy.
    // QuicAllowed was not part of Android policy.
    const base::Value* value =
    const base::Value* value =
-@@ -421,6 +423,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
+@@ -408,6 +410,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
  void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
  void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
    StubResolverConfigReader::RegisterPrefs(registry);
    StubResolverConfigReader::RegisterPrefs(registry);
  
  
@@ -704,7 +664,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
 diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
 --- a/chrome/common/pref_names.cc
 --- a/chrome/common/pref_names.cc
 +++ b/chrome/common/pref_names.cc
 +++ b/chrome/common/pref_names.cc
-@@ -2221,6 +2221,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
+@@ -2246,6 +2246,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
  // capture devices without prompt.
  // capture devices without prompt.
  const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
  const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
  
  
@@ -844,8 +804,8 @@ new file mode 100644
 +          << next_check_delay << " seconds. ";
 +          << next_check_delay << " seconds. ";
 +
 +
 +  scheduler_->Schedule(
 +  scheduler_->Schedule(
-+      base::TimeDelta::FromSeconds(initial_check_delay),
-+      base::TimeDelta::FromSeconds(next_check_delay),
++      base::Seconds(initial_check_delay),
++      base::Seconds(next_check_delay),
 +      base::BindRepeating(&AdBlockUpdaterService::OnDemandScheduledUpdate,
 +      base::BindRepeating(&AdBlockUpdaterService::OnDemandScheduledUpdate,
 +                 base::Unretained(this)), base::DoNothing());
 +                 base::Unretained(this)), base::DoNothing());
 +}
 +}
@@ -866,7 +826,7 @@ new file mode 100644
 +  if (!last_update_.is_null()) {
 +  if (!last_update_.is_null()) {
 +    base::TimeDelta delta =
 +    base::TimeDelta delta =
 +        base::TimeTicks::Now() - last_update_;
 +        base::TimeTicks::Now() - last_update_;
-+    if (delta < base::TimeDelta::FromSeconds(on_demand_check_delay)) {
++    if (delta < base::Seconds(on_demand_check_delay)) {
 +      LOG(INFO) << "AdBlockUpdaterService: update not necessary.";
 +      LOG(INFO) << "AdBlockUpdaterService: update not necessary.";
 +      return false;
 +      return false;
 +    }
 +    }
@@ -933,7 +893,7 @@ new file mode 100644
 +  if (!failed) {
 +  if (!failed) {
 +    base::TimeDelta delta =
 +    base::TimeDelta delta =
 +        base::Time::Now() - min_last_modified;
 +        base::Time::Now() - min_last_modified;
-+    if (delta < base::TimeDelta::FromSeconds(on_demand_check_delay)) {
++    if (delta < base::Seconds(on_demand_check_delay)) {
 +      LOG(INFO) << "AdBlockUpdaterService: update check not yet needed.";
 +      LOG(INFO) << "AdBlockUpdaterService: update check not yet needed.";
 +      is_updating_ = false;
 +      is_updating_ = false;
 +      return false;
 +      return false;
@@ -1496,7 +1456,7 @@ new file mode 100644
 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
 +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
 +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
-@@ -651,6 +651,17 @@ ContentSubresourceFilterThrottleManager::
+@@ -652,6 +652,17 @@ ContentSubresourceFilterThrottleManager::
        throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
        throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
                                                  ad_tagging_state);
                                                  ad_tagging_state);
      }
      }
@@ -1677,7 +1637,7 @@ diff --git a/components/subresource_filter/content/browser/verified_ruleset_deal
 +#include "base/logging.h"
 +#include "base/logging.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/metrics/histogram_macros.h"
  #include "base/notreached.h"
  #include "base/notreached.h"
- #include "base/task_runner_util.h"
+ #include "base/task/task_runner_util.h"
 @@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
 @@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
                 "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
                 "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
@@ -1874,3 +1834,5 @@ diff --git a/content/browser/renderer_host/navigation_throttle_runner.cc b/conte
  }
  }
  
  
  NavigationThrottle* NavigationThrottleRunner::GetDeferringThrottle() const {
  NavigationThrottle* NavigationThrottleRunner::GetDeferringThrottle() const {
+--
+2.25.1

+ 569 - 92
build/patches/Bromite-auto-updater.patch

@@ -6,26 +6,30 @@ Enable checking for new versions, with notifications and proxy support
 ---
 ---
  .../java/templates/BuildConfig.template       |   2 +
  .../java/templates/BuildConfig.template       |   2 +
  build/config/android/rules.gni                |   3 +
  build/config/android/rules.gni                |   3 +
- chrome/android/chrome_java_sources.gni        |   1 +
+ chrome/android/chrome_java_sources.gni        |   3 +
  .../java/res/xml/about_chrome_preferences.xml |   5 +
  .../java/res/xml/about_chrome_preferences.xml |   5 +
  .../about_settings/AboutChromeSettings.java   |  28 ++-
  .../about_settings/AboutChromeSettings.java   |  28 ++-
  .../chrome/browser/omaha/OmahaBase.java       |  47 +++-
  .../chrome/browser/omaha/OmahaBase.java       |  47 +++-
- .../chrome/browser/omaha/UpdateConfigs.java   |   6 +-
- .../browser/omaha/UpdateStatusProvider.java   |  33 ++-
+ .../chrome/browser/omaha/UpdateConfigs.java   |  30 ++-
+ .../browser/omaha/UpdateMenuItemHelper.java   |  69 +++++-
+ .../browser/omaha/UpdateStatusProvider.java   | 169 ++++++++++++---
  .../browser/omaha/VersionNumberGetter.java    |   3 +-
  .../browser/omaha/VersionNumberGetter.java    |   3 +-
  .../inline/BromiteInlineUpdateController.java | 204 ++++++++++++++++++
  .../inline/BromiteInlineUpdateController.java | 204 ++++++++++++++++++
- .../inline/InlineUpdateControllerFactory.java |   8 +-
+ .../omaha/inline/InlineUpdateController.java  |  45 ++++
+ .../inline/InlineUpdateControllerFactory.java |  21 ++
  chrome/browser/endpoint_fetcher/BUILD.gn      |   2 +
  chrome/browser/endpoint_fetcher/BUILD.gn      |   2 +
  .../endpoint_fetcher/endpoint_fetcher.cc      | 129 +++++++++++
  .../endpoint_fetcher/endpoint_fetcher.cc      | 129 +++++++++++
  .../endpoint_fetcher/endpoint_fetcher.h       |  23 +-
  .../endpoint_fetcher/endpoint_fetcher.h       |  23 +-
  .../endpoint_fetcher/EndpointFetcher.java     |  11 +
  .../endpoint_fetcher/EndpointFetcher.java     |  11 +
  .../EndpointHeaderResponse.java               |  31 +++
  .../EndpointHeaderResponse.java               |  31 +++
- chrome/browser/flag-metadata.json             |   2 +-
- chrome/browser/flag_descriptions.cc           |   5 +-
- .../flags/android/chrome_feature_list.cc      |   2 +-
- .../strings/android_chrome_strings.grd        |   8 +-
- 20 files changed, 516 insertions(+), 37 deletions(-)
+ .../flags/android/chrome_feature_list.cc      |   6 +-
+ .../flags/android/chrome_feature_list.h       |   1 +
+ .../browser/flags/ChromeFeatureList.java      |   1 +
+ .../strings/android_chrome_strings.grd        |  20 +-
+ 22 files changed, 811 insertions(+), 42 deletions(-)
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
  create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
+ create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
+ create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
  create mode 100644 chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
  create mode 100644 chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
 
 
 diff --git a/build/android/java/templates/BuildConfig.template b/build/android/java/templates/BuildConfig.template
 diff --git a/build/android/java/templates/BuildConfig.template b/build/android/java/templates/BuildConfig.template
@@ -41,7 +45,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
 diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
 diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
 --- a/build/config/android/rules.gni
 --- a/build/config/android/rules.gni
 +++ b/build/config/android/rules.gni
 +++ b/build/config/android/rules.gni
-@@ -1970,6 +1970,9 @@ if (enable_java_templates) {
+@@ -1975,6 +1975,9 @@ if (enable_java_templates) {
            ]
            ]
          }
          }
        }
        }
@@ -54,12 +58,14 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
 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
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -892,6 +892,7 @@ chrome_java_sources = [
-   "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java",
-   "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java",
-   "java/src/org/chromium/chrome/browser/omaha/inline/NoopInlineUpdateController.java",
+@@ -878,6 +878,9 @@ chrome_java_sources = [
+   "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
+   "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
+   "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
++  "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java",
++  "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java",
 +  "java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java",
 +  "java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java",
-   "java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java",
+   "java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java",
    "java/src/org/chromium/chrome/browser/omaha/metrics/HistogramUtils.java",
    "java/src/org/chromium/chrome/browser/omaha/metrics/HistogramUtils.java",
    "java/src/org/chromium/chrome/browser/omaha/metrics/TrackingProvider.java",
    "java/src/org/chromium/chrome/browser/omaha/metrics/TrackingProvider.java",
 diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/android/java/res/xml/about_chrome_preferences.xml
 diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/android/java/res/xml/about_chrome_preferences.xml
@@ -213,35 +219,208 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
-@@ -65,7 +65,7 @@ public class UpdateConfigs {
-     private static final String UPDATE_NOTIFICATION_EXPERIMENTAL_PARAM_NAME =
-             "update_notification_experimental_context";
+@@ -11,6 +11,7 @@ import androidx.annotation.IntDef;
+ import androidx.annotation.Nullable;
+ 
+ import org.chromium.base.CommandLine;
++import org.chromium.chrome.browser.flags.ChromeFeatureList;
+ import org.chromium.chrome.browser.flags.ChromeSwitches;
+ import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateState;
+ import org.chromium.components.variations.VariationsAssociatedData;
+@@ -37,10 +38,12 @@ public class UpdateConfigs {
+     private static final String UPDATE_AVAILABLE_SWITCH_VALUE = "update_available";
+     private static final String UNSUPPORTED_OS_VERSION_SWITCH_VALUE = "unsupported_os_version";
  
  
--    private static final long DEFAULT_UPDATE_NOTIFICATION_INTERVAL = 21 * DateUtils.DAY_IN_MILLIS;
 +    private static final long DEFAULT_UPDATE_NOTIFICATION_INTERVAL = 3 * DateUtils.DAY_IN_MILLIS;
 +    private static final long DEFAULT_UPDATE_NOTIFICATION_INTERVAL = 3 * DateUtils.DAY_IN_MILLIS;
      private static final long DEFAULT_UPDATE_ATTRIBUTION_WINDOW_MS = 2 * DateUtils.DAY_IN_MILLIS;
      private static final long DEFAULT_UPDATE_ATTRIBUTION_WINDOW_MS = 2 * DateUtils.DAY_IN_MILLIS;
  
  
      /** Possible update flow configurations. */
      /** Possible update flow configurations. */
-@@ -300,7 +300,7 @@ public class UpdateConfigs {
-      * @return the current inline update flow configuration.
-      */
-     @UpdateFlowConfiguration
--    static int getConfiguration() {
-+    public static int getConfiguration() {
-         if (!ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
-             // Always use the the old flow if the inline update flow feature is not enabled.
-             return UpdateFlowConfiguration.INTENT_ONLY;
-@@ -328,4 +328,4 @@ public class UpdateConfigs {
-         if (configuration == null) return "";
-         return configuration.toLowerCase(Locale.US);
+-    @IntDef({UpdateFlowConfiguration.NEVER_SHOW, UpdateFlowConfiguration.INTENT_ONLY})
++    @IntDef({UpdateFlowConfiguration.NEVER_SHOW, UpdateFlowConfiguration.INTENT_ONLY,
++            UpdateFlowConfiguration.INLINE_ONLY})
+     @Retention(RetentionPolicy.SOURCE)
+     public @interface UpdateFlowConfiguration {
+         /** Turns off all update indicators. */
+@@ -50,6 +53,12 @@ public class UpdateConfigs {
+          * Requires Omaha to say an update is available, and only ever Intents out to Play Store.
+          */
+         int INTENT_ONLY = 2;
++
++        /**
++         * Requires both Omaha and Play Store to say an update is available. Only ever uses the
++         * inline update flow.
++         */
++        int INLINE_ONLY = 3;
+     }
+ 
+     /**
+@@ -124,6 +133,13 @@ public class UpdateConfigs {
+         return DEFAULT_UPDATE_ATTRIBUTION_WINDOW_MS;
+     }
+ 
++    /**
++     * @return A time interval for scheduling update notification. Unit: mills.
++     */
++    public static long getUpdateNotificationInterval() {
++        return DEFAULT_UPDATE_NOTIFICATION_INTERVAL;
++    }
++
+     /**
+      * Gets a String VariationsAssociatedData parameter. Also checks for a command-line switch
+      * with the same name, for easy local testing.
+@@ -139,4 +155,14 @@ public class UpdateConfigs {
+         }
+         return value;
      }
      }
 -}
 -}
 \ No newline at end of file
 \ No newline at end of file
++
++    @UpdateFlowConfiguration
++    public static int getConfiguration() {
++        if (!ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
++            // Always use the the old flow if the inline update flow feature is not enabled.
++            return UpdateFlowConfiguration.INLINE_ONLY;
++        }
++
++        return UpdateFlowConfiguration.NEVER_SHOW;
++    }
 +}
 +}
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
+@@ -22,6 +22,7 @@ import org.chromium.base.metrics.RecordHistogram;
+ import org.chromium.base.task.PostTask;
+ import org.chromium.base.task.TaskTraits;
+ import org.chromium.chrome.R;
++import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateInteractionSource;
+ import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateState;
+ import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateStatus;
+ import org.chromium.chrome.browser.preferences.Pref;
+@@ -157,7 +158,7 @@ public class UpdateMenuItemHelper {
+ 
+                 try {
+                     UpdateStatusProvider.getInstance().startIntentUpdate(
+-                            activity, false /* newTask */);
++                            activity, UpdateInteractionSource.FROM_MENU, false /* newTask */);
+                     recordItemClickedHistogram(ITEM_CLICKED_INTENT_LAUNCHED);
+                     getPrefService().setBoolean(Pref.CLICKED_UPDATE_MENU_ITEM, true);
+                 } catch (ActivityNotFoundException e) {
+@@ -165,8 +166,22 @@ public class UpdateMenuItemHelper {
+                     recordItemClickedHistogram(ITEM_CLICKED_INTENT_FAILED);
+                 }
+                 break;
++            case UpdateState.INLINE_UPDATE_AVAILABLE:
++                UpdateStatusProvider.getInstance().startInlineUpdate(
++                        UpdateInteractionSource.FROM_MENU, activity);
++                break;
++            case UpdateState.INLINE_UPDATE_READY:
++                UpdateStatusProvider.getInstance().finishInlineUpdate(
++                        UpdateInteractionSource.FROM_MENU);
++                break;
++            case UpdateState.INLINE_UPDATE_FAILED:
++                UpdateStatusProvider.getInstance().retryInlineUpdate(
++                        UpdateInteractionSource.FROM_MENU, activity);
++                break;
+             case UpdateState.UNSUPPORTED_OS_VERSION:
+             // Intentional fall through.
++            case UpdateState.INLINE_UPDATE_DOWNLOADING:
++            // Intentional fall through.
+             default:
+                 return;
+         }
+@@ -268,6 +283,58 @@ public class UpdateMenuItemHelper {
+                 mMenuUiState.itemState.icon = R.drawable.ic_error_24dp_filled;
+                 mMenuUiState.itemState.enabled = false;
+                 break;
++            case UpdateState.INLINE_UPDATE_AVAILABLE:
++                // The badge is hidden if the update menu item has been clicked until there is an
++                // even newer version of Chrome available.
++                showBadge |= !TextUtils.equals(
++                        getPrefService().getString(
++                                Pref.LATEST_VERSION_WHEN_CLICKED_UPDATE_MENU_ITEM),
++                        mStatus.latestUnsupportedVersion);
++
++                if (showBadge) {
++                    mMenuUiState.buttonState = new MenuButtonState();
++                    mMenuUiState.buttonState.menuContentDescription =
++                            R.string.accessibility_toolbar_btn_menu_update;
++                    mMenuUiState.buttonState.darkBadgeIcon = R.drawable.badge_update_dark;
++                    mMenuUiState.buttonState.lightBadgeIcon = R.drawable.badge_update_light;
++                }
++
++                mMenuUiState.itemState = new MenuItemState();
++                mMenuUiState.itemState.title = R.string.menu_update;
++                mMenuUiState.itemState.titleColorId = R.color.default_text_color_blue;
++                mMenuUiState.itemState.summary = UpdateConfigs.getCustomSummary();
++                if (TextUtils.isEmpty(mMenuUiState.itemState.summary)) {
++                    mMenuUiState.itemState.summary =
++                            resources.getString(R.string.menu_update_summary_default);
++                }
++                mMenuUiState.itemState.icon = R.drawable.ic_history_googblue_24dp;
++                mMenuUiState.itemState.iconTintId = R.color.default_icon_color_blue_light;
++                mMenuUiState.itemState.enabled = true;
++                break;
++            case UpdateState.INLINE_UPDATE_DOWNLOADING:
++                mMenuUiState.itemState = new MenuItemState();
++                mMenuUiState.itemState.title = R.string.menu_inline_update_downloading;
++                mMenuUiState.itemState.titleColorId = R.color.default_text_color_secondary;
++                break;
++            case UpdateState.INLINE_UPDATE_READY:
++                mMenuUiState.itemState = new MenuItemState();
++                mMenuUiState.itemState.title = R.string.menu_inline_update_ready;
++                mMenuUiState.itemState.titleColorId = R.color.default_text_color_blue;
++                mMenuUiState.itemState.summary =
++                        resources.getString(R.string.menu_inline_update_ready_summary);
++                mMenuUiState.itemState.icon = R.drawable.infobar_chrome;
++                mMenuUiState.itemState.iconTintId = R.color.default_icon_color_blue_light;
++                mMenuUiState.itemState.enabled = true;
++                break;
++            case UpdateState.INLINE_UPDATE_FAILED:
++                mMenuUiState.itemState = new MenuItemState();
++                mMenuUiState.itemState.title = R.string.menu_inline_update_failed;
++                mMenuUiState.itemState.titleColorId = R.color.default_text_color_blue;
++                mMenuUiState.itemState.summary = resources.getString(R.string.try_again);
++                mMenuUiState.itemState.icon = R.drawable.ic_history_googblue_24dp;
++                mMenuUiState.itemState.iconTintId = R.color.default_icon_color_blue_light;
++                mMenuUiState.itemState.enabled = true;
++                break;
+             case UpdateState.NONE:
+             // Intentional fall through.
+             default:
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
-@@ -45,6 +45,12 @@ import java.io.File;
+@@ -4,6 +4,7 @@
+ 
+ package org.chromium.chrome.browser.omaha;
+ 
++import android.app.Activity;
+ import android.content.ActivityNotFoundException;
+ import android.content.Context;
+ import android.content.Intent;
+@@ -16,7 +17,11 @@ import android.text.TextUtils;
+ import androidx.annotation.IntDef;
+ import androidx.annotation.NonNull;
+ import androidx.annotation.Nullable;
++import androidx.annotation.VisibleForTesting;
+ 
++import org.chromium.base.ActivityState;
++import org.chromium.base.ApplicationStatus;
++import org.chromium.base.ApplicationStatus.ActivityStateListener;
+ import org.chromium.base.BuildInfo;
+ import org.chromium.base.Callback;
+ import org.chromium.base.ContextUtils;
+@@ -26,6 +31,9 @@ import org.chromium.base.metrics.RecordHistogram;
+ import org.chromium.base.task.AsyncTask;
+ import org.chromium.base.task.AsyncTask.Status;
+ import org.chromium.base.task.PostTask;
++import org.chromium.chrome.browser.app.ChromeActivity;
++import org.chromium.chrome.browser.omaha.inline.InlineUpdateController;
++import org.chromium.chrome.browser.omaha.inline.InlineUpdateControllerFactory;
+ import org.chromium.chrome.browser.omaha.metrics.UpdateSuccessMetrics;
+ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
+ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
+@@ -36,28 +44,50 @@ import java.io.File;
  import java.lang.annotation.Retention;
  import java.lang.annotation.Retention;
  import java.lang.annotation.RetentionPolicy;
  import java.lang.annotation.RetentionPolicy;
  
  
@@ -254,17 +433,230 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
  /**
  /**
   * Provides the current update state for Chrome.  This update state is asynchronously determined and
   * Provides the current update state for Chrome.  This update state is asynchronously determined and
   * can change as Chrome runs.
   * can change as Chrome runs.
-@@ -339,8 +345,7 @@ public class UpdateStatusProvider implements ActivityStateListener {
-             case UpdateConfigs.UpdateFlowConfiguration.NEVER_SHOW:
-                 return UpdateState.NONE;
-             case UpdateConfigs.UpdateFlowConfiguration.INLINE_ONLY:
--                if (omahaState != UpdateState.UPDATE_AVAILABLE) return omahaState;
--                if (inlineState == UpdateState.NONE) return UpdateState.NONE;
+  *
+  * For manually testing this functionality, see {@link UpdateConfigs}.
+  */
+-public class UpdateStatusProvider {
++public class UpdateStatusProvider implements ActivityStateListener {
++    /**
++     * Possible sources of user interaction regarding updates.
++     * Treat this as append only as it is used by UMA.
++     */
++    @IntDef({UpdateInteractionSource.FROM_MENU, UpdateInteractionSource.FROM_INFOBAR,
++            UpdateInteractionSource.FROM_NOTIFICATION})
++    @Retention(RetentionPolicy.SOURCE)
++    public @interface UpdateInteractionSource {
++        int FROM_MENU = 0;
++        int FROM_INFOBAR = 1;
++        int FROM_NOTIFICATION = 2;
++
++        int NUM_ENTRIES = 3;
++    }
++
+     /**
+      * Possible update states.
+      * Treat this as append only as it is used by UMA.
+      */
+-    @IntDef({UpdateState.NONE, UpdateState.UPDATE_AVAILABLE, UpdateState.UNSUPPORTED_OS_VERSION})
++    @IntDef({UpdateState.NONE, UpdateState.UPDATE_AVAILABLE, UpdateState.UNSUPPORTED_OS_VERSION,
++            UpdateState.INLINE_UPDATE_AVAILABLE, UpdateState.INLINE_UPDATE_DOWNLOADING,
++            UpdateState.INLINE_UPDATE_READY, UpdateState.INLINE_UPDATE_FAILED})
+     @Retention(RetentionPolicy.SOURCE)
+     public @interface UpdateState {
+         int NONE = 0;
+         int UPDATE_AVAILABLE = 1;
+         int UNSUPPORTED_OS_VERSION = 2;
+-        // Inline updates are deprecated.
+-        // int INLINE_UPDATE_AVAILABLE = 3;
+-        // int INLINE_UPDATE_DOWNLOADING = 4;
+-        // int INLINE_UPDATE_READY = 5;
+-        // int INLINE_UPDATE_FAILED = 6;
++        int INLINE_UPDATE_AVAILABLE = 3;
++        int INLINE_UPDATE_DOWNLOADING = 4;
++        int INLINE_UPDATE_READY = 5;
++        int INLINE_UPDATE_FAILED = 6;
+ 
+         int NUM_ENTRIES = 7;
+     }
+@@ -93,6 +123,12 @@ public class UpdateStatusProvider {
+          */
+         private boolean mIsSimulated;
+ 
++        /**
++         * Whether or not we are currently trying to simulate an inline flow.  Used to allow
++         * overriding Omaha update state, which usually supersedes inline update states.
++         */
++        private boolean mIsInlineSimulated;
++
+         public UpdateStatus() {}
+ 
+         UpdateStatus(UpdateStatus other) {
+@@ -101,11 +137,13 @@ public class UpdateStatusProvider {
+             latestVersion = other.latestVersion;
+             latestUnsupportedVersion = other.latestUnsupportedVersion;
+             mIsSimulated = other.mIsSimulated;
++            mIsInlineSimulated = other.mIsInlineSimulated;
+         }
+     }
+ 
+     private final ObserverList<Callback<UpdateStatus>> mObservers = new ObserverList<>();
+ 
++    private final InlineUpdateController mInlineController;
+     private final UpdateQuery mOmahaQuery;
+     private final UpdateSuccessMetrics mMetrics;
+     private @Nullable UpdateStatus mStatus;
+@@ -173,19 +211,44 @@ public class UpdateStatusProvider {
+         pingObservers();
+     }
+ 
++    /**
++     * Starts the inline update process, if possible.
++     * @source         The source of the action (the UI that caused it).
++     * @param activity An {@link Activity} that will be used to interact with Play.
++     */
++    public void startInlineUpdate(@UpdateInteractionSource int source, Activity activity) {
++        if (mStatus == null || mStatus.updateState != UpdateState.INLINE_UPDATE_AVAILABLE) return;
++        mInlineController.startUpdate(activity);
++    }
++
++    /**
++     * Retries the inline update process, if possible.
++     * @param activity An {@link Activity} that will be used to interact with Play.
++     */
++    public void retryInlineUpdate(@UpdateInteractionSource int source, Activity activity) {
++        if (mStatus == null || mStatus.updateState != UpdateState.INLINE_UPDATE_AVAILABLE) return;
++        mInlineController.startUpdate(activity);
++    }
++
++    /** Finishes the inline update process, which may involve restarting the app. */
++    public void finishInlineUpdate(@UpdateInteractionSource int source) {
++        if (mStatus == null || mStatus.updateState != UpdateState.INLINE_UPDATE_READY) return;
++        mInlineController.completeUpdate();
++    }
++
+     /**
+      * Starts the intent update process, if possible
+      * @param context An {@link Context} that will be used to fire off the update intent.
++     * @param source  The source of the action (the UI that caused it).
+      * @param newTask Whether or not to make the intent a new task.
+      * @return        Whether or not the update intent was sent and had a valid handler.
+      */
+-    public boolean startIntentUpdate(Context context, boolean newTask) {
++    public boolean startIntentUpdate(
++            Context context, @UpdateInteractionSource int source, boolean newTask) {
+         if (mStatus == null || mStatus.updateState != UpdateState.UPDATE_AVAILABLE) return false;
+         if (TextUtils.isEmpty(mStatus.updateUrl)) return false;
+ 
+         try {
+-            mMetrics.startUpdate();
+-
+             Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mStatus.updateUrl));
+             if (newTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+             context.startActivity(intent);
+@@ -196,9 +259,29 @@ public class UpdateStatusProvider {
+         return true;
+     }
+ 
++    // ApplicationStateListener implementation.
++    @Override
++    public void onActivityStateChange(Activity changedActivity, @ActivityState int newState) {
++        boolean hasActiveActivity = false;
++
++        for (Activity activity : ApplicationStatus.getRunningActivities()) {
++            if (activity == null || !(activity instanceof ChromeActivity)) continue;
++
++            hasActiveActivity |=
++                    ApplicationStatus.getStateForActivity(activity) == ActivityState.RESUMED;
++            if (hasActiveActivity) break;
++        }
++
++        mInlineController.setEnabled(hasActiveActivity);
++    }
++
+     private UpdateStatusProvider() {
++        mInlineController = InlineUpdateControllerFactory.create(this::resolveStatus);
+         mOmahaQuery = new UpdateQuery(this::resolveStatus);
+         mMetrics = new UpdateSuccessMetrics();
++
++        // Note that as a singleton this class never unregisters.
++        ApplicationStatus.registerStateListenerForAllActivities(this);
+     }
+ 
+     private void pingObservers() {
+@@ -206,27 +289,59 @@ public class UpdateStatusProvider {
+     }
+ 
+     private void resolveStatus() {
+-        if (mOmahaQuery.getStatus() != Status.FINISHED) {
++        if (mOmahaQuery.getStatus() != Status.FINISHED || mInlineController.getStatus() == null) {
+             return;
+         }
+ 
+         // We pull the Omaha result once as it will never change.
+         if (mStatus == null) mStatus = new UpdateStatus(mOmahaQuery.getResult());
+ 
+-        if (!mStatus.mIsSimulated) {
+-            mStatus.updateState = mOmahaQuery.getResult().updateState;
++        if (mStatus.mIsSimulated) {
++            if (mStatus.mIsInlineSimulated) {
++                @UpdateState
++                int inlineState = mInlineController.getStatus();
++
++                if (inlineState == UpdateState.NONE) {
++                    mStatus.updateState = mOmahaQuery.getResult().updateState;
++                } else {
++                    mStatus.updateState = inlineState;
++                }
++            }
++        } else {
++            @UpdateState
++            int omahaState = mOmahaQuery.getResult().updateState;
++            @UpdateState
++            int inlineState = mInlineController.getStatus();
++            mStatus.updateState = resolveOmahaAndInlineStatus(
++                    UpdateConfigs.getConfiguration(), omahaState, inlineState);
+         }
+ 
+         if (!mRecordedInitialStatus) {
+             RecordHistogram.recordEnumeratedHistogram(
+                     "GoogleUpdate.StartUp.State", mStatus.updateState, UpdateState.NUM_ENTRIES);
+-            mMetrics.analyzeFirstStatus();
+             mRecordedInitialStatus = true;
+         }
+ 
+         pingObservers();
+     }
+ 
++    @VisibleForTesting
++    static @UpdateState int resolveOmahaAndInlineStatus(
++            @UpdateConfigs.UpdateFlowConfiguration int configuration, @UpdateState int omahaState,
++            @UpdateState int inlineState) {
++        switch (configuration) {
++            case UpdateConfigs.UpdateFlowConfiguration.NEVER_SHOW:
++                return UpdateState.NONE;
++            case UpdateConfigs.UpdateFlowConfiguration.INLINE_ONLY:
 +                if (inlineState == UpdateState.NONE) return omahaState;
 +                if (inlineState == UpdateState.NONE) return omahaState;
-                 return inlineState;
-             case UpdateConfigs.UpdateFlowConfiguration.BEST_EFFORT:
-                 if (omahaState != UpdateState.UPDATE_AVAILABLE) return omahaState;
-@@ -415,24 +420,12 @@ public class UpdateStatusProvider implements ActivityStateListener {
++                return inlineState;
++            case UpdateConfigs.UpdateFlowConfiguration.INTENT_ONLY: // Intentional fall through.
++            default:
++                // Fall back to use Omaha only and use the old flow.
++                return omahaState;
++        }
++    }
++
+     private static final class LazyHolder {
+         private static final UpdateStatusProvider INSTANCE = new UpdateStatusProvider();
+     }
+@@ -268,6 +383,8 @@ public class UpdateStatusProvider {
+             status.mIsSimulated = true;
+             status.updateState = forcedUpdateState;
+ 
++            status.mIsInlineSimulated = forcedUpdateState == UpdateState.INLINE_UPDATE_AVAILABLE;
++
+             // Push custom configurations for certain update states.
+             switch (forcedUpdateState) {
+                 case UpdateState.UPDATE_AVAILABLE:
+@@ -287,24 +404,12 @@ public class UpdateStatusProvider {
          private UpdateStatus getRealStatus(Context context) {
          private UpdateStatus getRealStatus(Context context) {
              UpdateStatus status = new UpdateStatus();
              UpdateStatus status = new UpdateStatus();
  
  
@@ -517,23 +909,82 @@ new file mode 100644
 +        PostTask.postTask(UiThreadTaskTraits.DEFAULT, mCallback);
 +        PostTask.postTask(UiThreadTaskTraits.DEFAULT, mCallback);
 +    }
 +    }
 +}
 +}
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
+new file mode 100644
+--- /dev/null
++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
+@@ -0,0 +1,45 @@
++// Copyright 2019 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++package org.chromium.chrome.browser.omaha.inline;
++
++import android.app.Activity;
++import android.content.Intent;
++
++import androidx.annotation.Nullable;
++
++import org.chromium.chrome.browser.omaha.UpdateStatusProvider;
++
++/**
++ * Helper for gluing interactions with the Play store's AppUpdateManager with Chrome.  This
++ * involves hooking up to Play as a listener for install state changes, should only happen if we are
++ * in the foreground.
++ */
++public interface InlineUpdateController {
++    /**
++     * Enables or disables the controller.
++     * @param enabled true iff the controller should be enabled.
++     */
++    void setEnabled(boolean enabled);
++
++    /**
++     * @return The current state of the inline update process.  May be {@code null} if the state
++     * hasn't been determined yet.
++     */
++    @Nullable
++    @UpdateStatusProvider.UpdateState
++    Integer getStatus();
++
++    /**
++     * Starts the update, if possible.  This will send an {@link Intent} out to play, which may
++     * cause Chrome to move to the background.
++     * @param activity The {@link Activity} to use to interact with Play.
++     */
++    void startUpdate(Activity activity);
++
++    /**
++     * Completes the Play installation process, if possible.  This may cause Chrome to restart.
++     */
++    void completeUpdate();
++}
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
+new file mode 100644
+--- /dev/null
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
-@@ -19,8 +19,10 @@ public class InlineUpdateControllerFactory {
-         @FakeAppUpdateManagerWrapper.Type
-         int mockInlineEndState = UpdateConfigs.getMockInlineScenarioEndState();
- 
--        // No test scenario was in place, and the inline flow has not been enabled, so use a
--        // controller with no functionality.
--        return new NoopInlineUpdateController(callback);
-+        if (ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
-+            return new BromiteInlineUpdateController(callback);
-+        } else {
-+            return new NoopInlineUpdateController(callback);
-+        }
-     }
- }
+@@ -0,0 +1,21 @@
++// Copyright 2019 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++package org.chromium.chrome.browser.omaha.inline;
++
++import org.chromium.base.ContextUtils;
++import org.chromium.chrome.browser.flags.ChromeFeatureList;
++import org.chromium.chrome.browser.omaha.UpdateConfigs;
++
++/**
++ * A factory that creates an {@link InlineUpdateController} instance.
++ */
++public class InlineUpdateControllerFactory {
++    /**
++     * @return A new {@link InlineUpdateController}.
++     */
++    public static InlineUpdateController create(Runnable callback) {
++        return new BromiteInlineUpdateController(callback);
++    }
++}
 diff --git a/chrome/browser/endpoint_fetcher/BUILD.gn b/chrome/browser/endpoint_fetcher/BUILD.gn
 diff --git a/chrome/browser/endpoint_fetcher/BUILD.gn b/chrome/browser/endpoint_fetcher/BUILD.gn
 --- a/chrome/browser/endpoint_fetcher/BUILD.gn
 --- a/chrome/browser/endpoint_fetcher/BUILD.gn
 +++ b/chrome/browser/endpoint_fetcher/BUILD.gn
 +++ b/chrome/browser/endpoint_fetcher/BUILD.gn
@@ -615,7 +1066,7 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc b/chrome/browse
 +  simple_url_loader_ = network::SimpleURLLoader::Create(
 +  simple_url_loader_ = network::SimpleURLLoader::Create(
 +      std::move(resource_request), annotation_tag_);
 +      std::move(resource_request), annotation_tag_);
 +  simple_url_loader_->SetTimeoutDuration(
 +  simple_url_loader_->SetTimeoutDuration(
-+      base::TimeDelta::FromMilliseconds(timeout_ms_));
++      base::Milliseconds(timeout_ms_));
 +  simple_url_loader_->SetAllowHttpErrorResults(true);
 +  simple_url_loader_->SetAllowHttpErrorResults(true);
 +
 +
 +  if (!response_)
 +  if (!response_)
@@ -859,50 +1310,55 @@ new file mode 100644
 +        return new EndpointHeaderResponse(response, redirectUrl);
 +        return new EndpointHeaderResponse(response, redirectUrl);
 +    }
 +    }
 +}
 +}
-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
-@@ -2079,7 +2079,7 @@
-   {
-     "name": "enable-inline-update-flow",
-     "owners": [ "nyquist", "dtrainor" ],
--    "expiry_milestone": 83
-+    "expiry_milestone": -1
-   },
-   {
-     "name": "enable-input-event-logging",
-diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
---- a/chrome/browser/flag_descriptions.cc
-+++ b/chrome/browser/flag_descriptions.cc
-@@ -3697,10 +3697,9 @@ const char kVoiceButtonInTopToolbarDescription[] =
-     "Enables showing the voice search button in the top toolbar. Enabling "
-     "Adaptive Button overrides this.";
- 
--const char kInlineUpdateFlowName[] = "Enable Google Play inline update flow";
-+const char kInlineUpdateFlowName[] = "Enable inline update flow";
- const char kInlineUpdateFlowDescription[] =
--    "When this flag is set, instead of taking the user to the Google Play "
--    "Store when an update is available, the user is presented with an inline "
-+    "When this flag is set, the user is presented with an inline "
-     "flow where they do not have to leave Chrome until the update is ready "
-     "to install.";
- 
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -644,7 +644,7 @@ const base::Feature kIncognitoScreenshot{"IncognitoScreenshot",
-                                          base::FEATURE_DISABLED_BY_DEFAULT};
+@@ -246,6 +246,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+     &kImmersiveUiMode,
+     &kIncognitoReauthenticationForAndroid,
+     &kIncognitoScreenshot,
++    &kInlineUpdateFlow,
+     &kInstanceSwitcher,
+     &kInstantStart,
+     &kKitKatSupported,
+@@ -649,7 +650,10 @@ const base::Feature kIncognitoReauthenticationForAndroid{
+     "IncognitoReauthenticationForAndroid", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
- const base::Feature kInlineUpdateFlow{"InlineUpdateFlow",
--                                      base::FEATURE_DISABLED_BY_DEFAULT};
+ const base::Feature kIncognitoScreenshot{"IncognitoScreenshot",
+-                                         base::FEATURE_DISABLED_BY_DEFAULT};
++                                         base::FEATURE_ENABLED_BY_DEFAULT};
++
++const base::Feature kInlineUpdateFlow{"InlineUpdateFlow",
 +                                      base::FEATURE_ENABLED_BY_DEFAULT};
 +                                      base::FEATURE_ENABLED_BY_DEFAULT};
  
  
  const base::Feature kInstantStart{"InstantStart",
  const base::Feature kInstantStart{"InstantStart",
                                    base::FEATURE_DISABLED_BY_DEFAULT};
                                    base::FEATURE_DISABLED_BY_DEFAULT};
+diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
+--- a/chrome/browser/flags/android/chrome_feature_list.h
++++ b/chrome/browser/flags/android/chrome_feature_list.h
+@@ -102,6 +102,7 @@ extern const base::Feature kImmersiveUiMode;
+ extern const base::Feature kIncognitoReauthenticationForAndroid;
+ extern const base::Feature kIncognitoScreenshot;
+ extern const base::Feature kImprovedA2HS;
++extern const base::Feature kInlineUpdateFlow;
+ extern const base::Feature kInstanceSwitcher;
+ extern const base::Feature kInstantStart;
+ extern const base::Feature kKitKatSupported;
+diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
++++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+@@ -371,6 +371,7 @@ public abstract class ChromeFeatureList {
+     public static final String INCOGNITO_REAUTHENTICATION_FOR_ANDROID =
+             "IncognitoReauthenticationForAndroid";
+     public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
++    public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
+     public static final String INSTALLABLE_AMBIENT_BADGE_INFOBAR = "InstallableAmbientBadgeInfoBar";
+     public static final String INSTANCE_SWITCHER = "InstanceSwitcher";
+     public static final String INSTANT_START = "InstantStart";
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1698,6 +1698,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1731,6 +1731,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
        <message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
          Chrome updates are no longer supported for this version of Android
          Chrome updates are no longer supported for this version of Android
        </message>
        </message>
@@ -915,7 +1371,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
  
  
        <!-- Account management UI strings. -->
        <!-- Account management UI strings. -->
        <message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
        <message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
-@@ -3214,7 +3220,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3228,7 +3234,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
  
  
        <!-- Main menu items -->
        <!-- Main menu items -->
        <message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
        <message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -924,3 +1380,24 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        </message>
        </message>
        <message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
        <message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
          Newer version is available
          Newer version is available
+@@ -3239,6 +3245,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+       <message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
+         Android version is unsupported
+       </message>
++      <message name="IDS_MENU_INLINE_UPDATE_DOWNLOADING" desc="Menu item for when Chrome is in the process of updating. [CHAR_LIMIT=24]">
++        Downloading…
++      </message>
++      <message name="IDS_MENU_INLINE_UPDATE_FAILED" desc="Menu item for when Chrome failed to download an update. [CHAR_LIMIT=24]">
++        Couldn’t download
++      </message>
++      <message name="IDS_MENU_INLINE_UPDATE_READY" desc="Menu item text that is shown when Chrome has downloaded an update for itself and is ready to be restarted, which will apply the update. [CHAR_LIMIT=24]">
++        Update ready
++      </message>
++      <message name="IDS_MENU_INLINE_UPDATE_READY_SUMMARY" desc="Summary text that is shown when Chrome has downloaded an update for itself and is ready to be restarted, which will apply the update.  This lets the user know the update will restart. [CHAR_LIMIT=24]">
++        Restart Bromite
++      </message>
+       <message name="IDS_MENU_NEW_WINDOW" desc="Menu item for opening a new window. [CHAR_LIMIT=27]">
+         New window
+       </message>
+--
+2.25.1

+ 3 - 1
build/patches/Bromite-package-name.patch

@@ -9,7 +9,7 @@ Subject: Bromite package name
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -43,7 +43,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
+@@ -44,7 +44,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
    assert(current_toolchain != android_secondary_abi_toolchain)
    assert(current_toolchain != android_secondary_abi_toolchain)
  }
  }
  
  
@@ -18,3 +18,5 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  if (android_channel != "default" && android_channel != "stable") {
  if (android_channel != "default" && android_channel != "stable") {
    # android-binary-size trybot may checks if an internal Chrome variant's
    # android-binary-size trybot may checks if an internal Chrome variant's
    # AndroidManifest is as expected by ensuring the differences between its
    # AndroidManifest is as expected by ensuring the differences between its
+--
+2.25.1

+ 3 - 1
build/patches/Change-default-webRTC-policy-to-not-use-any-address.patch

@@ -12,7 +12,7 @@ See also: https://github.com/bromite/bromite/issues/553
 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
 +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
 +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
-@@ -657,12 +657,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
+@@ -796,12 +796,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
            port_config.enable_nonproxied_udp = false;
            port_config.enable_nonproxied_udp = false;
            break;
            break;
          case DEFAULT:
          case DEFAULT:
@@ -29,3 +29,5 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
                << "policy: " << policy
                << "policy: " << policy
                << ", multiple_routes: " << port_config.enable_multiple_routes
                << ", multiple_routes: " << port_config.enable_multiple_routes
                << ", nonproxied_udp: " << port_config.enable_nonproxied_udp
                << ", nonproxied_udp: " << port_config.enable_nonproxied_udp
+--
+2.25.1

+ 2 - 1
build/patches/Chromium-package-name.patch

@@ -9,7 +9,7 @@ Subject: Chromium package name
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -43,7 +43,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
+@@ -44,7 +44,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
    assert(current_toolchain != android_secondary_abi_toolchain)
    assert(current_toolchain != android_secondary_abi_toolchain)
  }
  }
  
  
@@ -18,3 +18,4 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  if (android_channel != "default" && android_channel != "stable") {
  if (android_channel != "default" && android_channel != "stable") {
    # android-binary-size trybot may checks if an internal Chrome variant's
    # android-binary-size trybot may checks if an internal Chrome variant's
    # AndroidManifest is as expected by ensuring the differences between its
    # AndroidManifest is as expected by ensuring the differences between its
+

+ 3 - 1
build/patches/Disable-AGSA-by-default.patch

@@ -10,7 +10,7 @@ Subject: Disable AGSA by default
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -622,7 +622,7 @@ const base::Feature kEnhancedProtectionPromoCard{
+@@ -630,7 +630,7 @@ const base::Feature kEnhancedProtectionPromoCard{
      "EnhancedProtectionPromoCard", base::FEATURE_DISABLED_BY_DEFAULT};
      "EnhancedProtectionPromoCard", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kExperimentsForAgsa{"ExperimentsForAgsa",
  const base::Feature kExperimentsForAgsa{"ExperimentsForAgsa",
@@ -31,3 +31,5 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
                      .put(ChromeFeatureList.APP_MENU_MOBILE_SITE_OPTION, false)
                      .put(ChromeFeatureList.APP_MENU_MOBILE_SITE_OPTION, false)
                      .put(ChromeFeatureList.OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, false)
                      .put(ChromeFeatureList.OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, false)
                      .put(ChromeFeatureList.APP_TO_WEB_ATTRIBUTION, false)
                      .put(ChromeFeatureList.APP_TO_WEB_ATTRIBUTION, false)
+--
+2.25.1

+ 4 - 2
build/patches/Disable-Accessibility-service-by-default.patch

@@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/xml/accessibility_preferences.xml b/chrome/
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1287,6 +1287,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1320,6 +1320,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
        <message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
          Accessibility
          Accessibility
        </message>
        </message>
@@ -42,7 +42,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
 diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
 --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
 --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
 +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
 +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
-@@ -774,6 +774,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProvider
+@@ -775,6 +775,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProvider
              structure.setChildCount(0);
              structure.setChildCount(0);
              return;
              return;
          }
          }
@@ -54,3 +54,5 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/access
          structure.setChildCount(1);
          structure.setChildCount(1);
          final ViewStructure viewRoot = structure.asyncNewChild(0);
          final ViewStructure viewRoot = structure.asyncNewChild(0);
          viewRoot.setClassName("");
          viewRoot.setClassName("");
+--
+2.25.1

+ 3 - 1
build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch

@@ -9,7 +9,7 @@ Subject: Disable DRM media origin IDs preprovisioning
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -655,7 +655,7 @@ const base::Feature kMediaDrmPersistentLicense{
+@@ -670,7 +670,7 @@ const base::Feature kMediaDrmPersistentLicense{
  // MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs
  // MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs
  // which will trigger provisioning process after MediaDrmBridge is created.
  // which will trigger provisioning process after MediaDrmBridge is created.
  const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
  const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
@@ -18,3 +18,5 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
  
  
  // Determines if MediaDrmOriginIdManager should attempt to pre-provision origin
  // Determines if MediaDrmOriginIdManager should attempt to pre-provision origin
  // IDs at startup (whenever a profile is loaded). Also used by tests that
  // IDs at startup (whenever a profile is loaded). Also used by tests that
+--
+2.25.1

+ 13 - 11
build/patches/Disable-FLoC.patch

@@ -29,7 +29,7 @@ Also added the disabling of blink features through the DisabledForBromite tag
 diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
 diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -2773,6 +2773,10 @@ bool ChromeContentBrowserClient::IsConversionMeasurementOperationAllowed(
+@@ -2771,6 +2771,10 @@ bool ChromeContentBrowserClient::IsConversionMeasurementOperationAllowed(
      const url::Origin* impression_origin,
      const url::Origin* impression_origin,
      const url::Origin* conversion_origin,
      const url::Origin* conversion_origin,
      const url::Origin* reporting_origin) {
      const url::Origin* reporting_origin) {
@@ -153,7 +153,7 @@ diff --git a/chrome/browser/federated_learning/floc_eligibility_observer.cc b/ch
 -  observed_opt_in_signal_ = true;
 -  observed_opt_in_signal_ = true;
  }
  }
  
  
- RENDER_DOCUMENT_HOST_USER_DATA_KEY_IMPL(FlocEligibilityObserver);
+ DOCUMENT_USER_DATA_KEY_IMPL(FlocEligibilityObserver);
 diff --git a/chrome/browser/federated_learning/floc_id_provider_impl.cc b/chrome/browser/federated_learning/floc_id_provider_impl.cc
 diff --git a/chrome/browser/federated_learning/floc_id_provider_impl.cc b/chrome/browser/federated_learning/floc_id_provider_impl.cc
 --- a/chrome/browser/federated_learning/floc_id_provider_impl.cc
 --- a/chrome/browser/federated_learning/floc_id_provider_impl.cc
 +++ b/chrome/browser/federated_learning/floc_id_provider_impl.cc
 +++ b/chrome/browser/federated_learning/floc_id_provider_impl.cc
@@ -182,7 +182,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
    // On first entering the privacy sandbox experiment, users may have the
    // On first entering the privacy sandbox experiment, users may have the
    // privacy sandbox disabled (or "reconciled") based on their current cookie
    // privacy sandbox disabled (or "reconciled") based on their current cookie
    // settings (e.g. blocking 3P cookies). Depending on the state of the sync
    // settings (e.g. blocking 3P cookies). Depending on the state of the sync
-@@ -300,7 +303,8 @@ bool PrivacySandboxSettings::IsFlocPrefEnabled() const {
+@@ -291,7 +294,8 @@ bool PrivacySandboxSettings::IsFlocPrefEnabled() const {
  }
  }
  
  
  void PrivacySandboxSettings::SetFlocPrefEnabled(bool enabled) const {
  void PrivacySandboxSettings::SetFlocPrefEnabled(bool enabled) const {
@@ -192,7 +192,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
    base::RecordAction(base::UserMetricsAction(
    base::RecordAction(base::UserMetricsAction(
        enabled ? "Settings.PrivacySandbox.FlocEnabled"
        enabled ? "Settings.PrivacySandbox.FlocEnabled"
                : "Settings.PrivacySandbox.FlocDisabled"));
                : "Settings.PrivacySandbox.FlocDisabled"));
-@@ -453,6 +457,7 @@ void PrivacySandboxSettings::MaybeReconcilePrivacySandboxPref() {
+@@ -444,6 +448,7 @@ void PrivacySandboxSettings::MaybeReconcilePrivacySandboxPref() {
    // this code could be eliminated in the future, as initially
    // this code could be eliminated in the future, as initially
    // the feauture was tied to the cookies flag
    // the feauture was tied to the cookies flag
    pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabled, false);
    pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabled, false);
@@ -200,7 +200,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
    if((true))
    if((true))
      return;
      return;
  
  
-@@ -551,11 +556,8 @@ void PrivacySandboxSettings::ReconcilePrivacySandboxPref() {
+@@ -542,11 +547,8 @@ void PrivacySandboxSettings::ReconcilePrivacySandboxPref() {
  
  
  void PrivacySandboxSettings::SetFlocDataAccessibleFromNow(
  void PrivacySandboxSettings::SetFlocDataAccessibleFromNow(
      bool reset_calculate_timer) const {
      bool reset_calculate_timer) const {
@@ -362,7 +362,7 @@ diff --git a/components/history/core/browser/url_row.h b/components/history/core
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -883,11 +883,11 @@ const base::Feature kSendCnameAliasesToSubresourceFilterFromRenderer{
+@@ -888,11 +888,11 @@ const base::Feature kSendCnameAliasesToSubresourceFilterFromRenderer{
  // API exposure will be disabled regardless of the OT config.
  // API exposure will be disabled regardless of the OT config.
  // (See https://github.com/WICG/floc.)
  // (See https://github.com/WICG/floc.)
  const base::Feature kInterestCohortAPIOriginTrial{
  const base::Feature kInterestCohortAPIOriginTrial{
@@ -414,7 +414,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
  #include "third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h"
  #include "third_party/blink/renderer/bindings/core/v8/v8_throw_dom_exception.h"
  #include "third_party/blink/renderer/bindings/core/v8/v8_union_elementcreationoptions_string.h"
  #include "third_party/blink/renderer/bindings/core/v8/v8_union_elementcreationoptions_string.h"
  #include "third_party/blink/renderer/bindings/core/v8/v8_union_htmlscriptelement_svgscriptelement.h"
  #include "third_party/blink/renderer/bindings/core/v8/v8_union_htmlscriptelement_svgscriptelement.h"
-@@ -5998,8 +5997,7 @@ ScriptPromise Document::interestCohort(ScriptState* script_state,
+@@ -5968,8 +5967,7 @@ ScriptPromise Document::interestCohort(ScriptState* script_state,
      return ScriptPromise();
      return ScriptPromise();
    }
    }
  
  
@@ -424,7 +424,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
      exception_state.ThrowDOMException(
      exception_state.ThrowDOMException(
          DOMExceptionCode::kInvalidAccessError,
          DOMExceptionCode::kInvalidAccessError,
          "The \"interest-cohort\" Permissions Policy denied the use of "
          "The \"interest-cohort\" Permissions Policy denied the use of "
-@@ -6011,33 +6009,6 @@ ScriptPromise Document::interestCohort(ScriptState* script_state,
+@@ -5981,33 +5979,6 @@ ScriptPromise Document::interestCohort(ScriptState* script_state,
        MakeGarbageCollected<ScriptPromiseResolver>(script_state);
        MakeGarbageCollected<ScriptPromiseResolver>(script_state);
  
  
    ScriptPromise promise = resolver->Promise();
    ScriptPromise promise = resolver->Promise();
@@ -494,12 +494,12 @@ diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_poli
 -      depends_on: ["InterestCohortFeaturePolicy"],
 -      depends_on: ["InterestCohortFeaturePolicy"],
 -    },
 -    },
      {
      {
-       name: "Magnetometer",
-       permissions_policy_name: "magnetometer",
+       name: "KeyboardMap",
+       permissions_policy_name: "keyboard-map",
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1225,12 +1225,11 @@
+@@ -1235,12 +1235,11 @@
      },
      },
      {
      {
        name: "InterestCohortAPI",
        name: "InterestCohortAPI",
@@ -514,3 +514,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
      },
      },
      {
      {
        name: "IntersectionObserverDocumentScrollingElementRoot",
        name: "IntersectionObserverDocumentScrollingElementRoot",
+--
+2.25.1

+ 2 - 0
build/patches/Disable-NTP-remote-suggestions-by-default.patch

@@ -42,3 +42,5 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
  
  
  const base::Feature kOptionalImagesEnabledFeature{
  const base::Feature kOptionalImagesEnabledFeature{
      "NTPRemoteSuggestionsOptionalImages", base::FEATURE_ENABLED_BY_DEFAULT};
      "NTPRemoteSuggestionsOptionalImages", base::FEATURE_ENABLED_BY_DEFAULT};
+--
+2.25.1

+ 4 - 2
build/patches/Disable-all-promo-dialogs.patch

@@ -9,7 +9,7 @@ Subject: Disable all promo dialogs
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -847,7 +847,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -856,7 +856,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
       * displayed.
       * displayed.
       */
       */
      private boolean triggerPromo(boolean intentWithEffect) {
      private boolean triggerPromo(boolean intentWithEffect) {
@@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
              if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) {
              if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) {
                  return false;
                  return false;
              }
              }
-@@ -882,8 +882,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -891,8 +891,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
                  preferenceManager.writeBoolean(
                  preferenceManager.writeBoolean(
                          ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
                          ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
              }
              }
@@ -29,3 +29,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
      }
      }
  
  
      private boolean maybeShowPromo() {
      private boolean maybeShowPromo() {
+--
+2.25.1

+ 2 - 0
build/patches/Disable-autofill-assistant-by-default.patch

@@ -18,3 +18,5 @@ diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chro
      }
      }
  
  
      /** Checks whether proactive help is enabled. */
      /** Checks whether proactive help is enabled. */
+--
+2.25.1

+ 17 - 15
build/patches/Disable-conversion-measurement-api.patch

@@ -67,7 +67,7 @@ diff --git a/chrome/browser/attribution_reporting/android/internal/java/src/org/
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -426,7 +426,7 @@ const base::Feature kAppMenuMobileSiteOption{"AppMenuMobileSiteOption",
+@@ -432,7 +432,7 @@ const base::Feature kAppMenuMobileSiteOption{"AppMenuMobileSiteOption",
                                               base::FEATURE_DISABLED_BY_DEFAULT};
                                               base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kAppToWebAttribution{"AppToWebAttribution",
  const base::Feature kAppToWebAttribution{"AppToWebAttribution",
@@ -93,7 +93,7 @@ diff --git a/components/embedder_support/origin_trials/features.cc b/components/
 diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc
 diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc
 --- a/components/renderer_context_menu/render_view_context_menu_base.cc
 --- a/components/renderer_context_menu/render_view_context_menu_base.cc
 +++ b/components/renderer_context_menu/render_view_context_menu_base.cc
 +++ b/components/renderer_context_menu/render_view_context_menu_base.cc
-@@ -484,9 +484,6 @@ void RenderViewContextMenuBase::OpenURLWithExtraHeaders(
+@@ -485,9 +485,6 @@ void RenderViewContextMenuBase::OpenURLWithExtraHeaders(
  
  
    open_url_params.source_site_instance = site_instance_;
    open_url_params.source_site_instance = site_instance_;
  
  
@@ -126,7 +126,7 @@ diff --git a/content/browser/android/navigation_handle_proxy.cc b/content/browse
 diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc
 diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc
 --- a/content/browser/attribution_reporting/attribution_host.cc
 --- a/content/browser/attribution_reporting/attribution_host.cc
 +++ b/content/browser/attribution_reporting/attribution_host.cc
 +++ b/content/browser/attribution_reporting/attribution_host.cc
-@@ -417,14 +417,6 @@ void AttributionHost::BindReceiver(
+@@ -418,14 +418,6 @@ void AttributionHost::BindReceiver(
    conversion_host->receivers_.Bind(rfh, std::move(receiver));
    conversion_host->receivers_.Bind(rfh, std::move(receiver));
  }
  }
  
  
@@ -166,7 +166,7 @@ diff --git a/content/browser/attribution_reporting/attribution_host_utils.cc b/c
  namespace content {
  namespace content {
  
  
  namespace attribution_host_utils {
  namespace attribution_host_utils {
-@@ -79,6 +81,10 @@ absl::optional<blink::Impression> ParseImpressionFromApp(
+@@ -81,6 +83,10 @@ absl::optional<blink::Impression> ParseImpressionFromApp(
    // Java API should have rejected these already.
    // Java API should have rejected these already.
    DCHECK(!source_event_id.empty() && !destination.empty());
    DCHECK(!source_event_id.empty() && !destination.empty());
  
  
@@ -180,7 +180,7 @@ diff --git a/content/browser/attribution_reporting/attribution_host_utils.cc b/c
 diff --git a/content/browser/attribution_reporting/attribution_network_sender_impl.cc b/content/browser/attribution_reporting/attribution_network_sender_impl.cc
 diff --git a/content/browser/attribution_reporting/attribution_network_sender_impl.cc b/content/browser/attribution_reporting/attribution_network_sender_impl.cc
 --- a/content/browser/attribution_reporting/attribution_network_sender_impl.cc
 --- a/content/browser/attribution_reporting/attribution_network_sender_impl.cc
 +++ b/content/browser/attribution_reporting/attribution_network_sender_impl.cc
 +++ b/content/browser/attribution_reporting/attribution_network_sender_impl.cc
-@@ -146,13 +146,9 @@ void AttributionNetworkSenderImpl::SendReport(
+@@ -143,13 +143,9 @@ void AttributionNetworkSenderImpl::SendReport(
  
  
    LogMetricsOnReportSend(report);
    LogMetricsOnReportSend(report);
  
  
@@ -197,7 +197,7 @@ diff --git a/content/browser/attribution_reporting/attribution_network_sender_im
  }
  }
  
  
  void AttributionNetworkSenderImpl::SetURLLoaderFactoryForTesting(
  void AttributionNetworkSenderImpl::SetURLLoaderFactoryForTesting(
-@@ -165,6 +161,13 @@ void AttributionNetworkSenderImpl::OnReportSent(
+@@ -162,6 +158,13 @@ void AttributionNetworkSenderImpl::OnReportSent(
      AttributionReport report,
      AttributionReport report,
      ReportSentCallback sent_callback,
      ReportSentCallback sent_callback,
      scoped_refptr<net::HttpResponseHeaders> headers) {
      scoped_refptr<net::HttpResponseHeaders> headers) {
@@ -214,7 +214,7 @@ diff --git a/content/browser/attribution_reporting/attribution_network_sender_im
 diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc
 diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc
 --- a/content/browser/attribution_reporting/attribution_storage_sql.cc
 --- a/content/browser/attribution_reporting/attribution_storage_sql.cc
 +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
 +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
-@@ -239,7 +239,7 @@ void AttributionStorageSql::RunInMemoryForTesting() {
+@@ -237,7 +237,7 @@ void AttributionStorageSql::RunInMemoryForTesting() {
  }
  }
  
  
  // static
  // static
@@ -252,14 +252,14 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co
 diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
 diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
 --- a/content/browser/storage_partition_impl.cc
 --- a/content/browser/storage_partition_impl.cc
 +++ b/content/browser/storage_partition_impl.cc
 +++ b/content/browser/storage_partition_impl.cc
-@@ -1299,12 +1299,7 @@ void StoragePartitionImpl::Initialize(
+@@ -1292,12 +1292,7 @@ void StoragePartitionImpl::Initialize(
    bucket_context_ = base::MakeRefCounted<BucketContext>();
    bucket_context_ = base::MakeRefCounted<BucketContext>();
    bucket_context_->Initialize();
    bucket_context_->Initialize();
  
  
 -  // The Conversion Measurement API is not available in Incognito mode.
 -  // The Conversion Measurement API is not available in Incognito mode.
 -  if (!is_in_memory() &&
 -  if (!is_in_memory() &&
 -      base::FeatureList::IsEnabled(blink::features::kConversionMeasurement)) {
 -      base::FeatureList::IsEnabled(blink::features::kConversionMeasurement)) {
--    conversion_manager_ = std::make_unique<ConversionManagerImpl>(
+-    attribution_manager_ = std::make_unique<AttributionManagerImpl>(
 -        this, path, special_storage_policy_);
 -        this, path, special_storage_policy_);
 -  }
 -  }
 +  // The Conversion Measurement API is not available in Bromite.
 +  // The Conversion Measurement API is not available in Bromite.
@@ -278,12 +278,12 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
      }
      }
  
  
      /**
      /**
-@@ -32,8 +30,6 @@ public class AttributionReporterImpl extends AttributionReporter {
-     @Override
+@@ -33,8 +31,6 @@ public class AttributionReporterImpl extends AttributionReporter {
      public void reportAppImpression(BrowserContextHandle browserContext, String sourcePackageName,
      public void reportAppImpression(BrowserContextHandle browserContext, String sourcePackageName,
-             String sourceEventId, String destination, String reportTo, long expiry) {
--        AttributionReporterImplJni.get().reportAppImpression(
--                browserContext, sourcePackageName, sourceEventId, destination, reportTo, expiry);
+             String sourceEventId, String destination, String reportTo, long expiry,
+             long eventTime) {
+-        AttributionReporterImplJni.get().reportAppImpression(browserContext, sourcePackageName,
+-                sourceEventId, destination, reportTo, expiry, eventTime);
      }
      }
  
  
      @NativeMethods
      @NativeMethods
@@ -301,7 +301,7 @@ diff --git a/content/public/browser/navigation_controller.cc b/content/public/br
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -37,7 +37,7 @@ const base::Feature kCSSContainerQueries{"CSSContainerQueries",
+@@ -42,7 +42,7 @@ const base::Feature kCSSContainerQueries{"CSSContainerQueries",
  
  
  // Controls whether the Conversion Measurement API infrastructure is enabled.
  // Controls whether the Conversion Measurement API infrastructure is enabled.
  const base::Feature kConversionMeasurement{"ConversionMeasurement",
  const base::Feature kConversionMeasurement{"ConversionMeasurement",
@@ -343,3 +343,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
      },
      },
      {
      {
        name: "CooperativeScheduling"
        name: "CooperativeScheduling"
+--
+2.25.1

+ 7 - 5
build/patches/Disable-feeds-support-by-default.patch

@@ -3,15 +3,15 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100
 Subject: Disable feeds support by default
 Subject: Disable feeds support by default
 
 
 ---
 ---
- .../chromium/chrome/browser/feed/shared/FeedFeatures.java | 8 +-------
+ .../org/chromium/chrome/browser/feed/FeedFeatures.java    | 8 +-------
  .../chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
  .../chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
  components/feed/feed_feature_list.cc                      | 4 ++--
  components/feed/feed_feature_list.cc                      | 4 ++--
  3 files changed, 4 insertions(+), 10 deletions(-)
  3 files changed, 4 insertions(+), 10 deletions(-)
 
 
-diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java
---- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java
-+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java
-@@ -35,13 +35,7 @@ public final class FeedFeatures {
+diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java
+--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java
++++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedFeatures.java
+@@ -43,13 +43,7 @@ public final class FeedFeatures {
       *         the user is signed in and confirms it's not a child profile.
       *         the user is signed in and confirms it's not a child profile.
       */
       */
      public static boolean isWebFeedUIEnabled() {
      public static boolean isWebFeedUIEnabled() {
@@ -56,3 +56,5 @@ diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature
  
  
  const base::Feature kInterestFeedV2Autoplay{"InterestFeedV2Autoplay",
  const base::Feature kInterestFeedV2Autoplay{"InterestFeedV2Autoplay",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
                                              base::FEATURE_DISABLED_BY_DEFAULT};
+--
+2.25.1

+ 9 - 7
build/patches/Disable-fetching-of-all-field-trials.patch

@@ -50,7 +50,7 @@ diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/s
 diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
 diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
-@@ -186,6 +186,8 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManagerForTesting() {
+@@ -188,6 +188,8 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManagerForTesting() {
  void ChromeMetricsServicesManagerClient::CreateFallbackSamplingTrial(
  void ChromeMetricsServicesManagerClient::CreateFallbackSamplingTrial(
      version_info::Channel channel,
      version_info::Channel channel,
      base::FeatureList* feature_list) {
      base::FeatureList* feature_list) {
@@ -62,7 +62,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/
 diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc
 diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc
 --- a/components/ukm/ukm_recorder_impl.cc
 --- a/components/ukm/ukm_recorder_impl.cc
 +++ b/components/ukm/ukm_recorder_impl.cc
 +++ b/components/ukm/ukm_recorder_impl.cc
-@@ -189,6 +189,9 @@ UkmRecorderImpl::~UkmRecorderImpl() = default;
+@@ -181,6 +181,9 @@ UkmRecorderImpl::~UkmRecorderImpl() = default;
  void UkmRecorderImpl::CreateFallbackSamplingTrial(
  void UkmRecorderImpl::CreateFallbackSamplingTrial(
      bool is_stable_channel,
      bool is_stable_channel,
      base::FeatureList* feature_list) {
      base::FeatureList* feature_list) {
@@ -160,7 +160,7 @@ diff --git a/components/variations/net/variations_http_headers.cc b/components/v
 diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
 diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
 --- a/components/variations/service/variations_field_trial_creator.cc
 --- a/components/variations/service/variations_field_trial_creator.cc
 +++ b/components/variations/service/variations_field_trial_creator.cc
 +++ b/components/variations/service/variations_field_trial_creator.cc
-@@ -271,8 +271,8 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
+@@ -250,8 +250,8 @@ bool VariationsFieldTrialCreator::SetUpFieldTrials(
    // instance is set.
    // instance is set.
    feature_list->RegisterExtraFeatureOverrides(extra_overrides);
    feature_list->RegisterExtraFeatureOverrides(extra_overrides);
  
  
@@ -170,7 +170,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c
    if (!command_line->HasSwitch(switches::kDisableFieldTrialTestingConfig) &&
    if (!command_line->HasSwitch(switches::kDisableFieldTrialTestingConfig) &&
        !command_line->HasSwitch(::switches::kForceFieldTrials) &&
        !command_line->HasSwitch(::switches::kForceFieldTrials) &&
        !command_line->HasSwitch(switches::kVariationsServerURL)) {
        !command_line->HasSwitch(switches::kVariationsServerURL)) {
-@@ -286,10 +286,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
+@@ -265,10 +265,12 @@ bool VariationsFieldTrialCreator::SetUpFieldTrials(
    }
    }
  #endif  // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
  #endif  // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
    bool used_seed = false;
    bool used_seed = false;
@@ -181,12 +181,12 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c
    }
    }
 +#endif  // BUILDFLAG(FIELDTRIAL_SEED_ENABLED)
 +#endif  // BUILDFLAG(FIELDTRIAL_SEED_ENABLED)
  
  
-   platform_field_trials->SetupFeatureControllingFieldTrials(
+   platform_field_trials->SetUpFeatureControllingFieldTrials(
        used_seed, low_entropy_provider.get(), feature_list.get());
        used_seed, low_entropy_provider.get(), feature_list.get());
 diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
 diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
 --- a/components/variations/service/variations_service.cc
 --- a/components/variations/service/variations_service.cc
 +++ b/components/variations/service/variations_service.cc
 +++ b/components/variations/service/variations_service.cc
-@@ -238,17 +238,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
+@@ -234,17 +234,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
  // Variations seed fetching is only enabled in official Chrome builds, if a URL
  // Variations seed fetching is only enabled in official Chrome builds, if a URL
  // is specified on the command line, and for testing.
  // is specified on the command line, and for testing.
  bool IsFetchingEnabled() {
  bool IsFetchingEnabled() {
@@ -206,7 +206,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
  }
  }
  
  
  std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
  std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
-@@ -608,7 +599,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
+@@ -602,7 +593,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
    // debugger or if the machine was suspended) and OnURLFetchComplete() hasn't
    // debugger or if the machine was suspended) and OnURLFetchComplete() hasn't
    // had a chance to run yet from the previous request. In this case, don't
    // had a chance to run yet from the previous request. In this case, don't
    // start a new request and just let the previous one finish.
    // start a new request and just let the previous one finish.
@@ -215,3 +215,5 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
      return false;
      return false;
  
  
    last_request_was_http_retry_ = is_http_retry;
    last_request_was_http_retry_ = is_http_retry;
+--
+2.25.1

+ 2 - 0
build/patches/Disable-lock-icon-in-address-bar-by-default.patch

@@ -16,3 +16,5 @@ diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/c
 -  registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, false);
 -  registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, false);
 +  registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, true);
 +  registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, true);
  }
  }
+--
+2.25.1

+ 2 - 0
build/patches/Disable-media-router-and-remoting-by-default.patch

@@ -77,3 +77,5 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
  #if !defined(OS_ANDROID)
  #if !defined(OS_ANDROID)
    registry->RegisterBooleanPref(prefs::kShowCastIconInToolbar, false);
    registry->RegisterBooleanPref(prefs::kShowCastIconInToolbar, false);
  #endif  // !defined(OS_ANDROID)
  #endif  // !defined(OS_ANDROID)
+--
+2.25.1

+ 2 - 0
build/patches/Disable-metrics-collection-for-NTP-tiles.patch

@@ -82,3 +82,5 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
      "most_visited_sites_unittest.cc",
      "most_visited_sites_unittest.cc",
      "popular_sites_impl_unittest.cc",
      "popular_sites_impl_unittest.cc",
    ]
    ]
+--
+2.25.1

+ 3 - 1
build/patches/Disable-metrics-on-all-I-O-threads.patch

@@ -9,7 +9,7 @@ Subject: Disable metrics on all I/O threads
 diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
 diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
 --- a/chrome/browser/browser_process_impl.cc
 --- a/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
 +++ b/chrome/browser/browser_process_impl.cc
-@@ -989,7 +989,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
+@@ -990,7 +990,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
    registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
    registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
@@ -18,3 +18,5 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
    registry->RegisterBooleanPref(prefs::kDevToolsRemoteDebuggingAllowed, true);
    registry->RegisterBooleanPref(prefs::kDevToolsRemoteDebuggingAllowed, true);
  }
  }
  
  
+--
+2.25.1

+ 2 - 0
build/patches/Disable-offline-pages-in-CCT.patch

@@ -18,3 +18,5 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/
  
  
  const base::Feature kOfflineIndicatorFeature{"OfflineIndicator",
  const base::Feature kOfflineIndicatorFeature{"OfflineIndicator",
                                               base::FEATURE_DISABLED_BY_DEFAULT};
                                               base::FEATURE_DISABLED_BY_DEFAULT};
+--
+2.25.1

+ 2 - 0
build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch

@@ -44,3 +44,5 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte
  const FormatUrlType kFormatUrlOmitMailToScheme = 1 << 8;
  const FormatUrlType kFormatUrlOmitMailToScheme = 1 << 8;
  
  
  const FormatUrlType kFormatUrlOmitDefaults =
  const FormatUrlType kFormatUrlOmitDefaults =
+--
+2.25.1

+ 3 - 1
build/patches/Disable-plugins-enumeration.patch

@@ -9,7 +9,7 @@ Subject: Disable plugins enumeration
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -1871,10 +1871,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
+@@ -1892,10 +1892,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
  }
  }
  
  
  PluginData* LocalFrame::GetPluginData() const {
  PluginData* LocalFrame::GetPluginData() const {
@@ -22,3 +22,5 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
  }
  }
  
  
  void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) {
  void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) {
+--
+2.25.1

+ 15 - 8
build/patches/Disable-privacy-sandbox.patch

@@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -73,7 +73,6 @@ public class PrivacySettings
+@@ -72,7 +72,6 @@ public class PrivacySettings
      private static final String PREF_SECURE_DNS = "secure_dns";
      private static final String PREF_SECURE_DNS = "secure_dns";
      private static final String PREF_DO_NOT_TRACK = "do_not_track";
      private static final String PREF_DO_NOT_TRACK = "do_not_track";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@@ -53,19 +53,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          Preference privacyReviewPreference = findPreference(PREF_PRIVACY_REVIEW);
          Preference privacyReviewPreference = findPreference(PREF_PRIVACY_REVIEW);
          if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REVIEW)) {
          if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REVIEW)) {
              getPreferenceScreen().removePreference(privacyReviewPreference);
              getPreferenceScreen().removePreference(privacyReviewPreference);
-@@ -337,12 +324,6 @@ public class PrivacySettings
+@@ -301,17 +288,11 @@ public class PrivacySettings
              secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
              secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
          }
          }
  
  
 -        Preference privacySandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
 -        Preference privacySandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
 -        if (privacySandboxPreference != null) {
 -        if (privacySandboxPreference != null) {
+         ChromeSwitchPreference forceNoJit =
+                 (ChromeSwitchPreference) findPreference(PREF_FORCE_NO_JIT);
+         forceNoJit.setOnPreferenceChangeListener(this);
+         forceNoJit.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
+ 
 -            privacySandboxPreference.setSummary(
 -            privacySandboxPreference.setSummary(
 -                    PrivacySandboxSettingsFragment.getStatusString(getContext()));
 -                    PrivacySandboxSettingsFragment.getStatusString(getContext()));
 -        }
 -        }
 -
 -
-         ChromeSwitchPreference closeTabsOnExitPref =
-                 (ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
-         closeTabsOnExitPref.setOnPreferenceChangeListener(this);
+         ChromeSwitchPreference historyInIncognitoPref =
+                 (ChromeSwitchPreference) findPreference(PREF_INCOGNITO_TAB_HISTORY_ENABLED);
+         if (historyInIncognitoPref != null) {
 diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
 diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
 --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
 --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
 +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
 +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc
@@ -104,7 +109,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
    // On first entering the privacy sandbox experiment, users may have the
    // On first entering the privacy sandbox experiment, users may have the
    // privacy sandbox disabled (or "reconciled") based on their current cookie
    // privacy sandbox disabled (or "reconciled") based on their current cookie
    // settings (e.g. blocking 3P cookies). Depending on the state of the sync
    // settings (e.g. blocking 3P cookies). Depending on the state of the sync
-@@ -392,7 +379,8 @@ bool PrivacySandboxSettings::IsPrivacySandboxManaged() {
+@@ -383,7 +370,8 @@ bool PrivacySandboxSettings::IsPrivacySandboxManaged() {
  
  
  void PrivacySandboxSettings::SetPrivacySandboxEnabled(bool enabled) {
  void PrivacySandboxSettings::SetPrivacySandboxEnabled(bool enabled) {
    pref_service_->SetBoolean(prefs::kPrivacySandboxManuallyControlled, true);
    pref_service_->SetBoolean(prefs::kPrivacySandboxManuallyControlled, true);
@@ -114,7 +119,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
  }
  }
  
  
  void PrivacySandboxSettings::OnCookiesCleared() {
  void PrivacySandboxSettings::OnCookiesCleared() {
-@@ -446,6 +434,10 @@ bool PrivacySandboxSettings::IsPrivacySandboxAllowedForContext(
+@@ -437,6 +425,10 @@ bool PrivacySandboxSettings::IsPrivacySandboxAllowedForContext(
      const GURL& url,
      const GURL& url,
      const absl::optional<url::Origin>& top_frame_origin,
      const absl::optional<url::Origin>& top_frame_origin,
      const ContentSettingsForOneType& cookie_settings) const {
      const ContentSettingsForOneType& cookie_settings) const {
@@ -125,7 +130,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
    if (!pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabled))
    if (!pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabled))
      return false;
      return false;
  
  
-@@ -458,6 +450,12 @@ bool PrivacySandboxSettings::IsPrivacySandboxAllowedForContext(
+@@ -449,6 +441,12 @@ bool PrivacySandboxSettings::IsPrivacySandboxAllowedForContext(
  }
  }
  
  
  void PrivacySandboxSettings::MaybeReconcilePrivacySandboxPref() {
  void PrivacySandboxSettings::MaybeReconcilePrivacySandboxPref() {
@@ -138,3 +143,5 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings.cc b/chrome
    // No need to reconcile preferences if it has already happened.
    // No need to reconcile preferences if it has already happened.
    if (pref_service_->GetBoolean(prefs::kPrivacySandboxPreferencesReconciled)) {
    if (pref_service_->GetBoolean(prefs::kPrivacySandboxPreferencesReconciled)) {
      LogPrivacySandboxState();
      LogPrivacySandboxState();
+--
+2.25.1

+ 3 - 1
build/patches/Disable-references-to-fonts.googleapis.com.patch

@@ -12,7 +12,7 @@ Subject: Disable references to fonts.googleapis.com
 diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 --- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 --- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 +++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 +++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
-@@ -300,7 +300,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
+@@ -298,7 +298,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
  std::string DomDistillerViewerSource::GetContentSecurityPolicy(
  std::string DomDistillerViewerSource::GetContentSecurityPolicy(
      network::mojom::CSPDirectiveName directive) {
      network::mojom::CSPDirectiveName directive) {
    if (directive == network::mojom::CSPDirectiveName::StyleSrc) {
    if (directive == network::mojom::CSPDirectiveName::StyleSrc) {
@@ -58,3 +58,5 @@ diff --git a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css b/th
  
  
  body,
  body,
  table,
  table,
+--
+2.25.1

+ 2 - 0
build/patches/Disable-requests-for-single-word-Omnibar-searches.patch

@@ -24,3 +24,5 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c
  }
  }
  
  
  ChromeOmniboxNavigationObserver::~ChromeOmniboxNavigationObserver() {
  ChromeOmniboxNavigationObserver::~ChromeOmniboxNavigationObserver() {
+--
+2.25.1

+ 131 - 127
build/patches/Disable-safe-browsing.patch

@@ -16,7 +16,6 @@ Disable CrowdDeny feature
  .../usage_stats/UsageStatsConsentDialog.java  |  5 --
  .../usage_stats/UsageStatsConsentDialog.java  |  5 --
  .../android/chrome_main_delegate_android.cc   |  1 +
  .../android/chrome_main_delegate_android.cc   |  1 +
  chrome/browser/BUILD.gn                       | 28 --------
  chrome/browser/BUILD.gn                       | 28 --------
- chrome/browser/about_flags.cc                 |  2 +-
  .../tab_web_contents_delegate_android.cc      |  8 +++
  .../tab_web_contents_delegate_android.cc      |  8 +++
  chrome/browser/browser_process.h              |  7 --
  chrome/browser/browser_process.h              |  7 --
  chrome/browser/browser_process_impl.cc        | 29 --------
  chrome/browser/browser_process_impl.cc        | 29 --------
@@ -51,22 +50,23 @@ Disable CrowdDeny feature
  ...ve_origin_permission_revocation_request.cc |  2 +
  ...ve_origin_permission_revocation_request.cc |  2 +
  .../permissions/chrome_permissions_client.cc  | 14 ----
  .../permissions/chrome_permissions_client.cc  | 14 ----
  .../permissions/chrome_permissions_client.h   |  3 -
  .../permissions/chrome_permissions_client.h   |  3 -
+ ...quiet_notification_permission_ui_config.cc |  4 +-
  ...hrome_browser_main_extra_parts_profiles.cc |  2 -
  ...hrome_browser_main_extra_parts_profiles.cc |  2 -
  chrome/browser/profiles/profile_impl.cc       |  4 +-
  chrome/browser/profiles/profile_impl.cc       |  4 +-
  chrome/browser/safe_browsing/BUILD.gn         |  4 +-
  chrome/browser/safe_browsing/BUILD.gn         |  4 +-
  chrome/browser/safe_browsing/android/BUILD.gn |  4 --
  chrome/browser/safe_browsing/android/BUILD.gn |  4 --
  .../safe_browsing/SafeBrowsingBridge.java     | 71 -------------------
  .../safe_browsing/SafeBrowsingBridge.java     | 71 -------------------
- .../android/safe_browsing_bridge.cc           | 53 --------------
+ .../android/safe_browsing_bridge.cc           | 52 --------------
  .../download_protection_service.cc            |  5 --
  .../download_protection_service.cc            |  5 --
  .../download_protection_service.h             |  5 --
  .../download_protection_service.h             |  5 --
  .../url_lookup_service_factory.cc             |  4 ++
  .../url_lookup_service_factory.cc             |  4 ++
  .../safety_check/SafetyCheckMediator.java     | 13 ----
  .../safety_check/SafetyCheckMediator.java     | 13 ----
- .../java/res/layout/fre_uma_dialog.xml        | 11 ---
- .../ui/fre/FreUMADialogCoordinator.java       |  3 -
  .../ssl/sct_reporting_service_factory.cc      | 11 +--
  .../ssl/sct_reporting_service_factory.cc      | 11 +--
  .../browser/ssl/security_state_tab_helper.cc  | 10 +--
  .../browser/ssl/security_state_tab_helper.cc  | 10 +--
  ...urce_filter_web_contents_helper_factory.cc |  4 ++
  ...urce_filter_web_contents_helper_factory.cc |  4 ++
  chrome/browser/ui/BUILD.gn                    |  2 -
  chrome/browser/ui/BUILD.gn                    |  2 -
+ .../signin/java/res/layout/fre_uma_dialog.xml | 11 ---
+ .../signin/fre/FreUMADialogCoordinator.java   |  4 --
  .../strings/android_chrome_strings.grd        |  9 ---
  .../strings/android_chrome_strings.grd        |  9 ---
  chrome/browser/ui/tab_helpers.cc              | 17 ++---
  chrome/browser/ui/tab_helpers.cc              | 17 ++---
  .../ui/webui/interstitials/interstitial_ui.cc | 12 ++--
  .../ui/webui/interstitials/interstitial_ui.cc | 12 ++--
@@ -88,7 +88,7 @@ Disable CrowdDeny feature
  .../file_system_access_permission_context.h   |  6 --
  .../file_system_access_permission_context.h   |  6 --
  weblayer/BUILD.gn                             |  1 -
  weblayer/BUILD.gn                             |  1 -
  weblayer/test/BUILD.gn                        |  1 -
  weblayer/test/BUILD.gn                        |  1 -
- 82 files changed, 180 insertions(+), 673 deletions(-)
+ 82 files changed, 181 insertions(+), 674 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
@@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/promo
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -26,14 +26,11 @@ import org.chromium.chrome.browser.privacy_review.PrivacyReviewDialog;
+@@ -25,14 +25,11 @@ import org.chromium.chrome.browser.privacy_review.PrivacyReviewDialog;
  import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxReferrer;
  import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxReferrer;
  import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment;
  import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.Profile;
@@ -202,7 +202,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
-@@ -53,9 +50,7 @@ public class PrivacySettings
+@@ -52,9 +49,7 @@ public class PrivacySettings
      private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
      private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
      private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
      private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
      private static final String PREF_SECURE_DNS = "secure_dns";
      private static final String PREF_SECURE_DNS = "secure_dns";
@@ -212,9 +212,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
      private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
      private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
-@@ -96,15 +91,6 @@ public class PrivacySettings
- 
-         setUpIncognitoReauthPreference();
+@@ -99,15 +94,6 @@ public class PrivacySettings
+         mIncognitoLockSettings = new IncognitoLockSettings(incognitoReauthPreference);
+         mIncognitoLockSettings.setUpIncognitoReauthPreference(getActivity());
  
  
 -        Preference safeBrowsingPreference = findPreference(PREF_SAFE_BROWSING);
 -        Preference safeBrowsingPreference = findPreference(PREF_SAFE_BROWSING);
 -        safeBrowsingPreference.setSummary(
 -        safeBrowsingPreference.setSummary(
@@ -228,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          setHasOptionsMenu(true);
          setHasOptionsMenu(true);
  
  
          mManagedPreferenceDelegate = createManagedPreferenceDelegate();
          mManagedPreferenceDelegate = createManagedPreferenceDelegate();
-@@ -241,32 +227,6 @@ public class PrivacySettings
+@@ -211,32 +197,6 @@ public class PrivacySettings
              secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
              secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
          }
          }
  
  
@@ -315,7 +315,7 @@ diff --git a/chrome/app/android/chrome_main_delegate_android.cc b/chrome/app/and
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -314,16 +314,12 @@ static_library("browser") {
+@@ -311,16 +311,12 @@ static_library("browser") {
      "component_updater/chrome_component_updater_configurator.h",
      "component_updater/chrome_component_updater_configurator.h",
      "component_updater/chrome_origin_trials_component_installer.cc",
      "component_updater/chrome_origin_trials_component_installer.cc",
      "component_updater/chrome_origin_trials_component_installer.h",
      "component_updater/chrome_origin_trials_component_installer.h",
@@ -332,7 +332,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "component_updater/first_party_sets_component_installer.cc",
      "component_updater/first_party_sets_component_installer.cc",
      "component_updater/first_party_sets_component_installer.h",
      "component_updater/first_party_sets_component_installer.h",
      "component_updater/floc_component_installer.cc",
      "component_updater/floc_component_installer.cc",
-@@ -1118,8 +1114,6 @@ static_library("browser") {
+@@ -1117,8 +1113,6 @@ static_library("browser") {
      "permissions/adaptive_quiet_notification_permission_ui_enabler.h",
      "permissions/adaptive_quiet_notification_permission_ui_enabler.h",
      "permissions/chrome_permissions_client.cc",
      "permissions/chrome_permissions_client.cc",
      "permissions/chrome_permissions_client.h",
      "permissions/chrome_permissions_client.h",
@@ -341,7 +341,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "permissions/crowd_deny_preload_data.cc",
      "permissions/crowd_deny_preload_data.cc",
      "permissions/crowd_deny_preload_data.h",
      "permissions/crowd_deny_preload_data.h",
      "permissions/crowd_deny_safe_browsing_request.cc",
      "permissions/crowd_deny_safe_browsing_request.cc",
-@@ -1454,15 +1448,6 @@ static_library("browser") {
+@@ -1459,15 +1453,6 @@ static_library("browser") {
      "renderer_host/chrome_navigation_ui_data.h",
      "renderer_host/chrome_navigation_ui_data.h",
      "renderer_preferences_util.cc",
      "renderer_preferences_util.cc",
      "renderer_preferences_util.h",
      "renderer_preferences_util.h",
@@ -357,7 +357,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "resource_coordinator/resource_coordinator_parts.cc",
      "resource_coordinator/resource_coordinator_parts.cc",
      "resource_coordinator/resource_coordinator_parts.h",
      "resource_coordinator/resource_coordinator_parts.h",
      "resource_coordinator/session_restore_policy.cc",
      "resource_coordinator/session_restore_policy.cc",
-@@ -2189,11 +2174,8 @@ static_library("browser") {
+@@ -2202,11 +2187,8 @@ static_library("browser") {
      "//components/reporting/util:status_macros",
      "//components/reporting/util:status_macros",
      "//components/reporting/util:status_proto",
      "//components/reporting/util:status_proto",
      "//components/reporting/util:task_runner_context",
      "//components/reporting/util:task_runner_context",
@@ -369,7 +369,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "//components/safe_browsing/content/browser:safe_browsing_service",
      "//components/safe_browsing/content/browser:safe_browsing_service",
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/web_ui",
      "//components/safe_browsing/content/browser/web_ui",
-@@ -3248,12 +3230,6 @@ static_library("browser") {
+@@ -3271,12 +3253,6 @@ static_library("browser") {
        "profiles/profile_manager_android.cc",
        "profiles/profile_manager_android.cc",
        "profiles/profile_manager_android.h",
        "profiles/profile_manager_android.h",
        "query_tiles/android/tile_provider_factory.cc",
        "query_tiles/android/tile_provider_factory.cc",
@@ -382,7 +382,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "safe_browsing/android/password_reuse_controller_android.cc",
        "safe_browsing/android/password_reuse_controller_android.cc",
        "safe_browsing/android/password_reuse_controller_android.h",
        "safe_browsing/android/password_reuse_controller_android.h",
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
-@@ -3704,8 +3680,6 @@ static_library("browser") {
+@@ -3738,8 +3714,6 @@ static_library("browser") {
        "download/download_commands.h",
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
        "download/download_crx_util.h",
@@ -391,7 +391,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "download/download_dir_policy_handler.cc",
        "download/download_dir_policy_handler.cc",
        "download/download_dir_policy_handler.h",
        "download/download_dir_policy_handler.h",
        "download/download_dir_util.cc",
        "download/download_dir_util.cc",
-@@ -7369,8 +7343,6 @@ static_library("test_support") {
+@@ -7466,8 +7440,6 @@ static_library("test_support") {
      "//components/reporting/util:status_macros",
      "//components/reporting/util:status_macros",
      "//components/reporting/util:status_proto",
      "//components/reporting/util:status_proto",
      "//components/reporting/util:task_runner_context",
      "//components/reporting/util:task_runner_context",
@@ -400,18 +400,6 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "//components/safe_browsing/core/common/proto:csd_proto",
      "//components/safe_browsing/core/common/proto:csd_proto",
      "//components/search_engines:test_support",
      "//components/search_engines:test_support",
      "//components/security_interstitials/content:security_interstitial_page",
      "//components/security_interstitials/content:security_interstitial_page",
-diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
---- a/chrome/browser/about_flags.cc
-+++ b/chrome/browser/about_flags.cc
-@@ -2203,7 +2203,7 @@ const FeatureEntry::FeatureParam
-         {QuietNotificationPermissionUiConfig::kEnableAbusiveRequestWarning,
-          "true"},
-         {QuietNotificationPermissionUiConfig::kEnableCrowdDenyTriggering,
--         "true"},
-+         "false"},
-         {QuietNotificationPermissionUiConfig::kCrowdDenyHoldBackChance, "0"}};
- 
- // The default "Enabled" option has the semantics of showing the quiet UI
 diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc
 diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc
 --- a/chrome/browser/android/tab_web_contents_delegate_android.cc
 --- a/chrome/browser/android/tab_web_contents_delegate_android.cc
 +++ b/chrome/browser/android/tab_web_contents_delegate_android.cc
 +++ b/chrome/browser/android/tab_web_contents_delegate_android.cc
@@ -435,7 +423,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom
  #include "components/security_state/content/content_utils.h"
  #include "components/security_state/content/content_utils.h"
  #include "content/public/browser/file_select_listener.h"
  #include "content/public/browser/file_select_listener.h"
  #include "content/public/browser/navigation_entry.h"
  #include "content/public/browser/navigation_entry.h"
-@@ -155,8 +159,10 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
+@@ -154,8 +158,10 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
      content::WebContents* portal_contents) {
      content::WebContents* portal_contents) {
    WebContentsDelegateAndroid::PortalWebContentsCreated(portal_contents);
    WebContentsDelegateAndroid::PortalWebContentsCreated(portal_contents);
  
  
@@ -446,7 +434,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom
  
  
    // This is a subset of the tab helpers that would be attached by
    // This is a subset of the tab helpers that would be attached by
    // TabAndroid::AttachTabHelpers.
    // TabAndroid::AttachTabHelpers.
-@@ -178,11 +184,13 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
+@@ -177,11 +183,13 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
    infobars::ContentInfoBarManager::CreateForWebContents(portal_contents);
    infobars::ContentInfoBarManager::CreateForWebContents(portal_contents);
    PrefsTabHelper::CreateForWebContents(portal_contents);
    PrefsTabHelper::CreateForWebContents(portal_contents);
    DataReductionProxyTabHelper::CreateForWebContents(portal_contents);
    DataReductionProxyTabHelper::CreateForWebContents(portal_contents);
@@ -495,7 +483,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/shell_integration.h"
  #include "chrome/browser/site_isolation/prefs_observer.h"
  #include "chrome/browser/site_isolation/prefs_observer.h"
  #include "chrome/browser/ssl/secure_origin_prefs_observer.h"
  #include "chrome/browser/ssl/secure_origin_prefs_observer.h"
-@@ -110,7 +109,6 @@
+@@ -111,7 +110,6 @@
  #include "components/prefs/json_pref_store.h"
  #include "components/prefs/json_pref_store.h"
  #include "components/prefs/pref_registry_simple.h"
  #include "components/prefs/pref_registry_simple.h"
  #include "components/prefs/pref_service.h"
  #include "components/prefs/pref_service.h"
@@ -503,7 +491,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
  #include "components/sessions/core/session_id_generator.h"
  #include "components/sessions/core/session_id_generator.h"
  #include "components/subresource_filter/content/browser/ruleset_service.h"
  #include "components/subresource_filter/content/browser/ruleset_service.h"
  #include "components/translate/core/browser/translate_download_manager.h"
  #include "components/translate/core/browser/translate_download_manager.h"
-@@ -395,8 +393,6 @@ void BrowserProcessImpl::StartTearDown() {
+@@ -396,8 +394,6 @@ void BrowserProcessImpl::StartTearDown() {
  
  
    metrics_services_manager_.reset();
    metrics_services_manager_.reset();
    intranet_redirect_detector_.reset();
    intranet_redirect_detector_.reset();
@@ -512,7 +500,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
    network_time_tracker_.reset();
    network_time_tracker_.reset();
  #if BUILDFLAG(ENABLE_PLUGINS)
  #if BUILDFLAG(ENABLE_PLUGINS)
    plugins_resource_service_.reset();
    plugins_resource_service_.reset();
-@@ -1030,14 +1026,6 @@ StatusTray* BrowserProcessImpl::status_tray() {
+@@ -1031,14 +1027,6 @@ StatusTray* BrowserProcessImpl::status_tray() {
    return status_tray_.get();
    return status_tray_.get();
  }
  }
  
  
@@ -527,7 +515,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
  subresource_filter::RulesetService*
  subresource_filter::RulesetService*
  BrowserProcessImpl::subresource_filter_ruleset_service() {
  BrowserProcessImpl::subresource_filter_ruleset_service() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1301,23 +1289,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() {
+@@ -1303,23 +1291,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() {
  }
  }
  
  
  void BrowserProcessImpl::CreateSafeBrowsingService() {
  void BrowserProcessImpl::CreateSafeBrowsingService() {
@@ -605,9 +593,9 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #include "chrome/browser/safe_browsing/url_lookup_service_factory.h"
  #include "chrome/browser/safe_browsing/url_lookup_service_factory.h"
 +#endif
 +#endif
  #include "chrome/browser/search/search.h"
  #include "chrome/browser/search/search.h"
+ #include "chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.h"
  #include "chrome/browser/sharing/sms/sms_remote_fetcher.h"
  #include "chrome/browser/sharing/sms/sms_remote_fetcher.h"
- #include "chrome/browser/signin/chrome_signin_proxying_url_loader_factory.h"
-@@ -928,9 +930,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
+@@ -936,9 +938,7 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
  class CertificateReportingServiceCertReporter : public SSLCertReporter {
  class CertificateReportingServiceCertReporter : public SSLCertReporter {
   public:
   public:
    explicit CertificateReportingServiceCertReporter(
    explicit CertificateReportingServiceCertReporter(
@@ -618,7 +606,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  
  
    CertificateReportingServiceCertReporter(
    CertificateReportingServiceCertReporter(
        const CertificateReportingServiceCertReporter&) = delete;
        const CertificateReportingServiceCertReporter&) = delete;
-@@ -942,11 +942,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter {
+@@ -950,11 +950,9 @@ class CertificateReportingServiceCertReporter : public SSLCertReporter {
    // SSLCertReporter implementation
    // SSLCertReporter implementation
    void ReportInvalidCertificateChain(
    void ReportInvalidCertificateChain(
        const std::string& serialized_report) override {
        const std::string& serialized_report) override {
@@ -630,7 +618,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  };
  };
  
  
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -1423,7 +1421,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask(
+@@ -1438,7 +1436,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask(
    InitNetworkContextsParentDirectory();
    InitNetworkContextsParentDirectory();
  
  
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -640,7 +628,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  }
  }
  
  
  bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
  bool ChromeContentBrowserClient::IsBrowserStartupComplete() {
-@@ -2163,7 +2163,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2178,7 +2178,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
    }
    }
  #elif defined(OS_POSIX)
  #elif defined(OS_POSIX)
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
@@ -649,7 +637,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #else
  #else
    bool enable_crash_reporter = false;
    bool enable_crash_reporter = false;
    if (crash_reporter::IsCrashpadEnabled()) {
    if (crash_reporter::IsCrashpadEnabled()) {
-@@ -2300,6 +2300,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2315,6 +2315,9 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
          command_line->AppendSwitch(
          command_line->AppendSwitch(
              switches::kSharedArrayBufferUnrestrictedAccessAllowed);
              switches::kSharedArrayBufferUnrestrictedAccessAllowed);
        }
        }
@@ -667,7 +655,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
    // g_browser_process->safe_browsing_service() may be null in unittests.
    // g_browser_process->safe_browsing_service() may be null in unittests.
    safe_browsing::SafeBrowsingUIManager* ui_manager =
    safe_browsing::SafeBrowsingUIManager* ui_manager =
        g_browser_process->safe_browsing_service()
        g_browser_process->safe_browsing_service()
-@@ -4272,6 +4276,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4273,6 +4277,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
          std::make_unique<safe_browsing::DelayedWarningNavigationThrottle>(
          std::make_unique<safe_browsing::DelayedWarningNavigationThrottle>(
              handle));
              handle));
    }
    }
@@ -675,7 +663,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  
  
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // of lacros-chrome is complete.
  // of lacros-chrome is complete.
-@@ -5670,6 +5675,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
+@@ -5684,6 +5689,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
      const std::vector<std::string>& allowlist_domains) {
      const std::vector<std::string>& allowlist_domains) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
  
  
@@ -683,7 +671,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
    // Should not bypass safe browsing check if the check is for enterprise
    // Should not bypass safe browsing check if the check is for enterprise
    // lookup.
    // lookup.
    if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled)
    if (!safe_browsing_enabled_for_profile && !should_check_on_sb_disabled)
-@@ -5690,6 +5696,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
+@@ -5704,6 +5710,9 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
    }
    }
  
  
    return safe_browsing_url_checker_delegate_;
    return safe_browsing_url_checker_delegate_;
@@ -693,7 +681,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  }
  }
  
  
  safe_browsing::RealTimeUrlLookupServiceBase*
  safe_browsing::RealTimeUrlLookupServiceBase*
-@@ -5697,24 +5706,28 @@ ChromeContentBrowserClient::GetUrlLookupService(
+@@ -5711,24 +5720,28 @@ ChromeContentBrowserClient::GetUrlLookupService(
      content::BrowserContext* browser_context,
      content::BrowserContext* browser_context,
      bool is_enterprise_lookup_enabled,
      bool is_enterprise_lookup_enabled,
      bool is_consumer_lookup_enabled) {
      bool is_consumer_lookup_enabled) {
@@ -726,7 +714,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
 diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
 diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
 --- a/chrome/browser/chrome_content_browser_client.h
 --- a/chrome/browser/chrome_content_browser_client.h
 +++ b/chrome/browser/chrome_content_browser_client.h
 +++ b/chrome/browser/chrome_content_browser_client.h
-@@ -843,9 +843,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
+@@ -844,9 +844,11 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
    // Parts are deleted in the reverse order they are added.
    // Parts are deleted in the reverse order they are added.
    std::vector<ChromeContentBrowserClientParts*> extra_parts_;
    std::vector<ChromeContentBrowserClientParts*> extra_parts_;
  
  
@@ -802,7 +790,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
  #include "chrome/browser/component_updater/crl_set_component_installer.h"
  #include "chrome/browser/component_updater/crl_set_component_installer.h"
  #include "chrome/browser/component_updater/crowd_deny_component_installer.h"
  #include "chrome/browser/component_updater/crowd_deny_component_installer.h"
  #include "chrome/browser/component_updater/file_type_policies_component_installer.h"
  #include "chrome/browser/component_updater/file_type_policies_component_installer.h"
-@@ -36,7 +35,6 @@
+@@ -35,7 +34,6 @@
  #include "components/component_updater/installer_policies/autofill_states_component_installer.h"
  #include "components/component_updater/installer_policies/autofill_states_component_installer.h"
  #include "components/component_updater/installer_policies/on_device_head_suggest_component_installer.h"
  #include "components/component_updater/installer_policies/on_device_head_suggest_component_installer.h"
  #include "components/component_updater/installer_policies/optimization_hints_component_installer.h"
  #include "components/component_updater/installer_policies/optimization_hints_component_installer.h"
@@ -810,7 +798,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
  #include "components/nacl/common/buildflags.h"
  #include "components/nacl/common/buildflags.h"
  #include "device/vr/buildflags/buildflags.h"
  #include "device/vr/buildflags/buildflags.h"
  #include "ppapi/buildflags/buildflags.h"
  #include "ppapi/buildflags/buildflags.h"
-@@ -200,9 +198,6 @@ void RegisterComponentsForUpdate(bool is_off_the_record_profile,
+@@ -188,9 +186,6 @@ void RegisterComponentsForUpdate() {
  
  
    MaybeRegisterPKIMetadataComponent(cus);
    MaybeRegisterPKIMetadataComponent(cus);
  
  
@@ -820,7 +808,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
  #if BUILDFLAG(IS_CHROMEOS_ASH)
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    RegisterSmartDimComponent(cus);
    RegisterSmartDimComponent(cus);
  #endif  // !BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // !BUILDFLAG(IS_CHROMEOS_ASH)
-@@ -219,8 +214,6 @@ void RegisterComponentsForUpdate(bool is_off_the_record_profile,
+@@ -207,8 +202,6 @@ void RegisterComponentsForUpdate() {
    RegisterAutofillStatesComponent(cus, g_browser_process->local_state());
    RegisterAutofillStatesComponent(cus, g_browser_process->local_state());
  
  
    RegisterAutofillRegexComponent(cus);
    RegisterAutofillRegexComponent(cus);
@@ -960,7 +948,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  
  
  void ChromeDownloadManagerDelegate::GetMixedContentStatus(
  void ChromeDownloadManagerDelegate::GetMixedContentStatus(
      download::DownloadItem* download,
      download::DownloadItem* download,
-@@ -1535,8 +1524,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
+@@ -1545,8 +1534,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
        DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
        DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
  #endif
  #endif
  
  
@@ -972,7 +960,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
    if (ShouldBlockFile(target_info->danger_type, item)) {
    if (ShouldBlockFile(target_info->danger_type, item)) {
      MaybeReportDangerousDownloadBlocked(
      MaybeReportDangerousDownloadBlocked(
          download_prefs_->download_restriction(), "DANGEROUS_FILE_TYPE",
          download_prefs_->download_restriction(), "DANGEROUS_FILE_TYPE",
-@@ -1545,6 +1537,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
+@@ -1555,6 +1547,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
      // A dangerous type would take precedence over the blocking of the file.
      // A dangerous type would take precedence over the blocking of the file.
      target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
      target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
    }
    }
@@ -980,7 +968,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  
  
    base::FilePath target_path = target_info->target_path;
    base::FilePath target_path = target_info->target_path;
  
  
-@@ -1687,7 +1680,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport(
+@@ -1697,7 +1690,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport(
      service->MaybeSendDangerousDownloadOpenedReport(download,
      service->MaybeSendDangerousDownloadOpenedReport(download,
                                                      show_download_in_folder);
                                                      show_download_in_folder);
    }
    }
@@ -988,7 +976,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
    if (!download->GetAutoOpened()) {
    if (!download->GetAutoOpened()) {
      download::DownloadContent download_content =
      download::DownloadContent download_content =
          download::DownloadContentFromMimeType(download->GetMimeType(), false);
          download::DownloadContentFromMimeType(download->GetMimeType(), false);
-@@ -1695,6 +1687,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport(
+@@ -1705,6 +1697,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport(
          download->GetDangerType(), download_content, base::Time::Now(),
          download->GetDangerType(), download_content, base::Time::Now(),
          download->GetEndTime(), show_download_in_folder);
          download->GetEndTime(), show_download_in_folder);
    }
    }
@@ -1176,7 +1164,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download
  
  
  namespace {
  namespace {
  
  
-@@ -260,14 +264,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) {
+@@ -251,14 +255,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) {
          base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) +
          base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) +
          extension);
          extension);
  
  
@@ -1192,7 +1180,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download
    }
    }
  }
  }
  
  
-@@ -475,10 +472,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(const GURL& url,
+@@ -466,10 +463,6 @@ bool DownloadPrefs::IsAutoOpenByPolicy(const GURL& url,
  bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension(
  bool DownloadPrefs::EnableAutoOpenByUserBasedOnExtension(
      const base::FilePath& file_name) {
      const base::FilePath& file_name) {
    base::FilePath::StringType extension = file_name.Extension();
    base::FilePath::StringType extension = file_name.Extension();
@@ -1683,7 +1671,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
  #include "chrome/browser/ui/file_system_access_dialogs.h"
  #include "chrome/browser/ui/file_system_access_dialogs.h"
  #include "chrome/common/chrome_paths.h"
  #include "chrome/common/chrome_paths.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
-@@ -299,6 +301,7 @@ BindResultCallbackToCurrentSequence(
+@@ -301,6 +303,7 @@ BindResultCallbackToCurrentSequence(
        base::SequencedTaskRunnerHandle::Get(), std::move(callback));
        base::SequencedTaskRunnerHandle::Get(), std::move(callback));
  }
  }
  
  
@@ -1691,7 +1679,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
  void DoSafeBrowsingCheckOnUIThread(
  void DoSafeBrowsingCheckOnUIThread(
      content::GlobalRenderFrameHostId frame_id,
      content::GlobalRenderFrameHostId frame_id,
      std::unique_ptr<content::FileSystemAccessWriteItem> item,
      std::unique_ptr<content::FileSystemAccessWriteItem> item,
-@@ -375,6 +378,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) {
+@@ -377,6 +380,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) {
    NOTREACHED();
    NOTREACHED();
    return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::kBlock;
    return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::kBlock;
  }
  }
@@ -1699,7 +1687,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
  
  
  std::string GenerateLastPickedDirectoryKey(const std::string& id) {
  std::string GenerateLastPickedDirectoryKey(const std::string& id) {
    return id.empty() ? kDefaultLastPickedDirectoryKey
    return id.empty() ? kDefaultLastPickedDirectoryKey
-@@ -1106,6 +1110,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveDirectoryAccess(
+@@ -1130,6 +1134,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveDirectoryAccess(
                       std::move(callback)));
                       std::move(callback)));
  }
  }
  
  
@@ -1707,7 +1695,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
  void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
  void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
      std::unique_ptr<content::FileSystemAccessWriteItem> item,
      std::unique_ptr<content::FileSystemAccessWriteItem> item,
      content::GlobalRenderFrameHostId frame_id,
      content::GlobalRenderFrameHostId frame_id,
-@@ -1127,6 +1132,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
+@@ -1151,6 +1156,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
                },
                },
                base::SequencedTaskRunnerHandle::Get(), std::move(callback))));
                base::SequencedTaskRunnerHandle::Get(), std::move(callback))));
  }
  }
@@ -1760,7 +1748,7 @@ diff --git a/chrome/browser/lookalikes/lookalike_url_controller_client.cc b/chro
 diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
 diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -828,9 +828,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
+@@ -824,9 +824,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
    metrics_service_->RegisterMetricsProvider(
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<HttpsEngagementMetricsProvider>());
        std::make_unique<HttpsEngagementMetricsProvider>());
  
  
@@ -1786,7 +1774,7 @@ diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/c
 diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
 diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
 +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -828,21 +828,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const {
+@@ -830,21 +830,13 @@ autofill::LanguageCode ChromePasswordManagerClient::GetPageLanguage() const {
  
  
  safe_browsing::PasswordProtectionService*
  safe_browsing::PasswordProtectionService*
  ChromePasswordManagerClient::GetPasswordProtectionService() const {
  ChromePasswordManagerClient::GetPasswordProtectionService() const {
@@ -1809,7 +1797,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
  }
  }
  #endif  // defined(ON_FOCUS_PING_ENABLED)
  #endif  // defined(ON_FOCUS_PING_ENABLED)
  
  
-@@ -852,22 +844,9 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
+@@ -854,22 +846,9 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry(
      const std::vector<password_manager::MatchingReusedCredential>&
      const std::vector<password_manager::MatchingReusedCredential>&
          matching_reused_credentials,
          matching_reused_credentials,
      bool password_field_exists) {
      bool password_field_exists) {
@@ -1832,7 +1820,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
  }
  }
  
  
  #if !defined(OS_ANDROID)
  #if !defined(OS_ANDROID)
-@@ -1441,6 +1420,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
+@@ -1459,6 +1438,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
      is_enabled = false;
      is_enabled = false;
    }
    }
  
  
@@ -1840,7 +1828,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
    // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing
    // SafeBrowsing Delayed Warnings experiment can delay some SafeBrowsing
    // warnings until user interaction. If the current page has a delayed warning,
    // warnings until user interaction. If the current page has a delayed warning,
    // it'll have a user interaction observer attached. Disable password
    // it'll have a user interaction observer attached. Disable password
-@@ -1451,6 +1431,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
+@@ -1469,6 +1449,7 @@ bool ChromePasswordManagerClient::IsPasswordManagementEnabledForCurrentPage(
      observer->OnPasswordSaveOrAutofillDenied();
      observer->OnPasswordSaveOrAutofillDenied();
      is_enabled = false;
      is_enabled = false;
    }
    }
@@ -1911,6 +1899,20 @@ diff --git a/chrome/browser/permissions/chrome_permissions_client.h b/chrome/bro
    void OnPromptResolved(
    void OnPromptResolved(
        content::BrowserContext* browser_context,
        content::BrowserContext* browser_context,
        permissions::RequestType request_type,
        permissions::RequestType request_type,
+diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
+--- a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
++++ b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
+@@ -89,8 +89,8 @@ bool QuietNotificationPermissionUiConfig::IsCrowdDenyTriggeringEnabled() {
+     return false;
+ 
+   return base::GetFieldTrialParamByFeatureAsBool(
+-      features::kQuietNotificationPrompts, kEnableCrowdDenyTriggering,
+-      true /* default */);
++      features::kQuietNotificationPrompts, kEnableCrowdDenyTriggering, // disabled by default in Bromite
++      false /* default */);
+ }
+ 
+ // static
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -1922,7 +1924,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
  #include "chrome/browser/search_engines/template_url_fetcher_factory.h"
  #include "chrome/browser/search_engines/template_url_fetcher_factory.h"
  #include "chrome/browser/search_engines/template_url_service_factory.h"
  #include "chrome/browser/search_engines/template_url_service_factory.h"
  #include "chrome/browser/segmentation_platform/segmentation_platform_service_factory.h"
  #include "chrome/browser/segmentation_platform/segmentation_platform_service_factory.h"
-@@ -297,7 +296,6 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -298,7 +297,6 @@ void ChromeBrowserMainExtraPartsProfiles::
  #if BUILDFLAG(IS_CHROMEOS_LACROS)
  #if BUILDFLAG(IS_CHROMEOS_LACROS)
    CertDbInitializerFactory::GetInstance();
    CertDbInitializerFactory::GetInstance();
  #endif
  #endif
@@ -1941,7 +1943,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
  #include "chrome/browser/sessions/exit_type_service.h"
  #include "chrome/browser/sessions/exit_type_service.h"
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/sharing/sharing_service_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
  #include "chrome/browser/signin/identity_manager_factory.h"
-@@ -627,6 +626,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) {
+@@ -628,6 +627,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) {
  
  
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
    mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
        pref_validation_delegate;
        pref_validation_delegate;
@@ -1949,7 +1951,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
    scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service(
    scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service(
        g_browser_process->safe_browsing_service());
        g_browser_process->safe_browsing_service());
    if (safe_browsing_service.get()) {
    if (safe_browsing_service.get()) {
-@@ -638,7 +638,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) {
+@@ -639,7 +639,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) {
            pref_validation_delegate.InitWithNewPipeAndPassReceiver());
            pref_validation_delegate.InitWithNewPipeAndPassReceiver());
      }
      }
    }
    }
@@ -1985,7 +1987,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin
  
  
    if (safe_browsing_mode != 0) {
    if (safe_browsing_mode != 0) {
      # "Safe Browsing Basic" files used for safe browsing in full mode
      # "Safe Browsing Basic" files used for safe browsing in full mode
-@@ -162,7 +163,6 @@ static_library("safe_browsing") {
+@@ -164,7 +165,6 @@ static_library("safe_browsing") {
        "//components/safe_browsing/content/browser/triggers:ad_sampler_trigger",
        "//components/safe_browsing/content/browser/triggers:ad_sampler_trigger",
        "//components/safe_browsing/content/browser/triggers:suspicious_site_trigger",
        "//components/safe_browsing/content/browser/triggers:suspicious_site_trigger",
        "//components/safe_browsing/content/browser/triggers:trigger_throttler",
        "//components/safe_browsing/content/browser/triggers:trigger_throttler",
@@ -2094,11 +2096,10 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b
 diff --git a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
 diff --git a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
 --- a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
 --- a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
 +++ b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
 +++ b/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc
-@@ -31,57 +31,4 @@ PrefService* GetPrefService() {
- }  // namespace
+@@ -32,56 +32,4 @@ PrefService* GetPrefService() {
  
  
  namespace safe_browsing {
  namespace safe_browsing {
--
+ 
 -static jint JNI_SafeBrowsingBridge_UmaValueForFile(
 -static jint JNI_SafeBrowsingBridge_UmaValueForFile(
 -    JNIEnv* env,
 -    JNIEnv* env,
 -    const base::android::JavaParamRef<jstring>& path) {
 -    const base::android::JavaParamRef<jstring>& path) {
@@ -2147,7 +2148,7 @@ diff --git a/chrome/browser/safe_browsing/android/safe_browsing_bridge.cc b/chro
 -  signin::IdentityManager* identity_manager =
 -  signin::IdentityManager* identity_manager =
 -      IdentityManagerFactory::GetForProfile(
 -      IdentityManagerFactory::GetForProfile(
 -          ProfileManager::GetLastUsedProfile());
 -          ProfileManager::GetLastUsedProfile());
--  return password_manager::AuthenticatedLeakCheck::HasAccountForRequest(
+-  return password_manager::LeakDetectionCheckImpl::HasAccountForRequest(
 -      identity_manager);
 -      identity_manager);
 -}
 -}
 -
 -
@@ -2213,7 +2214,7 @@ diff --git a/chrome/browser/safe_browsing/url_lookup_service_factory.cc b/chrome
 diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
 diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
 --- a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
 --- a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
 +++ b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
 +++ b/chrome/browser/safety_check/android/java/src/org/chromium/chrome/browser/safety_check/SafetyCheckMediator.java
-@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerHelper;
+@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerHelper;
  import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
  import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
  import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  import org.chromium.chrome.browser.safe_browsing.metrics.SettingsAccessPoint;
  import org.chromium.chrome.browser.safe_browsing.metrics.SettingsAccessPoint;
@@ -2221,7 +2222,7 @@ diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/br
  import org.chromium.chrome.browser.safety_check.SafetyCheckProperties.PasswordsState;
  import org.chromium.chrome.browser.safety_check.SafetyCheckProperties.PasswordsState;
  import org.chromium.chrome.browser.safety_check.SafetyCheckProperties.SafeBrowsingState;
  import org.chromium.chrome.browser.safety_check.SafetyCheckProperties.SafeBrowsingState;
  import org.chromium.chrome.browser.safety_check.SafetyCheckProperties.UpdatesState;
  import org.chromium.chrome.browser.safety_check.SafetyCheckProperties.UpdatesState;
-@@ -177,18 +176,6 @@ class SafetyCheckMediator implements PasswordCheck.Observer {
+@@ -176,18 +175,6 @@ class SafetyCheckMediator implements PasswordCheck.Observer {
          // Set the listener for clicking the Safe Browsing element.
          // Set the listener for clicking the Safe Browsing element.
          mModel.set(SafetyCheckProperties.SAFE_BROWSING_CLICK_LISTENER,
          mModel.set(SafetyCheckProperties.SAFE_BROWSING_CLICK_LISTENER,
                  (Preference.OnPreferenceClickListener) (p) -> {
                  (Preference.OnPreferenceClickListener) (p) -> {
@@ -2240,40 +2241,6 @@ diff --git a/chrome/browser/safety_check/android/java/src/org/chromium/chrome/br
                      return true;
                      return true;
                  });
                  });
          // Set the listener for clicking the passwords element.
          // Set the listener for clicking the passwords element.
-diff --git a/chrome/browser/signin/ui/android/java/res/layout/fre_uma_dialog.xml b/chrome/browser/signin/ui/android/java/res/layout/fre_uma_dialog.xml
---- a/chrome/browser/signin/ui/android/java/res/layout/fre_uma_dialog.xml
-+++ b/chrome/browser/signin/ui/android/java/res/layout/fre_uma_dialog.xml
-@@ -22,17 +22,6 @@
-             android:text="@string/signin_fre_uma_dialog_title"
-             style="@style/TextAppearance.Headline.Primary" />
- 
--        <Switch
--            android:id="@+id/fre_uma_dialog_switch"
--            android:layout_width="match_parent"
--            android:layout_height="wrap_content"
--            android:layout_marginBottom="12dp"
--            android:text="@string/usage_and_crash_reports_title"
--            android:checked="true"
--            android:gravity="start|center"
--            android:lineSpacingMultiplier="1.2"
--            style="@style/TextAppearance.TextLarge.Primary" />
--
-         <TextView
-             android:layout_width="match_parent"
-             android:layout_height="wrap_content"
-diff --git a/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/fre/FreUMADialogCoordinator.java b/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/fre/FreUMADialogCoordinator.java
---- a/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/fre/FreUMADialogCoordinator.java
-+++ b/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/fre/FreUMADialogCoordinator.java
-@@ -68,9 +68,6 @@ public class FreUMADialogCoordinator {
-                 .setOnClickListener(v
-                         -> mDialogManager.dismissDialog(
-                                 mModel, DialogDismissalCause.ACTION_ON_CONTENT));
--        Switch umaSwitch = view.findViewById(R.id.fre_uma_dialog_switch);
--        umaSwitch.setOnCheckedChangeListener(
--                (compoundButton, isChecked) -> listener.onAllowCrashUploadChecked(isChecked));
-         return view;
-     }
- 
 diff --git a/chrome/browser/ssl/sct_reporting_service_factory.cc b/chrome/browser/ssl/sct_reporting_service_factory.cc
 diff --git a/chrome/browser/ssl/sct_reporting_service_factory.cc b/chrome/browser/ssl/sct_reporting_service_factory.cc
 --- a/chrome/browser/ssl/sct_reporting_service_factory.cc
 --- a/chrome/browser/ssl/sct_reporting_service_factory.cc
 +++ b/chrome/browser/ssl/sct_reporting_service_factory.cc
 +++ b/chrome/browser/ssl/sct_reporting_service_factory.cc
@@ -2313,7 +2280,7 @@ diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ss
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/ssl/https_only_mode_tab_helper.h"
  #include "chrome/browser/ssl/https_only_mode_tab_helper.h"
  #include "chrome/browser/ssl/known_interception_disclosure_infobar_delegate.h"
  #include "chrome/browser/ssl/known_interception_disclosure_infobar_delegate.h"
-@@ -104,13 +103,8 @@ SecurityStateTabHelper::GetVisibleSecurityState() {
+@@ -103,13 +102,8 @@ SecurityStateTabHelper::GetVisibleSecurityState() {
    // information is still being initialized, thus no need to check for that.
    // information is still being initialized, thus no need to check for that.
    state->malicious_content_status = GetMaliciousContentStatus();
    state->malicious_content_status = GetMaliciousContentStatus();
  
  
@@ -2327,8 +2294,8 @@ diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ss
 +          security_state::SafetyTipInfo(
 +          security_state::SafetyTipInfo(
                  {security_state::SafetyTipStatus::kUnknown, GURL()});
                  {security_state::SafetyTipStatus::kUnknown, GURL()});
  
  
-   // If both the on-form warning and the on-submit warning are enabled for mixed
-@@ -217,6 +211,7 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const {
+   // If both the mixed form warnings are not disabled by policy we don't degrade
+@@ -210,6 +204,7 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const {
  
  
  security_state::MaliciousContentStatus
  security_state::MaliciousContentStatus
  SecurityStateTabHelper::GetMaliciousContentStatus() const {
  SecurityStateTabHelper::GetMaliciousContentStatus() const {
@@ -2336,7 +2303,7 @@ diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ss
    content::NavigationEntry* entry =
    content::NavigationEntry* entry =
        web_contents()->GetController().GetVisibleEntry();
        web_contents()->GetController().GetVisibleEntry();
    if (!entry)
    if (!entry)
-@@ -300,6 +295,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
+@@ -293,6 +288,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const {
          break;
          break;
      }
      }
    }
    }
@@ -2373,7 +2340,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/password_protection",
      "//components/safe_browsing/content/browser/web_ui",
      "//components/safe_browsing/content/browser/web_ui",
      "//components/safe_browsing/core/browser/db:database_manager",
      "//components/safe_browsing/core/browser/db:database_manager",
-@@ -3946,7 +3945,6 @@ static_library("ui") {
+@@ -3957,7 +3956,6 @@ static_library("ui") {
        "views/device_chooser_content_view.h",
        "views/device_chooser_content_view.h",
        "views/devtools_process_observer.cc",
        "views/devtools_process_observer.cc",
        "views/devtools_process_observer.h",
        "views/devtools_process_observer.h",
@@ -2381,6 +2348,41 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
        "views/download/download_in_progress_dialog_view.cc",
        "views/download/download_in_progress_dialog_view.cc",
        "views/download/download_in_progress_dialog_view.h",
        "views/download/download_in_progress_dialog_view.h",
        "views/download/download_item_view.cc",
        "views/download/download_item_view.cc",
+diff --git a/chrome/browser/ui/android/signin/java/res/layout/fre_uma_dialog.xml b/chrome/browser/ui/android/signin/java/res/layout/fre_uma_dialog.xml
+--- a/chrome/browser/ui/android/signin/java/res/layout/fre_uma_dialog.xml
++++ b/chrome/browser/ui/android/signin/java/res/layout/fre_uma_dialog.xml
+@@ -32,17 +32,6 @@
+                 android:text="@string/signin_fre_uma_dialog_title"
+                 style="@style/TextAppearance.Headline.Primary" />
+ 
+-            <Switch
+-                android:id="@+id/fre_uma_dialog_switch"
+-                android:layout_width="match_parent"
+-                android:layout_height="wrap_content"
+-                android:layout_marginBottom="12dp"
+-                android:text="@string/usage_and_crash_reports_title"
+-                android:checked="true"
+-                android:gravity="start|center"
+-                android:lineSpacingMultiplier="1.2"
+-                style="@style/TextAppearance.TextLarge.Primary" />
+-
+             <TextView
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/FreUMADialogCoordinator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/FreUMADialogCoordinator.java
+--- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/FreUMADialogCoordinator.java
++++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fre/FreUMADialogCoordinator.java
+@@ -53,10 +53,6 @@ public class FreUMADialogCoordinator {
+         mView.findViewById(R.id.fre_uma_dialog_dismiss_button).setOnClickListener(v -> {
+             mDialogManager.dismissDialog(mModel, DialogDismissalCause.ACTION_ON_CONTENT);
+         });
+-        final Switch umaSwitch = mView.findViewById(R.id.fre_uma_dialog_switch);
+-        umaSwitch.setChecked(allowCrashUpload);
+-        umaSwitch.setOnCheckedChangeListener(
+-                (compoundButton, isChecked) -> listener.onAllowCrashUploadChecked(isChecked));
+ 
+         mDialogManager.showDialog(mModel, ModalDialogType.APP);
+     }
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2397,7 +2399,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
  
  
        <!-- Metrics settings -->
        <!-- Metrics settings -->
        <message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
        <message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
-@@ -4536,9 +4530,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4549,9 +4543,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          To use this setting <ph name="BEGIN_LINK">&lt;link&gt;</ph>Make searches and browsing better<ph name="END_LINK">&lt;/link&gt;</ph> must be turned on
          To use this setting <ph name="BEGIN_LINK">&lt;link&gt;</ph>Make searches and browsing better<ph name="END_LINK">&lt;/link&gt;</ph> must be turned on
        </message>
        </message>
        <!-- Usage Stats strings -->
        <!-- Usage Stats strings -->
@@ -2436,7 +2438,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
  #include "components/site_engagement/content/site_engagement_helper.h"
  #include "components/site_engagement/content/site_engagement_helper.h"
  #include "components/site_engagement/content/site_engagement_service.h"
  #include "components/site_engagement/content/site_engagement_service.h"
  #include "components/sync/engine/sync_engine_switches.h"
  #include "components/sync/engine/sync_engine_switches.h"
-@@ -330,17 +332,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -343,17 +345,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
    //     See https://crbug.com/910288.
    //     See https://crbug.com/910288.
    resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
    resource_coordinator::ResourceCoordinatorTabHelper::CreateForWebContents(
        web_contents);
        web_contents);
@@ -2547,7 +2549,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -97,7 +97,9 @@
+@@ -98,7 +98,9 @@
  #include "components/page_load_metrics/renderer/metrics_render_frame_observer.h"
  #include "components/page_load_metrics/renderer/metrics_render_frame_observer.h"
  #include "components/paint_preview/buildflags/buildflags.h"
  #include "components/paint_preview/buildflags/buildflags.h"
  #include "components/safe_browsing/buildflags.h"
  #include "components/safe_browsing/buildflags.h"
@@ -2560,7 +2562,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
 diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
 --- a/chrome/test/BUILD.gn
 --- a/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
 +++ b/chrome/test/BUILD.gn
-@@ -1196,7 +1196,6 @@ if (!is_android && !is_fuchsia) {
+@@ -1205,7 +1205,6 @@ if (!is_android && !is_fuchsia) {
        "//components/resources",
        "//components/resources",
        "//components/safe_browsing:buildflags",
        "//components/safe_browsing:buildflags",
        "//components/safe_browsing/content/browser",
        "//components/safe_browsing/content/browser",
@@ -2568,7 +2570,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
        "//components/safe_browsing/content/browser:safe_browsing_service",
        "//components/safe_browsing/content/browser:safe_browsing_service",
        "//components/safe_browsing/content/browser/password_protection",
        "//components/safe_browsing/content/browser/password_protection",
        "//components/safe_browsing/content/browser/password_protection:test_support",
        "//components/safe_browsing/content/browser/password_protection:test_support",
-@@ -5349,7 +5348,6 @@ test("unit_tests") {
+@@ -5405,7 +5404,6 @@ test("unit_tests") {
      "//components/resources",
      "//components/resources",
      "//components/safe_browsing:buildflags",
      "//components/safe_browsing:buildflags",
      "//components/safe_browsing/content/browser",
      "//components/safe_browsing/content/browser",
@@ -2591,7 +2593,7 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen
 diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
 diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
 --- a/components/permissions/permission_request_manager.cc
 --- a/components/permissions/permission_request_manager.cc
 +++ b/components/permissions/permission_request_manager.cc
 +++ b/components/permissions/permission_request_manager.cc
-@@ -533,10 +533,7 @@ PermissionRequestManager::PermissionRequestManager(
+@@ -557,10 +557,7 @@ PermissionRequestManager::PermissionRequestManager(
        view_(nullptr),
        view_(nullptr),
        tab_is_hidden_(web_contents->GetVisibility() ==
        tab_is_hidden_(web_contents->GetVisibility() ==
                       content::Visibility::HIDDEN),
                       content::Visibility::HIDDEN),
@@ -2606,7 +2608,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
 diff --git a/components/safe_browsing/content/browser/BUILD.gn b/components/safe_browsing/content/browser/BUILD.gn
 diff --git a/components/safe_browsing/content/browser/BUILD.gn b/components/safe_browsing/content/browser/BUILD.gn
 --- a/components/safe_browsing/content/browser/BUILD.gn
 --- a/components/safe_browsing/content/browser/BUILD.gn
 +++ b/components/safe_browsing/content/browser/BUILD.gn
 +++ b/components/safe_browsing/content/browser/BUILD.gn
-@@ -145,7 +145,6 @@ source_set("unit_tests") {
+@@ -140,7 +140,6 @@ source_set("unit_tests") {
    ]
    ]
  
  
    deps = [
    deps = [
@@ -2630,7 +2632,7 @@ diff --git a/components/safe_browsing/content/common/file_type_policies.cc b/com
 diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc
 diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc
 --- a/components/safe_browsing/core/common/features.cc
 --- a/components/safe_browsing/core/common/features.cc
 +++ b/components/safe_browsing/core/common/features.cc
 +++ b/components/safe_browsing/core/common/features.cc
-@@ -134,7 +134,7 @@ constexpr base::FeatureParam<bool> kShouldFillOldPhishGuardProto{
+@@ -126,7 +126,7 @@ constexpr base::FeatureParam<bool> kShouldFillOldPhishGuardProto{
      &kPasswordProtectionForSignedInUsers, "DeprecateOldProto", false};
      &kPasswordProtectionForSignedInUsers, "DeprecateOldProto", false};
  
  
  const base::Feature kSuspiciousSiteTriggerQuotaFeature{
  const base::Feature kSuspiciousSiteTriggerQuotaFeature{
@@ -2701,9 +2703,9 @@ diff --git a/content/browser/file_system_access/file_system_access_file_writer_i
        auto_close_(auto_close) {
        auto_close_(auto_close) {
    DCHECK_EQ(swap_url.type(), url.type());
    DCHECK_EQ(swap_url.type(), url.type());
    DCHECK_EQ(lock_->type(),
    DCHECK_EQ(lock_->type(),
-@@ -252,7 +251,7 @@ void FileSystemAccessFileWriterImpl::CloseImpl(CloseCallback callback) {
-       /*dest_url=*/url(),
-       FileSystemOperation::OPTION_PRESERVE_DESTINATION_PERMISSIONS,
+@@ -254,7 +253,7 @@ void FileSystemAccessFileWriterImpl::CloseImpl(CloseCallback callback) {
+           FileSystemOperation::CopyOrMoveOption::
+               kPreserveDestinationPermissions),
        std::move(quarantine_connection_callback_),
        std::move(quarantine_connection_callback_),
 -      has_transient_user_activation_);
 -      has_transient_user_activation_);
 +      false);
 +      false);
@@ -2729,7 +2731,7 @@ diff --git a/content/browser/file_system_access/safe_move_helper.cc b/content/br
 +++ b/content/browser/file_system_access/safe_move_helper.cc
 +++ b/content/browser/file_system_access/safe_move_helper.cc
 @@ -135,8 +135,7 @@ SafeMoveHelper::SafeMoveHelper(
 @@ -135,8 +135,7 @@ SafeMoveHelper::SafeMoveHelper(
        dest_url_(dest_url),
        dest_url_(dest_url),
-       option_(option),
+       options_(options),
        quarantine_connection_callback_(
        quarantine_connection_callback_(
 -          std::move(quarantine_connection_callback)),
 -          std::move(quarantine_connection_callback)),
 -      has_transient_user_activation_(has_transient_user_activation) {}
 -      has_transient_user_activation_(has_transient_user_activation) {}
@@ -2841,7 +2843,7 @@ diff --git a/content/public/browser/file_system_access_permission_context.h b/co
 diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
 diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
 --- a/weblayer/BUILD.gn
 --- a/weblayer/BUILD.gn
 +++ b/weblayer/BUILD.gn
 +++ b/weblayer/BUILD.gn
-@@ -463,7 +463,6 @@ source_set("weblayer_lib_base") {
+@@ -461,7 +461,6 @@ source_set("weblayer_lib_base") {
      "//components/prefs",
      "//components/prefs",
      "//components/profile_metrics",
      "//components/profile_metrics",
      "//components/safe_browsing/content/browser",
      "//components/safe_browsing/content/browser",
@@ -2860,3 +2862,5 @@ diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn
        "//components/safe_browsing/content/common:interfaces",
        "//components/safe_browsing/content/common:interfaces",
        "//components/safe_browsing/core/browser:token_fetcher",
        "//components/safe_browsing/core/browser:token_fetcher",
        "//components/safe_browsing/core/common",
        "//components/safe_browsing/core/common",
+--
+2.25.1

+ 2 - 0
build/patches/Disable-search-engine-DSE-automatic-permission.patch

@@ -18,3 +18,5 @@ diff --git a/components/permissions/features.cc b/components/permissions/feature
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
  
  
  }  // namespace features
  }  // namespace features
+--
+2.25.1

+ 5 - 3
build/patches/Disable-smart-selection-by-default.patch

@@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -182,6 +182,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -185,6 +185,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &kCCTClientDataHeader,
      &kCCTClientDataHeader,
      &kCCTExternalLinkHandling,
      &kCCTExternalLinkHandling,
      &kCCTIncognito,
      &kCCTIncognito,
@@ -51,7 +51,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &kCCTIncognitoAvailableToThirdParty,
      &kCCTIncognitoAvailableToThirdParty,
      &kCCTPostMessageAPI,
      &kCCTPostMessageAPI,
      &kCCTRedirectPreconnect,
      &kCCTRedirectPreconnect,
-@@ -500,6 +501,9 @@ const base::Feature kChromeSharingHubLaunchAdjacent{
+@@ -505,6 +506,9 @@ const base::Feature kChromeSharingHubLaunchAdjacent{
  const base::Feature kChromeSurveyNextAndroid{"ChromeSurveyNextAndroid",
  const base::Feature kChromeSurveyNextAndroid{"ChromeSurveyNextAndroid",
                                               base::FEATURE_ENABLED_BY_DEFAULT};
                                               base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -98,7 +98,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
 diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
 diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
 --- a/testing/variations/fieldtrial_testing_config.json
 --- a/testing/variations/fieldtrial_testing_config.json
 +++ b/testing/variations/fieldtrial_testing_config.json
 +++ b/testing/variations/fieldtrial_testing_config.json
-@@ -1975,6 +1975,21 @@
+@@ -2131,6 +2131,21 @@
              ]
              ]
          }
          }
      ],
      ],
@@ -120,3 +120,5 @@ diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variati
      "ChromeStart": [
      "ChromeStart": [
          {
          {
              "platforms": [
              "platforms": [
+--
+2.25.1

+ 7 - 5
build/patches/Disable-some-signed-exchange-features.patch

@@ -9,21 +9,23 @@ Subject: Disable some signed exchange features
 diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
 diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
 --- a/content/public/common/content_features.cc
 --- a/content/public/common/content_features.cc
 +++ b/content/public/common/content_features.cc
 +++ b/content/public/common/content_features.cc
-@@ -701,7 +701,7 @@ const base::Feature kSharedArrayBufferOnDesktop{
+@@ -726,7 +726,7 @@ const base::Feature kSharedArrayBufferOnDesktop{
  // Signed Exchange Reporting for distributors
  // Signed Exchange Reporting for distributors
- // https://www.chromestatus.com/features/5687904902840320
+ // https://www.chromestatus.com/feature/5687904902840320
  const base::Feature kSignedExchangeReportingForDistributors{
  const base::Feature kSignedExchangeReportingForDistributors{
 -    "SignedExchangeReportingForDistributors", base::FEATURE_ENABLED_BY_DEFAULT};
 -    "SignedExchangeReportingForDistributors", base::FEATURE_ENABLED_BY_DEFAULT};
 +    "SignedExchangeReportingForDistributors", base::FEATURE_DISABLED_BY_DEFAULT};
 +    "SignedExchangeReportingForDistributors", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  // Subresource prefetching+loading via Signed HTTP Exchange
  // Subresource prefetching+loading via Signed HTTP Exchange
- // https://www.chromestatus.com/features/5126805474246656
-@@ -711,7 +711,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
+ // https://www.chromestatus.com/feature/5126805474246656
+@@ -736,7 +736,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
  // Origin-Signed HTTP Exchanges (for WebPackage Loading)
  // Origin-Signed HTTP Exchanges (for WebPackage Loading)
- // https://www.chromestatus.com/features/5745285984681984
+ // https://www.chromestatus.com/feature/5745285984681984
  const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",
  const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",
 -                                        base::FEATURE_ENABLED_BY_DEFAULT};
 -                                        base::FEATURE_ENABLED_BY_DEFAULT};
 +                                        base::FEATURE_DISABLED_BY_DEFAULT};
 +                                        base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  // Whether to send a ping to the inner URL upon navigation or not.
  // Whether to send a ping to the inner URL upon navigation or not.
  const base::Feature kSignedHTTPExchangePingValidity{
  const base::Feature kSignedHTTPExchangePingValidity{
+--
+2.25.1

+ 2 - 0
build/patches/Disable-support-for-RAR-files-inspection.patch

@@ -91,3 +91,5 @@ diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/service
 -      std::move(rar_file), std::move(temporary_file), &results);
 -      std::move(rar_file), std::move(temporary_file), &results);
    std::move(callback).Run(results);
    std::move(callback).Run(results);
  }
  }
+--
+2.25.1

+ 12 - 14
build/patches/Disable-text-fragments-by-default.patch

@@ -17,7 +17,7 @@ Revert "[Text Fragment] Unflag fragment directive removal."
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -5538,6 +5538,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5629,6 +5629,7 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kSharingHubDesktopOmniboxDescription, kOsDesktop,
       flag_descriptions::kSharingHubDesktopOmniboxDescription, kOsDesktop,
       FEATURE_VALUE_TYPE(sharing_hub::kSharingHubDesktopOmnibox)},
       FEATURE_VALUE_TYPE(sharing_hub::kSharingHubDesktopOmnibox)},
  #endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
  #endif  // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
@@ -28,7 +28,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
 --- a/chrome/browser/flag-metadata.json
 --- a/chrome/browser/flag-metadata.json
 +++ b/chrome/browser/flag-metadata.json
 +++ b/chrome/browser/flag-metadata.json
-@@ -2961,7 +2961,7 @@
+@@ -2989,7 +2989,7 @@
    {
    {
      "name": "ev-details-in-page-info",
      "name": "ev-details-in-page-info",
      "owners": [ "cthomp" ],
      "owners": [ "cthomp" ],
@@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -263,6 +263,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
+@@ -264,6 +264,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
      {wf::EnableMouseSubframeNoImplicitCapture,
      {wf::EnableMouseSubframeNoImplicitCapture,
       features::kMouseSubframeNoImplicitCapture},
       features::kMouseSubframeNoImplicitCapture},
      {wf::EnableNeverSlowMode, features::kNeverSlowMode},
      {wf::EnableNeverSlowMode, features::kNeverSlowMode},
@@ -63,7 +63,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -387,7 +387,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
+@@ -393,7 +393,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
  
  
  // Enable text snippets in URL fragments. https://crbug.com/919204.
  // Enable text snippets in URL fragments. https://crbug.com/919204.
  const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
  const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
@@ -75,9 +75,9 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
 --- a/third_party/blink/renderer/core/dom/document.cc
 --- a/third_party/blink/renderer/core/dom/document.cc
 +++ b/third_party/blink/renderer/core/dom/document.cc
 +++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -4062,6 +4062,10 @@ void Document::SetURL(const KURL& url) {
-     }
-   }
+@@ -4033,9 +4033,14 @@ void Document::SetURL(const KURL& url) {
+   TRACE_EVENT1("navigation", "Document::SetURL", "url",
+                new_url.GetString().Utf8());
  
  
 +  // If text fragment identifiers are enabled, we strip the fragment directive
 +  // If text fragment identifiers are enabled, we strip the fragment directive
 +  // from the URL fragment.
 +  // from the URL fragment.
@@ -85,11 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
 +  if (RuntimeEnabledFeatures::TextFragmentIdentifiersEnabled(domWindow())) {
 +  if (RuntimeEnabledFeatures::TextFragmentIdentifiersEnabled(domWindow())) {
    // Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
    // Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
    // --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
    // --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
-   String fragment = new_url.FragmentIdentifier();
-@@ -4075,6 +4079,7 @@ void Document::SetURL(const KURL& url) {
-     else
-       new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
-   }
+   new_url = fragment_directive_->ConsumeFragmentDirective(new_url);
 +  }
 +  }
  
  
    url_ = new_url;
    url_ = new_url;
@@ -97,7 +93,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
 diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
 diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
 --- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
 --- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
 +++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
 +++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
-@@ -1249,34 +1249,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
+@@ -1252,34 +1252,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
    // result of the element-id fragment if a text directive is successfully
    // result of the element-id fragment if a text directive is successfully
    // parsed. If the feature is off we treat the text directive as an element-id
    // parsed. If the feature is off we treat the text directive as an element-id
    // and should count the result.
    // and should count the result.
@@ -145,7 +141,7 @@ diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -2178,8 +2178,7 @@
+@@ -2222,8 +2222,7 @@
      },
      },
      {
      {
        name: "TextFragmentIdentifiers",
        name: "TextFragmentIdentifiers",
@@ -155,3 +151,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
      },
      },
      {
      {
        name: "TextFragmentTapOpensContextMenu",
        name: "TextFragmentTapOpensContextMenu",
+--
+2.25.1

+ 2 - 0
build/patches/Disable-the-DIAL-repeating-discovery.patch

@@ -30,3 +30,5 @@ diff --git a/chrome/browser/media/router/discovery/dial/dial_registry.cc b/chrom
    dial_->RemoveObserver(this);
    dial_->RemoveObserver(this);
    ClearDialService();
    ClearDialService();
  }
  }
+--
+2.25.1

+ 2 - 0
build/patches/Disable-third-party-cookies-by-default.patch

@@ -18,3 +18,5 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
        user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
  }
  }
  
  
+--
+2.25.1

+ 11 - 9
build/patches/Disable-third-party-origin-trials.patch

@@ -59,7 +59,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl.
 diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
 diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
 --- a/content/browser/renderer_host/navigation_request.cc
 --- a/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
-@@ -6522,7 +6522,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() {
+@@ -6588,7 +6588,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() {
  void NavigationRequest::ForceEnableOriginTrials(
  void NavigationRequest::ForceEnableOriginTrials(
      const std::vector<std::string>& trials) {
      const std::vector<std::string>& trials) {
    DCHECK(!HasCommitted());
    DCHECK(!HasCommitted());
@@ -70,7 +70,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows
 diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
 diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
 --- a/content/renderer/render_frame_impl.cc
 --- a/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
 +++ b/content/renderer/render_frame_impl.cc
-@@ -469,10 +469,6 @@ void FillNavigationParamsRequest(
+@@ -470,10 +470,6 @@ void FillNavigationParamsRequest(
          common_params.initiator_origin.value();
          common_params.initiator_origin.value();
    }
    }
  
  
@@ -81,7 +81,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
    navigation_params->was_discarded = commit_params.was_discarded;
    navigation_params->was_discarded = commit_params.was_discarded;
    navigation_params->document_ukm_source_id =
    navigation_params->document_ukm_source_id =
        commit_params.document_ukm_source_id;
        commit_params.document_ukm_source_id;
-@@ -505,12 +501,6 @@ void FillNavigationParamsRequest(
+@@ -506,12 +502,6 @@ void FillNavigationParamsRequest(
    navigation_params->web_bundle_claimed_url =
    navigation_params->web_bundle_claimed_url =
        commit_params.web_bundle_claimed_url;
        commit_params.web_bundle_claimed_url;
  
  
@@ -94,7 +94,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
    if (!commit_params.early_hints_preloaded_resources.empty()) {
    if (!commit_params.early_hints_preloaded_resources.empty()) {
      navigation_params->early_hints_preloaded_resources = WebVector<WebURL>();
      navigation_params->early_hints_preloaded_resources = WebVector<WebURL>();
      for (const auto& resource : commit_params.early_hints_preloaded_resources) {
      for (const auto& resource : commit_params.early_hints_preloaded_resources) {
-@@ -556,11 +546,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
+@@ -558,11 +548,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
            info->url_request.GetURLRequestExtraData().get());
            info->url_request.GetURLRequestExtraData().get());
    DCHECK(url_request_extra_data);
    DCHECK(url_request_extra_data);
  
  
@@ -106,15 +106,15 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
    blink::NavigationDownloadPolicy download_policy;
    blink::NavigationDownloadPolicy download_policy;
    download_policy.ApplyDownloadFramePolicy(
    download_policy.ApplyDownloadFramePolicy(
        info->is_opener_navigation, info->url_request.HasUserGesture(),
        info->is_opener_navigation, info->url_request.HasUserGesture(),
-@@ -579,7 +564,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
+@@ -581,7 +566,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
        info->url_request.HasUserGesture(),
        info->url_request.HasUserGesture(),
        info->url_request.HasTextFragmentToken(),
        info->url_request.HasTextFragmentToken(),
        info->should_check_main_world_content_security_policy,
        info->should_check_main_world_content_security_policy,
 -      initiator_origin_trial_features, info->href_translate.Latin1(),
 -      initiator_origin_trial_features, info->href_translate.Latin1(),
 +      /*initiator_origin_trial_features*/std::vector<int>(), info->href_translate.Latin1(),
 +      /*initiator_origin_trial_features*/std::vector<int>(), info->href_translate.Latin1(),
-       is_history_navigation_in_new_child_frame, info->input_start);
+       is_history_navigation_in_new_child_frame, info->input_start,
+       request_destination);
  }
  }
- 
 diff --git a/content/shell/common/shell_origin_trial_policy.cc b/content/shell/common/shell_origin_trial_policy.cc
 diff --git a/content/shell/common/shell_origin_trial_policy.cc b/content/shell/common/shell_origin_trial_policy.cc
 --- a/content/shell/common/shell_origin_trial_policy.cc
 --- a/content/shell/common/shell_origin_trial_policy.cc
 +++ b/content/shell/common/shell_origin_trial_policy.cc
 +++ b/content/shell/common/shell_origin_trial_policy.cc
@@ -179,7 +179,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
    return result;
    return result;
  }
  }
  
  
-@@ -2432,10 +2419,6 @@ void DocumentLoader::CreateParserPostCommit() {
+@@ -2450,10 +2437,6 @@ void DocumentLoader::CreateParserPostCommit() {
            OriginTrialFeature::kTouchEventFeatureDetection);
            OriginTrialFeature::kTouchEventFeatureDetection);
      }
      }
  
  
@@ -251,7 +251,7 @@ diff --git a/third_party/blink/renderer/core/origin_trials/origin_trial_context.
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -2188,10 +2188,6 @@
+@@ -2232,10 +2232,6 @@
        name: "TextFragmentTapOpensContextMenu",
        name: "TextFragmentTapOpensContextMenu",
        status: {"Android": "stable"},
        status: {"Android": "stable"},
      },
      },
@@ -262,3 +262,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
      {
      {
        name: "ThrottleDisplayNoneAndVisibilityHiddenCrossOriginIframes",
        name: "ThrottleDisplayNoneAndVisibilityHiddenCrossOriginIframes",
        status: "experimental",
        status: "experimental",
+--
+2.25.1

+ 3 - 1
build/patches/Disable-unified-autoplay-feature.patch

@@ -9,7 +9,7 @@ Subject: Disable unified autoplay feature
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -490,7 +490,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
+@@ -491,7 +491,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
  // Enables the Unified Autoplay policy by overriding the platform's default
  // Enables the Unified Autoplay policy by overriding the platform's default
  // autoplay policy.
  // autoplay policy.
  const base::Feature kUnifiedAutoplay{"UnifiedAutoplay",
  const base::Feature kUnifiedAutoplay{"UnifiedAutoplay",
@@ -18,3 +18,5 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
  
  
  #if defined(OS_LINUX)
  #if defined(OS_LINUX)
  // Enable vaapi video decoding on linux. This is already enabled by default on
  // Enable vaapi video decoding on linux. This is already enabled by default on
+--
+2.25.1

+ 2 - 0
build/patches/Disable-update-scheduler.patch

@@ -20,3 +20,5 @@ diff --git a/components/component_updater/android/java/src/org/chromium/componen
      }
      }
  
  
      /* package */ void onStartTaskBeforeNativeLoaded(TaskFinishedCallback callback) {
      /* package */ void onStartTaskBeforeNativeLoaded(TaskFinishedCallback callback) {
+--
+2.25.1

+ 89 - 0
build/patches/Disable-various-metrics.patch

@@ -0,0 +1,89 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Wed, 16 Feb 2022 11:32:33 +0100
+Subject: Disable various metrics
+
+Including initial metrics opt-out
+---
+ .../browser/firstrun/FirstRunActivityBase.java    |  2 +-
+ chrome/browser/chrome_content_browser_client.cc   | 15 ---------------
+ .../chrome_metrics_services_manager_client.cc     |  2 +-
+ services/metrics/public/cpp/ukm_recorder.cc       |  2 +-
+ 4 files changed, 3 insertions(+), 18 deletions(-)
+
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
+@@ -44,7 +44,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
+     static final String SHOW_SEARCH_ENGINE_PAGE = "ShowSearchEnginePage";
+     static final String SHOW_SYNC_CONSENT_PAGE = "ShowSyncConsent";
+ 
+-    public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = true;
++    public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = false;
+ 
+     private boolean mNativeInitialized;
+ 
+diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
+--- a/chrome/browser/chrome_content_browser_client.cc
++++ b/chrome/browser/chrome_content_browser_client.cc
+@@ -62,7 +62,6 @@
+ #include "chrome/browser/hid/chrome_hid_delegate.h"
+ #include "chrome/browser/interstitials/enterprise_util.h"
+ #include "chrome/browser/lifetime/browser_shutdown.h"
+-#include "chrome/browser/lookalikes/lookalike_url_navigation_throttle.h"
+ #include "chrome/browser/media/audio_service_util.h"
+ #include "chrome/browser/media/router/media_router_feature.h"
+ #include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
+@@ -4091,16 +4090,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+     content::NavigationHandle* handle) {
+   std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
+ 
+-  // MetricsNavigationThrottle requires that it runs before NavigationThrottles
+-  // that may delay or cancel navigations, so only NavigationThrottles that
+-  // don't delay or cancel navigations (e.g. throttles that are only observing
+-  // callbacks without affecting navigation behavior) should be added before
+-  // MetricsNavigationThrottle.
+-  if (handle->IsInMainFrame()) {
+-    throttles.push_back(
+-        page_load_metrics::MetricsNavigationThrottle::Create(handle));
+-  }
+-
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+   MaybeAddThrottle(
+       ash::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
+@@ -4198,10 +4187,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+                    &throttles);
+ #endif
+ 
+-  MaybeAddThrottle(
+-      LookalikeUrlNavigationThrottle::MaybeCreateNavigationThrottle(handle),
+-      &throttles);
+-
+   MaybeAddThrottle(PDFIFrameNavigationThrottle::MaybeCreateThrottleFor(handle),
+                    &throttles);
+ #if BUILDFLAG(ENABLE_PDF)
+diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
+--- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
++++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
+@@ -73,7 +73,7 @@ namespace internal {
+ // recording and reporting are enabled. If the feature is enabled, but no
+ // consent is given, then there will be no recording or reporting.
+ const base::Feature kMetricsReportingFeature{"MetricsReporting",
+-                                             base::FEATURE_ENABLED_BY_DEFAULT};
++                                             base::FEATURE_DISABLED_BY_DEFAULT};
+ 
+ }  // namespace internal
+ }  // namespace metrics
+diff --git a/services/metrics/public/cpp/ukm_recorder.cc b/services/metrics/public/cpp/ukm_recorder.cc
+--- a/services/metrics/public/cpp/ukm_recorder.cc
++++ b/services/metrics/public/cpp/ukm_recorder.cc
+@@ -13,7 +13,7 @@
+ 
+ namespace ukm {
+ 
+-const base::Feature kUkmFeature = {"Ukm", base::FEATURE_ENABLED_BY_DEFAULT};
++const base::Feature kUkmFeature = {"Ukm", base::FEATURE_DISABLED_BY_DEFAULT}; // disabled in Bromite
+ 
+ UkmRecorder::UkmRecorder() = default;
+ 
+--
+2.25.1

+ 3 - 1
build/patches/Do-not-build-API-keys-infobar.patch

@@ -9,7 +9,7 @@ Subject: Do not build API keys infobar
 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
 --- a/chrome/browser/ui/BUILD.gn
 --- a/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
 +++ b/chrome/browser/ui/BUILD.gn
-@@ -1227,8 +1227,6 @@ static_library("ui") {
+@@ -1229,8 +1229,6 @@ static_library("ui") {
        "singleton_tabs.h",
        "singleton_tabs.h",
        "startup/automation_infobar_delegate.cc",
        "startup/automation_infobar_delegate.cc",
        "startup/automation_infobar_delegate.h",
        "startup/automation_infobar_delegate.h",
@@ -18,3 +18,5 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
        "startup/launch_mode_recorder.cc",
        "startup/launch_mode_recorder.cc",
        "startup/launch_mode_recorder.h",
        "startup/launch_mode_recorder.h",
        "startup/obsolete_system_infobar_delegate.cc",
        "startup/obsolete_system_infobar_delegate.cc",
+--
+2.25.1

+ 4 - 2
build/patches/Do-not-compile-QR-code-sharing.patch

@@ -16,10 +16,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
  import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
  import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
  import org.chromium.chrome.browser.share.ShareUtils;
  import org.chromium.chrome.browser.share.ShareUtils;
 -import org.chromium.chrome.browser.share.qrcode.QrCodeDialog;
 -import org.chromium.chrome.browser.share.qrcode.QrCodeDialog;
+ import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager;
  import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
  import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
  import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController;
  import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController;
- import org.chromium.chrome.browser.tab.Tab;
-@@ -421,10 +420,6 @@ public class RootUiCoordinator
+@@ -428,10 +427,6 @@ public class RootUiCoordinator
      }
      }
  
  
      public void onAttachFragment(Fragment fragment) {
      public void onAttachFragment(Fragment fragment) {
@@ -99,3 +99,5 @@ diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/shar
    "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java",
    "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotSource.java",
    "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java",
    "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/EditorScreenshotTask.java",
    "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java",
    "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotCoordinator.java",
+--
+2.25.1

+ 3 - 1
build/patches/Do-not-hide-component-extensions.patch

@@ -9,7 +9,7 @@ Subject: Do not hide component extensions
 diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
 diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
 --- a/extensions/common/extension.cc
 --- a/extensions/common/extension.cc
 +++ b/extensions/common/extension.cc
 +++ b/extensions/common/extension.cc
-@@ -439,9 +439,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
+@@ -440,9 +440,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
  }
  }
  
  
  bool Extension::ShouldExposeViaManagementAPI() const {
  bool Extension::ShouldExposeViaManagementAPI() const {
@@ -21,3 +21,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
  }
  }
  
  
  Extension::ManifestData* Extension::GetManifestData(const std::string& key)
  Extension::ManifestData* Extension::GetManifestData(const std::string& key)
+--
+2.25.1

+ 2 - 0
build/patches/Do-not-ignore-download-location-prompt-setting.patch

@@ -36,3 +36,5 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
          // Already showing the dialog.
          // Already showing the dialog.
          if (mDialogModel != null) return;
          if (mDialogModel != null) return;
  
  
+--
+2.25.1

+ 24 - 0
build/patches/Do-not-link-with-libatomic.patch

@@ -0,0 +1,24 @@
+From: uazo <uazo@users.noreply.github.com>
+Date: Tue, 11 Jan 2022 13:59:32 +0000
+Subject: Do not link with libatomic
+
+Compiler has built-in support thus libatomic linking is no more needed
+This patch allows building with use_sysroot=false
+---
+ base/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/base/BUILD.gn b/base/BUILD.gn
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -1393,7 +1393,7 @@ component("base") {
+   if (!use_sysroot &&
+       (is_android || ((is_linux || is_chromeos) && !is_chromecast)) &&
+       host_toolchain != "//build/toolchain/cros:host") {
+-    libs += [ "atomic" ]
++    #libs += [ "atomic" ]
+   }
+ 
+   if (use_allocator_shim) {
+--
+2.25.1

+ 2 - 0
build/patches/Do-not-store-passwords-by-default.patch

@@ -22,3 +22,5 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp
        user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
        user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
    registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
    registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
                                 PrefRegistry::NO_REGISTRATION_FLAGS);
                                 PrefRegistry::NO_REGISTRATION_FLAGS);
+--
+2.25.1

+ 2 - 0
build/patches/DoH-secure-mode-by-default.patch

@@ -41,3 +41,5 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
      parental_controls_checked_ = true;
      parental_controls_checked_ = true;
    }
    }
  
  
+--
+2.25.1

+ 2 - 0
build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture-by-default.patch

@@ -18,3 +18,5 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/
  
  
  static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) {
  static jlong JNI_ExternalIntentsFeatures_GetFeature(JNIEnv* env, jint ordinal) {
    return reinterpret_cast<jlong>(kFeaturesExposedToJava[ordinal]);
    return reinterpret_cast<jlong>(kFeaturesExposedToJava[ordinal]);
+--
+2.25.1

+ 3 - 1
build/patches/Enable-SPPI-for-devices-with-enough-memory.patch

@@ -10,7 +10,7 @@ Subject: Enable SPPI for devices with enough memory
 diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
 diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
 --- a/chrome/common/chrome_features.cc
 --- a/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
-@@ -922,11 +922,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
+@@ -958,11 +958,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
  // browser_features, as they are only used on the browser side.
  // browser_features, as they are only used on the browser side.
  const base::Feature kSitePerProcess {
  const base::Feature kSitePerProcess {
    "SitePerProcess",
    "SitePerProcess",
@@ -34,3 +34,5 @@ diff --git a/components/site_isolation/features.cc b/components/site_isolation/f
  const char kStrictSiteIsolationMemoryThresholdParamName[] =
  const char kStrictSiteIsolationMemoryThresholdParamName[] =
      "strict_site_isolation_threshold_mb";
      "strict_site_isolation_threshold_mb";
  const char kPartialSiteIsolationMemoryThresholdParamName[] =
  const char kPartialSiteIsolationMemoryThresholdParamName[] =
+--
+2.25.1

+ 4 - 2
build/patches/Enable-darken-websites-checkbox-in-themes.patch

@@ -11,7 +11,7 @@ Unexpire #darken-websites-checkbox-in-themes-setting
 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
 diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
 --- a/chrome/browser/flag-metadata.json
 --- a/chrome/browser/flag-metadata.json
 +++ b/chrome/browser/flag-metadata.json
 +++ b/chrome/browser/flag-metadata.json
-@@ -965,7 +965,7 @@
+@@ -988,7 +988,7 @@
    {
    {
      "name": "darken-websites-checkbox-in-themes-setting",
      "name": "darken-websites-checkbox-in-themes-setting",
      "owners": [ "lazzzis@google.com", "twellington" ],
      "owners": [ "lazzzis@google.com", "twellington" ],
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -571,7 +571,7 @@ const base::Feature kContextualSearchTranslations{
+@@ -579,7 +579,7 @@ const base::Feature kContextualSearchTranslations{
      "ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT};
      "ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kDarkenWebsitesCheckboxInThemesSetting{
  const base::Feature kDarkenWebsitesCheckboxInThemesSetting{
@@ -32,3 +32,5 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
  
  
  const base::Feature kQuickActionSearchWidgetAndroidDinoVariant{
  const base::Feature kQuickActionSearchWidgetAndroidDinoVariant{
      "QuickActionSearchWidgetAndroidDinoVariant",
      "QuickActionSearchWidgetAndroidDinoVariant",
+--
+2.25.1

+ 5 - 3
build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch

@@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 --- a/build/config/compiler/BUILD.gn
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
-@@ -351,6 +351,10 @@ config("compiler") {
+@@ -354,6 +354,10 @@ config("compiler") {
        }
        }
      }
      }
  
  
@@ -51,5 +51,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 +    }
 +    }
 +
 +
      # Linker warnings.
      # Linker warnings.
-     if (fatal_linker_warnings && !is_apple && current_os != "aix") {
-       ldflags += [ "-Wl,--fatal-warnings" ]
+     if (fatal_linker_warnings && !is_apple && current_os != "aix" &&
+         current_os != "zos") {
+--
+2.25.1

+ 23 - 24
build/patches/Enable-native-Android-autofill.patch

@@ -15,7 +15,7 @@ See also: https://github.com/bromite/bromite/issues/547
  android_webview/browser/aw_contents.cc        |  1 +
  android_webview/browser/aw_contents.cc        |  1 +
  chrome/android/BUILD.gn                       |  1 +
  chrome/android/BUILD.gn                       |  1 +
  .../settings/PasswordSettings.java            | 82 ++++++++++++++++++-
  .../settings/PasswordSettings.java            | 82 ++++++++++++++++++-
- .../chromium/chrome/browser/tab/TabImpl.java  | 51 ++++++++++++
+ .../chromium/chrome/browser/tab/TabImpl.java  | 50 +++++++++++
  .../browser/tab/TabViewAndroidDelegate.java   | 14 ++++
  .../browser/tab/TabViewAndroidDelegate.java   | 14 ++++
  chrome/browser/BUILD.gn                       |  8 ++
  chrome/browser/BUILD.gn                       |  8 ++
  chrome/browser/android/tab_android.cc         | 27 ++++++
  chrome/browser/android/tab_android.cc         | 27 ++++++
@@ -30,10 +30,10 @@ See also: https://github.com/bromite/bromite/issues/547
  .../renderer/password_autofill_agent.cc       |  5 +-
  .../renderer/password_autofill_agent.cc       |  5 +-
  .../autofill/core/common/autofill_prefs.cc    |  8 ++
  .../autofill/core/common/autofill_prefs.cc    |  8 ++
  .../autofill/core/common/autofill_prefs.h     |  2 +
  .../autofill/core/common/autofill_prefs.h     |  2 +
- .../embedder_support/view/ContentView.java    | 48 +++++++++++
+ .../embedder_support/view/ContentView.java    | 46 +++++++++++
  .../chromium/ui/base/ViewAndroidDelegate.java |  8 ++
  .../chromium/ui/base/ViewAndroidDelegate.java |  8 ++
  weblayer/browser/tab_impl.cc                  |  3 +-
  weblayer/browser/tab_impl.cc                  |  3 +-
- 21 files changed, 332 insertions(+), 15 deletions(-)
+ 21 files changed, 329 insertions(+), 15 deletions(-)
 
 
 diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
 diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
 --- a/android_webview/browser/aw_contents.cc
 --- a/android_webview/browser/aw_contents.cc
@@ -49,7 +49,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -419,6 +419,7 @@ android_library("chrome_java") {
+@@ -426,6 +426,7 @@ android_library("chrome_java") {
      "//chrome/browser/xsurface:java",
      "//chrome/browser/xsurface:java",
      "//components/autofill/android:autofill_java",
      "//components/autofill/android:autofill_java",
      "//components/autofill_assistant/browser:proto_java",
      "//components/autofill_assistant/browser:proto_java",
@@ -185,13 +185,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
-@@ -75,6 +75,18 @@ import org.chromium.url.GURL;
+@@ -75,6 +75,17 @@ import org.chromium.url.GURL;
  
  
  import java.nio.ByteBuffer;
  import java.nio.ByteBuffer;
  
  
 +import android.os.Build;
 +import android.os.Build;
 +import android.util.SparseArray;
 +import android.util.SparseArray;
-+import org.chromium.base.annotations.VerifiesOnO;
 +import org.chromium.ui.base.EventOffsetHandler;
 +import org.chromium.ui.base.EventOffsetHandler;
 +import android.view.ViewStructure;
 +import android.view.ViewStructure;
 +import android.view.autofill.AutofillValue;
 +import android.view.autofill.AutofillValue;
@@ -204,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
  /**
  /**
   * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}.
   * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}.
   * This class is not intended to be extended.
   * This class is not intended to be extended.
-@@ -218,6 +230,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -218,6 +229,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
      /** Whether or not the user manually changed the user agent. */
      /** Whether or not the user manually changed the user agent. */
      private boolean mUserForcedUserAgent;
      private boolean mUserForcedUserAgent;
  
  
@@ -213,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
      /**
      /**
       * Creates an instance of a {@link TabImpl}.
       * Creates an instance of a {@link TabImpl}.
       *
       *
-@@ -768,6 +782,11 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -768,6 +781,11 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
          for (TabObserver observer : mObservers) observer.onDestroyed(this);
          for (TabObserver observer : mObservers) observer.onDestroyed(this);
          mObservers.clear();
          mObservers.clear();
  
  
@@ -225,7 +224,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
          mUserDataHost.destroy();
          mUserDataHost.destroy();
          mTabViewManager.destroy();
          mTabViewManager.destroy();
          hideNativePage(false, null);
          hideNativePage(false, null);
-@@ -1359,6 +1378,16 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -1359,6 +1377,16 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
          return tabsPtrArray;
          return tabsPtrArray;
      }
      }
  
  
@@ -242,7 +241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
      /**
      /**
       * Initializes the {@link WebContents}. Completes the browser content components initialization
       * Initializes the {@link WebContents}. Completes the browser content components initialization
       * around a native WebContents pointer.
       * around a native WebContents pointer.
-@@ -1408,6 +1437,27 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -1408,6 +1436,27 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
                              mDelegateFactory.createContextMenuPopulatorFactory(this), this));
                              mDelegateFactory.createContextMenuPopulatorFactory(this), this));
  
  
              mWebContents.notifyRendererPreferenceUpdate();
              mWebContents.notifyRendererPreferenceUpdate();
@@ -270,7 +269,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
              TabHelpers.initWebContentsHelpers(this);
              TabHelpers.initWebContentsHelpers(this);
              notifyContentChanged();
              notifyContentChanged();
          } finally {
          } finally {
-@@ -1771,5 +1821,6 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -1772,5 +1821,6 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
          void setActiveNavigationEntryTitleForUrl(long nativeTabAndroid, String url, String title);
          void setActiveNavigationEntryTitleForUrl(long nativeTabAndroid, String url, String title);
          void loadOriginalImage(long nativeTabAndroid);
          void loadOriginalImage(long nativeTabAndroid);
          boolean handleNonNavigationAboutURL(GURL url);
          boolean handleNonNavigationAboutURL(GURL url);
@@ -309,7 +308,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2393,6 +2393,14 @@ static_library("browser") {
+@@ -2406,6 +2406,14 @@ static_library("browser") {
      "//ui/webui/resources/cr_components/most_visited:mojom",
      "//ui/webui/resources/cr_components/most_visited:mojom",
      "//ui/webui/resources/js/browser_command:mojo_bindings",
      "//ui/webui/resources/js/browser_command:mojo_bindings",
    ]
    ]
@@ -380,7 +379,7 @@ diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_a
 diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc
 diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrome/browser/android/tab_web_contents_delegate_android.cc
 --- a/chrome/browser/android/tab_web_contents_delegate_android.cc
 --- a/chrome/browser/android/tab_web_contents_delegate_android.cc
 +++ b/chrome/browser/android/tab_web_contents_delegate_android.cc
 +++ b/chrome/browser/android/tab_web_contents_delegate_android.cc
-@@ -176,7 +176,8 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
+@@ -175,7 +175,8 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
        portal_contents,
        portal_contents,
        autofill::ChromeAutofillClient::FromWebContents(portal_contents),
        autofill::ChromeAutofillClient::FromWebContents(portal_contents),
        g_browser_process->GetApplicationLocale(),
        g_browser_process->GetApplicationLocale(),
@@ -393,7 +392,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -576,6 +576,12 @@ CHAR_LIMIT guidelines:
+@@ -582,6 +582,12 @@ CHAR_LIMIT guidelines:
        <message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
        <message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
          Save passwords
          Save passwords
        </message>
        </message>
@@ -409,17 +408,17 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
 diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
 --- a/chrome/browser/ui/tab_helpers.cc
 --- a/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
 +++ b/chrome/browser/ui/tab_helpers.cc
-@@ -141,6 +141,9 @@
- #include "chrome/browser/ui/android/context_menu_helper.h"
+@@ -143,6 +143,9 @@
  #include "chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_android.h"
  #include "chrome/browser/ui/javascript_dialogs/javascript_tab_modal_dialog_manager_delegate_android.h"
  #include "chrome/browser/video_tutorials/video_tutorial_tab_helper.h"
  #include "chrome/browser/video_tutorials/video_tutorial_tab_helper.h"
+ #include "content/public/common/content_features.h"
 +#include "components/android_autofill/browser/android_autofill_manager.h"
 +#include "components/android_autofill/browser/android_autofill_manager.h"
 +#include "components/android_autofill/browser/autofill_provider.h"
 +#include "components/android_autofill/browser/autofill_provider.h"
 +#include "components/android_autofill/browser/autofill_provider_android.h"
 +#include "components/android_autofill/browser/autofill_provider_android.h"
  #else
  #else
  #include "chrome/browser/accuracy_tips/accuracy_service_factory.h"
  #include "chrome/browser/accuracy_tips/accuracy_service_factory.h"
  #include "chrome/browser/banners/app_banner_manager_desktop.h"
  #include "chrome/browser/banners/app_banner_manager_desktop.h"
-@@ -265,7 +268,9 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -272,7 +275,9 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
        web_contents,
        web_contents,
        autofill::ChromeAutofillClient::FromWebContents(web_contents),
        autofill::ChromeAutofillClient::FromWebContents(web_contents),
        g_browser_process->GetApplicationLocale(),
        g_browser_process->GetApplicationLocale(),
@@ -695,7 +694,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
 diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
 diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
 --- a/components/autofill/content/renderer/password_autofill_agent.cc
 --- a/components/autofill/content/renderer/password_autofill_agent.cc
 +++ b/components/autofill/content/renderer/password_autofill_agent.cc
 +++ b/components/autofill/content/renderer/password_autofill_agent.cc
-@@ -728,7 +728,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange(
+@@ -731,7 +731,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange(
  
  
  void PasswordAutofillAgent::TrackAutofilledElement(
  void PasswordAutofillAgent::TrackAutofilledElement(
      const blink::WebFormControlElement& element) {
      const blink::WebFormControlElement& element) {
@@ -747,12 +746,11 @@ diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autof
 diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
 diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
 --- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
 --- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
 +++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
 +++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
-@@ -36,6 +36,12 @@ import org.chromium.content_public.browser.WebContentsAccessibility;
+@@ -36,6 +36,11 @@ import org.chromium.content_public.browser.WebContentsAccessibility;
  import org.chromium.ui.base.EventForwarder;
  import org.chromium.ui.base.EventForwarder;
  import org.chromium.ui.base.EventOffsetHandler;
  import org.chromium.ui.base.EventOffsetHandler;
  
  
 +import org.chromium.base.Log;
 +import org.chromium.base.Log;
-+import org.chromium.base.annotations.VerifiesOnO;
 +import android.util.SparseArray;
 +import android.util.SparseArray;
 +import android.view.autofill.AutofillValue;
 +import android.view.autofill.AutofillValue;
 +import org.chromium.ui.base.ViewAndroidDelegate;
 +import org.chromium.ui.base.ViewAndroidDelegate;
@@ -760,7 +758,7 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
  /**
  /**
   * The containing view for {@link WebContents} that exists in the Android UI hierarchy and exposes
   * The containing view for {@link WebContents} that exists in the Android UI hierarchy and exposes
   * the various {@link View} functionality to it.
   * the various {@link View} functionality to it.
-@@ -82,6 +88,8 @@ public class ContentView extends FrameLayout
+@@ -82,6 +87,8 @@ public class ContentView extends FrameLayout
       */
       */
      public static ContentView createContentView(Context context,
      public static ContentView createContentView(Context context,
              @Nullable EventOffsetHandler eventOffsetHandler, @Nullable WebContents webContents) {
              @Nullable EventOffsetHandler eventOffsetHandler, @Nullable WebContents webContents) {
@@ -769,7 +767,7 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
              return new ContentViewApi23(context, eventOffsetHandler, webContents);
              return new ContentViewApi23(context, eventOffsetHandler, webContents);
          }
          }
-@@ -549,4 +557,44 @@ public class ContentView extends FrameLayout
+@@ -549,4 +556,43 @@ public class ContentView extends FrameLayout
              if (wcax != null) wcax.onProvideVirtualStructure(structure, false);
              if (wcax != null) wcax.onProvideVirtualStructure(structure, false);
          }
          }
      }
      }
@@ -777,7 +775,6 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
 +    /**
 +    /**
 +    * API level 26 implementation that includes autofill.
 +    * API level 26 implementation that includes autofill.
 +    */
 +    */
-+    @VerifiesOnO
 +    public static class ContentViewWithAutofill extends ContentViewApi23 {
 +    public static class ContentViewWithAutofill extends ContentViewApi23 {
 +        private ViewAndroidDelegate viewAndroidDelegate;
 +        private ViewAndroidDelegate viewAndroidDelegate;
 +
 +
@@ -840,7 +837,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java b
 diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
 diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
 --- a/weblayer/browser/tab_impl.cc
 --- a/weblayer/browser/tab_impl.cc
 +++ b/weblayer/browser/tab_impl.cc
 +++ b/weblayer/browser/tab_impl.cc
-@@ -1403,7 +1403,8 @@ void TabImpl::InitializeAutofillDriver() {
+@@ -1395,7 +1395,8 @@ void TabImpl::InitializeAutofillDriver() {
    autofill::ContentAutofillDriverFactory::CreateForWebContentsAndDelegate(
    autofill::ContentAutofillDriverFactory::CreateForWebContentsAndDelegate(
        web_contents, AutofillClientImpl::FromWebContents(web_contents),
        web_contents, AutofillClientImpl::FromWebContents(web_contents),
        i18n::GetApplicationLocale(), enable_autofill_download_manager,
        i18n::GetApplicationLocale(), enable_autofill_download_manager,
@@ -850,3 +847,5 @@ diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
  }
  }
  
  
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
+--
+2.25.1

+ 3 - 1
build/patches/Enable-network-isolation-features.patch

@@ -13,7 +13,7 @@ PartitionNelAndReportingByNetworkIsolationKey
 diff --git a/net/base/features.cc b/net/base/features.cc
 diff --git a/net/base/features.cc b/net/base/features.cc
 --- a/net/base/features.cc
 --- a/net/base/features.cc
 +++ b/net/base/features.cc
 +++ b/net/base/features.cc
-@@ -96,30 +96,30 @@ const base::Feature kSplitCacheByIncludeCredentials{
+@@ -99,30 +99,30 @@ const base::Feature kSplitCacheByIncludeCredentials{
      "SplitCacheByIncludeCredentials", base::FEATURE_DISABLED_BY_DEFAULT};
      "SplitCacheByIncludeCredentials", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kSplitCacheByNetworkIsolationKey{
  const base::Feature kSplitCacheByNetworkIsolationKey{
@@ -51,3 +51,5 @@ diff --git a/net/base/features.cc b/net/base/features.cc
  
  
  const base::Feature kExpectCTPruning{"ExpectCTPruning",
  const base::Feature kExpectCTPruning{"ExpectCTPruning",
                                       base::FEATURE_ENABLED_BY_DEFAULT};
                                       base::FEATURE_ENABLED_BY_DEFAULT};
+--
+2.25.1

+ 3 - 1
build/patches/Enable-prefetch-privacy-changes-by-default.patch

@@ -9,7 +9,7 @@ Subject: Enable prefetch-privacy-changes by default
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -416,7 +416,7 @@ const base::Feature kComputePressure{"ComputePressure",
+@@ -422,7 +422,7 @@ const base::Feature kComputePressure{"ComputePressure",
  // Prefetch request properties are updated to be privacy-preserving. See
  // Prefetch request properties are updated to be privacy-preserving. See
  // crbug.com/988956.
  // crbug.com/988956.
  const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
  const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",
@@ -18,3 +18,5 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
  
  
  // Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this
  // Decodes jpeg 4:2:0 formatted images to YUV instead of RGBX and stores in this
  // format in the image decode cache. See crbug.com/919627 for details on the
  // format in the image decode cache. See crbug.com/919627 for details on the
+--
+2.25.1

+ 15 - 13
build/patches/Enable-share-intent.patch

@@ -27,7 +27,7 @@ See also: https://github.com/bromite/bromite/issues/1062
 diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
 diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
 --- a/chrome/android/chrome_java_resources.gni
 --- a/chrome/android/chrome_java_resources.gni
 +++ b/chrome/android/chrome_java_resources.gni
 +++ b/chrome/android/chrome_java_resources.gni
-@@ -717,6 +717,7 @@ chrome_java_resources = [
+@@ -711,6 +711,7 @@ chrome_java_resources = [
    "java/res/layout/share_sheet_content.xml",
    "java/res/layout/share_sheet_content.xml",
    "java/res/layout/share_sheet_item.xml",
    "java/res/layout/share_sheet_item.xml",
    "java/res/layout/sharing_device_picker.xml",
    "java/res/layout/sharing_device_picker.xml",
@@ -38,7 +38,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
 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
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -1048,6 +1048,7 @@ chrome_java_sources = [
+@@ -1037,6 +1037,7 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
@@ -171,8 +171,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
  import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity;
  import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity;
 +import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity;
 +import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity;
  import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
  import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
+ import org.chromium.chrome.browser.tasks.tab_management.PriceTrackingUtilities;
  import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
  import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
- import org.chromium.chrome.browser.util.AfterStartupTaskUtils;
 @@ -409,6 +410,8 @@ public class ProcessInitializationHandler {
 @@ -409,6 +410,8 @@ public class ProcessInitializationHandler {
          deferredStartupHandler.addDeferredTask(
          deferredStartupHandler.addDeferredTask(
                  () -> IncognitoTabLauncher.updateComponentEnabledState());
                  () -> IncognitoTabLauncher.updateComponentEnabledState());
@@ -304,8 +304,8 @@ new file mode 100644
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -5563,6 +5563,10 @@ const FeatureEntry kFeatureEntries[] = {
-      FEATURE_VALUE_TYPE(sharing_hub::kDesktopScreenshots)},
+@@ -5654,6 +5654,10 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_VALUE_TYPE(share::kSharingDesktopScreenshotsEdit)},
  #endif
  #endif
  
  
 +    {"shared-intent-ui", flag_descriptions::kSharedIntentUIName,
 +    {"shared-intent-ui", flag_descriptions::kSharedIntentUIName,
@@ -318,7 +318,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -2335,6 +2335,11 @@ const char kSharingDesktopScreenshotsDescription[] =
+@@ -2280,6 +2280,11 @@ const char kSharingDesktopScreenshotsDescription[] =
      "Enables taking"
      "Enables taking"
      " screenshots from the desktop sharing hub.";
      " screenshots from the desktop sharing hub.";
  
  
@@ -333,9 +333,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -1340,6 +1340,9 @@ extern const char kSharedClipboardUIDescription[];
- extern const char kSharingDesktopScreenshotsName[];
- extern const char kSharingDesktopScreenshotsDescription[];
+@@ -1316,6 +1316,9 @@ extern const char kSharingDesktopScreenshotsDescription[];
+ extern const char kSharingDesktopScreenshotsEditName[];
+ extern const char kSharingDesktopScreenshotsEditDescription[];
  
  
 +extern const char kSharedIntentUIName[];
 +extern const char kSharedIntentUIName[];
 +extern const char kSharedIntentUIDescription[];
 +extern const char kSharedIntentUIDescription[];
@@ -346,7 +346,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 --- a/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
 +++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -270,6 +270,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -273,6 +273,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &kServiceManagerForDownload,
      &kServiceManagerForDownload,
      &kShareButtonInTopToolbar,
      &kShareButtonInTopToolbar,
      &kSharedClipboardUI,
      &kSharedClipboardUI,
@@ -354,7 +354,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &kSharingHubLinkToggle,
      &kSharingHubLinkToggle,
      &kSingleTouchSelect,
      &kSingleTouchSelect,
      &kSpannableInlineAutocomplete,
      &kSpannableInlineAutocomplete,
-@@ -657,6 +658,9 @@ const base::Feature kSearchEnginePromoExistingDevice{
+@@ -662,6 +663,9 @@ const base::Feature kSearchEnginePromoExistingDevice{
  const base::Feature kSearchEnginePromoNewDevice{
  const base::Feature kSearchEnginePromoNewDevice{
      "SearchEnginePromo.NewDevice", base::FEATURE_ENABLED_BY_DEFAULT};
      "SearchEnginePromo.NewDevice", base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -378,7 +378,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -488,6 +488,7 @@ public abstract class ChromeFeatureList {
+@@ -493,6 +493,7 @@ public abstract class ChromeFeatureList {
      public static final String SHARE_USAGE_RANKING = "ShareUsageRanking";
      public static final String SHARE_USAGE_RANKING = "ShareUsageRanking";
      public static final String SHARE_USAGE_RANKING_FIXED_MORE = "ShareUsageRankingFixedMore";
      public static final String SHARE_USAGE_RANKING_FIXED_MORE = "ShareUsageRankingFixedMore";
      public static final String SHARED_CLIPBOARD_UI = "SharedClipboardUI";
      public static final String SHARED_CLIPBOARD_UI = "SharedClipboardUI";
@@ -389,7 +389,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4572,6 +4572,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4585,6 +4585,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          Send text to Your Devices
          Send text to Your Devices
        </message>
        </message>
  
  
@@ -409,3 +409,5 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <!-- Sms Fetcher -->
        <!-- Sms Fetcher -->
        <message name="IDS_SMS_FETCHER_NOTIFICATION_TITLE" desc="Title text shown when the Android Chrome receives a ONE_TIME_CODE from an incoming SMS and ask users for permission to submit the code to their linked Desktop Chrome">
        <message name="IDS_SMS_FETCHER_NOTIFICATION_TITLE" desc="Title text shown when the Android Chrome receives a ONE_TIME_CODE from an incoming SMS and ask users for permission to submit the code to their linked Desktop Chrome">
          Submit <ph name="ONE_TIME_CODE">%1$s<ex>123</ex></ph> on <ph name="CLIENT_NAME">%2$s<ex>Zoe's Macbook</ex></ph>?
          Submit <ph name="ONE_TIME_CODE">%1$s<ex>123</ex></ph> on <ph name="CLIENT_NAME">%2$s<ex>Zoe's Macbook</ex></ph>?
+--
+2.25.1

+ 3 - 1
build/patches/Enable-user-agent-freeze-by-default.patch

@@ -9,7 +9,7 @@ Subject: Enable user-agent freeze by default
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 --- a/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
 +++ b/third_party/blink/common/features.cc
-@@ -86,7 +86,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
+@@ -99,7 +99,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
  
  
  // Freezes the user-agent as part of https://github.com/WICG/ua-client-hints.
  // Freezes the user-agent as part of https://github.com/WICG/ua-client-hints.
  const base::Feature kReduceUserAgent{"ReduceUserAgent",
  const base::Feature kReduceUserAgent{"ReduceUserAgent",
@@ -18,3 +18,5 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
  
  
  // Enables the frequency capping for detecting overlay popups. Overlay-popups
  // Enables the frequency capping for detecting overlay popups. Overlay-popups
  // are the interstitials that pop up and block the main content of the page.
  // are the interstitials that pop up and block the main content of the page.
+--
+2.25.1

+ 36 - 33
build/patches/Experimental-user-scripts-support.patch

@@ -93,7 +93,7 @@ See also: components/user_scripts/README.md
  .../user_scripts/common/script_constants.h    |  33 +
  .../user_scripts/common/script_constants.h    |  33 +
  components/user_scripts/common/url_pattern.cc | 803 ++++++++++++++++++
  components/user_scripts/common/url_pattern.cc | 803 ++++++++++++++++++
  components/user_scripts/common/url_pattern.h  | 302 +++++++
  components/user_scripts/common/url_pattern.h  | 302 +++++++
- .../user_scripts/common/url_pattern_set.cc    | 334 ++++++++
+ .../user_scripts/common/url_pattern_set.cc    | 335 ++++++++
  .../user_scripts/common/url_pattern_set.h     | 161 ++++
  .../user_scripts/common/url_pattern_set.h     | 161 ++++
  components/user_scripts/common/user_script.cc | 317 +++++++
  components/user_scripts/common/user_script.cc | 317 +++++++
  components/user_scripts/common/user_script.h  | 403 +++++++++
  components/user_scripts/common/user_script.h  | 403 +++++++++
@@ -133,7 +133,7 @@ See also: components/user_scripts/README.md
  .../renderer/web_ui_injection_host.h          |  28 +
  .../renderer/web_ui_injection_host.h          |  28 +
  .../strings/userscripts_strings.grdp          |  55 ++
  .../strings/userscripts_strings.grdp          |  55 ++
  tools/gritsettings/resource_ids.spec          |   6 +
  tools/gritsettings/resource_ids.spec          |   6 +
- 111 files changed, 9579 insertions(+), 2 deletions(-)
+ 111 files changed, 9580 insertions(+), 2 deletions(-)
  create mode 100644 components/user_scripts/README.md
  create mode 100644 components/user_scripts/README.md
  create mode 100755 components/user_scripts/android/BUILD.gn
  create mode 100755 components/user_scripts/android/BUILD.gn
  create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
  create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
@@ -225,7 +225,7 @@ See also: components/user_scripts/README.md
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -252,6 +252,10 @@ android_resources("chrome_app_java_resources") {
+@@ -253,6 +253,10 @@ android_resources("chrome_app_java_resources") {
      "//third_party/androidx:androidx_preference_preference_java",
      "//third_party/androidx:androidx_preference_preference_java",
      "//third_party/androidx:androidx_recyclerview_recyclerview_java",
      "//third_party/androidx:androidx_recyclerview_recyclerview_java",
    ]
    ]
@@ -236,7 +236,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  }
  }
  
  
  if (enable_vr) {
  if (enable_vr) {
-@@ -524,6 +528,7 @@ android_library("chrome_java") {
+@@ -532,6 +536,7 @@ android_library("chrome_java") {
      "//components/ukm/android:java",
      "//components/ukm/android:java",
      "//components/url_formatter/android:url_formatter_java",
      "//components/url_formatter/android:url_formatter_java",
      "//components/user_prefs/android:java",
      "//components/user_prefs/android:java",
@@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
-@@ -112,6 +112,8 @@ import java.util.Date;
+@@ -113,6 +113,8 @@ import java.util.Date;
  import java.util.List;
  import java.util.List;
  import java.util.Locale;
  import java.util.Locale;
  
  
@@ -322,7 +322,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -3491,6 +3491,11 @@ static_library("browser") {
+@@ -3515,6 +3515,11 @@ static_library("browser") {
        ]
        ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
      }
      }
@@ -333,11 +333,11 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 +    ]
 +    ]
    } else {
    } else {
      #!is_android
      #!is_android
-     sources += [
+     if (!is_chromeos_lacros) {
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -151,6 +151,7 @@
+@@ -149,6 +149,7 @@
  #include "components/translate/core/browser/translate_ranker_impl.h"
  #include "components/translate/core/browser/translate_ranker_impl.h"
  #include "components/translate/core/common/translate_util.h"
  #include "components/translate/core/common/translate_util.h"
  #include "components/ui_devtools/switches.h"
  #include "components/ui_devtools/switches.h"
@@ -345,7 +345,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  #include "components/version_info/version_info.h"
  #include "components/version_info/version_info.h"
  #include "components/viz/common/features.h"
  #include "components/viz/common/features.h"
  #include "components/viz/common/switches.h"
  #include "components/viz/common/switches.h"
-@@ -6528,6 +6529,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6535,6 +6536,10 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(features::kUserDataSnapshot)},
       FEATURE_VALUE_TYPE(features::kUserDataSnapshot)},
  #endif
  #endif
  
  
@@ -359,7 +359,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
 diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 --- a/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
 +++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -4659,7 +4659,8 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
+@@ -4662,7 +4662,8 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
    chrome::mojom::DynamicParams dynamic_params = {
    chrome::mojom::DynamicParams dynamic_params = {
        profile->GetPrefs()->GetBoolean(prefs::kForceGoogleSafeSearch),
        profile->GetPrefs()->GetBoolean(prefs::kForceGoogleSafeSearch),
        profile->GetPrefs()->GetInteger(prefs::kForceYouTubeRestrict),
        profile->GetPrefs()->GetInteger(prefs::kForceYouTubeRestrict),
@@ -372,7 +372,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -5393,6 +5393,11 @@ const char kUserDataSnapshotDescription[] =
+@@ -5382,6 +5382,11 @@ const char kUserDataSnapshotDescription[] =
      "update and restoring them after a version rollback.";
      "update and restoring them after a version rollback.";
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -387,7 +387,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -3132,6 +3132,9 @@ extern const char kUserDataSnapshotName[];
+@@ -3134,6 +3134,9 @@ extern const char kUserDataSnapshotName[];
  extern const char kUserDataSnapshotDescription[];
  extern const char kUserDataSnapshotDescription[];
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -400,7 +400,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -237,6 +237,7 @@
+@@ -235,6 +235,7 @@
  #include "components/ntp_tiles/popular_sites_impl.h"
  #include "components/ntp_tiles/popular_sites_impl.h"
  #include "components/permissions/contexts/geolocation_permission_context_android.h"
  #include "components/permissions/contexts/geolocation_permission_context_android.h"
  #include "components/query_tiles/tile_service_prefs.h"
  #include "components/query_tiles/tile_service_prefs.h"
@@ -408,7 +408,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
  #else  // defined(OS_ANDROID)
  #else  // defined(OS_ANDROID)
  #include "chrome/browser/cart/cart_service.h"
  #include "chrome/browser/cart/cart_service.h"
  #include "chrome/browser/device_api/device_service_impl.h"
  #include "chrome/browser/device_api/device_service_impl.h"
-@@ -1197,6 +1198,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -1214,6 +1215,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
    translate::TranslatePrefs::RegisterProfilePrefs(registry);
    translate::TranslatePrefs::RegisterProfilePrefs(registry);
    omnibox::RegisterProfilePrefs(registry);
    omnibox::RegisterProfilePrefs(registry);
    ZeroSuggestProvider::RegisterProfilePrefs(registry);
    ZeroSuggestProvider::RegisterProfilePrefs(registry);
@@ -430,7 +430,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -216,6 +216,8 @@
+@@ -217,6 +217,8 @@
  #include "chrome/browser/lacros/cert_db_initializer_factory.h"
  #include "chrome/browser/lacros/cert_db_initializer_factory.h"
  #endif
  #endif
  
  
@@ -439,7 +439,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
  namespace chrome {
  namespace chrome {
  
  
  void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
  void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
-@@ -516,6 +518,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -517,6 +519,7 @@ void ChromeBrowserMainExtraPartsProfiles::
  #endif
  #endif
    WebDataServiceFactory::GetInstance();
    WebDataServiceFactory::GetInstance();
    webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
    webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
@@ -450,16 +450,16 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
 diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
 --- a/chrome/browser/profiles/profile_manager.cc
 --- a/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
-@@ -117,6 +117,8 @@
+@@ -118,6 +118,8 @@
  #include "extensions/common/manifest.h"
  #include "extensions/common/manifest.h"
  #endif
  #endif
  
  
 +#include "components/user_scripts/browser/userscripts_browser_client.h"
 +#include "components/user_scripts/browser/userscripts_browser_client.h"
 +
 +
  #if BUILDFLAG(ENABLE_SESSION_SERVICE)
  #if BUILDFLAG(ENABLE_SESSION_SERVICE)
+ #include "chrome/browser/sessions/app_session_service_factory.h"
  #include "chrome/browser/sessions/session_service_factory.h"
  #include "chrome/browser/sessions/session_service_factory.h"
- #endif
-@@ -1539,6 +1541,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
+@@ -1538,6 +1540,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
    }
    }
  
  
  #endif
  #endif
@@ -534,7 +534,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
  #include "content/public/browser/web_contents.h"
  #include "content/public/browser/web_contents.h"
  #include "content/public/browser/web_ui.h"
  #include "content/public/browser/web_ui.h"
  #include "content/public/common/content_client.h"
  #include "content/public/common/content_client.h"
-@@ -678,6 +679,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -681,6 +682,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
      return &NewWebUI<UserActionsUI>;
      return &NewWebUI<UserActionsUI>;
    if (url.host_piece() == chrome::kChromeUIVersionHost)
    if (url.host_piece() == chrome::kChromeUIVersionHost)
      return &NewWebUI<VersionUI>;
      return &NewWebUI<VersionUI>;
@@ -576,7 +576,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer
 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
 --- a/chrome/renderer/BUILD.gn
 --- a/chrome/renderer/BUILD.gn
 +++ b/chrome/renderer/BUILD.gn
 +++ b/chrome/renderer/BUILD.gn
-@@ -171,6 +171,7 @@ static_library("renderer") {
+@@ -172,6 +172,7 @@ static_library("renderer") {
      "//components/feed:feature_list",
      "//components/feed:feature_list",
      "//components/feed/content/renderer:feed_renderer",
      "//components/feed/content/renderer:feed_renderer",
      "//components/history_clusters/core",
      "//components/history_clusters/core",
@@ -587,7 +587,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -254,6 +254,9 @@
+@@ -253,6 +253,9 @@
  #include "chrome/renderer/supervised_user/supervised_user_error_page_controller_delegate_impl.h"
  #include "chrome/renderer/supervised_user/supervised_user_error_page_controller_delegate_impl.h"
  #endif
  #endif
  
  
@@ -595,9 +595,9 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
 +#include "components/user_scripts/renderer/user_scripts_renderer_client.h"
 +#include "components/user_scripts/renderer/user_scripts_renderer_client.h"
 +
 +
  using autofill::AutofillAgent;
  using autofill::AutofillAgent;
- using autofill::AutofillAssistantAgent;
  using autofill::PasswordAutofillAgent;
  using autofill::PasswordAutofillAgent;
-@@ -419,6 +422,12 @@ void ChromeContentRendererClient::RenderThreadStarted() {
+ using autofill::PasswordGenerationAgent;
+@@ -425,6 +428,12 @@ void ChromeContentRendererClient::RenderThreadStarted() {
        WebString::FromASCII(extensions::kExtensionScheme));
        WebString::FromASCII(extensions::kExtensionScheme));
  #endif
  #endif
  
  
@@ -610,7 +610,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  #if BUILDFLAG(ENABLE_SPELLCHECK)
  #if BUILDFLAG(ENABLE_SPELLCHECK)
    if (!spellcheck_)
    if (!spellcheck_)
      InitSpellCheck();
      InitSpellCheck();
-@@ -555,6 +564,13 @@ void ChromeContentRendererClient::RenderFrameCreated(
+@@ -561,6 +570,13 @@ void ChromeContentRendererClient::RenderFrameCreated(
        render_frame, registry);
        render_frame, registry);
  #endif
  #endif
  
  
@@ -624,7 +624,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  #if BUILDFLAG(ENABLE_PLUGINS)
  #if BUILDFLAG(ENABLE_PLUGINS)
    new PepperHelper(render_frame);
    new PepperHelper(render_frame);
  #endif
  #endif
-@@ -1546,7 +1562,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
+@@ -1547,7 +1563,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
    ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentStart(
    ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentStart(
        render_frame);
        render_frame);
    // |render_frame| might be dead by now.
    // |render_frame| might be dead by now.
@@ -639,7 +639,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  }
  
  
  void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
  void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
-@@ -1555,7 +1578,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
+@@ -1556,7 +1579,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
    ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentEnd(
    ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentEnd(
        render_frame);
        render_frame);
    // |render_frame| might be dead by now.
    // |render_frame| might be dead by now.
@@ -654,7 +654,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  }
  
  
  void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
  void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
-@@ -1564,7 +1594,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
+@@ -1565,7 +1595,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
    ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentIdle(
    ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentIdle(
        render_frame);
        render_frame);
    // |render_frame| might be dead by now.
    // |render_frame| might be dead by now.
@@ -2498,7 +2498,7 @@ new file mode 100755
 +
 +
 +#include "file_task_runner.h"
 +#include "file_task_runner.h"
 +
 +
-+#include "base/sequenced_task_runner.h"
++#include "base/task/sequenced_task_runner.h"
 +#include "base/task/lazy_thread_pool_task_runner.h"
 +#include "base/task/lazy_thread_pool_task_runner.h"
 +#include "base/task/task_traits.h"
 +#include "base/task/task_traits.h"
 +
 +
@@ -5919,7 +5919,7 @@ diff --git a/components/user_scripts/common/url_pattern_set.cc b/components/user
 new file mode 100755
 new file mode 100755
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/common/url_pattern_set.cc
 +++ b/components/user_scripts/common/url_pattern_set.cc
-@@ -0,0 +1,334 @@
+@@ -0,0 +1,335 @@
 +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 +// Use of this source code is governed by a BSD-style license that can be
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
 +// found in the LICENSE file.
@@ -6117,7 +6117,8 @@ new file mode 100755
 +  if (origin.is_empty())
 +  if (origin.is_empty())
 +    return false;
 +    return false;
 +  const url::Origin real_origin = url::Origin::Create(origin);
 +  const url::Origin real_origin = url::Origin::Create(origin);
-+  DCHECK(real_origin.IsSameOriginWith(url::Origin::Create(origin.GetOrigin())));
++  DCHECK(real_origin.IsSameOriginWith(url::Origin::Create(
++      origin.DeprecatedGetOriginAsURL())));
 +  URLPattern origin_pattern(valid_schemes);
 +  URLPattern origin_pattern(valid_schemes);
 +  // Origin adding could fail if |origin| does not match |valid_schemes|.
 +  // Origin adding could fail if |origin| does not match |valid_schemes|.
 +  if (origin_pattern.Parse(origin.spec()) !=
 +  if (origin_pattern.Parse(origin.spec()) !=
@@ -8840,7 +8841,7 @@ new file mode 100755
 +          FROM_HERE,
 +          FROM_HERE,
 +          base::BindOnce(&ScriptInjectionManager::RFOHelper::RunIdle,
 +          base::BindOnce(&ScriptInjectionManager::RFOHelper::RunIdle,
 +                         weak_factory_.GetWeakPtr()),
 +                         weak_factory_.GetWeakPtr()),
-+          base::TimeDelta::FromMilliseconds(kScriptIdleTimeoutInMs));
++          base::Milliseconds(kScriptIdleTimeoutInMs));
 +
 +
 +  ExtensionFrameHelper::Get(render_frame())
 +  ExtensionFrameHelper::Get(render_frame())
 +      ->ScheduleAtDocumentIdle(
 +      ->ScheduleAtDocumentIdle(
@@ -10621,7 +10622,7 @@ new file mode 100755
 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
 --- a/tools/gritsettings/resource_ids.spec
 --- a/tools/gritsettings/resource_ids.spec
 +++ b/tools/gritsettings/resource_ids.spec
 +++ b/tools/gritsettings/resource_ids.spec
-@@ -585,6 +585,12 @@
+@@ -589,6 +589,12 @@
    "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{
    "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{
      "includes": [3720]
      "includes": [3720]
    },
    },
@@ -10634,3 +10635,5 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_
    # END components/ section.
    # END components/ section.
  
  
    # START ios/ section.
    # START ios/ section.
+--
+2.25.1

+ 2 - 0
build/patches/Hardening-against-incognito-mode-detection.patch

@@ -18,3 +18,5 @@ diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quo
  
  
  // Skews |value| by +/- |percent|.
  // Skews |value| by +/- |percent|.
  int64_t RandomizeByPercent(int64_t value, int percent) {
  int64_t RandomizeByPercent(int64_t value, int percent) {
+--
+2.25.1

+ 2 - 0
build/patches/Hide-passwords-manager-link.patch

@@ -27,3 +27,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
  
  
          PreferenceCategory profileCategory = new PreferenceCategory(getStyledContext());
          PreferenceCategory profileCategory = new PreferenceCategory(getStyledContext());
          profileCategory.setKey(PREF_KEY_CATEGORY_EXCEPTIONS);
          profileCategory.setKey(PREF_KEY_CATEGORY_EXCEPTIONS);
+--
+2.25.1

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä