Carl 2 rokov pred
rodič
commit
fa31ed23d4
100 zmenil súbory, kde vykonal 1464 pridanie a 1922 odobranie
  1. 1 1
      build/LASTCHANGE
  2. 1 1
      build/RELEASE
  3. 1 1
      build/RELEASE_COMMIT
  4. 23 25
      build/bromite_patches_list.txt
  5. 0 1
      build/chromium_patches_list.txt
  6. 8 8
      build/patches/AImageReader-CFI-crash-mitigations.patch
  7. 4 4
      build/patches/AV1-codec-support.patch
  8. 21 23
      build/patches/Add-AllowUserCertificates-flag.patch
  9. 99 99
      build/patches/Add-DuckDuckGo-Lite-search-engine.patch
  10. 108 108
      build/patches/Add-English-only-search-engine.patch
  11. 5 5
      build/patches/Add-IsCleartextPermitted-flag.patch
  12. 20 20
      build/patches/Add-a-proxy-configuration-page.patch
  13. 56 56
      build/patches/Add-an-always-incognito-mode.patch
  14. 29 29
      build/patches/Add-bookmark-import-export-actions.patch
  15. 7 7
      build/patches/Add-custom-tab-intents-privacy-option.patch
  16. 7 7
      build/patches/Add-exit-menu-item.patch
  17. 10 10
      build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch
  18. 3 3
      build/patches/Add-flag-for-save-data-header.patch
  19. 4 4
      build/patches/Add-flag-to-configure-maximum-connections-per-host.patch
  20. 4 4
      build/patches/Add-flag-to-control-video-playback-resume-feature.patch
  21. 4 4
      build/patches/Add-flag-to-disable-IPv6-probes.patch
  22. 5 5
      build/patches/Add-flag-to-disable-external-intent-requests.patch
  23. 20 20
      build/patches/Add-flag-to-disable-vibration.patch
  24. 45 108
      build/patches/Add-lifetime-options-for-permissions.patch
  25. 43 43
      build/patches/Add-menu-item-to-bookmark-all-tabs.patch
  26. 20 16
      build/patches/Add-menu-item-to-view-source.patch
  27. 7 7
      build/patches/Add-option-to-force-tablet-UI.patch
  28. 9 9
      build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
  29. 4 4
      build/patches/Add-option-to-use-home-page-as-NTP.patch
  30. 4 4
      build/patches/Add-site-engagement-flag.patch
  31. 2 2
      build/patches/Add-support-for-ISupportHelpAndFeedback.patch
  32. 12 12
      build/patches/Add-webGL-site-setting.patch
  33. 11 11
      build/patches/Add-webRTC-site-settings.patch
  34. 22 22
      build/patches/Allow-building-without-enable_reporting.patch
  35. 3 3
      build/patches/Allow-playing-audio-in-background.patch
  36. 1 1
      build/patches/Ask-user-before-closing-all-tabs.patch
  37. 1 1
      build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch
  38. 44 478
      build/patches/Automated-domain-substitution.patch
  39. 3 3
      build/patches/Block-gateway-attacks-via-websockets.patch
  40. 6 6
      build/patches/Block-qjz9zk-or-trk-requests.patch
  41. 1 1
      build/patches/Bookmarks-select-all-menu-entry.patch
  42. 20 20
      build/patches/Bromite-AdBlockUpdaterService.patch
  43. 9 9
      build/patches/Bromite-auto-updater.patch
  44. 1 1
      build/patches/Bromite-package-name.patch
  45. 10 30
      build/patches/Client-hints-overrides.patch
  46. 29 29
      build/patches/Content-settings-infrastructure.patch
  47. 5 5
      build/patches/Dictionary-suggestions-for-the-Omnibox.patch
  48. 16 16
      build/patches/Disable-AGSA-by-default.patch
  49. 2 2
      build/patches/Disable-Accessibility-service-by-default.patch
  50. 1 1
      build/patches/Disable-AsyncDNS-by-default.patch
  51. 1 1
      build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch
  52. 9 9
      build/patches/Disable-FLoC-and-privacy-sandbox.patch
  53. 2 2
      build/patches/Disable-PrivacyGuide.patch
  54. 27 0
      build/patches/Disable-StartSurface-feature.patch
  55. 13 13
      build/patches/Disable-TLS-resumption.patch
  56. 10 10
      build/patches/Disable-all-predictors-code.patch
  57. 3 3
      build/patches/Disable-all-promo-dialogs.patch
  58. 10 10
      build/patches/Disable-conversion-measurement-api.patch
  59. 1 1
      build/patches/Disable-crash-reporting.patch
  60. 1 1
      build/patches/Disable-feeds-support-by-default.patch
  61. 5 5
      build/patches/Disable-fetching-of-all-field-trials.patch
  62. 1 1
      build/patches/Disable-idle-detection.patch
  63. 1 1
      build/patches/Disable-lock-icon-in-address-bar-by-default.patch
  64. 1 1
      build/patches/Disable-media-router-and-remoting-by-default.patch
  65. 181 117
      build/patches/Disable-safe-browsing.patch
  66. 6 6
      build/patches/Disable-safety-check.patch
  67. 5 5
      build/patches/Disable-smart-selection-by-default.patch
  68. 3 6
      build/patches/Disable-some-signed-exchange-features.patch
  69. 40 24
      build/patches/Disable-text-fragments-by-default.patch
  70. 8 8
      build/patches/Disable-third-party-origin-trials.patch
  71. 1 1
      build/patches/Disable-update-scheduler.patch
  72. 4 4
      build/patches/Disable-various-metrics.patch
  73. 1 1
      build/patches/Do-not-build-API-keys-infobar.patch
  74. 2 2
      build/patches/Do-not-compile-QR-code-sharing.patch
  75. 1 1
      build/patches/Do-not-hide-component-extensions.patch
  76. 1 1
      build/patches/Do-not-link-with-libatomic.patch
  77. 1 1
      build/patches/DoH-improvements.patch
  78. 23 18
      build/patches/Enable-Certificate-Transparency.patch
  79. 1 1
      build/patches/Enable-ECH-by-default.patch
  80. 10 6
      build/patches/Enable-HEVC-by-default.patch
  81. 1 1
      build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture.patch
  82. 1 1
      build/patches/Enable-SPPI-for-devices-with-enough-memory.patch
  83. 4 4
      build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch
  84. 1 1
      build/patches/Enable-darken-websites-checkbox-in-themes.patch
  85. 124 111
      build/patches/Enable-native-Android-autofill.patch
  86. 2 2
      build/patches/Enable-network-isolation-features.patch
  87. 1 1
      build/patches/Enable-prefetch-privacy-changes-by-default.patch
  88. 13 13
      build/patches/Enable-share-intent.patch
  89. 0 23
      build/patches/Enable-user-agent-freeze-by-default.patch
  90. 75 119
      build/patches/Experimental-user-scripts-support.patch
  91. 0 22
      build/patches/Fix-segmentation-platform-build-error.patch
  92. 25 0
      build/patches/Guard-for-user-agent-reduction.patch
  93. 13 13
      build/patches/History-number-of-days-privacy-setting.patch
  94. 4 4
      build/patches/Improve-plain-text-rendering-on-mobile.patch
  95. 10 12
      build/patches/Increase-number-of-autocomplete-matches-to-10.patch
  96. 11 11
      build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch
  97. 21 21
      build/patches/JIT-site-settings.patch
  98. 1 1
      build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
  99. 1 1
      build/patches/Logcat-crash-reports-UI.patch
  100. 12 12
      build/patches/Modify-default-preferences.patch

+ 1 - 1
build/LASTCHANGE

@@ -1 +1 @@
-b9c06a0f04c03ea3997e667dff0eb39165741528-
+5e4e695db5ae34eebbd81741c4add61b263fcca5-

+ 1 - 1
build/RELEASE

@@ -1 +1 @@
-106.0.5249.163
+107.0.5304.96

+ 1 - 1
build/RELEASE_COMMIT

@@ -1 +1 @@
-8afcb6d66c09af9ccf2f306c5e0d1f997bfea024
+cc848a50ac06860b606b3adc58a9397b6d171c66

+ 23 - 25
build/bromite_patches_list.txt

@@ -3,7 +3,26 @@ do-not-hide-.orig-files.patch
 Do-not-link-with-libatomic.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
-Fix-segmentation-platform-build-error.patch
+Disable-safe-browsing.patch
+Remove-signin-and-sync-integrations.patch
+Move-some-account-settings-back-to-privacy-settings.patch
+Remove-contextual-search-manager.patch
+kill-Vision.patch
+kill-Location-fall-back-to-system.patch
+kill-Auth.patch
+Remove-binary-blob-integrations.patch
+Remove-SMS-integration.patch
+Remove-price-shopping-commerce-integrations.patch
+Remove-voice-recognition-integration.patch
+Do-not-compile-QR-code-sharing.patch
+Timezone-customization.patch
+Revert-the-removal-of-an-option-to-block-autoplay.patch
+Add-support-for-ISupportHelpAndFeedback.patch
+JIT-site-settings.patch
+Site-setting-for-images.patch
+Content-settings-infrastructure.patch
+Add-webGL-site-setting.patch
+Add-webRTC-site-settings.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
@@ -29,9 +48,7 @@ ungoogled-chromium-Disable-intranet-detector.patch
 ungoogled-chromium-no-special-hosts-domains.patch
 ungoogled-chromium-no-special-hosts-domains.patch
 ungoogled-chromium-Disable-Gaia.patch
 ungoogled-chromium-Disable-Gaia.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch
-Disable-safe-browsing.patch
 Disable-all-promo-dialogs.patch
 Disable-all-promo-dialogs.patch
-Remove-signin-and-sync-integrations.patch
 Disable-update-scheduler.patch
 Disable-update-scheduler.patch
 Add-English-only-search-engine.patch
 Add-English-only-search-engine.patch
 Add-DuckDuckGo-Lite-search-engine.patch
 Add-DuckDuckGo-Lite-search-engine.patch
@@ -53,8 +70,6 @@ Add-an-always-incognito-mode.patch
 Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
 Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
 Add-option-to-not-persist-tabs-across-sessions.patch
 Add-option-to-not-persist-tabs-across-sessions.patch
 Add-a-proxy-configuration-page.patch
 Add-a-proxy-configuration-page.patch
-Move-some-account-settings-back-to-privacy-settings.patch
-Remove-contextual-search-manager.patch
 Add-custom-tab-intents-privacy-option.patch
 Add-custom-tab-intents-privacy-option.patch
 Disable-FLoC-and-privacy-sandbox.patch
 Disable-FLoC-and-privacy-sandbox.patch
 History-number-of-days-privacy-setting.patch
 History-number-of-days-privacy-setting.patch
@@ -69,14 +84,6 @@ autofill-miscellaneous.patch
 Enable-native-Android-autofill.patch
 Enable-native-Android-autofill.patch
 first_run-deactivate-autoupdate-globally.patch
 first_run-deactivate-autoupdate-globally.patch
 translate-disable-fetching-of-languages-from-server.patch
 translate-disable-fetching-of-languages-from-server.patch
-kill-Vision.patch
-kill-Location-fall-back-to-system.patch
-kill-Auth.patch
-Remove-binary-blob-integrations.patch
-Remove-SMS-integration.patch
-Remove-price-shopping-commerce-integrations.patch
-Remove-voice-recognition-integration.patch
-Do-not-compile-QR-code-sharing.patch
 Offer-builtin-autocomplete-for-chrome-flags.patch
 Offer-builtin-autocomplete-for-chrome-flags.patch
 Use-4-tile-rows-never-show-logo.patch
 Use-4-tile-rows-never-show-logo.patch
 Disable-various-metrics.patch
 Disable-various-metrics.patch
@@ -101,7 +108,7 @@ Disable-feeds-support-by-default.patch
 Show-site-settings-for-cookies-javascript-and-ads.patch
 Show-site-settings-for-cookies-javascript-and-ads.patch
 Disable-DRM-media-origin-IDs-preprovisioning.patch
 Disable-DRM-media-origin-IDs-preprovisioning.patch
 Disable-smart-selection-by-default.patch
 Disable-smart-selection-by-default.patch
-Enable-user-agent-freeze-by-default.patch
+Guard-for-user-agent-reduction.patch
 AImageReader-CFI-crash-mitigations.patch
 AImageReader-CFI-crash-mitigations.patch
 Add-menu-item-to-view-source.patch
 Add-menu-item-to-view-source.patch
 Revert-removal-of-execution-context-address-space.patch
 Revert-removal-of-execution-context-address-space.patch
@@ -114,10 +121,8 @@ Disable-the-DIAL-repeating-discovery.patch
 Block-qjz9zk-or-trk-requests.patch
 Block-qjz9zk-or-trk-requests.patch
 Hardening-against-incognito-mode-detection.patch
 Hardening-against-incognito-mode-detection.patch
 Remove-weblayer-dependency-on-Play-Services.patch
 Remove-weblayer-dependency-on-Play-Services.patch
-Timezone-customization.patch
 Restore-Simplified-NTP-launch.patch
 Restore-Simplified-NTP-launch.patch
 Add-option-to-use-home-page-as-NTP.patch
 Add-option-to-use-home-page-as-NTP.patch
-Revert-the-removal-of-an-option-to-block-autoplay.patch
 Disable-text-fragments-by-default.patch
 Disable-text-fragments-by-default.patch
 disable-WebView-variations-support.patch
 disable-WebView-variations-support.patch
 Enable-network-isolation-features.patch
 Enable-network-isolation-features.patch
@@ -139,8 +144,6 @@ Revert-Delete-block-external-form-redirects.patch
 Enable-IntentBlockExternalFormRedirectsNoGesture.patch
 Enable-IntentBlockExternalFormRedirectsNoGesture.patch
 Add-flag-to-disable-external-intent-requests.patch
 Add-flag-to-disable-external-intent-requests.patch
 Logcat-crash-reports-UI.patch
 Logcat-crash-reports-UI.patch
-Add-support-for-ISupportHelpAndFeedback.patch
-JIT-site-settings.patch
 API-level-21-prevent-crash-on-download.patch
 API-level-21-prevent-crash-on-download.patch
 Add-flag-to-disable-vibration.patch
 Add-flag-to-disable-vibration.patch
 mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
 mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
@@ -149,7 +152,6 @@ Disable-AGSA-by-default.patch
 Allow-building-without-enable_reporting.patch
 Allow-building-without-enable_reporting.patch
 Disable-lock-icon-in-address-bar-by-default.patch
 Disable-lock-icon-in-address-bar-by-default.patch
 Enable-share-intent.patch
 Enable-share-intent.patch
-Site-setting-for-images.patch
 Bromite-auto-updater.patch
 Bromite-auto-updater.patch
 Experimental-user-scripts-support.patch
 Experimental-user-scripts-support.patch
 Keep-empty-tabs-between-sessions.patch
 Keep-empty-tabs-between-sessions.patch
@@ -177,14 +179,10 @@ Add-lifetime-options-for-permissions.patch
 Disable-crash-reporting.patch
 Disable-crash-reporting.patch
 Samsung-Note-9-SDK27-crazylinker-workaround.patch
 Samsung-Note-9-SDK27-crazylinker-workaround.patch
 Disable-TLS-resumption.patch
 Disable-TLS-resumption.patch
-Partition-DNS-requests-by-top-frame-NIK.patch
 Remove-mremap-from-seccomp-baseline-policy.patch
 Remove-mremap-from-seccomp-baseline-policy.patch
 Move-navigation-bar-to-bottom.patch
 Move-navigation-bar-to-bottom.patch
 Welcome-screen.patch
 Welcome-screen.patch
-Content-settings-infrastructure.patch
-Add-webGL-site-setting.patch
 Add-site-engagement-flag.patch
 Add-site-engagement-flag.patch
-Add-webRTC-site-settings.patch
 Enable-Certificate-Transparency.patch
 Enable-Certificate-Transparency.patch
 Invalidate-components-public-key.patch
 Invalidate-components-public-key.patch
 Improve-plain-text-rendering-on-mobile.patch
 Improve-plain-text-rendering-on-mobile.patch
@@ -198,11 +196,11 @@ Disable-PrivacyGuide.patch
 Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
 Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
 sharing-hub-always-use-visible-URL.patch
 sharing-hub-always-use-visible-URL.patch
 Re-introduce-kWebAuthCable.patch
 Re-introduce-kWebAuthCable.patch
-Revert-clipboard-user-gesture-requirement-removal.patch
 Enable-HEVC-by-default.patch
 Enable-HEVC-by-default.patch
 Partition-blobs-by-top-frame-URL.patch
 Partition-blobs-by-top-frame-URL.patch
 Override-Navigator-Language.patch
 Override-Navigator-Language.patch
 Disable-add-to-home-screen-prompt.patch
 Disable-add-to-home-screen-prompt.patch
 Remove-HTTP-referrals-in-cross-origin-navigation.patch
 Remove-HTTP-referrals-in-cross-origin-navigation.patch
-Automated-domain-substitution.patch
 Enable-ECH-by-default.patch
 Enable-ECH-by-default.patch
+Disable-StartSurface-feature.patch
+Automated-domain-substitution.patch

+ 0 - 1
build/chromium_patches_list.txt

@@ -9,4 +9,3 @@ Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
 enable-ftrivial-auto-var-init-zero.patch
 enable-ftrivial-auto-var-init-zero.patch
 Disable-feeds-support-by-default.patch
 Disable-feeds-support-by-default.patch
 Chromium-package-name.patch
 Chromium-package-name.patch
-Fix-segmentation-platform-build-error.patch

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

@@ -84,8 +84,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
-@@ -2372,9 +2372,9 @@
-     "expiry_milestone": 106
+@@ -2410,9 +2410,9 @@
+     "expiry_milestone": 115
    },
    },
    {
    {
 -    "name": "enable-image-reader",
 -    "name": "enable-image-reader",
@@ -152,7 +152,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
 diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
 diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
 --- a/gpu/config/gpu_util.cc
 --- a/gpu/config/gpu_util.cc
 +++ b/gpu/config/gpu_util.cc
 +++ b/gpu/config/gpu_util.cc
-@@ -122,6 +122,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
+@@ -121,6 +121,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
  #if !BUILDFLAG(IS_ANDROID)
  #if !BUILDFLAG(IS_ANDROID)
    return kGpuFeatureStatusDisabled;
    return kGpuFeatureStatusDisabled;
  #else
  #else
@@ -162,7 +162,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;
  
  
-@@ -345,6 +348,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
+@@ -344,6 +347,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;
    }
    }
@@ -182,13 +182,13 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
  disable_2d_canvas_auto_flush
  disable_2d_canvas_auto_flush
  disable_accelerated_av1_decode
  disable_accelerated_av1_decode
 +disable_aimagereader
 +disable_aimagereader
+ disable_accelerated_av1_encode
  disable_accelerated_h264_encode
  disable_accelerated_h264_encode
  disable_accelerated_hevc_decode
  disable_accelerated_hevc_decode
- disable_accelerated_vp8_decode
 diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
 diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
 --- a/gpu/ipc/service/gpu_init.cc
 --- a/gpu/ipc/service/gpu_init.cc
 +++ b/gpu/ipc/service/gpu_init.cc
 +++ b/gpu/ipc/service/gpu_init.cc
-@@ -624,6 +624,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
+@@ -640,6 +640,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
    }
    }
  #endif  // BUILDFLAG(IS_WIN)
  #endif  // BUILDFLAG(IS_WIN)
  
  
@@ -231,7 +231,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
-@@ -754,6 +754,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
+@@ -750,6 +750,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};
@@ -245,7 +245,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
-@@ -233,6 +233,7 @@ MEDIA_EXPORT extern const base::Feature kForceHardwareAudioDecoders;
+@@ -232,6 +232,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;

+ 4 - 4
build/patches/AV1-codec-support.patch

@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
 diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
 --- a/third_party/libaom/BUILD.gn
 --- a/third_party/libaom/BUILD.gn
 +++ b/third_party/libaom/BUILD.gn
 +++ b/third_party/libaom/BUILD.gn
-@@ -81,7 +81,7 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
+@@ -85,7 +85,7 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
        sources += aom_dsp_encoder_asm_sse2_x86_64
        sources += aom_dsp_encoder_asm_sse2_x86_64
        sources += aom_dsp_encoder_asm_ssse3_x86_64
        sources += aom_dsp_encoder_asm_ssse3_x86_64
      }
      }
@@ -23,7 +23,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
      include_dirs = libaom_include_dirs
      include_dirs = libaom_include_dirs
    }
    }
  
  
-@@ -193,7 +193,7 @@ if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
+@@ -197,7 +197,7 @@ if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
      configs += [ "//build/config/compiler:no_chromium_code" ]
      configs += [ "//build/config/compiler:no_chromium_code" ]
      if (current_cpu == "arm") {
      if (current_cpu == "arm") {
        configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
        configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
@@ -32,7 +32,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
      }
      }
      configs += [ ":libaom_config" ]
      configs += [ ":libaom_config" ]
  
  
-@@ -255,6 +255,8 @@ static_library("libaom") {
+@@ -259,6 +259,8 @@ static_library("libaom") {
    if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
    if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
        cpu_arch_full == "arm-neon-cpu-detect") {
        cpu_arch_full == "arm-neon-cpu-detect") {
      deps += [ ":libaom_intrinsics_neon" ]
      deps += [ ":libaom_intrinsics_neon" ]
@@ -44,7 +44,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
-@@ -666,6 +666,11 @@ aom_rc_interface_sources = [
+@@ -673,6 +673,11 @@ aom_rc_interface_sources = [
    "//third_party/libaom/source/libaom/test/yuv_video_source.h",
    "//third_party/libaom/source/libaom/test/yuv_video_source.h",
  ]
  ]
  
  

+ 21 - 23
build/patches/Add-AllowUserCertificates-flag.patch

@@ -5,22 +5,22 @@ Subject: Add AllowUserCertificates flag
 Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
 Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
- .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++
- .../chrome/browser/app/flags/ChromeCachedFlags.java         | 1 +
- chrome/browser/about_flags.cc                               | 6 +++++-
- chrome/browser/flag_descriptions.cc                         | 5 +++++
- chrome/browser/flag_descriptions.h                          | 3 +++
- chrome/browser/flags/android/chrome_feature_list.cc         | 4 ++++
- chrome/browser/flags/android/chrome_feature_list.h          | 1 +
- .../chromium/chrome/browser/flags/CachedFeatureFlags.java   | 1 +
- .../chromium/chrome/browser/flags/ChromeFeatureList.java    | 3 +++
- net/android/java/src/org/chromium/net/X509Util.java         | 5 +++++
- 10 files changed, 31 insertions(+), 1 deletion(-)
+ .../src/org/chromium/chrome/browser/app/ChromeActivity.java  | 3 +++
+ .../chromium/chrome/browser/app/flags/ChromeCachedFlags.java | 1 +
+ chrome/browser/about_flags.cc                                | 4 ++++
+ chrome/browser/flag_descriptions.cc                          | 5 +++++
+ chrome/browser/flag_descriptions.h                           | 3 +++
+ chrome/browser/flags/android/chrome_feature_list.cc          | 4 ++++
+ chrome/browser/flags/android/chrome_feature_list.h           | 1 +
+ .../chromium/chrome/browser/flags/CachedFeatureFlags.java    | 1 +
+ .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 3 +++
+ net/android/java/src/org/chromium/net/X509Util.java          | 5 +++++
+ 10 files changed, 30 insertions(+)
 
 
 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
-@@ -223,6 +223,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
+@@ -225,6 +225,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;
@@ -28,7 +28,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;
-@@ -945,6 +946,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -955,6 +956,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();
@@ -51,12 +51,10 @@ 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
-@@ -3466,7 +3466,11 @@ const FeatureEntry kFeatureEntries[] = {
-     {"enable-container-queries", flag_descriptions::kCSSContainerQueriesName,
-      flag_descriptions::kCSSContainerQueriesDescription, kOsAll,
-      FEATURE_VALUE_TYPE(blink::features::kCSSContainerQueries)},
--#if BUILDFLAG(IS_ANDROID)
-+#if BUILDFLAG(IS_ANDROID) // Bromite allow user certificates
+@@ -3595,6 +3595,10 @@ const FeatureEntry kFeatureEntries[] = {
+      SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)},
+ #endif  // ENABLE_EXTENSIONS
+ #if BUILDFLAG(IS_ANDROID)
 +    {"allow-user-certificates",
 +    {"allow-user-certificates",
 +     flag_descriptions::kAllowUserCertificatesName,
 +     flag_descriptions::kAllowUserCertificatesName,
 +     flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
 +     flag_descriptions::kAllowUserCertificatesDescription, kOsAndroid,
@@ -95,7 +93,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
-@@ -148,6 +148,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -149,6 +149,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &feed::kFeedNoViewCache,
      &feed::kFeedNoViewCache,
      &feed::kFeedReplaceAll,
      &feed::kFeedReplaceAll,
      &feed::kInterestFeedContentSuggestions,
      &feed::kInterestFeedContentSuggestions,
@@ -103,7 +101,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,
-@@ -441,6 +442,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2{
+@@ -453,6 +454,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2{
      "AdaptiveButtonInTopToolbarCustomizationV2",
      "AdaptiveButtonInTopToolbarCustomizationV2",
      base::FEATURE_ENABLED_BY_DEFAULT};
      base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -111,7 +109,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 +    "AllowUserCertificates", base::FEATURE_DISABLED_BY_DEFAULT};
 +    "AllowUserCertificates", base::FEATURE_DISABLED_BY_DEFAULT};
 +
 +
  const base::Feature kAddToHomescreenIPH{"AddToHomescreenIPH",
  const base::Feature kAddToHomescreenIPH{"AddToHomescreenIPH",
-                                         base::FEATURE_ENABLED_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
 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
 --- a/chrome/browser/flags/android/chrome_feature_list.h
@@ -146,7 +144,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
      public static final String ABOUT_THIS_SITE_BANNER = "AboutThisSiteBanner";
      public static final String ABOUT_THIS_SITE_BANNER = "AboutThisSiteBanner";
      public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
      public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
      public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
      public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
-@@ -613,6 +614,8 @@ public abstract class ChromeFeatureList {
+@@ -637,6 +638,8 @@ public abstract class ChromeFeatureList {
      public static final String FEED_REPLACE_ALL = "FeedReplaceAll";
      public static final String FEED_REPLACE_ALL = "FeedReplaceAll";
  
  
      /* Alphabetical: */
      /* Alphabetical: */

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

@@ -43,7 +43,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
 diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
 diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
 --- a/components/search_engines/template_url_prepopulate_data.cc
 --- a/components/search_engines/template_url_prepopulate_data.cc
 +++ b/components/search_engines/template_url_prepopulate_data.cc
 +++ b/components/search_engines/template_url_prepopulate_data.cc
-@@ -41,7 +41,7 @@ const PrepopulatedEngine* const engines_AE[] = {
+@@ -42,7 +42,7 @@ const PrepopulatedEngine* const engines_AE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -52,7 +52,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -50,7 +50,7 @@ const PrepopulatedEngine* const engines_AL[] = {
+@@ -51,7 +51,7 @@ const PrepopulatedEngine* const engines_AL[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -61,7 +61,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -59,7 +59,7 @@ const PrepopulatedEngine* const engines_AR[] = {
+@@ -60,7 +60,7 @@ const PrepopulatedEngine* const engines_AR[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_ar,
      &yahoo_ar,
@@ -70,7 +70,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -67,7 +67,7 @@ const PrepopulatedEngine* const engines_AR[] = {
+@@ -68,7 +68,7 @@ const PrepopulatedEngine* const engines_AR[] = {
  const PrepopulatedEngine* const engines_AT[] = {
  const PrepopulatedEngine* const engines_AT[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
@@ -79,7 +79,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_at,
      &yahoo_at,
      &ecosia,
      &ecosia,
  };
  };
-@@ -77,7 +77,7 @@ const PrepopulatedEngine* const engines_AU[] = {
+@@ -78,7 +78,7 @@ const PrepopulatedEngine* const engines_AU[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_au,
      &yahoo_au,
@@ -88,7 +88,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -86,7 +86,7 @@ const PrepopulatedEngine* const engines_BA[] = {
+@@ -87,7 +87,7 @@ const PrepopulatedEngine* const engines_BA[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -97,7 +97,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -96,7 +96,7 @@ const PrepopulatedEngine* const engines_BE[] = {
+@@ -97,7 +97,7 @@ const PrepopulatedEngine* const engines_BE[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
@@ -106,7 +106,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Bulgaria
  // Bulgaria
-@@ -104,7 +104,7 @@ const PrepopulatedEngine* const engines_BG[] = {
+@@ -105,7 +105,7 @@ const PrepopulatedEngine* const engines_BG[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -115,7 +115,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -113,7 +113,7 @@ const PrepopulatedEngine* const engines_BH[] = {
+@@ -114,7 +114,7 @@ const PrepopulatedEngine* const engines_BH[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -124,7 +124,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -122,7 +122,7 @@ const PrepopulatedEngine* const engines_BI[] = {
+@@ -123,7 +123,7 @@ const PrepopulatedEngine* const engines_BI[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -133,7 +133,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -131,7 +131,7 @@ const PrepopulatedEngine* const engines_BN[] = {
+@@ -132,7 +132,7 @@ const PrepopulatedEngine* const engines_BN[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -142,7 +142,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -140,7 +140,7 @@ const PrepopulatedEngine* const engines_BO[] = {
+@@ -141,7 +141,7 @@ const PrepopulatedEngine* const engines_BO[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -151,7 +151,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -149,7 +149,7 @@ const PrepopulatedEngine* const engines_BR[] = {
+@@ -150,7 +150,7 @@ const PrepopulatedEngine* const engines_BR[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_br,
      &yahoo_br,
@@ -160,7 +160,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -159,7 +159,7 @@ const PrepopulatedEngine* const engines_BY[] = {
+@@ -160,7 +160,7 @@ const PrepopulatedEngine* const engines_BY[] = {
      &yandex_by,
      &yandex_by,
      &mail_ru,
      &mail_ru,
      &bing,
      &bing,
@@ -169,7 +169,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Belize
  // Belize
-@@ -167,7 +167,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
+@@ -168,7 +168,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -178,7 +178,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -176,7 +176,7 @@ const PrepopulatedEngine* const engines_CA[] = {
+@@ -177,7 +177,7 @@ const PrepopulatedEngine* const engines_CA[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_ca,
      &yahoo_ca,
@@ -187,7 +187,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -184,7 +184,7 @@ const PrepopulatedEngine* const engines_CA[] = {
+@@ -185,7 +185,7 @@ const PrepopulatedEngine* const engines_CA[] = {
  const PrepopulatedEngine* const engines_CH[] = {
  const PrepopulatedEngine* const engines_CH[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
@@ -196,7 +196,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
      &yahoo_ch,
      &yahoo_ch,
  };
  };
-@@ -194,7 +194,7 @@ const PrepopulatedEngine* const engines_CL[] = {
+@@ -195,7 +195,7 @@ const PrepopulatedEngine* const engines_CL[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_cl,
      &yahoo_cl,
@@ -205,7 +205,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -213,7 +213,7 @@ const PrepopulatedEngine* const engines_CO[] = {
+@@ -214,7 +214,7 @@ const PrepopulatedEngine* const engines_CO[] = {
      &bing,
      &bing,
      &yahoo_co,
      &yahoo_co,
      &ecosia,
      &ecosia,
@@ -214,7 +214,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Costa Rica
  // Costa Rica
-@@ -221,7 +221,7 @@ const PrepopulatedEngine* const engines_CR[] = {
+@@ -222,7 +222,7 @@ const PrepopulatedEngine* const engines_CR[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -223,7 +223,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -231,7 +231,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
+@@ -232,7 +232,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
      &seznam_cz,
      &seznam_cz,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -232,7 +232,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Germany
  // Germany
-@@ -239,7 +239,7 @@ const PrepopulatedEngine* const engines_DE[] = {
+@@ -240,7 +240,7 @@ const PrepopulatedEngine* const engines_DE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &ecosia,
      &ecosia,
@@ -241,7 +241,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_de,
      &yahoo_de,
  };
  };
  
  
-@@ -248,7 +248,7 @@ const PrepopulatedEngine* const engines_DK[] = {
+@@ -249,7 +249,7 @@ const PrepopulatedEngine* const engines_DK[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_dk,
      &yahoo_dk,
@@ -250,7 +250,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -257,7 +257,7 @@ const PrepopulatedEngine* const engines_DO[] = {
+@@ -258,7 +258,7 @@ const PrepopulatedEngine* const engines_DO[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -259,7 +259,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -267,7 +267,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
+@@ -268,7 +268,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
      &yandex_com,
      &yandex_com,
@@ -268,7 +268,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Ecuador
  // Ecuador
-@@ -276,7 +276,7 @@ const PrepopulatedEngine* const engines_EC[] = {
+@@ -277,7 +277,7 @@ const PrepopulatedEngine* const engines_EC[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
@@ -277,7 +277,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Estonia
  // Estonia
-@@ -284,7 +284,7 @@ const PrepopulatedEngine* const engines_EE[] = {
+@@ -285,7 +285,7 @@ const PrepopulatedEngine* const engines_EE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yandex_ru,
      &yandex_ru,
@@ -286,7 +286,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
  };
  };
  
  
-@@ -294,7 +294,7 @@ const PrepopulatedEngine* const engines_EG[] = {
+@@ -295,7 +295,7 @@ const PrepopulatedEngine* const engines_EG[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
@@ -295,7 +295,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Spain
  // Spain
-@@ -302,7 +302,7 @@ const PrepopulatedEngine* const engines_ES[] = {
+@@ -303,7 +303,7 @@ const PrepopulatedEngine* const engines_ES[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
@@ -304,7 +304,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -311,7 +311,7 @@ const PrepopulatedEngine* const engines_FI[] = {
+@@ -312,7 +312,7 @@ const PrepopulatedEngine* const engines_FI[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_fi,
      &yahoo_fi,
@@ -313,7 +313,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -320,7 +320,7 @@ const PrepopulatedEngine* const engines_FO[] = {
+@@ -321,7 +321,7 @@ const PrepopulatedEngine* const engines_FO[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_dk,
      &yahoo_dk,
@@ -322,7 +322,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -338,7 +338,7 @@ const PrepopulatedEngine* const engines_GB[] = {
+@@ -339,7 +339,7 @@ const PrepopulatedEngine* const engines_GB[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_uk,
      &yahoo_uk,
@@ -331,7 +331,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -347,7 +347,7 @@ const PrepopulatedEngine* const engines_GR[] = {
+@@ -348,7 +348,7 @@ const PrepopulatedEngine* const engines_GR[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -340,7 +340,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -356,7 +356,7 @@ const PrepopulatedEngine* const engines_GT[] = {
+@@ -357,7 +357,7 @@ const PrepopulatedEngine* const engines_GT[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -349,7 +349,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -366,7 +366,7 @@ const PrepopulatedEngine* const engines_HK[] = {
+@@ -367,7 +367,7 @@ const PrepopulatedEngine* const engines_HK[] = {
      &yahoo_hk,
      &yahoo_hk,
      &bing,
      &bing,
      &baidu,
      &baidu,
@@ -358,7 +358,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Honduras
  // Honduras
-@@ -374,7 +374,7 @@ const PrepopulatedEngine* const engines_HN[] = {
+@@ -375,7 +375,7 @@ const PrepopulatedEngine* const engines_HN[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -367,7 +367,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -383,7 +383,7 @@ const PrepopulatedEngine* const engines_HR[] = {
+@@ -384,7 +384,7 @@ const PrepopulatedEngine* const engines_HR[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -376,7 +376,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -392,7 +392,7 @@ const PrepopulatedEngine* const engines_HU[] = {
+@@ -393,7 +393,7 @@ const PrepopulatedEngine* const engines_HU[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -385,7 +385,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -402,7 +402,7 @@ const PrepopulatedEngine* const engines_ID[] = {
+@@ -403,7 +403,7 @@ const PrepopulatedEngine* const engines_ID[] = {
      &yahoo_id,
      &yahoo_id,
      &bing,
      &bing,
      &yandex_com,
      &yandex_com,
@@ -394,7 +394,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Ireland
  // Ireland
-@@ -410,7 +410,7 @@ const PrepopulatedEngine* const engines_IE[] = {
+@@ -411,7 +411,7 @@ const PrepopulatedEngine* const engines_IE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_uk,
      &yahoo_uk,
@@ -403,7 +403,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -420,7 +420,7 @@ const PrepopulatedEngine* const engines_IL[] = {
+@@ -421,7 +421,7 @@ const PrepopulatedEngine* const engines_IL[] = {
      &bing,
      &bing,
      &yandex_ru,
      &yandex_ru,
      &yahoo,
      &yahoo,
@@ -412,7 +412,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // India
  // India
-@@ -428,7 +428,7 @@ const PrepopulatedEngine* const engines_IN[] = {
+@@ -429,7 +429,7 @@ const PrepopulatedEngine* const engines_IN[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_in,
      &yahoo_in,
@@ -421,7 +421,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &info_com,
      &info_com,
  };
  };
  
  
-@@ -438,7 +438,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
+@@ -439,7 +439,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_tr,
      &yandex_tr,
@@ -430,7 +430,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Iran
  // Iran
-@@ -447,14 +447,14 @@ const PrepopulatedEngine* const engines_IR[] = {
+@@ -448,14 +448,14 @@ const PrepopulatedEngine* const engines_IR[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ask,
      &ask,
@@ -447,7 +447,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
  };
  };
-@@ -464,7 +464,7 @@ const PrepopulatedEngine* const engines_IT[] = {
+@@ -465,7 +465,7 @@ const PrepopulatedEngine* const engines_IT[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -456,7 +456,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -473,7 +473,7 @@ const PrepopulatedEngine* const engines_JM[] = {
+@@ -474,7 +474,7 @@ const PrepopulatedEngine* const engines_JM[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -465,7 +465,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -482,7 +482,7 @@ const PrepopulatedEngine* const engines_JO[] = {
+@@ -483,7 +483,7 @@ const PrepopulatedEngine* const engines_JO[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -474,7 +474,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -491,7 +491,7 @@ const PrepopulatedEngine* const engines_JP[] = {
+@@ -492,7 +492,7 @@ const PrepopulatedEngine* const engines_JP[] = {
      &googleen, &google,
      &googleen, &google,
      &yahoo_jp,
      &yahoo_jp,
      &bing,
      &bing,
@@ -483,7 +483,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &baidu,
      &baidu,
  };
  };
  
  
-@@ -500,7 +500,7 @@ const PrepopulatedEngine* const engines_KE[] = {
+@@ -501,7 +501,7 @@ const PrepopulatedEngine* const engines_KE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -492,7 +492,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -518,7 +518,7 @@ const PrepopulatedEngine* const engines_KW[] = {
+@@ -519,7 +519,7 @@ const PrepopulatedEngine* const engines_KW[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -501,7 +501,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -528,7 +528,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
+@@ -529,7 +529,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
      &yandex_kz,
      &yandex_kz,
      &mail_ru,
      &mail_ru,
      &bing,
      &bing,
@@ -510,7 +510,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Lebanon
  // Lebanon
-@@ -536,7 +536,7 @@ const PrepopulatedEngine* const engines_LB[] = {
+@@ -537,7 +537,7 @@ const PrepopulatedEngine* const engines_LB[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -519,7 +519,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -544,7 +544,7 @@ const PrepopulatedEngine* const engines_LB[] = {
+@@ -545,7 +545,7 @@ const PrepopulatedEngine* const engines_LB[] = {
  const PrepopulatedEngine* const engines_LI[] = {
  const PrepopulatedEngine* const engines_LI[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
@@ -528,7 +528,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
  };
  };
-@@ -554,7 +554,7 @@ const PrepopulatedEngine* const engines_LT[] = {
+@@ -555,7 +555,7 @@ const PrepopulatedEngine* const engines_LT[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -537,7 +537,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -562,7 +562,7 @@ const PrepopulatedEngine* const engines_LT[] = {
+@@ -563,7 +563,7 @@ const PrepopulatedEngine* const engines_LT[] = {
  const PrepopulatedEngine* const engines_LU[] = {
  const PrepopulatedEngine* const engines_LU[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
@@ -546,7 +546,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
  };
  };
-@@ -573,7 +573,7 @@ const PrepopulatedEngine* const engines_LV[] = {
+@@ -574,7 +574,7 @@ const PrepopulatedEngine* const engines_LV[] = {
      &bing,
      &bing,
      &yandex_ru,
      &yandex_ru,
      &yahoo,
      &yahoo,
@@ -555,7 +555,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Libya
  // Libya
-@@ -582,7 +582,7 @@ const PrepopulatedEngine* const engines_LY[] = {
+@@ -583,7 +583,7 @@ const PrepopulatedEngine* const engines_LY[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
@@ -564,7 +564,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Morocco
  // Morocco
-@@ -591,14 +591,14 @@ const PrepopulatedEngine* const engines_MA[] = {
+@@ -592,14 +592,14 @@ const PrepopulatedEngine* const engines_MA[] = {
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
      &yandex_com,
      &yandex_com,
@@ -581,7 +581,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_fr,
      &yahoo_fr,
      &ecosia,
      &ecosia,
  };
  };
-@@ -618,7 +618,7 @@ const PrepopulatedEngine* const engines_ME[] = {
+@@ -619,7 +619,7 @@ const PrepopulatedEngine* const engines_ME[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_ru,
      &yandex_ru,
@@ -590,7 +590,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Macedonia
  // Macedonia
-@@ -626,7 +626,7 @@ const PrepopulatedEngine* const engines_MK[] = {
+@@ -627,7 +627,7 @@ const PrepopulatedEngine* const engines_MK[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -599,7 +599,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -635,7 +635,7 @@ const PrepopulatedEngine* const engines_MX[] = {
+@@ -636,7 +636,7 @@ const PrepopulatedEngine* const engines_MX[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_mx,
      &yahoo_mx,
@@ -608,7 +608,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -644,7 +644,7 @@ const PrepopulatedEngine* const engines_MY[] = {
+@@ -645,7 +645,7 @@ const PrepopulatedEngine* const engines_MY[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_my,
      &yahoo_my,
@@ -617,7 +617,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -653,7 +653,7 @@ const PrepopulatedEngine* const engines_NI[] = {
+@@ -654,7 +654,7 @@ const PrepopulatedEngine* const engines_NI[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -626,7 +626,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -662,7 +662,7 @@ const PrepopulatedEngine* const engines_NL[] = {
+@@ -663,7 +663,7 @@ const PrepopulatedEngine* const engines_NL[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_nl,
      &yahoo_nl,
@@ -635,7 +635,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -671,7 +671,7 @@ const PrepopulatedEngine* const engines_NO[] = {
+@@ -672,7 +672,7 @@ const PrepopulatedEngine* const engines_NO[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -644,7 +644,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -680,7 +680,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
+@@ -681,7 +681,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_nz,
      &yahoo_nz,
@@ -653,7 +653,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -689,7 +689,7 @@ const PrepopulatedEngine* const engines_OM[] = {
+@@ -690,7 +690,7 @@ const PrepopulatedEngine* const engines_OM[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -662,7 +662,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &petal_search,
      &petal_search,
  };
  };
  
  
-@@ -698,7 +698,7 @@ const PrepopulatedEngine* const engines_PA[] = {
+@@ -699,7 +699,7 @@ const PrepopulatedEngine* const engines_PA[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
@@ -671,7 +671,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -708,7 +708,7 @@ const PrepopulatedEngine* const engines_PE[] = {
+@@ -709,7 +709,7 @@ const PrepopulatedEngine* const engines_PE[] = {
      &bing,
      &bing,
      &yahoo_pe,
      &yahoo_pe,
      &ecosia,
      &ecosia,
@@ -680,7 +680,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Philippines
  // Philippines
-@@ -717,7 +717,7 @@ const PrepopulatedEngine* const engines_PH[] = {
+@@ -718,7 +718,7 @@ const PrepopulatedEngine* const engines_PH[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
@@ -689,7 +689,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Pakistan
  // Pakistan
-@@ -725,7 +725,7 @@ const PrepopulatedEngine* const engines_PK[] = {
+@@ -726,7 +726,7 @@ const PrepopulatedEngine* const engines_PK[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -698,7 +698,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -734,7 +734,7 @@ const PrepopulatedEngine* const engines_PL[] = {
+@@ -735,7 +735,7 @@ const PrepopulatedEngine* const engines_PL[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -707,7 +707,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -743,7 +743,7 @@ const PrepopulatedEngine* const engines_PR[] = {
+@@ -744,7 +744,7 @@ const PrepopulatedEngine* const engines_PR[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -716,7 +716,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -752,7 +752,7 @@ const PrepopulatedEngine* const engines_PT[] = {
+@@ -753,7 +753,7 @@ const PrepopulatedEngine* const engines_PT[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -725,7 +725,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -761,7 +761,7 @@ const PrepopulatedEngine* const engines_PY[] = {
+@@ -762,7 +762,7 @@ const PrepopulatedEngine* const engines_PY[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
@@ -734,7 +734,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -770,7 +770,7 @@ const PrepopulatedEngine* const engines_QA[] = {
+@@ -771,7 +771,7 @@ const PrepopulatedEngine* const engines_QA[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -743,7 +743,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_tr,
      &yandex_tr,
  };
  };
  
  
-@@ -779,7 +779,7 @@ const PrepopulatedEngine* const engines_RO[] = {
+@@ -780,7 +780,7 @@ const PrepopulatedEngine* const engines_RO[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -752,7 +752,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_tr,
      &yandex_tr,
  };
  };
  
  
-@@ -788,7 +788,7 @@ const PrepopulatedEngine* const engines_RS[] = {
+@@ -789,7 +789,7 @@ const PrepopulatedEngine* const engines_RS[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -761,7 +761,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
  };
  };
  
  
-@@ -798,7 +798,7 @@ const PrepopulatedEngine* const engines_RU[] = {
+@@ -799,7 +799,7 @@ const PrepopulatedEngine* const engines_RU[] = {
      &yandex_ru,
      &yandex_ru,
      &mail_ru,
      &mail_ru,
      &bing,
      &bing,
@@ -770,7 +770,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Rwanda
  // Rwanda
-@@ -806,7 +806,7 @@ const PrepopulatedEngine* const engines_RW[] = {
+@@ -807,7 +807,7 @@ const PrepopulatedEngine* const engines_RW[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -779,7 +779,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -816,7 +816,7 @@ const PrepopulatedEngine* const engines_SA[] = {
+@@ -817,7 +817,7 @@ const PrepopulatedEngine* const engines_SA[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
@@ -788,7 +788,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Sweden
  // Sweden
-@@ -824,7 +824,7 @@ const PrepopulatedEngine* const engines_SE[] = {
+@@ -825,7 +825,7 @@ const PrepopulatedEngine* const engines_SE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_se,
      &yahoo_se,
@@ -797,7 +797,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -833,7 +833,7 @@ const PrepopulatedEngine* const engines_SG[] = {
+@@ -834,7 +834,7 @@ const PrepopulatedEngine* const engines_SG[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_sg,
      &yahoo_sg,
@@ -806,7 +806,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &baidu,
      &baidu,
  };
  };
  
  
-@@ -841,7 +841,7 @@ const PrepopulatedEngine* const engines_SG[] = {
+@@ -842,7 +842,7 @@ const PrepopulatedEngine* const engines_SG[] = {
  const PrepopulatedEngine* const engines_SI[] = {
  const PrepopulatedEngine* const engines_SI[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
@@ -815,7 +815,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
  };
  };
-@@ -850,7 +850,7 @@ const PrepopulatedEngine* const engines_SI[] = {
+@@ -851,7 +851,7 @@ const PrepopulatedEngine* const engines_SI[] = {
  const PrepopulatedEngine* const engines_SK[] = {
  const PrepopulatedEngine* const engines_SK[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
@@ -824,7 +824,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
  };
  };
-@@ -860,7 +860,7 @@ const PrepopulatedEngine* const engines_SV[] = {
+@@ -861,7 +861,7 @@ const PrepopulatedEngine* const engines_SV[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
@@ -833,7 +833,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -870,7 +870,7 @@ const PrepopulatedEngine* const engines_SY[] = {
+@@ -871,7 +871,7 @@ const PrepopulatedEngine* const engines_SY[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
@@ -842,7 +842,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Thailand
  // Thailand
-@@ -887,7 +887,7 @@ const PrepopulatedEngine* const engines_TN[] = {
+@@ -888,7 +888,7 @@ const PrepopulatedEngine* const engines_TN[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
@@ -851,7 +851,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_com,
      &yandex_com,
  };
  };
  
  
-@@ -897,7 +897,7 @@ const PrepopulatedEngine* const engines_TR[] = {
+@@ -898,7 +898,7 @@ const PrepopulatedEngine* const engines_TR[] = {
      &yandex_tr,
      &yandex_tr,
      &yahoo_tr,
      &yahoo_tr,
      &bing,
      &bing,
@@ -860,7 +860,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Trinidad and Tobago
  // Trinidad and Tobago
-@@ -905,7 +905,7 @@ const PrepopulatedEngine* const engines_TT[] = {
+@@ -906,7 +906,7 @@ const PrepopulatedEngine* const engines_TT[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -869,7 +869,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -915,7 +915,7 @@ const PrepopulatedEngine* const engines_TW[] = {
+@@ -916,7 +916,7 @@ const PrepopulatedEngine* const engines_TW[] = {
      &yahoo_tw,
      &yahoo_tw,
      &bing,
      &bing,
      &baidu,
      &baidu,
@@ -878,7 +878,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // Tanzania
  // Tanzania
-@@ -923,7 +923,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
+@@ -924,7 +924,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -887,7 +887,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &baidu,
      &baidu,
  };
  };
  
  
-@@ -932,7 +932,7 @@ const PrepopulatedEngine* const engines_UA[] = {
+@@ -933,7 +933,7 @@ const PrepopulatedEngine* const engines_UA[] = {
      &googleen, &google,
      &googleen, &google,
      &yandex_ua,
      &yandex_ua,
      &bing,
      &bing,
@@ -896,7 +896,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo,
      &yahoo,
  };
  };
  
  
-@@ -941,7 +941,7 @@ const PrepopulatedEngine* const engines_US[] = {
+@@ -942,7 +942,7 @@ const PrepopulatedEngine* const engines_US[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -905,7 +905,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -950,7 +950,7 @@ const PrepopulatedEngine* const engines_UY[] = {
+@@ -951,7 +951,7 @@ const PrepopulatedEngine* const engines_UY[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
@@ -914,7 +914,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -959,7 +959,7 @@ const PrepopulatedEngine* const engines_VE[] = {
+@@ -960,7 +960,7 @@ const PrepopulatedEngine* const engines_VE[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
@@ -923,7 +923,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -978,7 +978,7 @@ const PrepopulatedEngine* const engines_YE[] = {
+@@ -979,7 +979,7 @@ const PrepopulatedEngine* const engines_YE[] = {
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
@@ -932,7 +932,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
  };
  };
  
  
  // South Africa
  // South Africa
-@@ -986,7 +986,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
+@@ -987,7 +987,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
@@ -941,7 +941,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &ecosia,
      &ecosia,
  };
  };
  
  
-@@ -995,7 +995,7 @@ const PrepopulatedEngine* const engines_ZW[] = {
+@@ -996,7 +996,7 @@ const PrepopulatedEngine* const engines_ZW[] = {
      &googleen, &google,
      &googleen, &google,
      &bing,
      &bing,
      &yahoo,
      &yahoo,

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

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
 diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
 --- a/components/search_engines/prepopulated_engines.json
 --- a/components/search_engines/prepopulated_engines.json
 +++ b/components/search_engines/prepopulated_engines.json
 +++ b/components/search_engines/prepopulated_engines.json
-@@ -135,6 +135,27 @@
+@@ -136,6 +136,27 @@
        "id": 1
        "id": 1
      },
      },
  
  
@@ -57,7 +57,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
 diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
 diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
 --- a/components/search_engines/template_url_prepopulate_data.cc
 --- a/components/search_engines/template_url_prepopulate_data.cc
 +++ b/components/search_engines/template_url_prepopulate_data.cc
 +++ b/components/search_engines/template_url_prepopulate_data.cc
-@@ -28,7 +28,7 @@ namespace {
+@@ -29,7 +29,7 @@ namespace {
  
  
  // Default (for countries with no better engine set)
  // Default (for countries with no better engine set)
  const PrepopulatedEngine* const engines_default[] = {
  const PrepopulatedEngine* const engines_default[] = {
@@ -66,7 +66,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
  };
  };
-@@ -38,7 +38,7 @@ const PrepopulatedEngine* const engines_default[] = {
+@@ -39,7 +39,7 @@ const PrepopulatedEngine* const engines_default[] = {
  // clang-format off
  // clang-format off
  // United Arab Emirates
  // United Arab Emirates
  const PrepopulatedEngine* const engines_AE[] = {
  const PrepopulatedEngine* const engines_AE[] = {
@@ -75,7 +75,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -47,7 +47,7 @@ const PrepopulatedEngine* const engines_AE[] = {
+@@ -48,7 +48,7 @@ const PrepopulatedEngine* const engines_AE[] = {
  
  
  // Albania
  // Albania
  const PrepopulatedEngine* const engines_AL[] = {
  const PrepopulatedEngine* const engines_AL[] = {
@@ -84,7 +84,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -56,7 +56,7 @@ const PrepopulatedEngine* const engines_AL[] = {
+@@ -57,7 +57,7 @@ const PrepopulatedEngine* const engines_AL[] = {
  
  
  // Argentina
  // Argentina
  const PrepopulatedEngine* const engines_AR[] = {
  const PrepopulatedEngine* const engines_AR[] = {
@@ -93,7 +93,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_ar,
      &yahoo_ar,
      &duckduckgo,
      &duckduckgo,
-@@ -65,7 +65,7 @@ const PrepopulatedEngine* const engines_AR[] = {
+@@ -66,7 +66,7 @@ const PrepopulatedEngine* const engines_AR[] = {
  
  
  // Austria
  // Austria
  const PrepopulatedEngine* const engines_AT[] = {
  const PrepopulatedEngine* const engines_AT[] = {
@@ -102,7 +102,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo_at,
      &yahoo_at,
-@@ -74,7 +74,7 @@ const PrepopulatedEngine* const engines_AT[] = {
+@@ -75,7 +75,7 @@ const PrepopulatedEngine* const engines_AT[] = {
  
  
  // Australia
  // Australia
  const PrepopulatedEngine* const engines_AU[] = {
  const PrepopulatedEngine* const engines_AU[] = {
@@ -111,7 +111,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_au,
      &yahoo_au,
      &duckduckgo,
      &duckduckgo,
-@@ -83,7 +83,7 @@ const PrepopulatedEngine* const engines_AU[] = {
+@@ -84,7 +84,7 @@ const PrepopulatedEngine* const engines_AU[] = {
  
  
  // Bosnia and Herzegovina
  // Bosnia and Herzegovina
  const PrepopulatedEngine* const engines_BA[] = {
  const PrepopulatedEngine* const engines_BA[] = {
@@ -120,7 +120,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -92,7 +92,7 @@ const PrepopulatedEngine* const engines_BA[] = {
+@@ -93,7 +93,7 @@ const PrepopulatedEngine* const engines_BA[] = {
  
  
  // Belgium
  // Belgium
  const PrepopulatedEngine* const engines_BE[] = {
  const PrepopulatedEngine* const engines_BE[] = {
@@ -129,7 +129,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
-@@ -101,7 +101,7 @@ const PrepopulatedEngine* const engines_BE[] = {
+@@ -102,7 +102,7 @@ const PrepopulatedEngine* const engines_BE[] = {
  
  
  // Bulgaria
  // Bulgaria
  const PrepopulatedEngine* const engines_BG[] = {
  const PrepopulatedEngine* const engines_BG[] = {
@@ -138,7 +138,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -110,7 +110,7 @@ const PrepopulatedEngine* const engines_BG[] = {
+@@ -111,7 +111,7 @@ const PrepopulatedEngine* const engines_BG[] = {
  
  
  // Bahrain
  // Bahrain
  const PrepopulatedEngine* const engines_BH[] = {
  const PrepopulatedEngine* const engines_BH[] = {
@@ -147,7 +147,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -119,7 +119,7 @@ const PrepopulatedEngine* const engines_BH[] = {
+@@ -120,7 +120,7 @@ const PrepopulatedEngine* const engines_BH[] = {
  
  
  // Burundi
  // Burundi
  const PrepopulatedEngine* const engines_BI[] = {
  const PrepopulatedEngine* const engines_BI[] = {
@@ -156,7 +156,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -128,7 +128,7 @@ const PrepopulatedEngine* const engines_BI[] = {
+@@ -129,7 +129,7 @@ const PrepopulatedEngine* const engines_BI[] = {
  
  
  // Brunei
  // Brunei
  const PrepopulatedEngine* const engines_BN[] = {
  const PrepopulatedEngine* const engines_BN[] = {
@@ -165,7 +165,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -137,7 +137,7 @@ const PrepopulatedEngine* const engines_BN[] = {
+@@ -138,7 +138,7 @@ const PrepopulatedEngine* const engines_BN[] = {
  
  
  // Bolivia
  // Bolivia
  const PrepopulatedEngine* const engines_BO[] = {
  const PrepopulatedEngine* const engines_BO[] = {
@@ -174,7 +174,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -146,7 +146,7 @@ const PrepopulatedEngine* const engines_BO[] = {
+@@ -147,7 +147,7 @@ const PrepopulatedEngine* const engines_BO[] = {
  
  
  // Brazil
  // Brazil
  const PrepopulatedEngine* const engines_BR[] = {
  const PrepopulatedEngine* const engines_BR[] = {
@@ -183,7 +183,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_br,
      &yahoo_br,
      &duckduckgo,
      &duckduckgo,
-@@ -155,7 +155,7 @@ const PrepopulatedEngine* const engines_BR[] = {
+@@ -156,7 +156,7 @@ const PrepopulatedEngine* const engines_BR[] = {
  
  
  // Belarus
  // Belarus
  const PrepopulatedEngine* const engines_BY[] = {
  const PrepopulatedEngine* const engines_BY[] = {
@@ -192,7 +192,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_by,
      &yandex_by,
      &mail_ru,
      &mail_ru,
      &bing,
      &bing,
-@@ -164,7 +164,7 @@ const PrepopulatedEngine* const engines_BY[] = {
+@@ -165,7 +165,7 @@ const PrepopulatedEngine* const engines_BY[] = {
  
  
  // Belize
  // Belize
  const PrepopulatedEngine* const engines_BZ[] = {
  const PrepopulatedEngine* const engines_BZ[] = {
@@ -201,7 +201,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -173,7 +173,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
+@@ -174,7 +174,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
  
  
  // Canada
  // Canada
  const PrepopulatedEngine* const engines_CA[] = {
  const PrepopulatedEngine* const engines_CA[] = {
@@ -210,7 +210,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_ca,
      &yahoo_ca,
      &duckduckgo,
      &duckduckgo,
-@@ -182,7 +182,7 @@ const PrepopulatedEngine* const engines_CA[] = {
+@@ -183,7 +183,7 @@ const PrepopulatedEngine* const engines_CA[] = {
  
  
  // Switzerland
  // Switzerland
  const PrepopulatedEngine* const engines_CH[] = {
  const PrepopulatedEngine* const engines_CH[] = {
@@ -219,7 +219,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &ecosia,
      &ecosia,
-@@ -191,7 +191,7 @@ const PrepopulatedEngine* const engines_CH[] = {
+@@ -192,7 +192,7 @@ const PrepopulatedEngine* const engines_CH[] = {
  
  
  // Chile
  // Chile
  const PrepopulatedEngine* const engines_CL[] = {
  const PrepopulatedEngine* const engines_CL[] = {
@@ -228,7 +228,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_cl,
      &yahoo_cl,
      &duckduckgo,
      &duckduckgo,
-@@ -203,13 +203,13 @@ const PrepopulatedEngine* const engines_CN[] = {
+@@ -204,13 +204,13 @@ const PrepopulatedEngine* const engines_CN[] = {
      &sogou,
      &sogou,
      &baidu,
      &baidu,
      &bing,
      &bing,
@@ -244,7 +244,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_co,
      &yahoo_co,
      &ecosia,
      &ecosia,
-@@ -218,7 +218,7 @@ const PrepopulatedEngine* const engines_CO[] = {
+@@ -219,7 +219,7 @@ const PrepopulatedEngine* const engines_CO[] = {
  
  
  // Costa Rica
  // Costa Rica
  const PrepopulatedEngine* const engines_CR[] = {
  const PrepopulatedEngine* const engines_CR[] = {
@@ -253,7 +253,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -227,7 +227,7 @@ const PrepopulatedEngine* const engines_CR[] = {
+@@ -228,7 +228,7 @@ const PrepopulatedEngine* const engines_CR[] = {
  
  
  // Czech Republic
  // Czech Republic
  const PrepopulatedEngine* const engines_CZ[] = {
  const PrepopulatedEngine* const engines_CZ[] = {
@@ -262,7 +262,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &seznam_cz,
      &seznam_cz,
      &bing,
      &bing,
      &yahoo,
      &yahoo,
-@@ -236,7 +236,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
+@@ -237,7 +237,7 @@ const PrepopulatedEngine* const engines_CZ[] = {
  
  
  // Germany
  // Germany
  const PrepopulatedEngine* const engines_DE[] = {
  const PrepopulatedEngine* const engines_DE[] = {
@@ -271,7 +271,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &ecosia,
      &ecosia,
      &duckduckgo,
      &duckduckgo,
-@@ -245,7 +245,7 @@ const PrepopulatedEngine* const engines_DE[] = {
+@@ -246,7 +246,7 @@ const PrepopulatedEngine* const engines_DE[] = {
  
  
  // Denmark
  // Denmark
  const PrepopulatedEngine* const engines_DK[] = {
  const PrepopulatedEngine* const engines_DK[] = {
@@ -280,7 +280,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_dk,
      &yahoo_dk,
      &duckduckgo,
      &duckduckgo,
-@@ -254,7 +254,7 @@ const PrepopulatedEngine* const engines_DK[] = {
+@@ -255,7 +255,7 @@ const PrepopulatedEngine* const engines_DK[] = {
  
  
  // Dominican Republic
  // Dominican Republic
  const PrepopulatedEngine* const engines_DO[] = {
  const PrepopulatedEngine* const engines_DO[] = {
@@ -289,7 +289,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -263,7 +263,7 @@ const PrepopulatedEngine* const engines_DO[] = {
+@@ -264,7 +264,7 @@ const PrepopulatedEngine* const engines_DO[] = {
  
  
  // Algeria
  // Algeria
  const PrepopulatedEngine* const engines_DZ[] = {
  const PrepopulatedEngine* const engines_DZ[] = {
@@ -298,7 +298,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
      &yandex_com,
      &yandex_com,
-@@ -272,7 +272,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
+@@ -273,7 +273,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
  
  
  // Ecuador
  // Ecuador
  const PrepopulatedEngine* const engines_EC[] = {
  const PrepopulatedEngine* const engines_EC[] = {
@@ -307,7 +307,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
-@@ -281,7 +281,7 @@ const PrepopulatedEngine* const engines_EC[] = {
+@@ -282,7 +282,7 @@ const PrepopulatedEngine* const engines_EC[] = {
  
  
  // Estonia
  // Estonia
  const PrepopulatedEngine* const engines_EE[] = {
  const PrepopulatedEngine* const engines_EE[] = {
@@ -316,7 +316,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yandex_ru,
      &yandex_ru,
      &duckduckgo,
      &duckduckgo,
-@@ -290,7 +290,7 @@ const PrepopulatedEngine* const engines_EE[] = {
+@@ -291,7 +291,7 @@ const PrepopulatedEngine* const engines_EE[] = {
  
  
  // Egypt
  // Egypt
  const PrepopulatedEngine* const engines_EG[] = {
  const PrepopulatedEngine* const engines_EG[] = {
@@ -325,7 +325,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
-@@ -299,7 +299,7 @@ const PrepopulatedEngine* const engines_EG[] = {
+@@ -300,7 +300,7 @@ const PrepopulatedEngine* const engines_EG[] = {
  
  
  // Spain
  // Spain
  const PrepopulatedEngine* const engines_ES[] = {
  const PrepopulatedEngine* const engines_ES[] = {
@@ -334,7 +334,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
      &duckduckgo,
      &duckduckgo,
-@@ -308,7 +308,7 @@ const PrepopulatedEngine* const engines_ES[] = {
+@@ -309,7 +309,7 @@ const PrepopulatedEngine* const engines_ES[] = {
  
  
  // Finland
  // Finland
  const PrepopulatedEngine* const engines_FI[] = {
  const PrepopulatedEngine* const engines_FI[] = {
@@ -343,7 +343,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_fi,
      &yahoo_fi,
      &duckduckgo,
      &duckduckgo,
-@@ -317,7 +317,7 @@ const PrepopulatedEngine* const engines_FI[] = {
+@@ -318,7 +318,7 @@ const PrepopulatedEngine* const engines_FI[] = {
  
  
  // Faroe Islands
  // Faroe Islands
  const PrepopulatedEngine* const engines_FO[] = {
  const PrepopulatedEngine* const engines_FO[] = {
@@ -352,7 +352,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_dk,
      &yahoo_dk,
      &duckduckgo,
      &duckduckgo,
-@@ -326,7 +326,7 @@ const PrepopulatedEngine* const engines_FO[] = {
+@@ -327,7 +327,7 @@ const PrepopulatedEngine* const engines_FO[] = {
  
  
  // France
  // France
  const PrepopulatedEngine* const engines_FR[] = {
  const PrepopulatedEngine* const engines_FR[] = {
@@ -361,7 +361,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
      &qwant,
      &qwant,
-@@ -335,7 +335,7 @@ const PrepopulatedEngine* const engines_FR[] = {
+@@ -336,7 +336,7 @@ const PrepopulatedEngine* const engines_FR[] = {
  
  
  // United Kingdom
  // United Kingdom
  const PrepopulatedEngine* const engines_GB[] = {
  const PrepopulatedEngine* const engines_GB[] = {
@@ -370,7 +370,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_uk,
      &yahoo_uk,
      &duckduckgo,
      &duckduckgo,
-@@ -344,7 +344,7 @@ const PrepopulatedEngine* const engines_GB[] = {
+@@ -345,7 +345,7 @@ const PrepopulatedEngine* const engines_GB[] = {
  
  
  // Greece
  // Greece
  const PrepopulatedEngine* const engines_GR[] = {
  const PrepopulatedEngine* const engines_GR[] = {
@@ -379,7 +379,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -353,7 +353,7 @@ const PrepopulatedEngine* const engines_GR[] = {
+@@ -354,7 +354,7 @@ const PrepopulatedEngine* const engines_GR[] = {
  
  
  // Guatemala
  // Guatemala
  const PrepopulatedEngine* const engines_GT[] = {
  const PrepopulatedEngine* const engines_GT[] = {
@@ -388,7 +388,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -362,7 +362,7 @@ const PrepopulatedEngine* const engines_GT[] = {
+@@ -363,7 +363,7 @@ const PrepopulatedEngine* const engines_GT[] = {
  
  
  // Hong Kong
  // Hong Kong
  const PrepopulatedEngine* const engines_HK[] = {
  const PrepopulatedEngine* const engines_HK[] = {
@@ -397,7 +397,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_hk,
      &yahoo_hk,
      &bing,
      &bing,
      &baidu,
      &baidu,
-@@ -371,7 +371,7 @@ const PrepopulatedEngine* const engines_HK[] = {
+@@ -372,7 +372,7 @@ const PrepopulatedEngine* const engines_HK[] = {
  
  
  // Honduras
  // Honduras
  const PrepopulatedEngine* const engines_HN[] = {
  const PrepopulatedEngine* const engines_HN[] = {
@@ -406,7 +406,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -380,7 +380,7 @@ const PrepopulatedEngine* const engines_HN[] = {
+@@ -381,7 +381,7 @@ const PrepopulatedEngine* const engines_HN[] = {
  
  
  // Croatia
  // Croatia
  const PrepopulatedEngine* const engines_HR[] = {
  const PrepopulatedEngine* const engines_HR[] = {
@@ -415,7 +415,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -389,7 +389,7 @@ const PrepopulatedEngine* const engines_HR[] = {
+@@ -390,7 +390,7 @@ const PrepopulatedEngine* const engines_HR[] = {
  
  
  // Hungary
  // Hungary
  const PrepopulatedEngine* const engines_HU[] = {
  const PrepopulatedEngine* const engines_HU[] = {
@@ -424,7 +424,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -398,7 +398,7 @@ const PrepopulatedEngine* const engines_HU[] = {
+@@ -399,7 +399,7 @@ const PrepopulatedEngine* const engines_HU[] = {
  
  
  // Indonesia
  // Indonesia
  const PrepopulatedEngine* const engines_ID[] = {
  const PrepopulatedEngine* const engines_ID[] = {
@@ -433,7 +433,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_id,
      &yahoo_id,
      &bing,
      &bing,
      &yandex_com,
      &yandex_com,
-@@ -407,7 +407,7 @@ const PrepopulatedEngine* const engines_ID[] = {
+@@ -408,7 +408,7 @@ const PrepopulatedEngine* const engines_ID[] = {
  
  
  // Ireland
  // Ireland
  const PrepopulatedEngine* const engines_IE[] = {
  const PrepopulatedEngine* const engines_IE[] = {
@@ -442,7 +442,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_uk,
      &yahoo_uk,
      &duckduckgo,
      &duckduckgo,
-@@ -416,7 +416,7 @@ const PrepopulatedEngine* const engines_IE[] = {
+@@ -417,7 +417,7 @@ const PrepopulatedEngine* const engines_IE[] = {
  
  
  // Israel
  // Israel
  const PrepopulatedEngine* const engines_IL[] = {
  const PrepopulatedEngine* const engines_IL[] = {
@@ -451,7 +451,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yandex_ru,
      &yandex_ru,
      &yahoo,
      &yahoo,
-@@ -425,7 +425,7 @@ const PrepopulatedEngine* const engines_IL[] = {
+@@ -426,7 +426,7 @@ const PrepopulatedEngine* const engines_IL[] = {
  
  
  // India
  // India
  const PrepopulatedEngine* const engines_IN[] = {
  const PrepopulatedEngine* const engines_IN[] = {
@@ -460,7 +460,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_in,
      &yahoo_in,
      &duckduckgo,
      &duckduckgo,
-@@ -434,7 +434,7 @@ const PrepopulatedEngine* const engines_IN[] = {
+@@ -435,7 +435,7 @@ const PrepopulatedEngine* const engines_IN[] = {
  
  
  // Iraq
  // Iraq
  const PrepopulatedEngine* const engines_IQ[] = {
  const PrepopulatedEngine* const engines_IQ[] = {
@@ -469,7 +469,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_tr,
      &yandex_tr,
-@@ -443,7 +443,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
+@@ -444,7 +444,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
  
  
  // Iran
  // Iran
  const PrepopulatedEngine* const engines_IR[] = {
  const PrepopulatedEngine* const engines_IR[] = {
@@ -478,7 +478,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ask,
      &ask,
-@@ -452,7 +452,7 @@ const PrepopulatedEngine* const engines_IR[] = {
+@@ -453,7 +453,7 @@ const PrepopulatedEngine* const engines_IR[] = {
  
  
  // Iceland
  // Iceland
  const PrepopulatedEngine* const engines_IS[] = {
  const PrepopulatedEngine* const engines_IS[] = {
@@ -487,7 +487,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo,
      &yahoo,
-@@ -461,7 +461,7 @@ const PrepopulatedEngine* const engines_IS[] = {
+@@ -462,7 +462,7 @@ const PrepopulatedEngine* const engines_IS[] = {
  
  
  // Italy
  // Italy
  const PrepopulatedEngine* const engines_IT[] = {
  const PrepopulatedEngine* const engines_IT[] = {
@@ -496,7 +496,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -470,7 +470,7 @@ const PrepopulatedEngine* const engines_IT[] = {
+@@ -471,7 +471,7 @@ const PrepopulatedEngine* const engines_IT[] = {
  
  
  // Jamaica
  // Jamaica
  const PrepopulatedEngine* const engines_JM[] = {
  const PrepopulatedEngine* const engines_JM[] = {
@@ -505,7 +505,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -479,7 +479,7 @@ const PrepopulatedEngine* const engines_JM[] = {
+@@ -480,7 +480,7 @@ const PrepopulatedEngine* const engines_JM[] = {
  
  
  // Jordan
  // Jordan
  const PrepopulatedEngine* const engines_JO[] = {
  const PrepopulatedEngine* const engines_JO[] = {
@@ -514,7 +514,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -488,7 +488,7 @@ const PrepopulatedEngine* const engines_JO[] = {
+@@ -489,7 +489,7 @@ const PrepopulatedEngine* const engines_JO[] = {
  
  
  // Japan
  // Japan
  const PrepopulatedEngine* const engines_JP[] = {
  const PrepopulatedEngine* const engines_JP[] = {
@@ -523,7 +523,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_jp,
      &yahoo_jp,
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
-@@ -497,7 +497,7 @@ const PrepopulatedEngine* const engines_JP[] = {
+@@ -498,7 +498,7 @@ const PrepopulatedEngine* const engines_JP[] = {
  
  
  // Kenya
  // Kenya
  const PrepopulatedEngine* const engines_KE[] = {
  const PrepopulatedEngine* const engines_KE[] = {
@@ -532,7 +532,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -506,7 +506,7 @@ const PrepopulatedEngine* const engines_KE[] = {
+@@ -507,7 +507,7 @@ const PrepopulatedEngine* const engines_KE[] = {
  
  
  // South Korea
  // South Korea
  const PrepopulatedEngine* const engines_KR[] = {
  const PrepopulatedEngine* const engines_KR[] = {
@@ -541,7 +541,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &naver,
      &naver,
      &daum,
      &daum,
      &bing,
      &bing,
-@@ -515,7 +515,7 @@ const PrepopulatedEngine* const engines_KR[] = {
+@@ -516,7 +516,7 @@ const PrepopulatedEngine* const engines_KR[] = {
  
  
  // Kuwait
  // Kuwait
  const PrepopulatedEngine* const engines_KW[] = {
  const PrepopulatedEngine* const engines_KW[] = {
@@ -550,7 +550,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -524,7 +524,7 @@ const PrepopulatedEngine* const engines_KW[] = {
+@@ -525,7 +525,7 @@ const PrepopulatedEngine* const engines_KW[] = {
  
  
  // Kazakhstan
  // Kazakhstan
  const PrepopulatedEngine* const engines_KZ[] = {
  const PrepopulatedEngine* const engines_KZ[] = {
@@ -559,7 +559,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_kz,
      &yandex_kz,
      &mail_ru,
      &mail_ru,
      &bing,
      &bing,
-@@ -533,7 +533,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
+@@ -534,7 +534,7 @@ const PrepopulatedEngine* const engines_KZ[] = {
  
  
  // Lebanon
  // Lebanon
  const PrepopulatedEngine* const engines_LB[] = {
  const PrepopulatedEngine* const engines_LB[] = {
@@ -568,7 +568,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -542,7 +542,7 @@ const PrepopulatedEngine* const engines_LB[] = {
+@@ -543,7 +543,7 @@ const PrepopulatedEngine* const engines_LB[] = {
  
  
  // Liechtenstein
  // Liechtenstein
  const PrepopulatedEngine* const engines_LI[] = {
  const PrepopulatedEngine* const engines_LI[] = {
@@ -577,7 +577,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo,
      &yahoo,
-@@ -551,7 +551,7 @@ const PrepopulatedEngine* const engines_LI[] = {
+@@ -552,7 +552,7 @@ const PrepopulatedEngine* const engines_LI[] = {
  
  
  // Lithuania
  // Lithuania
  const PrepopulatedEngine* const engines_LT[] = {
  const PrepopulatedEngine* const engines_LT[] = {
@@ -586,7 +586,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -560,7 +560,7 @@ const PrepopulatedEngine* const engines_LT[] = {
+@@ -561,7 +561,7 @@ const PrepopulatedEngine* const engines_LT[] = {
  
  
  // Luxembourg
  // Luxembourg
  const PrepopulatedEngine* const engines_LU[] = {
  const PrepopulatedEngine* const engines_LU[] = {
@@ -595,7 +595,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo,
      &yahoo,
-@@ -569,7 +569,7 @@ const PrepopulatedEngine* const engines_LU[] = {
+@@ -570,7 +570,7 @@ const PrepopulatedEngine* const engines_LU[] = {
  
  
  // Latvia
  // Latvia
  const PrepopulatedEngine* const engines_LV[] = {
  const PrepopulatedEngine* const engines_LV[] = {
@@ -604,7 +604,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yandex_ru,
      &yandex_ru,
      &yahoo,
      &yahoo,
-@@ -578,7 +578,7 @@ const PrepopulatedEngine* const engines_LV[] = {
+@@ -579,7 +579,7 @@ const PrepopulatedEngine* const engines_LV[] = {
  
  
  // Libya
  // Libya
  const PrepopulatedEngine* const engines_LY[] = {
  const PrepopulatedEngine* const engines_LY[] = {
@@ -613,7 +613,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
-@@ -587,7 +587,7 @@ const PrepopulatedEngine* const engines_LY[] = {
+@@ -588,7 +588,7 @@ const PrepopulatedEngine* const engines_LY[] = {
  
  
  // Morocco
  // Morocco
  const PrepopulatedEngine* const engines_MA[] = {
  const PrepopulatedEngine* const engines_MA[] = {
@@ -622,7 +622,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
      &yandex_com,
      &yandex_com,
-@@ -596,7 +596,7 @@ const PrepopulatedEngine* const engines_MA[] = {
+@@ -597,7 +597,7 @@ const PrepopulatedEngine* const engines_MA[] = {
  
  
  // Monaco
  // Monaco
  const PrepopulatedEngine* const engines_MC[] = {
  const PrepopulatedEngine* const engines_MC[] = {
@@ -631,7 +631,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo_fr,
      &yahoo_fr,
-@@ -605,7 +605,7 @@ const PrepopulatedEngine* const engines_MC[] = {
+@@ -606,7 +606,7 @@ const PrepopulatedEngine* const engines_MC[] = {
  
  
  // Moldova
  // Moldova
  const PrepopulatedEngine* const engines_MD[] = {
  const PrepopulatedEngine* const engines_MD[] = {
@@ -640,7 +640,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
      &bing,
      &bing,
      &mail_ru,
      &mail_ru,
-@@ -614,7 +614,7 @@ const PrepopulatedEngine* const engines_MD[] = {
+@@ -615,7 +615,7 @@ const PrepopulatedEngine* const engines_MD[] = {
  
  
  // Montenegro
  // Montenegro
  const PrepopulatedEngine* const engines_ME[] = {
  const PrepopulatedEngine* const engines_ME[] = {
@@ -649,7 +649,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_ru,
      &yandex_ru,
-@@ -623,7 +623,7 @@ const PrepopulatedEngine* const engines_ME[] = {
+@@ -624,7 +624,7 @@ const PrepopulatedEngine* const engines_ME[] = {
  
  
  // Macedonia
  // Macedonia
  const PrepopulatedEngine* const engines_MK[] = {
  const PrepopulatedEngine* const engines_MK[] = {
@@ -658,7 +658,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -632,7 +632,7 @@ const PrepopulatedEngine* const engines_MK[] = {
+@@ -633,7 +633,7 @@ const PrepopulatedEngine* const engines_MK[] = {
  
  
  // Mexico
  // Mexico
  const PrepopulatedEngine* const engines_MX[] = {
  const PrepopulatedEngine* const engines_MX[] = {
@@ -667,7 +667,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_mx,
      &yahoo_mx,
      &duckduckgo,
      &duckduckgo,
-@@ -641,7 +641,7 @@ const PrepopulatedEngine* const engines_MX[] = {
+@@ -642,7 +642,7 @@ const PrepopulatedEngine* const engines_MX[] = {
  
  
  // Malaysia
  // Malaysia
  const PrepopulatedEngine* const engines_MY[] = {
  const PrepopulatedEngine* const engines_MY[] = {
@@ -676,7 +676,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_my,
      &yahoo_my,
      &duckduckgo,
      &duckduckgo,
-@@ -650,7 +650,7 @@ const PrepopulatedEngine* const engines_MY[] = {
+@@ -651,7 +651,7 @@ const PrepopulatedEngine* const engines_MY[] = {
  
  
  // Nicaragua
  // Nicaragua
  const PrepopulatedEngine* const engines_NI[] = {
  const PrepopulatedEngine* const engines_NI[] = {
@@ -685,7 +685,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -659,7 +659,7 @@ const PrepopulatedEngine* const engines_NI[] = {
+@@ -660,7 +660,7 @@ const PrepopulatedEngine* const engines_NI[] = {
  
  
  // Netherlands
  // Netherlands
  const PrepopulatedEngine* const engines_NL[] = {
  const PrepopulatedEngine* const engines_NL[] = {
@@ -694,7 +694,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_nl,
      &yahoo_nl,
      &duckduckgo,
      &duckduckgo,
-@@ -668,7 +668,7 @@ const PrepopulatedEngine* const engines_NL[] = {
+@@ -669,7 +669,7 @@ const PrepopulatedEngine* const engines_NL[] = {
  
  
  // Norway
  // Norway
  const PrepopulatedEngine* const engines_NO[] = {
  const PrepopulatedEngine* const engines_NO[] = {
@@ -703,7 +703,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -677,7 +677,7 @@ const PrepopulatedEngine* const engines_NO[] = {
+@@ -678,7 +678,7 @@ const PrepopulatedEngine* const engines_NO[] = {
  
  
  // New Zealand
  // New Zealand
  const PrepopulatedEngine* const engines_NZ[] = {
  const PrepopulatedEngine* const engines_NZ[] = {
@@ -712,7 +712,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_nz,
      &yahoo_nz,
      &duckduckgo,
      &duckduckgo,
-@@ -686,7 +686,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
+@@ -687,7 +687,7 @@ const PrepopulatedEngine* const engines_NZ[] = {
  
  
  // Oman
  // Oman
  const PrepopulatedEngine* const engines_OM[] = {
  const PrepopulatedEngine* const engines_OM[] = {
@@ -721,7 +721,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -695,7 +695,7 @@ const PrepopulatedEngine* const engines_OM[] = {
+@@ -696,7 +696,7 @@ const PrepopulatedEngine* const engines_OM[] = {
  
  
  // Panama
  // Panama
  const PrepopulatedEngine* const engines_PA[] = {
  const PrepopulatedEngine* const engines_PA[] = {
@@ -730,7 +730,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
      &duckduckgo,
      &duckduckgo,
-@@ -704,7 +704,7 @@ const PrepopulatedEngine* const engines_PA[] = {
+@@ -705,7 +705,7 @@ const PrepopulatedEngine* const engines_PA[] = {
  
  
  // Peru
  // Peru
  const PrepopulatedEngine* const engines_PE[] = {
  const PrepopulatedEngine* const engines_PE[] = {
@@ -739,7 +739,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_pe,
      &yahoo_pe,
      &ecosia,
      &ecosia,
-@@ -713,7 +713,7 @@ const PrepopulatedEngine* const engines_PE[] = {
+@@ -714,7 +714,7 @@ const PrepopulatedEngine* const engines_PE[] = {
  
  
  // Philippines
  // Philippines
  const PrepopulatedEngine* const engines_PH[] = {
  const PrepopulatedEngine* const engines_PH[] = {
@@ -748,7 +748,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &ecosia,
      &ecosia,
-@@ -722,7 +722,7 @@ const PrepopulatedEngine* const engines_PH[] = {
+@@ -723,7 +723,7 @@ const PrepopulatedEngine* const engines_PH[] = {
  
  
  // Pakistan
  // Pakistan
  const PrepopulatedEngine* const engines_PK[] = {
  const PrepopulatedEngine* const engines_PK[] = {
@@ -757,7 +757,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -731,7 +731,7 @@ const PrepopulatedEngine* const engines_PK[] = {
+@@ -732,7 +732,7 @@ const PrepopulatedEngine* const engines_PK[] = {
  
  
  // Poland
  // Poland
  const PrepopulatedEngine* const engines_PL[] = {
  const PrepopulatedEngine* const engines_PL[] = {
@@ -766,7 +766,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -740,7 +740,7 @@ const PrepopulatedEngine* const engines_PL[] = {
+@@ -741,7 +741,7 @@ const PrepopulatedEngine* const engines_PL[] = {
  
  
  // Puerto Rico
  // Puerto Rico
  const PrepopulatedEngine* const engines_PR[] = {
  const PrepopulatedEngine* const engines_PR[] = {
@@ -775,7 +775,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -749,7 +749,7 @@ const PrepopulatedEngine* const engines_PR[] = {
+@@ -750,7 +750,7 @@ const PrepopulatedEngine* const engines_PR[] = {
  
  
  // Portugal
  // Portugal
  const PrepopulatedEngine* const engines_PT[] = {
  const PrepopulatedEngine* const engines_PT[] = {
@@ -784,7 +784,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -758,7 +758,7 @@ const PrepopulatedEngine* const engines_PT[] = {
+@@ -759,7 +759,7 @@ const PrepopulatedEngine* const engines_PT[] = {
  
  
  // Paraguay
  // Paraguay
  const PrepopulatedEngine* const engines_PY[] = {
  const PrepopulatedEngine* const engines_PY[] = {
@@ -793,7 +793,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
      &duckduckgo,
      &duckduckgo,
-@@ -767,7 +767,7 @@ const PrepopulatedEngine* const engines_PY[] = {
+@@ -768,7 +768,7 @@ const PrepopulatedEngine* const engines_PY[] = {
  
  
  // Qatar
  // Qatar
  const PrepopulatedEngine* const engines_QA[] = {
  const PrepopulatedEngine* const engines_QA[] = {
@@ -802,7 +802,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -776,7 +776,7 @@ const PrepopulatedEngine* const engines_QA[] = {
+@@ -777,7 +777,7 @@ const PrepopulatedEngine* const engines_QA[] = {
  
  
  // Romania
  // Romania
  const PrepopulatedEngine* const engines_RO[] = {
  const PrepopulatedEngine* const engines_RO[] = {
@@ -811,7 +811,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -785,7 +785,7 @@ const PrepopulatedEngine* const engines_RO[] = {
+@@ -786,7 +786,7 @@ const PrepopulatedEngine* const engines_RO[] = {
  
  
  // Serbia
  // Serbia
  const PrepopulatedEngine* const engines_RS[] = {
  const PrepopulatedEngine* const engines_RS[] = {
@@ -820,7 +820,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -794,7 +794,7 @@ const PrepopulatedEngine* const engines_RS[] = {
+@@ -795,7 +795,7 @@ const PrepopulatedEngine* const engines_RS[] = {
  
  
  // Russia
  // Russia
  const PrepopulatedEngine* const engines_RU[] = {
  const PrepopulatedEngine* const engines_RU[] = {
@@ -829,7 +829,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ru,
      &yandex_ru,
      &mail_ru,
      &mail_ru,
      &bing,
      &bing,
-@@ -803,7 +803,7 @@ const PrepopulatedEngine* const engines_RU[] = {
+@@ -804,7 +804,7 @@ const PrepopulatedEngine* const engines_RU[] = {
  
  
  // Rwanda
  // Rwanda
  const PrepopulatedEngine* const engines_RW[] = {
  const PrepopulatedEngine* const engines_RW[] = {
@@ -838,7 +838,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -812,7 +812,7 @@ const PrepopulatedEngine* const engines_RW[] = {
+@@ -813,7 +813,7 @@ const PrepopulatedEngine* const engines_RW[] = {
  
  
  // Saudi Arabia
  // Saudi Arabia
  const PrepopulatedEngine* const engines_SA[] = {
  const PrepopulatedEngine* const engines_SA[] = {
@@ -847,7 +847,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
-@@ -821,7 +821,7 @@ const PrepopulatedEngine* const engines_SA[] = {
+@@ -822,7 +822,7 @@ const PrepopulatedEngine* const engines_SA[] = {
  
  
  // Sweden
  // Sweden
  const PrepopulatedEngine* const engines_SE[] = {
  const PrepopulatedEngine* const engines_SE[] = {
@@ -856,7 +856,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_se,
      &yahoo_se,
      &duckduckgo,
      &duckduckgo,
-@@ -830,7 +830,7 @@ const PrepopulatedEngine* const engines_SE[] = {
+@@ -831,7 +831,7 @@ const PrepopulatedEngine* const engines_SE[] = {
  
  
  // Singapore
  // Singapore
  const PrepopulatedEngine* const engines_SG[] = {
  const PrepopulatedEngine* const engines_SG[] = {
@@ -865,7 +865,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_sg,
      &yahoo_sg,
      &duckduckgo,
      &duckduckgo,
-@@ -839,7 +839,7 @@ const PrepopulatedEngine* const engines_SG[] = {
+@@ -840,7 +840,7 @@ const PrepopulatedEngine* const engines_SG[] = {
  
  
  // Slovenia
  // Slovenia
  const PrepopulatedEngine* const engines_SI[] = {
  const PrepopulatedEngine* const engines_SI[] = {
@@ -874,7 +874,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo,
      &yahoo,
-@@ -848,7 +848,7 @@ const PrepopulatedEngine* const engines_SI[] = {
+@@ -849,7 +849,7 @@ const PrepopulatedEngine* const engines_SI[] = {
  
  
  // Slovakia
  // Slovakia
  const PrepopulatedEngine* const engines_SK[] = {
  const PrepopulatedEngine* const engines_SK[] = {
@@ -883,7 +883,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
      &yahoo,
      &yahoo,
-@@ -857,7 +857,7 @@ const PrepopulatedEngine* const engines_SK[] = {
+@@ -858,7 +858,7 @@ const PrepopulatedEngine* const engines_SK[] = {
  
  
  // El Salvador
  // El Salvador
  const PrepopulatedEngine* const engines_SV[] = {
  const PrepopulatedEngine* const engines_SV[] = {
@@ -892,7 +892,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
      &duckduckgo,
      &duckduckgo,
-@@ -866,7 +866,7 @@ const PrepopulatedEngine* const engines_SV[] = {
+@@ -867,7 +867,7 @@ const PrepopulatedEngine* const engines_SV[] = {
  
  
  // Syria
  // Syria
  const PrepopulatedEngine* const engines_SY[] = {
  const PrepopulatedEngine* const engines_SY[] = {
@@ -901,7 +901,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
-@@ -875,7 +875,7 @@ const PrepopulatedEngine* const engines_SY[] = {
+@@ -876,7 +876,7 @@ const PrepopulatedEngine* const engines_SY[] = {
  
  
  // Thailand
  // Thailand
  const PrepopulatedEngine* const engines_TH[] = {
  const PrepopulatedEngine* const engines_TH[] = {
@@ -910,7 +910,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_th,
      &yahoo_th,
      &yandex_ru,
      &yandex_ru,
-@@ -884,7 +884,7 @@ const PrepopulatedEngine* const engines_TH[] = {
+@@ -885,7 +885,7 @@ const PrepopulatedEngine* const engines_TH[] = {
  
  
  // Tunisia
  // Tunisia
  const PrepopulatedEngine* const engines_TN[] = {
  const PrepopulatedEngine* const engines_TN[] = {
@@ -919,7 +919,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_fr,
      &yahoo_fr,
      &duckduckgo,
      &duckduckgo,
-@@ -893,7 +893,7 @@ const PrepopulatedEngine* const engines_TN[] = {
+@@ -894,7 +894,7 @@ const PrepopulatedEngine* const engines_TN[] = {
  
  
  // Turkey
  // Turkey
  const PrepopulatedEngine* const engines_TR[] = {
  const PrepopulatedEngine* const engines_TR[] = {
@@ -928,7 +928,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_tr,
      &yandex_tr,
      &yahoo_tr,
      &yahoo_tr,
      &bing,
      &bing,
-@@ -902,7 +902,7 @@ const PrepopulatedEngine* const engines_TR[] = {
+@@ -903,7 +903,7 @@ const PrepopulatedEngine* const engines_TR[] = {
  
  
  // Trinidad and Tobago
  // Trinidad and Tobago
  const PrepopulatedEngine* const engines_TT[] = {
  const PrepopulatedEngine* const engines_TT[] = {
@@ -937,7 +937,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -911,7 +911,7 @@ const PrepopulatedEngine* const engines_TT[] = {
+@@ -912,7 +912,7 @@ const PrepopulatedEngine* const engines_TT[] = {
  
  
  // Taiwan
  // Taiwan
  const PrepopulatedEngine* const engines_TW[] = {
  const PrepopulatedEngine* const engines_TW[] = {
@@ -946,7 +946,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yahoo_tw,
      &yahoo_tw,
      &bing,
      &bing,
      &baidu,
      &baidu,
-@@ -920,7 +920,7 @@ const PrepopulatedEngine* const engines_TW[] = {
+@@ -921,7 +921,7 @@ const PrepopulatedEngine* const engines_TW[] = {
  
  
  // Tanzania
  // Tanzania
  const PrepopulatedEngine* const engines_TZ[] = {
  const PrepopulatedEngine* const engines_TZ[] = {
@@ -955,7 +955,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -929,7 +929,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
+@@ -930,7 +930,7 @@ const PrepopulatedEngine* const engines_TZ[] = {
  
  
  // Ukraine
  // Ukraine
  const PrepopulatedEngine* const engines_UA[] = {
  const PrepopulatedEngine* const engines_UA[] = {
@@ -964,7 +964,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &yandex_ua,
      &yandex_ua,
      &bing,
      &bing,
      &duckduckgo,
      &duckduckgo,
-@@ -938,7 +938,7 @@ const PrepopulatedEngine* const engines_UA[] = {
+@@ -939,7 +939,7 @@ const PrepopulatedEngine* const engines_UA[] = {
  
  
  // United States
  // United States
  const PrepopulatedEngine* const engines_US[] = {
  const PrepopulatedEngine* const engines_US[] = {
@@ -973,7 +973,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -947,7 +947,7 @@ const PrepopulatedEngine* const engines_US[] = {
+@@ -948,7 +948,7 @@ const PrepopulatedEngine* const engines_US[] = {
  
  
  // Uruguay
  // Uruguay
  const PrepopulatedEngine* const engines_UY[] = {
  const PrepopulatedEngine* const engines_UY[] = {
@@ -982,7 +982,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
      &duckduckgo,
      &duckduckgo,
-@@ -956,7 +956,7 @@ const PrepopulatedEngine* const engines_UY[] = {
+@@ -957,7 +957,7 @@ const PrepopulatedEngine* const engines_UY[] = {
  
  
  // Venezuela
  // Venezuela
  const PrepopulatedEngine* const engines_VE[] = {
  const PrepopulatedEngine* const engines_VE[] = {
@@ -991,7 +991,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo_es,
      &yahoo_es,
      &duckduckgo,
      &duckduckgo,
-@@ -965,7 +965,7 @@ const PrepopulatedEngine* const engines_VE[] = {
+@@ -966,7 +966,7 @@ const PrepopulatedEngine* const engines_VE[] = {
  
  
  // Vietnam
  // Vietnam
  const PrepopulatedEngine* const engines_VN[] = {
  const PrepopulatedEngine* const engines_VN[] = {
@@ -1000,7 +1000,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &coccoc,
      &coccoc,
      &yahoo,
      &yahoo,
      &bing,
      &bing,
-@@ -974,7 +974,7 @@ const PrepopulatedEngine* const engines_VN[] = {
+@@ -975,7 +975,7 @@ const PrepopulatedEngine* const engines_VN[] = {
  
  
  // Yemen
  // Yemen
  const PrepopulatedEngine* const engines_YE[] = {
  const PrepopulatedEngine* const engines_YE[] = {
@@ -1009,7 +1009,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &yandex_com,
      &yandex_com,
-@@ -983,7 +983,7 @@ const PrepopulatedEngine* const engines_YE[] = {
+@@ -984,7 +984,7 @@ const PrepopulatedEngine* const engines_YE[] = {
  
  
  // South Africa
  // South Africa
  const PrepopulatedEngine* const engines_ZA[] = {
  const PrepopulatedEngine* const engines_ZA[] = {
@@ -1018,7 +1018,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
      &bing,
      &bing,
      &yahoo,
      &yahoo,
      &duckduckgo,
      &duckduckgo,
-@@ -992,7 +992,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
+@@ -993,7 +993,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
  
  
  // Zimbabwe
  // Zimbabwe
  const PrepopulatedEngine* const engines_ZW[] = {
  const PrepopulatedEngine* const engines_ZW[] = {

+ 5 - 5
build/patches/Add-IsCleartextPermitted-flag.patch

@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -8660,6 +8660,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -8862,6 +8862,10 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kRequestDesktopSiteExceptionsName,
       flag_descriptions::kRequestDesktopSiteExceptionsName,
       flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid,
       flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
       FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
@@ -30,7 +30,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
-@@ -1647,6 +1647,10 @@ const char kHttpsOnlyModeDescription[] =
+@@ -1661,6 +1661,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.";
  
  
@@ -44,7 +44,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
-@@ -925,6 +925,9 @@ extern const char kHideShelfControlsInTabletModeDescription[];
+@@ -927,6 +927,9 @@ extern const char kHideShelfControlsInTabletModeDescription[];
  extern const char kHttpsOnlyModeName[];
  extern const char kHttpsOnlyModeName[];
  extern const char kHttpsOnlyModeDescription[];
  extern const char kHttpsOnlyModeDescription[];
  
  
@@ -57,7 +57,7 @@ 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
-@@ -111,6 +111,9 @@ const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
+@@ -113,6 +113,9 @@ const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
  const base::Feature kEncryptedClientHello{"EncryptedClientHello",
  const base::Feature kEncryptedClientHello{"EncryptedClientHello",
                                            base::FEATURE_DISABLED_BY_DEFAULT};
                                            base::FEATURE_DISABLED_BY_DEFAULT};
  
  
@@ -82,7 +82,7 @@ diff --git a/net/base/features.h b/net/base/features.h
 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
 --- a/net/url_request/url_request_http_job.cc
 --- a/net/url_request/url_request_http_job.cc
 +++ b/net/url_request/url_request_http_job.cc
 +++ b/net/url_request/url_request_http_job.cc
-@@ -211,6 +211,10 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
+@@ -212,6 +212,10 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
      }
      }
  
  
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)

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

@@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
 --- a/chrome/android/java/res/values/values.xml
 --- a/chrome/android/java/res/values/values.xml
 +++ b/chrome/android/java/res/values/values.xml
 +++ b/chrome/android/java/res/values/values.xml
-@@ -25,6 +25,9 @@
+@@ -27,6 +27,9 @@ found in the LICENSE file.
      <!-- Compositor Tab Title Text -->
      <!-- Compositor Tab Title Text -->
      <bool name="compositor_tab_title_fake_bold_text">true</bool>
      <bool name="compositor_tab_title_fake_bold_text">true</bool>
  
  
@@ -58,7 +58,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -6,6 +6,10 @@
+@@ -8,6 +8,10 @@ found in the LICENSE file.
  <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
  <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
      xmlns:app="http://schemas.android.com/apk/res-auto">
  
  
@@ -72,9 +72,9 @@ 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
-@@ -57,6 +57,7 @@ public class PrivacySettings
-     private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
-     private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
+@@ -70,6 +70,7 @@ public class PrivacySettings
+             SharedPreferencesManager.getInstance();
+     private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
  
  
 +    private static final String PREF_PROXY_OPTIONS = "proxy";
 +    private static final String PREF_PROXY_OPTIONS = "proxy";
      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";
@@ -83,7 +83,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
-@@ -275,6 +275,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
+@@ -273,6 +273,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    builtins_to_provide.push_back(
    builtins_to_provide.push_back(
        base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
        base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
  #endif
  #endif
@@ -136,12 +136,12 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr
 -  return std::make_unique<PrefProxyConfigTrackerImpl>(profile_prefs, nullptr);
 -  return std::make_unique<PrefProxyConfigTrackerImpl>(profile_prefs, nullptr);
 +  // Migrate from profile_prefs to local_state_prefs
 +  // Migrate from profile_prefs to local_state_prefs
 +  if (local_state_prefs->GetBoolean("proxy_migrated") == false) {
 +  if (local_state_prefs->GetBoolean("proxy_migrated") == false) {
-+    const base::Value* dict =
-+        profile_prefs->GetDictionary(proxy_config::prefs::kProxy);
++    const base::Value::Dict& dict =
++        profile_prefs->GetDict(proxy_config::prefs::kProxy);
 +
 +
 +    LOG(INFO) << "CreatePrefProxyConfigTrackerOfProfile: Migration from profile to local state";
 +    LOG(INFO) << "CreatePrefProxyConfigTrackerOfProfile: Migration from profile to local state";
 +
 +
-+    const base::Value /*ProxyConfigDictionary*/ proxy_dict(dict->Clone());
++    const base::Value /*ProxyConfigDictionary*/ proxy_dict(dict.Clone());
 +    local_state_prefs->Set(proxy_config::prefs::kProxy, proxy_dict);
 +    local_state_prefs->Set(proxy_config::prefs::kProxy, proxy_dict);
 +
 +
 +    local_state_prefs->SetBoolean("proxy_migrated", true);
 +    local_state_prefs->SetBoolean("proxy_migrated", true);
@@ -192,7 +192,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
-@@ -1014,6 +1016,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
+@@ -1042,6 +1044,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
    chrome::enterprise_util::RegisterLocalStatePrefs(registry);
    chrome::enterprise_util::RegisterLocalStatePrefs(registry);
    component_updater::RegisterPrefs(registry);
    component_updater::RegisterPrefs(registry);
    embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
    embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
@@ -637,7 +637,7 @@ new file mode 100644
 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
-@@ -282,6 +282,8 @@ static_library("ui") {
+@@ -280,6 +280,8 @@ static_library("ui") {
      "webui/metrics_handler.h",
      "webui/metrics_handler.h",
      "webui/net_export_ui.cc",
      "webui/net_export_ui.cc",
      "webui/net_export_ui.h",
      "webui/net_export_ui.h",
@@ -657,7 +657,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
  #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
  #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
  #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
  #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
  #include "chrome/browser/ui/webui/signin_internals_ui.h"
  #include "chrome/browser/ui/webui/signin_internals_ui.h"
-@@ -781,6 +782,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -782,6 +783,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>;
@@ -930,9 +930,9 @@ new file mode 100644
 +  net::ProxyConfigWithAnnotation config;
 +  net::ProxyConfigWithAnnotation config;
 +  auto availability = proxy_config_service_->GetLatestProxyConfig(&config);
 +  auto availability = proxy_config_service_->GetLatestProxyConfig(&config);
 +
 +
-+  const base::Value* dict =
-+      pref_service_->GetDictionary(proxy_config::prefs::kProxy);
-+  ProxyConfigDictionary proxy_dict(dict->Clone());
++  const PrefService::Preference* const pref =
++      pref_service_->FindPreference(proxy_config::prefs::kProxy);
++  ProxyConfigDictionary proxy_dict(pref->GetValue()->Clone());
 +  ProxyPrefs::ProxyMode mode;
 +  ProxyPrefs::ProxyMode mode;
 +  if (!proxy_dict.GetMode(&mode) || mode == ProxyPrefs::MODE_SYSTEM) {
 +  if (!proxy_dict.GetMode(&mode) || mode == ProxyPrefs::MODE_SYSTEM) {
 +    availability = net::ProxyConfigService::CONFIG_UNSET;
 +    availability = net::ProxyConfigService::CONFIG_UNSET;
@@ -1128,7 +1128,7 @@ new file mode 100644
 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
 --- a/chrome/common/webui_url_constants.cc
 --- a/chrome/common/webui_url_constants.cc
 +++ b/chrome/common/webui_url_constants.cc
 +++ b/chrome/common/webui_url_constants.cc
-@@ -46,6 +46,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
+@@ -47,6 +47,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
  const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
  const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
  const char kChromeUIChromeSigninHost[] = "chrome-signin";
  const char kChromeUIChromeSigninHost[] = "chrome-signin";
  const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
  const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
@@ -1137,7 +1137,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
  const char kChromeUIChromeURLsHost[] = "chrome-urls";
  const char kChromeUIChromeURLsHost[] = "chrome-urls";
  const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
  const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
  const char kChromeUIComponentsHost[] = "components";
  const char kChromeUIComponentsHost[] = "components";
-@@ -437,6 +439,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
+@@ -439,6 +441,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
      kChromeUILockScreenNetworkHost,
      kChromeUILockScreenNetworkHost,
      kChromeUILockScreenStartReauthHost,
      kChromeUILockScreenStartReauthHost,
      kChromeUIMobileSetupHost,
      kChromeUIMobileSetupHost,
@@ -1145,7 +1145,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
      kChromeUIMultiDeviceSetupHost,
      kChromeUIMultiDeviceSetupHost,
      kChromeUINetworkHost,
      kChromeUINetworkHost,
      kChromeUINotificationTesterHost,
      kChromeUINotificationTesterHost,
-@@ -701,6 +704,7 @@ const char* const kChromeHostURLs[] = {
+@@ -704,6 +707,7 @@ const char* const kChromeHostURLs[] = {
  #if !BUILDFLAG(IS_ANDROID)
  #if !BUILDFLAG(IS_ANDROID)
  #if !BUILDFLAG(IS_CHROMEOS_ASH)
  #if !BUILDFLAG(IS_CHROMEOS_ASH)
      kChromeUIAppLauncherPageHost,
      kChromeUIAppLauncherPageHost,
@@ -1156,7 +1156,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
-@@ -133,6 +133,8 @@ extern const char kChromeUIMemoryInternalsHost[];
+@@ -134,6 +134,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[];
@@ -1304,7 +1304,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
 diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
 diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
 --- a/components/proxy_config/proxy_policy_handler.cc
 --- a/components/proxy_config/proxy_policy_handler.cc
 +++ b/components/proxy_config/proxy_policy_handler.cc
 +++ b/components/proxy_config/proxy_policy_handler.cc
-@@ -260,7 +260,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
+@@ -264,7 +264,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
              ProxyConfigDictionary::CreateFixedServers(
              ProxyConfigDictionary::CreateFixedServers(
                  server->GetString(), bypass_list && bypass_list->is_string()
                  server->GetString(), bypass_list && bypass_list->is_string()
                                           ? bypass_list->GetString()
                                           ? bypass_list->GetString()

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

@@ -91,7 +91,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -667,6 +667,7 @@ chrome_java_resources = [
+@@ -654,6 +654,7 @@ chrome_java_resources = [
    "java/res/xml/main_preferences.xml",
    "java/res/xml/main_preferences.xml",
    "java/res/xml/manage_sync_preferences.xml",
    "java/res/xml/manage_sync_preferences.xml",
    "java/res/xml/phone_as_a_security_key_accessory_filter.xml",
    "java/res/xml/phone_as_a_security_key_accessory_filter.xml",
@@ -110,7 +110,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
    "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
    "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
    "java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
    "java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
    "java/src/org/chromium/chrome/browser/ActivityUtils.java",
    "java/src/org/chromium/chrome/browser/ActivityUtils.java",
-@@ -958,6 +959,7 @@ chrome_java_sources = [
+@@ -912,6 +913,7 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
@@ -163,7 +163,7 @@ new file mode 100644
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -38,6 +38,11 @@
+@@ -40,6 +40,11 @@ found in the LICENSE file.
          android:key="secure_dns"
          android:key="secure_dns"
          android:title="@string/settings_secure_dns_title"
          android:title="@string/settings_secure_dns_title"
          android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/>
          android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/>
@@ -236,15 +236,15 @@ new file mode 100644
 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
-@@ -56,6 +56,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
- import org.chromium.base.task.PostTask;
+@@ -57,6 +57,7 @@ import org.chromium.base.task.PostTask;
+ import org.chromium.build.annotations.UsedByReflection;
  import org.chromium.cc.input.BrowserControlsState;
  import org.chromium.cc.input.BrowserControlsState;
  import org.chromium.chrome.R;
  import org.chromium.chrome.R;
 +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
 +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
  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;
-@@ -1895,8 +1896,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1899,8 +1900,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.
@@ -259,15 +259,15 @@ 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
-@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
- import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
- import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
+@@ -93,6 +93,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.ContentOffsetProvi
+ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
+ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerHandler;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
 +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
 +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
  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;
-@@ -1817,6 +1818,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -1812,6 +1813,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");
          }
          }
@@ -288,7 +288,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
  import org.chromium.chrome.browser.banners.AppMenuVerbiage;
  import org.chromium.chrome.browser.banners.AppMenuVerbiage;
  import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
  import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
  import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
  import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
-@@ -101,6 +102,10 @@ import java.util.ArrayList;
+@@ -98,6 +99,10 @@ import java.util.ArrayList;
  import java.util.List;
  import java.util.List;
  import java.util.Map;
  import java.util.Map;
  
  
@@ -299,7 +299,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.
-@@ -561,6 +566,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -558,6 +563,13 @@ 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) {
@@ -313,7 +313,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
          // We have to iterate all menu items since same menu item ID may be associated with more
          // We have to iterate all menu items since same menu item ID may be associated with more
          // than one menu items.
          // than one menu items.
          boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
          boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
-@@ -621,7 +633,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -616,7 +628,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
              }
              }
  
  
              if (item.getItemId() == R.id.recent_tabs_menu_id) {
              if (item.getItemId() == R.id.recent_tabs_menu_id) {
@@ -330,7 +330,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) {
                  // Disable incognito group tabs when a re-authentication screen is shown.
                  // Disable incognito group tabs when a re-authentication screen is shown.
-@@ -863,7 +883,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -858,7 +878,9 @@ 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
@@ -448,7 +448,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
  import java.lang.annotation.Retention;
  import java.lang.annotation.Retention;
  import java.lang.annotation.RetentionPolicy;
  import java.lang.annotation.RetentionPolicy;
  import java.util.ArrayList;
  import java.util.ArrayList;
-@@ -793,7 +796,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
+@@ -847,7 +850,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
  
  
      @Override
      @Override
      public boolean isIncognito() {
      public boolean isIncognito() {
@@ -468,7 +468,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
  import org.chromium.chrome.browser.ChromeTabbedActivity;
  import org.chromium.chrome.browser.ChromeTabbedActivity;
  import org.chromium.chrome.browser.IntentHandler;
  import org.chromium.chrome.browser.IntentHandler;
  import org.chromium.chrome.browser.app.download.home.DownloadActivity;
  import org.chromium.chrome.browser.app.download.home.DownloadActivity;
-@@ -73,6 +74,10 @@ import org.chromium.ui.widget.Toast;
+@@ -74,6 +75,10 @@ import org.chromium.url.GURL;
  
  
  import java.io.File;
  import java.io.File;
  
  
@@ -479,7 +479,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
  /**
  /**
   * A class containing some utility static methods.
   * A class containing some utility static methods.
   */
   */
-@@ -317,7 +322,16 @@ public class DownloadUtils {
+@@ -318,7 +323,16 @@ public class DownloadUtils {
          // Offline pages isn't supported in Incognito. This should be checked before calling
          // Offline pages isn't supported in Incognito. This should be checked before calling
          // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found
          // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found
          // for incognito profile.
          // for incognito profile.
@@ -521,7 +521,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
  /**
  /**
   * Combines and manages the different UI components of browsing history.
   * Combines and manages the different UI components of browsing history.
   */
   */
-@@ -493,7 +500,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
+@@ -504,7 +511,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
          return mRootView;
          return mRootView;
      }
      }
  
  
@@ -789,7 +789,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
  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.SnackbarManager.SnackbarManageable;
  import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
  import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
  import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
-@@ -253,6 +254,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -254,6 +255,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
          if (fragment instanceof AdPersonalizationRemovedFragment) {
          if (fragment instanceof AdPersonalizationRemovedFragment) {
              ((AdPersonalizationRemovedFragment) fragment).setSnackbarManager(getSnackbarManager());
              ((AdPersonalizationRemovedFragment) fragment).setSnackbarManager(getSnackbarManager());
          }
          }
@@ -912,7 +912,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
 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
-@@ -126,6 +126,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto
+@@ -122,6 +122,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto
  import org.chromium.content_public.browser.WebContents;
  import org.chromium.content_public.browser.WebContents;
  import org.chromium.ui.base.ActivityWindowAndroid;
  import org.chromium.ui.base.ActivityWindowAndroid;
  import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.base.DeviceFormFactor;
@@ -921,7 +921,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
  import org.chromium.ui.base.IntentRequestTracker;
  import org.chromium.ui.base.IntentRequestTracker;
  import org.chromium.ui.modaldialog.ModalDialogManager;
  import org.chromium.ui.modaldialog.ModalDialogManager;
  
  
-@@ -492,7 +494,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -482,7 +484,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
                      mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler();
                      mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler();
              mEmptyBackgroundViewWrapper =
              mEmptyBackgroundViewWrapper =
                      new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(),
                      new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(),
@@ -1046,7 +1046,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
 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
-@@ -4651,6 +4651,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4713,6 +4713,10 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kOfflinePagesLivePageSharingName,
       flag_descriptions::kOfflinePagesLivePageSharingName,
       flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid,
       flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)},
       FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)},
@@ -1113,7 +1113,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
 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
-@@ -301,6 +301,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager()
+@@ -299,6 +299,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager()
    return IdentityManagerFactory::GetForProfile(profile_);
    return IdentityManagerFactory::GetForProfile(profile_);
  }
  }
  
  
@@ -1148,8 +1148,8 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
 +#include "chrome/common/pref_names.h"
 +#include "chrome/common/pref_names.h"
  #include "components/content_settings/core/browser/content_settings_pref_provider.h"
  #include "components/content_settings/core/browser/content_settings_pref_provider.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
  #include "components/content_settings/core/browser/host_content_settings_map.h"
- #include "components/keyed_service/content/browser_context_dependency_manager.h"
-@@ -96,9 +97,23 @@ scoped_refptr<RefcountedKeyedService>
+ #include "components/permissions/features.h"
+@@ -95,9 +96,23 @@ scoped_refptr<RefcountedKeyedService>
    if (profile->IsOffTheRecord() && !profile->IsGuestSession())
    if (profile->IsOffTheRecord() && !profile->IsGuestSession())
      GetForProfile(original_profile);
      GetForProfile(original_profile);
  
  
@@ -1174,7 +1174,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
        /*store_last_modified=*/true,
        /*store_last_modified=*/true,
        profile->ShouldRestoreOldSessionCookies()));
        profile->ShouldRestoreOldSessionCookies()));
  
  
-@@ -108,6 +123,9 @@ scoped_refptr<RefcountedKeyedService>
+@@ -107,6 +122,9 @@ scoped_refptr<RefcountedKeyedService>
        HostContentSettingsMap::WEBUI_ALLOWLIST_PROVIDER,
        HostContentSettingsMap::WEBUI_ALLOWLIST_PROVIDER,
        std::move(allowlist_provider));
        std::move(allowlist_provider));
  
  
@@ -1187,7 +1187,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
 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
-@@ -3676,6 +3676,12 @@ const char kOfflinePagesLivePageSharingDescription[] =
+@@ -3758,6 +3758,12 @@ const char kOfflinePagesLivePageSharingDescription[] =
      "Enables to share current loaded page as offline page by saving as MHTML "
      "Enables to share current loaded page as offline page by saving as MHTML "
      "first.";
      "first.";
  
  
@@ -1203,7 +1203,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
-@@ -2092,6 +2092,9 @@ extern const char kNotificationPermissionRationaleDescription[];
+@@ -2141,6 +2141,9 @@ extern const char kNotificationPermissionRationaleDescription[];
  extern const char kOfflinePagesLivePageSharingName[];
  extern const char kOfflinePagesLivePageSharingName[];
  extern const char kOfflinePagesLivePageSharingDescription[];
  extern const char kOfflinePagesLivePageSharingDescription[];
  
  
@@ -1216,7 +1216,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
-@@ -533,8 +533,8 @@ const base::Feature kCCTNewDownloadTab{"CCTNewDownloadTab",
+@@ -535,8 +535,8 @@ const base::Feature kCCTNewDownloadTab{"CCTNewDownloadTab",
  const base::Feature kCCTIncognito{"CCTIncognito",
  const base::Feature kCCTIncognito{"CCTIncognito",
                                    base::FEATURE_ENABLED_BY_DEFAULT};
                                    base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -1226,11 +1226,11 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 +    "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT};
 +    "CCTIncognitoAvailableToThirdParty", base::FEATURE_ENABLED_BY_DEFAULT};
  
  
  const base::Feature kCCTPackageNameRecording{"CCTPackageNameRecording",
  const base::Feature kCCTPackageNameRecording{"CCTPackageNameRecording",
-                                              base::FEATURE_DISABLED_BY_DEFAULT};
+                                              base::FEATURE_ENABLED_BY_DEFAULT};
 diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
 diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
 --- a/chrome/browser/history/history_tab_helper.cc
 --- a/chrome/browser/history/history_tab_helper.cc
 +++ b/chrome/browser/history/history_tab_helper.cc
 +++ b/chrome/browser/history/history_tab_helper.cc
-@@ -36,6 +36,9 @@
+@@ -38,6 +38,9 @@
  #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
  #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
  #include "components/feed/core/v2/public/feed_api.h"
  #include "components/feed/core/v2/public/feed_api.h"
  #include "components/feed/core/v2/public/feed_service.h"
  #include "components/feed/core/v2/public/feed_service.h"
@@ -1240,7 +1240,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"
-@@ -410,6 +413,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
+@@ -459,6 +462,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());
@@ -1252,9 +1252,9 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
 +#endif
 +#endif
 +
 +
    if (profile->IsOffTheRecord())
    if (profile->IsOffTheRecord())
-     return NULL;
+     return nullptr;
  
  
-@@ -417,6 +427,14 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
+@@ -466,6 +476,14 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
        profile, ServiceAccessType::IMPLICIT_ACCESS);
        profile, ServiceAccessType::IMPLICIT_ACCESS);
  }
  }
  
  
@@ -1267,13 +1267,13 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
 +}
 +}
 +
 +
  void HistoryTabHelper::WebContentsDestroyed() {
  void HistoryTabHelper::WebContentsDestroyed() {
-   // We update the history for this URL.
-   WebContents* tab = web_contents();
+   translate_observation_.Reset();
+ 
 diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/history/history_tab_helper.h
 diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/history/history_tab_helper.h
 --- a/chrome/browser/history/history_tab_helper.h
 --- a/chrome/browser/history/history_tab_helper.h
 +++ b/chrome/browser/history/history_tab_helper.h
 +++ b/chrome/browser/history/history_tab_helper.h
-@@ -9,6 +9,8 @@
- #include "build/build_config.h"
+@@ -12,6 +12,8 @@
+ #include "components/translate/core/browser/translate_driver.h"
  #include "content/public/browser/web_contents_observer.h"
  #include "content/public/browser/web_contents_observer.h"
  #include "content/public/browser/web_contents_user_data.h"
  #include "content/public/browser/web_contents_user_data.h"
 +#include "components/prefs/pref_registry_simple.h"
 +#include "components/prefs/pref_registry_simple.h"
@@ -1281,7 +1281,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
  
  
  namespace history {
  namespace history {
  struct HistoryAddPageArgs;
  struct HistoryAddPageArgs;
-@@ -41,6 +43,11 @@ class HistoryTabHelper : public content::WebContentsObserver,
+@@ -51,6 +53,11 @@ class HistoryTabHelper
      force_eligible_tab_for_testing_ = force;
      force_eligible_tab_for_testing_ = force;
    }
    }
  
  
@@ -1293,9 +1293,9 @@ 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>;
-@@ -69,9 +76,6 @@ class HistoryTabHelper : public content::WebContentsObserver,
-                            bool started_from_context_menu,
-                            bool renderer_initiated) override;
+@@ -83,9 +90,6 @@ class HistoryTabHelper
+   void OnLanguageDetermined(
+       const translate::LanguageDetectionDetails& details) override;
  
  
 -  // Helper function to return the history service.  May return null.
 -  // Helper function to return the history service.  May return null.
 -  history::HistoryService* GetHistoryService();
 -  history::HistoryService* GetHistoryService();
@@ -1559,7 +1559,7 @@ 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"
-@@ -1389,6 +1390,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -1416,6 +1417,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
    usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
    usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
    variations::VariationsService::RegisterProfilePrefs(registry);
    variations::VariationsService::RegisterProfilePrefs(registry);
    video_tutorials::RegisterPrefs(registry);
    video_tutorials::RegisterPrefs(registry);
@@ -1568,7 +1568,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
 +                              /*default_value=*/false);
 +                              /*default_value=*/false);
 +  HistoryTabHelper::RegisterProfilePrefs(registry);
 +  HistoryTabHelper::RegisterProfilePrefs(registry);
  #else   // BUILDFLAG(IS_ANDROID)
  #else   // BUILDFLAG(IS_ANDROID)
-   ApcClient::RegisterPrefs(registry);
+   autofill_assistant::AutofillAssistant::RegisterProfilePrefs(registry);
    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
@@ -1633,7 +1633,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
-@@ -1168,6 +1168,37 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1151,6 +1151,37 @@ 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>
@@ -1717,7 +1717,7 @@ new file mode 100644
 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
-@@ -3435,6 +3435,12 @@ const char kShowCaretBrowsingDialog[] =
+@@ -3437,6 +3437,12 @@ const char kShowCaretBrowsingDialog[] =
  const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
  const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
  #endif
  #endif
  
  
@@ -1733,7 +1733,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
-@@ -1215,6 +1215,8 @@ extern const char kDiscountConsentShowInterestIn[];
+@@ -1214,6 +1214,8 @@ extern const char kDiscountConsentShowInterestIn[];
  
  
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)
  extern const char kWebXRImmersiveArEnabled[];
  extern const char kWebXRImmersiveArEnabled[];
@@ -1742,7 +1742,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
  #endif
  #endif
  
  
  #if !BUILDFLAG(IS_ANDROID)
  #if !BUILDFLAG(IS_ANDROID)
-@@ -1252,6 +1254,10 @@ extern const char kPrivacyGuideViewed[];
+@@ -1251,6 +1253,10 @@ extern const char kPrivacyGuideViewed[];
  
  
  extern const char kCorsNonWildcardRequestHeadersSupport[];
  extern const char kCorsNonWildcardRequestHeadersSupport[];
  
  
@@ -1791,7 +1791,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
                 bool store_last_modified,
                 bool store_last_modified,
                 bool restore_session);
                 bool restore_session);
  
  
-@@ -86,6 +87,7 @@ class PrefProvider : public UserModifiableProvider {
+@@ -88,6 +89,7 @@ class PrefProvider : public UserModifiableProvider {
    raw_ptr<PrefService> prefs_;
    raw_ptr<PrefService> prefs_;
  
  
    const bool off_the_record_;
    const bool off_the_record_;
@@ -1802,7 +1802,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
 diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
 diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
 --- a/components/content_settings/core/browser/host_content_settings_map.cc
 --- a/components/content_settings/core/browser/host_content_settings_map.cc
 +++ b/components/content_settings/core/browser/host_content_settings_map.cc
 +++ b/components/content_settings/core/browser/host_content_settings_map.cc
-@@ -242,6 +242,7 @@ const char* ContentSettingToString(ContentSetting setting) {
+@@ -243,6 +243,7 @@ const char* ContentSettingToString(ContentSetting setting) {
  HostContentSettingsMap::HostContentSettingsMap(
  HostContentSettingsMap::HostContentSettingsMap(
      PrefService* prefs,
      PrefService* prefs,
      bool is_off_the_record,
      bool is_off_the_record,
@@ -1810,7 +1810,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
      bool store_last_modified,
      bool store_last_modified,
      bool restore_session)
      bool restore_session)
      : RefcountedKeyedService(base::ThreadTaskRunnerHandle::Get()),
      : RefcountedKeyedService(base::ThreadTaskRunnerHandle::Get()),
-@@ -250,6 +251,7 @@ HostContentSettingsMap::HostContentSettingsMap(
+@@ -251,6 +252,7 @@ HostContentSettingsMap::HostContentSettingsMap(
  #endif
  #endif
        prefs_(prefs),
        prefs_(prefs),
        is_off_the_record_(is_off_the_record),
        is_off_the_record_(is_off_the_record),
@@ -1818,7 +1818,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
        store_last_modified_(store_last_modified),
        store_last_modified_(store_last_modified),
        allow_invalid_secondary_pattern_for_testing_(false) {
        allow_invalid_secondary_pattern_for_testing_(false) {
    TRACE_EVENT0("startup", "HostContentSettingsMap::HostContentSettingsMap");
    TRACE_EVENT0("startup", "HostContentSettingsMap::HostContentSettingsMap");
-@@ -261,7 +263,7 @@ HostContentSettingsMap::HostContentSettingsMap(
+@@ -262,7 +264,7 @@ HostContentSettingsMap::HostContentSettingsMap(
    policy_provider->AddObserver(this);
    policy_provider->AddObserver(this);
  
  
    auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
    auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
@@ -1830,7 +1830,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
 diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
 diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
 --- a/components/content_settings/core/browser/host_content_settings_map.h
 --- a/components/content_settings/core/browser/host_content_settings_map.h
 +++ b/components/content_settings/core/browser/host_content_settings_map.h
 +++ b/components/content_settings/core/browser/host_content_settings_map.h
-@@ -80,6 +80,7 @@ class HostContentSettingsMap : public content_settings::Observer,
+@@ -81,6 +81,7 @@ class HostContentSettingsMap : public content_settings::Observer,
    // profile or a guest session.
    // profile or a guest session.
    HostContentSettingsMap(PrefService* prefs,
    HostContentSettingsMap(PrefService* prefs,
                           bool is_off_the_record,
                           bool is_off_the_record,
@@ -1838,7 +1838,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
                           bool store_last_modified,
                           bool store_last_modified,
                           bool restore_session);
                           bool restore_session);
  
  
-@@ -450,6 +451,8 @@ class HostContentSettingsMap : public content_settings::Observer,
+@@ -442,6 +443,8 @@ class HostContentSettingsMap : public content_settings::Observer,
    // Whether this settings map is for an incognito or guest session.
    // Whether this settings map is for an incognito or guest session.
    bool is_off_the_record_;
    bool is_off_the_record_;
  
  
@@ -1896,7 +1896,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone
 diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
 diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
 --- a/components/omnibox/browser/base_search_provider.cc
 --- a/components/omnibox/browser/base_search_provider.cc
 +++ b/components/omnibox/browser/base_search_provider.cc
 +++ b/components/omnibox/browser/base_search_provider.cc
-@@ -271,7 +271,7 @@ bool BaseSearchProvider::CanSendRequest(
+@@ -272,7 +272,7 @@ bool BaseSearchProvider::CanSendRequest(
    }
    }
  
  
    // Don't run if in incognito mode.
    // Don't run if in incognito mode.
@@ -1908,7 +1908,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
 diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
 diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
 --- a/components/omnibox/browser/search_provider.cc
 --- a/components/omnibox/browser/search_provider.cc
 +++ b/components/omnibox/browser/search_provider.cc
 +++ b/components/omnibox/browser/search_provider.cc
-@@ -835,7 +835,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
+@@ -836,7 +836,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
    // keyword input to a keyword suggest server, if any.)
    // keyword input to a keyword suggest server, if any.)
    const TemplateURL* default_url = providers_.GetDefaultProviderURL();
    const TemplateURL* default_url = providers_.GetDefaultProviderURL();
    const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
    const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();

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

@@ -50,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
 diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
 --- a/chrome/android/java/AndroidManifest.xml
 --- a/chrome/android/java/AndroidManifest.xml
 +++ b/chrome/android/java/AndroidManifest.xml
 +++ b/chrome/android/java/AndroidManifest.xml
-@@ -59,7 +59,6 @@ by a child template that "extends" this file.
+@@ -61,7 +61,6 @@ by a child template that "extends" this file.
      <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_SCAN"
      <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_SCAN"
                              android:usesPermissionFlags="neverForLocation"/>
                              android:usesPermissionFlags="neverForLocation"/>
  
  
@@ -61,7 +61,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
 diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 --- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 --- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
-@@ -21,6 +21,20 @@
+@@ -23,6 +23,20 @@ found in the LICENSE file.
              android:visible="false"
              android:visible="false"
              app:showAsAction="ifRoom"
              app:showAsAction="ifRoom"
              app:iconTint="@color/default_icon_color_secondary_tint_list" />
              app:iconTint="@color/default_icon_color_secondary_tint_list" />
@@ -249,7 +249,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;
  
  
-@@ -46,6 +59,32 @@ import java.util.HashMap;
+@@ -43,6 +56,32 @@ import java.util.HashMap;
  import java.util.HashSet;
  import java.util.HashSet;
  import java.util.List;
  import java.util.List;
  
  
@@ -282,7 +282,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
   * bookmark model stored in native.
   * bookmark model stored in native.
-@@ -737,6 +776,209 @@ public class BookmarkBridge {
+@@ -653,6 +692,209 @@ public class BookmarkBridge {
                  mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
                  mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType());
      }
      }
  
  
@@ -492,7 +492,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.
-@@ -1285,6 +1527,39 @@ public class BookmarkBridge {
+@@ -1201,6 +1443,39 @@ public class BookmarkBridge {
          depthList.add(depth);
          depthList.add(depth);
      }
      }
  
  
@@ -532,7 +532,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++) {
-@@ -1356,6 +1631,9 @@ public class BookmarkBridge {
+@@ -1272,6 +1547,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);
@@ -565,7 +565,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/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
-@@ -36,6 +36,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
+@@ -34,6 +34,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
  import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate;
  import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate;
  import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
  import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout;
  import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
  import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate;
@@ -574,7 +574,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
  import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
  import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
  import org.chromium.components.favicon.LargeIconBridge;
  import org.chromium.components.favicon.LargeIconBridge;
  import org.chromium.url.GURL;
  import org.chromium.url.GURL;
-@@ -58,6 +60,8 @@ public class BookmarkManager
+@@ -56,6 +58,8 @@ public class BookmarkManager
      private ComponentName mOpenBookmarkComponentName;
      private ComponentName mOpenBookmarkComponentName;
      private ViewGroup mMainView;
      private ViewGroup mMainView;
      private BookmarkModel mBookmarkModel;
      private BookmarkModel mBookmarkModel;
@@ -583,7 +583,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      private BookmarkUndoController mUndoController;
      private BookmarkUndoController mUndoController;
      private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
      private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
      private BasicNativePage mNativePage;
      private BasicNativePage mNativePage;
-@@ -352,6 +356,14 @@ public class BookmarkManager
+@@ -341,6 +345,14 @@ public class BookmarkManager
          mNativePage = nativePage;
          mNativePage = nativePage;
      }
      }
  
  
@@ -598,7 +598,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      /**
      /**
       * @return Current URL representing the UI state of bookmark manager. If no state has been shown
       * @return Current URL representing the UI state of bookmark manager. If no state has been shown
       *         yet in this session, on phone return last used state stored in preference; on tablet
       *         yet in this session, on phone return last used state stored in preference; on tablet
-@@ -532,6 +544,16 @@ public class BookmarkManager
+@@ -521,6 +533,16 @@ public class BookmarkManager
          }
          }
      }
      }
  
  
@@ -704,7 +704,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
-@@ -1863,6 +1863,13 @@ static_library("browser") {
+@@ -1875,6 +1875,13 @@ static_library("browser") {
      ]
      ]
    }
    }
  
  
@@ -718,7 +718,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",
-@@ -2885,6 +2892,8 @@ static_library("browser") {
+@@ -2891,6 +2898,8 @@ static_library("browser") {
        "autofill/manual_filling_controller.h",
        "autofill/manual_filling_controller.h",
        "autofill/manual_filling_controller_impl.cc",
        "autofill/manual_filling_controller_impl.cc",
        "autofill/manual_filling_controller_impl.h",
        "autofill/manual_filling_controller_impl.h",
@@ -727,7 +727,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "autofill/manual_filling_utils.cc",
        "autofill/manual_filling_utils.cc",
        "autofill/manual_filling_utils.h",
        "autofill/manual_filling_utils.h",
        "autofill/manual_filling_view_interface.h",
        "autofill/manual_filling_view_interface.h",
-@@ -3558,8 +3567,6 @@ static_library("browser") {
+@@ -3570,8 +3579,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",
@@ -739,7 +739,7 @@ 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
-@@ -8654,6 +8654,12 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -8831,6 +8831,12 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
       FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
  #endif
  #endif
  
  
@@ -755,7 +755,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
 diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
 --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
 --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
 +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
 +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
-@@ -59,6 +59,25 @@
+@@ -60,6 +60,25 @@
  #include "content/public/browser/browser_thread.h"
  #include "content/public/browser/browser_thread.h"
  #include "content/public/browser/web_contents.h"
  #include "content/public/browser/web_contents.h"
  
  
@@ -781,7 +781,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
  using base::android::AttachCurrentThread;
  using base::android::AttachCurrentThread;
  using base::android::ConvertUTF16ToJavaString;
  using base::android::ConvertUTF16ToJavaString;
  using base::android::ConvertUTF8ToJavaString;
  using base::android::ConvertUTF8ToJavaString;
-@@ -76,8 +95,92 @@ using bookmarks::android::JavaBookmarkIdGetType;
+@@ -77,8 +96,92 @@ using bookmarks::android::JavaBookmarkIdGetType;
  using content::BrowserThread;
  using content::BrowserThread;
  using power_bookmarks::PowerBookmarkMeta;
  using power_bookmarks::PowerBookmarkMeta;
  
  
@@ -874,7 +874,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
  class BookmarkTitleComparer {
  class BookmarkTitleComparer {
   public:
   public:
    explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
    explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
-@@ -163,6 +266,10 @@ BookmarkBridge::~BookmarkBridge() {
+@@ -164,6 +267,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);
@@ -885,7 +885,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
  }
  }
  
  
  void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
  void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
-@@ -573,6 +680,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
+@@ -574,6 +681,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
    return count;
    return count;
  }
  }
  
  
@@ -1128,7 +1128,7 @@ diff --git a/chrome/browser/bookmarks/android/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,
-@@ -371,12 +391,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
+@@ -372,12 +392,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
    void DestroyJavaObject();
    void DestroyJavaObject();
  
  
    raw_ptr<Profile> profile_;
    raw_ptr<Profile> profile_;
@@ -1145,7 +1145,7 @@ diff --git a/chrome/browser/bookmarks/android/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.
-@@ -388,6 +412,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
+@@ -389,6 +413,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};
  
  
@@ -1251,7 +1251,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
-@@ -6458,6 +6458,11 @@ const char kDisableLacrosTtsSupportDescription[] =
+@@ -6615,6 +6615,11 @@ const char kDisableLacrosTtsSupportDescription[] =
  
  
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -1266,7 +1266,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
-@@ -3734,6 +3734,9 @@ extern const char kDisableLacrosTtsSupportName[];
+@@ -3821,6 +3821,9 @@ extern const char kDisableLacrosTtsSupportName[];
  extern const char kDisableLacrosTtsSupportDescription[];
  extern const char kDisableLacrosTtsSupportDescription[];
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -1287,7 +1287,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &kCriticalPersistedTabData,
      &kCriticalPersistedTabData,
      &kCommerceCoupons,
      &kCommerceCoupons,
      &kCCTBackgroundTab,
      &kCCTBackgroundTab,
-@@ -952,6 +953,10 @@ const base::Feature kWebApkInstallService{"WebApkInstallService",
+@@ -951,6 +952,10 @@ const base::Feature kWebApkInstallService{"WebApkInstallService",
  const base::Feature kWebApkTrampolineOnInitialIntent{
  const base::Feature kWebApkTrampolineOnInitialIntent{
      "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT};
      "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -1301,9 +1301,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
 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
 --- a/chrome/browser/flags/android/chrome_feature_list.h
 +++ b/chrome/browser/flags/android/chrome_feature_list.h
 +++ b/chrome/browser/flags/android/chrome_feature_list.h
-@@ -162,6 +162,7 @@ extern const base::Feature kTabReparenting;
- extern const base::Feature kTabSelectionEditorV2;
+@@ -161,6 +161,7 @@ extern const base::Feature kTabSelectionEditorV2;
  extern const base::Feature kTabStripImprovements;
  extern const base::Feature kTabStripImprovements;
+ extern const base::Feature kDiscoverFeedMultiColumn;
  extern const base::Feature kTabSwitcherOnReturn;
  extern const base::Feature kTabSwitcherOnReturn;
 +extern const base::Feature kBookmarksExportUseSaf;
 +extern const base::Feature kBookmarksExportUseSaf;
  extern const base::Feature kTabToGTSAnimation;
  extern const base::Feature kTabToGTSAnimation;
@@ -1312,7 +1312,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
-@@ -588,6 +588,7 @@ public abstract class ChromeFeatureList {
+@@ -612,6 +612,7 @@ public abstract class ChromeFeatureList {
      public static final String USE_CHIME_ANDROID_SDK = "UseChimeAndroidSdk";
      public static final String USE_CHIME_ANDROID_SDK = "UseChimeAndroidSdk";
      public static final String USE_CLIENT_CONFIG_IPH = "UseClientConfigIPH";
      public static final String USE_CLIENT_CONFIG_IPH = "UseClientConfigIPH";
      public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy";
      public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy";
@@ -1381,7 +1381,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
-@@ -99,6 +99,8 @@ public final class ChromePreferenceKeys {
+@@ -100,6 +100,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";
@@ -1390,7 +1390,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.
-@@ -1001,6 +1003,7 @@ public final class ChromePreferenceKeys {
+@@ -1027,6 +1029,7 @@ public final class ChromePreferenceKeys {
                  ASSISTANT_VOICE_SEARCH_ENABLED,
                  ASSISTANT_VOICE_SEARCH_ENABLED,
                  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,
@@ -1429,7 +1429,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
-@@ -404,6 +404,9 @@ static_library("common_lib") {
+@@ -402,6 +402,9 @@ static_library("common_lib") {
      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",

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

@@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -56,6 +56,16 @@
+@@ -58,6 +58,16 @@ found in the LICENSE file.
          android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
          android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
          android:key="do_not_track"
          android:key="do_not_track"
          android:title="@string/do_not_track_title"/>
          android:title="@string/do_not_track_title"/>
@@ -42,7 +42,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/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
-@@ -44,6 +44,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
+@@ -45,6 +45,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
  import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.searchwidget.SearchActivity;
  import org.chromium.chrome.browser.searchwidget.SearchActivity;
  import org.chromium.chrome.browser.tab.Tab;
  import org.chromium.chrome.browser.tab.Tab;
@@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
  import org.chromium.chrome.browser.translate.TranslateIntentHandler;
  import org.chromium.chrome.browser.translate.TranslateIntentHandler;
  import org.chromium.chrome.browser.util.AndroidTaskUtils;
  import org.chromium.chrome.browser.util.AndroidTaskUtils;
  import org.chromium.chrome.browser.vr.VrModuleProvider;
  import org.chromium.chrome.browser.vr.VrModuleProvider;
-@@ -57,6 +58,8 @@ import java.lang.annotation.Retention;
+@@ -58,6 +59,8 @@ import java.lang.annotation.Retention;
  import java.lang.annotation.RetentionPolicy;
  import java.lang.annotation.RetentionPolicy;
  import java.util.Set;
  import java.util.Set;
  
  
@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
  /**
  /**
   * Dispatches incoming intents to the appropriate activity based on the current configuration and
   * Dispatches incoming intents to the appropriate activity based on the current configuration and
   * Intent fired.
   * Intent fired.
-@@ -267,6 +270,9 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
+@@ -268,6 +271,9 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
       */
       */
      public static boolean isCustomTabIntent(Intent intent) {
      public static boolean isCustomTabIntent(Intent intent) {
          if (intent == null) return false;
          if (intent == null) return false;
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
          if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
          if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
                  || !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
                  || !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
              return false;
              return false;
-@@ -286,6 +292,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
+@@ -287,6 +293,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
          newIntent.setData(uri);
          newIntent.setData(uri);
          newIntent.setClassName(context, CustomTabActivity.class.getName());
          newIntent.setClassName(context, CustomTabActivity.class.getName());
  
  
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
          // Since configureIntentForResizableCustomTab() might change the componenet/class
          // Since configureIntentForResizableCustomTab() might change the componenet/class
          // associated with the passed intent, it needs to be called after #setClassName(context,
          // associated with the passed intent, it needs to be called after #setClassName(context,
          // CustomTabActivity.class.getName());
          // CustomTabActivity.class.getName());
-@@ -421,6 +431,18 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
+@@ -431,6 +441,18 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
  
  
          if (Intent.ACTION_VIEW.equals(newIntent.getAction())
          if (Intent.ACTION_VIEW.equals(newIntent.getAction())
                  && !IntentHandler.wasIntentSenderChrome(newIntent)) {
                  && !IntentHandler.wasIntentSenderChrome(newIntent)) {
@@ -196,7 +196,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
-@@ -4800,6 +4800,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4818,6 +4818,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>

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

@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -159,6 +159,9 @@
+@@ -161,6 +161,9 @@ found in the LICENSE file.
          <item android:id="@+id/managed_by_menu_id"
          <item android:id="@+id/managed_by_menu_id"
              android:title="@string/managed_browser"
              android:title="@string/managed_browser"
              android:icon="@drawable/ic_business" />
              android:icon="@drawable/ic_business" />
@@ -27,7 +27,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 -->
-@@ -185,6 +188,9 @@
+@@ -187,6 +190,9 @@ found in the LICENSE file.
          <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" />
@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
 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
-@@ -222,6 +222,8 @@ import java.util.HashSet;
+@@ -223,6 +223,8 @@ import java.util.HashSet;
  import java.util.List;
  import java.util.List;
  import java.util.Locale;
  import java.util.Locale;
  
  
@@ -68,7 +68,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.
-@@ -2174,6 +2176,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2183,6 +2185,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");
@@ -80,7 +80,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
-@@ -61,6 +61,7 @@ import org.chromium.chrome.R;
+@@ -62,6 +62,7 @@ import org.chromium.chrome.R;
  import org.chromium.chrome.browser.ActivityTabProvider;
  import org.chromium.chrome.browser.ActivityTabProvider;
  import org.chromium.chrome.browser.ActivityUtils;
  import org.chromium.chrome.browser.ActivityUtils;
  import org.chromium.chrome.browser.AppHooks;
  import org.chromium.chrome.browser.AppHooks;
@@ -88,7 +88,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;
-@@ -2322,6 +2323,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2290,6 +2291,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              return true;
              return true;
          }
          }
  
  
@@ -119,7 +119,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
-@@ -3511,6 +3511,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3497,6 +3497,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>

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

@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -519,6 +519,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
+@@ -521,6 +521,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
  #endif  // BUILDFLAG(IS_ANDROID)
  #endif  // BUILDFLAG(IS_ANDROID)
  
  
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)
@@ -40,8 +40,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
  const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
      {"mode", "always-none"}};
      {"mode", "always-none"}};
  const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = {
  const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = {
-@@ -4174,7 +4190,11 @@ const FeatureEntry kFeatureEntries[] = {
-      kOsMac | kOsLinux | kOsLacros | kOsWin,
+@@ -4265,7 +4281,11 @@ const FeatureEntry kFeatureEntries[] = {
+      kOsMac | kOsLinux | kOsWin,
       FEATURE_VALUE_TYPE(features::kSystemNotifications)},
       FEATURE_VALUE_TYPE(features::kSystemNotifications)},
  #endif  // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH)
 -#if BUILDFLAG(IS_ANDROID)
 -#if BUILDFLAG(IS_ANDROID)
@@ -65,7 +65,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
  #include "base/feature_list.h"
  #include "base/feature_list.h"
  #include "base/format_macros.h"
  #include "base/format_macros.h"
  #include "base/metrics/histogram_functions.h"
  #include "base/metrics/histogram_functions.h"
-@@ -318,6 +320,15 @@ AutocompleteController::AutocompleteController(
+@@ -327,6 +329,15 @@ AutocompleteController::AutocompleteController(
        is_cros_launcher_(is_cros_launcher),
        is_cros_launcher_(is_cros_launcher),
        search_service_worker_signal_sent_(false),
        search_service_worker_signal_sent_(false),
        template_url_service_(provider_client_->GetTemplateURLService()) {
        template_url_service_(provider_client_->GetTemplateURLService()) {
@@ -84,7 +84,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
 diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
 diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
 --- a/components/omnibox/browser/history_url_provider.cc
 --- a/components/omnibox/browser/history_url_provider.cc
 +++ b/components/omnibox/browser/history_url_provider.cc
 +++ b/components/omnibox/browser/history_url_provider.cc
-@@ -474,6 +474,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
+@@ -475,6 +475,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
    if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
    if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
      matches_.push_back(what_you_typed_match);
      matches_.push_back(what_you_typed_match);
  
  
@@ -105,7 +105,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
  #include "base/feature_list.h"
  #include "base/feature_list.h"
  #include "base/i18n/break_iterator.h"
  #include "base/i18n/break_iterator.h"
  #include "base/i18n/case_conversion.h"
  #include "base/i18n/case_conversion.h"
-@@ -680,6 +681,9 @@ void SearchProvider::Run(bool query_is_private) {
+@@ -681,6 +682,9 @@ void SearchProvider::Run(bool query_is_private) {
  }
  }
  
  
  void SearchProvider::DoHistoryQuery(bool minimal_changes) {
  void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@@ -118,16 +118,16 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
 diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
 diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
 --- a/components/url_formatter/url_fixer.cc
 --- a/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
-@@ -9,6 +9,8 @@
- #include <algorithm>
+@@ -7,6 +7,8 @@
+ #include <stddef.h>
  
  
  #include "base/check_op.h"
  #include "base/check_op.h"
 +#include "base/containers/contains.h"
 +#include "base/containers/contains.h"
 +#include "base/command_line.h"
 +#include "base/command_line.h"
  #include "base/files/file_path.h"
  #include "base/files/file_path.h"
  #include "base/files/file_util.h"
  #include "base/files/file_util.h"
- #include "base/ranges/algorithm.h"
-@@ -607,6 +609,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
+ #include "base/i18n/char_iterator.h"
+@@ -608,6 +610,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
  
  
      FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
      FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
      if (chrome_url && !parts.host.is_valid())
      if (chrome_url && !parts.host.is_valid())

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

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -4771,7 +4771,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4861,7 +4861,10 @@ const FeatureEntry kFeatureEntries[] = {
      {"force-text-direction", flag_descriptions::kForceTextDirectionName,
      {"force-text-direction", flag_descriptions::kForceTextDirectionName,
       flag_descriptions::kForceTextDirectionDescription, kOsAll,
       flag_descriptions::kForceTextDirectionDescription, kOsAll,
       MULTI_VALUE_TYPE(kForceTextDirectionChoices)},
       MULTI_VALUE_TYPE(kForceTextDirectionChoices)},
@@ -30,7 +30,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
-@@ -1227,6 +1227,10 @@ const char kDeprecateAltBasedSixPackDescription[] =
+@@ -1230,6 +1230,10 @@ const char kDeprecateAltBasedSixPackDescription[] =
      "Show deprecation notifications and disable functionality for Alt based "
      "Show deprecation notifications and disable functionality for Alt based "
      "six pack deprecations. The Search based versions continue to work.";
      "six pack deprecations. The Search based versions continue to work.";
  
  
@@ -44,7 +44,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
-@@ -647,6 +647,9 @@ extern const char kDeprecateAltClickDescription[];
+@@ -644,6 +644,9 @@ extern const char kDeprecateAltClickDescription[];
  extern const char kDeprecateAltBasedSixPackName[];
  extern const char kDeprecateAltBasedSixPackName[];
  extern const char kDeprecateAltBasedSixPackDescription[];
  extern const char kDeprecateAltBasedSixPackDescription[];
  
  

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

@@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -1018,6 +1018,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = {
+@@ -1010,6 +1010,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = {
       switches::kForceDisplayColorProfile, "hdr10"},
       switches::kForceDisplayColorProfile, "hdr10"},
  };
  };
  
  
@@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  const FeatureEntry::Choice kMemlogModeChoices[] = {
  const FeatureEntry::Choice kMemlogModeChoices[] = {
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
      {flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode,
      {flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode,
-@@ -4695,6 +4700,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4760,6 +4765,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)},
@@ -46,7 +46,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
-@@ -1794,6 +1794,10 @@ const char kUnthrottledNestedTimeoutDescription[] =
+@@ -1815,6 +1815,10 @@ const char kUnthrottledNestedTimeoutDescription[] =
      "websites abusing the API will still eventually have their setTimeouts "
      "websites abusing the API will still eventually have their setTimeouts "
      "clamped.";
      "clamped.";
  
  
@@ -60,7 +60,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
-@@ -1009,6 +1009,9 @@ extern const char kLogJsConsoleMessagesDescription[];
+@@ -1014,6 +1014,9 @@ extern const char kLogJsConsoleMessagesDescription[];
  extern const char kUnthrottledNestedTimeoutName[];
  extern const char kUnthrottledNestedTimeoutName[];
  extern const char kUnthrottledNestedTimeoutDescription[];
  extern const char kUnthrottledNestedTimeoutDescription[];
  
  

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

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -3396,6 +3396,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -3527,6 +3527,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)},
@@ -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
-@@ -1318,6 +1318,11 @@ const char kEnablePenetratingImageSelectionDescription[] =
+@@ -1332,6 +1332,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.";
  
  
@@ -44,7 +44,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
-@@ -726,6 +726,9 @@ extern const char kEnablePortalsDescription[];
+@@ -729,6 +729,9 @@ extern const char kEnablePortalsDescription[];
  extern const char kEnablePortalsCrossOriginName[];
  extern const char kEnablePortalsCrossOriginName[];
  extern const char kEnablePortalsCrossOriginDescription[];
  extern const char kEnablePortalsCrossOriginDescription[];
  
  
@@ -57,7 +57,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
-@@ -287,11 +287,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",

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

@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -5729,6 +5729,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5850,6 +5850,10 @@ const FeatureEntry kFeatureEntries[] = {
      {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
      {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
       flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
       flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
       FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
@@ -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
-@@ -3373,6 +3373,10 @@ const char kCCTRealTimeEngagementSignalsDescription[] =
+@@ -3438,6 +3438,10 @@ const char kCCTRealTimeEngagementSignalsDescription[] =
      "Enables sending real-time engagement signals (e.g. scroll) through "
      "Enables sending real-time engagement signals (e.g. scroll) through "
      "CustomTabsCallback.";
      "CustomTabsCallback.";
  
  
@@ -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
-@@ -792,6 +792,9 @@ extern const char kEnableWasmLazyCompilationName[];
+@@ -795,6 +795,9 @@ extern const char kEnableWasmLazyCompilationName[];
  extern const char kEnableWasmLazyCompilationDescription[];
  extern const char kEnableWasmLazyCompilationDescription[];
  
  
  extern const char kEnableWasmTieringName[];
  extern const char kEnableWasmTieringName[];
@@ -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"
-@@ -4074,8 +4075,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
+@@ -4084,8 +4085,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) {

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

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -3389,6 +3389,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -3521,6 +3521,9 @@ const FeatureEntry kFeatureEntries[] = {
      {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
      {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
       flag_descriptions::kUiPartialSwapDescription, kOsAll,
       flag_descriptions::kUiPartialSwapDescription, kOsAll,
       SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
       SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
@@ -28,7 +28,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
-@@ -3735,6 +3735,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support";
+@@ -3817,6 +3817,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";
  
  
@@ -44,9 +44,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
-@@ -2137,6 +2137,9 @@ extern const char kQueryTilesDescription[];
- extern const char kQueryTilesNTPName[];
- extern const char kQueryTilesNTPDescription[];
+@@ -2188,6 +2188,9 @@ extern const char kQueryTilesNTPDescription[];
+ extern const char kQueryTilesOnStartName[];
+ extern const char kQueryTilesOnStartDescription[];
  extern const char kQueryTilesSingleTierName[];
  extern const char kQueryTilesSingleTierName[];
 +extern const char kDisableExternalIntentRequestsName[];
 +extern const char kDisableExternalIntentRequestsName[];
 +extern const char kDisableExternalIntentRequestsDescription[];
 +extern const char kDisableExternalIntentRequestsDescription[];

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

@@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -7096,6 +7096,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -7243,6 +7243,10 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
       FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
  #endif
  #endif
  
  
@@ -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
-@@ -6104,6 +6104,9 @@ extern const char kLacrosScreenCoordinatesDescription[];
+@@ -6242,6 +6242,9 @@ extern const char kLacrosScreenCoordinatesDescription[];
  
  
  #endif  // #if BUILDFLAG(IS_CHROMEOS_LACROS)
  #endif  // #if BUILDFLAG(IS_CHROMEOS_LACROS)
  
  
@@ -46,7 +46,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
-@@ -3727,6 +3727,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
+@@ -3814,6 +3814,8 @@ extern const char kWebUITabStripTabDragIntegrationName[];
  extern const char kWebUITabStripTabDragIntegrationDescription[];
  extern const char kWebUITabStripTabDragIntegrationDescription[];
  #endif  // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -83,7 +83,7 @@ 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
-@@ -332,6 +332,8 @@ CONTENT_EXPORT extern const base::FeatureParam<base::TimeDelta>
+@@ -337,6 +337,8 @@ CONTENT_EXPORT extern const base::FeatureParam<base::TimeDelta>
      kCompositorLockTimeout;
      kCompositorLockTimeout;
  
  
  #endif  // BUILDFLAG(IS_ANDROID)
  #endif  // BUILDFLAG(IS_ANDROID)
@@ -95,26 +95,26 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co
 diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
 diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
 --- a/third_party/blink/public/platform/web_runtime_features.h
 --- a/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
 +++ b/third_party/blink/public/platform/web_runtime_features.h
-@@ -88,6 +88,7 @@ class WebRuntimeFeatures {
-   BLINK_PLATFORM_EXPORT static void EnableBlockingFocusWithoutUserActivation(
-       bool);
-   BLINK_PLATFORM_EXPORT static void EnableClickPointerEvent(bool enable);
-+  BLINK_PLATFORM_EXPORT static void EnableVibration(bool);
-   BLINK_PLATFORM_EXPORT static void EnableCompositeBGColorAnimation(
-       bool enable);
-   BLINK_PLATFORM_EXPORT static void EnableCanvas2dImageChromium(bool);
+@@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase {
+   static void EnableFingerprintingCanvasMeasureTextNoise(bool);
+   static void EnableFingerprintingCanvasImageDataNoise(bool);
+   static void EnableFluentScrollbars(bool);
++  static void EnableVibration(bool);
+ 
+   WebRuntimeFeatures() = delete;
+ };
 diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
 diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
 --- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
 --- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
 +++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
 +++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
-@@ -30,6 +30,7 @@
+@@ -29,6 +29,7 @@
+ #include "third_party/blink/renderer/core/frame/local_frame.h"
  #include "third_party/blink/renderer/core/frame/navigator.h"
  #include "third_party/blink/renderer/core/frame/navigator.h"
  #include "third_party/blink/renderer/core/page/page.h"
  #include "third_party/blink/renderer/core/page/page.h"
- #include "third_party/blink/renderer/platform/mojo/mojo_helper.h"
 +#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 +#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
  
  
  // Maximum number of entries in a vibration pattern.
  // Maximum number of entries in a vibration pattern.
  const unsigned kVibrationPatternLengthMax = 99;
  const unsigned kVibrationPatternLengthMax = 99;
-@@ -153,6 +154,8 @@ bool VibrationController::vibrate(Navigator& navigator,
+@@ -152,6 +153,8 @@ bool VibrationController::vibrate(Navigator& navigator,
    // reference to |window| or |navigator| was retained in another window.
    // reference to |window| or |navigator| was retained in another window.
    if (!navigator.DomWindow())
    if (!navigator.DomWindow())
      return false;
      return false;
@@ -126,21 +126,21 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c
 diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
-@@ -160,6 +160,10 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
-   RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable);
+@@ -52,6 +52,10 @@ void WebRuntimeFeatures::EnableTestOnlyFeatures(bool enable) {
+   RuntimeEnabledFeatures::SetTestFeaturesEnabled(enable);
  }
  }
  
  
 +void WebRuntimeFeatures::EnableVibration(bool enable) {
 +void WebRuntimeFeatures::EnableVibration(bool enable) {
 +  RuntimeEnabledFeatures::SetVibrationEnabled(enable);
 +  RuntimeEnabledFeatures::SetVibrationEnabled(enable);
 +}
 +}
 +
 +
- void WebRuntimeFeatures::EnableKeyboardAccessibleTooltip(bool enable) {
-   RuntimeEnabledFeatures::SetKeyboardAccessibleTooltipEnabled(enable);
+ void WebRuntimeFeatures::EnableOriginTrialControlledFeatures(bool enable) {
+   RuntimeEnabledFeatures::SetOriginTrialControlledFeaturesEnabled(enable);
  }
  }
 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
-@@ -1569,6 +1569,10 @@
+@@ -1786,6 +1786,10 @@
        name: "OrientationEvent",
        name: "OrientationEvent",
        status: {"Android": "stable"},
        status: {"Android": "stable"},
      },
      },

+ 45 - 108
build/patches/Add-lifetime-options-for-permissions.patch

@@ -65,9 +65,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  components/content_settings/android/BUILD.gn  |  1 +
  components/content_settings/android/BUILD.gn  |  1 +
  .../core/browser/content_settings_utils.cc    | 29 +++++++
  .../core/browser/content_settings_utils.cc    | 29 +++++++
  .../core/browser/content_settings_utils.h     |  6 ++
  .../core/browser/content_settings_utils.h     |  6 ++
- .../core/browser/host_content_settings_map.cc |  2 +-
- .../core/common/content_settings.cc           |  7 +-
- .../core/common/content_settings.h            |  4 +-
  .../common/content_settings_constraints.h     | 11 +++
  .../common/content_settings_constraints.h     | 11 +++
  .../page_info/PageInfoController.java         |  4 +-
  .../page_info/PageInfoController.java         |  4 +-
  .../PermissionParamsListBuilder.java          | 13 ++-
  .../PermissionParamsListBuilder.java          | 13 ++-
@@ -90,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  components/permissions/permission_request.h   | 17 +++-
  components/permissions/permission_request.h   | 17 +++-
  .../permissions/permission_request_manager.cc | 37 ++++++---
  .../permissions/permission_request_manager.cc | 37 ++++++---
  .../permissions/permission_request_manager.h  | 11 ++-
  .../permissions/permission_request_manager.h  | 11 ++-
- 38 files changed, 481 insertions(+), 60 deletions(-)
+ 35 files changed, 472 insertions(+), 56 deletions(-)
 
 
 diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
 diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
 --- a/chrome/browser/permissions/last_tab_standing_tracker.cc
 --- a/chrome/browser/permissions/last_tab_standing_tracker.cc
@@ -184,7 +181,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker_factory.cc b/c
 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
-@@ -407,10 +407,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -410,10 +410,7 @@ void ChromeBrowserMainExtraPartsProfiles::
    LacrosFirstRunServiceFactory::GetInstance();
    LacrosFirstRunServiceFactory::GetInstance();
  #endif
  #endif
    LanguageModelManagerFactory::GetInstance();
    LanguageModelManagerFactory::GetInstance();
@@ -199,7 +196,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 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
-@@ -484,6 +484,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -503,6 +503,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
          web_contents);
          web_contents);
    }
    }
    video_tutorials::VideoTutorialTabHelper::CreateForWebContents(web_contents);
    video_tutorials::VideoTutorialTabHelper::CreateForWebContents(web_contents);
@@ -260,8 +257,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 +import org.chromium.components.content_settings.SessionModel;
 +import org.chromium.components.content_settings.SessionModel;
  import org.chromium.components.embedder_support.util.Origin;
  import org.chromium.components.embedder_support.util.Origin;
  import org.chromium.content_public.browser.BrowserContextHandle;
  import org.chromium.content_public.browser.BrowserContextHandle;
- 
-@@ -523,6 +524,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+ import org.chromium.content_public.browser.ContentFeatureList;
+@@ -528,6 +529,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
          }
          }
      }
      }
  
  
@@ -273,7 +270,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
      private void setUpClearDataPreference() {
      private void setUpClearDataPreference() {
          ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
          ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
          long usage = mSite.getTotalUsage();
          long usage = mSite.getTotalUsage();
-@@ -915,6 +921,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -926,6 +932,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
          if (contentType == mHighlightedPermission) {
          if (contentType == mHighlightedPermission) {
              switchPreference.setBackgroundColor(mHighlightColor);
              switchPreference.setBackgroundColor(mHighlightColor);
          }
          }
@@ -332,7 +329,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
      insertionFunc(env, static_cast<int>(content_type), list,
      insertionFunc(env, static_cast<int>(content_type), list,
                    ConvertOriginToJavaString(env, origin), jembedder,
                    ConvertOriginToJavaString(env, origin), jembedder,
 -                  /*is_embargoed=*/false);
 -                  /*is_embargoed=*/false);
-+                  /*is_embargoed=*/false, static_cast<int>(settings_it.session_model));
++                  /*is_embargoed=*/false, static_cast<int>(settings_it.metadata.session_model));
    }
    }
  
  
    // Add any origins which have a default content setting value (thus skipped
    // Add any origins which have a default content setting value (thus skipped
@@ -348,7 +345,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
 diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
 diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
 --- a/components/browser_ui/strings/android/browser_ui_strings.grd
 --- a/components/browser_ui/strings/android/browser_ui_strings.grd
 +++ b/components/browser_ui/strings/android/browser_ui_strings.grd
 +++ b/components/browser_ui/strings/android/browser_ui_strings.grd
-@@ -600,6 +600,11 @@
+@@ -602,6 +602,11 @@
        <message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
        <message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
          URL truncated
          URL truncated
        </message>
        </message>
@@ -374,7 +371,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s
 diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
 diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
 --- a/components/content_settings/core/browser/content_settings_utils.cc
 --- a/components/content_settings/core/browser/content_settings_utils.cc
 +++ b/components/content_settings/core/browser/content_settings_utils.cc
 +++ b/components/content_settings/core/browser/content_settings_utils.cc
-@@ -184,4 +184,33 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration) {
+@@ -189,6 +189,35 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration) {
    return base::Time::Now() + duration;
    return base::Time::Now() + duration;
  }
  }
  
  
@@ -392,13 +389,13 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
 +
 +
 +bool IsConstraintSessionExpiration(const ContentSettingPatternSource& source,
 +bool IsConstraintSessionExpiration(const ContentSettingPatternSource& source,
 +                                   LifetimeMode lifetime_mode) {
 +                                   LifetimeMode lifetime_mode) {
-+  if (source.session_model != content_settings::SessionModel::UserSession)
++  if (source.metadata.session_model != content_settings::SessionModel::UserSession)
 +    return false;
 +    return false;
 +
 +
 +  LifetimeMode type;
 +  LifetimeMode type;
-+  if (source.expiration == base::Time()) {
++  if (source.metadata.expiration == base::Time()) {
 +    type = LifetimeMode::UntilBrowserClosed;
 +    type = LifetimeMode::UntilBrowserClosed;
-+  } else if (source.expiration == (base::Time() + base::Hours(1))) {
++  } else if (source.metadata.expiration == (base::Time() + base::Hours(1))) {
 +    type = LifetimeMode::OnlyThisTime;
 +    type = LifetimeMode::OnlyThisTime;
 +  } else {
 +  } else {
 +    type = LifetimeMode::UntilOriginClosed;
 +    type = LifetimeMode::UntilOriginClosed;
@@ -407,13 +404,15 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
 +  return lifetime_mode == type;
 +  return lifetime_mode == type;
 +}
 +}
 +
 +
- }  // namespace content_settings
+ bool CanTrackLastVisit(ContentSettingsType type) {
+ #if BUILDFLAG(IS_ANDROID)
+   // The notification provider on Android does not support last visit tracking.
 diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h
 diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h
 --- a/components/content_settings/core/browser/content_settings_utils.h
 --- a/components/content_settings/core/browser/content_settings_utils.h
 +++ b/components/content_settings/core/browser/content_settings_utils.h
 +++ b/components/content_settings/core/browser/content_settings_utils.h
-@@ -73,6 +73,12 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints);
- // Returns the expiration time for a supplied |duration|.
- base::Time GetConstraintExpiration(const base::TimeDelta duration);
+@@ -76,6 +76,12 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration);
+ // Returns whether the given type supports tracking last_visit timestamps.
+ bool CanTrackLastVisit(ContentSettingsType type);
  
  
 +ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode);
 +ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode);
 +
 +
@@ -421,71 +420,9 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b
 +    const ContentSettingPatternSource& source,
 +    const ContentSettingPatternSource& source,
 +    LifetimeMode lifetime_mode);
 +    LifetimeMode lifetime_mode);
 +
 +
- }  // namespace content_settings
- 
- #endif  // COMPONENTS_CONTENT_SETTINGS_CORE_BROWSER_CONTENT_SETTINGS_UTILS_H_
-diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
---- a/components/content_settings/core/browser/host_content_settings_map.cc
-+++ b/components/content_settings/core/browser/host_content_settings_map.cc
-@@ -847,7 +847,7 @@ void HostContentSettingsMap::AddSettingsForOneType(
-     settings->emplace_back(rule.primary_pattern, rule.secondary_pattern,
-                            std::move(value),
-                            kProviderNamesSourceMap[provider_type].provider_name,
--                           incognito, rule.expiration);
-+                           incognito, rule.expiration, rule.session_model);
-   }
- }
- 
-diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
---- a/components/content_settings/core/common/content_settings.cc
-+++ b/components/content_settings/core/common/content_settings.cc
-@@ -158,13 +158,15 @@ ContentSettingPatternSource::ContentSettingPatternSource(
-     base::Value setting_value,
-     const std::string& source,
-     bool incognito,
--    base::Time expiration)
-+    base::Time expiration,
-+    content_settings::SessionModel session_model)
-     : primary_pattern(primary_pattern),
-       secondary_pattern(secondary_pattern),
-       setting_value(std::move(setting_value)),
-       expiration(expiration),
-       source(source),
--      incognito(incognito) {}
-+      incognito(incognito),
-+      session_model(session_model) {}
- 
- ContentSettingPatternSource::ContentSettingPatternSource() : incognito(false) {}
- 
-@@ -181,6 +183,7 @@ ContentSettingPatternSource& ContentSettingPatternSource::operator=(
-   expiration = other.expiration;
-   source = other.source;
-   incognito = other.incognito;
-+  session_model = other.session_model;
-   return *this;
- }
- 
-diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
---- a/components/content_settings/core/common/content_settings.h
-+++ b/components/content_settings/core/common/content_settings.h
-@@ -49,7 +49,8 @@ struct ContentSettingPatternSource {
-                               base::Value setting_value,
-                               const std::string& source,
-                               bool incognito,
--                              base::Time expiration = base::Time());
-+                              base::Time expiration = base::Time(),
-+                              content_settings::SessionModel session_model = content_settings::SessionModel::Durable);
-   ContentSettingPatternSource(const ContentSettingPatternSource& other);
-   ContentSettingPatternSource();
-   ContentSettingPatternSource& operator=(
-@@ -64,6 +65,7 @@ struct ContentSettingPatternSource {
-   base::Time expiration;
-   std::string source;
-   bool incognito;
-+  content_settings::SessionModel session_model;
- };
+ // Get a timestamp with week-precision.
+ base::Time GetCoarseTime(base::Time time);
  
  
- typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
 diff --git a/components/content_settings/core/common/content_settings_constraints.h b/components/content_settings/core/common/content_settings_constraints.h
 diff --git a/components/content_settings/core/common/content_settings_constraints.h b/components/content_settings/core/common/content_settings_constraints.h
 --- a/components/content_settings/core/common/content_settings_constraints.h
 --- a/components/content_settings/core/common/content_settings_constraints.h
 +++ b/components/content_settings/core/common/content_settings_constraints.h
 +++ b/components/content_settings/core/common/content_settings_constraints.h
@@ -555,7 +492,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
              }
              }
          }
          }
  
  
-@@ -123,13 +128,15 @@ public class PermissionParamsListBuilder {
+@@ -124,13 +129,15 @@ public class PermissionParamsListBuilder {
          public final String nameMidSentence;
          public final String nameMidSentence;
          public final int type;
          public final int type;
          public final @ContentSettingValues int setting;
          public final @ContentSettingValues int setting;
@@ -575,7 +512,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
 diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
 diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
 --- a/components/page_info/android/page_info_controller_android.cc
 --- a/components/page_info/android/page_info_controller_android.cc
 +++ b/components/page_info/android/page_info_controller_android.cc
 +++ b/components/page_info/android/page_info_controller_android.cc
-@@ -162,6 +162,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
+@@ -171,6 +171,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
  
  
    std::map<ContentSettingsType, ContentSetting>
    std::map<ContentSettingsType, ContentSetting>
        user_specified_settings_to_display;
        user_specified_settings_to_display;
@@ -584,7 +521,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
  
  
    for (const auto& permission : permission_info_list) {
    for (const auto& permission : permission_info_list) {
      if (base::Contains(permissions_to_display, permission.type)) {
      if (base::Contains(permissions_to_display, permission.type)) {
-@@ -170,6 +172,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
+@@ -179,6 +181,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
        if (setting_to_display) {
        if (setting_to_display) {
          user_specified_settings_to_display[permission.type] =
          user_specified_settings_to_display[permission.type] =
              *setting_to_display;
              *setting_to_display;
@@ -593,7 +530,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
        }
        }
      }
      }
    }
    }
-@@ -186,7 +190,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
+@@ -195,7 +199,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
            ConvertUTF16ToJavaString(env, setting_title),
            ConvertUTF16ToJavaString(env, setting_title),
            ConvertUTF16ToJavaString(env, setting_title_mid_sentence),
            ConvertUTF16ToJavaString(env, setting_title_mid_sentence),
            static_cast<jint>(permission),
            static_cast<jint>(permission),
@@ -603,7 +540,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
      }
      }
    }
    }
  
  
-@@ -199,7 +204,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
+@@ -208,7 +213,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
          env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title),
          env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title),
          ConvertUTF16ToJavaString(env, object_title),
          ConvertUTF16ToJavaString(env, object_title),
          static_cast<jint>(chosen_object->ui_info.content_settings_type),
          static_cast<jint>(chosen_object->ui_info.content_settings_type),
@@ -616,19 +553,19 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
 diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
 diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
 --- a/components/page_info/page_info.cc
 --- a/components/page_info/page_info.cc
 +++ b/components/page_info/page_info.cc
 +++ b/components/page_info/page_info.cc
-@@ -1084,6 +1084,8 @@ void PageInfo::PresentSitePermissions() {
+@@ -1151,6 +1151,8 @@ void PageInfo::PresentSitePermissions() {
      permission_info.source = info.source;
      permission_info.source = info.source;
-     permission_info.is_one_time =
-         (info.session_model == content_settings::SessionModel::OneTime);
+     permission_info.is_one_time = (info.metadata.session_model ==
+                                    content_settings::SessionModel::OneTime);
 +    permission_info.is_user_session =
 +    permission_info.is_user_session =
-+        (info.session_model == content_settings::SessionModel::UserSession);
++        (info.metadata.session_model == content_settings::SessionModel::UserSession);
  
  
      if (info.primary_pattern == ContentSettingsPattern::Wildcard() &&
      if (info.primary_pattern == ContentSettingsPattern::Wildcard() &&
          info.secondary_pattern == ContentSettingsPattern::Wildcard()) {
          info.secondary_pattern == ContentSettingsPattern::Wildcard()) {
 diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
 diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
 --- a/components/page_info/page_info.h
 --- a/components/page_info/page_info.h
 +++ b/components/page_info/page_info.h
 +++ b/components/page_info/page_info.h
-@@ -178,6 +178,7 @@ class PageInfo {
+@@ -180,6 +180,7 @@ class PageInfo : private content_settings::CookieControlsView {
      content_settings::SettingSource source =
      content_settings::SettingSource source =
          content_settings::SETTING_SOURCE_NONE;
          content_settings::SETTING_SOURCE_NONE;
      bool is_one_time = false;
      bool is_one_time = false;
@@ -1021,7 +958,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
 diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc
 diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc
 --- a/components/permissions/permission_context_base.cc
 --- a/components/permissions/permission_context_base.cc
 +++ b/components/permissions/permission_context_base.cc
 +++ b/components/permissions/permission_context_base.cc
-@@ -250,6 +250,20 @@ PermissionContextBase::CreatePermissionRequest(
+@@ -252,6 +252,20 @@ PermissionContextBase::CreatePermissionRequest(
        std::move(delete_callback));
        std::move(delete_callback));
  }
  }
  
  
@@ -1042,7 +979,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
  PermissionResult PermissionContextBase::GetPermissionStatus(
  PermissionResult PermissionContextBase::GetPermissionStatus(
      content::RenderFrameHost* render_frame_host,
      content::RenderFrameHost* render_frame_host,
      const GURL& requesting_origin,
      const GURL& requesting_origin,
-@@ -441,7 +455,8 @@ void PermissionContextBase::PermissionDecided(
+@@ -443,7 +457,8 @@ void PermissionContextBase::PermissionDecided(
      const GURL& embedding_origin,
      const GURL& embedding_origin,
      BrowserPermissionCallback callback,
      BrowserPermissionCallback callback,
      ContentSetting content_setting,
      ContentSetting content_setting,
@@ -1052,7 +989,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
    DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
    DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
           content_setting == CONTENT_SETTING_BLOCK ||
           content_setting == CONTENT_SETTING_BLOCK ||
           content_setting == CONTENT_SETTING_DEFAULT);
           content_setting == CONTENT_SETTING_DEFAULT);
-@@ -449,9 +464,9 @@ void PermissionContextBase::PermissionDecided(
+@@ -451,9 +466,9 @@ void PermissionContextBase::PermissionDecided(
                               content_setting);
                               content_setting);
  
  
    bool persist = content_setting != CONTENT_SETTING_DEFAULT;
    bool persist = content_setting != CONTENT_SETTING_DEFAULT;
@@ -1064,7 +1001,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
  }
  }
  
  
  content::BrowserContext* PermissionContextBase::browser_context() const {
  content::BrowserContext* PermissionContextBase::browser_context() const {
-@@ -501,11 +516,26 @@ void PermissionContextBase::NotifyPermissionSet(
+@@ -503,11 +518,26 @@ void PermissionContextBase::NotifyPermissionSet(
      bool persist,
      bool persist,
      ContentSetting content_setting,
      ContentSetting content_setting,
      bool is_one_time) {
      bool is_one_time) {
@@ -1092,7 +1029,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
    }
    }
  
  
    UpdateTabContext(id, requesting_origin,
    UpdateTabContext(id, requesting_origin,
-@@ -526,6 +556,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
+@@ -528,6 +558,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
                                                   const GURL& embedding_origin,
                                                   const GURL& embedding_origin,
                                                   ContentSetting content_setting,
                                                   ContentSetting content_setting,
                                                   bool is_one_time) {
                                                   bool is_one_time) {
@@ -1108,7 +1045,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
    DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
    DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
    DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
    DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
    DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
    DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
-@@ -534,6 +573,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
+@@ -536,6 +575,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
    content_settings::ContentSettingConstraints constraints = {
    content_settings::ContentSettingConstraints constraints = {
        base::Time(), is_one_time ? content_settings::SessionModel::OneTime
        base::Time(), is_one_time ? content_settings::SessionModel::OneTime
                                  : content_settings::SessionModel::Durable};
                                  : content_settings::SessionModel::Durable};
@@ -1299,7 +1236,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
 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
-@@ -152,7 +152,7 @@ void PermissionRequestManager::AddRequest(
+@@ -156,7 +156,7 @@ void PermissionRequestManager::AddRequest(
  
  
    if (base::CommandLine::ForCurrentProcess()->HasSwitch(
    if (base::CommandLine::ForCurrentProcess()->HasSwitch(
            switches::kDenyPermissionPrompts)) {
            switches::kDenyPermissionPrompts)) {
@@ -1308,7 +1245,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
      request->RequestFinished();
      request->RequestFinished();
      return;
      return;
    }
    }
-@@ -228,7 +228,7 @@ void PermissionRequestManager::AddRequest(
+@@ -232,7 +232,7 @@ void PermissionRequestManager::AddRequest(
    if (auto_approval_origin) {
    if (auto_approval_origin) {
      if (url::Origin::Create(request->requesting_origin()) ==
      if (url::Origin::Create(request->requesting_origin()) ==
          auto_approval_origin.value()) {
          auto_approval_origin.value()) {
@@ -1317,7 +1254,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
      }
      }
      request->RequestFinished();
      request->RequestFinished();
      return;
      return;
-@@ -487,12 +487,13 @@ void PermissionRequestManager::Accept() {
+@@ -491,12 +491,13 @@ void PermissionRequestManager::Accept() {
    for (requests_iter = requests_.begin(); requests_iter != requests_.end();
    for (requests_iter = requests_.begin(); requests_iter != requests_.end();
         requests_iter++) {
         requests_iter++) {
      PermissionGrantedIncludingDuplicates(*requests_iter,
      PermissionGrantedIncludingDuplicates(*requests_iter,
@@ -1333,7 +1270,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
    if (ignore_callbacks_from_prompt_)
    if (ignore_callbacks_from_prompt_)
      return;
      return;
    DCHECK(view_);
    DCHECK(view_);
-@@ -500,12 +501,22 @@ void PermissionRequestManager::AcceptThisTime() {
+@@ -504,12 +505,22 @@ void PermissionRequestManager::AcceptThisTime() {
    for (requests_iter = requests_.begin(); requests_iter != requests_.end();
    for (requests_iter = requests_.begin(); requests_iter != requests_.end();
         requests_iter++) {
         requests_iter++) {
      PermissionGrantedIncludingDuplicates(*requests_iter,
      PermissionGrantedIncludingDuplicates(*requests_iter,
@@ -1357,7 +1294,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
    if (ignore_callbacks_from_prompt_)
    if (ignore_callbacks_from_prompt_)
      return;
      return;
    DCHECK(view_);
    DCHECK(view_);
-@@ -527,7 +538,7 @@ void PermissionRequestManager::Deny() {
+@@ -529,7 +540,7 @@ void PermissionRequestManager::Deny() {
    std::vector<PermissionRequest*>::iterator requests_iter;
    std::vector<PermissionRequest*>::iterator requests_iter;
    for (requests_iter = requests_.begin(); requests_iter != requests_.end();
    for (requests_iter = requests_.begin(); requests_iter != requests_.end();
         requests_iter++) {
         requests_iter++) {
@@ -1366,7 +1303,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
    }
    }
    FinalizeCurrentRequests(PermissionAction::DENIED);
    FinalizeCurrentRequests(PermissionAction::DENIED);
  }
  }
-@@ -892,25 +903,25 @@ PermissionRequest* PermissionRequestManager::GetExistingRequest(
+@@ -894,25 +905,25 @@ PermissionRequest* PermissionRequestManager::GetExistingRequest(
  
  
  void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
  void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
      PermissionRequest* request,
      PermissionRequest* request,
@@ -1398,7 +1335,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
  }
  }
  
  
  void PermissionRequestManager::CancelledIncludingDuplicates(
  void PermissionRequestManager::CancelledIncludingDuplicates(
-@@ -1090,7 +1101,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
+@@ -1092,7 +1103,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
  void PermissionRequestManager::DoAutoResponseForTesting() {
  void PermissionRequestManager::DoAutoResponseForTesting() {
    switch (auto_response_for_test_) {
    switch (auto_response_for_test_) {
      case ACCEPT_ONCE:
      case ACCEPT_ONCE:
@@ -1410,7 +1347,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
 diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
 diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
 --- a/components/permissions/permission_request_manager.h
 --- a/components/permissions/permission_request_manager.h
 +++ b/components/permissions/permission_request_manager.h
 +++ b/components/permissions/permission_request_manager.h
-@@ -134,8 +134,10 @@ class PermissionRequestManager
+@@ -136,8 +136,10 @@ class PermissionRequestManager
    GURL GetRequestingOrigin() const override;
    GURL GetRequestingOrigin() const override;
    GURL GetEmbeddingOrigin() const override;
    GURL GetEmbeddingOrigin() const override;
    void Accept() override;
    void Accept() override;
@@ -1422,7 +1359,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
    void Dismiss() override;
    void Dismiss() override;
    void Ignore() override;
    void Ignore() override;
    bool WasCurrentRequestAlreadyDisplayed() override;
    bool WasCurrentRequestAlreadyDisplayed() override;
-@@ -272,9 +274,12 @@ class PermissionRequestManager
+@@ -274,9 +276,12 @@ class PermissionRequestManager
  
  
    // Calls PermissionGranted on a request and all its duplicates.
    // Calls PermissionGranted on a request and all its duplicates.
    void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
    void PermissionGrantedIncludingDuplicates(PermissionRequest* request,

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

@@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -64,6 +64,10 @@
+@@ -66,6 +66,10 @@ found in the LICENSE file.
          <item android:id="@+id/all_bookmarks_menu_id"
          <item android:id="@+id/all_bookmarks_menu_id"
              android:title="@string/menu_bookmarks"
              android:title="@string/menu_bookmarks"
              android:icon="@drawable/btn_star_filled" />
              android:icon="@drawable/btn_star_filled" />
@@ -41,7 +41,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" />
-@@ -182,6 +186,9 @@
+@@ -184,6 +188,9 @@ found in the LICENSE file.
          <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" />
@@ -54,7 +54,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
-@@ -75,6 +75,8 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan
+@@ -76,6 +76,8 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan
  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;
@@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.chrome.browser.compositor.layouts.Layout;
  import org.chromium.chrome.browser.compositor.layouts.Layout;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
-@@ -2188,6 +2190,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2197,6 +2199,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
                      () -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
                      () -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
              RecordUserAction.record("MobileMenuCloseAllTabs");
              RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -72,7 +72,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
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
-@@ -2240,6 +2244,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2249,6 +2253,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          mTabModalHandler.onOmniboxFocusChanged(hasFocus);
          mTabModalHandler.onOmniboxFocusChanged(hasFocus);
      }
      }
  
  
@@ -209,7 +209,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
-@@ -616,6 +616,7 @@ public class BookmarkUtils {
+@@ -614,6 +614,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();
@@ -217,7 +217,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 =
-@@ -641,6 +642,9 @@ public class BookmarkUtils {
+@@ -639,6 +640,9 @@ public class BookmarkUtils {
          if (bookmarkModel.isFolderVisible(mobileNodeId)) {
          if (bookmarkModel.isFolderVisible(mobileNodeId)) {
              topLevelFolders.add(mobileNodeId);
              topLevelFolders.add(mobileNodeId);
          }
          }
@@ -230,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
 diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
 diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
 --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
 --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
 +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
 +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
-@@ -436,6 +436,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
+@@ -437,6 +437,11 @@ void BookmarkBridge::GetTopLevelFolderIDs(
          top_level_folders.push_back(node.get());
          top_level_folders.push_back(node.get());
      }
      }
  
  
@@ -242,7 +242,7 @@ diff --git a/chrome/browser/bookmarks/android/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());
-@@ -483,6 +488,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
+@@ -484,6 +489,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(),
@@ -250,7 +250,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
        bookmark_model_->bookmark_bar_node(),
        bookmark_model_->bookmark_bar_node(),
        bookmark_model_->other_node(),
        bookmark_model_->other_node(),
    };
    };
-@@ -535,6 +541,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
+@@ -536,6 +542,17 @@ ScopedJavaLocalRef<jobject> BookmarkBridge::GetMobileFolderId(
    return folder_id_obj;
    return folder_id_obj;
  }
  }
  
  
@@ -317,7 +317,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
 diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
 diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
 --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
 --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
 +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
 +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
-@@ -117,6 +117,8 @@ bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty(
+@@ -144,6 +144,8 @@ bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty(
        return !is_mobile;
        return !is_mobile;
      case bookmarks::BookmarkNode::MOBILE:
      case bookmarks::BookmarkNode::MOBILE:
        return is_mobile;
        return is_mobile;
@@ -350,7 +350,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
-@@ -3600,6 +3600,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3609,6 +3609,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>
@@ -386,7 +386,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
 diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
 diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
 --- a/components/bookmarks/browser/bookmark_codec.cc
 --- a/components/bookmarks/browser/bookmark_codec.cc
 +++ b/components/bookmarks/browser/bookmark_codec.cc
 +++ b/components/bookmarks/browser/bookmark_codec.cc
-@@ -34,6 +34,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
+@@ -35,6 +35,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
  const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
  const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
  // The value is left as 'synced' for historical reasons.
  // The value is left as 'synced' for historical reasons.
  const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
  const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
@@ -394,33 +394,33 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
  const char BookmarkCodec::kVersionKey[] = "version";
  const char BookmarkCodec::kVersionKey[] = "version";
  const char BookmarkCodec::kChecksumKey[] = "checksum";
  const char BookmarkCodec::kChecksumKey[] = "checksum";
  const char BookmarkCodec::kIdKey[] = "id";
  const char BookmarkCodec::kIdKey[] = "id";
-@@ -76,7 +77,8 @@ BookmarkCodec::~BookmarkCodec() = default;
+@@ -78,7 +79,8 @@ BookmarkCodec::~BookmarkCodec() = default;
  base::Value BookmarkCodec::Encode(BookmarkModel* model,
  base::Value BookmarkCodec::Encode(BookmarkModel* model,
                                    std::string sync_metadata_str) {
                                    std::string sync_metadata_str) {
    return Encode(model->bookmark_bar_node(), model->other_node(),
    return Encode(model->bookmark_bar_node(), model->other_node(),
 -                model->mobile_node(), model->root_node()->GetMetaInfoMap(),
 -                model->mobile_node(), model->root_node()->GetMetaInfoMap(),
 +                model->mobile_node(), model->tabs_collection_node(),
 +                model->mobile_node(), model->tabs_collection_node(),
 +                model->root_node()->GetMetaInfoMap(),
 +                model->root_node()->GetMetaInfoMap(),
+                 model->root_node()->GetUnsyncedMetaInfoMap(),
                  std::move(sync_metadata_str));
                  std::move(sync_metadata_str));
  }
  }
- 
-@@ -84,6 +86,7 @@ base::Value BookmarkCodec::Encode(
+@@ -87,6 +89,7 @@ base::Value BookmarkCodec::Encode(
      const BookmarkNode* bookmark_bar_node,
      const BookmarkNode* bookmark_bar_node,
      const BookmarkNode* other_folder_node,
      const BookmarkNode* other_folder_node,
      const BookmarkNode* mobile_folder_node,
      const BookmarkNode* mobile_folder_node,
 +    const BookmarkNode* tabs_folder_node,
 +    const BookmarkNode* tabs_folder_node,
      const BookmarkNode::MetaInfoMap* model_meta_info_map,
      const BookmarkNode::MetaInfoMap* model_meta_info_map,
+     const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map,
      std::string sync_metadata_str) {
      std::string sync_metadata_str) {
-   ids_reassigned_ = false;
-@@ -105,6 +108,7 @@ base::Value BookmarkCodec::Encode(
+@@ -109,6 +112,7 @@ base::Value BookmarkCodec::Encode(
    roots.SetKey(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
    roots.SetKey(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
    roots.SetKey(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
    roots.SetKey(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
    roots.SetKey(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
    roots.SetKey(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
 +  roots.SetKey(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
 +  roots.SetKey(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
    if (model_meta_info_map)
    if (model_meta_info_map)
      roots.SetKey(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
      roots.SetKey(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
-   FinalizeChecksum();
-@@ -121,6 +125,7 @@ bool BookmarkCodec::Decode(const base::Value& value,
+   if (model_unsynced_meta_info_map) {
+@@ -130,6 +134,7 @@ bool BookmarkCodec::Decode(const base::Value& value,
                             BookmarkNode* bb_node,
                             BookmarkNode* bb_node,
                             BookmarkNode* other_folder_node,
                             BookmarkNode* other_folder_node,
                             BookmarkNode* mobile_folder_node,
                             BookmarkNode* mobile_folder_node,
@@ -428,7 +428,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
                             int64_t* max_id,
                             int64_t* max_id,
                             std::string* sync_metadata_str) {
                             std::string* sync_metadata_str) {
    ids_.clear();
    ids_.clear();
-@@ -128,7 +133,8 @@ bool BookmarkCodec::Decode(const base::Value& value,
+@@ -137,7 +142,8 @@ bool BookmarkCodec::Decode(const base::Value& value,
              base::GUID::ParseLowercase(BookmarkNode::kBookmarkBarNodeGuid),
              base::GUID::ParseLowercase(BookmarkNode::kBookmarkBarNodeGuid),
              base::GUID::ParseLowercase(BookmarkNode::kOtherBookmarksNodeGuid),
              base::GUID::ParseLowercase(BookmarkNode::kOtherBookmarksNodeGuid),
              base::GUID::ParseLowercase(BookmarkNode::kMobileBookmarksNodeGuid),
              base::GUID::ParseLowercase(BookmarkNode::kMobileBookmarksNodeGuid),
@@ -438,7 +438,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
    ids_reassigned_ = false;
    ids_reassigned_ = false;
    guids_reassigned_ = false;
    guids_reassigned_ = false;
    ids_valid_ = true;
    ids_valid_ = true;
-@@ -136,12 +142,13 @@ bool BookmarkCodec::Decode(const base::Value& value,
+@@ -145,12 +151,13 @@ bool BookmarkCodec::Decode(const base::Value& value,
    stored_checksum_.clear();
    stored_checksum_.clear();
    InitializeChecksum();
    InitializeChecksum();
    bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
    bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
@@ -453,7 +453,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
    *max_id = maximum_id_ + 1;
    *max_id = maximum_id_ + 1;
    return success;
    return success;
  }
  }
-@@ -194,6 +201,7 @@ base::Value BookmarkCodec::EncodeMetaInfo(
+@@ -207,6 +214,7 @@ base::Value BookmarkCodec::EncodeMetaInfo(
  bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
  bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
                                   BookmarkNode* other_folder_node,
                                   BookmarkNode* other_folder_node,
                                   BookmarkNode* mobile_folder_node,
                                   BookmarkNode* mobile_folder_node,
@@ -461,7 +461,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
                                   const base::Value& value,
                                   const base::Value& value,
                                   std::string* sync_metadata_str) {
                                   std::string* sync_metadata_str) {
    if (!value.is_dict())
    if (!value.is_dict())
-@@ -225,6 +233,12 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
+@@ -238,6 +246,12 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
      return false;
      return false;
  
  
    DecodeNode(*bb_value, nullptr, bb_node);
    DecodeNode(*bb_value, nullptr, bb_node);
@@ -474,7 +474,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
    DecodeNode(*other_folder_value, nullptr, other_folder_node);
    DecodeNode(*other_folder_value, nullptr, other_folder_node);
    DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
    DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
  
  
-@@ -470,11 +484,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
+@@ -508,11 +522,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
  
  
  void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
  void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
                                  BookmarkNode* other_node,
                                  BookmarkNode* other_node,
@@ -493,14 +493,14 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
 --- a/components/bookmarks/browser/bookmark_codec.h
 --- a/components/bookmarks/browser/bookmark_codec.h
 +++ b/components/bookmarks/browser/bookmark_codec.h
 +++ b/components/bookmarks/browser/bookmark_codec.h
 @@ -48,6 +48,7 @@ class BookmarkCodec {
 @@ -48,6 +48,7 @@ class BookmarkCodec {
-   base::Value Encode(const BookmarkNode* bookmark_bar_node,
-                      const BookmarkNode* other_folder_node,
-                      const BookmarkNode* mobile_folder_node,
+   base::Value Encode(
+       const BookmarkNode* bookmark_bar_node,
+       const BookmarkNode* other_folder_node,
 +                     const BookmarkNode* tabs_folder_node,
 +                     const BookmarkNode* tabs_folder_node,
-                      const BookmarkNode::MetaInfoMap* model_meta_info_map,
-                      std::string sync_metadata_str);
- 
-@@ -60,6 +61,7 @@ class BookmarkCodec {
+       const BookmarkNode* mobile_folder_node,
+       const BookmarkNode::MetaInfoMap* model_meta_info_map,
+       const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map,
+@@ -62,6 +63,7 @@ class BookmarkCodec {
                BookmarkNode* bb_node,
                BookmarkNode* bb_node,
                BookmarkNode* other_folder_node,
                BookmarkNode* other_folder_node,
                BookmarkNode* mobile_folder_node,
                BookmarkNode* mobile_folder_node,
@@ -508,7 +508,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
                int64_t* max_node_id,
                int64_t* max_node_id,
                std::string* sync_metadata_str);
                std::string* sync_metadata_str);
  
  
-@@ -105,6 +107,7 @@ class BookmarkCodec {
+@@ -113,6 +115,7 @@ class BookmarkCodec {
    // Allows the BookmarkClient to read and a write a string blob from the JSON
    // Allows the BookmarkClient to read and a write a string blob from the JSON
    // file. That string captures the bookmarks sync metadata.
    // file. That string captures the bookmarks sync metadata.
    static const char kSyncMetadata[];
    static const char kSyncMetadata[];
@@ -516,7 +516,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
    static const char kDateLastUsed[];
    static const char kDateLastUsed[];
  
  
    // Possible values for kTypeKey.
    // Possible values for kTypeKey.
-@@ -122,6 +125,7 @@ class BookmarkCodec {
+@@ -130,6 +133,7 @@ class BookmarkCodec {
    bool DecodeHelper(BookmarkNode* bb_node,
    bool DecodeHelper(BookmarkNode* bb_node,
                      BookmarkNode* other_folder_node,
                      BookmarkNode* other_folder_node,
                      BookmarkNode* mobile_folder_node,
                      BookmarkNode* mobile_folder_node,
@@ -524,7 +524,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
                      const base::Value& value,
                      const base::Value& value,
                      std::string* sync_metadata_str);
                      std::string* sync_metadata_str);
  
  
-@@ -133,7 +137,8 @@ class BookmarkCodec {
+@@ -141,7 +145,8 @@ class BookmarkCodec {
    // Reassigns bookmark IDs for all nodes.
    // Reassigns bookmark IDs for all nodes.
    void ReassignIDs(BookmarkNode* bb_node,
    void ReassignIDs(BookmarkNode* bb_node,
                     BookmarkNode* other_node,
                     BookmarkNode* other_node,
@@ -559,7 +559,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
  
  
    TitledUrlIndex* index() { return index_.get(); }
    TitledUrlIndex* index() { return index_.get(); }
    std::unique_ptr<TitledUrlIndex> owned_index() { return std::move(index_); }
    std::unique_ptr<TitledUrlIndex> owned_index() { return std::move(index_); }
-@@ -103,6 +104,7 @@ class BookmarkLoadDetails {
+@@ -110,6 +111,7 @@ class BookmarkLoadDetails {
    raw_ptr<BookmarkPermanentNode> bb_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> bb_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> other_folder_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> other_folder_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> mobile_folder_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> mobile_folder_node_ = nullptr;
@@ -570,7 +570,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
 diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
 diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
 --- a/components/bookmarks/browser/bookmark_model.cc
 --- a/components/bookmarks/browser/bookmark_model.cc
 +++ b/components/bookmarks/browser/bookmark_model.cc
 +++ b/components/bookmarks/browser/bookmark_model.cc
-@@ -618,7 +618,7 @@ bool BookmarkModel::HasBookmarks() {
+@@ -666,7 +666,7 @@ bool BookmarkModel::HasBookmarks() {
  bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
  bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
    return bookmark_bar_node_->children().empty() &&
    return bookmark_bar_node_->children().empty() &&
@@ -579,7 +579,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
  }
  }
  
  
  bool BookmarkModel::IsBookmarked(const GURL& url) {
  bool BookmarkModel::IsBookmarked(const GURL& url) {
-@@ -871,6 +871,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
+@@ -920,6 +920,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
    bookmark_bar_node_ = details->bb_node();
    bookmark_bar_node_ = details->bb_node();
    other_node_ = details->other_folder_node();
    other_node_ = details->other_folder_node();
    mobile_node_ = details->mobile_folder_node();
    mobile_node_ = details->mobile_folder_node();
@@ -590,7 +590,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
 diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
 diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
 --- a/components/bookmarks/browser/bookmark_model.h
 --- a/components/bookmarks/browser/bookmark_model.h
 +++ b/components/bookmarks/browser/bookmark_model.h
 +++ b/components/bookmarks/browser/bookmark_model.h
-@@ -121,6 +121,12 @@ class BookmarkModel : public BookmarkUndoProvider,
+@@ -122,6 +122,12 @@ class BookmarkModel : public BookmarkUndoProvider,
      return mobile_node_;
      return mobile_node_;
    }
    }
  
  
@@ -603,7 +603,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
    bool is_root_node(const BookmarkNode* node) const {
    bool is_root_node(const BookmarkNode* node) const {
      DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
      DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
      return node == root_;
      return node == root_;
-@@ -426,6 +432,7 @@ class BookmarkModel : public BookmarkUndoProvider,
+@@ -445,6 +451,7 @@ class BookmarkModel : public BookmarkUndoProvider,
    raw_ptr<BookmarkPermanentNode> bookmark_bar_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> bookmark_bar_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> other_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> other_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> mobile_node_ = nullptr;
    raw_ptr<BookmarkPermanentNode> mobile_node_ = nullptr;
@@ -625,7 +625,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark
  // static
  // static
  const char BookmarkNode::kManagedNodeGuid[] =
  const char BookmarkNode::kManagedNodeGuid[] =
      "323123f4-9381-5aee-80e6-ea5fca2f7672";
      "323123f4-9381-5aee-80e6-ea5fca2f7672";
-@@ -225,6 +229,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
+@@ -275,6 +279,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
        visible_when_empty));
        visible_when_empty));
  }
  }
  
  
@@ -662,7 +662,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
    static const char kManagedNodeGuid[];
    static const char kManagedNodeGuid[];
  
  
    // A bug in sync caused some problematic GUIDs to be produced.
    // A bug in sync caused some problematic GUIDs to be produced.
-@@ -256,6 +258,9 @@ class BookmarkPermanentNode : public BookmarkNode {
+@@ -270,6 +272,9 @@ class BookmarkPermanentNode : public BookmarkNode {
    static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
    static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
        int64_t id,
        int64_t id,
        bool visible_when_empty);
        bool visible_when_empty);
@@ -688,7 +688,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks
 diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
 diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
 --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
 --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
 +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
 +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
-@@ -441,6 +441,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
+@@ -446,6 +446,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
      case bookmarks::BookmarkNode::BOOKMARK_BAR:
      case bookmarks::BookmarkNode::BOOKMARK_BAR:
      case bookmarks::BookmarkNode::OTHER_NODE:
      case bookmarks::BookmarkNode::OTHER_NODE:
      case bookmarks::BookmarkNode::MOBILE:
      case bookmarks::BookmarkNode::MOBILE:

+ 20 - 16
build/patches/Add-menu-item-to-view-source.patch

@@ -4,19 +4,19 @@ Subject: Add menu item to view source
 
 
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
- chrome/android/java/res/menu/custom_tabs_menu.xml  |  3 +++
- chrome/android/java/res/menu/main_menu.xml         |  3 +++
- .../chrome/browser/ChromeTabbedActivity.java       |  2 ++
- .../chrome/browser/app/ChromeActivity.java         |  5 +++++
- .../app/appmenu/AppMenuPropertiesDelegateImpl.java | 14 ++++++++++++++
- .../CustomTabAppMenuPropertiesDelegate.java        |  1 +
- .../ui/android/strings/android_chrome_strings.grd  |  4 ++++
- 7 files changed, 32 insertions(+)
+ .../android/java/res/menu/custom_tabs_menu.xml |  3 +++
+ chrome/android/java/res/menu/main_menu.xml     |  3 +++
+ .../chrome/browser/ChromeTabbedActivity.java   |  2 ++
+ .../chrome/browser/app/ChromeActivity.java     |  5 +++++
+ .../appmenu/AppMenuPropertiesDelegateImpl.java | 18 ++++++++++++++++++
+ .../CustomTabAppMenuPropertiesDelegate.java    |  1 +
+ .../android/strings/android_chrome_strings.grd |  4 ++++
+ 7 files changed, 36 insertions(+)
 
 
 diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
 diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
 --- a/chrome/android/java/res/menu/custom_tabs_menu.xml
 --- a/chrome/android/java/res/menu/custom_tabs_menu.xml
 +++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
 +++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
-@@ -46,6 +46,9 @@
+@@ -48,6 +48,9 @@ found in the LICENSE file.
          <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:orderInCategory="2" />
              android:orderInCategory="2" />
@@ -29,7 +29,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
-@@ -106,6 +106,9 @@
+@@ -108,6 +108,9 @@ found in the LICENSE file.
          <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" />
@@ -42,7 +42,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
-@@ -2214,6 +2214,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2223,6 +2223,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");
@@ -54,7 +54,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
-@@ -2428,6 +2428,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2446,6 +2446,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              return true;
              return true;
          }
          }
  
  
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 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
-@@ -540,6 +540,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -541,6 +541,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);
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
  
  
          updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
          updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
  
  
-@@ -1170,6 +1171,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -1208,6 +1209,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
          stopPriceTrackingMenuItem.setVisible(false);
          stopPriceTrackingMenuItem.setVisible(false);
      }
      }
  
  
@@ -90,8 +90,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
 +    protected void updateViewSourceMenuItem(
 +    protected void updateViewSourceMenuItem(
 +            Menu menu, Tab currentTab) {
 +            Menu menu, Tab currentTab) {
 +        MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
 +        MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
-+        String url = currentTab.getUrl().getSpec();
-+        viewSourceMenuItem.setVisible(!url.isEmpty() && !url.startsWith("view-source:"));
++        boolean visible = false;
++        if (currentTab != null) {
++                String url = currentTab.getUrl().getSpec();
++                visible = !url.isEmpty() && !url.startsWith("view-source:");
++        }
++        viewSourceMenuItem.setVisible(visible);
 +    }
 +    }
 +
 +
      /**
      /**

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

@@ -50,7 +50,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
-@@ -390,6 +390,7 @@ public final class ChromePreferenceKeys {
+@@ -414,6 +414,7 @@ public final class ChromePreferenceKeys {
              AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM;
              AccessibilityConstants.FONT_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";
@@ -72,7 +72,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 class LocationBarCoordinator implements LocationBar, NativeInitObserver,
+@@ -368,7 +368,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver,
      // OmniboxSuggestionsDropdownEmbedder implementation
      // OmniboxSuggestionsDropdownEmbedder implementation
      @Override
      @Override
      public boolean isTablet() {
      public boolean isTablet() {
@@ -84,7 +84,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
-@@ -1433,6 +1433,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1439,6 +1439,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_PRIVACY_GUIDE_SB_ENHANCED_ITEM_SEVEN" desc="Seventh bullet point that describes the details of the Safe Browsing control.">
        <message name="IDS_PRIVACY_GUIDE_SB_ENHANCED_ITEM_SEVEN" desc="Seventh bullet point that describes the details of the Safe Browsing control.">
          Temporarily links this data to your Google Account when you’re signed in, to protect you across Google apps
          Temporarily links this data to your Google Account when you’re signed in, to protect you across Google apps
        </message>
        </message>
@@ -135,7 +135,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
    disallowed_extension_deps_ = [
    disallowed_extension_deps_ = [
      # Components should largely not depend on //extensions. Since // extensions
      # Components should largely not depend on //extensions. Since // extensions
      # is not a component target and is linked with //chrome, depending on most
      # is not a component target and is linked with //chrome, depending on most
-@@ -667,7 +667,7 @@ test("components_unittests") {
+@@ -673,7 +673,7 @@ test("components_unittests") {
    # On other platforms, no components should depend on Chrome.
    # On other platforms, no components should depend on Chrome.
    # Since //chrome depends on //extensions, we also only assert_no_deps on
    # Since //chrome depends on //extensions, we also only assert_no_deps on
    # extensions targets for non-lacros builds.
    # extensions targets for non-lacros builds.
@@ -144,7 +144,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
      assert_no_deps = [ "//chrome/*" ]
      assert_no_deps = [ "//chrome/*" ]
      assert_no_deps += disallowed_extension_deps_
      assert_no_deps += disallowed_extension_deps_
    }
    }
-@@ -955,7 +955,7 @@ if (!is_ios) {
+@@ -974,7 +974,7 @@ if (!is_ios) {
      # dependency. On other platforms, no components should depend on Chrome.
      # dependency. On other platforms, no components should depend on Chrome.
      # Since //chrome depends on //extensions, we also only assert_no_deps on
      # Since //chrome depends on //extensions, we also only assert_no_deps on
      # extensions targets for non-lacros builds.
      # extensions targets for non-lacros builds.
@@ -156,7 +156,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
-@@ -34,6 +34,11 @@
+@@ -36,6 +36,11 @@ found in the LICENSE file.
          android:summary="@string/accessibility_tab_switcher_summary"
          android:summary="@string/accessibility_tab_switcher_summary"
          android:title="@string/accessibility_tab_switcher_title" />
          android:title="@string/accessibility_tab_switcher_title" />
  
  
@@ -217,7 +217,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
 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
-@@ -370,6 +370,8 @@ android_library("ui_no_recycler_view_java") {
+@@ -372,6 +372,8 @@ android_library("ui_no_recycler_view_java") {
    deps = [
    deps = [
      ":ui_java_resources",
      ":ui_java_resources",
      ":ui_utils_java",
      ":ui_utils_java",

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

@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -43,6 +43,11 @@
+@@ -45,6 +45,11 @@ found in the LICENSE file.
          android:title="@string/incognito_settings_title"
          android:title="@string/incognito_settings_title"
          android:summary="@string/incognito_settings_summary"
          android:summary="@string/incognito_settings_summary"
          android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
          android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
@@ -28,7 +28,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
-@@ -38,6 +38,7 @@ import androidx.lifecycle.LifecycleRegistry;
+@@ -39,6 +39,7 @@ import androidx.lifecycle.LifecycleRegistry;
  
  
  import org.chromium.base.CallbackController;
  import org.chromium.base.CallbackController;
  import org.chromium.base.CommandLine;
  import org.chromium.base.CommandLine;
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.base.IntentUtils;
  import org.chromium.base.IntentUtils;
  import org.chromium.base.Log;
  import org.chromium.base.Log;
  import org.chromium.base.MemoryPressureListener;
  import org.chromium.base.MemoryPressureListener;
-@@ -1312,8 +1313,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1316,8 +1317,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              boolean hadCipherData =
              boolean hadCipherData =
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
  
  
@@ -68,16 +68,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;
-@@ -54,6 +57,8 @@ public class PrivacySettings
-     private static final String PREF_PRIVACY_GUIDE = "privacy_guide";
-     private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
+@@ -67,6 +70,8 @@ public class PrivacySettings
+             SharedPreferencesManager.getInstance();
+     private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
  
  
 +    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;
      private IncognitoLockSettings mIncognitoLockSettings;
  
  
-@@ -115,7 +120,11 @@ public class PrivacySettings
+@@ -132,7 +137,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();
@@ -90,7 +90,7 @@ 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_HTTPS_FIRST_MODE.equals(key)) {
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
-@@ -156,6 +165,11 @@ public class PrivacySettings
+@@ -176,6 +185,11 @@ public class PrivacySettings
                      PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
                      PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
          }
          }
  
  
@@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 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
-@@ -4475,6 +4475,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4438,6 +4438,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>

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

@@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
 diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
 --- a/chrome/android/java/res/xml/homepage_preferences.xml
 --- a/chrome/android/java/res/xml/homepage_preferences.xml
 +++ b/chrome/android/java/res/xml/homepage_preferences.xml
 +++ b/chrome/android/java/res/xml/homepage_preferences.xml
-@@ -12,6 +12,11 @@
+@@ -14,6 +14,11 @@ found in the LICENSE file.
          android:summaryOn="@string/text_on"
          android:summaryOn="@string/text_on"
          android:summaryOff="@string/text_off" />
          android:summaryOff="@string/text_off" />
  
  
@@ -134,7 +134,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
-@@ -401,6 +401,7 @@ public final class ChromePreferenceKeys {
+@@ -425,6 +425,7 @@ public final class ChromePreferenceKeys {
      public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL =
      public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL =
              "Chrome.Homepage.PartnerCustomizedDefaultGurl";
              "Chrome.Homepage.PartnerCustomizedDefaultGurl";
  
  
@@ -156,7 +156,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
-@@ -1248,6 +1248,9 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1254,6 +1254,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>
@@ -195,7 +195,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
-@@ -380,6 +380,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[];
+@@ -384,6 +384,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[];
  extern const char kUsedPolicyCertificates[];
  extern const char kUsedPolicyCertificates[];
  #endif  // BUILDFLAG(IS_CHROMEOS)
  #endif  // BUILDFLAG(IS_CHROMEOS)
  extern const char kShowHomeButton[];
  extern const char kShowHomeButton[];

+ 4 - 4
build/patches/Add-site-engagement-flag.patch

@@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -138,6 +138,7 @@
+@@ -141,6 +141,7 @@
  #include "components/segmentation_platform/public/features.h"
  #include "components/segmentation_platform/public/features.h"
  #include "components/send_tab_to_self/features.h"
  #include "components/send_tab_to_self/features.h"
  #include "components/services/heap_profiling/public/cpp/switches.h"
  #include "components/services/heap_profiling/public/cpp/switches.h"
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  #include "components/shared_highlighting/core/common/shared_highlighting_features.h"
  #include "components/shared_highlighting/core/common/shared_highlighting_features.h"
  #include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
  #include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
  #include "components/signin/public/base/signin_buildflags.h"
  #include "components/signin/public/base/signin_buildflags.h"
-@@ -8768,6 +8769,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -8966,6 +8967,11 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid,
       flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)},
       FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)},
  
  
@@ -44,7 +44,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
-@@ -3283,6 +3283,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] =
+@@ -3320,6 +3320,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] =
      "Skips starting the service worker and run the fetch handler if the fetch "
      "Skips starting the service worker and run the fetch handler if the fetch "
      "handler is recognized as skippable.";
      "handler is recognized as skippable.";
  
  
@@ -59,7 +59,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
-@@ -1862,6 +1862,9 @@ extern const char kReduceUserAgentPlatformOsCpuDescription[];
+@@ -1888,6 +1888,9 @@ extern const char kReduceUserAgentPlatformOsCpuDescription[];
  extern const char kSkipServiceWorkerFetchHandlerName[];
  extern const char kSkipServiceWorkerFetchHandlerName[];
  extern const char kSkipServiceWorkerFetchHandlerDescription[];
  extern const char kSkipServiceWorkerFetchHandlerDescription[];
  
  

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

@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -67,6 +67,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto
+@@ -66,6 +66,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto
  import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
  import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
  import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
  import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
@@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
  import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
  import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
  import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
  import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
  import org.chromium.components.browser_ui.widget.displaystyle.ViewResizer;
  import org.chromium.components.browser_ui.widget.displaystyle.ViewResizer;
-@@ -333,9 +334,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -329,9 +330,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
              finish();
              finish();
              return true;
              return true;
          } else if (item.getItemId() == R.id.menu_id_general_help) {
          } else if (item.getItemId() == R.id.menu_id_general_help) {

+ 12 - 12
build/patches/Add-webGL-site-setting.patch

@@ -38,7 +38,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
-@@ -82,6 +82,9 @@ android_library("java") {
+@@ -89,6 +89,9 @@ android_library("java") {
      "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java",
      "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java",
      "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java",
      "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java",
    ]
    ]
@@ -183,7 +183,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp
        <part file="site_settings.grdp" />
        <part file="site_settings.grdp" />
 +      <part file="webgl.grdp" />
 +      <part file="webgl.grdp" />
  
  
-       <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message">
+       <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message" formatter_data="android_java">
          Got it
          Got it
 diff --git a/components/browser_ui/strings/android/webgl.grdp b/components/browser_ui/strings/android/webgl.grdp
 diff --git a/components/browser_ui/strings/android/webgl.grdp b/components/browser_ui/strings/android/webgl.grdp
 new file mode 100644
 new file mode 100644
@@ -214,11 +214,11 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
 @@ -338,6 +338,7 @@
 @@ -338,6 +338,7 @@
        <part file="version_ui_strings.grdp" />
        <part file="version_ui_strings.grdp" />
        <part file="webapps_strings.grdp" />
        <part file="webapps_strings.grdp" />
-       <part file="user_scripts/strings/userscripts_strings.grdp" />
-+      <part file="browser_ui/strings/android/webgl.grdp" />
  
  
++      <part file="browser_ui/strings/android/webgl.grdp" />
        <if expr="not is_ios">
        <if expr="not is_ios">
          <part file="history_clusters_strings.grdp" />
          <part file="history_clusters_strings.grdp" />
+       </if>
 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -246,7 +246,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
 diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
 diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
 --- a/components/content_settings/core/browser/content_settings_utils.cc
 --- a/components/content_settings/core/browser/content_settings_utils.cc
 +++ b/components/content_settings/core/browser/content_settings_utils.cc
 +++ b/components/content_settings/core/browser/content_settings_utils.cc
-@@ -155,6 +155,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map,
+@@ -156,6 +156,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map,
    std::string timezone;
    std::string timezone;
    map->GetTimezoneOverrideValue(timezone);
    map->GetTimezoneOverrideValue(timezone);
    rules->timezone_override_value = timezone;
    rules->timezone_override_value = timezone;
@@ -258,7 +258,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
 diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
 diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
 --- a/components/content_settings/core/common/content_settings.cc
 --- a/components/content_settings/core/common/content_settings.cc
 +++ b/components/content_settings/core/common/content_settings.cc
 +++ b/components/content_settings/core/common/content_settings.cc
-@@ -206,7 +206,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
+@@ -205,7 +205,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
           content_type == ContentSettingsType::AUTOPLAY ||
           content_type == ContentSettingsType::AUTOPLAY ||
           content_type == ContentSettingsType::MIXEDSCRIPT ||
           content_type == ContentSettingsType::MIXEDSCRIPT ||
           content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT ||
           content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT ||
@@ -268,7 +268,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
  }
  }
  
  
  void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
  void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
-@@ -218,6 +219,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
+@@ -217,6 +218,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
    FilterRulesForType(auto_dark_content_rules, outermost_main_frame_url);
    FilterRulesForType(auto_dark_content_rules, outermost_main_frame_url);
    FilterRulesForType(timezone_override_rules, outermost_main_frame_url);
    FilterRulesForType(timezone_override_rules, outermost_main_frame_url);
    FilterRulesForType(autoplay_rules, outermost_main_frame_url);
    FilterRulesForType(autoplay_rules, outermost_main_frame_url);
@@ -279,7 +279,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
 diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
 diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
 --- a/components/content_settings/core/common/content_settings.h
 --- a/components/content_settings/core/common/content_settings.h
 +++ b/components/content_settings/core/common/content_settings.h
 +++ b/components/content_settings/core/common/content_settings.h
-@@ -97,6 +97,7 @@ struct RendererContentSettingRules {
+@@ -96,6 +96,7 @@ struct RendererContentSettingRules {
    ContentSettingsForOneType auto_dark_content_rules;
    ContentSettingsForOneType auto_dark_content_rules;
    ContentSettingsForOneType timezone_override_rules;
    ContentSettingsForOneType timezone_override_rules;
    std::string timezone_override_value;
    std::string timezone_override_value;
@@ -299,7 +299,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
 diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
 diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
 --- a/components/content_settings/core/common/content_settings_mojom_traits.cc
 --- a/components/content_settings/core/common/content_settings_mojom_traits.cc
 +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
 +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
-@@ -104,7 +104,8 @@ bool StructTraits<content_settings::mojom::RendererContentSettingRulesDataView,
+@@ -105,7 +105,8 @@ bool StructTraits<content_settings::mojom::RendererContentSettingRulesDataView,
           data.ReadMixedContentRules(&out->mixed_content_rules) &&
           data.ReadMixedContentRules(&out->mixed_content_rules) &&
           data.ReadAutoDarkContentRules(&out->auto_dark_content_rules) &&
           data.ReadAutoDarkContentRules(&out->auto_dark_content_rules) &&
           data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
           data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
@@ -327,7 +327,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
 diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
 diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
 --- a/components/content_settings/core/common/content_settings_types.h
 --- a/components/content_settings/core/common/content_settings_types.h
 +++ b/components/content_settings/core/common/content_settings_types.h
 +++ b/components/content_settings/core/common/content_settings_types.h
-@@ -280,6 +280,8 @@ enum class ContentSettingsType : int32_t {
+@@ -276,6 +276,8 @@ enum class ContentSettingsType : int32_t {
    // site instead of the mobile one.
    // site instead of the mobile one.
    REQUEST_DESKTOP_SITE,
    REQUEST_DESKTOP_SITE,
  
  
@@ -414,7 +414,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
 --- a/third_party/blink/renderer/core/execution_context/execution_context.h
 --- a/third_party/blink/renderer/core/execution_context/execution_context.h
 +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
 +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
-@@ -97,6 +97,7 @@ class SecurityOrigin;
+@@ -96,6 +96,7 @@ class SecurityOrigin;
  class ScriptState;
  class ScriptState;
  class ScriptWrappable;
  class ScriptWrappable;
  class TrustedTypePolicyFactory;
  class TrustedTypePolicyFactory;
@@ -422,7 +422,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
  
  
  enum ReasonForCallingCanExecuteScripts {
  enum ReasonForCallingCanExecuteScripts {
    kAboutToExecuteScript,
    kAboutToExecuteScript,
-@@ -105,6 +106,10 @@ enum ReasonForCallingCanExecuteScripts {
+@@ -104,6 +105,10 @@ enum ReasonForCallingCanExecuteScripts {
  
  
  enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag };
  enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag };
  
  

+ 11 - 11
build/patches/Add-webRTC-site-settings.patch

@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
-@@ -85,6 +85,9 @@ android_library("java") {
+@@ -92,6 +92,9 @@ android_library("java") {
    sources += [
    sources += [
      "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java",
      "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java",
    ]
    ]
@@ -179,7 +179,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp
        <part file="webgl.grdp" />
        <part file="webgl.grdp" />
 +      <part file="webrtc.grdp" />
 +      <part file="webrtc.grdp" />
  
  
-       <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message">
+       <message name="IDS_GOT_IT" desc="Button for the user to accept a disclosure/message" formatter_data="android_java">
          Got it
          Got it
 diff --git a/components/browser_ui/strings/android/webrtc.grdp b/components/browser_ui/strings/android/webrtc.grdp
 diff --git a/components/browser_ui/strings/android/webrtc.grdp b/components/browser_ui/strings/android/webrtc.grdp
 new file mode 100644
 new file mode 100644
@@ -209,12 +209,12 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
 +++ b/components/components_strings.grd
 +++ b/components/components_strings.grd
 @@ -339,6 +339,7 @@
 @@ -339,6 +339,7 @@
        <part file="webapps_strings.grdp" />
        <part file="webapps_strings.grdp" />
-       <part file="user_scripts/strings/userscripts_strings.grdp" />
+ 
        <part file="browser_ui/strings/android/webgl.grdp" />
        <part file="browser_ui/strings/android/webgl.grdp" />
 +      <part file="browser_ui/strings/android/webrtc.grdp" />
 +      <part file="browser_ui/strings/android/webrtc.grdp" />
- 
        <if expr="not is_ios">
        <if expr="not is_ios">
          <part file="history_clusters_strings.grdp" />
          <part file="history_clusters_strings.grdp" />
+       </if>
 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -242,7 +242,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
 diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
 diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
 --- a/components/content_settings/core/browser/content_settings_utils.cc
 --- a/components/content_settings/core/browser/content_settings_utils.cc
 +++ b/components/content_settings/core/browser/content_settings_utils.cc
 +++ b/components/content_settings/core/browser/content_settings_utils.cc
-@@ -157,6 +157,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map,
+@@ -158,6 +158,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map,
    rules->timezone_override_value = timezone;
    rules->timezone_override_value = timezone;
    map->GetSettingsForOneType(ContentSettingsType::WEBGL,
    map->GetSettingsForOneType(ContentSettingsType::WEBGL,
                               &(rules->webgl_rules));
                               &(rules->webgl_rules));
@@ -254,7 +254,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
 diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
 diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
 --- a/components/content_settings/core/common/content_settings.cc
 --- a/components/content_settings/core/common/content_settings.cc
 +++ b/components/content_settings/core/common/content_settings.cc
 +++ b/components/content_settings/core/common/content_settings.cc
-@@ -207,7 +207,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
+@@ -206,7 +206,8 @@ bool RendererContentSettingRules::IsRendererContentSetting(
           content_type == ContentSettingsType::MIXEDSCRIPT ||
           content_type == ContentSettingsType::MIXEDSCRIPT ||
           content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT ||
           content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT ||
           content_type == ContentSettingsType::TIMEZONE_OVERRIDE ||
           content_type == ContentSettingsType::TIMEZONE_OVERRIDE ||
@@ -264,7 +264,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
  }
  }
  
  
  void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
  void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
-@@ -220,6 +221,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
+@@ -219,6 +220,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
    FilterRulesForType(timezone_override_rules, outermost_main_frame_url);
    FilterRulesForType(timezone_override_rules, outermost_main_frame_url);
    FilterRulesForType(autoplay_rules, outermost_main_frame_url);
    FilterRulesForType(autoplay_rules, outermost_main_frame_url);
    FilterRulesForType(webgl_rules, outermost_main_frame_url);
    FilterRulesForType(webgl_rules, outermost_main_frame_url);
@@ -275,7 +275,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
 diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
 diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
 --- a/components/content_settings/core/common/content_settings.h
 --- a/components/content_settings/core/common/content_settings.h
 +++ b/components/content_settings/core/common/content_settings.h
 +++ b/components/content_settings/core/common/content_settings.h
-@@ -98,6 +98,7 @@ struct RendererContentSettingRules {
+@@ -97,6 +97,7 @@ struct RendererContentSettingRules {
    ContentSettingsForOneType timezone_override_rules;
    ContentSettingsForOneType timezone_override_rules;
    std::string timezone_override_value;
    std::string timezone_override_value;
    ContentSettingsForOneType webgl_rules;
    ContentSettingsForOneType webgl_rules;
@@ -295,7 +295,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
 diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
 diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
 --- a/components/content_settings/core/common/content_settings_mojom_traits.cc
 --- a/components/content_settings/core/common/content_settings_mojom_traits.cc
 +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
 +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
-@@ -105,7 +105,8 @@ bool StructTraits<content_settings::mojom::RendererContentSettingRulesDataView,
+@@ -106,7 +106,8 @@ bool StructTraits<content_settings::mojom::RendererContentSettingRulesDataView,
           data.ReadAutoDarkContentRules(&out->auto_dark_content_rules) &&
           data.ReadAutoDarkContentRules(&out->auto_dark_content_rules) &&
           data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
           data.ReadTimezoneOverrideRules(&out->timezone_override_rules) &&
           data.ReadTimezoneOverrideValue(&out->timezone_override_value) &&
           data.ReadTimezoneOverrideValue(&out->timezone_override_value) &&
@@ -323,7 +323,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
 diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
 diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h
 --- a/components/content_settings/core/common/content_settings_types.h
 --- a/components/content_settings/core/common/content_settings_types.h
 +++ b/components/content_settings/core/common/content_settings_types.h
 +++ b/components/content_settings/core/common/content_settings_types.h
-@@ -282,6 +282,8 @@ enum class ContentSettingsType : int32_t {
+@@ -278,6 +278,8 @@ enum class ContentSettingsType : int32_t {
  
  
    WEBGL,
    WEBGL,
  
  
@@ -385,7 +385,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
  #include "third_party/blink/public/platform/web_url.h"
  #include "third_party/blink/public/platform/web_url.h"
  #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
  #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
  #include "third_party/blink/public/web/web_document.h"
  #include "third_party/blink/public/web/web_document.h"
-@@ -767,6 +768,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
+@@ -765,6 +766,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
        // origin.
        // origin.
        WebRTCIPHandlingPolicy policy =
        WebRTCIPHandlingPolicy policy =
            GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
            GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);

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

@@ -61,7 +61,7 @@ diff --git a/content/browser/net/cross_origin_embedder_policy_reporter.cc b/cont
        body_to_pass.Set(pair.first, pair.second);
        body_to_pass.Set(pair.first, pair.second);
 @@ -123,7 +125,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
 @@ -123,7 +125,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
            kType, *endpoint, context_url_, reporting_source_,
            kType, *endpoint, context_url_, reporting_source_,
-           network_isolation_key_,
+           network_anonymization_key_,
            /*user_agent=*/absl::nullopt, std::move(body_to_pass));
            /*user_agent=*/absl::nullopt, std::move(body_to_pass));
 -    }
 -    }
 +#endif
 +#endif
@@ -124,8 +124,8 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten
    if (!coop_.report_only_reporting_endpoint)
    if (!coop_.report_only_reporting_endpoint)
 @@ -279,12 +274,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
 @@ -279,12 +274,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
    storage_partition_->GetNetworkContext()->QueueReport(
    storage_partition_->GetNetworkContext()->QueueReport(
-       "coop", endpoint, context_url_, reporting_source_, network_isolation_key_,
-       absl::nullopt, std::move(body));
+       "coop", endpoint, context_url_, reporting_source_,
+       network_anonymization_key_, absl::nullopt, std::move(body));
 +#endif
 +#endif
  }
  }
  
  
@@ -137,9 +137,9 @@ diff --git a/content/browser/net/cross_origin_opener_policy_reporter.cc b/conten
    body.Set(kDisposition,
    body.Set(kDisposition,
             is_report_only ? kDispositionReporting : kDispositionEnforce);
             is_report_only ? kDispositionReporting : kDispositionEnforce);
    body.Set(kEffectivePolicy,
    body.Set(kEffectivePolicy,
-@@ -292,6 +289,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
-   storage_partition_->GetNetworkContext()->QueueReport(
-       "coop", endpoint, context_url_, reporting_source_, network_isolation_key_,
+@@ -293,6 +290,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
+       "coop", endpoint, context_url_, reporting_source_,
+       network_anonymization_key_,
        /*user_agent=*/absl::nullopt, std::move(body));
        /*user_agent=*/absl::nullopt, std::move(body));
 +#endif
 +#endif
  }
  }
@@ -165,7 +165,7 @@ diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/ne
      if (!rph)
      if (!rph)
        return;
        return;
      rph->GetStoragePartition()->GetNetworkContext()->QueueReport(
      rph->GetStoragePartition()->GetNetworkContext()->QueueReport(
-         type, group, url, reporting_source_, network_isolation_key_,
+         type, group, url, reporting_source_, network_anonymization_key_,
          /*user_agent=*/absl::nullopt, std::move(body));
          /*user_agent=*/absl::nullopt, std::move(body));
 +#endif
 +#endif
    }
    }
@@ -174,7 +174,7 @@ diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/ne
 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
-@@ -12143,12 +12143,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
+@@ -12209,12 +12209,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
    base::Value::Dict body;
    base::Value::Dict body;
    if (!reason.empty())
    if (!reason.empty())
      body.Set("reason", reason);
      body.Set("reason", reason);
@@ -182,7 +182,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
 -  // Send the crash report to the Reporting API.
 -  // Send the crash report to the Reporting API.
 -  GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport(
 -  GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport(
 -      /*type=*/"crash", /*group=*/"default", last_committed_url_,
 -      /*type=*/"crash", /*group=*/"default", last_committed_url_,
--      GetReportingSource(), isolation_info_.network_isolation_key(),
+-      GetReportingSource(), isolation_info_.network_anonymization_key(),
 -      absl::nullopt /* user_agent */, std::move(body));
 -      absl::nullopt /* user_agent */, std::move(body));
  }
  }
  
  
@@ -193,7 +193,7 @@ diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/b
 @@ -127,6 +127,7 @@ bool ShouldDowngradeReport(const char* result_string,
 @@ -127,6 +127,7 @@ bool ShouldDowngradeReport(const char* result_string,
  void ReportResult(int frame_tree_node_id,
  void ReportResult(int frame_tree_node_id,
                    network::mojom::SignedExchangeReportPtr report,
                    network::mojom::SignedExchangeReportPtr report,
-                   const net::NetworkIsolationKey& network_isolation_key) {
+                   const net::NetworkAnonymizationKey& network_isolation_key) {
 +#if BUILDFLAG(ENABLE_REPORTING)
 +#if BUILDFLAG(ENABLE_REPORTING)
    FrameTreeNode* frame_tree_node =
    FrameTreeNode* frame_tree_node =
        FrameTreeNode::GloballyFindByID(frame_tree_node_id);
        FrameTreeNode::GloballyFindByID(frame_tree_node_id);
@@ -220,7 +220,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
-@@ -208,6 +208,12 @@ class ReportingServiceImpl : public ReportingService {
+@@ -211,6 +211,12 @@ class ReportingServiceImpl : public ReportingService {
        base::Value::Dict body,
        base::Value::Dict body,
        int depth,
        int depth,
        base::TimeTicks queued_ticks) {
        base::TimeTicks queued_ticks) {
@@ -232,27 +232,27 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
 +#endif
 +#endif
      DCHECK(initialized_);
      DCHECK(initialized_);
      context_->cache()->AddReport(
      context_->cache()->AddReport(
-         reporting_source, network_isolation_key, sanitized_url, user_agent,
+         reporting_source, network_anonymization_key, sanitized_url, user_agent,
 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
-@@ -459,10 +459,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -462,10 +462,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
        const absl::optional<base::UnguessableToken>& reporting_source,
        const absl::optional<base::UnguessableToken>& reporting_source,
-       const net::NetworkIsolationKey& network_isolation_key,
+       const net::NetworkAnonymizationKey& network_anonymization_key,
        const absl::optional<std::string>& user_agent,
        const absl::optional<std::string>& user_agent,
 -      base::Value::Dict body) override;
 -      base::Value::Dict body) override;
 +      base::Value::Dict body);
 +      base::Value::Dict body);
    void QueueSignedExchangeReport(
    void QueueSignedExchangeReport(
        mojom::SignedExchangeReportPtr report,
        mojom::SignedExchangeReportPtr report,
--      const net::NetworkIsolationKey& network_isolation_key) override;
-+      const net::NetworkIsolationKey& network_isolation_key);
+-      const net::NetworkAnonymizationKey& network_anonymization_key) override;
++      const net::NetworkAnonymizationKey& network_anonymization_key);
    void AddDomainReliabilityContextForTesting(
    void AddDomainReliabilityContextForTesting(
        const url::Origin& origin,
        const url::Origin& origin,
        const GURL& upload_url,
        const GURL& upload_url,
 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
-@@ -1011,7 +1011,6 @@ mojom("mojom") {
+@@ -1096,7 +1096,6 @@ mojom("mojom") {
      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"
      if (enable_reporting) {
      if (enable_reporting) {
@@ -263,7 +263,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
-@@ -1062,6 +1062,7 @@ interface NetworkContext {
+@@ -1065,6 +1065,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
@@ -271,13 +271,13 @@ 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,
-@@ -1075,6 +1076,7 @@ interface NetworkContext {
+@@ -1078,6 +1079,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|.
 +  [EnableIf=enable_reporting]
 +  [EnableIf=enable_reporting]
    QueueSignedExchangeReport(SignedExchangeReport report,
    QueueSignedExchangeReport(SignedExchangeReport report,
-                             NetworkIsolationKey network_isolation_key);
+                             NetworkAnonymizationKey network_anonymization_key);
  
  
 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
@@ -290,7 +290,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"
-@@ -2359,9 +2360,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const {
+@@ -2357,9 +2358,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const {
    return base::UnguessableToken::Null();
    return base::UnguessableToken::Null();
  }
  }
  
  
@@ -316,7 +316,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"
-@@ -585,9 +585,9 @@ class CORE_EXPORT LocalFrame final
+@@ -590,9 +590,9 @@ class CORE_EXPORT LocalFrame final
    }
    }
  
  
    SmoothScrollSequencer& GetSmoothScrollSequencer();
    SmoothScrollSequencer& GetSmoothScrollSequencer();

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

@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
 diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
 +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
 +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
-@@ -1218,6 +1218,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
+@@ -1215,6 +1215,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
    return pipeline_metadata_.has_audio;
    return pipeline_metadata_.has_audio;
  }
  }
  
  
@@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
  void WebMediaPlayerImpl::EnabledAudioTracksChanged(
  void WebMediaPlayerImpl::EnabledAudioTracksChanged(
      const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) {
      const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) {
    DCHECK(main_task_runner_->BelongsToCurrentThread());
    DCHECK(main_task_runner_->BelongsToCurrentThread());
-@@ -3612,7 +3618,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
+@@ -3609,7 +3615,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
    // Audio only stream is allowed to play when in background.
    // Audio only stream is allowed to play when in background.
    // TODO: We should check IsBackgroundOptimizationCandidate here. But we need
    // TODO: We should check IsBackgroundOptimizationCandidate here. But we need
    // to move the logic of checking video frames out of that function.
    // to move the logic of checking video frames out of that function.
@@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
 diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h
 diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h
 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h
 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h
 +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h
 +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h
-@@ -192,6 +192,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
+@@ -193,6 +193,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
    bool HasVideo() const override;
    bool HasVideo() const override;
    bool HasAudio() const override;
    bool HasAudio() const override;
  
  

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -502,8 +502,8 @@ const base::Feature kCastDeviceFilter{"CastDeviceFilter",
+@@ -514,8 +514,8 @@ const base::Feature kCastDeviceFilter{"CastDeviceFilter",
  const base::Feature kClearOmniboxFocusAfterNavigation{
  const base::Feature kClearOmniboxFocusAfterNavigation{
      "ClearOmniboxFocusAfterNavigation", base::FEATURE_DISABLED_BY_DEFAULT};
      "ClearOmniboxFocusAfterNavigation", base::FEATURE_DISABLED_BY_DEFAULT};
  
  

+ 1 - 1
build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch

@@ -48,7 +48,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
 diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
 diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
 --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
 --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
 +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
 +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
-@@ -497,7 +497,9 @@ double AudioContext::baseLatency() const {
+@@ -507,7 +507,9 @@ double AudioContext::baseLatency() const {
    DCHECK(IsMainThread());
    DCHECK(IsMainThread());
    DCHECK(destination());
    DCHECK(destination());
  
  

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 44 - 478
build/patches/Automated-domain-substitution.patch


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

@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
 --- a/third_party/blink/renderer/core/execution_context/execution_context.cc
 --- a/third_party/blink/renderer/core/execution_context/execution_context.cc
 +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
 +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
-@@ -674,4 +674,20 @@ bool ExecutionContext::RequireTrustedTypes() const {
+@@ -697,4 +697,20 @@ bool ExecutionContext::RequireTrustedTypes() const {
    return require_safe_types_;
    return require_safe_types_;
  }
  }
  
  
@@ -47,7 +47,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
 --- a/third_party/blink/renderer/core/execution_context/execution_context.h
 --- a/third_party/blink/renderer/core/execution_context/execution_context.h
 +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
 +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
-@@ -392,6 +392,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
+@@ -397,6 +397,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
    void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
    void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
  
  
    HeapObserverSet<ContextLifecycleObserver>& ContextLifecycleObserverSet();
    HeapObserverSet<ContextLifecycleObserver>& ContextLifecycleObserverSet();
@@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
 diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
 diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
 --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
 --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
 +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
 +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
-@@ -274,6 +274,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
+@@ -275,6 +275,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
      return false;
      return false;
    }
    }
  
  

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

@@ -94,7 +94,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
 diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
 diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
 --- a/components/url_formatter/url_fixer.cc
 --- a/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
 +++ b/components/url_formatter/url_fixer.cc
-@@ -562,6 +562,10 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
+@@ -563,6 +563,10 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
      }
      }
    }
    }
  
  
@@ -212,7 +212,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;
-@@ -587,6 +589,12 @@ URLRequest::URLRequest(const GURL& url,
+@@ -597,6 +599,12 @@ URLRequest::URLRequest(const GURL& url,
    // Sanity check out environment.
    // Sanity check out environment.
    DCHECK(base::ThreadTaskRunnerHandle::IsSet());
    DCHECK(base::ThreadTaskRunnerHandle::IsSet());
  
  
@@ -228,15 +228,15 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
 diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
 diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
 --- a/net/url_request/url_request_context_builder.cc
 --- a/net/url_request/url_request_context_builder.cc
 +++ b/net/url_request/url_request_context_builder.cc
 +++ b/net/url_request/url_request_context_builder.cc
-@@ -47,6 +47,7 @@
+@@ -48,6 +48,7 @@
  #include "net/socket/network_binding_client_socket_factory.h"
  #include "net/socket/network_binding_client_socket_factory.h"
  #include "net/ssl/ssl_config_service_defaults.h"
  #include "net/ssl/ssl_config_service_defaults.h"
  #include "net/url_request/static_http_user_agent_settings.h"
  #include "net/url_request/static_http_user_agent_settings.h"
 +#include "net/url_request/trk_protocol_handler.h"
 +#include "net/url_request/trk_protocol_handler.h"
  #include "net/url_request/url_request_context.h"
  #include "net/url_request/url_request_context.h"
- #include "net/url_request/url_request_context_storage.h"
  #include "net/url_request/url_request_job_factory.h"
  #include "net/url_request/url_request_job_factory.h"
-@@ -631,6 +632,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
+ #include "net/url_request/url_request_throttler_manager.h"
+@@ -571,6 +572,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
      job_factory->SetProtocolHandler(scheme_handler.first,
      job_factory->SetProtocolHandler(scheme_handler.first,
                                      std::move(scheme_handler.second));
                                      std::move(scheme_handler.second));
    }
    }
@@ -244,7 +244,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
 +                                  std::make_unique<TrkProtocolHandler>());
 +                                  std::make_unique<TrkProtocolHandler>());
    protocol_handlers_.clear();
    protocol_handlers_.clear();
  
  
-   storage->set_job_factory(std::move(job_factory));
+   context->set_job_factory(std::move(job_factory));
 diff --git a/url/url_constants.cc b/url/url_constants.cc
 diff --git a/url/url_constants.cc b/url/url_constants.cc
 --- a/url/url_constants.cc
 --- a/url/url_constants.cc
 +++ b/url/url_constants.cc
 +++ b/url/url_constants.cc

+ 1 - 1
build/patches/Bookmarks-select-all-menu-entry.patch

@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 --- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 --- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
-@@ -21,6 +21,13 @@
+@@ -23,6 +23,13 @@ found in the LICENSE file.
              android:visible="false"
              android:visible="false"
              app:showAsAction="ifRoom"
              app:showAsAction="ifRoom"
              app:iconTint="@color/default_icon_color_secondary_tint_list" />
              app:iconTint="@color/default_icon_color_secondary_tint_list" />

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

@@ -62,7 +62,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -371,6 +371,7 @@ android_library("chrome_java") {
+@@ -372,6 +372,7 @@ android_library("chrome_java") {
      "//chrome/browser/download/android:java",
      "//chrome/browser/download/android:java",
      "//chrome/browser/download/android:java_resources",
      "//chrome/browser/download/android:java_resources",
      "//chrome/browser/enterprise/util:java",
      "//chrome/browser/enterprise/util:java",
@@ -73,7 +73,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 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
-@@ -452,6 +452,7 @@ chrome_java_resources = [
+@@ -447,6 +447,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",
@@ -81,7 +81,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",
-@@ -647,6 +648,7 @@ chrome_java_resources = [
+@@ -643,6 +644,7 @@ chrome_java_resources = [
    "java/res/values/values.xml",
    "java/res/values/values.xml",
    "java/res/xml/about_chrome_preferences.xml",
    "java/res/xml/about_chrome_preferences.xml",
    "java/res/xml/account_management_preferences.xml",
    "java/res/xml/account_management_preferences.xml",
@@ -92,15 +92,15 @@ 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
-@@ -903,6 +903,8 @@ chrome_java_sources = [
+@@ -905,6 +905,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",
 +  "java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java",
 +  "java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java",
 +  "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
 +  "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
    "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
    "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
+   "java/src/org/chromium/chrome/browser/policy/PolicyAuditorBridge.java",
    "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderServiceImpl.java",
    "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderServiceImpl.java",
-   "java/src/org/chromium/chrome/browser/printing/TabPrinter.java",
 diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml
 diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml
 new file mode 100644
 new file mode 100644
 --- /dev/null
 --- /dev/null
@@ -176,7 +176,7 @@ new file mode 100644
 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
 --- a/chrome/android/java/res/values/styles.xml
 --- a/chrome/android/java/res/values/styles.xml
 +++ b/chrome/android/java/res/values/styles.xml
 +++ b/chrome/android/java/res/values/styles.xml
-@@ -178,6 +178,24 @@
+@@ -180,6 +180,24 @@ found in the LICENSE file.
          </item>
          </item>
      </style>
      </style>
  
  
@@ -204,7 +204,7 @@ diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res
 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
 --- a/chrome/android/java/res/values/values.xml
 --- a/chrome/android/java/res/values/values.xml
 +++ b/chrome/android/java/res/values/values.xml
 +++ b/chrome/android/java/res/values/values.xml
-@@ -25,6 +25,8 @@
+@@ -27,6 +27,8 @@ found in the LICENSE file.
      <!-- Compositor Tab Title Text -->
      <!-- Compositor Tab Title Text -->
      <bool name="compositor_tab_title_fake_bold_text">true</bool>
      <bool name="compositor_tab_title_fake_bold_text">true</bool>
  
  
@@ -246,7 +246,7 @@ new file mode 100644
 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
 --- a/chrome/android/java/res/xml/main_preferences.xml
 --- a/chrome/android/java/res/xml/main_preferences.xml
 +++ b/chrome/android/java/res/xml/main_preferences.xml
 +++ b/chrome/android/java/res/xml/main_preferences.xml
-@@ -42,6 +42,11 @@
+@@ -44,6 +44,11 @@ found in the LICENSE file.
          android:key="privacy"
          android:key="privacy"
          android:order="10"
          android:order="10"
          android:title="@string/prefs_privacy_security"/>
          android:title="@string/prefs_privacy_security"/>
@@ -435,7 +435,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
-@@ -12179,6 +12179,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
+@@ -12253,6 +12253,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>
  
  
@@ -506,7 +506,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
-@@ -1078,6 +1078,26 @@ BrowserProcessImpl::component_updater() {
+@@ -1071,6 +1071,26 @@ BrowserProcessImpl::component_updater() {
    return component_updater_.get();
    return component_updater_.get();
  }
  }
  
  
@@ -555,7 +555,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
-@@ -1728,6 +1728,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
+@@ -1736,6 +1736,9 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
    // will be initialized when the app enters foreground mode.
    // will be initialized when the app enters foreground mode.
    variations_service->set_policy_pref_service(profile->GetPrefs());
    variations_service->set_policy_pref_service(profile->GetPrefs());
  
  
@@ -593,7 +593,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
-@@ -271,6 +271,14 @@ public class CachedFeatureFlags {
+@@ -273,6 +273,14 @@ public class CachedFeatureFlags {
                  ChromeFeatureList.isEnabled(ChromeFeatureList.BACKGROUND_THREAD_POOL));
                  ChromeFeatureList.isEnabled(ChromeFeatureList.BACKGROUND_THREAD_POOL));
      }
      }
  
  
@@ -608,7 +608,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.
       */
       */
-@@ -517,5 +525,7 @@ public class CachedFeatureFlags {
+@@ -519,5 +527,7 @@ public class CachedFeatureFlags {
      @NativeMethods
      @NativeMethods
      interface Natives {
      interface Natives {
          boolean isNetworkServiceWarmUpEnabled();
          boolean isNetworkServiceWarmUpEnabled();
@@ -619,7 +619,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
-@@ -454,6 +454,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
+@@ -421,6 +421,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
        ssl_config_service_manager_(local_state_),
        ssl_config_service_manager_(local_state_),
        proxy_config_monitor_(local_state_),
        proxy_config_monitor_(local_state_),
        stub_resolver_config_reader_(local_state_) {
        stub_resolver_config_reader_(local_state_) {
@@ -628,7 +628,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
  #if !BUILDFLAG(IS_ANDROID)
  #if !BUILDFLAG(IS_ANDROID)
    // QuicAllowed was not part of Android policy.
    // QuicAllowed was not part of Android policy.
    const base::Value* value =
    const base::Value* value =
-@@ -532,6 +534,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
+@@ -499,6 +501,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
  void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
  void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
    StubResolverConfigReader::RegisterPrefs(registry);
    StubResolverConfigReader::RegisterPrefs(registry);
  
  
@@ -678,7 +678,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
-@@ -2338,6 +2338,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
+@@ -2350,6 +2350,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";
  
  
@@ -702,7 +702,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
 diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
 diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
 --- a/components/browser_ui/strings/android/site_settings.grdp
 --- a/components/browser_ui/strings/android/site_settings.grdp
 +++ b/components/browser_ui/strings/android/site_settings.grdp
 +++ b/components/browser_ui/strings/android/site_settings.grdp
-@@ -271,8 +271,8 @@
+@@ -295,8 +295,8 @@
    <message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
    <message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
      This site shows intrusive or misleading ads
      This site shows intrusive or misleading ads
    </message>
    </message>
@@ -1680,7 +1680,7 @@ diff --git a/components/subresource_filter/content/browser/verified_ruleset_deal
 diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
 diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
 --- a/components/subresource_filter/core/browser/subresource_filter_features.cc
 --- a/components/subresource_filter/core/browser/subresource_filter_features.cc
 +++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
 +++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
-@@ -55,72 +55,7 @@ class CommaSeparatedStrings {
+@@ -54,72 +54,7 @@ class CommaSeparatedStrings {
    const std::vector<base::StringPiece> pieces_;
    const std::vector<base::StringPiece> pieces_;
  };
  };
  
  
@@ -1754,7 +1754,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
    // If ad tagging is enabled, turn on the dryrun automatically.
    // If ad tagging is enabled, turn on the dryrun automatically.
    bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
    bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
    const struct {
    const struct {
-@@ -128,23 +63,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
+@@ -127,23 +62,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
      bool enabled_by_default;
      bool enabled_by_default;
      Configuration (*factory_method)();
      Configuration (*factory_method)();
    } kAvailablePresetConfigurations[] = {
    } kAvailablePresetConfigurations[] = {
@@ -1780,7 +1780,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
        enabled_configurations.push_back(available_preset.factory_method());
        enabled_configurations.push_back(available_preset.factory_method());
      }
      }
    }
    }
-@@ -152,46 +80,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
+@@ -151,46 +79,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
    return enabled_configurations;
    return enabled_configurations;
  }
  }
  
  

+ 9 - 9
build/patches/Bromite-auto-updater.patch

@@ -49,7 +49,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
-@@ -2182,6 +2182,9 @@ if (enable_java_templates) {
+@@ -2183,6 +2183,9 @@ if (enable_java_templates) {
        if (defined(testonly) && testonly) {
        if (defined(testonly) && testonly) {
          defines += [ "_IS_FOR_TEST" ]
          defines += [ "_IS_FOR_TEST" ]
        }
        }
@@ -62,7 +62,7 @@ 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
-@@ -809,6 +809,9 @@ chrome_java_sources = [
+@@ -811,6 +811,9 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
    "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/UpdateMenuItemHelper.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
@@ -75,7 +75,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_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
 --- a/chrome/android/java/res/xml/about_chrome_preferences.xml
 --- a/chrome/android/java/res/xml/about_chrome_preferences.xml
 +++ b/chrome/android/java/res/xml/about_chrome_preferences.xml
 +++ b/chrome/android/java/res/xml/about_chrome_preferences.xml
-@@ -7,6 +7,11 @@
+@@ -9,6 +9,11 @@ found in the LICENSE file.
      <Preference
      <Preference
          android:key="application_version"
          android:key="application_version"
          android:title="@string/application_version_title" />
          android:title="@string/application_version_title" />
@@ -1250,7 +1250,7 @@ new file mode 100644
 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
-@@ -254,6 +254,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -255,6 +255,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &kNewWindowAppMenu,
      &kNewWindowAppMenu,
      &kNotificationPermissionVariant,
      &kNotificationPermissionVariant,
      &kPageAnnotationsService,
      &kPageAnnotationsService,
@@ -1258,7 +1258,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &kBookmarksImprovedSaveFlow,
      &kBookmarksImprovedSaveFlow,
      &kBookmarksRefresh,
      &kBookmarksRefresh,
      &kBackGestureRefactorAndroid,
      &kBackGestureRefactorAndroid,
-@@ -680,6 +681,9 @@ const base::Feature kIncognitoReauthenticationForAndroid{
+@@ -692,6 +693,9 @@ const base::Feature kIncognitoReauthenticationForAndroid{
  const base::Feature kIncognitoScreenshot{"IncognitoScreenshot",
  const base::Feature kIncognitoScreenshot{"IncognitoScreenshot",
                                           base::FEATURE_DISABLED_BY_DEFAULT};
                                           base::FEATURE_DISABLED_BY_DEFAULT};
  
  
@@ -1282,7 +1282,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
-@@ -380,6 +380,7 @@ public abstract class ChromeFeatureList {
+@@ -383,6 +383,7 @@ public abstract class ChromeFeatureList {
              "IncognitoReauthenticationForAndroid";
              "IncognitoReauthenticationForAndroid";
      public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
      public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
      public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization";
      public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization";
@@ -1293,7 +1293,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
-@@ -1887,6 +1887,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1893,6 +1893,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>
@@ -1306,7 +1306,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]">
-@@ -3519,7 +3525,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3528,7 +3534,10 @@ 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]">
@@ -1318,7 +1318,7 @@ 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
-@@ -3530,6 +3539,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3539,6 +3548,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]">
        <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
          Android version is unsupported
        </message>
        </message>

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -46,7 +46,7 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
+@@ -42,7 +42,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)
  }
  }
  
  

+ 10 - 30
build/patches/Client-hints-overrides.patch

@@ -12,13 +12,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  content/browser/client_hints/client_hints.cc             | 3 ++-
  content/browser/client_hints/client_hints.cc             | 3 ++-
  content/browser/loader/navigation_url_loader_impl.cc     | 5 +++++
  content/browser/loader/navigation_url_loader_impl.cc     | 5 +++++
  content/common/user_agent.cc                             | 9 +--------
  content/common/user_agent.cc                             | 9 +--------
- content/public/common/content_features.cc                | 2 +-
+ content/public/common/content_features.cc                | 4 ++--
  services/network/public/cpp/client_hints.cc              | 1 +
  services/network/public/cpp/client_hints.cc              | 1 +
  services/network/public/cpp/features.cc                  | 4 ++--
  services/network/public/cpp/features.cc                  | 4 ++--
  third_party/blink/common/client_hints/client_hints.cc    | 1 +
  third_party/blink/common/client_hints/client_hints.cc    | 1 +
  .../blink/common/client_hints/enabled_client_hints.cc    | 4 +++-
  .../blink/common/client_hints/enabled_client_hints.cc    | 4 +++-
- third_party/blink/common/features.cc                     | 4 ++--
- 10 files changed, 19 insertions(+), 18 deletions(-)
+ 9 files changed, 18 insertions(+), 17 deletions(-)
 
 
 diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
 diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
 --- a/components/embedder_support/user_agent_utils.cc
 --- a/components/embedder_support/user_agent_utils.cc
@@ -37,7 +36,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
 diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
 diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
 --- a/content/browser/client_hints/client_hints.cc
 --- a/content/browser/client_hints/client_hints.cc
 +++ b/content/browser/client_hints/client_hints.cc
 +++ b/content/browser/client_hints/client_hints.cc
-@@ -435,7 +435,8 @@ void AddPrefersColorSchemeHeader(net::HttpRequestHeaders* headers,
+@@ -462,7 +462,8 @@ void AddPrefersColorSchemeHeader(net::HttpRequestHeaders* headers,
                      is_dark_mode ? "dark" : "light");
                      is_dark_mode ? "dark" : "light");
  }
  }
  
  
@@ -50,7 +49,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie
 diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
 diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
 --- a/content/browser/loader/navigation_url_loader_impl.cc
 --- a/content/browser/loader/navigation_url_loader_impl.cc
 +++ b/content/browser/loader/navigation_url_loader_impl.cc
 +++ b/content/browser/loader/navigation_url_loader_impl.cc
-@@ -1030,6 +1030,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
+@@ -1025,6 +1025,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
      return;
      return;
    }
    }
  
  
@@ -84,12 +83,14 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
 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
-@@ -233,7 +233,7 @@ const base::Feature kCrashReporting{"CrashReporting",
+@@ -229,8 +229,8 @@ const base::Feature kCrashReporting{"CrashReporting",
+ 
  // Enables support for the `Critical-CH` response header.
  // Enables support for the `Critical-CH` response header.
  // https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch
  // https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch
- const base::Feature kCriticalClientHint{"CriticalClientHint",
+-const base::Feature kCriticalClientHint{"CriticalClientHint",
 -                                        base::FEATURE_ENABLED_BY_DEFAULT};
 -                                        base::FEATURE_ENABLED_BY_DEFAULT};
-+                                        base::FEATURE_DISABLED_BY_DEFAULT};
++const base::Feature kCriticalClientHint{"CriticalClientHint",                 // disabled by default
++                                        base::FEATURE_DISABLED_BY_DEFAULT};   // on Bromite
  
  
  // Enable debugging the issue crbug.com/1201355
  // Enable debugging the issue crbug.com/1201355
  const base::Feature kDebugHistoryInterventionNoUserActivation{
  const base::Feature kDebugHistoryInterventionNoUserActivation{
@@ -113,7 +114,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
  // https://tools.ietf.org/html/draft-davidben-http-client-hint-reliability-02#section-4.3
  // https://tools.ietf.org/html/draft-davidben-http-client-hint-reliability-02#section-4.3
 -const base::Feature kAcceptCHFrame{"AcceptCHFrame",
 -const base::Feature kAcceptCHFrame{"AcceptCHFrame",
 -                                   base::FEATURE_ENABLED_BY_DEFAULT};
 -                                   base::FEATURE_ENABLED_BY_DEFAULT};
-+const base::Feature kAcceptCHFrame{"AcceptCHFrame",                    // disabled by default
++const base::Feature kAcceptCHFrame{"AcceptCHFrame",                     // disabled by default
 +                                   base::FEATURE_DISABLED_BY_DEFAULT};  // in Bromite
 +                                   base::FEATURE_DISABLED_BY_DEFAULT};  // in Bromite
  
  
  const base::Feature kSCTAuditingRetryReports{"SCTAuditingRetryReports",
  const base::Feature kSCTAuditingRetryReports{"SCTAuditingRetryReports",
@@ -157,26 +158,5 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi
    for (const auto& elem : network::GetClientHintToNameMap()) {
    for (const auto& elem : network::GetClientHintToNameMap()) {
      const auto& type = elem.first;
      const auto& type = elem.first;
      if (IsEnabled(type))
      if (IsEnabled(type))
-diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
---- a/third_party/blink/common/features.cc
-+++ b/third_party/blink/common/features.cc
-@@ -222,7 +222,7 @@ const base::Feature kMixedContentAutoupgrade{"AutoupgradeMixedContent",
- 
- // Enables User-Agent Client Hints
- const base::Feature kUserAgentClientHint{"UserAgentClientHint",
--                                         base::FEATURE_ENABLED_BY_DEFAULT};
-+                                         base::FEATURE_DISABLED_BY_DEFAULT};
- 
- // Handle prefers-color-scheme user preference media feature via client hints.
- const base::Feature kPrefersColorSchemeClientHintHeader{
-@@ -606,7 +606,7 @@ const base::Feature kAudioWorkletThreadRealtimePriority{
- const base::Feature kLightweightNoStatePrefetch {
-   "LightweightNoStatePrefetch",
- #if BUILDFLAG(IS_ANDROID)
--      base::FEATURE_ENABLED_BY_DEFAULT
-+      base::FEATURE_DISABLED_BY_DEFAULT
- #else
-       base::FEATURE_DISABLED_BY_DEFAULT
- #endif
 --
 --
 2.25.1
 2.25.1

+ 29 - 29
build/patches/Content-settings-infrastructure.patch

@@ -41,7 +41,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
-@@ -78,6 +78,10 @@ android_library("java") {
+@@ -85,6 +85,10 @@ android_library("java") {
      "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java",
      "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java",
      "java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java"
      "java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java"
    ]
    ]
@@ -655,7 +655,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
      }
      }
  
  
      /**
      /**
-@@ -564,6 +567,8 @@ public class ContentSettingsResources {
+@@ -570,6 +573,8 @@ public class ContentSettingsResources {
       *         Blocked states, in that order.
       *         Blocked states, in that order.
       */
       */
      public static int[] getTriStateSettingDescriptionIDs(int contentType) {
      public static int[] getTriStateSettingDescriptionIDs(int contentType) {
@@ -667,7 +667,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
-@@ -236,6 +236,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -247,6 +247,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
          @ContentSettingValues
          @ContentSettingValues
          Integer contentSetting = website.site().getContentSetting(
          Integer contentSetting = website.site().getContentSetting(
                  browserContextHandle, mCategory.getContentSettingsType());
                  browserContextHandle, mCategory.getContentSettingsType());
@@ -678,15 +678,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          if (contentSetting != null) {
          if (contentSetting != null) {
              if (mCategory.getContentSettingsType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
              if (mCategory.getContentSettingsType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
                  return ContentSettingValues.ALLOW != contentSetting;
                  return ContentSettingValues.ALLOW != contentSetting;
-@@ -391,6 +395,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -402,6 +406,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
                  ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
                  ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
                  : null;
                  : null;
  
  
 +        BromiteCustomContentSettingImpl.onActivityCreated(this);
 +        BromiteCustomContentSettingImpl.onActivityCreated(this);
          configureGlobalToggles();
          configureGlobalToggles();
- 
-         setHasOptionsMenu(true);
-@@ -490,6 +495,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+         if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) {
+             RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered");
+@@ -508,6 +513,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
          BrowserContextHandle browserContextHandle =
          BrowserContextHandle browserContextHandle =
                  getSiteSettingsDelegate().getBrowserContextHandle();
                  getSiteSettingsDelegate().getBrowserContextHandle();
          PrefService prefService = UserPrefs.get(browserContextHandle);
          PrefService prefService = UserPrefs.get(browserContextHandle);
@@ -698,7 +698,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          if (BINARY_TOGGLE_KEY.equals(preference.getKey())) {
          if (BINARY_TOGGLE_KEY.equals(preference.getKey())) {
              assert !mCategory.isManaged();
              assert !mCategory.isManaged();
  
  
-@@ -645,6 +655,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -672,6 +682,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
          } else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
          } else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
              resource = R.string.website_settings_category_timezone_override_allowed;
              resource = R.string.website_settings_category_timezone_override_allowed;
          }
          }
@@ -707,7 +707,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          assert resource > 0;
          assert resource > 0;
          return getString(resource);
          return getString(resource);
      }
      }
-@@ -757,6 +769,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -790,6 +802,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
              allowSpecifyingExceptions = true;
              allowSpecifyingExceptions = true;
          } else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
          } else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
              allowSpecifyingExceptions = true;
              allowSpecifyingExceptions = true;
@@ -717,7 +717,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          }
          }
          if (allowSpecifyingExceptions) {
          if (allowSpecifyingExceptions) {
              getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(),
              getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(),
-@@ -928,6 +943,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -961,6 +976,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
              TriStateSiteSettingsPreference triStateToggle =
              TriStateSiteSettingsPreference triStateToggle =
                      (TriStateSiteSettingsPreference) getPreferenceScreen().findPreference(
                      (TriStateSiteSettingsPreference) getPreferenceScreen().findPreference(
                              TRI_STATE_TOGGLE_KEY);
                              TRI_STATE_TOGGLE_KEY);
@@ -728,7 +728,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
              if (triStateToggle != null)
              if (triStateToggle != null)
                return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
                return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
  
  
-@@ -1006,6 +1025,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -1039,6 +1058,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
          if (mCategory.getType() != SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
          if (mCategory.getType() != SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
              screen.removePreference(screen.findPreference(TIMEOVERRIDE_INFO_TEXT));
              screen.removePreference(screen.findPreference(TIMEOVERRIDE_INFO_TEXT));
          }
          }
@@ -736,7 +736,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
  
  
          if (permissionBlockedByOs) {
          if (permissionBlockedByOs) {
              maybeShowOsWarning(screen);
              maybeShowOsWarning(screen);
-@@ -1132,7 +1152,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -1170,7 +1190,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
                  getSiteSettingsDelegate().getBrowserContextHandle(), contentType);
                  getSiteSettingsDelegate().getBrowserContextHandle(), contentType);
          int[] descriptionIds =
          int[] descriptionIds =
                  ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType);
                  ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType);
@@ -745,7 +745,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
      }
      }
  
  
      private void configureTimeOverrideStateToggle(
      private void configureTimeOverrideStateToggle(
-@@ -1243,6 +1263,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -1281,6 +1301,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
          @ContentSettingValues
          @ContentSettingValues
          Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
          Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
  
  
@@ -758,12 +758,12 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 +        }
 +        }
 +
 +
          CharSequence[] descriptions = new String[2];
          CharSequence[] descriptions = new String[2];
-         descriptions[0] =
-                 getString(ContentSettingsResources.getSiteSummary(contentSettingsType,
+         descriptions[0] = getString(ContentSettingsResources.getSiteSummary(
+                 ContentSettingValues.ALLOW, contentSettingsType));
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
-@@ -41,6 +41,7 @@ import org.chromium.content_public.browser.BrowserContextHandle;
+@@ -41,6 +41,7 @@ import org.chromium.content_public.browser.ContentFeatureList;
  import java.util.Collection;
  import java.util.Collection;
  import java.util.HashMap;
  import java.util.HashMap;
  import java.util.Map;
  import java.util.Map;
@@ -790,7 +790,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
              Preference preference = new ChromeSwitchPreference(getStyledContext());
              Preference preference = new ChromeSwitchPreference(getStyledContext());
              preference.setKey(getPreferenceKey(type));
              preference.setKey(getPreferenceKey(type));
  
  
-@@ -905,16 +907,22 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -908,16 +910,22 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
  
  
      private void setupContentSettingsPreference(Preference preference,
      private void setupContentSettingsPreference(Preference preference,
              @ContentSettingValues @Nullable Integer value, boolean isEmbargoed) {
              @ContentSettingValues @Nullable Integer value, boolean isEmbargoed) {
@@ -818,7 +818,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          switchPreference.setOnPreferenceChangeListener(this);
          switchPreference.setOnPreferenceChangeListener(this);
          @ContentSettingsType
          @ContentSettingsType
          int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey());
          int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey());
-@@ -1163,7 +1171,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -1169,7 +1177,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
          }
          }
  
  
          mSite.setContentSetting(browserContextHandle, type, permission);
          mSite.setContentSetting(browserContextHandle, type, permission);
@@ -929,7 +929,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
-@@ -265,6 +265,10 @@ public final class Website implements Serializable {
+@@ -260,6 +260,10 @@ public final class Website implements Serializable {
                          /*isEmbargoed=*/false);
                          /*isEmbargoed=*/false);
                  setContentSettingException(type, exception);
                  setContentSettingException(type, exception);
              }
              }
@@ -955,7 +955,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
-@@ -227,7 +227,7 @@ public class WebsitePreferenceBridge {
+@@ -225,7 +225,7 @@ public class WebsitePreferenceBridge {
              case ContentSettingsType.TIMEZONE_OVERRIDE:
              case ContentSettingsType.TIMEZONE_OVERRIDE:
                  return true;
                  return true;
              default:
              default:
@@ -1120,7 +1120,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry.
 diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
 diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
 --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
 --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
 +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
 +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
-@@ -109,6 +109,7 @@ public class PermissionParamsListBuilder {
+@@ -104,6 +104,7 @@ public class PermissionParamsListBuilder {
                  permissionParams.allowed = true;
                  permissionParams.allowed = true;
                  break;
                  break;
              case ContentSettingValues.BLOCK:
              case ContentSettingValues.BLOCK:
@@ -1153,8 +1153,8 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
 +
 +
    std::map<ContentSettingsType, ContentSetting>
    std::map<ContentSettingsType, ContentSetting>
        user_specified_settings_to_display;
        user_specified_settings_to_display;
-   std::map<ContentSettingsType, bool>
-@@ -242,6 +251,15 @@ absl::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
+ 
+@@ -236,6 +245,15 @@ absl::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
      // The images content setting should show up if it is blocked globally
      // The images content setting should show up if it is blocked globally
      // to give users an easy way to create exceptions.
      // to give users an easy way to create exceptions.
      return permission.default_setting;
      return permission.default_setting;
@@ -1178,10 +1178,10 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
  #include "components/browsing_data/content/local_storage_helper.h"
  #include "components/browsing_data/content/local_storage_helper.h"
  #include "components/content_settings/browser/page_specific_content_settings.h"
  #include "components/content_settings/browser/page_specific_content_settings.h"
 +#include "components/content_settings/core/browser/website_settings_registry.h"
 +#include "components/content_settings/core/browser/website_settings_registry.h"
+ #include "components/content_settings/browser/ui/cookie_controls_controller.h"
  #include "components/content_settings/core/browser/content_settings_registry.h"
  #include "components/content_settings/core/browser/content_settings_registry.h"
  #include "components/content_settings/core/browser/content_settings_utils.h"
  #include "components/content_settings/core/browser/content_settings_utils.h"
- #include "components/content_settings/core/browser/host_content_settings_map.h"
-@@ -163,6 +164,15 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
+@@ -164,6 +165,15 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
      return true;
      return true;
    }
    }
  
  
@@ -1197,7 +1197,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
    const bool is_incognito = web_contents->GetBrowserContext()->IsOffTheRecord();
    const bool is_incognito = web_contents->GetBrowserContext()->IsOffTheRecord();
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)
    // Special geolocation DSE settings apply only on Android, so make sure it
    // Special geolocation DSE settings apply only on Android, so make sure it
-@@ -1066,7 +1076,18 @@ void PageInfo::PresentSitePermissions() {
+@@ -1112,7 +1122,18 @@ void PageInfo::PresentSitePermissions() {
    PermissionInfo permission_info;
    PermissionInfo permission_info;
    HostContentSettingsMap* content_settings = GetContentSettings();
    HostContentSettingsMap* content_settings = GetContentSettings();
    DCHECK(web_contents_);
    DCHECK(web_contents_);
@@ -1228,7 +1228,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
  #include "components/omnibox/common/omnibox_features.h"
  #include "components/omnibox/common/omnibox_features.h"
  #include "components/page_info/core/features.h"
  #include "components/page_info/core/features.h"
  #include "components/page_info/page_info_ui_delegate.h"
  #include "components/page_info/page_info_ui_delegate.h"
-@@ -569,6 +570,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
+@@ -572,6 +573,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
      if (info.type == type)
      if (info.type == type)
        return l10n_util::GetStringUTF16(info.string_id);
        return l10n_util::GetStringUTF16(info.string_id);
    }
    }
@@ -1241,7 +1241,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
    NOTREACHED();
    NOTREACHED();
    return std::u16string();
    return std::u16string();
  }
  }
-@@ -580,6 +587,12 @@ std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
+@@ -583,6 +590,12 @@ std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
      if (info.type == type)
      if (info.type == type)
        return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
        return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
    }
    }
@@ -1254,7 +1254,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
    NOTREACHED();
    NOTREACHED();
    return std::u16string();
    return std::u16string();
  }
  }
-@@ -967,6 +980,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
+@@ -970,6 +983,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
      if (info.type == type)
      if (info.type == type)
        return true;
        return true;
    }
    }

+ 5 - 5
build/patches/Dictionary-suggestions-for-the-Omnibox.patch

@@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml
 diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml
 --- a/chrome/android/java/res/layout/url_bar.xml
 --- a/chrome/android/java/res/layout/url_bar.xml
 +++ b/chrome/android/java/res/layout/url_bar.xml
 +++ b/chrome/android/java/res/layout/url_bar.xml
-@@ -13,5 +13,6 @@
+@@ -15,5 +15,6 @@ found in the LICENSE file.
      android:singleLine="true"
      android:singleLine="true"
      android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
      android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
      android:textSize="@dimen/location_bar_url_text_size"
      android:textSize="@dimen/location_bar_url_text_size"
@@ -964,10 +964,10 @@ new file mode 100644
 diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
 diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
 +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
 +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
-@@ -215,8 +215,7 @@ public abstract class UrlBar extends AutocompleteEditText {
-         // the first draw.
-         setFocusable(false);
-         setFocusableInTouchMode(false);
+@@ -222,8 +222,7 @@ public abstract class UrlBar extends AutocompleteEditText {
+             setFocusableInTouchMode(mAllowFocus);
+         });
+ 
 -        setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI
 -        setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI
 -                | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
 -                | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
 +        setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
 +        setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);

+ 16 - 16
build/patches/Disable-AGSA-by-default.patch

@@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -379,7 +379,6 @@ android_library("chrome_java") {
+@@ -380,7 +380,6 @@ android_library("chrome_java") {
      "//chrome/browser/first_run/android:java",
      "//chrome/browser/first_run/android:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/fullscreen/android:java",
      "//chrome/browser/fullscreen/android:java",
@@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java_resources",
      "//chrome/browser/history_clusters:java_resources",
      "//chrome/browser/image_descriptions:java",
      "//chrome/browser/image_descriptions:java",
-@@ -1010,7 +1009,6 @@ robolectric_binary("chrome_junit_tests") {
+@@ -1017,7 +1016,6 @@ robolectric_binary("chrome_junit_tests") {
      "//chrome/browser/flags:flags_junit_tests",
      "//chrome/browser/flags:flags_junit_tests",
      "//chrome/browser/flags:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/fullscreen/android:java",
      "//chrome/browser/fullscreen/android:java",
@@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/image_descriptions:java",
      "//chrome/browser/image_descriptions:java",
      "//chrome/browser/image_editor/public:java",
      "//chrome/browser/image_editor/public:java",
-@@ -1529,7 +1527,6 @@ android_library("chrome_test_java") {
+@@ -1542,7 +1540,6 @@ android_library("chrome_test_java") {
      "//chrome/browser/first_run/android:java",
      "//chrome/browser/first_run/android:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/fullscreen/android:java",
      "//chrome/browser/fullscreen/android:java",
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
  import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
  import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
  import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
  import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.Profile;
-@@ -255,8 +254,6 @@ public class IntentHandler {
+@@ -261,8 +260,6 @@ public class IntentHandler {
      private static int sReferrerId;
      private static int sReferrerId;
      private static String sPendingIncognitoUrl;
      private static String sPendingIncognitoUrl;
  
  
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
      private static final String PACKAGE_GMAIL = "com.google.android.gm";
      private static final String PACKAGE_GMAIL = "com.google.android.gm";
      private static final String PACKAGE_PLUS = "com.google.android.apps.plus";
      private static final String PACKAGE_PLUS = "com.google.android.apps.plus";
      private static final String PACKAGE_HANGOUTS = "com.google.android.talk";
      private static final String PACKAGE_HANGOUTS = "com.google.android.talk";
-@@ -486,8 +483,6 @@ public class IntentHandler {
+@@ -492,8 +489,6 @@ public class IntentHandler {
              return ExternalAppId.LINE;
              return ExternalAppId.LINE;
          } else if (packageName.equals(PACKAGE_WHATSAPP)) {
          } else if (packageName.equals(PACKAGE_WHATSAPP)) {
              return ExternalAppId.WHATSAPP;
              return ExternalAppId.WHATSAPP;
@@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
 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
-@@ -111,10 +111,6 @@ import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
+@@ -112,10 +112,6 @@ import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
  import org.chromium.chrome.browser.fullscreen.BrowserControlsManagerSupplier;
  import org.chromium.chrome.browser.fullscreen.BrowserControlsManagerSupplier;
  import org.chromium.chrome.browser.fullscreen.FullscreenBackPressHandler;
  import org.chromium.chrome.browser.fullscreen.FullscreenBackPressHandler;
  import org.chromium.chrome.browser.fullscreen.FullscreenManager;
  import org.chromium.chrome.browser.fullscreen.FullscreenManager;
@@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.chrome.browser.history.HistoryManagerUtils;
  import org.chromium.chrome.browser.history.HistoryManagerUtils;
  import org.chromium.chrome.browser.init.AsyncInitializationActivity;
  import org.chromium.chrome.browser.init.AsyncInitializationActivity;
  import org.chromium.chrome.browser.init.ProcessInitializationHandler;
  import org.chromium.chrome.browser.init.ProcessInitializationHandler;
-@@ -371,8 +367,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -373,8 +369,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  
  
      private LaunchCauseMetrics mLaunchCauseMetrics;
      private LaunchCauseMetrics mLaunchCauseMetrics;
  
  
@@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
      // TODO(972867): Pull MenuOrKeyboardActionController out of ChromeActivity.
      // TODO(972867): Pull MenuOrKeyboardActionController out of ChromeActivity.
      private List<MenuOrKeyboardActionController.MenuOrKeyboardActionHandler> mMenuActionHandlers =
      private List<MenuOrKeyboardActionController.MenuOrKeyboardActionHandler> mMenuActionHandlers =
              new ArrayList<>();
              new ArrayList<>();
-@@ -1166,10 +1160,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -1176,10 +1170,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  
  
      @Override
      @Override
      public void onStopWithNative() {
      public void onStopWithNative() {
@@ -120,11 +120,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
          super.onStopWithNative();
          super.onStopWithNative();
      }
      }
  
  
-@@ -1260,23 +1250,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
-             FontSizePrefs.getInstance(Profile.getLastUsedRegularProfile())
+@@ -1271,23 +1261,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
                      .recordUserFontPrefOnStartup();
                      .recordUserFontPrefOnStartup();
          });
          });
--
+ 
 -        // GSA connection is not needed on low-end devices because Icing is disabled.
 -        // GSA connection is not needed on low-end devices because Icing is disabled.
 -        if (!SysUtils.isLowEndDevice()) {
 -        if (!SysUtils.isLowEndDevice()) {
 -            if (isActivityFinishingOrDestroyed()) return;
 -            if (isActivityFinishingOrDestroyed()) return;
@@ -141,9 +140,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
 -                mGSAAccountChangeListener.connect();
 -                mGSAAccountChangeListener.connect();
 -            });
 -            });
 -        }
 -        }
+-
+         DeferredStartupHandler.getInstance().addDeferredTask(
+                 () -> { MemoryPurgeManager.getInstance().start(); });
      }
      }
- 
-     /**
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -262,7 +262,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
 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
-@@ -659,7 +659,7 @@ const base::Feature kDuetTabStripIntegrationAndroid{
+@@ -671,7 +671,7 @@ const base::Feature kDuetTabStripIntegrationAndroid{
      "DuetTabStripIntegrationAndroid", base::FEATURE_DISABLED_BY_DEFAULT};
      "DuetTabStripIntegrationAndroid", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kExperimentsForAgsa{"ExperimentsForAgsa",
  const base::Feature kExperimentsForAgsa{"ExperimentsForAgsa",
@@ -274,7 +274,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 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
-@@ -71,7 +71,7 @@ public class CachedFeatureFlags {
+@@ -72,7 +72,7 @@ public class CachedFeatureFlags {
                      .put(ChromeFeatureList.EARLY_LIBRARY_LOAD, true)
                      .put(ChromeFeatureList.EARLY_LIBRARY_LOAD, true)
                      .put(ChromeFeatureList.ELASTIC_OVERSCROLL, true)
                      .put(ChromeFeatureList.ELASTIC_OVERSCROLL, true)
                      .put(ChromeFeatureList.ELIDE_PRIORITIZATION_OF_PRE_NATIVE_BOOTSTRAP_TASKS, true)
                      .put(ChromeFeatureList.ELIDE_PRIORITIZATION_OF_PRE_NATIVE_BOOTSTRAP_TASKS, true)
@@ -294,7 +294,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/language/android:java",
      "//chrome/browser/language/android:java",
      "//chrome/browser/lens:java",
      "//chrome/browser/lens:java",
-@@ -428,7 +427,6 @@ robolectric_library("junit") {
+@@ -430,7 +429,6 @@ robolectric_library("junit") {
      "//chrome/browser/commerce/merchant_viewer/android:java",
      "//chrome/browser/commerce/merchant_viewer/android:java",
      "//chrome/browser/device:java",
      "//chrome/browser/device:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/flags:java",

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

@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -1494,6 +1494,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1500,6 +1500,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_SAFETY_CHECK_BUTTON" desc="Text for the button to start Safety check.">
        <message name="IDS_SAFETY_CHECK_BUTTON" desc="Text for the button to start Safety check.">
          Check now
          Check now
        </message>
        </message>
@@ -30,7 +30,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
 +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
-@@ -5,6 +5,11 @@
+@@ -7,6 +7,11 @@ found in the LICENSE file.
  
  
  <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
  <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
  
  

+ 1 - 1
build/patches/Disable-AsyncDNS-by-default.patch

@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -81,12 +81,8 @@ const base::Feature kAppShimNewCloseBehavior{"AppShimNewCloseBehavior",
+@@ -86,12 +86,8 @@ const base::Feature kAppShimNewCloseBehavior{"AppShimNewCloseBehavior",
  
  
  // Enables the built-in DNS resolver.
  // Enables the built-in DNS resolver.
  const base::Feature kAsyncDns {
  const base::Feature kAsyncDns {

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -746,7 +746,7 @@ const base::Feature kMediaDrmPersistentLicense{
+@@ -742,7 +742,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",

+ 9 - 9
build/patches/Disable-FLoC-and-privacy-sandbox.patch

@@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -66,10 +66,6 @@
+@@ -68,10 +68,6 @@ found in the LICENSE file.
          android:title="@string/open_external_links_incognito_title"
          android:title="@string/open_external_links_incognito_title"
          android:summary="@string/open_external_links_incognito_summary"
          android:summary="@string/open_external_links_incognito_summary"
          android:defaultValue="false" />
          android:defaultValue="false" />
@@ -82,9 +82,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 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
-@@ -2982,6 +2982,9 @@ bool ChromeContentBrowserClient::IsConversionMeasurementOperationAllowed(
-     const url::Origin* impression_origin,
-     const url::Origin* conversion_origin,
+@@ -3060,6 +3060,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
+     const url::Origin* source_origin,
+     const url::Origin* destination_origin,
      const url::Origin* reporting_origin) {
      const url::Origin* reporting_origin) {
 +  // make sure that this is always disabled in Bromite even if privacy sandbox is already disabled in the prefs
 +  // make sure that this is always disabled in Bromite even if privacy sandbox is already disabled in the prefs
 +  if ((true))
 +  if ((true))
@@ -118,7 +118,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
 diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
 diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
 --- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
 --- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
 +++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
 +++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
-@@ -66,7 +66,7 @@ namespace privacy_sandbox {
+@@ -63,7 +63,7 @@ namespace privacy_sandbox {
  
  
  void RegisterProfilePrefs(PrefRegistrySimple* registry) {
  void RegisterProfilePrefs(PrefRegistrySimple* registry) {
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
@@ -157,12 +157,12 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components
 -bool PrivacySandboxSettings::IsTopicAllowed(const CanonicalTopic& topic) {
 -bool PrivacySandboxSettings::IsTopicAllowed(const CanonicalTopic& topic) {
 +bool PrivacySandboxSettings::IsTopicAllowed(const CanonicalTopic& topic) { // disabled in Bromite
 +bool PrivacySandboxSettings::IsTopicAllowed(const CanonicalTopic& topic) { // disabled in Bromite
 +  if ((true)) return false;
 +  if ((true)) return false;
-   auto* blocked_topics =
+   const auto& blocked_topics =
        pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics);
        pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics);
  
  
 @@ -181,9 +182,8 @@ base::Time PrivacySandboxSettings::TopicsDataAccessibleSince() const {
 @@ -181,9 +182,8 @@ base::Time PrivacySandboxSettings::TopicsDataAccessibleSince() const {
  
  
- bool PrivacySandboxSettings::IsConversionMeasurementAllowed(
+ bool PrivacySandboxSettings::IsAttributionReportingAllowed(
      const url::Origin& top_frame_origin,
      const url::Origin& top_frame_origin,
 -    const url::Origin& reporting_origin) const {
 -    const url::Origin& reporting_origin) const {
 -  return IsPrivacySandboxEnabledForContext(reporting_origin.GetURL(),
 -  return IsPrivacySandboxEnabledForContext(reporting_origin.GetURL(),
@@ -171,7 +171,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components
 +  return false;
 +  return false;
  }
  }
  
  
- bool PrivacySandboxSettings::ShouldSendConversionReport(
+ bool PrivacySandboxSettings::MaySendAttributionReport(
 @@ -277,7 +277,8 @@ void PrivacySandboxSettings::ClearFledgeJoiningAllowedSettings(
 @@ -277,7 +277,8 @@ void PrivacySandboxSettings::ClearFledgeJoiningAllowedSettings(
  }
  }
  
  
@@ -238,7 +238,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings.cc b/components
 diff --git a/components/privacy_sandbox/privacy_sandbox_settings.h b/components/privacy_sandbox/privacy_sandbox_settings.h
 diff --git a/components/privacy_sandbox/privacy_sandbox_settings.h b/components/privacy_sandbox/privacy_sandbox_settings.h
 --- a/components/privacy_sandbox/privacy_sandbox_settings.h
 --- a/components/privacy_sandbox/privacy_sandbox_settings.h
 +++ b/components/privacy_sandbox/privacy_sandbox_settings.h
 +++ b/components/privacy_sandbox/privacy_sandbox_settings.h
-@@ -221,7 +221,6 @@ class PrivacySandboxSettings : public KeyedService {
+@@ -220,7 +220,6 @@ class PrivacySandboxSettings : public KeyedService {
    scoped_refptr<content_settings::CookieSettings> cookie_settings_;
    scoped_refptr<content_settings::CookieSettings> cookie_settings_;
    raw_ptr<PrefService> pref_service_;
    raw_ptr<PrefService> pref_service_;
    PrefChangeRegistrar pref_change_registrar_;
    PrefChangeRegistrar pref_change_registrar_;

+ 2 - 2
build/patches/Disable-PrivacyGuide.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -439,8 +439,8 @@ const base::Feature kHaTSDesktopDevToolsIssuesCSP{
+@@ -444,8 +444,8 @@ const base::Feature kHaTSDesktopDevToolsIssuesCSP{
  
  
  // Enables or disables the Happiness Tracking System for Desktop Privacy Guide.
  // Enables or disables the Happiness Tracking System for Desktop Privacy Guide.
  const base::Feature kHappinessTrackingSurveysForDesktopPrivacyGuide{
  const base::Feature kHappinessTrackingSurveysForDesktopPrivacyGuide{
@@ -21,7 +21,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
  const base::FeatureParam<base::TimeDelta>
  const base::FeatureParam<base::TimeDelta>
      kHappinessTrackingSurveysForDesktopPrivacyGuideTime{
      kHappinessTrackingSurveysForDesktopPrivacyGuideTime{
          &kHappinessTrackingSurveysForDesktopPrivacyGuide, "settings-time",
          &kHappinessTrackingSurveysForDesktopPrivacyGuide, "settings-time",
-@@ -761,11 +761,11 @@ const base::Feature kPrefixWebAppWindowsWithAppName{
+@@ -777,11 +777,11 @@ const base::Feature kPredictivePrefetchingAllowedOnAllConnectionTypes{
  const base::Feature kPrerenderFallbackToPreconnect{
  const base::Feature kPrerenderFallbackToPreconnect{
      "PrerenderFallbackToPreconnect", base::FEATURE_ENABLED_BY_DEFAULT};
      "PrerenderFallbackToPreconnect", base::FEATURE_ENABLED_BY_DEFAULT};
  
  

+ 27 - 0
build/patches/Disable-StartSurface-feature.patch

@@ -0,0 +1,27 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Wed, 16 Nov 2022 11:18:07 +0100
+Subject: Disable StartSurface feature
+
+This feature would normally show a search box but leads to crashes.
+
+License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
+---
+ chrome/browser/flags/android/chrome_feature_list.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+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
++++ b/chrome/browser/flags/android/chrome_feature_list.cc
+@@ -936,8 +936,8 @@ const base::Feature kTrustedWebActivityQualityEnforcementWarning{
+ const base::Feature kShowExtendedPreloadingSetting{
+     "ShowExtendedPreloadingSetting", base::FEATURE_ENABLED_BY_DEFAULT};
+ 
+-const base::Feature kStartSurfaceAndroid{"StartSurfaceAndroid",
+-                                         base::FEATURE_ENABLED_BY_DEFAULT};
++const base::Feature kStartSurfaceAndroid{"StartSurfaceAndroid",                // must be disabled
++                                         base::FEATURE_DISABLED_BY_DEFAULT};   // in Bromite
+ 
+ const base::Feature kFeedPositionAndroid{"FeedPositionAndroid",
+                                          base::FEATURE_DISABLED_BY_DEFAULT};
+--
+2.25.1

+ 13 - 13
build/patches/Disable-TLS-resumption.patch

@@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -4806,6 +4806,12 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4896,6 +4896,12 @@ const FeatureEntry kFeatureEntries[] = {
      {"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName,
      {"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName,
       flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll,
       flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll,
       FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)},
       FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)},
@@ -55,7 +55,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
-@@ -1035,6 +1035,14 @@ const char kEnableTLS13EarlyDataDescription[] =
+@@ -1015,6 +1015,14 @@ const char kEnableTLS13EarlyDataDescription[] =
      "during the handshake when resuming a connection to a compatible TLS 1.3 "
      "during the handshake when resuming a connection to a compatible TLS 1.3 "
      "server.";
      "server.";
  
  
@@ -73,7 +73,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
-@@ -596,6 +596,12 @@ extern const char kEnablePreinstalledWebAppDuplicationFixerDescription[];
+@@ -580,6 +580,12 @@ extern const char kEnablePreinstalledWebAppDuplicationFixerDescription[];
  extern const char kEnableTLS13EarlyDataName[];
  extern const char kEnableTLS13EarlyDataName[];
  extern const char kEnableTLS13EarlyDataDescription[];
  extern const char kEnableTLS13EarlyDataDescription[];
  
  
@@ -89,7 +89,7 @@ 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
-@@ -108,6 +108,12 @@ const base::Feature kUseDnsHttpsSvcbAlpn{"UseDnsHttpsSvcbAlpn",
+@@ -110,6 +110,12 @@ const base::Feature kUseDnsHttpsSvcbAlpn{"UseDnsHttpsSvcbAlpn",
  const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
  const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
                                            base::FEATURE_DISABLED_BY_DEFAULT};
                                            base::FEATURE_DISABLED_BY_DEFAULT};
  
  
@@ -132,7 +132,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
 diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
 diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
 --- a/net/quic/quic_stream_factory.cc
 --- a/net/quic/quic_stream_factory.cc
 +++ b/net/quic/quic_stream_factory.cc
 +++ b/net/quic/quic_stream_factory.cc
-@@ -74,6 +74,7 @@
+@@ -73,6 +73,7 @@
  #include "net/third_party/quiche/src/quiche/quic/core/quic_utils.h"
  #include "net/third_party/quiche/src/quiche/quic/core/quic_utils.h"
  #include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
  #include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
  #include "third_party/boringssl/src/include/openssl/aead.h"
  #include "third_party/boringssl/src/include/openssl/aead.h"
@@ -140,7 +140,7 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
  #include "url/gurl.h"
  #include "url/gurl.h"
  #include "url/scheme_host_port.h"
  #include "url/scheme_host_port.h"
  #include "url/url_constants.h"
  #include "url/url_constants.h"
-@@ -247,6 +248,38 @@ quic::ParsedQuicVersion SelectQuicVersion(
+@@ -246,6 +247,38 @@ quic::ParsedQuicVersion SelectQuicVersion(
  
  
  }  // namespace
  }  // namespace
  
  
@@ -179,10 +179,10 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
  // Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many
  // Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many
  // consumers are using it currently. When the last reference is freed, the
  // consumers are using it currently. When the last reference is freed, the
  // QuicCryptoClientConfigHandle informs the owning QuicStreamFactory, moves it
  // QuicCryptoClientConfigHandle informs the owning QuicStreamFactory, moves it
-@@ -2242,7 +2275,7 @@ QuicStreamFactory::CreateCryptoConfigHandle(
+@@ -2254,7 +2287,7 @@ QuicStreamFactory::CreateCryptoConfigHandle(
                sct_auditing_delegate_,
                sct_auditing_delegate_,
                HostsFromOrigins(params_.origins_to_force_quic_on),
                HostsFromOrigins(params_.origins_to_force_quic_on),
-               actual_network_isolation_key),
+               actual_network_anonymization_key),
 -          std::make_unique<quic::QuicClientSessionCache>(), this);
 -          std::make_unique<quic::QuicClientSessionCache>(), this);
 +          std::make_unique<BromiteSessionCache>(), this);
 +          std::make_unique<BromiteSessionCache>(), this);
  
  
@@ -200,7 +200,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
 +    LOG(INFO) << "SSL Log: "
 +    LOG(INFO) << "SSL Log: "
 +              << tag
 +              << tag
 +              << " host: " << host_and_port_.ToString()
 +              << " host: " << host_and_port_.ToString()
-+              << " NIK: " << ssl_config_.network_isolation_key.ToDebugString();
++              << " NIK: " << ssl_config_.network_anonymization_key.ToDebugString();
 +    return;
 +    return;
 +  }
 +  }
 +
 +
@@ -214,7 +214,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
 +  LOG(INFO) << "SSL Log: "
 +  LOG(INFO) << "SSL Log: "
 +            << tag
 +            << tag
 +            << " host: " << host_and_port_.ToString()
 +            << " host: " << host_and_port_.ToString()
-+            << " NIK: " << ssl_config_.network_isolation_key.ToDebugString()
++            << " NIK: " << ssl_config_.network_anonymization_key.ToDebugString()
 +            << " sessionid: " << base::HexEncode(session_id, len)
 +            << " sessionid: " << base::HexEncode(session_id, len)
 +            << (ticklen > 0 ? " ticket:" + base::HexEncode(ticket, ticklen) : "");
 +            << (ticklen > 0 ? " ticket:" + base::HexEncode(ticket, ticklen) : "");
 +}
 +}
@@ -225,7 +225,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
    Disconnect();
    Disconnect();
  }
  }
  
  
-@@ -787,6 +813,8 @@ int SSLClientSocketImpl::Init() {
+@@ -786,6 +812,8 @@ int SSLClientSocketImpl::Init() {
      }
      }
      if (session)
      if (session)
        SSL_set_session(ssl_.get(), session.get());
        SSL_set_session(ssl_.get(), session.get());
@@ -234,7 +234,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
    }
    }
  
  
    transport_adapter_ = std::make_unique<SocketBIOAdapter>(
    transport_adapter_ = std::make_unique<SocketBIOAdapter>(
-@@ -1075,6 +1103,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
+@@ -1074,6 +1102,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
                      : SSLHandshakeDetails::kTLS13Full;
                      : SSLHandshakeDetails::kTLS13Full;
      }
      }
    }
    }
@@ -270,7 +270,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
    UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details);
    UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details);
  
  
    // Measure TLS connections that implement the renegotiation_info extension.
    // Measure TLS connections that implement the renegotiation_info extension.
-@@ -1748,6 +1805,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
+@@ -1746,6 +1803,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
  }
  }
  
  
  bool SSLClientSocketImpl::IsCachingEnabled() const {
  bool SSLClientSocketImpl::IsCachingEnabled() const {

+ 10 - 10
build/patches/Disable-all-predictors-code.patch

@@ -33,7 +33,7 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/
 diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
 diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
 --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
 --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
 +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
 +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
-@@ -361,7 +361,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
+@@ -324,7 +324,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
  void OptimizationGuideKeyedService::RegisterOptimizationTypes(
  void OptimizationGuideKeyedService::RegisterOptimizationTypes(
      const std::vector<optimization_guide::proto::OptimizationType>&
      const std::vector<optimization_guide::proto::OptimizationType>&
          optimization_types) {
          optimization_types) {
@@ -44,7 +44,7 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.
 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
-@@ -728,8 +728,8 @@ const base::Feature kPermissionAuditing{"PermissionAuditing",
+@@ -747,8 +747,8 @@ const base::Feature kPermissionAuditing{"PermissionAuditing",
  
  
  // Enables using the prediction service for permission prompts. We will keep
  // Enables using the prediction service for permission prompts. We will keep
  // this feature in order to allow us to update the holdback chance via finch.
  // this feature in order to allow us to update the holdback chance via finch.
@@ -55,7 +55,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
  
  
  // The holdback chance is 30% but it can also be configured/updated
  // The holdback chance is 30% but it can also be configured/updated
  // through finch if needed.
  // through finch if needed.
-@@ -740,7 +740,7 @@ const base::FeatureParam<double> kPermissionPredictionsHoldbackChance(
+@@ -759,7 +759,7 @@ const base::FeatureParam<double> kPermissionPredictionsHoldbackChance(
  
  
  // Enables using the prediction service for geolocation permission prompts.
  // Enables using the prediction service for geolocation permission prompts.
  const base::Feature kPermissionGeolocationPredictions{
  const base::Feature kPermissionGeolocationPredictions{
@@ -78,7 +78,7 @@ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/op
 diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc
 diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc
 --- a/components/optimization_guide/core/hints_manager.cc
 --- a/components/optimization_guide/core/hints_manager.cc
 +++ b/components/optimization_guide/core/hints_manager.cc
 +++ b/components/optimization_guide/core/hints_manager.cc
-@@ -361,6 +361,7 @@ void HintsManager::Shutdown() {
+@@ -360,6 +360,7 @@ void HintsManager::Shutdown() {
  OptimizationGuideDecision
  OptimizationGuideDecision
  HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision(
  HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision(
      OptimizationTypeDecision optimization_type_decision) {
      OptimizationTypeDecision optimization_type_decision) {
@@ -86,7 +86,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op
    switch (optimization_type_decision) {
    switch (optimization_type_decision) {
      case OptimizationTypeDecision::kAllowedByOptimizationFilter:
      case OptimizationTypeDecision::kAllowedByOptimizationFilter:
      case OptimizationTypeDecision::kAllowedByHint:
      case OptimizationTypeDecision::kAllowedByHint:
-@@ -1272,6 +1273,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization(
+@@ -1271,6 +1272,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization(
      proto::OptimizationType optimization_type,
      proto::OptimizationType optimization_type,
      OptimizationMetadata* optimization_metadata) {
      OptimizationMetadata* optimization_metadata) {
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -238,7 +238,7 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio
 diff --git a/components/permissions/features.cc b/components/permissions/features.cc
 diff --git a/components/permissions/features.cc b/components/permissions/features.cc
 --- a/components/permissions/features.cc
 --- a/components/permissions/features.cc
 +++ b/components/permissions/features.cc
 +++ b/components/permissions/features.cc
-@@ -60,12 +60,12 @@ const base::Feature kPermissionChipRequestTypeSensitive{
+@@ -66,12 +66,12 @@ const base::Feature kPermissionChipRequestTypeSensitive{
  // When enabled, use the value of the `service_url` FeatureParam as the url
  // When enabled, use the value of the `service_url` FeatureParam as the url
  // for the Web Permission Predictions Service.
  // for the Web Permission Predictions Service.
  const base::Feature kPermissionPredictionServiceUseUrlOverride{
  const base::Feature kPermissionPredictionServiceUseUrlOverride{
@@ -253,12 +253,12 @@ diff --git a/components/permissions/features.cc b/components/permissions/feature
 +    "PermissionOnDeviceNotificationPredictions",            // disabled by default
 +    "PermissionOnDeviceNotificationPredictions",            // disabled by default
 +    base::FEATURE_DISABLED_BY_DEFAULT};                     // in Bromite
 +    base::FEATURE_DISABLED_BY_DEFAULT};                     // in Bromite
  
  
- #if BUILDFLAG(IS_ANDROID)
- 
+ const base::Feature kPermissionOnDeviceGeolocationPredictions{
+     "PermissionOnDeviceGeolocationPredictions",
 diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc
 diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc
 --- a/components/segmentation_platform/public/features.cc
 --- a/components/segmentation_platform/public/features.cc
 +++ b/components/segmentation_platform/public/features.cc
 +++ b/components/segmentation_platform/public/features.cc
-@@ -27,7 +27,7 @@ const base::Feature kSegmentationPlatformLowEngagementFeature{
+@@ -30,7 +30,7 @@ const base::Feature kShoppingUserSegmentFeature{
  const base::Feature kSegmentationPlatformFeedSegmentFeature{
  const base::Feature kSegmentationPlatformFeedSegmentFeature{
    "SegmentationPlatformFeedSegmentFeature",
    "SegmentationPlatformFeedSegmentFeature",
  #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
  #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
@@ -270,7 +270,7 @@ diff --git a/components/segmentation_platform/public/features.cc b/components/se
 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
-@@ -245,7 +245,7 @@ const base::Feature kViewportHeightClientHintHeader{
+@@ -206,7 +206,7 @@ const base::Feature kMixedContentAutoupgrade{"AutoupgradeMixedContent",
  const base::Feature kNavigationPredictor {
  const base::Feature kNavigationPredictor {
    "NavigationPredictor",
    "NavigationPredictor",
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)

+ 3 - 3
build/patches/Disable-all-promo-dialogs.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -873,7 +873,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -850,7 +850,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
       * displayed.
       * displayed.
       */
       */
      private boolean triggerPromo(boolean intentWithEffect) {
      private boolean triggerPromo(boolean intentWithEffect) {
@@ -19,7 +19,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;
              }
              }
-@@ -908,8 +908,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -885,8 +885,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,6 +29,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
 +            return false;
 +            return false;
      }
      }
  
  
-     private boolean maybeShowPromo() {
+     @VisibleForTesting
 --
 --
 2.25.1
 2.25.1

+ 10 - 10
build/patches/Disable-conversion-measurement-api.patch

@@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -490,7 +490,7 @@ const base::Feature kAppMenuMobileSiteOption{"AppMenuMobileSiteOption",
+@@ -502,7 +502,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",
@@ -139,19 +139,19 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se
 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
-@@ -425,7 +425,7 @@ void AttributionStorageSql::RunInMemoryForTesting() {
+@@ -416,7 +416,7 @@ DestinationLimitResult GetDestinationLimitResult(
+   }
  }
  }
  
  
- // static
--bool AttributionStorageSql::g_run_in_memory_ = false;
-+bool AttributionStorageSql::g_run_in_memory_ = true;
+-bool g_run_in_memory = false;
++bool g_run_in_memory = true;
+ 
+ }  // namespace
  
  
- // static
- bool AttributionStorageSql::DeleteStorageForTesting(
 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
-@@ -1317,12 +1317,7 @@ void StoragePartitionImpl::Initialize(
+@@ -1315,12 +1315,7 @@ void StoragePartitionImpl::Initialize(
  
  
    bucket_manager_ = std::make_unique<BucketManager>(this);
    bucket_manager_ = std::make_unique<BucketManager>(this);
  
  
@@ -179,7 +179,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
-@@ -109,7 +109,7 @@ const base::Feature kCSSContainerQueries{"CSSContainerQueries",
+@@ -107,7 +107,7 @@ const base::Feature kBlockingDownloadsInAdFrameWithoutUserActivation{
  
  
  // 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",
@@ -191,7 +191,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
 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
-@@ -106,6 +106,13 @@
+@@ -176,6 +176,13 @@
    },
    },
  
  
    data: [
    data: [

+ 1 - 1
build/patches/Disable-crash-reporting.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -227,8 +227,8 @@ const base::Feature kCooperativeScheduling{"CooperativeScheduling",
+@@ -224,8 +224,8 @@ const base::Feature kCooperativeScheduling{"CooperativeScheduling",
  
  
  // Enables crash reporting via Reporting API.
  // Enables crash reporting via Reporting API.
  // https://www.w3.org/TR/reporting/#crash-report
  // https://www.w3.org/TR/reporting/#crash-report

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

@@ -30,7 +30,7 @@ diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/fe
 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
-@@ -77,7 +77,7 @@ public class CachedFeatureFlags {
+@@ -78,7 +78,7 @@ public class CachedFeatureFlags {
                      .put(ChromeFeatureList.INCOGNITO_REAUTHENTICATION_FOR_ANDROID, false)
                      .put(ChromeFeatureList.INCOGNITO_REAUTHENTICATION_FOR_ANDROID, false)
                      .put(ChromeFeatureList.INSTANCE_SWITCHER, true)
                      .put(ChromeFeatureList.INSTANCE_SWITCHER, true)
                      .put(ChromeFeatureList.INSTANT_START, false)
                      .put(ChromeFeatureList.INSTANT_START, false)

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

@@ -53,7 +53,7 @@ diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/s
 diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/browser/metrics/chrome_browser_sampling_trials.cc
 diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/browser/metrics/chrome_browser_sampling_trials.cc
 --- a/chrome/browser/metrics/chrome_browser_sampling_trials.cc
 --- a/chrome/browser/metrics/chrome_browser_sampling_trials.cc
 +++ b/chrome/browser/metrics/chrome_browser_sampling_trials.cc
 +++ b/chrome/browser/metrics/chrome_browser_sampling_trials.cc
-@@ -51,6 +51,8 @@ void CreateFallbackSamplingTrial(const std::string& trial_name,
+@@ -52,6 +52,8 @@ void CreateFallbackSamplingTrial(const std::string& trial_name,
                                   const std::string& feature_name,
                                   const std::string& feature_name,
                                   const int sampled_in_rate_per_mille,
                                   const int sampled_in_rate_per_mille,
                                   base::FeatureList* feature_list) {
                                   base::FeatureList* feature_list) {
@@ -183,7 +183,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c
 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
-@@ -235,17 +235,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
+@@ -220,17 +220,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() {
@@ -202,8 +202,8 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
 +  return false;
 +  return false;
  }
  }
  
  
- std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
-@@ -599,7 +590,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
+ // Returns the already downloaded first run seed, and clear the seed from the
+@@ -589,7 +580,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,7 +215,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
 --- a/third_party/blink/renderer/core/loader/document_loader.cc
 --- a/third_party/blink/renderer/core/loader/document_loader.cc
 +++ b/third_party/blink/renderer/core/loader/document_loader.cc
 +++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -175,13 +175,6 @@ Vector<OriginTrialFeature> CopyInitiatorOriginTrials(
+@@ -176,13 +176,6 @@ Vector<OriginTrialFeature> CopyInitiatorOriginTrials(
  WebVector<int> CopyInitiatorOriginTrials(
  WebVector<int> CopyInitiatorOriginTrials(
      const Vector<OriginTrialFeature>& initiator_origin_trial_features) {
      const Vector<OriginTrialFeature>& initiator_origin_trial_features) {
    WebVector<int> result;
    WebVector<int> result;

+ 1 - 1
build/patches/Disable-idle-detection.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -438,7 +438,7 @@ const base::Feature kIdentityInCanMakePaymentEventFeature{
+@@ -444,7 +444,7 @@ const base::Feature kIdentityInCanMakePaymentEventFeature{
  // this feature, the experimental web platform features flag should be set,
  // this feature, the experimental web platform features flag should be set,
  // or the site should obtain an Origin Trial token.
  // or the site should obtain an Origin Trial token.
  const base::Feature kIdleDetection{"IdleDetection",
  const base::Feature kIdleDetection{"IdleDetection",

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
 diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
 --- a/components/omnibox/common/omnibox_features.cc
 --- a/components/omnibox/common/omnibox_features.cc
 +++ b/components/omnibox/common/omnibox_features.cc
 +++ b/components/omnibox/common/omnibox_features.cc
-@@ -353,7 +353,7 @@ const base::Feature kSiteSearchStarterPack{"OmniboxSiteSearchStarterPack",
+@@ -367,7 +367,7 @@ const base::Feature kSiteSearchStarterPack{"OmniboxSiteSearchStarterPack",
  // Experiment to introduce new security indicators for HTTPS.
  // Experiment to introduce new security indicators for HTTPS.
  const base::Feature kUpdatedConnectionSecurityIndicators{
  const base::Feature kUpdatedConnectionSecurityIndicators{
      "OmniboxUpdatedConnectionSecurityIndicators",
      "OmniboxUpdatedConnectionSecurityIndicators",

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

@@ -66,7 +66,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
-@@ -414,7 +414,7 @@ void ProfileImpl::RegisterProfilePrefs(
+@@ -419,7 +419,7 @@ void ProfileImpl::RegisterProfilePrefs(
  #endif
  #endif
  
  
    registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
    registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 181 - 117
build/patches/Disable-safe-browsing.patch


+ 6 - 6
build/patches/Disable-safety-check.patch

@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -415,7 +415,6 @@ android_library("chrome_java") {
+@@ -416,7 +416,6 @@ android_library("chrome_java") {
      "//chrome/browser/privacy_sandbox/android:java",
      "//chrome/browser/privacy_sandbox/android:java",
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/safe_browsing/android:java",
      "//chrome/browser/safe_browsing/android:java",
@@ -21,16 +21,16 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/search_resumption:java",
      "//chrome/browser/search_resumption:java",
      "//chrome/browser/segmentation_platform:factory_java",
      "//chrome/browser/segmentation_platform:factory_java",
-@@ -1041,8 +1040,6 @@ robolectric_binary("chrome_junit_tests") {
-     "//chrome/browser/preferences:preferences_junit_tests",
+@@ -1049,8 +1048,6 @@ robolectric_binary("chrome_junit_tests") {
      "//chrome/browser/privacy_guide/android:java",
      "//chrome/browser/privacy_guide/android:java",
+     "//chrome/browser/privacy_guide/android:junit",
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/profiles/android:java",
 -    "//chrome/browser/safety_check/android:java",
 -    "//chrome/browser/safety_check/android:java",
 -    "//chrome/browser/safety_check/android:junit",
 -    "//chrome/browser/safety_check/android:junit",
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/search_resumption:junit",
      "//chrome/browser/search_resumption:junit",
      "//chrome/browser/segmentation_platform:factory_java",
      "//chrome/browser/segmentation_platform:factory_java",
-@@ -1570,8 +1567,6 @@ android_library("chrome_test_java") {
+@@ -1583,8 +1580,6 @@ android_library("chrome_test_java") {
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/safe_browsing/android:java",
      "//chrome/browser/safe_browsing/android:java",
      "//chrome/browser/safe_browsing/android:javatests",
      "//chrome/browser/safe_browsing/android:javatests",
@@ -42,7 +42,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 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
-@@ -941,7 +941,6 @@ chrome_java_sources = [
+@@ -944,7 +944,6 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",
@@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn
 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
-@@ -3306,7 +3306,6 @@ static_library("browser") {
+@@ -3333,7 +3333,6 @@ static_library("browser") {
        "//chrome/browser/privacy_sandbox/android:jni_headers",
        "//chrome/browser/privacy_sandbox/android:jni_headers",
        "//chrome/browser/reading_list/android",
        "//chrome/browser/reading_list/android",
        "//chrome/browser/safe_browsing/android:safe_browsing_enums",
        "//chrome/browser/safe_browsing/android:safe_browsing_enums",

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

@@ -42,7 +42,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
-@@ -189,6 +189,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -190,6 +190,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &kCCTBrandTransparency,
      &kCCTBrandTransparency,
      &kCCTClientDataHeader,
      &kCCTClientDataHeader,
      &kCCTIncognito,
      &kCCTIncognito,
@@ -50,7 +50,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
      &kCCTIncognitoAvailableToThirdParty,
      &kCCTIncognitoAvailableToThirdParty,
      &kCCTNewDownloadTab,
      &kCCTNewDownloadTab,
      &kCCTPackageNameRecording,
      &kCCTPackageNameRecording,
-@@ -590,6 +591,9 @@ const base::Feature kChromeSharingHubLaunchAdjacent{
+@@ -605,6 +606,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};
  
  
@@ -63,7 +63,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
 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
 --- a/chrome/browser/flags/android/chrome_feature_list.h
 +++ b/chrome/browser/flags/android/chrome_feature_list.h
 +++ b/chrome/browser/flags/android/chrome_feature_list.h
-@@ -61,6 +61,7 @@ extern const base::Feature kCacheDeprecatedSystemLocationSetting;
+@@ -62,6 +62,7 @@ extern const base::Feature kCacheDeprecatedSystemLocationSetting;
  extern const base::Feature kChromeNewDownloadTab;
  extern const base::Feature kChromeNewDownloadTab;
  extern const base::Feature kChromeShareLongScreenshot;
  extern const base::Feature kChromeShareLongScreenshot;
  extern const base::Feature kChromeShareScreenshot;
  extern const base::Feature kChromeShareScreenshot;
@@ -97,7 +97,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
-@@ -2705,6 +2705,21 @@
+@@ -2834,6 +2834,21 @@
              ]
              ]
          }
          }
      ],
      ],
@@ -116,7 +116,7 @@ diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variati
 +            ]
 +            ]
 +        }
 +        }
 +    ],
 +    ],
-     "ChromeStart": [
+     "CommerceHintAndroid": [
          {
          {
              "platforms": [
              "platforms": [
 --
 --

+ 3 - 6
build/patches/Disable-some-signed-exchange-features.patch

@@ -10,23 +10,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -883,7 +883,7 @@ const base::Feature kSharedArrayBufferOnDesktop{
+@@ -896,12 +896,12 @@ const base::Feature kSharedArrayBufferOnDesktop{
  // Signed Exchange Reporting for distributors
  // Signed Exchange Reporting for distributors
  // https://www.chromestatus.com/feature/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
- // https://www.chromestatus.com/feature/5126805474246656
-@@ -893,7 +893,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
  // Origin-Signed HTTP Exchanges (for WebPackage Loading)
  // Origin-Signed HTTP Exchanges (for WebPackage Loading)
  // https://www.chromestatus.com/feature/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.
- const base::Feature kSignedHTTPExchangePingValidity{
+ // Delays RenderProcessHost shutdown by a few seconds to allow the subframe's
+ // process to be potentially reused. This aims to reduce process churn in
 --
 --
 2.25.1
 2.25.1

+ 40 - 24
build/patches/Disable-text-fragments-by-default.patch

@@ -12,16 +12,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  chrome/browser/flag_descriptions.cc                          | 4 ++++
  chrome/browser/flag_descriptions.cc                          | 4 ++++
  chrome/browser/flag_descriptions.h                           | 3 +++
  chrome/browser/flag_descriptions.h                           | 3 +++
  chrome/browser/ui/prefs/prefs_tab_helper.cc                  | 2 +-
  chrome/browser/ui/prefs/prefs_tab_helper.cc                  | 2 +-
- content/child/runtime_features.cc                            | 2 +-
- third_party/blink/common/features.cc                         | 2 +-
+ content/child/runtime_features.cc                            | 1 +
+ third_party/blink/common/features.cc                         | 4 ++++
+ third_party/blink/public/common/features.h                   | 1 +
  third_party/blink/renderer/core/dom/document.cc              | 5 +++++
  third_party/blink/renderer/core/dom/document.cc              | 5 +++++
- .../blink/renderer/platform/runtime_enabled_features.json5   | 3 +--
- 9 files changed, 26 insertions(+), 5 deletions(-)
+ .../blink/renderer/platform/runtime_enabled_features.json5   | 5 ++---
+ 10 files changed, 31 insertions(+), 4 deletions(-)
 
 
 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
-@@ -5959,6 +5959,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6080,6 +6080,11 @@ const FeatureEntry kFeatureEntries[] = {
           "")},
           "")},
  #endif
  #endif
  
  
@@ -36,7 +37,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
-@@ -2646,6 +2646,11 @@
+@@ -2699,6 +2699,11 @@
      "owners": [ "alionadangla", "bwwilliams", "bling-flags@google.com"],
      "owners": [ "alionadangla", "bwwilliams", "bling-flags@google.com"],
      "expiry_milestone": 105
      "expiry_milestone": 105
    },
    },
@@ -51,7 +52,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
 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
-@@ -1373,6 +1373,10 @@ const char kEnableRestrictedWebApisDescription[] =
+@@ -1387,6 +1387,10 @@ const char kEnableRestrictedWebApisDescription[] =
      "Enable the restricted web APIs for dev trial. This will be replaced with "
      "Enable the restricted web APIs for dev trial. This will be replaced with "
      "permission policies to control the capabilities afterwards.";
      "permission policies to control the capabilities afterwards.";
  
  
@@ -65,7 +66,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
-@@ -764,6 +764,9 @@ extern const char
+@@ -767,6 +767,9 @@ extern const char
  extern const char kEnableRestrictedWebApisName[];
  extern const char kEnableRestrictedWebApisName[];
  extern const char kEnableRestrictedWebApisDescription[];
  extern const char kEnableRestrictedWebApisDescription[];
  
  
@@ -90,31 +91,43 @@ 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
-@@ -283,7 +283,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
-     {wf::EnableSpeculationRulesPrefetchProxy,
-      blink::features::kSpeculationRulesPrefetchProxy, kSetOnlyIfOverridden},
+@@ -270,6 +270,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
+      features::kSharedArrayBufferOnDesktop},
+     {wf::EnableSharedAutofill, autofill::features::kAutofillSharedAutofill},
      {wf::EnableSubresourceWebBundles, features::kSubresourceWebBundles},
      {wf::EnableSubresourceWebBundles, features::kSubresourceWebBundles},
--    {wf::EnableTextFragmentAnchor, blink::features::kTextFragmentAnchor},
-+    {wf::EnableTextFragmentAnchor, blink::features::kTextFragmentAnchor}, // will set the TextFragmentIdentifiers runtime feature
++    {wf::EnableTextFragmentIdentifiers, blink::features::kTextFragmentAnchor},
      {wf::EnableTouchDragAndContextMenu, features::kTouchDragAndContextMenu},
      {wf::EnableTouchDragAndContextMenu, features::kTouchDragAndContextMenu},
-     {wf::EnableCSSSelectorFragmentAnchor,
-      blink::features::kCssSelectorFragmentAnchor},
+     {wf::EnableUserActivationSameOriginVisibility,
+      features::kUserActivationSameOriginVisibility},
 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
-@@ -521,7 +521,7 @@ const base::Feature kStopInBackground {
+@@ -449,6 +449,10 @@ const base::Feature kStopInBackground {
+ const base::Feature kDropInputEventsBeforeFirstPaint{
+     "DropInputEventsBeforeFirstPaint", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
- // Enable text snippets in URL fragments. https://crbug.com/919204.
- const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
--                                        base::FEATURE_ENABLED_BY_DEFAULT};
++// Enable text snippets in URL fragments. https://crbug.com/919204.
++const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
 +                                        base::FEATURE_DISABLED_BY_DEFAULT};
 +                                        base::FEATURE_DISABLED_BY_DEFAULT};
- 
- // Enables CSS selector fragment anchors. https://crbug.com/1252460
- const base::Feature kCssSelectorFragmentAnchor{
++
+ // File handling icons. https://crbug.com/1218213
+ const base::Feature kFileHandlingIcons{"FileHandlingIcons",
+                                        base::FEATURE_DISABLED_BY_DEFAULT};
+diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
+--- a/third_party/blink/public/common/features.h
++++ b/third_party/blink/public/common/features.h
+@@ -224,6 +224,7 @@ BLINK_COMMON_EXPORT extern const base::Feature kResourceLoadViaDataPipe;
+ BLINK_COMMON_EXPORT extern const base::Feature kServiceWorkerUpdateDelay;
+ BLINK_COMMON_EXPORT extern const base::Feature kStopInBackground;
+ BLINK_COMMON_EXPORT extern const base::Feature kDropInputEventsBeforeFirstPaint;
++BLINK_COMMON_EXPORT extern const base::Feature kTextFragmentAnchor;
+ BLINK_COMMON_EXPORT extern const base::Feature kFileHandlingIcons;
+ BLINK_COMMON_EXPORT extern const base::Feature kAllowSyncXHRInPageDismissal;
+ BLINK_COMMON_EXPORT extern const base::Feature kPrefetchPrivacyChanges;
 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
-@@ -4241,9 +4241,14 @@ void Document::SetURL(const KURL& url) {
+@@ -4257,9 +4257,14 @@ void Document::SetURL(const KURL& url) {
    TRACE_EVENT1("navigation", "Document::SetURL", "url",
    TRACE_EVENT1("navigation", "Document::SetURL", "url",
                 new_url.GetString().Utf8());
                 new_url.GetString().Utf8());
  
  
@@ -132,12 +145,15 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
 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
-@@ -2243,8 +2243,7 @@
+@@ -2545,10 +2545,9 @@
      },
      },
      {
      {
        name: "TextFragmentIdentifiers",
        name: "TextFragmentIdentifiers",
 -      origin_trial_feature_name: "TextFragmentIdentifiers",
 -      origin_trial_feature_name: "TextFragmentIdentifiers",
+       public: true,
 -      status: "stable",
 -      status: "stable",
+-      base_feature: "TextFragmentAnchor",
++      status: "test",
 +      origin_trial_feature_name: "TextFragmentIdentifiers"
 +      origin_trial_feature_name: "TextFragmentIdentifiers"
      },
      },
      {
      {

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

@@ -60,7 +60,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
-@@ -7289,7 +7289,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() {
+@@ -7323,7 +7323,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());
@@ -71,7 +71,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
-@@ -476,10 +476,6 @@ void FillNavigationParamsRequest(
+@@ -474,10 +474,6 @@ void FillNavigationParamsRequest(
          common_params.initiator_origin.value();
          common_params.initiator_origin.value();
    }
    }
  
  
@@ -82,7 +82,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;
-@@ -512,12 +508,6 @@ void FillNavigationParamsRequest(
+@@ -510,12 +506,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;
  
  
@@ -95,7 +95,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) {
-@@ -564,11 +554,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
+@@ -562,11 +552,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);
  
  
@@ -107,7 +107,7 @@ 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(),
-@@ -586,7 +571,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
+@@ -584,7 +569,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,
@@ -159,7 +159,7 @@ diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/t
 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
 --- a/third_party/blink/renderer/core/loader/document_loader.cc
 --- a/third_party/blink/renderer/core/loader/document_loader.cc
 +++ b/third_party/blink/renderer/core/loader/document_loader.cc
 +++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -162,13 +162,6 @@ constexpr base::FeatureParam<bool> kCacheInlineScriptCodeFixConfiguring{
+@@ -163,13 +163,6 @@ constexpr base::FeatureParam<bool> kCacheInlineScriptCodeFixConfiguring{
  Vector<OriginTrialFeature> CopyInitiatorOriginTrials(
  Vector<OriginTrialFeature> CopyInitiatorOriginTrials(
      const WebVector<int>& initiator_origin_trial_features) {
      const WebVector<int>& initiator_origin_trial_features) {
    Vector<OriginTrialFeature> result;
    Vector<OriginTrialFeature> result;
@@ -173,7 +173,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
    return result;
    return result;
  }
  }
  
  
-@@ -181,18 +174,12 @@ WebVector<int> CopyInitiatorOriginTrials(
+@@ -182,18 +175,12 @@ WebVector<int> CopyInitiatorOriginTrials(
  Vector<String> CopyForceEnabledOriginTrials(
  Vector<String> CopyForceEnabledOriginTrials(
      const WebVector<WebString>& force_enabled_origin_trials) {
      const WebVector<WebString>& force_enabled_origin_trials) {
    Vector<String> result;
    Vector<String> result;
@@ -192,7 +192,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
    return result;
    return result;
  }
  }
  
  
-@@ -2577,10 +2564,6 @@ void DocumentLoader::CreateParserPostCommit() {
+@@ -2580,10 +2567,6 @@ void DocumentLoader::CreateParserPostCommit() {
            OriginTrialFeature::kTouchEventFeatureDetection);
            OriginTrialFeature::kTouchEventFeatureDetection);
      }
      }
  
  

+ 1 - 1
build/patches/Disable-update-scheduler.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
 diff --git a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
 --- a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
 --- a/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
 +++ b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
 +++ b/components/component_updater/android/java/src/org/chromium/components/component_updater/UpdateScheduler.java
-@@ -34,9 +34,7 @@ public class UpdateScheduler {
+@@ -33,9 +33,7 @@ public class UpdateScheduler {
  
  
      @CalledByNative
      @CalledByNative
      /* package */ static boolean isAvailable() {
      /* package */ static boolean isAvailable() {

+ 4 - 4
build/patches/Disable-various-metrics.patch

@@ -89,7 +89,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
 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
-@@ -998,7 +998,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
+@@ -991,7 +991,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,
@@ -101,7 +101,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
 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
-@@ -63,7 +63,6 @@
+@@ -64,7 +64,6 @@
  #include "chrome/browser/hid/chrome_hid_delegate.h"
  #include "chrome/browser/hid/chrome_hid_delegate.h"
  #include "chrome/browser/interstitials/enterprise_util.h"
  #include "chrome/browser/interstitials/enterprise_util.h"
  #include "chrome/browser/lifetime/browser_shutdown.h"
  #include "chrome/browser/lifetime/browser_shutdown.h"
@@ -109,7 +109,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #include "chrome/browser/media/audio_service_util.h"
  #include "chrome/browser/media/audio_service_util.h"
  #include "chrome/browser/media/router/media_router_feature.h"
  #include "chrome/browser/media/router/media_router_feature.h"
  #include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
  #include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
-@@ -4394,16 +4393,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4479,16 +4478,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
      content::NavigationHandle* handle) {
      content::NavigationHandle* handle) {
    std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
    std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
  
  
@@ -126,7 +126,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
  #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
    MaybeAddThrottle(
    MaybeAddThrottle(
        SupervisedUserNavigationThrottle::MaybeCreateThrottleFor(handle),
        SupervisedUserNavigationThrottle::MaybeCreateThrottleFor(handle),
-@@ -4488,10 +4477,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4573,10 +4562,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
      throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles);
      throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles);
    }
    }
  
  

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -1286,8 +1286,6 @@ static_library("ui") {
+@@ -1295,8 +1295,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",

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

@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
-@@ -96,7 +96,6 @@ import org.chromium.chrome.browser.share.ShareButtonController;
+@@ -97,7 +97,6 @@ import org.chromium.chrome.browser.share.ShareButtonController;
  import org.chromium.chrome.browser.share.ShareDelegate;
  import org.chromium.chrome.browser.share.ShareDelegate;
  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;
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
  import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager;
  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;
-@@ -493,10 +492,6 @@ public class RootUiCoordinator
+@@ -496,10 +495,6 @@ public class RootUiCoordinator
      }
      }
  
  
      public void onAttachFragment(Fragment fragment) {
      public void onAttachFragment(Fragment fragment) {

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -459,9 +459,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
+@@ -465,9 +465,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
  }
  }
  
  
  bool Extension::ShouldExposeViaManagementAPI() const {
  bool Extension::ShouldExposeViaManagementAPI() const {

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

@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/base/BUILD.gn b/base/BUILD.gn
 diff --git a/base/BUILD.gn b/base/BUILD.gn
 --- a/base/BUILD.gn
 --- a/base/BUILD.gn
 +++ b/base/BUILD.gn
 +++ b/base/BUILD.gn
-@@ -1543,7 +1543,7 @@ mixed_component("base") {
+@@ -1559,7 +1559,7 @@ mixed_component("base") {
    # more robust check for this.
    # more robust check for this.
    if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
    if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) &&
        host_toolchain != "//build/toolchain/cros:host") {
        host_toolchain != "//build/toolchain/cros:host") {

+ 1 - 1
build/patches/DoH-improvements.patch

@@ -82,7 +82,7 @@ diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
 diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
 diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
 --- a/net/dns/host_resolver_manager.cc
 --- a/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
 +++ b/net/dns/host_resolver_manager.cc
-@@ -3283,6 +3283,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
+@@ -3293,6 +3293,7 @@ void HostResolverManager::SetDnsConfigOverrides(DnsConfigOverrides overrides) {
    bool changed = dns_client_->SetConfigOverrides(std::move(overrides));
    bool changed = dns_client_->SetConfigOverrides(std::move(overrides));
  
  
    if (changed) {
    if (changed) {

+ 23 - 18
build/patches/Enable-Certificate-Transparency.patch

@@ -3,6 +3,8 @@ Date: Fri, 10 Jun 2022 14:20:02 +0200
 Subject: Enable Certificate Transparency
 Subject: Enable Certificate Transparency
 
 
 Reporting/auditing functionalities are disabled; a flag is exposed.
 Reporting/auditing functionalities are disabled; a flag is exposed.
+Add guard to make sure that certificate transparency stays enabled
+by default.
 
 
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
@@ -13,16 +15,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  chrome/browser/net/system_network_context_manager.cc  | 4 ----
  chrome/browser/net/system_network_context_manager.cc  | 4 ----
  chrome/browser/ssl/sct_reporting_service.cc           | 5 +++++
  chrome/browser/ssl/sct_reporting_service.cc           | 5 +++++
  chrome/common/chrome_features.cc                      | 6 +++---
  chrome/common/chrome_features.cc                      | 6 +++---
- net/http/transport_security_state.cc                  | 5 +++--
+ net/http/transport_security_state.cc                  | 9 +++++----
  net/url_request/report_sender.cc                      | 3 ++-
  net/url_request/report_sender.cc                      | 3 ++-
  services/network/network_context.cc                   | 2 +-
  services/network/network_context.cc                   | 2 +-
  services/network/sct_auditing/sct_auditing_handler.cc | 2 ++
  services/network/sct_auditing/sct_auditing_handler.cc | 2 ++
- 11 files changed, 29 insertions(+), 12 deletions(-)
+ 11 files changed, 31 insertions(+), 14 deletions(-)
 
 
 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
-@@ -8658,6 +8658,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -8848,6 +8848,11 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kWebMidiDescription, kOsAll,
       flag_descriptions::kWebMidiDescription, kOsAll,
       FEATURE_VALUE_TYPE(features::kWebMidi)},
       FEATURE_VALUE_TYPE(features::kWebMidi)},
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)
@@ -49,7 +51,7 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature
 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
-@@ -6504,6 +6504,10 @@ const char kAutofillCreditCardUploadDescription[] =
+@@ -6652,6 +6652,10 @@ const char kAutofillCreditCardUploadDescription[] =
  #endif  // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
  #endif  // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
  
  
  #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
@@ -63,7 +65,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
-@@ -3767,6 +3767,9 @@ extern const char kAutofillCreditCardUploadDescription[];
+@@ -3848,6 +3848,9 @@ extern const char kAutofillCreditCardUploadDescription[];
  #endif  // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
  #endif  // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
  
  
  #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)
@@ -76,7 +78,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 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
-@@ -914,7 +914,6 @@ void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
+@@ -851,7 +851,6 @@ void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
  bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() {
  bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() {
    if (certificate_transparency_enabled_for_testing_.has_value())
    if (certificate_transparency_enabled_for_testing_.has_value())
      return certificate_transparency_enabled_for_testing_.value();
      return certificate_transparency_enabled_for_testing_.value();
@@ -84,7 +86,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
  // TODO(carlosil): Figure out if we can/should remove the OFFICIAL_BUILD and
  // TODO(carlosil): Figure out if we can/should remove the OFFICIAL_BUILD and
  // GOOGLE_CHROME_BRANDING checks now that enforcement does not rely on build
  // GOOGLE_CHROME_BRANDING checks now that enforcement does not rely on build
  // dates, and allow embedders to enforce.
  // dates, and allow embedders to enforce.
-@@ -928,9 +927,6 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() {
+@@ -865,9 +864,6 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() {
  #else
  #else
    return true;
    return true;
  #endif  // BUILDFLAG(IS_ANDROID)
  #endif  // BUILDFLAG(IS_ANDROID)
@@ -112,7 +114,7 @@ diff --git a/chrome/browser/ssl/sct_reporting_service.cc b/chrome/browser/ssl/sc
 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
-@@ -822,9 +822,9 @@ const base::Feature kSchedulerConfiguration{"SchedulerConfiguration",
+@@ -838,9 +838,9 @@ const base::Feature kSchedulerConfiguration{"SchedulerConfiguration",
  
  
  // Controls whether SCT audit reports are queued and the rate at which they
  // Controls whether SCT audit reports are queued and the rate at which they
  // should be sampled. Default sampling rate is 1/10,000 certificates.
  // should be sampled. Default sampling rate is 1/10,000 certificates.
@@ -136,24 +138,27 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
    if (g_hsts_source == nullptr)
    if (g_hsts_source == nullptr)
      return false;
      return false;
  #endif
  #endif
-@@ -383,11 +384,11 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
+@@ -382,12 +383,12 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
+ }  // namespace
  
  
  // static
  // static
- const base::Feature TransportSecurityState::kDynamicExpectCTFeature{
--    "DynamicExpectCT", base::FEATURE_ENABLED_BY_DEFAULT};
-+    "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT};                         // disabled in Bromite
+-const base::Feature TransportSecurityState::kDynamicExpectCTFeature{
+-    "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT};
++const base::Feature TransportSecurityState::kDynamicExpectCTFeature{   // must stay disabled
++    "DynamicExpectCT", base::FEATURE_DISABLED_BY_DEFAULT};             // in Bromite
  
  
  // static
  // static
- const base::Feature TransportSecurityState::kCertificateTransparencyEnforcement{
+-const base::Feature TransportSecurityState::kCertificateTransparencyEnforcement{
 -    "CertificateTransparencyEnforcement", base::FEATURE_ENABLED_BY_DEFAULT};
 -    "CertificateTransparencyEnforcement", base::FEATURE_ENABLED_BY_DEFAULT};
-+    "CertificateTransparencyEnforcement", base::FEATURE_ENABLED_BY_DEFAULT};       // always enabled in Bromite
++const base::Feature TransportSecurityState::kCertificateTransparencyEnforcement{   // must stay enabled
++    "CertificateTransparencyEnforcement", base::FEATURE_ENABLED_BY_DEFAULT};       // in Bromite
  
  
  void SetTransportSecurityStateSourceForTesting(
  void SetTransportSecurityStateSourceForTesting(
      const TransportSecurityStateSource* source) {
      const TransportSecurityStateSource* source) {
 diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc
 diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc
 --- a/net/url_request/report_sender.cc
 --- a/net/url_request/report_sender.cc
 +++ b/net/url_request/report_sender.cc
 +++ b/net/url_request/report_sender.cc
-@@ -86,7 +86,8 @@ void ReportSender::Send(const GURL& report_uri,
+@@ -87,7 +87,8 @@ void ReportSender::Send(
  
  
    URLRequest* raw_url_request = url_request.get();
    URLRequest* raw_url_request = url_request.get();
    inflight_requests_[raw_url_request] = std::move(url_request);
    inflight_requests_[raw_url_request] = std::move(url_request);
@@ -166,7 +171,7 @@ diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc
 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
-@@ -2658,7 +2658,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -2662,7 +2662,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
    // TransportSecurityState.  Since no requests have been made yet, safe to do
    // TransportSecurityState.  Since no requests have been made yet, safe to do
    // this even after the call to Build().
    // this even after the call to Build().
  
  
@@ -178,7 +183,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
 diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/network/sct_auditing/sct_auditing_handler.cc
 diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/network/sct_auditing/sct_auditing_handler.cc
 --- a/services/network/sct_auditing/sct_auditing_handler.cc
 --- a/services/network/sct_auditing/sct_auditing_handler.cc
 +++ b/services/network/sct_auditing/sct_auditing_handler.cc
 +++ b/services/network/sct_auditing/sct_auditing_handler.cc
-@@ -115,6 +115,7 @@ void SCTAuditingHandler::MaybeEnqueueReport(
+@@ -114,6 +114,7 @@ void SCTAuditingHandler::MaybeEnqueueReport(
    if (mode_ == mojom::SCTAuditingMode::kDisabled) {
    if (mode_ == mojom::SCTAuditingMode::kDisabled) {
      return;
      return;
    }
    }
@@ -186,7 +191,7 @@ diff --git a/services/network/sct_auditing/sct_auditing_handler.cc b/services/ne
  
  
    // Only audit valid SCTs. This ensures that they come from a known log, have
    // Only audit valid SCTs. This ensures that they come from a known log, have
    // a valid signature, and thus are expected to be public certificates. If
    // a valid signature, and thus are expected to be public certificates. If
-@@ -330,6 +331,7 @@ void SCTAuditingHandler::AddReporter(
+@@ -329,6 +330,7 @@ void SCTAuditingHandler::AddReporter(
    if (mode_ == mojom::SCTAuditingMode::kDisabled) {
    if (mode_ == mojom::SCTAuditingMode::kDisabled) {
      return;
      return;
    }
    }

+ 1 - 1
build/patches/Enable-ECH-by-default.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -114,8 +114,8 @@ const base::Feature kDisableTLSResumption{"DisableTLSResumption",
+@@ -116,8 +116,8 @@ const base::Feature kDisableTLSResumption{"DisableTLSResumption",
  const base::Feature kLogTLSResumption{"LogTLSResumption",
  const base::Feature kLogTLSResumption{"LogTLSResumption",
                                        base::FEATURE_DISABLED_BY_DEFAULT};
                                        base::FEATURE_DISABLED_BY_DEFAULT};
  
  

+ 10 - 6
build/patches/Enable-HEVC-by-default.patch

@@ -2,20 +2,24 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
 Date: Tue, 27 Sep 2022 23:39:54 +0200
 Date: Tue, 27 Sep 2022 23:39:54 +0200
 Subject: Enable HEVC by default
 Subject: Enable HEVC by default
 
 
+Add a guard to avoid setting to be disabled upstream.
+
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
- media/base/media_switches.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ media/base/media_switches.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 
 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
-@@ -275,7 +275,7 @@ const base::Feature kPictureInPicture{"PictureInPicture",
+@@ -270,8 +270,8 @@ const base::Feature kPictureInPicture{"PictureInPicture",
+ 
  #if BUILDFLAG(ENABLE_PLATFORM_HEVC)
  #if BUILDFLAG(ENABLE_PLATFORM_HEVC)
  // Enables HEVC hardware accelerated decoding.
  // Enables HEVC hardware accelerated decoding.
- const base::Feature kPlatformHEVCDecoderSupport{
--    "PlatformHEVCDecoderSupport", base::FEATURE_DISABLED_BY_DEFAULT};
-+    "PlatformHEVCDecoderSupport", base::FEATURE_ENABLED_BY_DEFAULT};
+-const base::Feature kPlatformHEVCDecoderSupport{
+-    "PlatformHEVCDecoderSupport", base::FEATURE_ENABLED_BY_DEFAULT};
++const base::Feature kPlatformHEVCDecoderSupport{                       // must be enabled
++    "PlatformHEVCDecoderSupport", base::FEATURE_ENABLED_BY_DEFAULT};   // in Bromite
  #endif  // BUILDFLAG(ENABLE_PLATFORM_HEVC)
  #endif  // BUILDFLAG(ENABLE_PLATFORM_HEVC)
  
  
  // Only decode preload=metadata elements upon visibility.
  // Only decode preload=metadata elements upon visibility.

+ 1 - 1
build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc
 diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc
 --- a/components/external_intents/android/external_intents_features.cc
 --- a/components/external_intents/android/external_intents_features.cc
 +++ b/components/external_intents/android/external_intents_features.cc
 +++ b/components/external_intents/android/external_intents_features.cc
-@@ -34,7 +34,7 @@ const base::Feature kAutofillAssistantGoogleInitiatorOriginCheck{
+@@ -36,7 +36,7 @@ const base::Feature kExternalNavigationDebugLogs{
  
  
  const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
  const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
      "IntentBlockExternalFormRedirectsNoGesture",
      "IntentBlockExternalFormRedirectsNoGesture",

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

@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -873,11 +873,7 @@ const base::Feature kSecurityKeyAttestationPrompt{
+@@ -889,11 +889,7 @@ const base::Feature kSecurityKeyAttestationPrompt{
  // 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",

+ 4 - 4
build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch

@@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -4348,9 +4348,6 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -4445,9 +4445,6 @@ const FeatureEntry kFeatureEntries[] = {
       flag_descriptions::kSiteIsolationForPasswordSitesDescription, kOsAndroid,
       flag_descriptions::kSiteIsolationForPasswordSitesDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(
       FEATURE_VALUE_TYPE(
           site_isolation::features::kSiteIsolationForPasswordSites)},
           site_isolation::features::kSiteIsolationForPasswordSites)},
@@ -31,7 +31,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
-@@ -1364,7 +1364,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
+@@ -1415,7 +1415,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
    registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath());
    registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath());
    registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0);
    registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0);
    registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
    registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
    registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true);
    registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true);
    registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0);
    registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0);
  }
  }
-@@ -1378,7 +1378,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
+@@ -1429,7 +1429,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
    // user policy in addition to the same named ones in Local State (which are
    // user policy in addition to the same named ones in Local State (which are
    // used for mapping the command-line flags).
    // used for mapping the command-line flags).
    registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
    registry->RegisterStringPref(prefs::kIsolateOrigins, std::string());
@@ -71,7 +71,7 @@ diff --git a/components/site_isolation/site_isolation_policy.cc b/components/sit
 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
-@@ -988,7 +988,7 @@ const base::Feature kStopVideoCaptureOnScreenLock{
+@@ -1000,7 +1000,7 @@ const base::Feature kStopVideoCaptureOnScreenLock{
  // Controls whether site isolation should use origins instead of scheme and
  // Controls whether site isolation should use origins instead of scheme and
  // eTLD+1.
  // eTLD+1.
  const base::Feature kStrictOriginIsolation{"StrictOriginIsolation",
  const base::Feature kStrictOriginIsolation{"StrictOriginIsolation",

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

@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -1175,9 +1175,9 @@
+@@ -1225,9 +1225,9 @@
      "expiry_milestone": 110
      "expiry_milestone": 110
    },
    },
    {
    {

+ 124 - 111
build/patches/Enable-native-Android-autofill.patch

@@ -55,7 +55,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
-@@ -477,6 +477,7 @@ android_library("chrome_java") {
+@@ -461,6 +461,7 @@ android_library("chrome_java") {
      "//components/autofill_assistant/android:public_dependencies_java",
      "//components/autofill_assistant/android:public_dependencies_java",
      "//components/autofill_assistant/android:public_java",
      "//components/autofill_assistant/android:public_java",
      "//components/autofill_assistant/browser:proto_java",
      "//components/autofill_assistant/browser:proto_java",
@@ -99,24 +99,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
      private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
      private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
      private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions";
      private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions";
      private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text";
      private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text";
-@@ -119,6 +130,8 @@ public class PasswordSettings extends PreferenceFragmentCompat
-     private String mSearchQuery;
+@@ -120,6 +131,8 @@ public class PasswordSettings extends PreferenceFragmentCompat
      private Preference mLinkPref;
      private Preference mLinkPref;
      private Menu mMenu;
      private Menu mMenu;
+ 
 +    private ChromeSwitchPreference mEnableAndroidAutofillSwitch;
 +    private ChromeSwitchPreference mEnableAndroidAutofillSwitch;
 +    private ChromeSwitchPreference mEnableAndroidAutofillIncognitoSwitch;
 +    private ChromeSwitchPreference mEnableAndroidAutofillIncognitoSwitch;
- 
-     private @Nullable PasswordCheck mPasswordCheck;
      private @ManagePasswordsReferrer int mManagePasswordsReferrer;
      private @ManagePasswordsReferrer int mManagePasswordsReferrer;
-@@ -286,6 +299,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
+ 
+     /**
+@@ -284,6 +297,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
          }
          }
  
  
          createSavePasswordsSwitch();
          createSavePasswordsSwitch();
 +        createEnableAndroidAutofillSwitch();
 +        createEnableAndroidAutofillSwitch();
          createAutoSignInCheckbox();
          createAutoSignInCheckbox();
-         if (mPasswordCheck != null) {
-             createCheckPasswords();
-@@ -525,6 +539,71 @@ public class PasswordSettings extends PreferenceFragmentCompat
+ 
+         if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) {
+@@ -518,6 +532,71 @@ public class PasswordSettings extends PreferenceFragmentCompat
                  getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE));
                  getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE));
      }
      }
  
  
@@ -191,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
 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,17 @@ import org.chromium.ui.base.WindowAndroid;
+@@ -74,6 +74,17 @@ import org.chromium.ui.base.WindowAndroid;
  import org.chromium.ui.util.ColorUtils;
  import org.chromium.ui.util.ColorUtils;
  import org.chromium.url.GURL;
  import org.chromium.url.GURL;
  
  
@@ -209,7 +209,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.
-@@ -212,6 +223,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -211,6 +222,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
      private int mThemeColor;
      private int mThemeColor;
      private boolean mUsedCriticalPersistedTabData;
      private boolean mUsedCriticalPersistedTabData;
  
  
@@ -218,7 +218,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}.
       *
       *
-@@ -759,6 +772,11 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -775,6 +788,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();
  
  
@@ -230,7 +230,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);
-@@ -1340,6 +1358,16 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -1356,6 +1374,16 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
          return tabsPtrArray;
          return tabsPtrArray;
      }
      }
  
  
@@ -247,7 +247,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.
-@@ -1389,6 +1417,27 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -1405,6 +1433,27 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
                              mDelegateFactory.createContextMenuPopulatorFactory(this), this));
                              mDelegateFactory.createContextMenuPopulatorFactory(this), this));
  
  
              mWebContents.notifyRendererPreferenceUpdate();
              mWebContents.notifyRendererPreferenceUpdate();
@@ -275,11 +275,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
              TabHelpers.initWebContentsHelpers(this);
              TabHelpers.initWebContentsHelpers(this);
              notifyContentChanged();
              notifyContentChanged();
          } finally {
          } finally {
-@@ -1721,5 +1770,6 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
+@@ -1742,6 +1791,7 @@ 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);
 +        void initializeAutofillIfNecessary(long nativeTabAndroid);
 +        void initializeAutofillIfNecessary(long nativeTabAndroid);
+         void onShow(long nativeTabAndroid);
      }
      }
  }
  }
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
@@ -314,7 +315,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
-@@ -2456,6 +2456,13 @@ static_library("browser") {
+@@ -2478,6 +2478,13 @@ static_library("browser") {
      deps += [ "//chrome/browser/error_reporting" ]
      deps += [ "//chrome/browser/error_reporting" ]
    }
    }
  
  
@@ -331,7 +332,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
 diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
 --- a/chrome/browser/android/tab_android.cc
 --- a/chrome/browser/android/tab_android.cc
 +++ b/chrome/browser/android/tab_android.cc
 +++ b/chrome/browser/android/tab_android.cc
-@@ -69,6 +69,13 @@
+@@ -70,6 +70,13 @@
  #include "url/android/gurl_android.h"
  #include "url/android/gurl_android.h"
  #include "url/gurl.h"
  #include "url/gurl.h"
  
  
@@ -345,7 +346,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
  using base::android::AttachCurrentThread;
  using base::android::AttachCurrentThread;
  using base::android::ConvertUTF8ToJavaString;
  using base::android::ConvertUTF8ToJavaString;
  using base::android::JavaParamRef;
  using base::android::JavaParamRef;
-@@ -470,3 +477,19 @@ static void JNI_TabImpl_Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
+@@ -505,3 +512,19 @@ static void JNI_TabImpl_Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
    // This will automatically bind to the Java object and pass ownership there.
    // This will automatically bind to the Java object and pass ownership there.
    new TabAndroid(env, obj);
    new TabAndroid(env, obj);
  }
  }
@@ -368,7 +369,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
 diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
 diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
 --- a/chrome/browser/android/tab_android.h
 --- a/chrome/browser/android/tab_android.h
 +++ b/chrome/browser/android/tab_android.h
 +++ b/chrome/browser/android/tab_android.h
-@@ -160,6 +160,8 @@ class TabAndroid : public base::SupportsUserData {
+@@ -162,6 +162,8 @@ class TabAndroid : public base::SupportsUserData {
  
  
    void SetDevToolsAgentHost(scoped_refptr<content::DevToolsAgentHost> host);
    void SetDevToolsAgentHost(scoped_refptr<content::DevToolsAgentHost> host);
  
  
@@ -380,7 +381,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
-@@ -180,7 +180,8 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
+@@ -168,7 +168,8 @@ void TabWebContentsDelegateAndroid::PortalWebContentsCreated(
        base::BindRepeating(
        base::BindRepeating(
            &autofill::BrowserDriverInitHook,
            &autofill::BrowserDriverInitHook,
            autofill::ChromeAutofillClient::FromWebContents(portal_contents),
            autofill::ChromeAutofillClient::FromWebContents(portal_contents),
@@ -409,7 +410,7 @@ 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
-@@ -164,6 +164,9 @@
+@@ -172,6 +172,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 "content/public/common/content_features.h"
@@ -419,7 +420,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
  #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"
-@@ -321,7 +324,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -334,7 +337,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
        base::BindRepeating(
        base::BindRepeating(
            &autofill::BrowserDriverInitHook,
            &autofill::BrowserDriverInitHook,
            autofill::ChromeAutofillClient::FromWebContents(web_contents),
            autofill::ChromeAutofillClient::FromWebContents(web_contents),
@@ -470,112 +471,125 @@ diff --git a/components/android_autofill/browser/android_autofill_manager.h b/co
 diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc
 diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc
 --- a/components/autofill/content/browser/content_autofill_driver.cc
 --- a/components/autofill/content/browser/content_autofill_driver.cc
 +++ b/components/autofill/content/browser/content_autofill_driver.cc
 +++ b/components/autofill/content/browser/content_autofill_driver.cc
-@@ -272,6 +272,8 @@ void ContentAutofillDriver::FormsSeenImpl(
-     const std::vector<FormData>& updated_forms,
-     const std::vector<FormGlobalId>& removed_forms) {
-   autofill_manager_->OnFormsSeen(updated_forms, removed_forms);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnFormsSeen(updated_forms, removed_forms);
+@@ -317,6 +317,8 @@ void ContentAutofillDriver::FormsSeen(
+          const std::vector<FormData>& updated_forms,
+          const std::vector<FormGlobalId>& removed_forms) {
+         target->autofill_manager_->OnFormsSeen(updated_forms, removed_forms);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnFormsSeen(updated_forms, removed_forms);
+       });
  }
  }
  
  
- void ContentAutofillDriver::SetFormToBeProbablySubmittedImpl(
-@@ -294,6 +296,8 @@ void ContentAutofillDriver::FormSubmittedImpl(const FormData& form,
-   }
- 
-   autofill_manager_->OnFormSubmitted(form, known_success, source);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnFormSubmitted(form, known_success, source);
+@@ -343,6 +345,8 @@ void ContentAutofillDriver::FormSubmitted(
+         }
+         target->autofill_manager_->OnFormSubmitted(form, known_success,
+                                                    submission_source);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnFormSubmitted(form, known_success, submission_source);
+       });
  }
  }
  
  
- void ContentAutofillDriver::TextFieldDidChangeImpl(
-@@ -302,6 +306,8 @@ void ContentAutofillDriver::TextFieldDidChangeImpl(
-     const gfx::RectF& bounding_box,
-     base::TimeTicks timestamp) {
-   autofill_manager_->OnTextFieldDidChange(form, field, bounding_box, timestamp);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnTextFieldDidChange(form, field, bounding_box, timestamp);
+@@ -363,6 +367,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form,
+          base::TimeTicks timestamp) {
+         target->autofill_manager_->OnTextFieldDidChange(
+             form, field, bounding_box, timestamp);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnTextFieldDidChange(form, field, bounding_box, timestamp);
+       });
  }
  }
  
  
- void ContentAutofillDriver::TextFieldDidScrollImpl(
-@@ -309,6 +315,8 @@ void ContentAutofillDriver::TextFieldDidScrollImpl(
-     const FormFieldData& field,
-     const gfx::RectF& bounding_box) {
-   autofill_manager_->OnTextFieldDidScroll(form, field, bounding_box);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnTextFieldDidScroll(form, field, bounding_box);
+@@ -381,6 +387,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form,
+          const FormFieldData& field, const gfx::RectF& bounding_box) {
+         target->autofill_manager_->OnTextFieldDidScroll(form, field,
+                                                         bounding_box);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnTextFieldDidScroll(form, field, bounding_box);
+       });
  }
  }
  
  
- void ContentAutofillDriver::SelectControlDidChangeImpl(
-@@ -316,6 +324,8 @@ void ContentAutofillDriver::SelectControlDidChangeImpl(
-     const FormFieldData& field,
-     const gfx::RectF& bounding_box) {
-   autofill_manager_->OnSelectControlDidChange(form, field, bounding_box);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnSelectControlDidChange(form, field, bounding_box);
+@@ -400,6 +408,8 @@ void ContentAutofillDriver::SelectControlDidChange(
+          const FormFieldData& field, const gfx::RectF& bounding_box) {
+         target->autofill_manager_->OnSelectControlDidChange(form, field,
+                                                             bounding_box);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnSelectControlDidChange(form, field, bounding_box);
+       });
  }
  }
  
  
- void ContentAutofillDriver::AskForValuesToFillImpl(
-@@ -328,15 +338,23 @@ void ContentAutofillDriver::AskForValuesToFillImpl(
-   autofill_manager_->OnAskForValuesToFill(form, field, bounding_box, query_id,
-                                           autoselect_first_suggestion,
-                                           touch_to_fill_eligible);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnAskForValuesToFill(form, field, bounding_box, query_id,
-+                                          autoselect_first_suggestion,
-+                                          touch_to_fill_eligible);
+@@ -426,6 +436,10 @@ void ContentAutofillDriver::AskForValuesToFill(
+         target->autofill_manager_->OnAskForValuesToFill(
+             form, field, bounding_box, query_id, autoselect_first_suggestion,
+             form_element_was_clicked);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnAskForValuesToFill(form, field, bounding_box, query_id,
++                                                autoselect_first_suggestion,
++                                                form_element_was_clicked);
+       });
  }
  }
  
  
- void ContentAutofillDriver::HidePopupImpl() {
-   DCHECK(!IsPrerendering()) << "We should never affect UI while prerendering";
-   autofill_manager_->OnHidePopup();
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnHidePopup();
+@@ -436,12 +450,16 @@ void ContentAutofillDriver::HidePopup() {
+     DCHECK(!target->IsPrerendering())
+         << "We should never affect UI while prerendering";
+     target->autofill_manager_->OnHidePopup();
++    if (target->secondary_autofill_manager_)
++      target->secondary_autofill_manager_->OnHidePopup();
+   });
  }
  }
  
  
- void ContentAutofillDriver::FocusNoLongerOnFormImpl(bool had_interacted_form) {
+ void ContentAutofillDriver::FocusNoLongerOnFormCallback(
+     bool had_interacted_form) {
    autofill_manager_->OnFocusNoLongerOnForm(had_interacted_form);
    autofill_manager_->OnFocusNoLongerOnForm(had_interacted_form);
 +  if (secondary_autofill_manager_)
 +  if (secondary_autofill_manager_)
 +    secondary_autofill_manager_->OnFocusNoLongerOnForm(had_interacted_form);
 +    secondary_autofill_manager_->OnFocusNoLongerOnForm(had_interacted_form);
  }
  }
  
  
- void ContentAutofillDriver::FocusOnFormFieldImpl(
-@@ -344,25 +362,35 @@ void ContentAutofillDriver::FocusOnFormFieldImpl(
-     const FormFieldData& field,
-     const gfx::RectF& bounding_box) {
-   autofill_manager_->OnFocusOnFormField(form, field, bounding_box);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnFocusOnFormField(form, field, bounding_box);
+ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) {
+@@ -469,6 +487,8 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form,
+          const FormFieldData& field, const gfx::RectF& bounding_box) {
+         target->autofill_manager_->OnFocusOnFormField(form, field,
+                                                       bounding_box);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnFocusOnFormField(form, field, bounding_box);
+       });
  }
  }
  
  
- void ContentAutofillDriver::DidFillAutofillFormDataImpl(
-     const FormData& form,
-     base::TimeTicks timestamp) {
-   autofill_manager_->OnDidFillAutofillFormData(form, timestamp);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnDidFillAutofillFormData(form, timestamp);
+@@ -481,6 +501,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form,
+       [](ContentAutofillDriver* target, const FormData& form,
+          base::TimeTicks timestamp) {
+         target->autofill_manager_->OnDidFillAutofillFormData(form, timestamp);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnDidFillAutofillFormData(form, timestamp);
+       });
  }
  }
  
  
- void ContentAutofillDriver::DidPreviewAutofillFormDataImpl() {
-   autofill_manager_->OnDidPreviewAutofillFormData();
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnDidPreviewAutofillFormData();
+@@ -490,6 +512,8 @@ void ContentAutofillDriver::DidPreviewAutofillFormData() {
+   autofill_router().DidPreviewAutofillFormData(
+       this, [](ContentAutofillDriver* target) {
+         target->autofill_manager_->OnDidPreviewAutofillFormData();
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnDidPreviewAutofillFormData();
+       });
  }
  }
  
  
- void ContentAutofillDriver::DidEndTextFieldEditingImpl() {
-   autofill_manager_->OnDidEndTextFieldEditing();
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnDidEndTextFieldEditing();
+@@ -499,6 +523,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() {
+   autofill_router().DidEndTextFieldEditing(
+       this, [](ContentAutofillDriver* target) {
+         target->autofill_manager_->OnDidEndTextFieldEditing();
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnDidEndTextFieldEditing();
+       });
  }
  }
  
  
- void ContentAutofillDriver::SelectFieldOptionsDidChangeImpl(
-     const FormData& form) {
-   autofill_manager_->OnSelectFieldOptionsDidChange(form);
-+  if (secondary_autofill_manager_)
-+    secondary_autofill_manager_->OnSelectFieldOptionsDidChange(form);
+@@ -510,6 +536,8 @@ void ContentAutofillDriver::SelectFieldOptionsDidChange(
+       this, GetFormWithFrameAndFormMetaData(raw_form),
+       [](ContentAutofillDriver* target, const FormData& form) {
+         target->autofill_manager_->OnSelectFieldOptionsDidChange(form);
++        if (target->secondary_autofill_manager_)
++          target->secondary_autofill_manager_->OnSelectFieldOptionsDidChange(form);
+       });
  }
  }
  
  
- void ContentAutofillDriver::JavaScriptChangedAutofilledValueImpl(
-@@ -608,6 +636,8 @@ void ContentAutofillDriver::DidNavigateFrame(
+@@ -597,6 +625,8 @@ void ContentAutofillDriver::DidNavigateFrame(
    if (autofill_router_)  // Can be nullptr only in tests.
    if (autofill_router_)  // Can be nullptr only in tests.
      autofill_router_->UnregisterDriver(this);
      autofill_router_->UnregisterDriver(this);
    autofill_manager_->Reset();
    autofill_manager_->Reset();
@@ -587,7 +601,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
 diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h
 diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h
 --- a/components/autofill/content/browser/content_autofill_driver.h
 --- a/components/autofill/content/browser/content_autofill_driver.h
 +++ b/components/autofill/content/browser/content_autofill_driver.h
 +++ b/components/autofill/content/browser/content_autofill_driver.h
-@@ -122,11 +122,14 @@ class ContentAutofillDriver : public AutofillDriver,
+@@ -132,10 +132,13 @@ class ContentAutofillDriver : public AutofillDriver,
    ContentAutofillDriver& operator=(const ContentAutofillDriver&) = delete;
    ContentAutofillDriver& operator=(const ContentAutofillDriver&) = delete;
    ~ContentAutofillDriver() override;
    ~ContentAutofillDriver() override;
  
  
@@ -597,23 +611,22 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com
      autofill_manager_ = std::move(autofill_manager);
      autofill_manager_ = std::move(autofill_manager);
 +    secondary_autofill_manager_ = std::move(secondary_autofill_manager);
 +    secondary_autofill_manager_ = std::move(secondary_autofill_manager);
    }
    }
- 
    AutofillManager* autofill_manager() { return autofill_manager_.get(); }
    AutofillManager* autofill_manager() { return autofill_manager_.get(); }
 +  AutofillManager* secondary_autofill_manager() { return secondary_autofill_manager_.get(); }
 +  AutofillManager* secondary_autofill_manager() { return secondary_autofill_manager_.get(); }
  
  
-   void BindPendingReceiver(
-       mojo::PendingAssociatedReceiver<mojom::AutofillDriver> pending_receiver);
-@@ -387,6 +390,10 @@ class ContentAutofillDriver : public AutofillDriver,
+   content::RenderFrameHost* render_frame_host() { return render_frame_host_; }
  
  
-   content::RenderWidgetHost::KeyPressEventCallback key_press_handler_;
+@@ -364,6 +367,10 @@ class ContentAutofillDriver : public AutofillDriver,
+   // code.
+   std::unique_ptr<AutofillManager> autofill_manager_ = nullptr;
  
  
 +  // adds a reference for AndroidAutofillManager, since native autofill works in
 +  // adds a reference for AndroidAutofillManager, since native autofill works in
 +  // conjunction with browser autofill in Bromite
 +  // conjunction with browser autofill in Bromite
 +  std::unique_ptr<AutofillManager> secondary_autofill_manager_ = nullptr;
 +  std::unique_ptr<AutofillManager> secondary_autofill_manager_ = nullptr;
 +
 +
-   mojo::AssociatedReceiver<mojom::AutofillDriver> receiver_{this};
+   content::RenderWidgetHost::KeyPressEventCallback key_press_handler_;
  
  
-   mojo::AssociatedRemote<mojom::AutofillAgent> autofill_agent_;
+   mojo::AssociatedReceiver<mojom::AutofillDriver> receiver_{this};
 diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc
 diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc
 --- a/components/autofill/content/browser/content_autofill_driver_factory.cc
 --- a/components/autofill/content/browser/content_autofill_driver_factory.cc
 +++ b/components/autofill/content/browser/content_autofill_driver_factory.cc
 +++ b/components/autofill/content/browser/content_autofill_driver_factory.cc
@@ -655,7 +668,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
-@@ -783,7 +783,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange(
+@@ -793,7 +793,10 @@ void PasswordAutofillAgent::UpdateStateForTextChange(
  
  
  void PasswordAutofillAgent::TrackAutofilledElement(
  void PasswordAutofillAgent::TrackAutofilledElement(
      const blink::WebFormControlElement& element) {
      const blink::WebFormControlElement& element) {
@@ -670,7 +683,7 @@ diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/c
 diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
 diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
 --- a/components/autofill/core/common/autofill_prefs.cc
 --- a/components/autofill/core/common/autofill_prefs.cc
 +++ b/components/autofill/core/common/autofill_prefs.cc
 +++ b/components/autofill/core/common/autofill_prefs.cc
-@@ -114,6 +114,10 @@ const char kAutofillWalletImportStorageCheckboxState[] =
+@@ -109,6 +109,10 @@ const char kAutofillWalletImportStorageCheckboxState[] =
  const char kAutocompleteLastVersionRetentionPolicy[] =
  const char kAutocompleteLastVersionRetentionPolicy[] =
      "autocomplete.retention_policy_last_version";
      "autocomplete.retention_policy_last_version";
  
  
@@ -681,7 +694,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    // Synced prefs. Used for cross-device choices, e.g., credit card Autofill.
    // Synced prefs. Used for cross-device choices, e.g., credit card Autofill.
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
-@@ -143,6 +147,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -135,6 +139,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
        prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
        prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
  #endif
  #endif
@@ -695,7 +708,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
 diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
 diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
 --- a/components/autofill/core/common/autofill_prefs.h
 --- a/components/autofill/core/common/autofill_prefs.h
 +++ b/components/autofill/core/common/autofill_prefs.h
 +++ b/components/autofill/core/common/autofill_prefs.h
-@@ -47,6 +47,8 @@ extern const char kAutofillUploadEventsLastResetTimestamp[];
+@@ -46,6 +46,8 @@ extern const char kAutofillUploadEventsLastResetTimestamp[];
  extern const char kAutofillWalletImportEnabled[];
  extern const char kAutofillWalletImportEnabled[];
  extern const char kAutofillWalletImportStorageCheckboxState[];
  extern const char kAutofillWalletImportStorageCheckboxState[];
  extern const char kAutocompleteLastVersionRetentionPolicy[];
  extern const char kAutocompleteLastVersionRetentionPolicy[];

+ 2 - 2
build/patches/Enable-network-isolation-features.patch

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -118,14 +118,14 @@ const base::Feature kSplitCacheByIncludeCredentials{
+@@ -120,14 +120,14 @@ const base::Feature kSplitCacheByIncludeCredentials{
      "SplitCacheByIncludeCredentials", base::FEATURE_DISABLED_BY_DEFAULT};
      "SplitCacheByIncludeCredentials", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kSplitCacheByNetworkIsolationKey{
  const base::Feature kSplitCacheByNetworkIsolationKey{
@@ -33,7 +33,7 @@ diff --git a/net/base/features.cc b/net/base/features.cc
  
  
  const base::Feature kForceIsolationInfoFrameOriginToTopLevelFrame{
  const base::Feature kForceIsolationInfoFrameOriginToTopLevelFrame{
      "ForceIsolationInfoFrameOriginToTopLevelFrame",
      "ForceIsolationInfoFrameOriginToTopLevelFrame",
-@@ -133,19 +133,19 @@ const base::Feature kForceIsolationInfoFrameOriginToTopLevelFrame{
+@@ -135,19 +135,19 @@ const base::Feature kForceIsolationInfoFrameOriginToTopLevelFrame{
  
  
  const base::Feature kPartitionHttpServerPropertiesByNetworkIsolationKey{
  const base::Feature kPartitionHttpServerPropertiesByNetworkIsolationKey{
      "PartitionHttpServerPropertiesByNetworkIsolationKey",
      "PartitionHttpServerPropertiesByNetworkIsolationKey",

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

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -566,7 +566,7 @@ const base::Feature kComputePressure{"ComputePressure",
+@@ -460,7 +460,7 @@ const base::Feature kAllowSyncXHRInPageDismissal{
  // 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",

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

@@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -596,6 +596,7 @@ chrome_java_resources = [
+@@ -592,6 +592,7 @@ chrome_java_resources = [
    "java/res/layout/signin_activity.xml",
    "java/res/layout/signin_activity.xml",
    "java/res/layout/status_indicator_container.xml",
    "java/res/layout/status_indicator_container.xml",
    "java/res/layout/suggestions_tile_view_condensed.xml",
    "java/res/layout/suggestions_tile_view_condensed.xml",
@@ -41,7 +41,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
-@@ -963,6 +963,7 @@ chrome_java_sources = [
+@@ -966,6 +966,7 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java",
    "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java",
    "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/sms_fetcher/SmsFetcherMessageHandler.java",
    "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java",
@@ -52,7 +52,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
 diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
 diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
 --- a/chrome/android/java/AndroidManifest.xml
 --- a/chrome/android/java/AndroidManifest.xml
 +++ b/chrome/android/java/AndroidManifest.xml
 +++ b/chrome/android/java/AndroidManifest.xml
-@@ -739,6 +739,24 @@ by a child template that "extends" this file.
+@@ -741,6 +741,24 @@ by a child template that "extends" this file.
              android:process=":browser_restart_process">
              android:process=":browser_restart_process">
          </activity>
          </activity>
  
  
@@ -311,8 +311,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
-@@ -6438,6 +6438,10 @@ const FeatureEntry kFeatureEntries[] = {
- #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+@@ -6572,6 +6572,10 @@ const FeatureEntry kFeatureEntries[] = {
+ #endif  // BUILDFLAG(IS_CHROMEOS)
  
  
  #if BUILDFLAG(IS_ANDROID)
  #if BUILDFLAG(IS_ANDROID)
 +    {"shared-intent-ui", flag_descriptions::kSharedIntentUIName,
 +    {"shared-intent-ui", flag_descriptions::kSharedIntentUIName,
@@ -325,7 +325,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
-@@ -2626,6 +2626,11 @@ const char kIsolateOriginsDescription[] =
+@@ -2661,6 +2661,11 @@ const char kIsolateOriginsDescription[] =
      "Requires dedicated processes for an additional set of origins, "
      "Requires dedicated processes for an additional set of origins, "
      "specified as a comma-separated list.";
      "specified as a comma-separated list.";
  
  
@@ -340,7 +340,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
-@@ -1487,6 +1487,9 @@ extern const char kIsolateOriginsDescription[];
+@@ -1504,6 +1504,9 @@ extern const char kIsolateOriginsDescription[];
  
  
  extern const char kIsolationByDefaultName[];
  extern const char kIsolationByDefaultName[];
  extern const char kIsolationByDefaultDescription[];
  extern const char kIsolationByDefaultDescription[];
@@ -353,15 +353,15 @@ 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
-@@ -272,6 +272,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -273,6 +273,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
      &kRelatedSearchesAlternateUx,
      &kRelatedSearchesAlternateUx,
      &kRelatedSearchesInBar,
      &kRelatedSearchesInBar,
      &kRelatedSearchesSimplifiedUx,
      &kRelatedSearchesSimplifiedUx,
 +    &kSharedIntentUI,
 +    &kSharedIntentUI,
      &kRelatedSearchesUi,
      &kRelatedSearchesUi,
      &kRequestDesktopSiteDefaults,
      &kRequestDesktopSiteDefaults,
-     &kSafeModeForCachedFlags,
-@@ -712,6 +713,9 @@ const base::Feature kNewInstanceFromDraggedLink{
+     &kRequestDesktopSiteDefaultsControl,
+@@ -724,6 +725,9 @@ const base::Feature kNewInstanceFromDraggedLink{
  const base::Feature kNewTabPageTilesTitleWrapAround{
  const base::Feature kNewTabPageTilesTitleWrapAround{
      "NewTabPageTilesTitleWrapAround", base::FEATURE_DISABLED_BY_DEFAULT};
      "NewTabPageTilesTitleWrapAround", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
@@ -374,7 +374,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
 diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
 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
 --- a/chrome/browser/flags/android/chrome_feature_list.h
 +++ b/chrome/browser/flags/android/chrome_feature_list.h
 +++ b/chrome/browser/flags/android/chrome_feature_list.h
-@@ -133,6 +133,7 @@ extern const base::Feature kRequestDesktopSiteDefaults;
+@@ -139,6 +139,7 @@ extern const base::Feature kRequestDesktopSiteDefaultsDowngrade;
  extern const base::Feature kSearchEnginePromoExistingDevice;
  extern const base::Feature kSearchEnginePromoExistingDevice;
  extern const base::Feature kSearchEnginePromoExistingDeviceV2;
  extern const base::Feature kSearchEnginePromoExistingDeviceV2;
  extern const base::Feature kSearchEnginePromoNewDevice;
  extern const base::Feature kSearchEnginePromoNewDevice;
@@ -385,7 +385,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
-@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList {
+@@ -506,6 +506,7 @@ public abstract class ChromeFeatureList {
      public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts";
      public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts";
      public static final String REACHED_CODE_PROFILER = "ReachedCodeProfiler";
      public static final String REACHED_CODE_PROFILER = "ReachedCodeProfiler";
      public static final String READ_LATER = "ReadLater";
      public static final String READ_LATER = "ReadLater";
@@ -396,7 +396,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
-@@ -4846,6 +4846,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4864,6 +4864,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          Copied to your clipboard
          Copied to your clipboard
        </message>
        </message>
  
  

+ 0 - 23
build/patches/Enable-user-agent-freeze-by-default.patch

@@ -1,23 +0,0 @@
-From: csagan5 <32685696+csagan5@users.noreply.github.com>
-Date: Mon, 10 Feb 2020 23:13:13 +0100
-Subject: Enable user-agent freeze by default
-
-License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
----
- third_party/blink/common/features.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
---- a/third_party/blink/common/features.cc
-+++ b/third_party/blink/common/features.cc
-@@ -167,7 +167,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
- 
- // Freezes the user-agent as part of https://github.com/WICG/ua-client-hints.
- const base::Feature kReduceUserAgent{"ReduceUserAgent",
--                                     base::FEATURE_DISABLED_BY_DEFAULT};
-+                                     base::FEATURE_ENABLED_BY_DEFAULT};
- 
- // Enables the `sec-ch-ua-full` client hint to be sent along with the full user
- // agent string in the HTTP request headers, as well as surfacing the full user
---
-2.25.1

+ 75 - 119
build/patches/Experimental-user-scripts-support.patch

@@ -81,7 +81,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../user_scripts/browser/user_script_loader.h | 169 ++++
  .../user_scripts/browser/user_script_loader.h | 169 ++++
  .../browser/user_script_pref_info.cc          |  34 +
  .../browser/user_script_pref_info.cc          |  34 +
  .../browser/user_script_pref_info.h           |  72 ++
  .../browser/user_script_pref_info.h           |  72 ++
- .../user_scripts/browser/user_script_prefs.cc | 278 ++++++
+ .../user_scripts/browser/user_script_prefs.cc | 270 ++++++
  .../user_scripts/browser/user_script_prefs.h  |  62 ++
  .../user_scripts/browser/user_script_prefs.h  |  62 ++
  .../browser/userscripts_browser_client.cc     |  78 ++
  .../browser/userscripts_browser_client.cc     |  78 ++
  .../browser/userscripts_browser_client.h      |  62 ++
  .../browser/userscripts_browser_client.h      |  62 ++
@@ -113,10 +113,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../user_scripts/renderer/injection_host.h    |  41 +
  .../user_scripts/renderer/injection_host.h    |  41 +
  .../renderer/resources/greasemonkey_api.js    |  82 ++
  .../renderer/resources/greasemonkey_api.js    |  82 ++
  .../user_scripts_renderer_resources.grd       |  14 +
  .../user_scripts_renderer_resources.grd       |  14 +
- .../user_scripts/renderer/script_context.cc   | 215 +++++
+ .../user_scripts/renderer/script_context.cc   | 191 +++++
  .../user_scripts/renderer/script_context.h    |  68 ++
  .../user_scripts/renderer/script_context.h    |  68 ++
- .../user_scripts/renderer/script_injection.cc | 309 +++++++
- .../user_scripts/renderer/script_injection.h  | 155 ++++
+ .../user_scripts/renderer/script_injection.cc | 294 +++++++
+ .../user_scripts/renderer/script_injection.h  | 156 ++++
  .../renderer/script_injection_manager.cc      | 417 +++++++++
  .../renderer/script_injection_manager.cc      | 417 +++++++++
  .../renderer/script_injection_manager.h       | 101 +++
  .../renderer/script_injection_manager.h       | 101 +++
  .../user_scripts/renderer/script_injector.h   |  96 +++
  .../user_scripts/renderer/script_injector.h   |  96 +++
@@ -124,19 +124,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../user_scripts/renderer/scripts_run_info.h  |  69 ++
  .../user_scripts/renderer/scripts_run_info.h  |  69 ++
  .../renderer/user_script_injector.cc          | 227 +++++
  .../renderer/user_script_injector.cc          | 227 +++++
  .../renderer/user_script_injector.h           |  86 ++
  .../renderer/user_script_injector.h           |  86 ++
- .../user_scripts/renderer/user_script_set.cc  | 262 ++++++
+ .../user_scripts/renderer/user_script_set.cc  | 266 ++++++
  .../user_scripts/renderer/user_script_set.h   | 101 +++
  .../user_scripts/renderer/user_script_set.h   | 101 +++
  .../renderer/user_script_set_manager.cc       |  77 ++
  .../renderer/user_script_set_manager.cc       |  77 ++
  .../renderer/user_script_set_manager.h        |  61 ++
  .../renderer/user_script_set_manager.h        |  61 ++
  .../renderer/user_scripts_dispatcher.cc       |  36 +
  .../renderer/user_scripts_dispatcher.cc       |  36 +
  .../renderer/user_scripts_dispatcher.h        |  49 ++
  .../renderer/user_scripts_dispatcher.h        |  49 ++
  .../renderer/user_scripts_renderer_client.cc  | 105 +++
  .../renderer/user_scripts_renderer_client.cc  | 105 +++
- .../renderer/user_scripts_renderer_client.h   |  37 +
+ .../renderer/user_scripts_renderer_client.h   |  36 +
  .../renderer/web_ui_injection_host.cc         |  40 +
  .../renderer/web_ui_injection_host.cc         |  40 +
  .../renderer/web_ui_injection_host.h          |  27 +
  .../renderer/web_ui_injection_host.h          |  27 +
  .../strings/userscripts_strings.grdp          |  54 ++
  .../strings/userscripts_strings.grdp          |  54 ++
  tools/gritsettings/resource_ids.spec          |   6 +
  tools/gritsettings/resource_ids.spec          |   6 +
- 109 files changed, 9493 insertions(+), 2 deletions(-)
+ 109 files changed, 9450 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
@@ -237,7 +237,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  }
  }
  
  
  if (enable_vr) {
  if (enable_vr) {
-@@ -578,6 +582,7 @@ android_library("chrome_java") {
+@@ -581,6 +585,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",
@@ -248,7 +248,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
 --- a/chrome/android/java/res/xml/main_preferences.xml
 --- a/chrome/android/java/res/xml/main_preferences.xml
 +++ b/chrome/android/java/res/xml/main_preferences.xml
 +++ b/chrome/android/java/res/xml/main_preferences.xml
-@@ -86,6 +86,11 @@
+@@ -88,6 +88,11 @@ found in the LICENSE file.
          android:key="useragent_settings"
          android:key="useragent_settings"
          android:order="20"
          android:order="20"
          android:title="@string/prefs_useragent_settings"/>
          android:title="@string/prefs_useragent_settings"/>
@@ -263,15 +263,15 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
-@@ -71,6 +71,7 @@ import org.chromium.content_public.browser.LoadUrlParams;
- import org.chromium.content_public.browser.WebContents;
+@@ -72,6 +72,7 @@ import org.chromium.content_public.browser.WebContents;
  import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.widget.Toast;
  import org.chromium.ui.widget.Toast;
+ import org.chromium.url.GURL;
 +import org.chromium.chrome.browser.user_scripts.UserScriptsUtils;
 +import org.chromium.chrome.browser.user_scripts.UserScriptsUtils;
  
  
  import java.io.File;
  import java.io.File;
  
  
-@@ -422,6 +423,11 @@ public class DownloadUtils {
+@@ -423,6 +424,11 @@ public class DownloadUtils {
      public static boolean openFile(String filePath, String mimeType, String downloadGuid,
      public static boolean openFile(String filePath, String mimeType, String downloadGuid,
              OTRProfileID otrProfileID, String originalUrl, String referrer,
              OTRProfileID otrProfileID, String originalUrl, String referrer,
              @DownloadOpenSource int source, Context context) {
              @DownloadOpenSource int source, Context context) {
@@ -323,7 +323,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
-@@ -3461,6 +3461,11 @@ static_library("browser") {
+@@ -3490,6 +3490,11 @@ static_library("browser") {
        ]
        ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
      }
      }
@@ -338,7 +338,7 @@ 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
-@@ -153,6 +153,7 @@
+@@ -155,6 +155,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"
@@ -346,7 +346,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"
-@@ -7379,6 +7380,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -7534,6 +7535,10 @@ const FeatureEntry kFeatureEntries[] = {
           chromeos::features::kClipboardHistoryNudgeSessionReset)},
           chromeos::features::kClipboardHistoryNudgeSessionReset)},
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
  
  
@@ -360,7 +360,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
-@@ -4949,7 +4949,8 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
+@@ -5049,7 +5049,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),
@@ -373,7 +373,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
-@@ -6318,6 +6318,11 @@ const char kFollowingFeedSidepanelDescription[] =
+@@ -6475,6 +6475,11 @@ const char kFollowingFeedSidepanelDescription[] =
  #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
  #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
          // BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_CHROMEOS)
          // BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_CHROMEOS)
  
  
@@ -388,7 +388,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
-@@ -3630,6 +3630,9 @@ extern const char kQuickCommandsDescription[];
+@@ -3717,6 +3717,9 @@ extern const char kQuickCommandsDescription[];
  #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
  #endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
          // defined (OS_FUCHSIA)
          // defined (OS_FUCHSIA)
  
  
@@ -407,9 +407,9 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
  #include "components/query_tiles/tile_service_prefs.h"
  #include "components/query_tiles/tile_service_prefs.h"
 +#include "components/user_scripts/browser/user_script_prefs.h"
 +#include "components/user_scripts/browser/user_script_prefs.h"
  #else  // BUILDFLAG(IS_ANDROID)
  #else  // BUILDFLAG(IS_ANDROID)
- #include "chrome/browser/autofill_assistant/password_change/apc_client.h"
  #include "chrome/browser/cart/cart_service.h"
  #include "chrome/browser/cart/cart_service.h"
-@@ -1323,6 +1324,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+ #include "chrome/browser/device_api/device_service_impl.h"
+@@ -1350,6 +1351,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);
@@ -420,7 +420,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
 diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
 diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
 --- a/chrome/browser/profiles/BUILD.gn
 --- a/chrome/browser/profiles/BUILD.gn
 +++ b/chrome/browser/profiles/BUILD.gn
 +++ b/chrome/browser/profiles/BUILD.gn
-@@ -44,6 +44,7 @@ source_set("profile") {
+@@ -50,6 +50,7 @@ source_set("profile") {
      "//components/profile_metrics",
      "//components/profile_metrics",
      "//components/sync/driver",
      "//components/sync/driver",
      "//components/variations",
      "//components/variations",
@@ -431,7 +431,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
-@@ -258,6 +258,8 @@
+@@ -260,6 +260,8 @@
  #include "chrome/browser/enterprise/idle/idle_service_factory.h"
  #include "chrome/browser/enterprise/idle/idle_service_factory.h"
  #endif
  #endif
  
  
@@ -440,7 +440,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) {
-@@ -612,6 +614,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -618,6 +620,7 @@ void ChromeBrowserMainExtraPartsProfiles::
  #endif
  #endif
    WebDataServiceFactory::GetInstance();
    WebDataServiceFactory::GetInstance();
    webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
    webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
@@ -460,7 +460,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
  #if BUILDFLAG(ENABLE_SESSION_SERVICE)
  #if BUILDFLAG(ENABLE_SESSION_SERVICE)
  #include "chrome/browser/sessions/app_session_service_factory.h"
  #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"
-@@ -1712,6 +1714,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
+@@ -1696,6 +1698,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
  #endif
  #endif
  
  
  #endif
  #endif
@@ -535,7 +535,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"
-@@ -817,6 +818,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -821,6 +822,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>;
@@ -547,7 +547,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
 --- a/chrome/chrome_paks.gni
 --- a/chrome/chrome_paks.gni
 +++ b/chrome/chrome_paks.gni
 +++ b/chrome/chrome_paks.gni
-@@ -106,6 +106,7 @@ template("chrome_extra_paks") {
+@@ -107,6 +107,7 @@ template("chrome_extra_paks") {
        "$root_gen_dir/skia/skia_resources.pak",
        "$root_gen_dir/skia/skia_resources.pak",
        "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
        "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
        "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak",
        "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak",
@@ -555,7 +555,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
        "$root_gen_dir/ui/resources/webui_generated_resources.pak",
        "$root_gen_dir/ui/resources/webui_generated_resources.pak",
      ]
      ]
      deps = [
      deps = [
-@@ -126,6 +127,7 @@ template("chrome_extra_paks") {
+@@ -128,6 +129,7 @@ template("chrome_extra_paks") {
        "//third_party/blink/public:devtools_inspector_resources",
        "//third_party/blink/public:devtools_inspector_resources",
        "//third_party/blink/public:resources",
        "//third_party/blink/public:resources",
        "//ui/resources",
        "//ui/resources",
@@ -611,7 +611,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();
-@@ -575,6 +584,13 @@ void ChromeContentRendererClient::RenderFrameCreated(
+@@ -576,6 +585,13 @@ void ChromeContentRendererClient::RenderFrameCreated(
        render_frame, registry);
        render_frame, registry);
  #endif
  #endif
  
  
@@ -625,7 +625,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  #if BUILDFLAG(ENABLE_PPAPI)
  #if BUILDFLAG(ENABLE_PPAPI)
    new PepperHelper(render_frame);
    new PepperHelper(render_frame);
  #endif
  #endif
-@@ -1576,7 +1592,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
+@@ -1545,7 +1561,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.
@@ -640,7 +640,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  }
  
  
  void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
  void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
-@@ -1585,7 +1608,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
+@@ -1554,7 +1577,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.
@@ -655,7 +655,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  }
  
  
  void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
  void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
-@@ -1594,7 +1624,14 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
+@@ -1563,7 +1593,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.
@@ -699,8 +699,8 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
        <part file="webapps_strings.grdp" />
        <part file="webapps_strings.grdp" />
 +      <part file="user_scripts/strings/userscripts_strings.grdp" />
 +      <part file="user_scripts/strings/userscripts_strings.grdp" />
  
  
-       <if expr="not is_ios">
-         <part file="history_clusters_strings.grdp" />
+       <part file="browser_ui/strings/android/webgl.grdp" />
+       <part file="browser_ui/strings/android/webrtc.grdp" />
 diff --git a/components/user_scripts/README.md b/components/user_scripts/README.md
 diff --git a/components/user_scripts/README.md b/components/user_scripts/README.md
 new file mode 100644
 new file mode 100644
 --- /dev/null
 --- /dev/null
@@ -2948,7 +2948,7 @@ new file mode 100755
 +  std::string temp(line.data() + index + prefix.length(),
 +  std::string temp(line.data() + index + prefix.length(),
 +                   line.length() - index - prefix.length());
 +                   line.length() - index - prefix.length());
 +
 +
-+  if (temp.empty() || !base::IsUnicodeWhitespace(temp[0]))
++  if (temp.empty() || !base::IsAsciiWhitespace(temp[0]))
 +    return false;
 +    return false;
 +
 +
 +  base::TrimWhitespaceASCII(temp, base::TRIM_ALL, value);
 +  base::TrimWhitespaceASCII(temp, base::TRIM_ALL, value);
@@ -3856,7 +3856,7 @@ diff --git a/components/user_scripts/browser/user_script_prefs.cc b/components/u
 new file mode 100644
 new file mode 100644
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/browser/user_script_prefs.cc
 +++ b/components/user_scripts/browser/user_script_prefs.cc
-@@ -0,0 +1,278 @@
+@@ -0,0 +1,270 @@
 +/*
 +/*
 +    This file is part of Bromite.
 +    This file is part of Bromite.
 +
 +
@@ -3938,7 +3938,7 @@ new file mode 100644
 +  const std::string id_;
 +  const std::string id_;
 +};
 +};
 +
 +
-+bool GetInt64FromPref(const base::DictionaryValue* dict,
++bool GetInt64FromPref(const base::Value* dict,
 +                      const std::string& key,
 +                      const std::string& key,
 +                      int64_t* value) {
 +                      int64_t* value) {
 +  DCHECK(dict);
 +  DCHECK(dict);
@@ -4044,12 +4044,9 @@ new file mode 100644
 +
 +
 +  // remove script from prefs if no more present
 +  // remove script from prefs if no more present
 +  std::vector<std::string> all_scripts_to_remove;
 +  std::vector<std::string> all_scripts_to_remove;
-+  const base::DictionaryValue* dict =
-+      &base::Value::AsDictionaryValue(*prefs_->GetDictionary(
-+          kUserScriptsList));
-+  for (base::DictionaryValue::Iterator script_it(*dict); !script_it.IsAtEnd();
-+       script_it.Advance()) {
-+    const std::string& key = script_it.key();
++  const base::Value::Dict& dict = prefs_->GetDict(kUserScriptsList).Clone();
++  for (const auto script_it : dict) {
++    const std::string& key = script_it.first;
 +
 +
 +    if (std::find(all_scripts.begin(), all_scripts.end(), key) == all_scripts.end()) {
 +    if (std::find(all_scripts.begin(), all_scripts.end(), key) == all_scripts.end()) {
 +      all_scripts_to_remove.push_back(key);
 +      all_scripts_to_remove.push_back(key);
@@ -4068,14 +4065,11 @@ new file mode 100644
 +std::string UserScriptsPrefs::GetScriptsInfo() {
 +std::string UserScriptsPrefs::GetScriptsInfo() {
 +  std::string json_string;
 +  std::string json_string;
 +
 +
-+  const base::Value* dict =
-+    prefs_->GetDictionary(kUserScriptsList);
++  const base::Value::Dict& dict = prefs_->GetDict(kUserScriptsList);
 +
 +
-+  if (dict) {
-+    base::JSONWriter::WriteWithOptions(
-+        *dict, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json_string);
-+    base::TrimWhitespaceASCII(json_string, base::TRIM_ALL, &json_string);
-+  }
++  base::JSONWriter::WriteWithOptions(
++      dict, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json_string);
++  base::TrimWhitespaceASCII(json_string, base::TRIM_ALL, &json_string);
 +
 +
 +  return json_string;
 +  return json_string;
 +}
 +}
@@ -4086,13 +4080,11 @@ new file mode 100644
 +  auto scriptInfo = std::make_unique<UserScriptsListPrefs::ScriptInfo>(
 +  auto scriptInfo = std::make_unique<UserScriptsListPrefs::ScriptInfo>(
 +      script_id, "", base::Time::Now(), false);
 +      script_id, "", base::Time::Now(), false);
 +
 +
-+  const base::Value* scripts =
-+      prefs_->GetDictionary(kUserScriptsList);
-+  if (!scripts)
++  const base::Value::Dict& scripts = prefs_->GetDict(kUserScriptsList);
++  if (scripts.empty())
 +    return scriptInfo;
 +    return scriptInfo;
 +
 +
-+  const base::DictionaryValue* script = static_cast<const base::DictionaryValue*>(
-+    scripts->FindDictKey(script_id));
++  const base::Value* script = scripts.Find(script_id);
 +  if (!script)
 +  if (!script)
 +    return scriptInfo;
 +    return scriptInfo;
 +
 +
@@ -7780,7 +7772,7 @@ diff --git a/components/user_scripts/renderer/script_context.cc b/components/use
 new file mode 100755
 new file mode 100755
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/renderer/script_context.cc
 +++ b/components/user_scripts/renderer/script_context.cc
-@@ -0,0 +1,215 @@
+@@ -0,0 +1,191 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Copyright 2014 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.
@@ -7950,36 +7942,12 @@ new file mode 100755
 +  return parent_url;
 +  return parent_url;
 +}
 +}
 +
 +
-+using FrameToDocumentLoader =
-+    base::flat_map<blink::WebLocalFrame*, blink::WebDocumentLoader*>;
-+
-+FrameToDocumentLoader& FrameDocumentLoaderMap() {
-+  static base::NoDestructor<FrameToDocumentLoader> map;
-+  return *map;
-+}
-+
-+blink::WebDocumentLoader* CurrentDocumentLoader(
-+    const blink::WebLocalFrame* frame) {
-+  auto& map = FrameDocumentLoaderMap();
-+  auto it = map.find(frame);
-+  return it == map.end() ? frame->GetDocumentLoader() : it->second;
-+}
-+
 +}  // namespace
 +}  // namespace
 +
 +
 +// static
 +// static
 +GURL ScriptContext::GetDocumentLoaderURLForFrame(
 +GURL ScriptContext::GetDocumentLoaderURLForFrame(
 +    const blink::WebLocalFrame* frame) {
 +    const blink::WebLocalFrame* frame) {
-+  // Normally we would use frame->document().url() to determine the document's
-+  // URL, but to decide whether to inject a content script, we use the URL from
-+  // the data source. This "quirk" helps prevents content scripts from
-+  // inadvertently adding DOM elements to the compose iframe in Gmail because
-+  // the compose iframe's dataSource URL is about:blank, but the document URL
-+  // changes to match the parent document after Gmail document.writes into
-+  // it to create the editor.
-+  // http://code.google.com/p/chromium/issues/detail?id=86742
-+  blink::WebDocumentLoader* document_loader = CurrentDocumentLoader(frame);
-+  return document_loader ? GURL(document_loader->GetUrl()) : GURL();
++  return GURL(frame->GetDocument().Url());
 +}
 +}
 +
 +
 +// static
 +// static
@@ -8073,7 +8041,7 @@ diff --git a/components/user_scripts/renderer/script_injection.cc b/components/u
 new file mode 100755
 new file mode 100755
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/renderer/script_injection.cc
 +++ b/components/user_scripts/renderer/script_injection.cc
-@@ -0,0 +1,309 @@
+@@ -0,0 +1,294 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Copyright 2014 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.
@@ -8325,30 +8293,15 @@ new file mode 100755
 +      base::BindOnce(&ScriptInjection::OnJsInjectionCompleted,
 +      base::BindOnce(&ScriptInjection::OnJsInjectionCompleted,
 +                     weak_ptr_factory_.GetWeakPtr()),
 +                     weak_ptr_factory_.GetWeakPtr()),
 +      blink::BackForwardCacheAware::kPossiblyDisallow,
 +      blink::BackForwardCacheAware::kPossiblyDisallow,
-+      blink::mojom::PromiseResultOption::kDoNotWait);
++      blink::mojom::WantResultOption::kNoResult, blink::mojom::PromiseResultOption::kDoNotWait);
 +  }
 +  }
 +
 +
 +void ScriptInjection::OnJsInjectionCompleted(
 +void ScriptInjection::OnJsInjectionCompleted(
-+    const blink::WebVector<v8::Local<v8::Value>>& results,
++    absl::optional<base::Value> results,
 +    base::TimeTicks start_time) {
 +    base::TimeTicks start_time) {
 +  DCHECK(!did_inject_js_);
 +  DCHECK(!did_inject_js_);
 +
 +
-+  bool expects_results = injector_->ExpectsResults();
-+  if (expects_results) {
-+    if (!results.empty() && !results[0].IsEmpty()) {
-+      // Right now, we only support returning single results (per frame).
-+      // It's safe to always use the main world context when converting
-+      // here. V8ValueConverterImpl shouldn't actually care about the
-+      // context scope, and it switches to v8::Object's creation context
-+      // when encountered.
-+      v8::Local<v8::Context> context =
-+          render_frame_->GetWebFrame()->MainWorldScriptContext();
-+      execution_result_ =
-+          content::V8ValueConverter::Create()->FromV8Value(results[0], context);
-+    }
-+    if (!execution_result_.get())
-+      execution_result_ = std::make_unique<base::Value>();
-+  }
++  execution_result_ = std::move(results);
 +  did_inject_js_ = true;
 +  did_inject_js_ = true;
 +
 +
 +  // If |async_completion_callback_| is set, it means the script finished
 +  // If |async_completion_callback_| is set, it means the script finished
@@ -8387,7 +8340,7 @@ diff --git a/components/user_scripts/renderer/script_injection.h b/components/us
 new file mode 100755
 new file mode 100755
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/renderer/script_injection.h
 +++ b/components/user_scripts/renderer/script_injection.h
-@@ -0,0 +1,155 @@
+@@ -0,0 +1,156 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Copyright 2014 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.
@@ -8402,6 +8355,7 @@ new file mode 100755
 +
 +
 +#include "base/callback.h"
 +#include "base/callback.h"
 +#include "base/memory/weak_ptr.h"
 +#include "base/memory/weak_ptr.h"
++#include "base/values.h"
 +#include "../common/user_script.h"
 +#include "../common/user_script.h"
 +#include "injection_host.h"
 +#include "injection_host.h"
 +#include "script_injector.h"
 +#include "script_injector.h"
@@ -8478,7 +8432,7 @@ new file mode 100755
 +
 +
 +  // Called when JS injection for the given frame has been completed or
 +  // Called when JS injection for the given frame has been completed or
 +  // cancelled.
 +  // cancelled.
-+  void OnJsInjectionCompleted(const blink::WebVector<v8::Local<v8::Value>>& results,
++  void OnJsInjectionCompleted(absl::optional<base::Value> results,
 +                              base::TimeTicks start_time);
 +                              base::TimeTicks start_time);
 +
 +
 + private:
 + private:
@@ -8529,7 +8483,7 @@ new file mode 100755
 +  bool log_activity_;
 +  bool log_activity_;
 +
 +
 +  // Results storage.
 +  // Results storage.
-+  std::unique_ptr<base::Value> execution_result_;
++  absl::optional<base::Value> execution_result_;
 +
 +
 +  // The callback to run upon completing asynchronously.
 +  // The callback to run upon completing asynchronously.
 +  CompletionCallback async_completion_callback_;
 +  CompletionCallback async_completion_callback_;
@@ -9158,7 +9112,7 @@ new file mode 100755
 +  // |render_frame| contains the render frame, or null if the frame was
 +  // |render_frame| contains the render frame, or null if the frame was
 +  // invalidated.
 +  // invalidated.
 +  virtual void OnInjectionComplete(
 +  virtual void OnInjectionComplete(
-+      std::unique_ptr<base::Value> execution_result,
++      absl::optional<base::Value> execution_result,
 +      UserScript::RunLocation run_location,
 +      UserScript::RunLocation run_location,
 +      content::RenderFrame* render_frame) = 0;
 +      content::RenderFrame* render_frame) = 0;
 +
 +
@@ -9505,7 +9459,7 @@ new file mode 100755
 +}
 +}
 +
 +
 +void UserScriptInjector::OnInjectionComplete(
 +void UserScriptInjector::OnInjectionComplete(
-+    std::unique_ptr<base::Value> execution_result,
++    absl::optional<base::Value> execution_result,
 +    UserScript::RunLocation run_location,
 +    UserScript::RunLocation run_location,
 +    content::RenderFrame* render_frame) {}
 +    content::RenderFrame* render_frame) {}
 +
 +
@@ -9578,7 +9532,7 @@ new file mode 100755
 +      UserScript::RunLocation run_location,
 +      UserScript::RunLocation run_location,
 +      std::set<std::string>* injected_stylesheets,
 +      std::set<std::string>* injected_stylesheets,
 +      size_t* num_injected_stylesheets) const override;
 +      size_t* num_injected_stylesheets) const override;
-+  void OnInjectionComplete(std::unique_ptr<base::Value> execution_result,
++  void OnInjectionComplete(absl::optional<base::Value> execution_result,
 +                           UserScript::RunLocation run_location,
 +                           UserScript::RunLocation run_location,
 +                           content::RenderFrame* render_frame) override;
 +                           content::RenderFrame* render_frame) override;
 +  void OnWillNotInject(InjectFailureReason reason,
 +  void OnWillNotInject(InjectFailureReason reason,
@@ -9609,7 +9563,7 @@ diff --git a/components/user_scripts/renderer/user_script_set.cc b/components/us
 new file mode 100755
 new file mode 100755
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/renderer/user_script_set.cc
 +++ b/components/user_scripts/renderer/user_script_set.cc
-@@ -0,0 +1,262 @@
+@@ -0,0 +1,266 @@
 +// Copyright 2014 The Chromium Authors. All rights reserved.
 +// Copyright 2014 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.
@@ -9830,6 +9784,14 @@ new file mode 100755
 +
 +
 +blink::WebString UserScriptSet::GetJsSource(const UserScript::File& file,
 +blink::WebString UserScriptSet::GetJsSource(const UserScript::File& file,
 +                                            bool emulate_greasemonkey) {
 +                                            bool emulate_greasemonkey) {
++  if (base::FeatureList::IsEnabled(features::kEnableLoggingUserScripts)) {
++    if (emulate_greasemonkey) {
++      LOG(INFO) << "UserScripts: Injecting w/greasemonkey " << file.url();
++    } else {
++      LOG(INFO) << "UserScripts: Injecting " << file.url();
++    }
++  }
++
 +  const GURL& url = file.url();
 +  const GURL& url = file.url();
 +  auto iter = script_sources_.find(url);
 +  auto iter = script_sources_.find(url);
 +  if (iter != script_sources_.end()) {
 +  if (iter != script_sources_.end()) {
@@ -9845,13 +9807,9 @@ new file mode 100755
 +    std::string content =
 +    std::string content =
 +        base::StrCat({kUserScriptHead, script_content, kUserScriptTail});
 +        base::StrCat({kUserScriptHead, script_content, kUserScriptTail});
 +    source = blink::WebString::FromUTF8(content);
 +    source = blink::WebString::FromUTF8(content);
-+    if (base::FeatureList::IsEnabled(features::kEnableLoggingUserScripts))
-+      LOG(INFO) << "UserScripts: Injecting w/greasemonkey " << file.url();
 +  } else {
 +  } else {
 +    source = blink::WebString::FromUTF8(script_content.data(),
 +    source = blink::WebString::FromUTF8(script_content.data(),
 +                                        script_content.length());
 +                                        script_content.length());
-+    if (base::FeatureList::IsEnabled(features::kEnableLoggingUserScripts))
-+      LOG(INFO) << "UserScripts: Injecting " << file.url();
 +  }
 +  }
 +  script_sources_[url] = source;
 +  script_sources_[url] = source;
 +  return source;
 +  return source;
@@ -10292,15 +10250,15 @@ new file mode 100755
 +  enabled_ = params.allow_userscript;
 +  enabled_ = params.allow_userscript;
 +  if (!enabled_) return;
 +  if (!enabled_) return;
 +
 +
-+  if (loaded_ == false) {
-+    loaded_ = true;
++  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
++  if (!frame_helper) {
 +    new user_scripts::ExtensionFrameHelper(render_frame);
 +    new user_scripts::ExtensionFrameHelper(render_frame);
 +    dispatcher_->OnRenderFrameCreated(render_frame);
 +    dispatcher_->OnRenderFrameCreated(render_frame);
 +  }
 +  }
 +}
 +}
 +
 +
 +void UserScriptsRendererClient::RunScriptsAtDocumentStart(content::RenderFrame* render_frame) {
 +void UserScriptsRendererClient::RunScriptsAtDocumentStart(content::RenderFrame* render_frame) {
-+  if (!enabled_ || !loaded_) return;
++  if (!enabled_) return;
 +
 +
 +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 +  if (!frame_helper)
 +  if (!frame_helper)
@@ -10311,7 +10269,7 @@ new file mode 100755
 +}
 +}
 +
 +
 +void UserScriptsRendererClient::RunScriptsAtDocumentEnd(content::RenderFrame* render_frame) {
 +void UserScriptsRendererClient::RunScriptsAtDocumentEnd(content::RenderFrame* render_frame) {
-+  if (!enabled_ || !loaded_) return;
++  if (!enabled_) return;
 +
 +
 +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 +  if (!frame_helper)
 +  if (!frame_helper)
@@ -10322,7 +10280,7 @@ new file mode 100755
 +}
 +}
 +
 +
 +void UserScriptsRendererClient::RunScriptsAtDocumentIdle(content::RenderFrame* render_frame) {
 +void UserScriptsRendererClient::RunScriptsAtDocumentIdle(content::RenderFrame* render_frame) {
-+  if (!enabled_ || !loaded_) return;
++  if (!enabled_) return;
 +
 +
 +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 +  if (!frame_helper)
 +  if (!frame_helper)
@@ -10333,12 +10291,11 @@ new file mode 100755
 +}
 +}
 +
 +
 +}
 +}
-\ No newline at end of file
 diff --git a/components/user_scripts/renderer/user_scripts_renderer_client.h b/components/user_scripts/renderer/user_scripts_renderer_client.h
 diff --git a/components/user_scripts/renderer/user_scripts_renderer_client.h b/components/user_scripts/renderer/user_scripts_renderer_client.h
 new file mode 100755
 new file mode 100755
 --- /dev/null
 --- /dev/null
 +++ b/components/user_scripts/renderer/user_scripts_renderer_client.h
 +++ b/components/user_scripts/renderer/user_scripts_renderer_client.h
-@@ -0,0 +1,37 @@
+@@ -0,0 +1,36 @@
 +#ifndef USERSCRIPTS_RENDER_CLIENT_H_
 +#ifndef USERSCRIPTS_RENDER_CLIENT_H_
 +#define USERSCRIPTS_RENDER_CLIENT_H_
 +#define USERSCRIPTS_RENDER_CLIENT_H_
 +
 +
@@ -10370,7 +10327,6 @@ new file mode 100755
 + private:
 + private:
 +  std::unique_ptr<UserScriptsDispatcher> dispatcher_;
 +  std::unique_ptr<UserScriptsDispatcher> dispatcher_;
 +  bool enabled_ = false;
 +  bool enabled_ = false;
-+  bool loaded_ = false;
 +};
 +};
 +
 +
 +}
 +}
@@ -10515,7 +10471,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
-@@ -693,6 +693,12 @@
+@@ -732,6 +732,12 @@
    "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{
    "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{
      "includes": [3720]
      "includes": [3720]
    },
    },

+ 0 - 22
build/patches/Fix-segmentation-platform-build-error.patch

@@ -1,22 +0,0 @@
-From: csagan5 <32685696+csagan5@users.noreply.github.com>
-Date: Sun, 16 Oct 2022 08:42:55 +0200
-Subject: Fix segmentation platform build error
-
-License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
----
- components/segmentation_platform/embedder/BUILD.gn | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/components/segmentation_platform/embedder/BUILD.gn b/components/segmentation_platform/embedder/BUILD.gn
---- a/components/segmentation_platform/embedder/BUILD.gn
-+++ b/components/segmentation_platform/embedder/BUILD.gn
-@@ -21,7 +21,6 @@ source_set("embedder") {
-     "//components/optimization_guide/core",
-     "//components/optimization_guide/core:features",
-     "//components/segmentation_platform/internal",
--    "//components/segmentation_platform/internal:optimization_guide_segmentation_handler",
-     "//components/segmentation_platform/internal/proto",
-     "//components/segmentation_platform/public",
-     "//url",
---
-2.25.1

+ 25 - 0
build/patches/Guard-for-user-agent-reduction.patch

@@ -0,0 +1,25 @@
+From: csagan5 <32685696+csagan5@users.noreply.github.com>
+Date: Mon, 10 Feb 2020 23:13:13 +0100
+Subject: Guard for user-agent reduction
+
+License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
+---
+ third_party/blink/common/features.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
+--- a/third_party/blink/common/features.cc
++++ b/third_party/blink/common/features.cc
+@@ -1205,8 +1205,8 @@ const base::Feature kWindowPlacementFullscreenCompanionWindow{
+ const base::FeatureParam<std::string> kUserAgentFrozenBuildVersion{
+     &kReduceUserAgentMinorVersion, "build_version", "0"};
+ 
+-const base::FeatureParam<bool> kAllExceptLegacyWindowsPlatform = {
+-    &kReduceUserAgentPlatformOsCpu, "all_except_legacy_windows_platform", true};
++const base::FeatureParam<bool> kAllExceptLegacyWindowsPlatform = {                 // must be enabled
++    &kReduceUserAgentPlatformOsCpu, "all_except_legacy_windows_platform", true};   // in Bromite
+ const base::FeatureParam<bool> kLegacyWindowsPlatform = {
+     &kReduceUserAgentPlatformOsCpu, "legacy_windows_platform", true};
+ 
+--
+2.25.1

+ 13 - 13
build/patches/History-number-of-days-privacy-setting.patch

@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 --- a/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
 +++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -29,6 +29,12 @@
+@@ -31,6 +31,12 @@ found in the LICENSE file.
          android:title="@string/settings_incognito_tab_lock_title"
          android:title="@string/settings_incognito_tab_lock_title"
          android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off"
          android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off"
          android:persistent="false"/>
          android:persistent="false"/>
@@ -162,7 +162,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/
 diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
 diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
 --- a/chrome/browser/preferences/BUILD.gn
 --- a/chrome/browser/preferences/BUILD.gn
 +++ b/chrome/browser/preferences/BUILD.gn
 +++ b/chrome/browser/preferences/BUILD.gn
-@@ -44,6 +44,7 @@ java_cpp_strings("java_pref_names_srcjar") {
+@@ -45,6 +45,7 @@ java_cpp_strings("java_pref_names_srcjar") {
      "//components/safe_browsing/core/common/safe_browsing_prefs.cc",
      "//components/safe_browsing/core/common/safe_browsing_prefs.cc",
      "//components/signin/public/base/signin_pref_names.cc",
      "//components/signin/public/base/signin_pref_names.cc",
      "//components/translate/core/browser/translate_pref_names.cc",
      "//components/translate/core/browser/translate_pref_names.cc",
@@ -173,7 +173,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
-@@ -368,6 +368,7 @@ std::unique_ptr<Profile> Profile::CreateProfile(const base::FilePath& path,
+@@ -373,6 +373,7 @@ std::unique_ptr<Profile> Profile::CreateProfile(const base::FilePath& path,
  void ProfileImpl::RegisterProfilePrefs(
  void ProfileImpl::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false);
    registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false);
@@ -184,7 +184,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
 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
-@@ -1130,6 +1130,18 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1136,6 +1136,18 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_CLEAR_HISTORY_TITLE" desc="Title for Clear History in Clear Browsing Data dialog">
        <message name="IDS_CLEAR_HISTORY_TITLE" desc="Title for Clear History in Clear Browsing Data dialog">
          Browsing history
          Browsing history
        </message>
        </message>
@@ -206,7 +206,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
 diff --git a/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml b/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
 diff --git a/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml b/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
 --- a/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
 --- a/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
 +++ b/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
 +++ b/components/browser_ui/settings/android/java/res/layout-sw360dp/preference_spinner_single_line.xml
-@@ -11,19 +11,33 @@
+@@ -13,19 +13,33 @@ found in the LICENSE file.
      android:layout_height="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="horizontal"
      android:orientation="horizontal"
      android:paddingEnd="@dimen/pref_spinner_padding_end"
      android:paddingEnd="@dimen/pref_spinner_padding_end"
@@ -249,7 +249,7 @@ diff --git a/components/browser_ui/settings/android/java/res/layout-sw360dp/pref
 diff --git a/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml b/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml
 diff --git a/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml b/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml
 --- a/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml
 --- a/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml
 +++ b/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml
 +++ b/components/browser_ui/settings/android/java/res/layout/preference_spinner.xml
-@@ -18,6 +18,13 @@
+@@ -20,6 +20,13 @@ found in the LICENSE file.
          android:layout_width="match_parent"
          android:layout_width="match_parent"
          style="@style/PreferenceTitle" />
          style="@style/PreferenceTitle" />
  
  
@@ -266,7 +266,7 @@ diff --git a/components/browser_ui/settings/android/java/res/layout/preference_s
 diff --git a/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml b/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml
 diff --git a/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml b/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml
 --- a/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml
 --- a/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml
 +++ b/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml
 +++ b/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_line.xml
-@@ -20,6 +20,13 @@
+@@ -22,6 +22,13 @@ found in the LICENSE file.
          android:layout_height="wrap_content"
          android:layout_height="wrap_content"
          android:layout_width="match_parent" />
          android:layout_width="match_parent" />
  
  
@@ -365,7 +365,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
  
  
  // The maximum number of days for which domain visit metrics are computed
  // The maximum number of days for which domain visit metrics are computed
  // each time HistoryBackend::GetDomainDiversity() is called.
  // each time HistoryBackend::GetDomainDiversity() is called.
-@@ -1015,6 +1015,19 @@ void HistoryBackend::InitImpl(
+@@ -1088,6 +1088,19 @@ void HistoryBackend::InitImpl(
    LOCAL_HISTOGRAM_TIMES("History.InitTime", TimeTicks::Now() - beginning_time);
    LOCAL_HISTOGRAM_TIMES("History.InitTime", TimeTicks::Now() - beginning_time);
  }
  }
  
  
@@ -410,7 +410,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his
  #include "components/history/core/browser/download_row.h"
  #include "components/history/core/browser/download_row.h"
  #include "components/history/core/browser/history_backend.h"
  #include "components/history/core/browser/history_backend.h"
  #include "components/history/core/browser/history_backend_client.h"
  #include "components/history/core/browser/history_backend_client.h"
-@@ -1078,6 +1081,9 @@ void HistoryService::Cleanup() {
+@@ -1105,6 +1108,9 @@ void HistoryService::Cleanup() {
      return;
      return;
    }
    }
  
  
@@ -420,7 +420,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his
    NotifyHistoryServiceBeingDeleted();
    NotifyHistoryServiceBeingDeleted();
  
  
    weak_ptr_factory_.InvalidateWeakPtrs();
    weak_ptr_factory_.InvalidateWeakPtrs();
-@@ -1142,6 +1148,33 @@ bool HistoryService::Init(
+@@ -1169,6 +1175,33 @@ bool HistoryService::Init(
    return true;
    return true;
  }
  }
  
  
@@ -465,8 +465,8 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist
 +#include "components/prefs/pref_change_registrar.h"
 +#include "components/prefs/pref_change_registrar.h"
  #include "components/history/core/browser/history_types.h"
  #include "components/history/core/browser/history_types.h"
  #include "components/history/core/browser/keyword_id.h"
  #include "components/history/core/browser/keyword_id.h"
- #include "components/keyed_service/core/keyed_service.h"
-@@ -105,6 +107,8 @@ class HistoryService : public KeyedService {
+ #include "components/history/core/browser/url_row.h"
+@@ -106,6 +108,8 @@ class HistoryService : public KeyedService {
      return Init(false, history_database_params);
      return Init(false, history_database_params);
    }
    }
  
  
@@ -475,7 +475,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist
    // Triggers the backend to load if it hasn't already, and then returns whether
    // Triggers the backend to load if it hasn't already, and then returns whether
    // it's finished loading.
    // it's finished loading.
    // Note: Virtual needed for mocking.
    // Note: Virtual needed for mocking.
-@@ -993,6 +997,10 @@ class HistoryService : public KeyedService {
+@@ -1013,6 +1017,10 @@ class HistoryService : public KeyedService {
  
  
    base::OnceClosure origin_queried_closure_for_testing_;
    base::OnceClosure origin_queried_closure_for_testing_;
  
  

+ 4 - 4
build/patches/Improve-plain-text-rendering-on-mobile.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/third_party/blink/renderer/core/html/parser/text_document_parser.cc b/third_party/blink/renderer/core/html/parser/text_document_parser.cc
 diff --git a/third_party/blink/renderer/core/html/parser/text_document_parser.cc b/third_party/blink/renderer/core/html/parser/text_document_parser.cc
 --- a/third_party/blink/renderer/core/html/parser/text_document_parser.cc
 --- a/third_party/blink/renderer/core/html/parser/text_document_parser.cc
 +++ b/third_party/blink/renderer/core/html/parser/text_document_parser.cc
 +++ b/third_party/blink/renderer/core/html/parser/text_document_parser.cc
-@@ -63,9 +63,18 @@ void TextDocumentParser::InsertFakePreElement() {
+@@ -66,9 +66,18 @@ void TextDocumentParser::InsertFakePreElement() {
    TreeBuilder()->ConstructTree(&fake_meta);
    TreeBuilder()->ConstructTree(&fake_meta);
    attributes.clear();
    attributes.clear();
  
  
@@ -19,7 +19,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/text_document_parser.cc
 +  attributes.push_back(Attribute(html_names::kContentAttr,
 +  attributes.push_back(Attribute(html_names::kContentAttr,
 +    "width=device-width, initial-scale=1.0, maximum-scale=1.0"));
 +    "width=device-width, initial-scale=1.0, maximum-scale=1.0"));
 +  AtomicHTMLToken viewport_meta(HTMLToken::kStartTag,
 +  AtomicHTMLToken viewport_meta(HTMLToken::kStartTag,
-+                            html_names::kMetaTag.LocalName(), attributes);
++                            html_names::HTMLTag::kMeta, attributes);
 +  TreeBuilder()->ConstructTree(&viewport_meta);
 +  TreeBuilder()->ConstructTree(&viewport_meta);
 +  attributes.clear();
 +  attributes.clear();
 +
 +
@@ -27,8 +27,8 @@ diff --git a/third_party/blink/renderer/core/html/parser/text_document_parser.cc
    attributes.push_back(Attribute(
    attributes.push_back(Attribute(
 -      html_names::kStyleAttr, "word-wrap: break-word; white-space: pre-wrap;"));
 -      html_names::kStyleAttr, "word-wrap: break-word; white-space: pre-wrap;"));
 +      html_names::kStyleAttr, "word-wrap: break-word; white-space: pre-wrap; font-family: system-ui;"));
 +      html_names::kStyleAttr, "word-wrap: break-word; white-space: pre-wrap; font-family: system-ui;"));
-   AtomicHTMLToken fake_pre(HTMLToken::kStartTag,
-                            html_names::kPreTag.LocalName(), attributes);
+   AtomicHTMLToken fake_pre(HTMLToken::kStartTag, html_names::HTMLTag::kPre,
+                            attributes);
    TreeBuilder()->ConstructTree(&fake_pre);
    TreeBuilder()->ConstructTree(&fake_pre);
 --
 --
 2.25.1
 2.25.1

+ 10 - 12
build/patches/Increase-number-of-autocomplete-matches-to-10.patch

@@ -6,23 +6,21 @@ Patch adapted from https://github.com/Eloston/ungoogled-chromium/issues/814#issu
 
 
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
- components/omnibox/browser/autocomplete_result.cc | 3 ++-
+ components/omnibox/browser/autocomplete_result.cc | 1 +
  components/omnibox/browser/omnibox_field_trial.cc | 6 +++---
  components/omnibox/browser/omnibox_field_trial.cc | 6 +++---
- 2 files changed, 5 insertions(+), 4 deletions(-)
+ 2 files changed, 4 insertions(+), 3 deletions(-)
 
 
 diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc
 diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc
 --- a/components/omnibox/browser/autocomplete_result.cc
 --- a/components/omnibox/browser/autocomplete_result.cc
 +++ b/components/omnibox/browser/autocomplete_result.cc
 +++ b/components/omnibox/browser/autocomplete_result.cc
-@@ -100,7 +100,8 @@ size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) {
-   // and 10 on iPad.
-   constexpr size_t kMaxZeroSuggestMatchesOnIPad = 10;
- #else
--  constexpr size_t kDefaultMaxAutocompleteMatches = 8;
-+  // changed from 8, this needs to be double the value of default_max_matches_per_provider from components/omnibox/browser/omnibox_field_trial.cc
-+  constexpr size_t kDefaultMaxAutocompleteMatches = 10;
-   constexpr size_t kDefaultMaxZeroSuggestMatches = 8;
- #endif
-   static_assert(kMaxAutocompletePositionValue > kDefaultMaxAutocompleteMatches,
+@@ -85,6 +85,7 @@ struct MatchGURLHash {
+ // static
+ size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) {
+ #if BUILDFLAG(IS_ANDROID)
++  // this needs to be double the value of default_max_matches_per_provider from components/omnibox/browser/omnibox_field_trial.cc
+   constexpr size_t kDefaultMaxAutocompleteMatches = 10;
+   constexpr size_t kDefaultMaxZeroSuggestMatches = 15;
+ #elif BUILDFLAG(IS_IOS)
 diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
 diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
 --- a/components/omnibox/browser/omnibox_field_trial.cc
 --- a/components/omnibox/browser/omnibox_field_trial.cc
 +++ b/components/omnibox/browser/omnibox_field_trial.cc
 +++ b/components/omnibox/browser/omnibox_field_trial.cc

+ 11 - 11
build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch

@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/renderer/core/dom/build.gni
 diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/renderer/core/dom/build.gni
 --- a/third_party/blink/renderer/core/dom/build.gni
 --- a/third_party/blink/renderer/core/dom/build.gni
 +++ b/third_party/blink/renderer/core/dom/build.gni
 +++ b/third_party/blink/renderer/core/dom/build.gni
-@@ -157,6 +157,8 @@ blink_core_sources_dom = [
+@@ -159,6 +159,8 @@ blink_core_sources_dom = [
    "has_invalidation_flags.h",
    "has_invalidation_flags.h",
    "icon_url.cc",
    "icon_url.cc",
    "icon_url.h",
    "icon_url.h",
@@ -35,7 +35,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r
 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
-@@ -282,6 +282,7 @@
+@@ -283,6 +283,7 @@
  #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
  #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
  #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
  #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
  #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
  #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
@@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
  #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
  #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
  #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
  #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
  #include "third_party/blink/renderer/core/page/spatial_navigation_controller.h"
  #include "third_party/blink/renderer/core/page/spatial_navigation_controller.h"
-@@ -352,6 +353,8 @@
+@@ -355,6 +356,8 @@
  #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
  #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h"
  #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
  #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
  
  
@@ -52,8 +52,8 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
  #ifndef NDEBUG
  #ifndef NDEBUG
  using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
  using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
  static WeakDocumentSet& LiveDocumentSet();
  static WeakDocumentSet& LiveDocumentSet();
-@@ -6790,6 +6793,64 @@ void Document::MarkFirstPaint() {
-   MaybeExecuteDelayedAsyncScripts(MilestoneForDelayedAsyncScript::kFirstPaint);
+@@ -7065,6 +7068,64 @@ void Document::OnPrepareToStopParsing() {
+       MilestoneForDelayedAsyncScript::kFinishedParsing);
  }
  }
  
  
 +void Document::injectScripts() {
 +void Document::injectScripts() {
@@ -117,9 +117,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
  void Document::FinishedParsing() {
  void Document::FinishedParsing() {
    DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
    DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
    DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
    DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
-@@ -6855,6 +6916,10 @@ void Document::FinishedParsing() {
-     if (frame->GetFrameScheduler())
-       frame->GetFrameScheduler()->OnDomContentLoaded();
+@@ -7124,6 +7185,10 @@ void Document::FinishedParsing() {
+       }
+     }
  
  
 +    if (!IsPrefetchOnly()) {
 +    if (!IsPrefetchOnly()) {
 +       injectScripts();
 +       injectScripts();
@@ -131,9 +131,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
 diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
 diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
 --- a/third_party/blink/renderer/core/dom/document.h
 --- a/third_party/blink/renderer/core/dom/document.h
 +++ b/third_party/blink/renderer/core/dom/document.h
 +++ b/third_party/blink/renderer/core/dom/document.h
-@@ -1953,6 +1953,9 @@ class CORE_EXPORT Document : public ContainerNode,
-   void AddAXContext(AXContext*);
-   void RemoveAXContext(AXContext*);
+@@ -1975,6 +1975,9 @@ class CORE_EXPORT Document : public ContainerNode,
+   // Called when the AXMode of an existing AXContext changes.
+   void AXContextModeChanged();
  
  
 +  void injectScripts();
 +  void injectScripts();
 +  const AtomicString& findFirstScriptNonce();
 +  const AtomicString& findFirstScriptNonce();

+ 21 - 21
build/patches/JIT-site-settings.patch

@@ -42,7 +42,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 --- a/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
 +++ b/components/browser_ui/site_settings/android/BUILD.gn
-@@ -136,6 +136,7 @@ android_resources("java_resources") {
+@@ -161,6 +161,7 @@ android_resources("java_resources") {
      "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-hdpi/permission_background_sync.png",
      "java/res/drawable-hdpi/permission_background_sync.png",
      "java/res/drawable-hdpi/permission_javascript.png",
      "java/res/drawable-hdpi/permission_javascript.png",
@@ -50,15 +50,15 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
      "java/res/drawable-hdpi/permission_popups.png",
      "java/res/drawable-hdpi/permission_popups.png",
      "java/res/drawable-hdpi/permission_protected_media.png",
      "java/res/drawable-hdpi/permission_protected_media.png",
      "java/res/drawable-hdpi/settings_sensors.png",
      "java/res/drawable-hdpi/settings_sensors.png",
-@@ -143,6 +144,7 @@ android_resources("java_resources") {
+@@ -168,6 +169,7 @@ android_resources("java_resources") {
      "java/res/drawable-mdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-mdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-mdpi/permission_background_sync.png",
      "java/res/drawable-mdpi/permission_background_sync.png",
      "java/res/drawable-mdpi/permission_javascript.png",
      "java/res/drawable-mdpi/permission_javascript.png",
 +    "java/res/drawable-mdpi/permission_javascript_jit.png",
 +    "java/res/drawable-mdpi/permission_javascript_jit.png",
-     "java/res/drawable-mdpi/permission_popups.png",
-     "java/res/drawable-mdpi/permission_protected_media.png",
-     "java/res/drawable-mdpi/settings_sensors.png",
-@@ -150,6 +152,7 @@ android_resources("java_resources") {
+     "java/res/drawable-hdpi/settings_autoplay.png",
+     "java/res/drawable-xhdpi/settings_autoplay.png",
+     "java/res/drawable-xxhdpi/settings_autoplay.png",
+@@ -180,6 +182,7 @@ android_resources("java_resources") {
      "java/res/drawable-xhdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-xhdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-xhdpi/permission_background_sync.png",
      "java/res/drawable-xhdpi/permission_background_sync.png",
      "java/res/drawable-xhdpi/permission_javascript.png",
      "java/res/drawable-xhdpi/permission_javascript.png",
@@ -66,7 +66,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
      "java/res/drawable-xhdpi/permission_popups.png",
      "java/res/drawable-xhdpi/permission_popups.png",
      "java/res/drawable-xhdpi/permission_protected_media.png",
      "java/res/drawable-xhdpi/permission_protected_media.png",
      "java/res/drawable-xhdpi/settings_sensors.png",
      "java/res/drawable-xhdpi/settings_sensors.png",
-@@ -157,6 +160,7 @@ android_resources("java_resources") {
+@@ -187,6 +190,7 @@ android_resources("java_resources") {
      "java/res/drawable-xxhdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-xxhdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-xxhdpi/permission_background_sync.png",
      "java/res/drawable-xxhdpi/permission_background_sync.png",
      "java/res/drawable-xxhdpi/permission_javascript.png",
      "java/res/drawable-xxhdpi/permission_javascript.png",
@@ -74,7 +74,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
      "java/res/drawable-xxhdpi/permission_popups.png",
      "java/res/drawable-xxhdpi/permission_popups.png",
      "java/res/drawable-xxhdpi/permission_protected_media.png",
      "java/res/drawable-xxhdpi/permission_protected_media.png",
      "java/res/drawable-xxhdpi/settings_sensors.png",
      "java/res/drawable-xxhdpi/settings_sensors.png",
-@@ -164,6 +168,7 @@ android_resources("java_resources") {
+@@ -194,6 +198,7 @@ android_resources("java_resources") {
      "java/res/drawable-xxxhdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-xxxhdpi/ic_volume_up_grey600_24dp.png",
      "java/res/drawable-xxxhdpi/permission_background_sync.png",
      "java/res/drawable-xxxhdpi/permission_background_sync.png",
      "java/res/drawable-xxxhdpi/permission_javascript.png",
      "java/res/drawable-xxxhdpi/permission_javascript.png",
@@ -183,7 +183,7 @@ HcmV?d00001
 diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
 diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
 --- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
 --- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
 +++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
 +++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
-@@ -37,6 +37,10 @@
+@@ -39,6 +39,10 @@ found in the LICENSE file.
      <org.chromium.components.browser_ui.settings.ChromeBasePreference
      <org.chromium.components.browser_ui.settings.ChromeBasePreference
          android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
          android:fragment="org.chromium.components.browser_ui.site_settings.SingleCategorySettings"
          android:key="notifications" />
          android:key="notifications" />
@@ -214,7 +214,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
-@@ -610,6 +610,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -632,6 +632,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
                                 browserContextHandle, ContentSettingsType.JAVASCRIPT)
                                 browserContextHandle, ContentSettingsType.JAVASCRIPT)
                      ? R.string.website_settings_add_site_description_javascript_block
                      ? R.string.website_settings_add_site_description_javascript_block
                      : R.string.website_settings_add_site_description_javascript_allow;
                      : R.string.website_settings_add_site_description_javascript_allow;
@@ -226,7 +226,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
          } else if (mCategory.getType() == SiteSettingsCategory.Type.SOUND) {
          } else if (mCategory.getType() == SiteSettingsCategory.Type.SOUND) {
              resource = WebsitePreferenceBridge.isCategoryEnabled(
              resource = WebsitePreferenceBridge.isCategoryEnabled(
                                 browserContextHandle, ContentSettingsType.SOUND)
                                 browserContextHandle, ContentSettingsType.SOUND)
-@@ -732,6 +737,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
+@@ -761,6 +766,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
              allowSpecifyingExceptions = true;
              allowSpecifyingExceptions = true;
          } else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT) {
          } else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT) {
              allowSpecifyingExceptions = true;
              allowSpecifyingExceptions = true;
@@ -238,7 +238,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
-@@ -132,6 +132,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+@@ -133,6 +133,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
                  return "idle_detection_permission_list";
                  return "idle_detection_permission_list";
              case ContentSettingsType.JAVASCRIPT:
              case ContentSettingsType.JAVASCRIPT:
                  return "javascript_permission_list";
                  return "javascript_permission_list";
@@ -247,18 +247,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
              case ContentSettingsType.POPUPS:
              case ContentSettingsType.POPUPS:
                  return "popup_permission_list";
                  return "popup_permission_list";
              case ContentSettingsType.SOUND:
              case ContentSettingsType.SOUND:
-@@ -504,6 +506,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
-                 setUpCookiesPreference(preference);
+@@ -503,6 +505,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+                 setUpJavascriptPreference(preference);
              } else if (type == ContentSettingsType.GEOLOCATION) {
              } else if (type == ContentSettingsType.GEOLOCATION) {
                  setUpLocationPreference(preference);
                  setUpLocationPreference(preference);
 +            } else if (type == ContentSettingsType.JAVASCRIPT_JIT) {
 +            } else if (type == ContentSettingsType.JAVASCRIPT_JIT) {
 +                setUpJavascriptJitPreference(preference);
 +                setUpJavascriptJitPreference(preference);
              } else if (type == ContentSettingsType.NOTIFICATIONS) {
              } else if (type == ContentSettingsType.NOTIFICATIONS) {
                  setUpNotificationsPreference(preference, mSite.isEmbargoed(type));
                  setUpNotificationsPreference(preference, mSite.isEmbargoed(type));
-             } else {
-@@ -1032,6 +1036,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
+             } else if (type == ContentSettingsType.REQUEST_DESKTOP_SITE) {
+@@ -1023,6 +1027,23 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
          setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
          setupContentSettingsPreference(preference, currentValue, false /* isEmbargoed */);
-      }
+     }
  
  
 +    private void setUpJavascriptJitPreference(Preference preference) {
 +    private void setUpJavascriptJitPreference(Preference preference) {
 +        BrowserContextHandle browserContextHandle =
 +        BrowserContextHandle browserContextHandle =
@@ -337,7 +337,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
 +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
-@@ -218,6 +218,13 @@ public final class Website implements Serializable {
+@@ -213,6 +213,13 @@ public final class Website implements Serializable {
              } else {
              } else {
                  RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings");
                  RecordUserAction.record("JavascriptContentSetting.DisableBy.SiteSettings");
              }
              }
@@ -375,7 +375,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
    <message name="IDS_WEBSITE_SETTINGS_DEVICE_LOCATION" desc="Title for Location settings, which control which websites can access your location." meaning="Geolocation">
    <message name="IDS_WEBSITE_SETTINGS_DEVICE_LOCATION" desc="Title for Location settings, which control which websites can access your location." meaning="Geolocation">
      Location
      Location
    </message>
    </message>
-@@ -437,6 +440,20 @@
+@@ -473,6 +476,20 @@
      Block JavaScript for a specific site.
      Block JavaScript for a specific site.
    </message>
    </message>
  
  
@@ -431,7 +431,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
 diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
 diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
 --- a/components/page_info/page_info.cc
 --- a/components/page_info/page_info.cc
 +++ b/components/page_info/page_info.cc
 +++ b/components/page_info/page_info.cc
-@@ -121,6 +121,7 @@ ContentSettingsType kPermissionType[] = {
+@@ -122,6 +122,7 @@ ContentSettingsType kPermissionType[] = {
      ContentSettingsType::AR,
      ContentSettingsType::AR,
      ContentSettingsType::IDLE_DETECTION,
      ContentSettingsType::IDLE_DETECTION,
      ContentSettingsType::FEDERATED_IDENTITY_API,
      ContentSettingsType::FEDERATED_IDENTITY_API,
@@ -439,7 +439,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
  };
  };
  
  
  // Determines whether to show permission |type| in the Page Info UI. Only
  // Determines whether to show permission |type| in the Page Info UI. Only
-@@ -154,6 +155,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
+@@ -155,6 +156,11 @@ bool ShouldShowPermission(const PageInfo::PermissionInfo& info,
        return true;
        return true;
    }
    }
  
  

+ 1 - 1
build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -3877,9 +3877,9 @@
+@@ -3986,9 +3986,9 @@
      "expiry_milestone": 110
      "expiry_milestone": 110
    },
    },
    {
    {

+ 1 - 1
build/patches/Logcat-crash-reports-UI.patch

@@ -157,7 +157,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
 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
-@@ -632,6 +632,7 @@ static_library("ui") {
+@@ -633,6 +633,7 @@ static_library("ui") {
      "//third_party/re2",
      "//third_party/re2",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/webrtc_overrides:webrtc_component",
      "//third_party/zlib",
      "//third_party/zlib",

+ 12 - 12
build/patches/Modify-default-preferences.patch

@@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 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
-@@ -77,6 +77,7 @@
+@@ -78,6 +78,7 @@
  #include "components/autofill/core/common/autofill_switches.h"
  #include "components/autofill/core/common/autofill_switches.h"
  #include "components/autofill/core/common/autofill_util.h"
  #include "components/autofill/core/common/autofill_util.h"
  #include "components/autofill_assistant/browser/features.h"
  #include "components/autofill_assistant/browser/features.h"
@@ -38,7 +38,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  #include "components/browser_sync/browser_sync_switches.h"
  #include "components/browser_sync/browser_sync_switches.h"
  #include "components/browser_ui/site_settings/android/features.h"
  #include "components/browser_ui/site_settings/android/features.h"
  #include "components/browsing_data/core/features.h"
  #include "components/browsing_data/core/features.h"
-@@ -5668,6 +5669,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5756,6 +5757,11 @@ const FeatureEntry kFeatureEntries[] = {
           reading_list::switches::kReadLaterReminderNotification)},
           reading_list::switches::kReadLaterReminderNotification)},
  #endif
  #endif
  
  
@@ -65,7 +65,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows
 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
-@@ -1384,7 +1384,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
+@@ -1425,7 +1425,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
  void ChromeContentBrowserClient::RegisterProfilePrefs(
  void ChromeContentBrowserClient::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
      user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
    registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -77,7 +77,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
-@@ -2753,6 +2753,10 @@ const char kTabToGTSAnimationAndroidDescription[] =
+@@ -2793,6 +2793,10 @@ const char kTabToGTSAnimationAndroidDescription[] =
      "Allows users to see an animation when entering or leaving the "
      "Allows users to see an animation when entering or leaving the "
      "Grid Tab Switcher on phones.";
      "Grid Tab Switcher on phones.";
  
  
@@ -91,7 +91,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
-@@ -1549,6 +1549,9 @@ extern const char kTabGroupsUiImprovementsAndroidDescription[];
+@@ -1569,6 +1569,9 @@ extern const char kTabGroupsUiImprovementsAndroidDescription[];
  extern const char kTabToGTSAnimationAndroidName[];
  extern const char kTabToGTSAnimationAndroidName[];
  extern const char kTabToGTSAnimationAndroidDescription[];
  extern const char kTabToGTSAnimationAndroidDescription[];
  
  
@@ -116,7 +116,7 @@ diff --git a/chrome/browser/prefetch/prefetch_prefs.h b/chrome/browser/prefetch/
 diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
 diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
 --- a/chrome/browser/profiles/profile.cc
 --- a/chrome/browser/profiles/profile.cc
 +++ b/chrome/browser/profiles/profile.cc
 +++ b/chrome/browser/profiles/profile.cc
-@@ -278,7 +278,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
+@@ -282,7 +282,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
  void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
        prefs::kSearchSuggestEnabled,
        prefs::kSearchSuggestEnabled,
@@ -177,15 +177,15 @@ diff --git a/components/bookmarks/browser/BUILD.gn b/components/bookmarks/browse
 diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
 diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
 --- a/components/bookmarks/browser/bookmark_utils.cc
 --- a/components/bookmarks/browser/bookmark_utils.cc
 +++ b/components/bookmarks/browser/bookmark_utils.cc
 +++ b/components/bookmarks/browser/bookmark_utils.cc
-@@ -24,6 +24,7 @@
+@@ -25,6 +25,7 @@
  #include "build/build_config.h"
  #include "build/build_config.h"
  #include "components/bookmarks/browser/bookmark_client.h"
  #include "components/bookmarks/browser/bookmark_client.h"
  #include "components/bookmarks/browser/bookmark_model.h"
  #include "components/bookmarks/browser/bookmark_model.h"
 +#include "components/bookmarks/browser/features.h"
 +#include "components/bookmarks/browser/features.h"
  #include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
  #include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
+ #include "components/bookmarks/common/bookmark_metrics.h"
  #include "components/bookmarks/common/bookmark_pref_names.h"
  #include "components/bookmarks/common/bookmark_pref_names.h"
- #include "components/pref_registry/pref_registry_syncable.h"
-@@ -436,11 +437,14 @@ bool DoesBookmarkContainWords(const std::u16string& title,
+@@ -440,11 +441,14 @@ bool DoesBookmarkContainWords(const std::u16string& title,
  
  
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
  void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(
    registry->RegisterBooleanPref(
@@ -249,7 +249,7 @@ new file mode 100644
 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 --- a/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
 +++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -321,7 +321,7 @@ void ContentSettingsRegistry::Init() {
+@@ -324,7 +324,7 @@ void ContentSettingsRegistry::Init() {
             ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
             ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
  
  
    Register(ContentSettingsType::BACKGROUND_SYNC, "background-sync",
    Register(ContentSettingsType::BACKGROUND_SYNC, "background-sync",
@@ -258,7 +258,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
             AllowlistedSchemes(),
             AllowlistedSchemes(),
             ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
             ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
             WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
             WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
-@@ -421,7 +421,7 @@ void ContentSettingsRegistry::Init() {
+@@ -424,7 +424,7 @@ void ContentSettingsRegistry::Init() {
    // TODO(crbug.com/904439): Update this to "SECURE_ONLY" once
    // TODO(crbug.com/904439): Update this to "SECURE_ONLY" once
    // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure
    // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure
    // contexts.
    // contexts.
@@ -324,7 +324,7 @@ diff --git a/components/signin/internal/identity_manager/primary_account_manager
 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
-@@ -486,7 +486,7 @@ const char kIsolateOriginsFieldTrialParamName[] = "OriginsList";
+@@ -499,7 +499,7 @@ const char kIsolateOriginsFieldTrialParamName[] = "OriginsList";
  // the attribute. Note: At present, only iframes with origin-restricted
  // the attribute. Note: At present, only iframes with origin-restricted
  // sandboxes are isolated.
  // sandboxes are isolated.
  const base::Feature kIsolateSandboxedIframes{"IsolateSandboxedIframes",
  const base::Feature kIsolateSandboxedIframes{"IsolateSandboxedIframes",

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov