فهرست منبع

Release 74.0.3729.80

csagan5 6 سال پیش
والد
کامیت
a6ffa85a0e
87فایلهای تغییر یافته به همراه793 افزوده شده و 1253 حذف شده
  1. 6 2
      CHANGELOG.md
  2. 121 6
      build/filters/adblock_entries.h
  3. 19 45
      build/patches/AV1-codec-support.patch
  4. 2 2
      build/patches/Add-English-only-search-engine.patch
  5. 2 2
      build/patches/Add-Qwant-search-engine.patch
  6. 2 2
      build/patches/Add-StartPage-search-engine.patch
  7. 25 29
      build/patches/Add-a-flag-for-DNS-over-HTTPS.patch
  8. 15 15
      build/patches/Add-a-proxy-configuration-page.patch
  9. 18 18
      build/patches/Add-an-always-incognito-mode.patch
  10. 29 28
      build/patches/Add-bookmark-import-export-actions.patch
  11. 6 6
      build/patches/Add-custom-tab-intents-privacy-option.patch
  12. 2 2
      build/patches/Add-exit-menu-item.patch
  13. 16 16
      build/patches/Add-flag-to-configure-maximum-connections-per-host.patch
  14. 12 13
      build/patches/Add-flag-to-control-video-playback-resume-feature.patch
  15. 10 10
      build/patches/Add-flag-to-disable-IPv6-probes.patch
  16. 17 17
      build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch
  17. 6 6
      build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch
  18. 7 7
      build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
  19. 4 4
      build/patches/Add-option-to-use-home-page-as-NTP.patch
  20. 7 7
      build/patches/Add-site-settings-option-for-session-only-cookies.patch
  21. 66 62
      build/patches/Allow-building-without-safebrowsing-for-Android.patch
  22. 3 3
      build/patches/Allow-playing-audio-in-background.patch
  23. 1 1
      build/patches/Always-allow-partner-customisation.patch
  24. 2 2
      build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch
  25. 18 20
      build/patches/Always-show-home-page-settings.patch
  26. 2 2
      build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch
  27. 1 1
      build/patches/Battery-API-return-nothing.patch
  28. 10 10
      build/patches/Bromite-adblock-engine.patch
  29. 4 4
      build/patches/Canvas-fingerprinting-mitigations-for-image-data-and-webGL.patch
  30. 1 1
      build/patches/Disable-NTP-remote-suggestions-by-default.patch
  31. 1 1
      build/patches/Disable-Omaha-update-checks.patch
  32. 1 1
      build/patches/Disable-contextual-search-by-default.patch
  33. 1 1
      build/patches/Disable-data-saver.patch
  34. 1 1
      build/patches/Disable-fetching-of-all-field-trials.patch
  35. 0 23
      build/patches/Disable-hyperlink-auditing-by-default.patch
  36. 5 5
      build/patches/Disable-metrics-collection-for-NTP-tiles.patch
  37. 1 1
      build/patches/Disable-metrics-on-all-I-O-threads.patch
  38. 1 1
      build/patches/Disable-plugins-enumeration.patch
  39. 1 1
      build/patches/Disable-promos-displayed-in-bookmarks-manager.patch
  40. 3 3
      build/patches/Disable-references-to-fonts.googleapis.com.patch
  41. 1 1
      build/patches/Disable-seed-based-field-trials.patch
  42. 96 86
      build/patches/Disable-signin-and-data-saver-preferences.patch
  43. 1 1
      build/patches/Disable-signin-data-reduction-promos.patch
  44. 4 4
      build/patches/Do-not-grant-notifications-to-default-search-engine.patch
  45. 1 1
      build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
  46. 1 1
      build/patches/Enable-history-requirement-of-user-gesture.patch
  47. 3 29
      build/patches/Enable-secure-DNS-mode-by-default-in-DnsTransaction.patch
  48. 4 4
      build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch
  49. 1 1
      build/patches/Fix-crash-when-accessing-page-info-site-settings.patch
  50. 5 5
      build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch
  51. 11 13
      build/patches/Modify-default-preferences.patch
  52. 1 1
      build/patches/Never-send-any-crash-upload-data.patch
  53. 1 1
      build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch
  54. 1 1
      build/patches/Open-YouTube-links-in-Bromite.patch
  55. 1 1
      build/patches/Punt-the-Widevine-version-string.patch
  56. 4 4
      build/patches/Remove-Sync-and-Translate-menu.patch
  57. 2 2
      build/patches/Remove-help-menu-item.patch
  58. 3 3
      build/patches/Remove-request-for-account-access-permission-on-reboot.patch
  59. 35 50
      build/patches/Rollback-android-minSdkVersion-from-19-KitKat-to-16-JellyBean.patch
  60. 3 3
      build/patches/Skip-the-first-run-and-metrics.patch
  61. 0 481
      build/patches/Support-different-secure-DNS-modes-within-DnsTransaction.patch
  62. 1 1
      build/patches/Switch-to-fstack-protector-strong.patch
  63. 2 2
      build/patches/Use-4-tile-rows-never-show-logo.patch
  64. 2 2
      build/patches/User-Agent-anonymize.patch
  65. 10 10
      build/patches/autofill-disable-autofill-download-manager.patch
  66. 1 1
      build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch
  67. 10 10
      build/patches/getClientRects-getBoundingClientRect-measureText-add-fingerprinting-mitigation.patch
  68. 2 2
      build/patches/kill-Auth.patch
  69. 23 28
      build/patches/kill-GCM.patch
  70. 1 1
      build/patches/kill-Location-fall-back-to-system.patch
  71. 1 1
      build/patches/kill-TOS-and-metrics-opt-out.patch
  72. 1 1
      build/patches/kill-Vision.patch
  73. 1 1
      build/patches/openH264-enable-ARM-ARM64-optimizations.patch
  74. 1 1
      build/patches/profile-resetter-do-not-tick-send-settings-by-default.patch
  75. 6 6
      build/patches/promo-disable-Google-promotion-fetching.patch
  76. 3 3
      build/patches/safe_browsing-disable-cookie-transmission.patch
  77. 2 2
      build/patches/safe_browsing-disable-incident-reporting.patch
  78. 1 1
      build/patches/ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-Google.patch
  79. 9 9
      build/patches/ungoogled-chromium-Disable-Gaia.patch
  80. 3 3
      build/patches/ungoogled-chromium-Disable-Google-host-detection.patch
  81. 1 1
      build/patches/ungoogled-chromium-Disable-profile-avatar-downloading.patch
  82. 75 82
      build/patches/ungoogled-chromium-Disable-safe-browsing.patch
  83. 3 3
      build/patches/ungoogled-chromium-Disable-translate-integration.patch
  84. 1 1
      build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch
  85. 2 2
      build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch
  86. 2 2
      build/patches/updater-disable-updater-pings.patch
  87. 1 3
      build/patches_list.txt

+ 6 - 2
CHANGELOG.md

@@ -1,12 +1,16 @@
+# 74.0.3729.80
+* increase minimum SDK version to 17 (Jelly Bean 4.2)
+* dropped obsolete patch for hyperlink auditing disable
+
 # 73.0.3683.107
 # 73.0.3683.107
-* removed patch to disable smooth scrolling
+* dropped patch to disable smooth scrolling
 * fixed custom tab intents issue (fixes https://github.com/bromite/bromite/issues/279)
 * fixed custom tab intents issue (fixes https://github.com/bromite/bromite/issues/279)
 
 
 # 73.0.3683.105
 # 73.0.3683.105
 * removed Fanboy's Annoyance List and Peter Lowe's adservers list from filters
 * removed Fanboy's Annoyance List and Peter Lowe's adservers list from filters
 
 
 # 73.0.3683.97 
 # 73.0.3683.97 
-* remove patch to hide NTP tiles
+* dropped redundant patch to hide NTP tiles (use home page + about:blank)
 
 
 # 73.0.3683.88
 # 73.0.3683.88
 * add option to use home page as NTP
 * add option to use home page as NTP

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 121 - 6
build/filters/adblock_entries.h


+ 19 - 45
build/patches/AV1-codec-support.patch

@@ -18,16 +18,14 @@ Report AV1 as playable on Android
  third_party/libaom/source/config/linux/arm64/config/aom_config.h    | 2 +-
  third_party/libaom/source/config/linux/arm64/config/aom_config.h    | 2 +-
  .../libaom/source/config/linux/generic/config/aom_config.asm        | 2 +-
  .../libaom/source/config/linux/generic/config/aom_config.asm        | 2 +-
  third_party/libaom/source/config/linux/generic/config/aom_config.h  | 2 +-
  third_party/libaom/source/config/linux/generic/config/aom_config.h  | 2 +-
- third_party/libaom/source/config/linux/ia32/config/aom_config.asm   | 2 +-
- third_party/libaom/source/config/linux/ia32/config/aom_config.h     | 2 +-
  third_party/libaom/source/config/linux/x64/config/aom_config.asm    | 2 +-
  third_party/libaom/source/config/linux/x64/config/aom_config.asm    | 2 +-
  third_party/libaom/source/config/linux/x64/config/aom_config.h      | 2 +-
  third_party/libaom/source/config/linux/x64/config/aom_config.h      | 2 +-
- 17 files changed, 28 insertions(+), 17 deletions(-)
+ 15 files changed, 26 insertions(+), 15 deletions(-)
 
 
 diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
 diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
 --- a/media/base/mime_util_internal.cc
 --- a/media/base/mime_util_internal.cc
 +++ b/media/base/mime_util_internal.cc
 +++ b/media/base/mime_util_internal.cc
-@@ -540,9 +540,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid(
+@@ -539,9 +539,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid(
      case THEORA:
      case THEORA:
        return false;
        return false;
  
  
@@ -45,7 +43,7 @@ diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
 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
-@@ -74,7 +74,7 @@ if (enable_av1_decoder) {
+@@ -74,7 +74,7 @@ if (enable_libaom_decoder) {
        sources = aom_dsp_common_asm_sse2
        sources = aom_dsp_common_asm_sse2
        sources += aom_dsp_common_asm_ssse3
        sources += aom_dsp_common_asm_ssse3
        sources += aom_ports_asm_x86
        sources += aom_ports_asm_x86
@@ -54,7 +52,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
      }
      }
  
  
-@@ -158,7 +158,7 @@ if (enable_av1_decoder) {
+@@ -158,7 +158,7 @@ if (enable_libaom_decoder) {
        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" ]
@@ -62,8 +60,8 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
 +        cflags = [ "-mfpu=neon", "-fPIC" ]
 +        cflags = [ "-mfpu=neon", "-fPIC" ]
        }
        }
        configs += [ ":libaom_config" ]
        configs += [ ":libaom_config" ]
-       sources = aom_av1_common_intrin_neon
-@@ -198,6 +198,8 @@ if (enable_av1_decoder) {
+ 
+@@ -203,6 +203,8 @@ if (enable_libaom_decoder) {
      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" ]
@@ -75,7 +73,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
-@@ -483,6 +483,11 @@ aom_mem_sources = [
+@@ -488,6 +488,11 @@ aom_mem_sources = [
  
  
  aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
  aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
  
  
@@ -97,8 +95,8 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
 -CONFIG_PIC equ 0
 -CONFIG_PIC equ 0
 +CONFIG_PIC equ 1
 +CONFIG_PIC equ 1
  CONFIG_RD_DEBUG equ 0
  CONFIG_RD_DEBUG equ 0
- CONFIG_REDUCED_ENCODER_BORDER equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 1
  CONFIG_RUNTIME_CPU_DETECT equ 1
+ CONFIG_SHARED equ 0
 diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
 diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
@@ -109,8 +107,8 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
 -#define CONFIG_PIC 0
 -#define CONFIG_PIC 0
 +#define CONFIG_PIC 1
 +#define CONFIG_PIC 1
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
  #define CONFIG_RUNTIME_CPU_DETECT 1
  #define CONFIG_RUNTIME_CPU_DETECT 1
+ #define CONFIG_SHARED 0
 diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
 diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
@@ -121,8 +119,8 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.a
 -CONFIG_PIC equ 0
 -CONFIG_PIC equ 0
 +CONFIG_PIC equ 1
 +CONFIG_PIC equ 1
  CONFIG_RD_DEBUG equ 0
  CONFIG_RD_DEBUG equ 0
- CONFIG_REDUCED_ENCODER_BORDER equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 0
+ CONFIG_SHARED equ 0
 diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
 diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
@@ -133,8 +131,8 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
 -#define CONFIG_PIC 0
 -#define CONFIG_PIC 0
 +#define CONFIG_PIC 1
 +#define CONFIG_PIC 1
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
  #define CONFIG_RUNTIME_CPU_DETECT 0
  #define CONFIG_RUNTIME_CPU_DETECT 0
+ #define CONFIG_SHARED 0
 diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
 diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
@@ -145,8 +143,8 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/
 -CONFIG_PIC equ 0
 -CONFIG_PIC equ 0
 +CONFIG_PIC equ 1
 +CONFIG_PIC equ 1
  CONFIG_RD_DEBUG equ 0
  CONFIG_RD_DEBUG equ 0
- CONFIG_REDUCED_ENCODER_BORDER equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 0
+ CONFIG_SHARED equ 0
 diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h
 diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm/config/aom_config.h
@@ -157,8 +155,8 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/th
 -#define CONFIG_PIC 0
 -#define CONFIG_PIC 0
 +#define CONFIG_PIC 1
 +#define CONFIG_PIC 1
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
  #define CONFIG_RUNTIME_CPU_DETECT 0
  #define CONFIG_RUNTIME_CPU_DETECT 0
+ #define CONFIG_SHARED 0
 diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
 diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
@@ -169,8 +167,8 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
 -CONFIG_PIC equ 0
 -CONFIG_PIC equ 0
 +CONFIG_PIC equ 1
 +CONFIG_PIC equ 1
  CONFIG_RD_DEBUG equ 0
  CONFIG_RD_DEBUG equ 0
- CONFIG_REDUCED_ENCODER_BORDER equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 0
+ CONFIG_SHARED equ 0
 diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
 diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
@@ -181,8 +179,8 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/
 -#define CONFIG_PIC 0
 -#define CONFIG_PIC 0
 +#define CONFIG_PIC 1
 +#define CONFIG_PIC 1
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
  #define CONFIG_RUNTIME_CPU_DETECT 0
  #define CONFIG_RUNTIME_CPU_DETECT 0
+ #define CONFIG_SHARED 0
 diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
 diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
@@ -193,8 +191,8 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.as
 -CONFIG_PIC equ 0
 -CONFIG_PIC equ 0
 +CONFIG_PIC equ 1
 +CONFIG_PIC equ 1
  CONFIG_RD_DEBUG equ 0
  CONFIG_RD_DEBUG equ 0
- CONFIG_REDUCED_ENCODER_BORDER equ 0
  CONFIG_RUNTIME_CPU_DETECT equ 1
  CONFIG_RUNTIME_CPU_DETECT equ 1
+ CONFIG_SHARED equ 0
 diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h
 diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/generic/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/generic/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/generic/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/generic/config/aom_config.h
@@ -205,32 +203,8 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h
 -#define CONFIG_PIC 0
 -#define CONFIG_PIC 0
 +#define CONFIG_PIC 1
 +#define CONFIG_PIC 1
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
- #define CONFIG_RUNTIME_CPU_DETECT 1
-diff --git a/third_party/libaom/source/config/linux/ia32/config/aom_config.asm b/third_party/libaom/source/config/linux/ia32/config/aom_config.asm
---- a/third_party/libaom/source/config/linux/ia32/config/aom_config.asm
-+++ b/third_party/libaom/source/config/linux/ia32/config/aom_config.asm
-@@ -35,7 +35,7 @@
- %define CONFIG_NORMAL_TILE_MODE 1
- %define CONFIG_ONE_PASS_SVM 0
- %define CONFIG_OS_SUPPORT 1
--%define CONFIG_PIC 0
-+%define CONFIG_PIC 1
- %define CONFIG_RD_DEBUG 0
- %define CONFIG_REDUCED_ENCODER_BORDER 0
- %define CONFIG_RUNTIME_CPU_DETECT 1
-diff --git a/third_party/libaom/source/config/linux/ia32/config/aom_config.h b/third_party/libaom/source/config/linux/ia32/config/aom_config.h
---- a/third_party/libaom/source/config/linux/ia32/config/aom_config.h
-+++ b/third_party/libaom/source/config/linux/ia32/config/aom_config.h
-@@ -47,7 +47,7 @@
- #define CONFIG_NORMAL_TILE_MODE 1
- #define CONFIG_ONE_PASS_SVM 0
- #define CONFIG_OS_SUPPORT 1
--#define CONFIG_PIC 0
-+#define CONFIG_PIC 1
- #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
  #define CONFIG_RUNTIME_CPU_DETECT 1
  #define CONFIG_RUNTIME_CPU_DETECT 1
+ #define CONFIG_SHARED 0
 diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
 diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm
 --- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
 +++ b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
@@ -241,8 +215,8 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/
 -%define CONFIG_PIC 0
 -%define CONFIG_PIC 0
 +%define CONFIG_PIC 1
 +%define CONFIG_PIC 1
  %define CONFIG_RD_DEBUG 0
  %define CONFIG_RD_DEBUG 0
- %define CONFIG_REDUCED_ENCODER_BORDER 0
  %define CONFIG_RUNTIME_CPU_DETECT 1
  %define CONFIG_RUNTIME_CPU_DETECT 1
+ %define CONFIG_SHARED 0
 diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h
 diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/x64/config/aom_config.h
 --- a/third_party/libaom/source/config/linux/x64/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/x64/config/aom_config.h
 +++ b/third_party/libaom/source/config/linux/x64/config/aom_config.h
@@ -253,8 +227,8 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/th
 -#define CONFIG_PIC 0
 -#define CONFIG_PIC 0
 +#define CONFIG_PIC 1
 +#define CONFIG_PIC 1
  #define CONFIG_RD_DEBUG 0
  #define CONFIG_RD_DEBUG 0
- #define CONFIG_REDUCED_ENCODER_BORDER 0
  #define CONFIG_RUNTIME_CPU_DETECT 1
  #define CONFIG_RUNTIME_CPU_DETECT 1
+ #define CONFIG_SHARED 0
 -- 
 -- 
 2.11.0
 2.11.0
 
 

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

@@ -17,8 +17,8 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
      // Increment this if you change the data in ways that mean users with
      // Increment this if you change the data in ways that mean users with
      // existing data should get a new version. Otherwise, existing data may
      // existing data should get a new version. Otherwise, existing data may
      // continue to be used and updates made here will not always appear.
      // continue to be used and updates made here will not always appear.
--    "kCurrentDataVersion": 111
-+    "kCurrentDataVersion": 112
+-    "kCurrentDataVersion": 112
++    "kCurrentDataVersion": 113
    },
    },
  
  
    // The following engines are included in country lists and are added to the
    // The following engines are included in country lists and are added to the

+ 2 - 2
build/patches/Add-Qwant-search-engine.patch

@@ -16,8 +16,8 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
      // Increment this if you change the data in ways that mean users with
      // Increment this if you change the data in ways that mean users with
      // existing data should get a new version. Otherwise, existing data may
      // existing data should get a new version. Otherwise, existing data may
      // continue to be used and updates made here will not always appear.
      // continue to be used and updates made here will not always appear.
--    "kCurrentDataVersion": 112
-+    "kCurrentDataVersion": 113
+-    "kCurrentDataVersion": 113
++    "kCurrentDataVersion": 114
    },
    },
  
  
    // The following engines are included in country lists and are added to the
    // The following engines are included in country lists and are added to the

+ 2 - 2
build/patches/Add-StartPage-search-engine.patch

@@ -15,8 +15,8 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
      // Increment this if you change the data in ways that mean users with
      // Increment this if you change the data in ways that mean users with
      // existing data should get a new version. Otherwise, existing data may
      // existing data should get a new version. Otherwise, existing data may
      // continue to be used and updates made here will not always appear.
      // continue to be used and updates made here will not always appear.
--    "kCurrentDataVersion": 110
-+    "kCurrentDataVersion": 111
+-    "kCurrentDataVersion": 111
++    "kCurrentDataVersion": 112
    },
    },
  
  
    // The following engines are included in country lists and are added to the
    // The following engines are included in country lists and are added to the

+ 25 - 29
build/patches/Add-a-flag-for-DNS-over-HTTPS.patch

@@ -10,7 +10,7 @@ Do not fallback to UDP when using DoH
 
 
 See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-14.txt
 See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-14.txt
 ---
 ---
- chrome/browser/about_flags.cc                      | 14 +++++++++++
+ chrome/browser/about_flags.cc                      | 11 +++++++++
  chrome/browser/flag_descriptions.cc                |  3 +++
  chrome/browser/flag_descriptions.cc                |  3 +++
  chrome/browser/flag_descriptions.h                 |  3 +++
  chrome/browser/flag_descriptions.h                 |  3 +++
  .../browser/net/system_network_context_manager.cc  | 17 +++++++------
  .../browser/net/system_network_context_manager.cc  | 17 +++++++------
@@ -18,14 +18,14 @@ See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-14.txt
  .../common/network_features.h                      |  5 +++-
  .../common/network_features.h                      |  5 +++-
  .../common/network_switch_list.h                   |  4 ++++
  .../common/network_switch_list.h                   |  4 ++++
  net/base/load_flags_list.h                         |  6 +++++
  net/base/load_flags_list.h                         |  6 +++++
- net/dns/dns_transaction.cc                         | 28 +++-------------------
+ net/dns/dns_transaction.cc                         | 27 +++------------------
  net/url_request/url_request_http_job.cc            | 28 +++++++++++++---------
  net/url_request/url_request_http_job.cc            | 28 +++++++++++++---------
- 10 files changed, 67 insertions(+), 48 deletions(-)
+ 10 files changed, 64 insertions(+), 47 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
-@@ -423,6 +423,14 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = {
+@@ -398,6 +398,14 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = {
       base::size(kCCTModuleCache_ThirtyMinutes), nullptr},
       base::size(kCCTModuleCache_ThirtyMinutes), nullptr},
  };
  };
  
  
@@ -39,24 +39,21 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 +
 +
  #endif  // OS_ANDROID
  #endif  // OS_ANDROID
  
  
- const FeatureEntry::Choice kMHTMLGeneratorOptionChoices[] = {
-@@ -3433,6 +3441,12 @@ const FeatureEntry kFeatureEntries[] = {
-      FEATURE_VALUE_TYPE(features::kAsyncDns)},
- #endif  // defined(OS_ANDROID)
- 
-+#if defined(OS_ANDROID)
+ const FeatureEntry::Choice kEnableGpuRasterizationChoices[] = {
+@@ -3400,6 +3408,9 @@ const FeatureEntry kFeatureEntries[] = {
+      FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabSwitcherOnReturn,
+                                     kTabSwitcherOnReturnVariations,
+                                     "TabSwitcherOnReturn")},
 +    {"enable-dns-over-https", flag_descriptions::kDnsOverHttpsName,
 +    {"enable-dns-over-https", flag_descriptions::kDnsOverHttpsName,
 +     flag_descriptions::kDnsOverHttpsDescription, kOsAndroid,
 +     flag_descriptions::kDnsOverHttpsDescription, kOsAndroid,
 +     MULTI_VALUE_TYPE(kDnsOverHttpsChoices)},
 +     MULTI_VALUE_TYPE(kDnsOverHttpsChoices)},
-+#endif  // defined(OS_ANDROID)
-+
-     {"enable-overflow-icons-for-media-controls",
-      flag_descriptions::kOverflowIconsForMediaControlsName,
-      flag_descriptions::kOverflowIconsForMediaControlsDescription, kOsAll,
+ #endif
+ 
+     {"enable-built-in-module-all", flag_descriptions::kBuiltInModuleAllName,
 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
-@@ -2292,6 +2292,9 @@ const char kAutoFetchOnNetErrorPageDescription[] =
+@@ -2209,6 +2209,9 @@ const char kAutoFetchOnNetErrorPageDescription[] =
      "When enabled, and navigation fails with an offline error, schedule a "
      "When enabled, and navigation fails with an offline error, schedule a "
      "fetch of the page when online again.";
      "fetch of the page when online again.";
  
  
@@ -69,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
-@@ -1362,6 +1362,9 @@ extern const char kAsyncDnsDescription[];
+@@ -1306,6 +1306,9 @@ extern const char kAsyncDnsDescription[];
  extern const char kAutoFetchOnNetErrorPageName[];
  extern const char kAutoFetchOnNetErrorPageName[];
  extern const char kAutoFetchOnNetErrorPageDescription[];
  extern const char kAutoFetchOnNetErrorPageDescription[];
  
  
@@ -82,7 +79,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
-@@ -24,6 +24,7 @@
+@@ -25,6 +25,7 @@
  #include "chrome/browser/component_updater/sth_set_component_installer.h"
  #include "chrome/browser/component_updater/sth_set_component_installer.h"
  #include "chrome/browser/io_thread.h"
  #include "chrome/browser/io_thread.h"
  #include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h"
  #include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h"
@@ -90,7 +87,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/ssl/ssl_config_service_manager.h"
  #include "chrome/browser/ssl/ssl_config_service_manager.h"
  #include "chrome/common/channel_info.h"
  #include "chrome/common/channel_info.h"
-@@ -121,6 +122,7 @@ void GetStubResolverConfig(
+@@ -122,6 +123,7 @@ void GetStubResolverConfig(
        if (!net::dns_util::IsValidDoHTemplate(
        if (!net::dns_util::IsValidDoHTemplate(
                doh_server_list[i].GetString(),
                doh_server_list[i].GetString(),
                doh_server_method_list[i].GetString())) {
                doh_server_method_list[i].GetString())) {
@@ -98,7 +95,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
          continue;
          continue;
        }
        }
  
  
-@@ -395,15 +397,12 @@ SystemNetworkContextManager::SystemNetworkContextManager(
+@@ -401,15 +403,12 @@ SystemNetworkContextManager::SystemNetworkContextManager(
                                      base::Value(ShouldEnableAsyncDns()));
                                      base::Value(ShouldEnableAsyncDns()));
    base::ListValue default_doh_servers;
    base::ListValue default_doh_servers;
    base::ListValue default_doh_server_methods;
    base::ListValue default_doh_server_methods;
@@ -183,11 +180,10 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
 diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
 diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
 --- a/net/dns/dns_transaction.cc
 --- a/net/dns/dns_transaction.cc
 +++ b/net/dns/dns_transaction.cc
 +++ b/net/dns/dns_transaction.cc
-@@ -352,30 +352,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
- 
-     HttpRequestHeaders extra_request_headers;
+@@ -358,29 +358,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
      extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
      extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
--
+ 
+     DCHECK(url_request_context);
 -    request_ = url_request_context->CreateRequest(
 -    request_ = url_request_context->CreateRequest(
 -        url, request_priority_, this,
 -        url, request_priority_, this,
 -        net::DefineNetworkTrafficAnnotation("dns_over_https", R"(
 -        net::DefineNetworkTrafficAnnotation("dns_over_https", R"(
@@ -215,7 +211,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
      net_log_ = request_->net_log();
      net_log_ = request_->net_log();
  
  
      if (use_post) {
      if (use_post) {
-@@ -391,6 +368,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
+@@ -396,6 +374,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
  
  
      request_->SetExtraRequestHeaders(extra_request_headers);
      request_->SetExtraRequestHeaders(extra_request_headers);
      request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
      request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
@@ -223,7 +219,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
                             LOAD_BYPASS_PROXY);
                             LOAD_BYPASS_PROXY);
      request_->set_allow_credentials(false);
      request_->set_allow_credentials(false);
    }
    }
-@@ -807,7 +785,7 @@ class DnsTransactionImpl : public DnsTransaction,
+@@ -815,7 +794,7 @@ class DnsTransactionImpl : public DnsTransaction,
          had_tcp_attempt_(false),
          had_tcp_attempt_(false),
          doh_attempt_(false),
          doh_attempt_(false),
          first_server_index_(0),
          first_server_index_(0),
@@ -235,7 +231,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
 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
-@@ -423,17 +423,21 @@ void URLRequestHttpJob::Start() {
+@@ -425,17 +425,21 @@ void URLRequestHttpJob::Start() {
    // plugin could set a referrer although sending the referrer is inhibited.
    // plugin could set a referrer although sending the referrer is inhibited.
    request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
    request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
  
  
@@ -263,7 +259,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
  
  
    AddExtraHeaders();
    AddExtraHeaders();
    AddCookieHeaderAndStart();
    AddCookieHeaderAndStart();
-@@ -652,10 +656,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
+@@ -659,10 +663,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
      } else {
      } else {
        // Advertise "br" encoding only if transferred data is opaque to proxy.
        // Advertise "br" encoding only if transferred data is opaque to proxy.
        bool advertise_brotli = false;
        bool advertise_brotli = false;
@@ -280,7 +276,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
          }
          }
        }
        }
  
  
-@@ -673,7 +679,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
+@@ -680,7 +686,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
      }
      }
    }
    }
  
  

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

@@ -66,7 +66,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 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
-@@ -237,6 +237,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
+@@ -236,6 +236,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    builtins_to_provide.push_back(
    builtins_to_provide.push_back(
        base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
        base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
    builtins_to_provide.push_back(
    builtins_to_provide.push_back(
@@ -78,7 +78,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
 diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
 --- a/chrome/browser/browser_resources.grd
 --- a/chrome/browser/browser_resources.grd
 +++ b/chrome/browser/browser_resources.grd
 +++ b/chrome/browser/browser_resources.grd
-@@ -209,6 +209,8 @@
+@@ -213,6 +213,8 @@
          <include name="IDR_SNIPPETS_INTERNALS_CSS" file="resources\snippets_internals\snippets_internals.css" compress="gzip" type="BINDATA" />
          <include name="IDR_SNIPPETS_INTERNALS_CSS" file="resources\snippets_internals\snippets_internals.css" compress="gzip" type="BINDATA" />
          <include name="IDR_SNIPPETS_INTERNALS_JS" file="resources\snippets_internals\snippets_internals.js" compress="gzip" type="BINDATA" />
          <include name="IDR_SNIPPETS_INTERNALS_JS" file="resources\snippets_internals\snippets_internals.js" compress="gzip" type="BINDATA" />
          <include name="IDR_SNIPPETS_INTERNALS_MOJO_JS" file="${root_gen_dir}\chrome\browser\ui\webui\snippets_internals\snippets_internals.mojom.js" use_base_dir="false" type="BINDATA" compress="gzip" />
          <include name="IDR_SNIPPETS_INTERNALS_MOJO_JS" file="${root_gen_dir}\chrome\browser\ui\webui\snippets_internals\snippets_internals.mojom.js" use_base_dir="false" type="BINDATA" compress="gzip" />
@@ -90,7 +90,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
 diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
 diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
 --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
 --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
 +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
 +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
-@@ -158,7 +158,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
+@@ -161,7 +161,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
      SetValue(
      SetValue(
          proxy_config::prefs::kProxy,
          proxy_config::prefs::kProxy,
          std::make_unique<base::Value>(ProxyConfigDictionary::CreateFixedServers(
          std::make_unique<base::Value>(ProxyConfigDictionary::CreateFixedServers(
@@ -508,7 +508,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
-@@ -266,6 +266,8 @@ jumbo_split_static_library("ui") {
+@@ -271,6 +271,8 @@ jumbo_split_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",
@@ -521,14 +521,14 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 @@ -51,6 +51,7 @@
 @@ -51,6 +51,7 @@
- #include "chrome/browser/ui/webui/policy_tool_ui.h"
+ #include "chrome/browser/ui/webui/password_manager_internals/password_manager_internals_ui.h"
  #include "chrome/browser/ui/webui/policy_ui.h"
  #include "chrome/browser/ui/webui/policy_ui.h"
  #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
  #include "chrome/browser/ui/webui/predictors/predictors_ui.h"
 +#include "chrome/browser/ui/webui/proxy_config_ui.h"
 +#include "chrome/browser/ui/webui/proxy_config_ui.h"
  #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
  #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
  #include "chrome/browser/ui/webui/settings/md_settings_ui.h"
  #include "chrome/browser/ui/webui/settings/md_settings_ui.h"
  #include "chrome/browser/ui/webui/settings_utils.h"
  #include "chrome/browser/ui/webui/settings_utils.h"
-@@ -378,6 +379,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -386,6 +387,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>;
@@ -982,7 +982,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
-@@ -182,6 +182,8 @@ const char kChromeUINativePhysicalWebDiagnosticsURL[] =
+@@ -177,6 +177,8 @@ const char kChromeUINativePhysicalWebDiagnosticsURL[] =
  const char kChromeUINativeScheme[] = "chrome-native";
  const char kChromeUINativeScheme[] = "chrome-native";
  const char kChromeUIOfflineInternalsHost[] = "offline-internals";
  const char kChromeUIOfflineInternalsHost[] = "offline-internals";
  const char kChromeUIPhysicalWebDiagnosticsHost[] = "physical-web-diagnostics";
  const char kChromeUIPhysicalWebDiagnosticsHost[] = "physical-web-diagnostics";
@@ -991,7 +991,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
  const char kChromeUISnippetsInternalsHost[] = "snippets-internals";
  const char kChromeUISnippetsInternalsHost[] = "snippets-internals";
  const char kChromeUIWebApksHost[] = "webapks";
  const char kChromeUIWebApksHost[] = "webapks";
  #endif
  #endif
-@@ -351,6 +353,7 @@ const char* const kChromeHostURLs[] = {
+@@ -354,6 +356,7 @@ const char* const kChromeHostURLs[] = {
      kChromeUIPasswordManagerInternalsHost,
      kChromeUIPasswordManagerInternalsHost,
      kChromeUIPolicyHost,
      kChromeUIPolicyHost,
      kChromeUIPredictorsHost,
      kChromeUIPredictorsHost,
@@ -999,7 +999,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
      kChromeUIQuotaInternalsHost,
      kChromeUIQuotaInternalsHost,
      kChromeUISignInInternalsHost,
      kChromeUISignInInternalsHost,
      kChromeUISiteEngagementHost,
      kChromeUISiteEngagementHost,
-@@ -385,6 +388,7 @@ const char* const kChromeHostURLs[] = {
+@@ -388,6 +391,7 @@ const char* const kChromeHostURLs[] = {
  #if !defined(OS_ANDROID)
  #if !defined(OS_ANDROID)
  #if !defined(OS_CHROMEOS)
  #if !defined(OS_CHROMEOS)
      kChromeUIAppLauncherPageHost,
      kChromeUIAppLauncherPageHost,
@@ -1010,7 +1010,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
-@@ -103,6 +103,8 @@ extern const char kChromeUIMemoryInternalsHost[];
+@@ -102,6 +102,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[];
@@ -1022,12 +1022,12 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const
 diff --git a/components/policy/core/browser/proxy_policy_handler.cc b/components/policy/core/browser/proxy_policy_handler.cc
 diff --git a/components/policy/core/browser/proxy_policy_handler.cc b/components/policy/core/browser/proxy_policy_handler.cc
 --- a/components/policy/core/browser/proxy_policy_handler.cc
 --- a/components/policy/core/browser/proxy_policy_handler.cc
 +++ b/components/policy/core/browser/proxy_policy_handler.cc
 +++ b/components/policy/core/browser/proxy_policy_handler.cc
-@@ -203,7 +203,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
+@@ -199,7 +199,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
+           bypass_list->GetAsString(&bypass_list_string);
          prefs->SetValue(proxy_config::prefs::kProxy,
          prefs->SetValue(proxy_config::prefs::kProxy,
-                         std::make_unique<base::Value>(
-                             ProxyConfigDictionary::CreateFixedServers(
--                                proxy_server, bypass_list_string)));
-+                                proxy_server, bypass_list_string, false)));
+                         ProxyConfigDictionary::CreateFixedServers(
+-                            proxy_server, bypass_list_string));
++                            proxy_server, bypass_list_string, false));
        }
        }
        break;
        break;
      }
      }

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

@@ -19,7 +19,7 @@ clicked links to launch as incognito.
 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
-@@ -40,6 +40,11 @@
+@@ -39,6 +39,11 @@
          android:key="usage_and_crash_reports"
          android:key="usage_and_crash_reports"
          android:title="@string/usage_and_crash_reports_title_legacy"
          android:title="@string/usage_and_crash_reports_title_legacy"
          android:fragment="org.chromium.chrome.browser.preferences.privacy.UsageAndCrashReportsPreferenceFragment" />
          android:fragment="org.chromium.chrome.browser.preferences.privacy.UsageAndCrashReportsPreferenceFragment" />
@@ -112,7 +112,7 @@ new file mode 100644
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-@@ -261,6 +261,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -260,6 +260,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
      private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
      private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
  
  
      // Observes when sync becomes ready to create the mContextReporter.
      // Observes when sync becomes ready to create the mContextReporter.
@@ -120,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
      private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
      private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
  
  
      @Nullable
      @Nullable
-@@ -1728,6 +1729,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -1731,6 +1732,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");
          }
          }
@@ -151,7 +151,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
      private AppMenu mAppMenu;
      private AppMenu mAppMenu;
      private AppMenuDragHelper mAppMenuDragHelper;
      private AppMenuDragHelper mAppMenuDragHelper;
      private Menu mMenu;
      private Menu mMenu;
-@@ -167,6 +171,14 @@ public class AppMenuHandler {
+@@ -182,6 +186,14 @@ public class AppMenuHandler {
          if (mDelegate.shouldShowHeader(appRect.height())) {
          if (mDelegate.shouldShowHeader(appRect.height())) {
              headerResourceId = mDelegate.getHeaderResourceId();
              headerResourceId = mDelegate.getHeaderResourceId();
          }
          }
@@ -164,8 +164,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
 +        }
 +        }
 +
 +
          mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y,
          mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y,
-                 footerResourceId, headerResourceId, mHighlightMenuId, showFromBottom);
-         mAppMenuDragHelper.onShow(startDragging);
+                 footerResourceId, headerResourceId, mHighlightMenuId, mCircleHighlight,
+                 showFromBottom);
 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
@@ -216,12 +216,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
 @@ -16,6 +18,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
 @@ -16,6 +18,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
  import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
  import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
  import org.chromium.chrome.browser.tab.Tab;
  import org.chromium.chrome.browser.tab.Tab;
- import org.chromium.chrome.browser.tab.TabDelegateFactory;
+ import org.chromium.chrome.browser.tab.TabBuilder;
 +import org.chromium.chrome.browser.tab.TabObserver;
 +import org.chromium.chrome.browser.tab.TabObserver;
+ import org.chromium.chrome.browser.tab.TabDelegateFactory;
+ import org.chromium.chrome.browser.tab.TabParentIntent;
  import org.chromium.chrome.browser.tab.TabRedirectHandler;
  import org.chromium.chrome.browser.tab.TabRedirectHandler;
- import org.chromium.chrome.browser.tab.TabState;
- import org.chromium.chrome.browser.util.IntentUtils;
-@@ -33,6 +36,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
+@@ -35,6 +38,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
  
  
      private final ChromeActivity mActivity;
      private final ChromeActivity mActivity;
      private final boolean mIncognito;
      private final boolean mIncognito;
@@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
  
  
      private WindowAndroid mNativeWindow;
      private WindowAndroid mNativeWindow;
      private TabModel mTabModel;
      private TabModel mTabModel;
-@@ -44,6 +48,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
+@@ -46,6 +50,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
          mActivity = activity;
          mActivity = activity;
          mNativeWindow = nativeWindow;
          mNativeWindow = nativeWindow;
          mIncognito = incognito;
          mIncognito = incognito;
@@ -241,7 +241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
      }
      }
  
  
      @Override
      @Override
-@@ -154,6 +163,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
+@@ -170,6 +179,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
                          tab.getWebContents());
                          tab.getWebContents());
              }
              }
  
  
@@ -252,9 +252,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
              mTabModel.addTab(tab, position, type);
              mTabModel.addTab(tab, position, type);
              return tab;
              return tab;
          } finally {
          } finally {
-@@ -178,6 +191,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
-         Tab tab = Tab.createLiveTab(
-                 Tab.INVALID_TAB_ID, mIncognito, mNativeWindow, type, parentId, !openInForeground);
+@@ -198,6 +211,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
+                           .setLaunchType(type)
+                           .build();
          tab.initialize(webContents, mTabContentManager, delegateFactory, !openInForeground, false);
          tab.initialize(webContents, mTabContentManager, delegateFactory, !openInForeground, false);
 +
 +
 +        if (mExtraLogic != null) {
 +        if (mExtraLogic != null) {
@@ -264,7 +264,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
          mTabModel.addTab(tab, position, type);
          mTabModel.addTab(tab, position, type);
          return true;
          return true;
      }
      }
-@@ -220,7 +238,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
+@@ -240,7 +258,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
       */
       */
      public Tab launchUrlFromExternalApp(String url, String referer, String headers,
      public Tab launchUrlFromExternalApp(String url, String referer, String headers,
              String appId, boolean forceNewTab, Intent intent, long intentTimestamp) {
              String appId, boolean forceNewTab, Intent intent, long intentTimestamp) {
@@ -272,7 +272,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
          boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
          boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
  
  
          // If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is
          // If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is
-@@ -280,6 +297,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
+@@ -304,6 +321,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
          tab.initialize(
          tab.initialize(
                  null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false);
                  null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false);
          assert state.isIncognito() == mIncognito;
          assert state.isIncognito() == mIncognito;
@@ -287,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -685,6 +685,12 @@ CHAR-LIMIT guidelines:
+@@ -722,6 +722,12 @@ CHAR-LIMIT guidelines:
        <message name="IDS_SAFE_BROWSING_SCOUT_REPORTING_SUMMARY" desc="Body text for Chrome setting under 'Help Improve Safe Browsing'. This feature sends small amounts of data to Google about potentially-dangerous pages to help Safe Browsing improve Chrome's protection against malware and phishing.">
        <message name="IDS_SAFE_BROWSING_SCOUT_REPORTING_SUMMARY" desc="Body text for Chrome setting under 'Help Improve Safe Browsing'. This feature sends small amounts of data to Google about potentially-dangerous pages to help Safe Browsing improve Chrome's protection against malware and phishing.">
          Sends some system information and page content to Google
          Sends some system information and page content to Google
        </message>
        </message>

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

@@ -46,21 +46,21 @@ diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/
 +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
 @@ -22,6 +22,20 @@
 @@ -22,6 +22,20 @@
              app:showAsAction="ifRoom"
              app:showAsAction="ifRoom"
-             app:iconTint="@color/dark_mode_tint" />
+             app:iconTint="@color/standard_mode_tint" />
          <item
          <item
 +            android:id="@+id/import_menu_id"
 +            android:id="@+id/import_menu_id"
 +            android:icon="@drawable/ic_folder_blue_24dp"
 +            android:icon="@drawable/ic_folder_blue_24dp"
 +            android:title="@string/import_bookmarks"
 +            android:title="@string/import_bookmarks"
 +            android:visible="true"
 +            android:visible="true"
 +            app:showAsAction="ifRoom"
 +            app:showAsAction="ifRoom"
-+            app:iconTint="@color/dark_mode_tint" />
++            app:iconTint="@color/standard_mode_tint" />
 +        <item
 +        <item
 +            android:id="@+id/export_menu_id"
 +            android:id="@+id/export_menu_id"
 +            android:icon="@drawable/ic_file_download_white_24dp"
 +            android:icon="@drawable/ic_file_download_white_24dp"
 +            android:title="@string/export_bookmarks"
 +            android:title="@string/export_bookmarks"
 +            android:visible="true"
 +            android:visible="true"
 +            app:showAsAction="ifRoom"
 +            app:showAsAction="ifRoom"
-+            app:iconTint="@color/dark_mode_tint" />
++            app:iconTint="@color/standard_mode_tint" />
 +        <item
 +        <item
              android:id="@+id/close_menu_id"
              android:id="@+id/close_menu_id"
              android:icon="@drawable/btn_close"
              android:icon="@drawable/btn_close"
@@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
  
  
  import java.util.ArrayList;
  import java.util.ArrayList;
  import java.util.List;
  import java.util.List;
-@@ -508,6 +516,24 @@ public class BookmarkBridge {
+@@ -507,6 +515,24 @@ public class BookmarkBridge {
      }
      }
  
  
      /**
      /**
@@ -210,7 +210,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.
       * @param maxNumberOfResult Maximum number of result to fetch.
       * @param maxNumberOfResult Maximum number of result to fetch.
-@@ -840,6 +866,24 @@ public class BookmarkBridge {
+@@ -839,6 +865,24 @@ public class BookmarkBridge {
          depthList.add(depth);
          depthList.add(depth);
      }
      }
  
  
@@ -235,7 +235,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++) {
-@@ -906,6 +950,8 @@ public class BookmarkBridge {
+@@ -905,6 +949,8 @@ public class BookmarkBridge {
              boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
              boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
      private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
      private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
              int index);
              int index);
@@ -336,7 +336,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -224,6 +224,12 @@ CHAR-LIMIT guidelines:
+@@ -233,6 +233,12 @@ CHAR-LIMIT guidelines:
        <message name="IDS_SEARCH" desc="The label for a search button.">
        <message name="IDS_SEARCH" desc="The label for a search button.">
          Search
          Search
        </message>
        </message>
@@ -363,7 +363,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "bookmarks/bookmark_model_factory.cc",
      "bookmarks/bookmark_model_factory.cc",
      "bookmarks/bookmark_model_factory.h",
      "bookmarks/bookmark_model_factory.h",
      "bookmarks/bookmark_stats.cc",
      "bookmarks/bookmark_stats.cc",
-@@ -2665,8 +2669,6 @@ jumbo_split_static_library("browser") {
+@@ -2769,8 +2773,6 @@ jumbo_split_static_library("browser") {
        "banners/app_banner_infobar_delegate_desktop.h",
        "banners/app_banner_infobar_delegate_desktop.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",
@@ -372,7 +372,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "certificate_viewer.h",
        "certificate_viewer.h",
        "chrome_browser_field_trials_desktop.cc",
        "chrome_browser_field_trials_desktop.cc",
        "chrome_browser_field_trials_desktop.h",
        "chrome_browser_field_trials_desktop.h",
-@@ -2755,8 +2757,6 @@ jumbo_split_static_library("browser") {
+@@ -2859,8 +2861,6 @@ jumbo_split_static_library("browser") {
        "importer/importer_uma.h",
        "importer/importer_uma.h",
        "importer/in_process_importer_bridge.cc",
        "importer/in_process_importer_bridge.cc",
        "importer/in_process_importer_bridge.h",
        "importer/in_process_importer_bridge.h",
@@ -384,13 +384,14 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
 diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
 --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
 --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
 +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
 +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
-@@ -9,18 +9,29 @@
+@@ -9,19 +9,30 @@
  
  
  #include <memory>
  #include <memory>
  
  
 +#include "base/android/content_uri_utils.h"
 +#include "base/android/content_uri_utils.h"
  #include "base/android/jni_array.h"
  #include "base/android/jni_array.h"
  #include "base/android/jni_string.h"
  #include "base/android/jni_string.h"
+ #include "base/bind.h"
 +#include "base/android/path_utils.h"
 +#include "base/android/path_utils.h"
  #include "base/containers/stack.h"
  #include "base/containers/stack.h"
  #include "base/containers/stack_container.h"
  #include "base/containers/stack_container.h"
@@ -414,7 +415,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
  #include "components/bookmarks/browser/bookmark_model.h"
  #include "components/bookmarks/browser/bookmark_model.h"
  #include "components/bookmarks/browser/bookmark_utils.h"
  #include "components/bookmarks/browser/bookmark_utils.h"
  #include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
  #include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
-@@ -30,10 +41,13 @@
+@@ -31,10 +42,13 @@
  #include "components/bookmarks/managed/managed_bookmark_service.h"
  #include "components/bookmarks/managed/managed_bookmark_service.h"
  #include "components/prefs/pref_service.h"
  #include "components/prefs/pref_service.h"
  #include "components/query_parser/query_parser.h"
  #include "components/query_parser/query_parser.h"
@@ -428,7 +429,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
  #include "services/identity/public/cpp/identity_manager.h"
  #include "services/identity/public/cpp/identity_manager.h"
  
  
  using base::android::AttachCurrentThread;
  using base::android::AttachCurrentThread;
-@@ -53,6 +67,57 @@ using bookmarks::BookmarkPermanentNode;
+@@ -54,6 +68,57 @@ using bookmarks::BookmarkPermanentNode;
  using bookmarks::BookmarkType;
  using bookmarks::BookmarkType;
  using content::BrowserThread;
  using content::BrowserThread;
  
  
@@ -486,7 +487,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
  namespace {
  namespace {
  
  
  class BookmarkTitleComparer {
  class BookmarkTitleComparer {
-@@ -129,6 +194,10 @@ BookmarkBridge::~BookmarkBridge() {
+@@ -130,6 +195,10 @@ BookmarkBridge::~BookmarkBridge() {
    bookmark_model_->RemoveObserver(this);
    bookmark_model_->RemoveObserver(this);
    if (partner_bookmarks_shim_)
    if (partner_bookmarks_shim_)
      partner_bookmarks_shim_->RemoveObserver(this);
      partner_bookmarks_shim_->RemoveObserver(this);
@@ -497,7 +498,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
  }
  }
  
  
  void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
  void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
-@@ -474,6 +543,152 @@ jint BookmarkBridge::GetTotalBookmarkCount(
+@@ -475,6 +544,152 @@ jint BookmarkBridge::GetTotalBookmarkCount(
    return count;
    return count;
  }
  }
  
  
@@ -517,7 +518,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
 +  //NOTE: extension and description are not used on Android, thus not set
 +  //NOTE: extension and description are not used on Android, thus not set
 +  ui::SelectFileDialog::FileTypeInfo file_type_info;
 +  ui::SelectFileDialog::FileTypeInfo file_type_info;
 +
 +
-+  static const std::vector<base::string16> v_accept_types = { base::UTF8ToUTF16("text/html") };
++  const std::vector<base::string16> v_accept_types = { base::UTF8ToUTF16("text/html") };
 +
 +
 +  // Android needs the original MIME types and an additional capture value.
 +  // Android needs the original MIME types and an additional capture value.
 +  std::pair<std::vector<base::string16>, bool> accept_types =
 +  std::pair<std::vector<base::string16>, bool> accept_types =
@@ -775,7 +776,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
 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
-@@ -440,6 +440,9 @@ static_library("common") {
+@@ -438,6 +438,9 @@ static_library("common") {
      sources += [
      sources += [
        "media/chrome_media_drm_bridge_client.cc",
        "media/chrome_media_drm_bridge_client.cc",
        "media/chrome_media_drm_bridge_client.h",
        "media/chrome_media_drm_bridge_client.h",
@@ -788,7 +789,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
 diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
 diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
 --- a/chrome/utility/BUILD.gn
 --- a/chrome/utility/BUILD.gn
 +++ b/chrome/utility/BUILD.gn
 +++ b/chrome/utility/BUILD.gn
-@@ -61,8 +61,6 @@ static_library("utility") {
+@@ -60,8 +60,6 @@ static_library("utility") {
  
  
    if (!is_android) {
    if (!is_android) {
      sources += [
      sources += [
@@ -797,7 +798,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
        "importer/bookmarks_file_importer.cc",
        "importer/bookmarks_file_importer.cc",
        "importer/bookmarks_file_importer.h",
        "importer/bookmarks_file_importer.h",
        "importer/edge_database_reader_win.cc",
        "importer/edge_database_reader_win.cc",
-@@ -173,6 +171,11 @@ static_library("utility") {
+@@ -170,6 +168,11 @@ static_library("utility") {
      }
      }
    }
    }
  
  
@@ -918,7 +919,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp
 diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
 diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
 --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
 --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
 +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
 +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
-@@ -32,6 +32,7 @@ import org.chromium.base.task.AsyncTask;
+@@ -34,6 +34,7 @@ import org.chromium.base.task.TaskTraits;
  import org.chromium.ui.ContactsPickerListener;
  import org.chromium.ui.ContactsPickerListener;
  import org.chromium.ui.PhotoPickerListener;
  import org.chromium.ui.PhotoPickerListener;
  import org.chromium.ui.R;
  import org.chromium.ui.R;
@@ -926,7 +927,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
  import org.chromium.ui.UiUtils;
  import org.chromium.ui.UiUtils;
  
  
  import java.io.File;
  import java.io.File;
-@@ -52,6 +53,7 @@ public class SelectFileDialog
+@@ -54,6 +55,7 @@ public class SelectFileDialog
      private static final String IMAGE_TYPE = "image/";
      private static final String IMAGE_TYPE = "image/";
      private static final String VIDEO_TYPE = "video/";
      private static final String VIDEO_TYPE = "video/";
      private static final String AUDIO_TYPE = "audio/";
      private static final String AUDIO_TYPE = "audio/";
@@ -934,7 +935,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
      private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*";
      private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*";
      private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*";
      private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*";
      private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*";
      private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*";
-@@ -130,6 +132,11 @@ public class SelectFileDialog
+@@ -132,6 +134,11 @@ public class SelectFileDialog
          mFileTypes = fileTypes;
          mFileTypes = fileTypes;
      }
      }
  
  
@@ -946,16 +947,16 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
      /**
      /**
       * Creates and starts an intent based on the passed fileTypes and capture value.
       * Creates and starts an intent based on the passed fileTypes and capture value.
       * @param fileTypes MIME types requested (i.e. "image/*")
       * @param fileTypes MIME types requested (i.e. "image/*")
-@@ -159,7 +166,7 @@ public class SelectFileDialog
+@@ -161,7 +168,7 @@ public class SelectFileDialog
              if (!window.hasPermission(Manifest.permission.READ_CONTACTS)) {
              if (!window.hasPermission(Manifest.permission.READ_CONTACTS)) {
                  missingPermissions.add(Manifest.permission.READ_CONTACTS);
                  missingPermissions.add(Manifest.permission.READ_CONTACTS);
              }
              }
 -        } else if (shouldUsePhotoPicker()) {
 -        } else if (shouldUsePhotoPicker()) {
 +        } else if (shouldUsePhotoPicker() || shouldShowHtmlTypes()) {
 +        } else if (shouldUsePhotoPicker() || shouldShowHtmlTypes()) {
-             if (!window.hasPermission(Manifest.permission.READ_EXTERNAL_STORAGE)) {
-                 missingPermissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
-             }
-@@ -326,9 +333,7 @@ public class SelectFileDialog
+             if (BuildInfo.isAtLeastQ()) {
+                 String newImagePermission = "android.permission.READ_MEDIA_IMAGES";
+                 if (!window.hasPermission(newImagePermission)) {
+@@ -333,9 +340,7 @@ public class SelectFileDialog
       *   3.) There is a valid Android Activity associated with the file request.
       *   3.) There is a valid Android Activity associated with the file request.
       */
       */
      private boolean shouldUseContactsPicker() {
      private boolean shouldUseContactsPicker() {
@@ -966,7 +967,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
      }
      }
  
  
      /**
      /**
-@@ -349,6 +354,7 @@ public class SelectFileDialog
+@@ -356,6 +361,7 @@ public class SelectFileDialog
              }
              }
              if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
              if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
          }
          }
@@ -974,7 +975,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
          return mimeTypes;
          return mimeTypes;
      }
      }
  
  
-@@ -652,6 +658,10 @@ public class SelectFileDialog
+@@ -646,6 +652,10 @@ public class SelectFileDialog
          return countAcceptTypesFor(specificType) > 0;
          return countAcceptTypesFor(specificType) > 0;
      }
      }
  
  

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

@@ -26,7 +26,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
-@@ -48,6 +48,11 @@
+@@ -47,6 +47,11 @@
          android:title="@string/clear_browsing_data_title"
          android:title="@string/clear_browsing_data_title"
          android:summary="@string/clear_browsing_data_summary"
          android:summary="@string/clear_browsing_data_summary"
          android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
          android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
@@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
  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;
  import org.chromium.chrome.browser.tabmodel.DocumentModeAssassin;
  import org.chromium.chrome.browser.tabmodel.DocumentModeAssassin;
-@@ -275,6 +276,7 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
+@@ -271,6 +272,7 @@ 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;
@@ -60,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
-@@ -39,6 +39,7 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -40,6 +40,7 @@ public class PrivacyPreferences extends PreferenceFragment
          implements OnPreferenceChangeListener {
          implements OnPreferenceChangeListener {
      private static final String PREF_NAVIGATION_ERROR = "navigation_error";
      private static final String PREF_NAVIGATION_ERROR = "navigation_error";
      private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
      private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
      private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
      private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
      private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
-@@ -104,6 +105,11 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -117,6 +118,11 @@ public class PrivacyPreferences extends PreferenceFragment
          navigationErrorPref.setOnPreferenceChangeListener(this);
          navigationErrorPref.setOnPreferenceChangeListener(this);
          navigationErrorPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
          navigationErrorPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
  
  
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
          ChromeBaseCheckBoxPreference searchSuggestionsPref =
          ChromeBaseCheckBoxPreference searchSuggestionsPref =
                  (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
                  (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
          searchSuggestionsPref.setOnPreferenceChangeListener(this);
          searchSuggestionsPref.setOnPreferenceChangeListener(this);
-@@ -135,6 +141,10 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -139,6 +145,10 @@ public class PrivacyPreferences extends PreferenceFragment
              recordNetworkPredictionEnablingUMA((boolean) newValue);
              recordNetworkPredictionEnablingUMA((boolean) newValue);
          } else if (PREF_NAVIGATION_ERROR.equals(key)) {
          } else if (PREF_NAVIGATION_ERROR.equals(key)) {
              PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
              PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
@@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -4012,6 +4012,13 @@ However, you aren’t invisible. Going private doesn’t hide your browsing from
+@@ -4004,6 +4004,13 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          Browse
          Browse
        </message>
        </message>
  
  

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

@@ -25,7 +25,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-@@ -2138,6 +2138,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2150,6 +2150,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              RecordUserAction.record("MobileMenuSettings");
              RecordUserAction.record("MobileMenuSettings");
          } else if (id == R.id.show_menu) {
          } else if (id == R.id.show_menu) {
              showAppMenuForKeyboardEvent();
              showAppMenuForKeyboardEvent();
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -3054,6 +3054,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3081,6 +3081,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
        <message name="IDS_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
          Settings
          Settings
        </message>
        </message>

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

@@ -18,7 +18,7 @@ with limited CPU/memory resources and it is disabled by default.
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -809,6 +809,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
+@@ -740,6 +740,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
       net::kEffectiveConnectionType4G},
       net::kEffectiveConnectionType4G},
  };
  };
  
  
@@ -30,22 +30,22 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  // Ensure that all effective connection types returned by Network Quality
  // Ensure that all effective connection types returned by Network Quality
  // Estimator (NQE) are also exposed via flags.
  // Estimator (NQE) are also exposed via flags.
  static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
  static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
-@@ -2357,6 +2362,9 @@ const FeatureEntry kFeatureEntries[] = {
-      flag_descriptions::kMaterialDesignIncognitoNTPName,
-      flag_descriptions::kMaterialDesignIncognitoNTPDescription, kOsAndroid,
-      FEATURE_VALUE_TYPE(features::kMaterialDesignIncognitoNTP)},
+@@ -2292,6 +2297,9 @@ const FeatureEntry kFeatureEntries[] = {
+      flag_descriptions::kWebrtcH264WithOpenh264FfmpegDescription, kOsDesktop,
+      FEATURE_VALUE_TYPE(content::kWebRtcH264WithOpenH264FFmpeg)},
+ #endif  // BUILDFLAG(RTC_USE_H264) && BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS)
 +    {"max-connections-per-host", flag_descriptions::kMaxConnectionsPerHostName,
 +    {"max-connections-per-host", flag_descriptions::kMaxConnectionsPerHostName,
 +     flag_descriptions::kMaxConnectionsPerHostDescription, kOsAll,
 +     flag_descriptions::kMaxConnectionsPerHostDescription, kOsAll,
 +     MULTI_VALUE_TYPE(kMaxConnectionsPerHostChoices)},
 +     MULTI_VALUE_TYPE(kMaxConnectionsPerHostChoices)},
-     {"safe-search-url-reporting",
-      flag_descriptions::kSafeSearchUrlReportingName,
-      flag_descriptions::kSafeSearchUrlReportingDescription, kOsAll,
+ #if defined(OS_ANDROID)
+     {"offlining-recent-pages", flag_descriptions::kOffliningRecentPagesName,
+      flag_descriptions::kOffliningRecentPagesDescription, kOsAndroid,
 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
-@@ -1264,6 +1264,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
-     "If enabled, the Incognito New Tab page uses the new material design with "
-     "a better readable text.";
+@@ -1245,6 +1245,10 @@ const char kLookalikeUrlNavigationSuggestionsDescription[] =
+ const char kMarkHttpAsName[] = "Mark non-secure origins as non-secure";
+ const char kMarkHttpAsDescription[] = "Change the UI treatment for HTTP pages";
  
  
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
 +const char kMaxConnectionsPerHostDescription[] =
 +const char kMaxConnectionsPerHostDescription[] =
@@ -57,9 +57,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
-@@ -766,6 +766,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
- extern const char kMaterialDesignIncognitoNTPName[];
- extern const char kMaterialDesignIncognitoNTPDescription[];
+@@ -748,6 +748,9 @@ extern const char kMarkHttpAsWarning[];
+ extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[];
+ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
  
  
 +extern const char kMaxConnectionsPerHostName[];
 +extern const char kMaxConnectionsPerHostName[];
 +extern const char kMaxConnectionsPerHostDescription[];
 +extern const char kMaxConnectionsPerHostDescription[];
@@ -111,7 +111,7 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
 diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
 diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
 --- a/net/socket/client_socket_pool_manager.cc
 --- a/net/socket/client_socket_pool_manager.cc
 +++ b/net/socket/client_socket_pool_manager.cc
 +++ b/net/socket/client_socket_pool_manager.cc
-@@ -23,6 +23,10 @@
+@@ -22,6 +22,10 @@
  #include "net/socket/transport_client_socket_pool.h"
  #include "net/socket/transport_client_socket_pool.h"
  #include "net/socket/transport_connect_job.h"
  #include "net/socket/transport_connect_job.h"
  #include "net/ssl/ssl_config.h"
  #include "net/ssl/ssl_config.h"
@@ -122,7 +122,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
  
  
  namespace net {
  namespace net {
  
  
-@@ -297,6 +301,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
+@@ -285,6 +289,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
  int ClientSocketPoolManager::max_sockets_per_group(
  int ClientSocketPoolManager::max_sockets_per_group(
      HttpNetworkSession::SocketPoolType pool_type) {
      HttpNetworkSession::SocketPoolType pool_type) {
    DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
    DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);

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

@@ -4,31 +4,30 @@ Subject: Add flag to control video playback resume feature
 
 
 Disable it by default on Android as it is everywhere else
 Disable it by default on Android as it is everywhere else
 ---
 ---
- chrome/browser/about_flags.cc       | 5 +++++
+ chrome/browser/about_flags.cc       | 4 ++++
  chrome/browser/flag_descriptions.cc | 5 +++++
  chrome/browser/flag_descriptions.cc | 5 +++++
  chrome/browser/flag_descriptions.h  | 3 +++
  chrome/browser/flag_descriptions.h  | 3 +++
  media/base/media_switches.cc        | 6 +-----
  media/base/media_switches.cc        | 6 +-----
- 4 files changed, 14 insertions(+), 5 deletions(-)
+ 4 files changed, 13 insertions(+), 5 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
-@@ -3947,6 +3947,11 @@ const FeatureEntry kFeatureEntries[] = {
-      FEATURE_VALUE_TYPE(features::kSiteCharacteristicsDatabase)},
- #endif
- 
+@@ -1407,6 +1407,10 @@ const FeatureEntry kFeatureEntries[] = {
+      flag_descriptions::kVideoPlayerChromecastSupportDescription, kOsCrOS,
+      SINGLE_VALUE_TYPE(
+          chromeos::switches::kEnableVideoPlayerChromecastSupport)},
 +    {"resume-background-video",
 +    {"resume-background-video",
 +     flag_descriptions::kResumeBackgroundVideoName,
 +     flag_descriptions::kResumeBackgroundVideoName,
 +     flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
 +     flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
 +     FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
 +     FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
-+
- #if defined(OS_MACOSX)
-     {"enable-text-suggestions-touch-bar",
-      flag_descriptions::kTextSuggestionsTouchBarName,
+     {"list-all-display-modes", flag_descriptions::kListAllDisplayModesName,
+      flag_descriptions::kListAllDisplayModesDescription, kOsCrOS,
+      FEATURE_VALUE_TYPE(display::features::kListAllDisplayModes)},
 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
-@@ -833,6 +833,11 @@ const char kEnablePictureInPictureDescription[] =
+@@ -840,6 +840,11 @@ const char kEnablePictureInPictureDescription[] =
      "controls. The #enable-surfaces-for-videos flag must be enabled as well "
      "controls. The #enable-surfaces-for-videos flag must be enabled as well "
      "to use it.";
      "to use it.";
  
  
@@ -43,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -502,6 +502,9 @@ extern const char kOOPHPStackModePseudo[];
+@@ -495,6 +495,9 @@ extern const char kEnableNewDownloadBackendDescription[];
  extern const char kEnablePictureInPictureName[];
  extern const char kEnablePictureInPictureName[];
  extern const char kEnablePictureInPictureDescription[];
  extern const char kEnablePictureInPictureDescription[];
  
  
@@ -56,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 --- a/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
 +++ b/media/base/media_switches.cc
-@@ -212,11 +212,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
+@@ -205,11 +205,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",

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

@@ -14,7 +14,7 @@ Subject: Add flag to disable IPv6 probes
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -3269,6 +3269,11 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2975,6 +2975,11 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(features::kHandwritingGesture)},
       FEATURE_VALUE_TYPE(features::kHandwritingGesture)},
  #endif  // OS_CHROMEOS
  #endif  // OS_CHROMEOS
  
  
@@ -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
-@@ -835,6 +835,10 @@ const char kOOPHPStackModeNative[] = "Native";
+@@ -842,6 +842,10 @@ const char kOOPHPStackModeNative[] = "Native";
  const char kOOPHPStackModeNativeWithThreadNames[] = "Native with thread names";
  const char kOOPHPStackModeNativeWithThreadNames[] = "Native with thread names";
  const char kOOPHPStackModePseudo[] = "Trace events";
  const char kOOPHPStackModePseudo[] = "Trace events";
  
  
@@ -43,9 +43,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
-@@ -505,6 +505,9 @@ extern const char kOOPHPStackModeNative[];
- extern const char kOOPHPStackModeNativeWithThreadNames[];
- extern const char kOOPHPStackModePseudo[];
+@@ -498,6 +498,9 @@ extern const char kDownloadAutoResumptionNativeDescription[];
+ extern const char kEnableNewDownloadBackendName[];
+ extern const char kEnableNewDownloadBackendDescription[];
  
  
 +extern const char kIPv6ProbingName[];
 +extern const char kIPv6ProbingName[];
 +extern const char kIPv6ProbingDescription[];
 +extern const char kIPv6ProbingDescription[];
@@ -56,7 +56,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 --- a/net/dns/host_resolver_impl.cc
 --- a/net/dns/host_resolver_impl.cc
 +++ b/net/dns/host_resolver_impl.cc
 +++ b/net/dns/host_resolver_impl.cc
-@@ -82,6 +82,7 @@
+@@ -81,6 +81,7 @@
  #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"
@@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
  #include "url/url_canon_ip.h"
  #include "url/url_canon_ip.h"
  
  
  #if BUILDFLAG(ENABLE_MDNS)
  #if BUILDFLAG(ENABLE_MDNS)
-@@ -2874,8 +2875,13 @@ bool HostResolverImpl::IsIPv6Reachable(const NetLogWithSource& net_log) {
+@@ -2751,8 +2752,13 @@ bool HostResolverImpl::IsIPv6Reachable(const NetLogWithSource& net_log) {
    bool cached = true;
    bool cached = true;
    if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
    if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
        kIPv6ProbePeriodMs) {
        kIPv6ProbePeriodMs) {
@@ -83,7 +83,7 @@ diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
 diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
 --- a/services/network/public/cpp/features.cc
 --- a/services/network/public/cpp/features.cc
 +++ b/services/network/public/cpp/features.cc
 +++ b/services/network/public/cpp/features.cc
-@@ -14,6 +14,9 @@ const base::Feature kExpectCTReporting{"ExpectCTReporting",
+@@ -16,6 +16,9 @@ const base::Feature kExpectCTReporting{"ExpectCTReporting",
  
  
  const base::Feature kNetworkErrorLogging{"NetworkErrorLogging",
  const base::Feature kNetworkErrorLogging{"NetworkErrorLogging",
                                           base::FEATURE_ENABLED_BY_DEFAULT};
                                           base::FEATURE_ENABLED_BY_DEFAULT};
@@ -91,8 +91,8 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
 +const base::Feature kIPv6Probing{"IPv6Probing",
 +const base::Feature kIPv6Probing{"IPv6Probing",
 +                                       base::FEATURE_DISABLED_BY_DEFAULT};
 +                                       base::FEATURE_DISABLED_BY_DEFAULT};
  // Enables the network service.
  // Enables the network service.
- const base::Feature kNetworkService{"NetworkService",
-                                     base::FEATURE_DISABLED_BY_DEFAULT};
+ const base::Feature kNetworkService {
+   "NetworkService",
 diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
 diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
 --- a/services/network/public/cpp/features.h
 --- a/services/network/public/cpp/features.h
 +++ b/services/network/public/cpp/features.h
 +++ b/services/network/public/cpp/features.h

+ 17 - 17
build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch

@@ -20,7 +20,7 @@ legacy acceleration events.
 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
-@@ -2770,6 +2770,12 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2473,6 +2473,12 @@ const FeatureEntry kFeatureEntries[] = {
      {"enable-generic-sensor", flag_descriptions::kEnableGenericSensorName,
      {"enable-generic-sensor", flag_descriptions::kEnableGenericSensorName,
       flag_descriptions::kEnableGenericSensorDescription, kOsAll,
       flag_descriptions::kEnableGenericSensorDescription, kOsAll,
       FEATURE_VALUE_TYPE(features::kGenericSensor)},
       FEATURE_VALUE_TYPE(features::kGenericSensor)},
@@ -36,7 +36,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
-@@ -599,6 +599,14 @@ const char kEnableGenericSensorDescription[] =
+@@ -600,6 +600,14 @@ const char kEnableGenericSensorDescription[] =
      "Accelerometer, LinearAccelerationSensor, Gyroscope, "
      "Accelerometer, LinearAccelerationSensor, Gyroscope, "
      "AbsoluteOrientationSensor and RelativeOrientationSensor interfaces.";
      "AbsoluteOrientationSensor and RelativeOrientationSensor interfaces.";
  
  
@@ -54,7 +54,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
-@@ -391,6 +391,12 @@ extern const char kEnableEnumeratingAudioDevicesDescription[];
+@@ -382,6 +382,12 @@ extern const char kEnforceTLS13DowngradeDescription[];
  extern const char kEnableGenericSensorName[];
  extern const char kEnableGenericSensorName[];
  extern const char kEnableGenericSensorDescription[];
  extern const char kEnableGenericSensorDescription[];
  
  
@@ -70,7 +70,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
 diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 --- a/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
 +++ b/content/child/runtime_features.cc
-@@ -144,6 +144,9 @@ void SetRuntimeFeaturesDefaultsAndUpdateFromArgs(
+@@ -93,6 +93,9 @@ void SetIndividualRuntimeFeatures(
        base::FeatureList::IsEnabled(features::kSharedArrayBuffer) ||
        base::FeatureList::IsEnabled(features::kSharedArrayBuffer) ||
        base::FeatureList::IsEnabled(features::kWebAssemblyThreads));
        base::FeatureList::IsEnabled(features::kWebAssemblyThreads));
  
  
@@ -83,10 +83,10 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
 diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
 diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
 --- a/content/public/common/content_features.cc
 --- a/content/public/common/content_features.cc
 +++ b/content/public/common/content_features.cc
 +++ b/content/public/common/content_features.cc
-@@ -596,6 +596,16 @@ const base::Feature kWebRtcHideLocalIpsWithMdns{
- // https://wicg.github.io/webusb
- const base::Feature kWebUsb{"WebUSB", base::FEATURE_ENABLED_BY_DEFAULT};
- 
+@@ -596,6 +596,16 @@ const base::Feature kExperimentalProductivityFeatures{
+ // TODO(rouslan): Remove this.
+ const base::Feature kWebPayments{"WebPayments",
+                                  base::FEATURE_ENABLED_BY_DEFAULT};
 +// Enables the device motion API used to track device acceleration;
 +// Enables the device motion API used to track device acceleration;
 +// no user authorization or notifications happens when in use.
 +// no user authorization or notifications happens when in use.
 +const base::Feature kDeviceMotion{"DeviceMotion",
 +const base::Feature kDeviceMotion{"DeviceMotion",
@@ -97,14 +97,14 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
 +const base::Feature kDeviceOrientation{"DeviceOrientation",
 +const base::Feature kDeviceOrientation{"DeviceOrientation",
 +                                    base::FEATURE_DISABLED_BY_DEFAULT};
 +                                    base::FEATURE_DISABLED_BY_DEFAULT};
 +
 +
- // Controls whether WebVR VSync-aligned render loop timing is enabled.
- const base::Feature kWebVrVsyncAlign{"WebVrVsyncAlign",
-                                      base::FEATURE_ENABLED_BY_DEFAULT};
+ 
+ // Makes WebRTC use ECDSA certs by default (i.e., when no cert type was
+ // specified in JS).
 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
-@@ -155,6 +155,8 @@ CONTENT_EXPORT extern const char kWebXrRenderPathParamValueGpuFence[];
- CONTENT_EXPORT extern const char kWebXrRenderPathParamValueSharedBuffer[];
+@@ -158,6 +158,8 @@ CONTENT_EXPORT extern const base::Feature kWarmUpNetworkProcess;
+ CONTENT_EXPORT extern const base::Feature kWebNfc;
  #endif  // defined(OS_ANDROID)
  #endif  // defined(OS_ANDROID)
  
  
 +CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation;
 +CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation;
@@ -115,7 +115,7 @@ 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
-@@ -95,6 +95,8 @@ class WebRuntimeFeatures {
+@@ -97,6 +97,8 @@ class WebRuntimeFeatures {
    BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
    BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
    BLINK_PLATFORM_EXPORT static void EnableKeyboardFocusableScrollers(bool);
    BLINK_PLATFORM_EXPORT static void EnableKeyboardFocusableScrollers(bool);
    BLINK_PLATFORM_EXPORT static void EnableDatabase(bool);
    BLINK_PLATFORM_EXPORT static void EnableDatabase(bool);
@@ -123,7 +123,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
 +  BLINK_PLATFORM_EXPORT static void EnableDeviceOrientation(bool);
 +  BLINK_PLATFORM_EXPORT static void EnableDeviceOrientation(bool);
    BLINK_PLATFORM_EXPORT static void EnableDecodeToYUV(bool);
    BLINK_PLATFORM_EXPORT static void EnableDecodeToYUV(bool);
    BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
    BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
-   BLINK_PLATFORM_EXPORT static void EnableFastMobileScrolling(bool);
+   BLINK_PLATFORM_EXPORT static void EnableFallbackCursorMode(bool);
 diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
 diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
 --- a/third_party/blink/renderer/modules/modules_initializer.cc
 --- a/third_party/blink/renderer/modules/modules_initializer.cc
 +++ b/third_party/blink/renderer/modules/modules_initializer.cc
 +++ b/third_party/blink/renderer/modules/modules_initializer.cc
@@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_p
 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,14 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
+@@ -165,6 +165,14 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
    RuntimeEnabledFeatures::SetDatabaseEnabled(enable);
    RuntimeEnabledFeatures::SetDatabaseEnabled(enable);
  }
  }
  
  
@@ -164,7 +164,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -374,6 +374,14 @@
+@@ -409,6 +409,14 @@
        status: "stable",
        status: "stable",
      },
      },
      {
      {

+ 6 - 6
build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch

@@ -75,9 +75,9 @@ 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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-@@ -2239,6 +2239,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
-             final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
-             currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
+@@ -2253,6 +2253,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+             currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent(
+                     !usingDesktopUserAgent, reloadOnChange);
              RecordUserAction.record("MobileMenuRequestDesktopSite");
              RecordUserAction.record("MobileMenuRequestDesktopSite");
 +        } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) {
 +        } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) {
 +            final boolean reloadOnChange = !currentTab.isNativePage();
 +            final boolean reloadOnChange = !currentTab.isNativePage();
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
 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
-@@ -1720,6 +1720,14 @@ public class ChromeTabbedActivity
+@@ -1857,6 +1857,14 @@ public class ChromeTabbedActivity
                  NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
                  NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
              }
              }
              RecordUserAction.record("MobileMenuDownloadManager");
              RecordUserAction.record("MobileMenuDownloadManager");
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
  import org.chromium.chrome.browser.ShortcutHelper;
  import org.chromium.chrome.browser.ShortcutHelper;
  import org.chromium.chrome.browser.UrlConstants;
  import org.chromium.chrome.browser.UrlConstants;
  import org.chromium.chrome.browser.banners.AppBannerManager;
  import org.chromium.chrome.browser.banners.AppBannerManager;
-@@ -197,6 +198,8 @@ public class AppMenuPropertiesDelegate {
+@@ -196,6 +197,8 @@ public class AppMenuPropertiesDelegate {
  
  
              updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
              updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
  
  
@@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -3039,6 +3039,17 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3066,6 +3066,17 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR-LIMIT=27]">
        <message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR-LIMIT=27]">
          Find in page
          Find in page
        </message>
        </message>

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

@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 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
-@@ -1005,8 +1005,10 @@ public class ChromeTabbedActivity
+@@ -1138,8 +1138,10 @@ public class ChromeTabbedActivity
              boolean hadCipherData =
              boolean hadCipherData =
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
  
  
@@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
  import org.chromium.base.BuildInfo;
  import org.chromium.base.BuildInfo;
  import org.chromium.base.metrics.RecordHistogram;
  import org.chromium.base.metrics.RecordHistogram;
  import org.chromium.chrome.R;
  import org.chromium.chrome.R;
-@@ -43,6 +45,7 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -44,6 +46,7 @@ public class PrivacyPreferences extends PreferenceFragment
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
      private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
      private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
      private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
@@ -80,9 +80,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
      private static final String PREF_DO_NOT_TRACK = "do_not_track";
      private static final String PREF_DO_NOT_TRACK = "do_not_track";
      private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
      private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
-@@ -94,6 +97,11 @@ public class PrivacyPreferences extends PreferenceFragment
-         preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
-         preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
+@@ -71,6 +74,11 @@ public class PrivacyPreferences extends PreferenceFragment
+                 (ChromeBaseCheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
+         canMakePaymentPref.setOnPreferenceChangeListener(this);
  
  
 +        ChromeBaseCheckBoxPreference closeTabsOnExitPref =
 +        ChromeBaseCheckBoxPreference closeTabsOnExitPref =
 +                (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
 +                (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
@@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
          ChromeBaseCheckBoxPreference networkPredictionPref =
          ChromeBaseCheckBoxPreference networkPredictionPref =
                  (ChromeBaseCheckBoxPreference) findPreference(PREF_NETWORK_PREDICTIONS);
                  (ChromeBaseCheckBoxPreference) findPreference(PREF_NETWORK_PREDICTIONS);
          networkPredictionPref.setChecked(prefServiceBridge.getNetworkPredictionEnabled());
          networkPredictionPref.setChecked(prefServiceBridge.getNetworkPredictionEnabled());
-@@ -139,6 +147,12 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -143,6 +151,12 @@ public class PrivacyPreferences extends PreferenceFragment
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
              PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
              PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
              recordNetworkPredictionEnablingUMA((boolean) newValue);
              recordNetworkPredictionEnablingUMA((boolean) newValue);
@@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -3893,6 +3893,12 @@ However, you aren’t invisible. Going private doesn’t hide your browsing from
+@@ -3880,6 +3880,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

@@ -157,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCre
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -637,6 +637,9 @@ CHAR-LIMIT guidelines:
+@@ -674,6 +674,9 @@ CHAR-LIMIT guidelines:
        <message name="IDS_OPTIONS_HOMEPAGE_EDIT_LABEL" desc="The label for the edit text field that allows the user to change the URL that is opened when they tap on the home page button in the omnibox.">
        <message name="IDS_OPTIONS_HOMEPAGE_EDIT_LABEL" desc="The label for the edit text field that allows the user to change the URL that is opened when they tap on the home page button in the omnibox.">
          Open this page
          Open this page
        </message>
        </message>
@@ -182,7 +182,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
 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
-@@ -57,6 +57,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode";
+@@ -58,6 +58,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode";
  // A boolean specifying whether the New Tab page is the home page or not.
  // A boolean specifying whether the New Tab page is the home page or not.
  const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
  const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
  
  
@@ -196,8 +196,8 @@ 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
-@@ -292,6 +292,7 @@ extern const char kMostRecentlyUsedNetworkFileShareURL[];
- extern const char kParentAccessCodeConfig[];
+@@ -293,6 +293,7 @@ extern const char kParentAccessCodeConfig[];
+ extern const char kDeviceWallpaperImageFilePath[];
  #endif  // defined(OS_CHROMEOS)
  #endif  // defined(OS_CHROMEOS)
  extern const char kShowHomeButton[];
  extern const char kShowHomeButton[];
 +extern const char kNewTabPageIsHomePage[];
 +extern const char kNewTabPageIsHomePage[];

+ 7 - 7
build/patches/Add-site-settings-option-for-session-only-cookies.patch

@@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
          } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
          } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
              prefServiceBridge.setBlockThirdPartyCookiesEnabled(((boolean) newValue));
              prefServiceBridge.setBlockThirdPartyCookiesEnabled(((boolean) newValue));
          } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) {
          } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) {
-@@ -768,6 +772,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
+@@ -769,6 +773,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
          TriStateSiteSettingsPreference triStateToggle =
          TriStateSiteSettingsPreference triStateToggle =
                  (TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY);
                  (TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY);
          Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
          Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
          Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
          Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
          Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY);
          Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY);
          PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP);
          PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP);
-@@ -798,6 +804,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
+@@ -799,6 +805,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
  
  
          if (hideSecondaryToggles) {
          if (hideSecondaryToggles) {
              screen.removePreference(thirdPartyCookies);
              screen.removePreference(thirdPartyCookies);
@@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
              screen.removePreference(notificationsVibrate);
              screen.removePreference(notificationsVibrate);
              screen.removePreference(explainProtectedMediaKey);
              screen.removePreference(explainProtectedMediaKey);
              screen.removePreference(allowedGroup);
              screen.removePreference(allowedGroup);
-@@ -807,12 +814,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
+@@ -808,12 +815,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
              return;
              return;
          }
          }
  
  
@@ -144,7 +144,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
          }
          }
  
  
          // Configure/hide the notifications vibrate toggle, as needed.
          // Configure/hide the notifications vibrate toggle, as needed.
-@@ -917,6 +927,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
+@@ -918,6 +928,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
                  preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged());
                  preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged());
      }
      }
  
  
@@ -163,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -876,6 +876,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -913,6 +913,12 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_BLOCK_THIRD_PARTY_COOKIES_SUMMARY" desc="Summary text for Block Third Party Cookies preference">
        <message name="IDS_BLOCK_THIRD_PARTY_COOKIES_SUMMARY" desc="Summary text for Block Third Party Cookies preference">
          Prevent third-party websites from saving and reading cookie data
          Prevent third-party websites from saving and reading cookie data
        </message>
        </message>
@@ -179,7 +179,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
 diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
 diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
 --- a/chrome/browser/android/preferences/pref_service_bridge.cc
 --- a/chrome/browser/android/preferences/pref_service_bridge.cc
 +++ b/chrome/browser/android/preferences/pref_service_bridge.cc
 +++ b/chrome/browser/android/preferences/pref_service_bridge.cc
-@@ -310,6 +310,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
+@@ -311,6 +311,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
    return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
    return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
  }
  }
  
  
@@ -197,7 +197,7 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
  static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged(
  static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged(
      JNIEnv* env,
      JNIEnv* env,
      const JavaParamRef<jobject>& obj) {
      const JavaParamRef<jobject>& obj) {
-@@ -767,6 +778,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
+@@ -768,6 +779,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
    GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled);
    GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled);
  }
  }
  
  

+ 66 - 62
build/patches/Allow-building-without-safebrowsing-for-Android.patch

@@ -14,15 +14,15 @@ Fix build from scratch (issue found by nikolowry)
  chrome/browser/download/download_item_model.cc     | 10 ++++++
  chrome/browser/download/download_item_model.cc     | 10 ++++++
  chrome/browser/download/download_item_model.h      |  4 +++
  chrome/browser/download/download_item_model.h      |  4 +++
  chrome/browser/download/download_prefs.cc          |  4 +++
  chrome/browser/download/download_prefs.cc          |  4 +++
- .../browser/download/download_target_determiner.cc | 18 ++++++++++
+ .../browser/download/download_target_determiner.cc | 22 ++++++++++++
  .../browser/download/download_target_determiner.h  |  6 ++++
  .../browser/download/download_target_determiner.h  |  6 ++++
  chrome/browser/download/download_target_info.cc    |  4 +++
  chrome/browser/download/download_target_info.cc    |  4 +++
  chrome/browser/download/download_target_info.h     |  4 +++
  chrome/browser/download/download_target_info.h     |  4 +++
  chrome/browser/download/download_ui_model.cc       |  4 +++
  chrome/browser/download/download_ui_model.cc       |  4 +++
  chrome/browser/download/download_ui_model.h        |  4 +++
  chrome/browser/download/download_ui_model.h        |  4 +++
- .../chrome_resource_dispatcher_host_delegate.cc    |  4 +++
+ .../chrome_resource_dispatcher_host_delegate.cc    |  2 ++
  chrome/browser/net/chrome_network_delegate.cc      | 35 ++-----------------
  chrome/browser/net/chrome_network_delegate.cc      | 35 ++-----------------
- 18 files changed, 85 insertions(+), 112 deletions(-)
+ 18 files changed, 87 insertions(+), 112 deletions(-)
 
 
 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
@@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
-@@ -39,9 +39,6 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -40,9 +40,6 @@ public class PrivacyPreferences extends PreferenceFragment
          implements OnPreferenceChangeListener {
          implements OnPreferenceChangeListener {
      private static final String PREF_NAVIGATION_ERROR = "navigation_error";
      private static final String PREF_NAVIGATION_ERROR = "navigation_error";
      private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
      private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
@@ -55,16 +55,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
      private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
      private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
      private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
      private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
-@@ -76,8 +73,6 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -83,8 +80,6 @@ public class PrivacyPreferences extends PreferenceFragment
              // Remove preferences that were migrated to SyncAndServicesPreferences.
              // Remove preferences that were migrated to SyncAndServicesPreferences.
              preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
              preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
              preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
              preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
 -            preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
 -            preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
 -            preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
 -            preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
-             preferenceScreen.removePreference(findPreference(PREF_NETWORK_PREDICTIONS));
              preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
              preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
              preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
              preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
-@@ -118,17 +113,6 @@ public class PrivacyPreferences extends PreferenceFragment
+ 
+@@ -131,17 +126,6 @@ public class PrivacyPreferences extends PreferenceFragment
              preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
              preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
          }
          }
  
  
@@ -79,10 +79,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
 -        safeBrowsingPref.setOnPreferenceChangeListener(this);
 -        safeBrowsingPref.setOnPreferenceChangeListener(this);
 -        safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
 -        safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
 -
 -
-         if (BuildInfo.isAtLeastQ()) {
-             ChromeBaseCheckBoxPreference usageStatsPref =
-                     (ChromeBaseCheckBoxPreference) findPreference(PREF_USAGE_STATS);
-@@ -146,11 +130,6 @@ public class PrivacyPreferences extends PreferenceFragment
+         updateSummaries();
+     }
+ 
+@@ -150,11 +134,6 @@ public class PrivacyPreferences extends PreferenceFragment
          String key = preference.getKey();
          String key = preference.getKey();
          if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
          if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
              PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
              PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
@@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
          } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
              PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
              PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
              recordNetworkPredictionEnablingUMA((boolean) newValue);
              recordNetworkPredictionEnablingUMA((boolean) newValue);
-@@ -202,19 +181,6 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -206,19 +185,6 @@ public class PrivacyPreferences extends PreferenceFragment
              searchSuggestionsPref.setChecked(prefServiceBridge.isSearchSuggestEnabled());
              searchSuggestionsPref.setChecked(prefServiceBridge.isSearchSuggestEnabled());
          }
          }
  
  
@@ -114,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
          CheckBoxPreference canMakePaymentPref =
          CheckBoxPreference canMakePaymentPref =
                  (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
                  (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
          if (canMakePaymentPref != null) {
          if (canMakePaymentPref != null) {
-@@ -256,12 +222,6 @@ public class PrivacyPreferences extends PreferenceFragment
+@@ -267,12 +233,6 @@ public class PrivacyPreferences extends PreferenceFragment
              if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
              if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
                  return prefs.isSearchSuggestManaged();
                  return prefs.isSearchSuggestManaged();
              }
              }
@@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
 diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-@@ -243,16 +243,6 @@ bool DoesOriginMatchEmbedderMask(int origin_type_mask,
+@@ -250,16 +250,6 @@ bool DoesOriginMatchEmbedderMask(int origin_type_mask,
    return false;
    return false;
  }
  }
  
  
@@ -150,7 +150,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
 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
-@@ -110,7 +110,6 @@
+@@ -115,7 +115,6 @@
  #include "chrome/browser/safe_browsing/certificate_reporting_service.h"
  #include "chrome/browser/safe_browsing/certificate_reporting_service.h"
  #include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h"
  #include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h"
  #include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
  #include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
@@ -158,7 +158,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/safe_browsing/safe_browsing_service.h"
  #include "chrome/browser/safe_browsing/ui_manager.h"
  #include "chrome/browser/safe_browsing/ui_manager.h"
  #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h"
  #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h"
-@@ -4256,11 +4255,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4248,11 +4247,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
        PreviewsLitePageDecider::MaybeCreateThrottleFor(handle);
        PreviewsLitePageDecider::MaybeCreateThrottleFor(handle);
    if (previews_lite_page_throttle)
    if (previews_lite_page_throttle)
      throttles.push_back(std::move(previews_lite_page_throttle));
      throttles.push_back(std::move(previews_lite_page_throttle));
@@ -170,7 +170,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  
  
  #if defined(OS_WIN) || defined(OS_MACOSX) || \
  #if defined(OS_WIN) || defined(OS_MACOSX) || \
      (defined(OS_LINUX) && !defined(OS_CHROMEOS))
      (defined(OS_LINUX) && !defined(OS_CHROMEOS))
-@@ -5130,19 +5124,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
+@@ -5192,19 +5186,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
      content::ResourceContext* resource_context) {
      content::ResourceContext* resource_context) {
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
    DCHECK_CURRENTLY_ON(BrowserThread::IO);
  
  
@@ -207,7 +207,7 @@ diff --git a/chrome/browser/component_updater/file_type_policies_component_insta
 diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
 diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -38,8 +38,10 @@
+@@ -39,8 +39,10 @@
  #include "chrome/browser/download/save_package_file_picker.h"
  #include "chrome/browser/download/save_package_file_picker.h"
  #include "chrome/browser/platform_util.h"
  #include "chrome/browser/platform_util.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile.h"
@@ -218,8 +218,8 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  #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"
  #include "chrome/browser/ui/chrome_pages.h"
  #include "chrome/browser/ui/chrome_pages.h"
-@@ -49,7 +51,9 @@
- #include "chrome/common/chrome_features.h"
+@@ -51,7 +53,9 @@
+ #include "chrome/common/chrome_paths.h"
  #include "chrome/common/pdf_util.h"
  #include "chrome/common/pdf_util.h"
  #include "chrome/common/pref_names.h"
  #include "chrome/common/pref_names.h"
 +#if defined(FULL_SAFE_BROWSING)
 +#if defined(FULL_SAFE_BROWSING)
@@ -228,10 +228,10 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  #include "chrome/grit/generated_resources.h"
  #include "chrome/grit/generated_resources.h"
  #include "components/download/public/common/download_interrupt_reasons.h"
  #include "components/download/public/common/download_interrupt_reasons.h"
  #include "components/download/public/common/download_item.h"
  #include "components/download/public/common/download_item.h"
-@@ -101,8 +105,10 @@
- using content::BrowserThread;
+@@ -106,8 +110,10 @@ using content::DownloadManager;
  using download::DownloadItem;
  using download::DownloadItem;
- using content::DownloadManager;
+ using download::DownloadPathReservationTracker;
+ using download::PathValidationResult;
 +#if defined(FULL_SAFE_BROWSING)
 +#if defined(FULL_SAFE_BROWSING)
  using safe_browsing::DownloadFileType;
  using safe_browsing::DownloadFileType;
  using safe_browsing::DownloadProtectionService;
  using safe_browsing::DownloadProtectionService;
@@ -239,7 +239,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  
  
  namespace {
  namespace {
  
  
-@@ -764,19 +770,19 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() const {
+@@ -768,19 +774,19 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() const {
    return std::string(chrome::kApplicationClientIDStringForAVScanning);
    return std::string(chrome::kApplicationClientIDStringForAVScanning);
  }
  }
  
  
@@ -261,7 +261,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  
  
  void ChromeDownloadManagerDelegate::NotifyExtensions(
  void ChromeDownloadManagerDelegate::NotifyExtensions(
      DownloadItem* download,
      DownloadItem* download,
-@@ -1219,13 +1225,17 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
+@@ -1222,13 +1228,17 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
        DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
        DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
  #endif
  #endif
  
  
@@ -282,8 +282,8 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
 diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
 diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
 --- a/chrome/browser/download/chrome_download_manager_delegate.h
 --- a/chrome/browser/download/chrome_download_manager_delegate.h
 +++ b/chrome/browser/download/chrome_download_manager_delegate.h
 +++ b/chrome/browser/download/chrome_download_manager_delegate.h
-@@ -22,8 +22,10 @@
- #include "chrome/browser/download/download_path_reservation_tracker.h"
+@@ -21,8 +21,10 @@
+ #include "build/build_config.h"
  #include "chrome/browser/download/download_target_determiner_delegate.h"
  #include "chrome/browser/download/download_target_determiner_delegate.h"
  #include "chrome/browser/download/download_target_info.h"
  #include "chrome/browser/download/download_target_info.h"
 +#if defined(FULL_SAFE_BROWSING)
 +#if defined(FULL_SAFE_BROWSING)
@@ -292,8 +292,8 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome
 +#endif
 +#endif
  #include "components/download/public/common/download_danger_type.h"
  #include "components/download/public/common/download_danger_type.h"
  #include "components/download/public/common/download_item.h"
  #include "components/download/public/common/download_item.h"
- #include "content/public/browser/download_manager_delegate.h"
-@@ -131,8 +133,10 @@ class ChromeDownloadManagerDelegate
+ #include "components/download/public/common/download_path_reservation_tracker.h"
+@@ -134,8 +136,10 @@ class ChromeDownloadManagerDelegate
    DownloadPrefs* download_prefs() { return download_prefs_.get(); }
    DownloadPrefs* download_prefs() { return download_prefs_.get(); }
  
  
   protected:
   protected:
@@ -304,7 +304,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome
  
  
    // Show file picker for |download|.
    // Show file picker for |download|.
    virtual void ShowFilePickerForDownload(
    virtual void ShowFilePickerForDownload(
-@@ -197,9 +201,11 @@ class ChromeDownloadManagerDelegate
+@@ -201,9 +205,11 @@ class ChromeDownloadManagerDelegate
                 const content::NotificationSource& source,
                 const content::NotificationSource& source,
                 const content::NotificationDetails& details) override;
                 const content::NotificationDetails& details) override;
  
  
@@ -430,7 +430,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download
 diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
 diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
 --- a/chrome/browser/download/download_target_determiner.cc
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -22,7 +22,9 @@
+@@ -23,7 +23,9 @@
  #include "chrome/browser/history/history_service_factory.h"
  #include "chrome/browser/history/history_service_factory.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/common/pref_names.h"
  #include "chrome/common/pref_names.h"
@@ -440,10 +440,10 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
  #include "chrome/grit/generated_resources.h"
  #include "chrome/grit/generated_resources.h"
  #include "components/download/public/common/download_interrupt_reasons.h"
  #include "components/download/public/common/download_interrupt_reasons.h"
  #include "components/history/core/browser/history_service.h"
  #include "components/history/core/browser/history_service.h"
-@@ -56,13 +58,16 @@
- 
+@@ -59,13 +61,16 @@
  using content::BrowserThread;
  using content::BrowserThread;
  using download::DownloadItem;
  using download::DownloadItem;
+ using download::DownloadPathReservationTracker;
 +#if defined(FULL_SAFE_BROWSING)
 +#if defined(FULL_SAFE_BROWSING)
  using safe_browsing::DownloadFileType;
  using safe_browsing::DownloadFileType;
 +#endif
 +#endif
@@ -457,7 +457,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
  // Condenses the results from HistoryService::GetVisibleVisitCountToHost() to a
  // Condenses the results from HistoryService::GetVisibleVisitCountToHost() to a
  // single bool. A host is considered visited before if prior visible visits were
  // single bool. A host is considered visited before if prior visible visits were
  // found in history and the first such visit was earlier than the most recent
  // found in history and the first such visit was earlier than the most recent
-@@ -76,6 +81,7 @@ void VisitCountsToVisitedBefore(
+@@ -79,6 +84,7 @@ void VisitCountsToVisitedBefore(
        found_visits && count > 0 &&
        found_visits && count > 0 &&
        (first_visit.LocalMidnight() < base::Time::Now().LocalMidnight()));
        (first_visit.LocalMidnight() < base::Time::Now().LocalMidnight()));
  }
  }
@@ -465,7 +465,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
  
  
  #if defined(OS_WIN)
  #if defined(OS_WIN)
  // Keeps track of whether Adobe Reader is up to date.
  // Keeps track of whether Adobe Reader is up to date.
-@@ -100,7 +106,9 @@ DownloadTargetDeterminer::DownloadTargetDeterminer(
+@@ -103,7 +109,9 @@ DownloadTargetDeterminer::DownloadTargetDeterminer(
        create_target_directory_(false),
        create_target_directory_(false),
        conflict_action_(conflict_action),
        conflict_action_(conflict_action),
        danger_type_(download->GetDangerType()),
        danger_type_(download->GetDangerType()),
@@ -475,7 +475,20 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
        virtual_path_(initial_virtual_path),
        virtual_path_(initial_virtual_path),
        is_filetype_handled_safely_(false),
        is_filetype_handled_safely_(false),
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
-@@ -719,6 +727,7 @@ DownloadTargetDeterminer::Result
+@@ -259,8 +267,12 @@ DownloadTargetDeterminer::Result
+     // |suggested_filename| and Content-Disposition header have higher priority
+     // than the URL.
+     bool safe_file_ext =
++#if defined(FULL_SAFE_BROWSING)
+         !safe_browsing::FileTypePolicies::GetInstance()->IsCheckedBinaryFile(
+             generated_filename);
++#else
++        true;
++#endif
+     net::HttpContentDisposition content_disposition_header(
+         download_->GetContentDisposition(), referrer_charset);
+     bool should_replace_extension =
+@@ -749,6 +761,7 @@ DownloadTargetDeterminer::Result
      return CONTINUE;
      return CONTINUE;
    }
    }
  
  
@@ -483,7 +496,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
    // First determine the danger level assuming that the user doesn't have any
    // First determine the danger level assuming that the user doesn't have any
    // prior visits to the referrer recoreded in history. The resulting danger
    // prior visits to the referrer recoreded in history. The resulting danger
    // level would be ALLOW_ON_USER_GESTURE if the level depends on the visit
    // level would be ALLOW_ON_USER_GESTURE if the level depends on the visit
-@@ -755,6 +764,7 @@ DownloadTargetDeterminer::Result
+@@ -785,6 +798,7 @@ DownloadTargetDeterminer::Result
    // invalid, then assume the referrer has not been visited before.
    // invalid, then assume the referrer has not been visited before.
    if (danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS)
    if (danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS)
      danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
      danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
@@ -491,7 +504,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
    return CONTINUE;
    return CONTINUE;
  }
  }
  
  
-@@ -762,11 +772,13 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone(
+@@ -792,11 +806,13 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone(
      bool visited_referrer_before) {
      bool visited_referrer_before) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_EQ(STATE_DETERMINE_INTERMEDIATE_PATH, next_state_);
    DCHECK_EQ(STATE_DETERMINE_INTERMEDIATE_PATH, next_state_);
@@ -505,7 +518,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
    DoLoop();
    DoLoop();
  }
  }
  
  
-@@ -861,7 +873,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
+@@ -901,7 +917,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
              << " Intermediate:" << intermediate_path_.AsUTF8Unsafe()
              << " Intermediate:" << intermediate_path_.AsUTF8Unsafe()
              << " Confirmation reason:" << static_cast<int>(confirmation_reason_)
              << " Confirmation reason:" << static_cast<int>(confirmation_reason_)
              << " Danger type:" << danger_type_
              << " Danger type:" << danger_type_
@@ -515,7 +528,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
              << " Result:" << static_cast<int>(result);
              << " Result:" << static_cast<int>(result);
    std::unique_ptr<DownloadTargetInfo> target_info(new DownloadTargetInfo);
    std::unique_ptr<DownloadTargetInfo> target_info(new DownloadTargetInfo);
  
  
-@@ -873,7 +887,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
+@@ -913,7 +931,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
             ? DownloadItem::TARGET_DISPOSITION_PROMPT
             ? DownloadItem::TARGET_DISPOSITION_PROMPT
             : DownloadItem::TARGET_DISPOSITION_OVERWRITE);
             : DownloadItem::TARGET_DISPOSITION_OVERWRITE);
    target_info->danger_type = danger_type_;
    target_info->danger_type = danger_type_;
@@ -525,7 +538,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
    target_info->intermediate_path = intermediate_path_;
    target_info->intermediate_path = intermediate_path_;
    target_info->mime_type = mime_type_;
    target_info->mime_type = mime_type_;
    target_info->is_filetype_handled_safely = is_filetype_handled_safely_;
    target_info->is_filetype_handled_safely = is_filetype_handled_safely_;
-@@ -959,6 +975,7 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const {
+@@ -999,6 +1019,7 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const {
                                  DownloadItem::TARGET_DISPOSITION_PROMPT);
                                  DownloadItem::TARGET_DISPOSITION_PROMPT);
  }
  }
  
  
@@ -533,7 +546,7 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
  DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
  DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
      PriorVisitsToReferrer visits) const {
      PriorVisitsToReferrer visits) const {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
-@@ -990,6 +1007,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
+@@ -1030,6 +1051,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
  
  
    return DownloadFileType::NOT_DANGEROUS;
    return DownloadFileType::NOT_DANGEROUS;
  }
  }
@@ -544,8 +557,8 @@ diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/brow
 diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h
 diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h
 --- a/chrome/browser/download/download_target_determiner.h
 --- a/chrome/browser/download/download_target_determiner.h
 +++ b/chrome/browser/download/download_target_determiner.h
 +++ b/chrome/browser/download/download_target_determiner.h
-@@ -17,7 +17,9 @@
- #include "chrome/browser/download/download_path_reservation_tracker.h"
+@@ -16,7 +16,9 @@
+ #include "build/build_config.h"
  #include "chrome/browser/download/download_target_determiner_delegate.h"
  #include "chrome/browser/download/download_target_determiner_delegate.h"
  #include "chrome/browser/download/download_target_info.h"
  #include "chrome/browser/download/download_target_info.h"
 +#if defined(FULL_SAFE_BROWSING)
 +#if defined(FULL_SAFE_BROWSING)
@@ -553,8 +566,8 @@ diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/brows
 +#endif
 +#endif
  #include "components/download/public/common/download_danger_type.h"
  #include "components/download/public/common/download_danger_type.h"
  #include "components/download/public/common/download_item.h"
  #include "components/download/public/common/download_item.h"
- #include "content/public/browser/download_manager_delegate.h"
-@@ -297,6 +299,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
+ #include "components/download/public/common/download_path_reservation_tracker.h"
+@@ -300,6 +302,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
    // operation.
    // operation.
    bool HasPromptedForPath() const;
    bool HasPromptedForPath() const;
  
  
@@ -562,7 +575,7 @@ diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/brows
    // Returns true if this download should show the "dangerous file" warning.
    // Returns true if this download should show the "dangerous file" warning.
    // Various factors are considered, such as the type of the file, whether a
    // Various factors are considered, such as the type of the file, whether a
    // user action initiated the download, and whether the user has explicitly
    // user action initiated the download, and whether the user has explicitly
-@@ -306,6 +309,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
+@@ -309,6 +312,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
    // to true if the download requires explicit user consent.
    // to true if the download requires explicit user consent.
    safe_browsing::DownloadFileType::DangerLevel GetDangerLevel(
    safe_browsing::DownloadFileType::DangerLevel GetDangerLevel(
        PriorVisitsToReferrer visits) const;
        PriorVisitsToReferrer visits) const;
@@ -570,9 +583,9 @@ diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/brows
  
  
    // download::DownloadItem::Observer
    // download::DownloadItem::Observer
    void OnDownloadDestroyed(download::DownloadItem* download) override;
    void OnDownloadDestroyed(download::DownloadItem* download) override;
-@@ -317,7 +321,9 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
-   bool create_target_directory_;
-   DownloadPathReservationTracker::FilenameConflictAction conflict_action_;
+@@ -321,7 +325,9 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
+   download::DownloadPathReservationTracker::FilenameConflictAction
+       conflict_action_;
    download::DownloadDangerType danger_type_;
    download::DownloadDangerType danger_type_;
 +#if defined(FULL_SAFE_BROWSING)
 +#if defined(FULL_SAFE_BROWSING)
    safe_browsing::DownloadFileType::DangerLevel danger_level_;
    safe_browsing::DownloadFileType::DangerLevel danger_level_;
@@ -689,7 +702,7 @@ diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/downlo
 diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
-@@ -400,14 +400,18 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
+@@ -399,7 +399,9 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
      content::ResourceContext* resource_context,
      content::ResourceContext* resource_context,
      ResourceType resource_type,
      ResourceType resource_type,
      std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
      std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
@@ -697,17 +710,8 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
    ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
    ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
 +#endif  // defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
 +#endif  // defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
  
  
-   // Insert either safe browsing or data reduction proxy throttle at the front
-   // of the list, so one of them gets to decide if the resource is safe.
+   // Insert safe browsing to decide if the resource is safe.
    content::ResourceThrottle* first_throttle = NULL;
    content::ResourceThrottle* first_throttle = NULL;
- #if defined(OS_ANDROID)
-+#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
-   first_throttle = DataReductionProxyResourceThrottle::MaybeCreate(
-       request, resource_context, resource_type, nullptr);
-+#endif
- #endif  // defined(OS_ANDROID)
- 
- #if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
 diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
 diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
 --- a/chrome/browser/net/chrome_network_delegate.cc
 --- a/chrome/browser/net/chrome_network_delegate.cc
 +++ b/chrome/browser/net/chrome_network_delegate.cc
 +++ b/chrome/browser/net/chrome_network_delegate.cc
@@ -731,7 +735,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
  bool IsAccessAllowedInternal(const base::FilePath& path,
  bool IsAccessAllowedInternal(const base::FilePath& path,
                               const base::FilePath& profile_path) {
                               const base::FilePath& profile_path) {
    if (g_access_to_all_files_enabled)
    if (g_access_to_all_files_enabled)
-@@ -214,26 +201,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
+@@ -212,26 +199,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
      GURL* new_url) {
      GURL* new_url) {
    extensions_delegate_->ForwardStartRequestStatus(request);
    extensions_delegate_->ForwardStartRequestStatus(request);
  
  

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

@@ -10,7 +10,7 @@ Subject: Allow playing audio in background
 diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
 diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
 --- a/media/blink/webmediaplayer_impl.cc
 --- a/media/blink/webmediaplayer_impl.cc
 +++ b/media/blink/webmediaplayer_impl.cc
 +++ b/media/blink/webmediaplayer_impl.cc
-@@ -1014,6 +1014,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
+@@ -948,6 +948,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
    return pipeline_metadata_.has_audio;
    return pipeline_metadata_.has_audio;
  }
  }
  
  
@@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
  void WebMediaPlayerImpl::EnabledAudioTracksChanged(
  void WebMediaPlayerImpl::EnabledAudioTracksChanged(
      const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
      const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
    DCHECK(main_task_runner_->BelongsToCurrentThread());
    DCHECK(main_task_runner_->BelongsToCurrentThread());
-@@ -3297,7 +3303,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
+@@ -3113,7 +3119,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
    // If suspending background video, pause any video that's not remoted or
    // If suspending background video, pause any video that's not remoted or
    // not unlocked to play in the background.
    // not unlocked to play in the background.
    if (IsBackgroundSuspendEnabled(this)) {
    if (IsBackgroundSuspendEnabled(this)) {
@@ -38,7 +38,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
 diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
 diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
 --- a/media/blink/webmediaplayer_impl.h
 --- a/media/blink/webmediaplayer_impl.h
 +++ b/media/blink/webmediaplayer_impl.h
 +++ b/media/blink/webmediaplayer_impl.h
-@@ -153,6 +153,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
+@@ -141,6 +141,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
    // True if the loaded media has a playable video/audio track.
    // True if the loaded media has a playable video/audio track.
    bool HasVideo() const override;
    bool HasVideo() const override;
    bool HasAudio() const override;
    bool HasAudio() const override;

+ 1 - 1
build/patches/Always-allow-partner-customisation.patch

@@ -9,7 +9,7 @@ Subject: Always allow partner customisation
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
-@@ -242,14 +242,14 @@ public class PartnerBrowserCustomizations {
+@@ -244,14 +244,14 @@ public class PartnerBrowserCustomizations {
              @Override
              @Override
              protected Void doInBackground() {
              protected Void doInBackground() {
                  try {
                  try {

+ 2 - 2
build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch

@@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
 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
-@@ -220,7 +220,7 @@ void OnAuthPrefsChanged(PrefService* local_state,
+@@ -226,7 +226,7 @@ void OnAuthPrefsChanged(PrefService* local_state,
  // Android this includes checking the Android version in the field trial.
  // Android this includes checking the Android version in the field trial.
  bool ShouldEnableAsyncDns() {
  bool ShouldEnableAsyncDns() {
    bool feature_can_be_enabled = true;
    bool feature_can_be_enabled = true;
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
 diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
 diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
 --- a/components/cronet/url_request_context_config.cc
 --- a/components/cronet/url_request_context_config.cc
 +++ b/components/cronet/url_request_context_config.cc
 +++ b/components/cronet/url_request_context_config.cc
-@@ -517,7 +517,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
+@@ -544,7 +544,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
          effective_experimental_options->Remove(it.key(), nullptr);
          effective_experimental_options->Remove(it.key(), nullptr);
          continue;
          continue;
        }
        }

+ 18 - 20
build/patches/Always-show-home-page-settings.patch

@@ -7,19 +7,19 @@ display home page settings.
 This allows removing the home page button and restoring it from settings.
 This allows removing the home page button and restoring it from settings.
 ---
 ---
  .../browser/init/ProcessInitializationHandler.java | 12 --------
  .../browser/init/ProcessInitializationHandler.java | 12 --------
- .../partnercustomizations/HomepageManager.java     | 17 ++--------
+ .../partnercustomizations/HomepageManager.java     | 17 ++---------
  .../preferences/ChromePreferenceManager.java       |  7 -----
  .../preferences/ChromePreferenceManager.java       |  7 -----
  .../browser/preferences/MainPreferences.java       | 12 +++-----
  .../browser/preferences/MainPreferences.java       | 12 +++-----
- .../chrome/browser/util/FeatureUtilities.java      | 36 ----------------------
+ .../chrome/browser/util/FeatureUtilities.java      | 34 ----------------------
  chrome/browser/about_flags.cc                      |  3 --
  chrome/browser/about_flags.cc                      |  3 --
  chrome/browser/android/chrome_feature_list.cc      |  4 ---
  chrome/browser/android/chrome_feature_list.cc      |  4 ---
  chrome/browser/android/chrome_feature_list.h       |  1 -
  chrome/browser/android/chrome_feature_list.h       |  1 -
- 8 files changed, 7 insertions(+), 85 deletions(-)
+ 8 files changed, 7 insertions(+), 83 deletions(-)
 
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
-@@ -328,18 +328,6 @@ public class ProcessInitializationHandler {
+@@ -338,18 +338,6 @@ public class ProcessInitializationHandler {
          deferredStartupHandler.addDeferredTask(new Runnable() {
          deferredStartupHandler.addDeferredTask(new Runnable() {
              @Override
              @Override
              public void run() {
              public void run() {
@@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
-@@ -144,13 +144,6 @@ public class ChromePreferenceManager {
+@@ -147,13 +147,6 @@ public class ChromePreferenceManager {
      private static final String CHROME_MODERN_DESIGN_ENABLED_KEY = "chrome_modern_design_enabled";
      private static final String CHROME_MODERN_DESIGN_ENABLED_KEY = "chrome_modern_design_enabled";
  
  
      /**
      /**
@@ -106,8 +106,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Chr
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
-@@ -195,15 +195,11 @@ public class MainPreferences extends PreferenceFragment
- 
+@@ -207,15 +207,11 @@ public class MainPreferences extends PreferenceFragment
+         updateSyncAndServicesPreference();
          updateSearchEnginePreference();
          updateSearchEnginePreference();
  
  
 -        if (HomepageManager.shouldShowHomepageSetting()) {
 -        if (HomepageManager.shouldShowHomepageSetting()) {
@@ -129,7 +129,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
-@@ -71,7 +71,6 @@ public class FeatureUtilities {
+@@ -73,7 +73,6 @@ public class FeatureUtilities {
      private static Boolean sHasRecognitionIntentHandler;
      private static Boolean sHasRecognitionIntentHandler;
  
  
      private static Boolean sIsSoleEnabled;
      private static Boolean sIsSoleEnabled;
@@ -137,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUti
      private static Boolean sIsHomepageTileEnabled;
      private static Boolean sIsHomepageTileEnabled;
      private static Boolean sIsNewTabPageButtonEnabled;
      private static Boolean sIsNewTabPageButtonEnabled;
      private static Boolean sIsBottomToolbarEnabled;
      private static Boolean sIsBottomToolbarEnabled;
-@@ -186,7 +185,6 @@ public class FeatureUtilities {
+@@ -194,7 +193,6 @@ public class FeatureUtilities {
          cacheSoleEnabled();
          cacheSoleEnabled();
          cacheCommandLineOnNonRootedEnabled();
          cacheCommandLineOnNonRootedEnabled();
          FirstRunUtils.cacheFirstRunPrefs();
          FirstRunUtils.cacheFirstRunPrefs();
@@ -145,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUti
          cacheHomepageTileEnabled();
          cacheHomepageTileEnabled();
          cacheNewTabPageButtonEnabled();
          cacheNewTabPageButtonEnabled();
          cacheBottomToolbarEnabled();
          cacheBottomToolbarEnabled();
-@@ -212,40 +210,6 @@ public class FeatureUtilities {
+@@ -229,38 +227,6 @@ public class FeatureUtilities {
      }
      }
  
  
      /**
      /**
@@ -166,10 +166,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUti
 -        if (sIsHomePageButtonForceEnabled == null) {
 -        if (sIsHomePageButtonForceEnabled == null) {
 -            ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
 -            ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
 -
 -
--            try (StrictModeContext unused = StrictModeContext.allowDiskReads()) {
--                sIsHomePageButtonForceEnabled = prefManager.readBoolean(
--                        ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, false);
--            }
+-            sIsHomePageButtonForceEnabled = prefManager.readBoolean(
+-                    ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, false);
 -        }
 -        }
 -        return sIsHomePageButtonForceEnabled;
 -        return sIsHomePageButtonForceEnabled;
 -    }
 -    }
@@ -189,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUti
 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
-@@ -1891,9 +1891,6 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1710,9 +1710,6 @@ const FeatureEntry kFeatureEntries[] = {
      {"enable-chrome-duet", flag_descriptions::kChromeDuetName,
      {"enable-chrome-duet", flag_descriptions::kChromeDuetName,
       flag_descriptions::kChromeDuetDescription, kOsAndroid,
       flag_descriptions::kChromeDuetDescription, kOsAndroid,
       FEATURE_VALUE_TYPE(chrome::android::kChromeDuetFeature)},
       FEATURE_VALUE_TYPE(chrome::android::kChromeDuetFeature)},
@@ -202,15 +200,15 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
 diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
 --- a/chrome/browser/android/chrome_feature_list.cc
 --- a/chrome/browser/android/chrome_feature_list.cc
 +++ b/chrome/browser/android/chrome_feature_list.cc
 +++ b/chrome/browser/android/chrome_feature_list.cc
-@@ -124,7 +124,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
-     &kGestureNavigation,
+@@ -133,7 +133,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
+     &kExploreSites,
      &kHandleMediaIntents,
      &kHandleMediaIntents,
      &kHideUserDataFromIncognitoNotifications,
      &kHideUserDataFromIncognitoNotifications,
 -    &kHomePageButtonForceEnabled,
 -    &kHomePageButtonForceEnabled,
      &kHomepageTile,
      &kHomepageTile,
      &kHorizontalTabSwitcherAndroid,
      &kHorizontalTabSwitcherAndroid,
      &kImprovedA2HS,
      &kImprovedA2HS,
-@@ -337,9 +336,6 @@ const base::Feature kHandleMediaIntents{"HandleMediaIntents",
+@@ -377,9 +376,6 @@ const base::Feature kHandleMediaIntents{"HandleMediaIntents",
  const base::Feature kHideUserDataFromIncognitoNotifications{
  const base::Feature kHideUserDataFromIncognitoNotifications{
      "HideUserDataFromIncognitoNotifications", base::FEATURE_ENABLED_BY_DEFAULT};
      "HideUserDataFromIncognitoNotifications", base::FEATURE_ENABLED_BY_DEFAULT};
  
  
@@ -223,8 +221,8 @@ diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/andr
 diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h
 diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h
 --- a/chrome/browser/android/chrome_feature_list.h
 --- a/chrome/browser/android/chrome_feature_list.h
 +++ b/chrome/browser/android/chrome_feature_list.h
 +++ b/chrome/browser/android/chrome_feature_list.h
-@@ -56,7 +56,6 @@ extern const base::Feature kForegroundNotificationManager;
- extern const base::Feature kGestureNavigation;
+@@ -63,7 +63,6 @@ extern const base::Feature kExploreSites;
+ extern const base::Feature kForegroundNotificationManager;
  extern const base::Feature kHandleMediaIntents;
  extern const base::Feature kHandleMediaIntents;
  extern const base::Feature kHideUserDataFromIncognitoNotifications;
  extern const base::Feature kHideUserDataFromIncognitoNotifications;
 -extern const base::Feature kHomePageButtonForceEnabled;
 -extern const base::Feature kHomePageButtonForceEnabled;

+ 2 - 2
build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch

@@ -43,14 +43,14 @@ 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
-@@ -315,6 +315,7 @@ void AudioContext::StopRendering() {
+@@ -324,6 +324,7 @@ void AudioContext::StopRendering() {
  double AudioContext::baseLatency() const {
  double AudioContext::baseLatency() const {
    DCHECK(IsMainThread());
    DCHECK(IsMainThread());
    DCHECK(destination());
    DCHECK(destination());
 +  return 0.04;
 +  return 0.04;
  
  
    // TODO(hongchan): Due to the incompatible constructor between
    // TODO(hongchan): Due to the incompatible constructor between
-   // AudioDestinationNode and DefaultAudioDestinationNode, casting directly from
+   // AudioDestinationNode and RealtimeAudioDestinationNode, casting directly
 -- 
 -- 
 2.11.0
 2.11.0
 
 

+ 1 - 1
build/patches/Battery-API-return-nothing.patch

@@ -9,7 +9,7 @@ Subject: Battery API: return nothing
 diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
 diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
 --- a/third_party/blink/renderer/modules/battery/battery_manager.cc
 --- a/third_party/blink/renderer/modules/battery/battery_manager.cc
 +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
 +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
-@@ -43,45 +43,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
+@@ -44,45 +44,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
  }
  }
  
  
  bool BatteryManager::charging() {
  bool BatteryManager::charging() {

+ 10 - 10
build/patches/Bromite-adblock-engine.patch

@@ -33,7 +33,7 @@ Add support for Webview content blocking
 diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webview/browser/net/aw_network_delegate.cc
 diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webview/browser/net/aw_network_delegate.cc
 --- a/android_webview/browser/net/aw_network_delegate.cc
 --- a/android_webview/browser/net/aw_network_delegate.cc
 +++ b/android_webview/browser/net/aw_network_delegate.cc
 +++ b/android_webview/browser/net/aw_network_delegate.cc
-@@ -19,9 +19,11 @@
+@@ -20,9 +20,11 @@
  #include "net/base/proxy_server.h"
  #include "net/base/proxy_server.h"
  #include "net/http/http_response_headers.h"
  #include "net/http/http_response_headers.h"
  #include "net/proxy_resolution/proxy_info.h"
  #include "net/proxy_resolution/proxy_info.h"
@@ -45,7 +45,7 @@ diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webvie
  
  
  namespace android_webview {
  namespace android_webview {
  
  
-@@ -48,6 +50,72 @@ AwNetworkDelegate::AwNetworkDelegate() {}
+@@ -49,6 +51,72 @@ AwNetworkDelegate::AwNetworkDelegate() {}
  AwNetworkDelegate::~AwNetworkDelegate() {
  AwNetworkDelegate::~AwNetworkDelegate() {
  }
  }
  
  
@@ -64,7 +64,7 @@ diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webvie
 +          isValidUrl = false;
 +          isValidUrl = false;
 +        }
 +        }
 +    }
 +    }
-+    const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
++    ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
 +
 +
 +    // there are no per-site nor global ad/content settings when using the SystemWebView
 +    // there are no per-site nor global ad/content settings when using the SystemWebView
 +    bool adblock_enabled = true;
 +    bool adblock_enabled = true;
@@ -177,7 +177,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-@@ -2249,6 +2249,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2263,6 +2263,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              RecordUserAction.record("MobileMenuRequestEnableJavascript");
              RecordUserAction.record("MobileMenuRequestEnableJavascript");
          } else if (id == R.id.reader_mode_prefs_id) {
          } else if (id == R.id.reader_mode_prefs_id) {
              DomDistillerUIUtils.openSettings(currentTab.getWebContents());
              DomDistillerUIUtils.openSettings(currentTab.getWebContents());
@@ -195,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
 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
-@@ -1678,6 +1678,14 @@ public class ChromeTabbedActivity
+@@ -1815,6 +1815,14 @@ public class ChromeTabbedActivity
                  reportNewTabShortcutUsed(true);
                  reportNewTabShortcutUsed(true);
                  getTabCreator(true).launchNTP();
                  getTabCreator(true).launchNTP();
              }
              }
@@ -213,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
-@@ -196,6 +196,8 @@ public class AppMenuPropertiesDelegate {
+@@ -195,6 +195,8 @@ public class AppMenuPropertiesDelegate {
                      && !TextUtils.isEmpty(url);
                      && !TextUtils.isEmpty(url);
              prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
              prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
  
  
@@ -280,7 +280,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 --- a/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
 +++ b/chrome/android/java/strings/android_chrome_strings.grd
-@@ -3059,6 +3059,17 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3086,6 +3086,17 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
        <message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
          Turn on Request desktop site
          Turn on Request desktop site
        </message>
        </message>
@@ -317,7 +317,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
  #endif
  #endif
  
  
  #if defined(OS_CHROMEOS)
  #if defined(OS_CHROMEOS)
-@@ -195,10 +197,91 @@ void ChromeNetworkDelegate::set_cookie_settings(
+@@ -193,10 +195,91 @@ void ChromeNetworkDelegate::set_cookie_settings(
    cookie_settings_ = cookie_settings;
    cookie_settings_ = cookie_settings;
  }
  }
  
  
@@ -336,7 +336,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
 +          isValidUrl = false;
 +          isValidUrl = false;
 +        }
 +        }
 +    }
 +    }
-+    const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
++    ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
 +
 +
 +    bool adblock_enabled = false;
 +    bool adblock_enabled = false;
 +    if (isValidUrl && info) {
 +    if (isValidUrl && info) {
@@ -423,7 +423,7 @@ diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settin
 diff --git a/net/BUILD.gn b/net/BUILD.gn
 diff --git a/net/BUILD.gn b/net/BUILD.gn
 --- a/net/BUILD.gn
 --- a/net/BUILD.gn
 +++ b/net/BUILD.gn
 +++ b/net/BUILD.gn
-@@ -1797,6 +1797,13 @@ component("net") {
+@@ -1794,6 +1794,13 @@ component("net") {
        "url_request/websocket_handshake_userdata_key.h",
        "url_request/websocket_handshake_userdata_key.h",
      ]
      ]
  
  

+ 4 - 4
build/patches/Canvas-fingerprinting-mitigations-for-image-data-and-webGL.patch

@@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/platform/platform.h"
  #include "third_party/blink/public/platform/platform.h"
  #include "third_party/blink/public/platform/task_type.h"
  #include "third_party/blink/public/platform/task_type.h"
-@@ -790,7 +788,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
+@@ -799,7 +797,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
                               GetState().GetTextAlign(), text);
                               GetState().GetTextAlign(), text);
  
  
    // scale text metrics by 3/1000000th
    // scale text metrics by 3/1000000th
@@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.
 diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
 diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
 --- a/third_party/blink/renderer/platform/BUILD.gn
 --- a/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
 +++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1432,7 +1432,9 @@ jumbo_component("platform") {
+@@ -1423,7 +1423,9 @@ jumbo_component("platform") {
      "//third_party/blink/renderer:non_test_config",
      "//third_party/blink/renderer:non_test_config",
    ]
    ]
  
  
@@ -82,7 +82,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
  #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
  #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
  #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
  #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
  #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
  #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-@@ -128,6 +130,9 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
+@@ -127,6 +129,9 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
                                            const SkPixmap& pixmap) const {
                                            const SkPixmap& pixmap) const {
    DCHECK(is_valid_);
    DCHECK(is_valid_);
  
  
@@ -112,7 +112,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
  #include "third_party/skia/include/core/SkSurface.h"
  #include "third_party/skia/include/core/SkSurface.h"
  #include "third_party/skia/include/gpu/GrContext.h"
  #include "third_party/skia/include/gpu/GrContext.h"
  
  
-@@ -171,10 +174,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
+@@ -151,10 +154,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
    DCHECK(read_pixels_successful ||
    DCHECK(read_pixels_successful ||
           !sk_image->bounds().intersect(SkIRect::MakeXYWH(
           !sk_image->bounds().intersect(SkIRect::MakeXYWH(
               rect.X(), rect.Y(), info.width(), info.height())));
               rect.X(), rect.Y(), info.width(), info.height())));

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

@@ -9,7 +9,7 @@ Subject: Disable NTP remote suggestions by default
 diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
 diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
 --- a/components/ntp_snippets/features.cc
 --- a/components/ntp_snippets/features.cc
 +++ b/components/ntp_snippets/features.cc
 +++ b/components/ntp_snippets/features.cc
-@@ -35,13 +35,13 @@ const base::Feature* const kAllFeatures[] = {
+@@ -34,13 +34,13 @@ const base::Feature* const kAllFeatures[] = {
      &kRemoteSuggestionsBackendFeature};
      &kRemoteSuggestionsBackendFeature};
  
  
  const base::Feature kArticleSuggestionsFeature{
  const base::Feature kArticleSuggestionsFeature{

+ 1 - 1
build/patches/Disable-Omaha-update-checks.patch

@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNu
 diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
 diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
 --- a/chrome/browser/android/chrome_feature_list.cc
 --- a/chrome/browser/android/chrome_feature_list.cc
 +++ b/chrome/browser/android/chrome_feature_list.cc
 +++ b/chrome/browser/android/chrome_feature_list.cc
-@@ -357,7 +357,7 @@ const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
+@@ -400,7 +400,7 @@ const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
      base::FEATURE_DISABLED_BY_DEFAULT};
      base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kJellyBeanSupported{"JellyBeanSupported",
  const base::Feature kJellyBeanSupported{"JellyBeanSupported",

+ 1 - 1
build/patches/Disable-contextual-search-by-default.patch

@@ -9,7 +9,7 @@ Subject: Disable contextual search by default
 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
-@@ -143,7 +143,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -144,7 +144,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
    registry->RegisterStringPref(
    registry->RegisterStringPref(
        prefs::kContextualSearchEnabled,
        prefs::kContextualSearchEnabled,

+ 1 - 1
build/patches/Disable-data-saver.patch

@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/D
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoUtils.java
-@@ -68,7 +68,7 @@ public class DataReductionPromoUtils {
+@@ -70,7 +70,7 @@ public class DataReductionPromoUtils {
          }
          }
          if (DataReductionProxySettings.getInstance().isDataReductionProxyManaged()) return false;
          if (DataReductionProxySettings.getInstance().isDataReductionProxyManaged()) return false;
          if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) return false;
          if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) return false;

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

@@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureLi
 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
-@@ -239,17 +239,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
+@@ -240,17 +240,7 @@ 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() {

+ 0 - 23
build/patches/Disable-hyperlink-auditing-by-default.patch

@@ -1,23 +0,0 @@
-From: Daniel Micay <danielmicay@gmail.com>
-Date: Sat, 26 Nov 2016 14:57:22 -0500
-Subject: Disable hyperlink auditing by default
-
----
- chrome/browser/about_flags.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
---- a/chrome/browser/about_flags.cc
-+++ b/chrome/browser/about_flags.cc
-@@ -1325,7 +1325,7 @@ const FeatureEntry kFeatureEntries[] = {
-      SINGLE_VALUE_TYPE(switches::kDisableIpcFloodingProtection)},
-     {"disable-hyperlink-auditing", flag_descriptions::kHyperlinkAuditingName,
-      flag_descriptions::kHyperlinkAuditingDescription, kOsAll,
--     SINGLE_DISABLE_VALUE_TYPE(switches::kNoPings)},
-+     SINGLE_VALUE_TYPE(switches::kNoPings)},
- #if defined(OS_ANDROID)
-     {"contextual-search", flag_descriptions::kContextualSearchName,
-      flag_descriptions::kContextualSearchDescription, kOsAndroid,
--- 
-2.11.0
-

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

@@ -10,7 +10,7 @@ Subject: Disable metrics collection for NTP tiles
 diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
 diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
 --- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
 --- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
 +++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
 +++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
-@@ -22,7 +22,6 @@
+@@ -23,7 +23,6 @@
  #include "chrome/browser/profiles/profile_android.h"
  #include "chrome/browser/profiles/profile_android.h"
  #include "components/favicon_base/favicon_types.h"
  #include "components/favicon_base/favicon_types.h"
  #include "components/history/core/browser/history_service.h"
  #include "components/history/core/browser/history_service.h"
@@ -18,7 +18,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
  #include "components/ntp_tiles/most_visited_sites.h"
  #include "components/ntp_tiles/most_visited_sites.h"
  #include "components/ntp_tiles/section_type.h"
  #include "components/ntp_tiles/section_type.h"
  #include "components/rappor/rappor_service_impl.h"
  #include "components/rappor/rappor_service_impl.h"
-@@ -44,7 +43,6 @@ using ntp_tiles::NTPTilesVector;
+@@ -45,7 +44,6 @@ using ntp_tiles::NTPTilesVector;
  using ntp_tiles::SectionType;
  using ntp_tiles::SectionType;
  using ntp_tiles::TileTitleSource;
  using ntp_tiles::TileTitleSource;
  using ntp_tiles::TileSource;
  using ntp_tiles::TileSource;
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
  
  
  namespace {
  namespace {
  
  
-@@ -239,7 +237,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
+@@ -240,7 +238,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
      JNIEnv* env,
      JNIEnv* env,
      const JavaParamRef<jobject>& obj,
      const JavaParamRef<jobject>& obj,
      jint jtiles_count) {
      jint jtiles_count) {
@@ -34,7 +34,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
  }
  }
  
  
  void MostVisitedSitesBridge::RecordTileImpression(
  void MostVisitedSitesBridge::RecordTileImpression(
-@@ -252,18 +249,6 @@ void MostVisitedSitesBridge::RecordTileImpression(
+@@ -253,18 +250,6 @@ void MostVisitedSitesBridge::RecordTileImpression(
      jint jsource,
      jint jsource,
      jlong jdata_generation_time_ms,
      jlong jdata_generation_time_ms,
      const JavaParamRef<jstring>& jurl) {
      const JavaParamRef<jstring>& jurl) {
@@ -53,7 +53,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
  }
  }
  
  
  void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
  void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
-@@ -274,12 +259,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
+@@ -275,12 +260,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
      jint title_source,
      jint title_source,
      jint source,
      jint source,
      jlong jdata_generation_time_ms) {
      jlong jdata_generation_time_ms) {

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

@@ -22,7 +22,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
 diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
 diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
 --- a/chrome/browser/profiles/profile_io_data.cc
 --- a/chrome/browser/profiles/profile_io_data.cc
 +++ b/chrome/browser/profiles/profile_io_data.cc
 +++ b/chrome/browser/profiles/profile_io_data.cc
-@@ -56,8 +56,6 @@
+@@ -55,8 +55,6 @@
  #include "components/cookie_config/cookie_store_util.h"
  #include "components/cookie_config/cookie_store_util.h"
  #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
  #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
  #include "components/dom_distiller/core/url_constants.h"
  #include "components/dom_distiller/core/url_constants.h"

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

@@ -9,7 +9,7 @@ Subject: Disable plugins enumeration
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
 diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 --- a/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
 +++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -1321,10 +1321,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
+@@ -1357,10 +1357,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
  }
  }
  
  
  PluginData* LocalFrame::GetPluginData() const {
  PluginData* LocalFrame::GetPluginData() const {

+ 1 - 1
build/patches/Disable-promos-displayed-in-bookmarks-manager.patch

@@ -156,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPr
 diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
 diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
 --- a/chrome/android/java_sources.gni
 --- a/chrome/android/java_sources.gni
 +++ b/chrome/android/java_sources.gni
 +++ b/chrome/android/java_sources.gni
-@@ -189,7 +189,6 @@ chrome_java_sources = [
+@@ -166,7 +166,6 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
    "java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
    "java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
    "java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
    "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
    "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",

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

@@ -12,10 +12,10 @@ Subject: Disable references to fonts.googleapis.com
 diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 --- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 --- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 +++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
 +++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
-@@ -310,7 +310,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
+@@ -309,7 +309,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
+ }
  
  
- std::string DomDistillerViewerSource::GetContentSecurityPolicyStyleSrc()
-     const {
+ std::string DomDistillerViewerSource::GetContentSecurityPolicyStyleSrc() const {
 -  return "style-src 'self' https://fonts.googleapis.com;";
 -  return "style-src 'self' https://fonts.googleapis.com;";
 +  return "style-src 'self';";
 +  return "style-src 'self';";
  }
  }

+ 1 - 1
build/patches/Disable-seed-based-field-trials.patch

@@ -9,7 +9,7 @@ Subject: Disable seed-based field trials
 diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
 diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
 --- a/components/variations/service/variations_field_trial_creator.cc
 --- a/components/variations/service/variations_field_trial_creator.cc
 +++ b/components/variations/service/variations_field_trial_creator.cc
 +++ b/components/variations/service/variations_field_trial_creator.cc
-@@ -513,8 +513,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
+@@ -514,8 +514,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
  #endif  // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
  #endif  // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
    bool used_seed = false;
    bool used_seed = false;
    if (!used_testing_config) {
    if (!used_testing_config) {

+ 96 - 86
build/patches/Disable-signin-and-data-saver-preferences.patch

@@ -4,10 +4,9 @@ Subject: Disable signin and data saver preferences
 
 
 Never show the data saver promo snackbar
 Never show the data saver promo snackbar
 ---
 ---
- chrome/android/java/res/xml/main_preferences.xml   |  9 -----
- .../chromium/chrome/browser/ChromeActivity.java    |  6 ++-
- .../browser/preferences/MainPreferences.java       | 46 ++++++----------------
- 3 files changed, 15 insertions(+), 46 deletions(-)
+ chrome/android/java/res/xml/main_preferences.xml   |  9 ---
+ .../browser/preferences/MainPreferences.java       | 91 +---------------------
+ 2 files changed, 2 insertions(+), 98 deletions(-)
 
 
 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
@@ -21,61 +20,24 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
 -        android:order="1"
 -        android:order="1"
 -        android:title="@string/sign_in_to_chrome"/>
 -        android:title="@string/sign_in_to_chrome"/>
      <org.chromium.chrome.browser.preferences.ChromeBasePreference
      <org.chromium.chrome.browser.preferences.ChromeBasePreference
-         android:fragment="org.chromium.chrome.browser.preferences.SyncAndServicesPreferences"
          android:key="sync_and_services"
          android:key="sync_and_services"
-@@ -89,11 +85,6 @@
+         android:order="2"
+@@ -96,11 +92,6 @@
          android:key="languages"
          android:key="languages"
-         android:order="16"
+         android:order="17"
          android:title="@string/prefs_languages"/>
          android:title="@string/prefs_languages"/>
 -    <org.chromium.chrome.browser.preferences.datareduction.DataReductionPreference
 -    <org.chromium.chrome.browser.preferences.datareduction.DataReductionPreference
 -        android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferenceFragment"
 -        android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferenceFragment"
 -        android:key="data_reduction"
 -        android:key="data_reduction"
--        android:order="17"
+-        android:order="18"
 -        android:title="@string/data_reduction_title"/>
 -        android:title="@string/data_reduction_title"/>
      <org.chromium.chrome.browser.preferences.ChromeBasePreference
      <org.chromium.chrome.browser.preferences.ChromeBasePreference
          android:fragment="org.chromium.chrome.browser.preferences.download.DownloadPreferences"
          android:fragment="org.chromium.chrome.browser.preferences.download.DownloadPreferences"
          android:key="downloads"
          android:key="downloads"
-diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-@@ -125,7 +125,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
- import org.chromium.chrome.browser.profiles.Profile;
- import org.chromium.chrome.browser.share.ShareMenuActionHandler;
- import org.chromium.chrome.browser.snackbar.BottomContainer;
--import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController;
-+//import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController;
- import org.chromium.chrome.browser.snackbar.SnackbarManager;
- import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
- import org.chromium.chrome.browser.sync.ProfileSyncService;
-@@ -275,7 +275,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
-     private EphemeralTabPanel mEphemeralTabPanel;
-     protected ReaderModeManager mReaderModeManager;
-     private SnackbarManager mSnackbarManager;
--    private DataReductionPromoSnackbarController mDataReductionPromoSnackbarController;
-+    //private DataReductionPromoSnackbarController mDataReductionPromoSnackbarController;
-     private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
-     private AppMenuHandler mAppMenuHandler;
-     private ToolbarManager mToolbarManager;
-@@ -694,6 +694,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
-         mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelector) {
-             @Override
-             public void didFirstVisuallyNonEmptyPaint(Tab tab) {
-+/*
-                 // Only alert about data savings once the first paint has happened. It
-                 // doesn't make sense to show a snackbar about savings when nothing has been
-                 // displayed yet.
-@@ -707,6 +708,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
-                             DataReductionProxySettings.getInstance()
-                                     .getTotalHttpContentLengthSaved());
-                 }
-+*/
-             }
- 
-             @Override
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
-@@ -17,11 +17,9 @@ import org.chromium.base.VisibleForTesting;
+@@ -17,16 +17,12 @@ import org.chromium.base.VisibleForTesting;
  import org.chromium.chrome.R;
  import org.chromium.chrome.R;
  import org.chromium.chrome.browser.ChromeFeatureList;
  import org.chromium.chrome.browser.ChromeFeatureList;
  import org.chromium.chrome.browser.contextual_suggestions.ContextualSuggestionsEnabledStateUtils;
  import org.chromium.chrome.browser.contextual_suggestions.ContextualSuggestionsEnabledStateUtils;
@@ -87,21 +49,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
  import org.chromium.chrome.browser.preferences.developer.DeveloperPreferences;
  import org.chromium.chrome.browser.preferences.developer.DeveloperPreferences;
  import org.chromium.chrome.browser.search_engines.TemplateUrl;
  import org.chromium.chrome.browser.search_engines.TemplateUrl;
  import org.chromium.chrome.browser.search_engines.TemplateUrlService;
  import org.chromium.chrome.browser.search_engines.TemplateUrlService;
-@@ -37,13 +35,11 @@ import java.util.Map;
+-import org.chromium.chrome.browser.signin.SigninManager;
+-import org.chromium.chrome.browser.sync.ProfileSyncService;
+ import org.chromium.chrome.browser.util.FeatureUtilities;
+ 
+ import java.util.HashMap;
+@@ -36,11 +32,8 @@ import java.util.Map;
+  * The main settings screen, shown when the user first opens Settings.
+  */
  public class MainPreferences extends PreferenceFragment
  public class MainPreferences extends PreferenceFragment
-         implements SigninManager.SignInStateObserver, TemplateUrlService.LoadListener {
+-        implements TemplateUrlService.LoadListener, ProfileSyncService.SyncStateChangedListener,
+-                   SigninManager.SignInStateObserver {
++        implements TemplateUrlService.LoadListener {
      public static final String PREF_ACCOUNT_SECTION = "account_section";
      public static final String PREF_ACCOUNT_SECTION = "account_section";
 -    public static final String PREF_SIGN_IN = "sign_in";
 -    public static final String PREF_SIGN_IN = "sign_in";
-     public static final String PREF_SYNC_AND_SERVICES = "sync_and_services";
+-    public static final String PREF_SYNC_AND_SERVICES = "sync_and_services";
      public static final String PREF_SEARCH_ENGINE = "search_engine";
      public static final String PREF_SEARCH_ENGINE = "search_engine";
      public static final String PREF_SAVED_PASSWORDS = "saved_passwords";
      public static final String PREF_SAVED_PASSWORDS = "saved_passwords";
      public static final String PREF_CONTEXTUAL_SUGGESTIONS = "contextual_suggestions";
      public static final String PREF_CONTEXTUAL_SUGGESTIONS = "contextual_suggestions";
-     public static final String PREF_HOMEPAGE = "homepage";
--    public static final String PREF_DATA_REDUCTION = "data_reduction";
-     public static final String PREF_NOTIFICATIONS = "notifications";
-     public static final String PREF_LANGUAGES = "languages";
-     public static final String PREF_DOWNLOADS = "downloads";
-@@ -57,7 +53,6 @@ public class MainPreferences extends PreferenceFragment
+@@ -60,7 +53,6 @@ public class MainPreferences extends PreferenceFragment
  
  
      private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private final Map<String, Preference> mAllPreferences = new HashMap<>();
      private final Map<String, Preference> mAllPreferences = new HashMap<>();
@@ -109,38 +75,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
  
  
      public MainPreferences() {
      public MainPreferences() {
          setHasOptionsMenu(true);
          setHasOptionsMenu(true);
-@@ -73,25 +68,29 @@ public class MainPreferences extends PreferenceFragment
+@@ -76,33 +68,16 @@ public class MainPreferences extends PreferenceFragment
      @Override
      @Override
      public void onDestroy() {
      public void onDestroy() {
          super.onDestroy();
          super.onDestroy();
 -        mSignInPreference.onPreferenceFragmentDestroyed();
 -        mSignInPreference.onPreferenceFragmentDestroyed();
-+        //mSignInPreference.onPreferenceFragmentDestroyed();
      }
      }
  
  
      @Override
      @Override
      public void onStart() {
      public void onStart() {
          super.onStart();
          super.onStart();
-+/*
-         if (SigninManager.get().isSigninSupported()) {
-             SigninManager.get().addSignInStateObserver(this);
-             mSignInPreference.registerForUpdates();
-         }
-+*/
+-        if (SigninManager.get().isSigninSupported()) {
+-            SigninManager.get().addSignInStateObserver(this);
+-            mSignInPreference.registerForUpdates();
+-        }
+-        ProfileSyncService syncService = ProfileSyncService.get();
+-        if (syncService != null) {
+-            syncService.addSyncStateChangedListener(this);
+-        }
      }
      }
  
  
      @Override
      @Override
      public void onStop() {
      public void onStop() {
          super.onStop();
          super.onStop();
-+/*
-         if (SigninManager.get().isSigninSupported()) {
-             SigninManager.get().removeSignInStateObserver(this);
-             mSignInPreference.unregisterForUpdates();
-         }
-+*/
+-        if (SigninManager.get().isSigninSupported()) {
+-            SigninManager.get().removeSignInStateObserver(this);
+-            mSignInPreference.unregisterForUpdates();
+-        }
+-        ProfileSyncService syncService = ProfileSyncService.get();
+-        if (syncService != null) {
+-            syncService.removeSyncStateChangedListener(this);
+-        }
      }
      }
  
  
      @Override
      @Override
-@@ -104,17 +103,12 @@ public class MainPreferences extends PreferenceFragment
+@@ -115,17 +90,11 @@ public class MainPreferences extends PreferenceFragment
          PreferenceUtils.addPreferencesFromResource(this, R.xml.main_preferences);
          PreferenceUtils.addPreferencesFromResource(this, R.xml.main_preferences);
          cachePreferences();
          cachePreferences();
  
  
@@ -151,7 +120,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
 -            getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
 -            getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
 -        }
 -        }
 +        getPreferenceScreen().removePreference(findPreference(PREF_ACCOUNT_SECTION));
 +        getPreferenceScreen().removePreference(findPreference(PREF_ACCOUNT_SECTION));
-+        getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
  
  
          updatePasswordsPreference();
          updatePasswordsPreference();
  
  
@@ -160,16 +128,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
  
  
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
              // If we are on Android O+ the Notifications preference should lead to the Android
              // If we are on Android O+ the Notifications preference should lead to the Android
-@@ -178,7 +172,7 @@ public class MainPreferences extends PreferenceFragment
+@@ -189,7 +158,6 @@ public class MainPreferences extends PreferenceFragment
              Preference preference = getPreferenceScreen().getPreference(index);
              Preference preference = getPreferenceScreen().getPreference(index);
              mAllPreferences.put(preference.getKey(), preference);
              mAllPreferences.put(preference.getKey(), preference);
          }
          }
 -        mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
 -        mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
-+        //mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
      }
      }
  
  
      private void setManagedPreferenceDelegateForPreference(String key) {
      private void setManagedPreferenceDelegateForPreference(String key) {
-@@ -187,12 +181,6 @@ public class MainPreferences extends PreferenceFragment
+@@ -198,13 +166,6 @@ public class MainPreferences extends PreferenceFragment
      }
      }
  
  
      private void updatePreferences() {
      private void updatePreferences() {
@@ -179,10 +146,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
 -            removePreferenceIfPresent(PREF_SIGN_IN);
 -            removePreferenceIfPresent(PREF_SIGN_IN);
 -        }
 -        }
 -
 -
+-        updateSyncAndServicesPreference();
          updateSearchEnginePreference();
          updateSearchEnginePreference();
  
  
          Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
          Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
-@@ -216,10 +204,6 @@ public class MainPreferences extends PreferenceFragment
+@@ -234,10 +195,6 @@ public class MainPreferences extends PreferenceFragment
          } else {
          } else {
              removePreferenceIfPresent(PREF_DEVELOPER);
              removePreferenceIfPresent(PREF_DEVELOPER);
          }
          }
@@ -193,22 +161,64 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
      }
      }
  
  
      private Preference addPreferenceIfAbsent(String key) {
      private Preference addPreferenceIfAbsent(String key) {
-@@ -279,11 +263,11 @@ public class MainPreferences extends PreferenceFragment
+@@ -251,15 +208,6 @@ public class MainPreferences extends PreferenceFragment
+         if (preference != null) getPreferenceScreen().removePreference(preference);
+     }
  
  
-     private void onSignInPreferenceStateChanged() {
-         // Remove "Account" section header if the personalized sign-in promo is shown.
+-    private void updateSyncAndServicesPreference() {
+-        if (!ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) return;
+-
+-        ChromeBasePreference syncAndServices =
+-                (ChromeBasePreference) findPreference(PREF_SYNC_AND_SERVICES);
+-        syncAndServices.setIcon(SyncPreferenceUtils.getSyncStatusIcon(getActivity()));
+-        syncAndServices.setSummary(SyncPreferenceUtils.getSyncStatusSummary(getActivity()));
+-    }
+-
+     private void updateSearchEnginePreference() {
+         if (!TemplateUrlService.getInstance().isLoaded()) {
+             ChromeBasePreference searchEnginePref =
+@@ -291,28 +239,6 @@ public class MainPreferences extends PreferenceFragment
+         pref.setSummary(getResources().getString(isOn ? R.string.text_on : R.string.text_off));
+     }
+ 
+-    // SigninManager.SignInStateObserver implementation.
+-    @Override
+-    public void onSignedIn() {
+-        // After signing in or out of a managed account, preferences may change or become enabled
+-        // or disabled.
+-        new Handler().post(() -> updatePreferences());
+-    }
+-
+-    @Override
+-    public void onSignedOut() {
+-        updatePreferences();
+-    }
+-
+-    private void onSignInPreferenceStateChanged() {
+-        // Remove "Account" section header if the personalized sign-in promo is shown.
 -        if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) {
 -        if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) {
-+//        if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) {
-             removePreferenceIfPresent(PREF_ACCOUNT_SECTION);
+-            removePreferenceIfPresent(PREF_ACCOUNT_SECTION);
 -        } else {
 -        } else {
-+/*        } else {
-             addPreferenceIfAbsent(PREF_ACCOUNT_SECTION);
+-            addPreferenceIfAbsent(PREF_ACCOUNT_SECTION);
 -        }
 -        }
-+        }*/
+-    }
+-
+     // TemplateUrlService.LoadListener implementation.
+     @Override
+     public void onTemplateUrlServiceLoaded() {
+@@ -320,11 +246,6 @@ public class MainPreferences extends PreferenceFragment
+         updateSearchEnginePreference();
      }
      }
  
  
-     // TemplateUrlService.LoadListener implementation.
-@@ -302,9 +286,6 @@ public class MainPreferences extends PreferenceFragment
+-    @Override
+-    public void syncStateChanged() {
+-        updateSyncAndServicesPreference();
+-    }
+-
+     @VisibleForTesting
+     ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() {
+         return mManagedPreferenceDelegate;
+@@ -334,9 +255,6 @@ public class MainPreferences extends PreferenceFragment
          return new ManagedPreferenceDelegate() {
          return new ManagedPreferenceDelegate() {
              @Override
              @Override
              public boolean isPreferenceControlledByPolicy(Preference preference) {
              public boolean isPreferenceControlledByPolicy(Preference preference) {
@@ -218,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
                  if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
                  if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
                      return TemplateUrlService.getInstance().isDefaultSearchManaged();
                      return TemplateUrlService.getInstance().isDefaultSearchManaged();
                  }
                  }
-@@ -313,11 +294,6 @@ public class MainPreferences extends PreferenceFragment
+@@ -345,11 +263,6 @@ public class MainPreferences extends PreferenceFragment
  
  
              @Override
              @Override
              public boolean isPreferenceClickDisabledByPolicy(Preference preference) {
              public boolean isPreferenceClickDisabledByPolicy(Preference preference) {

+ 1 - 1
build/patches/Disable-signin-data-reduction-promos.patch

@@ -9,7 +9,7 @@ Subject: Disable signin/data reduction promos
 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
-@@ -599,34 +599,10 @@ public class ChromeTabbedActivity
+@@ -695,34 +695,10 @@ public class ChromeTabbedActivity
              }
              }
  
  
              ChromePreferenceManager preferenceManager = ChromePreferenceManager.getInstance();
              ChromePreferenceManager preferenceManager = ChromePreferenceManager.getInstance();

+ 4 - 4
build/patches/Do-not-grant-notifications-to-default-search-engine.patch

@@ -11,7 +11,7 @@ Block gelocation by default instead of granting it for non-enterprise use cases
 diff --git a/chrome/browser/android/search_permissions/search_permissions_service.cc b/chrome/browser/android/search_permissions/search_permissions_service.cc
 diff --git a/chrome/browser/android/search_permissions/search_permissions_service.cc b/chrome/browser/android/search_permissions/search_permissions_service.cc
 --- a/chrome/browser/android/search_permissions/search_permissions_service.cc
 --- a/chrome/browser/android/search_permissions/search_permissions_service.cc
 +++ b/chrome/browser/android/search_permissions/search_permissions_service.cc
 +++ b/chrome/browser/android/search_permissions/search_permissions_service.cc
-@@ -343,11 +343,7 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
+@@ -344,11 +344,7 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
      return;
      return;
    }
    }
  
  
@@ -24,7 +24,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic
    pref_service_->ClearPref(prefs::kDSEWasDisabledByPolicy);
    pref_service_->ClearPref(prefs::kDSEWasDisabledByPolicy);
  
  
    // Initialize the pref for geolocation if it hasn't been initialized yet.
    // Initialize the pref for geolocation if it hasn't been initialized yet.
-@@ -380,10 +376,8 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
+@@ -381,10 +377,8 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
        pref_service_->ClearPref(prefs::kDSEGeolocationSettingDeprecated);
        pref_service_->ClearPref(prefs::kDSEGeolocationSettingDeprecated);
      } else if (dse_geolocation_setting == CONTENT_SETTING_ASK) {
      } else if (dse_geolocation_setting == CONTENT_SETTING_ASK) {
        // If the user hasn't explicitly allowed or blocked geolocation for the
        // If the user hasn't explicitly allowed or blocked geolocation for the
@@ -37,7 +37,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic
      }
      }
  
  
      // Update the content setting with the auto-grants for the DSE.
      // Update the content setting with the auto-grants for the DSE.
-@@ -409,11 +403,9 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
+@@ -410,11 +404,9 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
          GetContentSetting(dse_origin, CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
          GetContentSetting(dse_origin, CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
      ContentSetting dse_notifications_setting = notifications_setting_to_restore;
      ContentSetting dse_notifications_setting = notifications_setting_to_restore;
      // If the user hasn't explicitly allowed or blocked notifications for the
      // If the user hasn't explicitly allowed or blocked notifications for the
@@ -54,7 +54,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic
 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
-@@ -296,7 +296,7 @@ const base::Feature kGeoLanguage{"GeoLanguage",
+@@ -322,7 +322,7 @@ const base::Feature kGoogleBrandedContextMenu{
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
  const base::Feature kGrantNotificationsToDSE{"GrantNotificationsToDSE",
  const base::Feature kGrantNotificationsToDSE{"GrantNotificationsToDSE",

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

@@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 --- a/build/config/compiler/BUILD.gn
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
-@@ -268,6 +268,10 @@ config("compiler") {
+@@ -272,6 +272,10 @@ config("compiler") {
        }
        }
      }
      }
  
  

+ 1 - 1
build/patches/Enable-history-requirement-of-user-gesture.patch

@@ -10,7 +10,7 @@ Set #enable-history-entry-requires-user-gesture to enabled by default
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 --- a/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
 +++ b/chrome/browser/about_flags.cc
-@@ -1323,7 +1323,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -1199,7 +1199,7 @@ const FeatureEntry kFeatureEntries[] = {
      {"enable-history-entry-requires-user-gesture",
      {"enable-history-entry-requires-user-gesture",
       flag_descriptions::kHistoryRequiresUserGestureName,
       flag_descriptions::kHistoryRequiresUserGestureName,
       flag_descriptions::kHistoryRequiresUserGestureDescription, kOsAll,
       flag_descriptions::kHistoryRequiresUserGestureDescription, kOsAll,

+ 3 - 29
build/patches/Enable-secure-DNS-mode-by-default-in-DnsTransaction.patch

@@ -3,39 +3,13 @@ Date: Fri, 15 Mar 2019 10:05:14 +0100
 Subject: Enable secure DNS mode by default in DnsTransaction.
 Subject: Enable secure DNS mode by default in DnsTransaction.
 
 
 ---
 ---
- chrome/browser/net/dns_probe_runner.cc                | 2 +-
- components/certificate_transparency/log_dns_client.cc | 2 +-
- net/dns/host_resolver_impl.cc                         | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
+ net/dns/host_resolver_impl.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 
-diff --git a/chrome/browser/net/dns_probe_runner.cc b/chrome/browser/net/dns_probe_runner.cc
---- a/chrome/browser/net/dns_probe_runner.cc
-+++ b/chrome/browser/net/dns_probe_runner.cc
-@@ -110,7 +110,7 @@ void DnsProbeRunner::RunProbe(const base::Closure& callback) {
-       kKnownGoodHostname, net::dns_protocol::kTypeA,
-       base::Bind(&DnsProbeRunner::OnTransactionComplete,
-                  weak_factory_.GetWeakPtr()),
--      NetLogWithSource(), net::SecureDnsMode::AUTOMATIC);
-+      NetLogWithSource(), net::SecureDnsMode::SECURE);
- 
-   transaction_->Start();
- }
-diff --git a/components/certificate_transparency/log_dns_client.cc b/components/certificate_transparency/log_dns_client.cc
---- a/components/certificate_transparency/log_dns_client.cc
-+++ b/components/certificate_transparency/log_dns_client.cc
-@@ -472,7 +472,7 @@ bool AuditProofQueryImpl::StartDnsTransaction(const std::string& qname) {
-       qname, net::dns_protocol::kTypeTXT,
-       base::BindOnce(&AuditProofQueryImpl::OnDnsTransactionComplete,
-                      weak_ptr_factory_.GetWeakPtr()),
--      net_log_, net::SecureDnsMode::AUTOMATIC);
-+      net_log_, net::SecureDnsMode::SECURE);
- 
-   current_dns_transaction_->Start();
-   return true;
 diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 --- a/net/dns/host_resolver_impl.cc
 --- a/net/dns/host_resolver_impl.cc
 +++ b/net/dns/host_resolver_impl.cc
 +++ b/net/dns/host_resolver_impl.cc
-@@ -1066,7 +1066,7 @@ class HostResolverImpl::DnsTask : public base::SupportsWeakPtr<DnsTask> {
+@@ -984,7 +984,7 @@ class HostResolverImpl::DnsTask : public base::SupportsWeakPtr<DnsTask> {
              base::BindOnce(&DnsTask::OnTransactionComplete,
              base::BindOnce(&DnsTask::OnTransactionComplete,
                             base::Unretained(this), tick_clock_->NowTicks(),
                             base::Unretained(this), tick_clock_->NowTicks(),
                             dns_query_type),
                             dns_query_type),

+ 4 - 4
build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch

@@ -9,8 +9,8 @@ Subject: Enable site per process isolation for devices with enough memory
 diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
 diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
 --- a/chrome/common/chrome_features.cc
 --- a/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
 +++ b/chrome/common/chrome_features.cc
-@@ -518,11 +518,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL",
- // (e.g. this approach lets ChromeCast avoid site-per-process mode).
+@@ -552,11 +552,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL",
+ // browser_features, as they are only used on the browser side.
  const base::Feature kSitePerProcess {
  const base::Feature kSitePerProcess {
    "site-per-process",
    "site-per-process",
 -#if defined(OS_ANDROID)
 -#if defined(OS_ANDROID)
@@ -20,8 +20,8 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
 -#endif
 -#endif
  };
  };
  
  
- // kSitePerProcessOnlyForHighMemoryClients is checked before kSitePerProcess,
-@@ -535,7 +531,7 @@ const base::Feature kSitePerProcess {
+ // Controls a mode for dynamically process-isolating sites where the user has
+@@ -578,7 +574,7 @@ const base::Feature kSiteIsolationForPasswordSites{
  // base::SysInfo::AmountOfPhysicalMemoryMB().
  // base::SysInfo::AmountOfPhysicalMemoryMB().
  const base::Feature kSitePerProcessOnlyForHighMemoryClients{
  const base::Feature kSitePerProcessOnlyForHighMemoryClients{
      "site-per-process-only-for-high-memory-clients",
      "site-per-process-only-for-high-memory-clients",

+ 1 - 1
build/patches/Fix-crash-when-accessing-page-info-site-settings.patch

@@ -9,7 +9,7 @@ Subject: Fix crash when accessing page info / site settings
 diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
 diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
 --- a/chrome/browser/permissions/permission_manager.cc
 --- a/chrome/browser/permissions/permission_manager.cc
 +++ b/chrome/browser/permissions/permission_manager.cc
 +++ b/chrome/browser/permissions/permission_manager.cc
-@@ -694,6 +694,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
+@@ -695,6 +695,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
    if (status != CONTENT_SETTING_DEFAULT)
    if (status != CONTENT_SETTING_DEFAULT)
      return PermissionResult(status, PermissionStatusSource::UNSPECIFIED);
      return PermissionResult(status, PermissionStatusSource::UNSPECIFIED);
    PermissionContextBase* context = GetPermissionContext(permission);
    PermissionContextBase* context = GetPermissionContext(permission);

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

@@ -20,7 +20,7 @@ Send a random key press to circumvent idle status detection
 diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
 diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
 --- a/third_party/blink/renderer/core/dom/BUILD.gn
 --- a/third_party/blink/renderer/core/dom/BUILD.gn
 +++ b/third_party/blink/renderer/core/dom/BUILD.gn
 +++ b/third_party/blink/renderer/core/dom/BUILD.gn
-@@ -150,6 +150,8 @@ blink_core_sources("dom") {
+@@ -144,6 +144,8 @@ blink_core_sources("dom") {
      "global_event_handlers.h",
      "global_event_handlers.h",
      "icon_url.cc",
      "icon_url.cc",
      "icon_url.h",
      "icon_url.h",
@@ -32,7 +32,7 @@ diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/re
 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
-@@ -236,6 +236,7 @@
+@@ -241,6 +241,7 @@
  #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
  #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
  #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"
@@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
  #include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h"
  #include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h"
  #include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
  #include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
  #include "third_party/blink/renderer/core/paint/paint_layer.h"
  #include "third_party/blink/renderer/core/paint/paint_layer.h"
-@@ -296,6 +297,8 @@
+@@ -300,6 +301,8 @@
  #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
  #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
  #include "third_party/blink/renderer/platform/wtf/time.h"
  #include "third_party/blink/renderer/platform/wtf/time.h"
  
  
@@ -49,7 +49,7 @@ 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();
-@@ -6199,8 +6202,35 @@ void Document::FinishedParsing() {
+@@ -6224,8 +6227,35 @@ void Document::FinishedParsing() {
    // Parser should have picked up all preloads by now
    // Parser should have picked up all preloads by now
    fetcher_->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads);
    fetcher_->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads);
  
  
@@ -111,7 +111,7 @@ new file mode 100644
 diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc
 diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc
 --- a/third_party/blink/renderer/core/html/html_script_element.cc
 --- a/third_party/blink/renderer/core/html/html_script_element.cc
 +++ b/third_party/blink/renderer/core/html/html_script_element.cc
 +++ b/third_party/blink/renderer/core/html/html_script_element.cc
-@@ -155,6 +155,11 @@ void HTMLScriptElement::setTextContent(
+@@ -154,6 +154,11 @@ void HTMLScriptElement::setTextContent(
    }
    }
  }
  }
  
  

+ 11 - 13
build/patches/Modify-default-preferences.patch

@@ -9,7 +9,7 @@ Subject: Modify default preferences
  chrome/browser/net/prediction_options.h                    |  2 +-
  chrome/browser/net/prediction_options.h                    |  2 +-
  chrome/browser/profiles/profile.cc                         |  2 +-
  chrome/browser/profiles/profile.cc                         |  2 +-
  .../settings/reset_page/reset_profile_dialog.html          |  2 +-
  .../settings/reset_page/reset_profile_dialog.html          |  2 +-
- chrome/browser/signin/signin_promo.cc                      |  4 ++--
+ chrome/browser/signin/signin_promo.cc                      |  2 +-
  chrome/browser/ui/browser_ui_prefs.cc                      |  4 ++--
  chrome/browser/ui/browser_ui_prefs.cc                      |  4 ++--
  chrome/browser/ui/navigation_correction_tab_observer.cc    |  2 +-
  chrome/browser/ui/navigation_correction_tab_observer.cc    |  2 +-
  .../browser/ui/webui/local_discovery/local_discovery_ui.cc |  4 ----
  .../browser/ui/webui/local_discovery/local_discovery_ui.cc |  4 ----
@@ -19,12 +19,12 @@ Subject: Modify default preferences
  components/bookmarks/browser/bookmark_utils.cc             |  4 ++--
  components/bookmarks/browser/bookmark_utils.cc             |  4 ++--
  components/safe_browsing/common/safe_browsing_prefs.cc     |  4 ++--
  components/safe_browsing/common/safe_browsing_prefs.cc     |  4 ++--
  extensions/common/extension.cc                             |  8 --------
  extensions/common/extension.cc                             |  8 --------
- 16 files changed, 23 insertions(+), 41 deletions(-)
+ 16 files changed, 22 insertions(+), 40 deletions(-)
 
 
 diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
 diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
 --- a/chrome/browser/background/background_mode_manager.cc
 --- a/chrome/browser/background/background_mode_manager.cc
 +++ b/chrome/browser/background/background_mode_manager.cc
 +++ b/chrome/browser/background/background_mode_manager.cc
-@@ -351,7 +351,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
+@@ -352,7 +352,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
    registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
    registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
    registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
    registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
  #endif
  #endif
@@ -36,7 +36,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
-@@ -1098,7 +1098,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
+@@ -1121,7 +1121,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);
@@ -72,7 +72,7 @@ diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/predic
 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
-@@ -138,7 +138,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
+@@ -139,7 +139,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,
@@ -96,13 +96,11 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
 diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
 diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
 --- a/chrome/browser/signin/signin_promo.cc
 --- a/chrome/browser/signin/signin_promo.cc
 +++ b/chrome/browser/signin/signin_promo.cc
 +++ b/chrome/browser/signin/signin_promo.cc
-@@ -291,8 +291,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
+@@ -172,7 +172,7 @@ bool IsAutoCloseEnabledInEmbeddedURL(const GURL& url) {
+ 
  void RegisterProfilePrefs(
  void RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
      user_prefs::PrefRegistrySyncable* registry) {
-   registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0);
--  registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, false);
 -  registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, true);
 -  registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, true);
-+  registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, true);
 +  registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false);
 +  registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false);
    registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false);
    registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false);
    registry->RegisterIntegerPref(prefs::kDiceSigninUserMenuPromoCount, 0);
    registry->RegisterIntegerPref(prefs::kDiceSigninUserMenuPromoCount, 0);
@@ -127,7 +125,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
 diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/browser/ui/navigation_correction_tab_observer.cc
 diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/browser/ui/navigation_correction_tab_observer.cc
 --- a/chrome/browser/ui/navigation_correction_tab_observer.cc
 --- a/chrome/browser/ui/navigation_correction_tab_observer.cc
 +++ b/chrome/browser/ui/navigation_correction_tab_observer.cc
 +++ b/chrome/browser/ui/navigation_correction_tab_observer.cc
-@@ -56,7 +56,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {
+@@ -57,7 +57,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {
  void NavigationCorrectionTabObserver::RegisterProfilePrefs(
  void NavigationCorrectionTabObserver::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* prefs) {
      user_prefs::PrefRegistrySyncable* prefs) {
    prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled,
    prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled,
@@ -165,7 +163,7 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
 diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
 diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
 --- a/components/autofill/core/browser/autofill_manager.cc
 --- a/components/autofill/core/browser/autofill_manager.cc
 +++ b/components/autofill/core/browser/autofill_manager.cc
 +++ b/components/autofill/core/browser/autofill_manager.cc
-@@ -356,10 +356,7 @@ bool AutofillManager::ShouldParseForms(const std::vector<FormData>& forms,
+@@ -359,10 +359,7 @@ bool AutofillManager::ShouldParseForms(const std::vector<FormData>& forms,
    bool enabled = IsAutofillEnabled();
    bool enabled = IsAutofillEnabled();
    sync_state_ = personal_data_ ? personal_data_->GetSyncSigninState()
    sync_state_ = personal_data_ ? personal_data_->GetSyncSigninState()
                                 : AutofillSyncSigninState::kNumSyncStates;
                                 : AutofillSyncSigninState::kNumSyncStates;
@@ -177,7 +175,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
  
  
    return enabled;
    return enabled;
  }
  }
-@@ -627,10 +624,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
+@@ -625,10 +622,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
        // suggestions available.
        // suggestions available.
        // TODO(mathp): Differentiate between number of suggestions available
        // TODO(mathp): Differentiate between number of suggestions available
        // (current metric) and number shown to the user.
        // (current metric) and number shown to the user.
@@ -189,7 +187,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
      }
      }
    }
    }
  
  
-@@ -1237,8 +1231,8 @@ void AutofillManager::Reset() {
+@@ -1234,8 +1228,8 @@ void AutofillManager::Reset() {
  #if defined(OS_ANDROID) || defined(OS_IOS)
  #if defined(OS_ANDROID) || defined(OS_IOS)
    autofill_assistant_.Reset();
    autofill_assistant_.Reset();
  #endif
  #endif

+ 1 - 1
build/patches/Never-send-any-crash-upload-data.patch

@@ -9,7 +9,7 @@ Subject: Never send any crash upload data
 diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
 diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
 --- a/chrome/browser/tracing/crash_service_uploader.cc
 --- a/chrome/browser/tracing/crash_service_uploader.cc
 +++ b/chrome/browser/tracing/crash_service_uploader.cc
 +++ b/chrome/browser/tracing/crash_service_uploader.cc
-@@ -126,6 +126,9 @@ void TraceCrashServiceUploader::DoUpload(
+@@ -127,6 +127,9 @@ void TraceCrashServiceUploader::DoUpload(
      std::unique_ptr<const base::DictionaryValue> metadata,
      std::unique_ptr<const base::DictionaryValue> metadata,
      const UploadProgressCallback& progress_callback,
      const UploadProgressCallback& progress_callback,
      UploadDoneCallback done_callback) {
      UploadDoneCallback done_callback) {

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

@@ -9,7 +9,7 @@ Subject: Offer builtin autocomplete for chrome://flags
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
-@@ -235,6 +235,8 @@ std::vector<base::string16>
+@@ -234,6 +234,8 @@ std::vector<base::string16>
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    std::vector<base::string16> builtins_to_provide;
    std::vector<base::string16> builtins_to_provide;
    builtins_to_provide.push_back(
    builtins_to_provide.push_back(

+ 1 - 1
build/patches/Open-YouTube-links-in-Bromite.patch

@@ -9,7 +9,7 @@ Subject: Open YouTube links in Bromite
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
-@@ -401,6 +401,13 @@ public class ExternalNavigationHandler {
+@@ -400,6 +400,13 @@ public class ExternalNavigationHandler {
              return OverrideUrlLoadingResult.NO_OVERRIDE;
              return OverrideUrlLoadingResult.NO_OVERRIDE;
          }
          }
  
  

+ 1 - 1
build/patches/Punt-the-Widevine-version-string.patch

@@ -10,7 +10,7 @@ Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromi
 diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
 diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
 --- a/chrome/common/chrome_content_client.cc
 --- a/chrome/common/chrome_content_client.cc
 +++ b/chrome/common/chrome_content_client.cc
 +++ b/chrome/common/chrome_content_client.cc
-@@ -518,7 +518,7 @@ void ChromeContentClient::AddContentDecryptionModules(
+@@ -521,7 +521,7 @@ void ChromeContentClient::AddContentDecryptionModules(
      base::FilePath cdm_path;
      base::FilePath cdm_path;
      content::CdmCapability capability;
      content::CdmCapability capability;
      if (IsWidevineAvailable(&cdm_path, &capability)) {
      if (IsWidevineAvailable(&cdm_path, &capability)) {

+ 4 - 4
build/patches/Remove-Sync-and-Translate-menu.patch

@@ -177,7 +177,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
          } else {
          } else {
              // If both Autoplay and Protected Content menus are available, they'll be tucked under
              // If both Autoplay and Protected Content menus are available, they'll be tucked under
              // the Media key. Otherwise, we can remove the Media menu entry.
              // the Media key. Otherwise, we can remove the Media menu entry.
-@@ -108,11 +106,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
+@@ -105,11 +103,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
              if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
              if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
                  getPreferenceScreen().removePreference(findPreference(Type.CLIPBOARD));
                  getPreferenceScreen().removePreference(findPreference(Type.CLIPBOARD));
              }
              }
@@ -189,7 +189,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
              if (!ChromeFeatureList.isEnabled(ChromeFeatureList.GENERIC_SENSOR_EXTRA_CLASSES)) {
              if (!ChromeFeatureList.isEnabled(ChromeFeatureList.GENERIC_SENSOR_EXTRA_CLASSES)) {
                  getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
                  getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
              }
              }
-@@ -122,10 +115,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
+@@ -119,10 +112,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
      private void updatePreferenceStates() {
      private void updatePreferenceStates() {
          PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
          PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
  
  
@@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
          // Preferences that navigate to Website Settings.
          // Preferences that navigate to Website Settings.
          List<Integer> websitePrefs = new ArrayList<Integer>();
          List<Integer> websitePrefs = new ArrayList<Integer>();
          if (mMediaSubMenu) {
          if (mMediaSubMenu) {
-@@ -142,7 +131,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
+@@ -139,7 +128,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
              if (!mProtectedContentMenuAvailable) {
              if (!mProtectedContentMenuAvailable) {
                  websitePrefs.add(Type.AUTOPLAY);
                  websitePrefs.add(Type.AUTOPLAY);
              }
              }
@@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
              websitePrefs.add(Type.CAMERA);
              websitePrefs.add(Type.CAMERA);
              if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
              if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
                  websitePrefs.add(Type.CLIPBOARD);
                  websitePrefs.add(Type.CLIPBOARD);
-@@ -241,11 +230,4 @@ public class SiteSettingsPreferences extends PreferenceFragment
+@@ -236,11 +225,4 @@ public class SiteSettingsPreferences extends PreferenceFragment
                  preference.getTitle().toString());
                  preference.getTitle().toString());
          return false;
          return false;
      }
      }

+ 2 - 2
build/patches/Remove-help-menu-item.patch

@@ -24,7 +24,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
-@@ -2165,15 +2165,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2177,15 +2177,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  
  
          final Tab currentTab = getActivityTab();
          final Tab currentTab = getActivityTab();
  
  
@@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
-@@ -865,7 +865,7 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
+@@ -878,7 +878,7 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
      public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
      public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
          // Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
          // Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
          if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id
          if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id

+ 3 - 3
build/patches/Remove-request-for-account-access-permission-on-reboot.patch

@@ -10,7 +10,7 @@ Subject: Remove request for account access permission on reboot
 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
-@@ -997,8 +997,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
+@@ -1023,8 +1023,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
    resources = [
    resources = [
      "java/res_template/xml/file_paths.xml",
      "java/res_template/xml/file_paths.xml",
      "java/res_template/xml/launchershortcuts.xml",
      "java/res_template/xml/launchershortcuts.xml",
@@ -20,7 +20,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
    ]
    ]
    res_dir = "java/res_template"
    res_dir = "java/res_template"
    variables = [ "manifest_package=$manifest_package" ]
    variables = [ "manifest_package=$manifest_package" ]
-@@ -1009,7 +1008,6 @@ jinja_template_resources("chrome_test_apk_template_resources") {
+@@ -1035,7 +1034,6 @@ jinja_template_resources("chrome_test_apk_template_resources") {
      "java/res_template/xml/file_paths.xml",
      "java/res_template/xml/file_paths.xml",
      "java/res_template/xml/launchershortcuts.xml",
      "java/res_template/xml/launchershortcuts.xml",
      "java/res_template/xml/searchable.xml",
      "java/res_template/xml/searchable.xml",
@@ -31,7 +31,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 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
-@@ -914,14 +914,14 @@ by a child template that "extends" this file.
+@@ -925,14 +925,14 @@ by a child template that "extends" this file.
          </provider>
          </provider>
  
  
          <!-- Sync adapter for browser invalidation. -->
          <!-- Sync adapter for browser invalidation. -->

+ 35 - 50
build/patches/Rollback-android-minSdkVersion-from-19-KitKat-to-16-JellyBean.patch

@@ -10,7 +10,6 @@ This reverts commit 9a48587dbd1988cf5066b454e7d09ae35d124366.
  build/android/AndroidManifest.xml                                 | 2 +-
  build/android/AndroidManifest.xml                                 | 2 +-
  build/android/gradle/android.jinja                                | 2 +-
  build/android/gradle/android.jinja                                | 2 +-
  chrome/android/BUILD.gn                                           | 8 ++++----
  chrome/android/BUILD.gn                                           | 8 ++++----
- chrome/android/java/res/layout/autofill_local_card_editor.xml     | 4 ++--
  .../test/android/chrome_public_test_support/AndroidManifest.xml   | 2 +-
  .../test/android/chrome_public_test_support/AndroidManifest.xml   | 2 +-
  components/cronet/android/sample/AndroidManifest.xml              | 3 +--
  components/cronet/android/sample/AndroidManifest.xml              | 3 +--
  components/cronet/android/sample/javatests/AndroidManifest.xml    | 3 +--
  components/cronet/android/sample/javatests/AndroidManifest.xml    | 3 +--
@@ -30,8 +29,8 @@ This reverts commit 9a48587dbd1988cf5066b454e7d09ae35d124366.
  testing/android/driver/java/AndroidManifest.xml                   | 2 +-
  testing/android/driver/java/AndroidManifest.xml                   | 2 +-
  testing/android/native_test/java/AndroidManifest.xml.jinja2       | 2 +-
  testing/android/native_test/java/AndroidManifest.xml.jinja2       | 2 +-
  tools/android/audio_focus_grabber/java/AndroidManifest.xml        | 2 +-
  tools/android/audio_focus_grabber/java/AndroidManifest.xml        | 2 +-
- tools/android/push_apps_to_background/AndroidManifest.xml         | 2 +-
- 27 files changed, 31 insertions(+), 35 deletions(-)
+ tools/android/push_apps_to_background/AndroidManifest.xml         | 4 ++--
+ 26 files changed, 30 insertions(+), 34 deletions(-)
 
 
 diff --git a/android_webview/test/embedded_test_server/java/AndroidManifest.xml b/android_webview/test/embedded_test_server/java/AndroidManifest.xml
 diff --git a/android_webview/test/embedded_test_server/java/AndroidManifest.xml b/android_webview/test/embedded_test_server/java/AndroidManifest.xml
 --- a/android_webview/test/embedded_test_server/java/AndroidManifest.xml
 --- a/android_webview/test/embedded_test_server/java/AndroidManifest.xml
@@ -41,7 +40,7 @@ diff --git a/android_webview/test/embedded_test_server/java/AndroidManifest.xml
      package="org.chromium.android_webview.test.support">
      package="org.chromium.android_webview.test.support">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.INTERNET"/>
  
  
@@ -53,7 +52,7 @@ diff --git a/android_webview/tools/automated_ui_tests/java/AndroidManifest.xml b
      android:versionName="1.0" >
      android:versionName="1.0" >
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
  
  
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
@@ -65,7 +64,7 @@ diff --git a/base/android/jni_generator/AndroidManifest.xml b/base/android/jni_g
  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.jni.generator">
  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.jni.generator">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="24" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="24" />
      <application></application>
      <application></application>
  
  
  </manifest>
  </manifest>
@@ -77,7 +76,7 @@ diff --git a/build/android/AndroidManifest.xml b/build/android/AndroidManifest.x
      package="org.dummy">
      package="org.dummy">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="24" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="24" />
  
  
  </manifest>
  </manifest>
 diff --git a/build/android/gradle/android.jinja b/build/android/gradle/android.jinja
 diff --git a/build/android/gradle/android.jinja b/build/android/gradle/android.jinja
@@ -88,70 +87,49 @@ diff --git a/build/android/gradle/android.jinja b/build/android/gradle/android.j
      defaultConfig {
      defaultConfig {
          vectorDrawables.useSupportLibrary = true
          vectorDrawables.useSupportLibrary = true
 -        minSdkVersion 19
 -        minSdkVersion 19
-+        minSdkVersion 16
++        minSdkVersion 17
          targetSdkVersion {{ target_sdk_version }}
          targetSdkVersion {{ target_sdk_version }}
      }
      }
  
  
 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
-@@ -68,7 +68,7 @@ jinja_template("chrome_public_android_manifest") {
+@@ -65,7 +65,7 @@ jinja_template("chrome_public_android_manifest") {
    output = chrome_public_android_manifest
    output = chrome_public_android_manifest
    variables = chrome_public_jinja_variables
    variables = chrome_public_jinja_variables
    variables += [
    variables += [
 -    "min_sdk_version=19",
 -    "min_sdk_version=19",
-+    "min_sdk_version=16",
++    "min_sdk_version=17",
      "target_sdk_version=$android_sdk_version",
      "target_sdk_version=$android_sdk_version",
    ]
    ]
  
  
-@@ -1459,7 +1459,7 @@ template("chrome_public_apk_or_module_tmpl") {
+@@ -1554,7 +1554,7 @@ template("chrome_public_apk_or_module_tmpl") {
        android_manifest = chrome_modern_public_android_manifest
        android_manifest = chrome_modern_public_android_manifest
        android_manifest_dep = ":chrome_modern_public_android_manifest"
        android_manifest_dep = ":chrome_modern_public_android_manifest"
      } else {
      } else {
 -      min_sdk_version = 19
 -      min_sdk_version = 19
-+      min_sdk_version = 16
++      min_sdk_version = 17
        android_manifest = chrome_public_android_manifest
        android_manifest = chrome_public_android_manifest
        android_manifest_dep = ":chrome_public_android_manifest"
        android_manifest_dep = ":chrome_public_android_manifest"
      }
      }
-@@ -1646,7 +1646,7 @@ jinja_template("chrome_public_test_apk_manifest") {
+@@ -1777,7 +1777,7 @@ jinja_template("chrome_public_test_apk_manifest") {
    variables = default_chrome_public_jinja_variables
    variables = default_chrome_public_jinja_variables
    variables += [
    variables += [
      "manifest_package=$test_manifest_package",
      "manifest_package=$test_manifest_package",
 -    "min_sdk_version=19",
 -    "min_sdk_version=19",
-+    "min_sdk_version=16",
++    "min_sdk_version=17",
      "target_sdk_version=$android_sdk_version",
      "target_sdk_version=$android_sdk_version",
    ]
    ]
  }
  }
-@@ -1657,7 +1657,7 @@ jinja_template("chrome_public_test_vr_apk_manifest") {
+@@ -1788,7 +1788,7 @@ jinja_template("chrome_public_test_vr_apk_manifest") {
    output = chrome_public_test_vr_apk_manifest
    output = chrome_public_test_vr_apk_manifest
    variables = chrome_public_jinja_variables
    variables = chrome_public_jinja_variables
    variables += [
    variables += [
 -    "min_sdk_version=19",
 -    "min_sdk_version=19",
-+    "min_sdk_version=16",
++    "min_sdk_version=17",
      "target_sdk_version=$android_sdk_version",
      "target_sdk_version=$android_sdk_version",
    ]
    ]
  }
  }
-diff --git a/chrome/android/java/res/layout/autofill_local_card_editor.xml b/chrome/android/java/res/layout/autofill_local_card_editor.xml
---- a/chrome/android/java/res/layout/autofill_local_card_editor.xml
-+++ b/chrome/android/java/res/layout/autofill_local_card_editor.xml
-@@ -19,7 +19,7 @@
- 
-         <!-- TODO(crbug.com/900912): Fix and remove lint ignore -->
-         <EditText
--            tools:ignore="Autofill,LabelFor"
-+            tools:ignore="Autofill"
-             android:id="@+id/credit_card_name_edit"
-             android:layout_width="match_parent"
-             android:layout_height="wrap_content"
-@@ -40,7 +40,7 @@
- 
-         <!-- TODO(crbug.com/900912): Fix and remove lint ignore -->
-         <EditText
--            tools:ignore="Autofill,LabelFor"
-+            tools:ignore="Autofill"
-             android:id="@+id/credit_card_number_edit"
-             android:layout_width="match_parent"
-             android:layout_height="wrap_content"
 diff --git a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml b/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
 diff --git a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml b/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
 --- a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
 --- a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
 +++ b/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
 +++ b/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
@@ -160,7 +138,7 @@ diff --git a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:tools="http://schemas.android.com/tools"
        package="org.chromium.chrome.tests.support">
        package="org.chromium.chrome.tests.support">
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="22" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="22" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="22" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="22" />
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.INTERNET" />
      <application>
      <application>
          <service android:name="org.chromium.chrome.browser.media.TestMediaRouteProviderService"
          <service android:name="org.chromium.chrome.browser.media.TestMediaRouteProviderService"
@@ -224,7 +202,7 @@ diff --git a/components/test/android/browsertests_apk/AndroidManifest.xml.jinja2
      package="org.chromium.components_browsertests_apk">
      package="org.chromium.components_browsertests_apk">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-permission android:name="android.permission.CAMERA" />
@@ -236,7 +214,7 @@ diff --git a/content/shell/android/browsertests_apk/AndroidManifest.xml.jinja2 b
      package="org.chromium.content_browsertests_apk">
      package="org.chromium.content_browsertests_apk">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-permission android:name="android.permission.CAMERA" />
@@ -248,7 +226,7 @@ diff --git a/content/shell/android/javatests/AndroidManifest.xml b/content/shell
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.chromium.content_shell_apk.tests">
        package="org.chromium.content_shell_apk.tests">
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
      <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
      <!-- We add an application tag here just so that we can indicate that this
      <!-- We add an application tag here just so that we can indicate that this
           package needs to link against the android.test library, which is
           package needs to link against the android.test library, which is
@@ -260,7 +238,7 @@ diff --git a/content/shell/android/linker_test_apk/AndroidManifest.xml.jinja2 b/
      package="org.chromium.chromium_linker_test_apk">
      package="org.chromium.chromium_linker_test_apk">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-permission android:name="android.permission.CAMERA" />
@@ -272,7 +250,7 @@ diff --git a/content/shell/android/shell_apk/AndroidManifest.xml.jinja2 b/conten
      package="org.chromium.content_shell_apk">
      package="org.chromium.content_shell_apk">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.CAMERA"/>
      <uses-permission android:name="android.permission.CAMERA"/>
@@ -284,7 +262,7 @@ diff --git a/docs/android_build_instructions.md b/docs/android_build_instruction
  
  
  1. `chrome_public_apk` (ChromePublic.apk)
  1. `chrome_public_apk` (ChromePublic.apk)
 -   * `minSdkVersion=19` (KitKat).
 -   * `minSdkVersion=19` (KitKat).
-+   * `minSdkVersion=16` (Jelly Bean).
++   * `minSdkVersion=17` (Jelly Bean).
     * Stores libchrome.so compressed within the APK.
     * Stores libchrome.so compressed within the APK.
     * Uses [Crazy Linker](https://cs.chromium.org/chromium/src/base/android/linker/BUILD.gn?rcl=6bb29391a86f2be58c626170156cbfaa2cbc5c91&l=9).
     * Uses [Crazy Linker](https://cs.chromium.org/chromium/src/base/android/linker/BUILD.gn?rcl=6bb29391a86f2be58c626170156cbfaa2cbc5c91&l=9).
     * Shipped only for Android < 21, but still works fine on Android >= 21.
     * Shipped only for Android < 21, but still works fine on Android >= 21.
@@ -308,7 +286,7 @@ diff --git a/net/android/unittest_support/AndroidManifest.xml b/net/android/unit
        android:versionName="1.0">
        android:versionName="1.0">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
      <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
@@ -320,7 +298,7 @@ diff --git a/net/test/android/javatests/AndroidManifest.xml b/net/test/android/j
      package="org.chromium.net.test.support">
      package="org.chromium.net.test.support">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.INTERNET"/>
  
  
@@ -356,7 +334,7 @@ diff --git a/testing/android/driver/java/AndroidManifest.xml b/testing/android/d
        android:versionName="1.0">
        android:versionName="1.0">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  
  
      <application android:label="OnDeviceInstrumentationDriver" />
      <application android:label="OnDeviceInstrumentationDriver" />
@@ -368,7 +346,7 @@ diff --git a/testing/android/native_test/java/AndroidManifest.xml.jinja2 b/testi
        android:versionName="1.0">
        android:versionName="1.0">
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.BLUETOOTH"/>
      <uses-permission android:name="android.permission.BLUETOOTH"/>
      <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
      <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
@@ -380,7 +358,7 @@ diff --git a/tools/android/audio_focus_grabber/java/AndroidManifest.xml b/tools/
      package="org.chromium.tools.audio_focus_grabber" >
      package="org.chromium.tools.audio_focus_grabber" >
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
  
  
      <application
      <application
          android:label="@string/app_name" >
          android:label="@string/app_name" >
@@ -392,10 +370,17 @@ diff --git a/tools/android/push_apps_to_background/AndroidManifest.xml b/tools/a
      android:versionName="1.0" >
      android:versionName="1.0" >
  
  
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
 -    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
-+    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
++    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
  
  
      <application
      <application
          android:icon="@drawable/ic_launcher"
          android:icon="@drawable/ic_launcher"
+@@ -26,4 +26,4 @@
+         </intent-filter>
+         </activity>
+     </application>
+-</manifest>
+\ No newline at end of file
++</manifest>
 -- 
 -- 
 2.11.0
 2.11.0
 
 

+ 3 - 3
build/patches/Skip-the-first-run-and-metrics.patch

@@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
-@@ -74,7 +74,7 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
+@@ -75,7 +75,7 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
              }
              }
          });
          });
  
  
@@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
              int paddingStart = getResources().getDimensionPixelSize(
              int paddingStart = getResources().getDimensionPixelSize(
                      R.dimen.fre_tos_checkbox_padding);
                      R.dimen.fre_tos_checkbox_padding);
              ViewCompat.setPaddingRelative(mSendReportCheckBox,
              ViewCompat.setPaddingRelative(mSendReportCheckBox,
-@@ -86,8 +86,10 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
+@@ -87,8 +87,10 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
              mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING);
              mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING);
          } else {
          } else {
              mSendReportCheckBox.setVisibility(View.GONE);
              mSendReportCheckBox.setVisibility(View.GONE);
@@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
 +        mSendReportCheckBox.setVisibility(View.GONE);
 +        mSendReportCheckBox.setVisibility(View.GONE);
          mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
          mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
  
  
-         NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan((view1) -> {
+         Resources resources = getResources();
 -- 
 -- 
 2.11.0
 2.11.0
 
 

+ 0 - 481
build/patches/Support-different-secure-DNS-modes-within-DnsTransaction.patch

@@ -1,481 +0,0 @@
-From: dalyk <dalyk@google.com>
-Date: Wed, 13 Feb 2019 17:50:04 +0000
-Subject: Support different secure DNS modes within DnsTransaction.
-
-In SECURE mode, only DnsHTTPAttempts should be made. In AUTOMATIC mode,
-DnsHTTPAttempts should be made first, before falling back to insecure
-attempts. In OFF mode, only insecure attempts should be made.
-
-Follow-up work will correct cache lookups for SECURE and AUTOMATIC modes,
-remove the system resolver fallback for SECURE mode, set the mode
-based on the pref setting, and make AUTOMATIC mode more conservative by
-incorporating state related to DoH (DoH probes, successive DoH failures).
-
-There should be no change in behavior experienced by users configuring
-DoH via the command line since AUTOMATIC mode is used for all queries
-currently.
-
-Bug: 878582
-Change-Id: I5539c5273eb846c95f9a7cdab95429522bc43f50
-Reviewed-on: https://chromium-review.googlesource.com/c/1450858
-Reviewed-by: Paul Jensen <pauljensen@chromium.org>
-Commit-Queue: Katharine Daly <dalyk@google.com>
-Cr-Commit-Position: refs/heads/master@{#631784}
----
- chrome/browser/net/dns_probe_runner.cc             |  3 +-
- .../certificate_transparency/log_dns_client.cc     |  3 +-
- net/dns/BUILD.gn                                   |  1 +
- net/dns/dns_test_util.cc                           |  3 +-
- net/dns/dns_transaction.cc                         | 42 ++++++---
- net/dns/dns_transaction.h                          | 10 ++-
- net/dns/dns_transaction_unittest.cc                | 99 ++++++++++++++++++++--
- net/dns/dns_util.h                                 | 12 +++
- net/dns/host_resolver_impl.cc                      |  2 +-
- 9 files changed, 154 insertions(+), 21 deletions(-)
-
-diff --git a/chrome/browser/net/dns_probe_runner.cc b/chrome/browser/net/dns_probe_runner.cc
---- a/chrome/browser/net/dns_probe_runner.cc
-+++ b/chrome/browser/net/dns_probe_runner.cc
-@@ -17,6 +17,7 @@
- #include "net/dns/dns_client.h"
- #include "net/dns/dns_response.h"
- #include "net/dns/dns_transaction.h"
-+#include "net/dns/dns_util.h"
- #include "net/dns/public/dns_protocol.h"
- #include "net/log/net_log_with_source.h"
- 
-@@ -109,7 +110,7 @@ void DnsProbeRunner::RunProbe(const base::Closure& callback) {
-       kKnownGoodHostname, net::dns_protocol::kTypeA,
-       base::Bind(&DnsProbeRunner::OnTransactionComplete,
-                  weak_factory_.GetWeakPtr()),
--      NetLogWithSource());
-+      NetLogWithSource(), net::SecureDnsMode::AUTOMATIC);
- 
-   transaction_->Start();
- }
-diff --git a/components/certificate_transparency/log_dns_client.cc b/components/certificate_transparency/log_dns_client.cc
---- a/components/certificate_transparency/log_dns_client.cc
-+++ b/components/certificate_transparency/log_dns_client.cc
-@@ -27,6 +27,7 @@
- #include "net/dns/dns_config.h"
- #include "net/dns/dns_response.h"
- #include "net/dns/dns_transaction.h"
-+#include "net/dns/dns_util.h"
- #include "net/dns/public/dns_protocol.h"
- #include "net/dns/record_parsed.h"
- #include "net/dns/record_rdata.h"
-@@ -471,7 +472,7 @@ bool AuditProofQueryImpl::StartDnsTransaction(const std::string& qname) {
-       qname, net::dns_protocol::kTypeTXT,
-       base::BindOnce(&AuditProofQueryImpl::OnDnsTransactionComplete,
-                      weak_ptr_factory_.GetWeakPtr()),
--      net_log_);
-+      net_log_, net::SecureDnsMode::AUTOMATIC);
- 
-   current_dns_transaction_->Start();
-   return true;
-diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
---- a/net/dns/BUILD.gn
-+++ b/net/dns/BUILD.gn
-@@ -291,6 +291,7 @@ source_set("dns_client") {
-       "dns_client.h",
-       "dns_response.h",
-       "dns_transaction.h",
-+      "dns_util.h",
-       "record_parsed.h",
-       "record_rdata.h",
-     ]
-diff --git a/net/dns/dns_test_util.cc b/net/dns/dns_test_util.cc
---- a/net/dns/dns_test_util.cc
-+++ b/net/dns/dns_test_util.cc
-@@ -441,7 +441,8 @@ class MockDnsClient::MockTransactionFactory : public DnsTransactionFactory {
-       const std::string& hostname,
-       uint16_t qtype,
-       DnsTransactionFactory::CallbackType callback,
--      const NetLogWithSource&) override {
-+      const NetLogWithSource&,
-+      SecureDnsMode) override {
-     std::unique_ptr<MockTransaction> transaction =
-         std::make_unique<MockTransaction>(rules_, hostname, qtype,
-                                           std::move(callback));
-diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
---- a/net/dns/dns_transaction.cc
-+++ b/net/dns/dns_transaction.cc
-@@ -772,11 +772,13 @@ class DnsTransactionImpl : public DnsTransaction,
-                      uint16_t qtype,
-                      DnsTransactionFactory::CallbackType callback,
-                      const NetLogWithSource& net_log,
--                     const OptRecordRdata* opt_rdata)
-+                     const OptRecordRdata* opt_rdata,
-+                     SecureDnsMode secure_dns_mode)
-       : session_(session),
-         hostname_(hostname),
-         qtype_(qtype),
-         opt_rdata_(opt_rdata),
-+        secure_dns_mode_(secure_dns_mode),
-         callback_(std::move(callback)),
-         net_log_(net_log),
-         qnames_initial_size_(0),
-@@ -919,12 +921,17 @@ class DnsTransactionImpl : public DnsTransaction,
-   }
- 
-   AttemptResult MakeAttempt() {
--    // Make an HTTP attempt unless we have already made more attempts
--    // than we have configured servers. Otherwise make a UDP attempt
--    // as long as we have configured nameservers.
-     DnsConfig config = session_->config();
--    if (doh_attempts_ < config.dns_over_https_servers.size())
-+    // In AUTOMATIC and SECURE mode, make an HTTP attempt unless we have already
-+    // made more attempts than we have configured servers.
-+    if (secure_dns_mode_ != SecureDnsMode::OFF &&
-+        doh_attempts_ < config.dns_over_https_servers.size()) {
-       return MakeHTTPAttempt(config.dns_over_https_servers);
-+    }
-+    // In AUTOMATIC mode, insecure attempts are allowed after HTTP attempts are
-+    // exhausted. In OFF mode, only insecure attempts are allowed. It should
-+    // not be possible to reach this point in SECURE mode.
-+    DCHECK_NE(secure_dns_mode_, SecureDnsMode::SECURE);
-     DCHECK_GT(config.nameservers.size(), 0u);
-     return MakeUDPAttempt();
-   }
-@@ -1112,8 +1119,19 @@ class DnsTransactionImpl : public DnsTransaction,
-     if (had_tcp_attempt_)
-       return false;
-     const DnsConfig& config = session_->config();
--    return attempts_.size() < config.attempts * config.nameservers.size() +
--                                  config.dns_over_https_servers.size();
-+    unsigned insecure_attempts_possible =
-+        config.attempts * config.nameservers.size();
-+    unsigned secure_attempts_possible = config.dns_over_https_servers.size();
-+
-+    switch (secure_dns_mode_) {
-+      case SecureDnsMode::SECURE:
-+        return attempts_.size() < secure_attempts_possible;
-+      case SecureDnsMode::AUTOMATIC:
-+        return attempts_.size() <
-+               secure_attempts_possible + insecure_attempts_possible;
-+      case SecureDnsMode::OFF:
-+        return attempts_.size() < insecure_attempts_possible;
-+    }
-   }
- 
-   // Resolves the result of a DnsAttempt until a terminal result is reached
-@@ -1204,6 +1222,7 @@ class DnsTransactionImpl : public DnsTransaction,
-   std::string hostname_;
-   uint16_t qtype_;
-   const OptRecordRdata* opt_rdata_;
-+  const SecureDnsMode secure_dns_mode_;
-   // Cleared in DoCallback.
-   DnsTransactionFactory::CallbackType callback_;
- 
-@@ -1248,10 +1267,11 @@ class DnsTransactionFactoryImpl : public DnsTransactionFactory {
-       const std::string& hostname,
-       uint16_t qtype,
-       CallbackType callback,
--      const NetLogWithSource& net_log) override {
--    return std::make_unique<DnsTransactionImpl>(session_.get(), hostname, qtype,
--                                                std::move(callback), net_log,
--                                                opt_rdata_.get());
-+      const NetLogWithSource& net_log,
-+      SecureDnsMode secure_dns_mode) override {
-+    return std::make_unique<DnsTransactionImpl>(
-+        session_.get(), hostname, qtype, std::move(callback), net_log,
-+        opt_rdata_.get(), secure_dns_mode);
-   }
- 
-   void AddEDNSOption(const OptRecordRdata::Opt& opt) override {
-diff --git a/net/dns/dns_transaction.h b/net/dns/dns_transaction.h
---- a/net/dns/dns_transaction.h
-+++ b/net/dns/dns_transaction.h
-@@ -12,6 +12,7 @@
- 
- #include "base/callback.h"
- #include "net/base/request_priority.h"
-+#include "net/dns/dns_util.h"
- #include "net/dns/record_rdata.h"
- #include "url/gurl.h"
- 
-@@ -69,11 +70,18 @@ class NET_EXPORT_PRIVATE DnsTransactionFactory {
-   //
-   // The transaction will run |callback| upon asynchronous completion.
-   // The |net_log| is used as the parent log.
-+  //
-+  // The |secure_dns_mode| specifies the order in which secure and/or insecure
-+  // DNS lookups will be performed. In SECURE mode, only secure lookups will be
-+  // perfomed. In AUTOMATIC mode, secure lookups will be performed first when
-+  // possible, and insecure lookups will be performed as a fallback. In OFF
-+  // mode, only insecure lookups will be performed.
-   virtual std::unique_ptr<DnsTransaction> CreateTransaction(
-       const std::string& hostname,
-       uint16_t qtype,
-       CallbackType callback,
--      const NetLogWithSource& net_log) WARN_UNUSED_RESULT = 0;
-+      const NetLogWithSource& net_log,
-+      SecureDnsMode secure_dns_mode) WARN_UNUSED_RESULT = 0;
- 
-   // The given EDNS0 option will be included in all DNS queries performed by
-   // transactions from this factory.
-diff --git a/net/dns/dns_transaction_unittest.cc b/net/dns/dns_transaction_unittest.cc
---- a/net/dns/dns_transaction_unittest.cc
-+++ b/net/dns/dns_transaction_unittest.cc
-@@ -246,7 +246,17 @@ class TestSocketFactory : public MockClientSocketFactory {
-     remote_endpoints_.push_back(endpoint);
-   }
- 
--  std::vector<IPEndPoint> remote_endpoints_;
-+  struct RemoteNameserver {
-+    RemoteNameserver(IPEndPoint insecure_nameserver)
-+        : insecure_nameserver(insecure_nameserver) {}
-+    RemoteNameserver(DnsConfig::DnsOverHttpsServerConfig secure_nameserver)
-+        : secure_nameserver(secure_nameserver) {}
-+
-+    base::Optional<IPEndPoint> insecure_nameserver;
-+    base::Optional<DnsConfig::DnsOverHttpsServerConfig> secure_nameserver;
-+  };
-+
-+  std::vector<RemoteNameserver> remote_endpoints_;
-   bool fail_next_socket_;
- 
-  private:
-@@ -269,6 +279,7 @@ class TransactionHelper {
-                     int expected_answer_count)
-       : hostname_(hostname),
-         qtype_(qtype),
-+        secure_dns_mode_(SecureDnsMode::AUTOMATIC),
-         response_(nullptr),
-         expected_answer_count_(expected_answer_count),
-         cancel_in_callback_(false),
-@@ -277,13 +288,19 @@ class TransactionHelper {
-   // Mark that the transaction shall be destroyed immediately upon callback.
-   void set_cancel_in_callback() { cancel_in_callback_ = true; }
- 
-+  // Set the secure DNS mode for the transaction.
-+  void set_secure_dns_mode(SecureDnsMode secure_dns_mode) {
-+    secure_dns_mode_ = secure_dns_mode;
-+  }
-+
-   void StartTransaction(DnsTransactionFactory* factory) {
-     EXPECT_EQ(NULL, transaction_.get());
-     transaction_ = factory->CreateTransaction(
-         hostname_, qtype_,
-         base::Bind(&TransactionHelper::OnTransactionComplete,
-                    base::Unretained(this)),
--        NetLogWithSource::Make(&net_log_, net::NetLogSourceType::NONE));
-+        NetLogWithSource::Make(&net_log_, net::NetLogSourceType::NONE),
-+        secure_dns_mode_);
-     transaction_->SetRequestContext(&request_context_);
-     transaction_->SetRequestPriority(DEFAULT_PRIORITY);
-     EXPECT_EQ(hostname_, transaction_->GetHostname());
-@@ -360,6 +377,7 @@ class TransactionHelper {
-  private:
-   std::string hostname_;
-   uint16_t qtype_;
-+  SecureDnsMode secure_dns_mode_;
-   std::unique_ptr<DnsTransaction> transaction_;
-   const DnsResponse* response_;
-   int expected_answer_count_;
-@@ -669,9 +687,20 @@ class DnsTransactionTestBase : public testing::Test {
-   // |servers|.
-   void CheckServerOrder(const unsigned* servers, size_t num_attempts) {
-     ASSERT_EQ(num_attempts, socket_factory_->remote_endpoints_.size());
-+    auto num_insecure_nameservers = session_->config().nameservers.size();
-     for (size_t i = 0; i < num_attempts; ++i) {
--      EXPECT_EQ(socket_factory_->remote_endpoints_[i],
--                session_->config().nameservers[servers[i]]);
-+      if (servers[i] < num_insecure_nameservers) {
-+        // Check insecure server match.
-+        EXPECT_EQ(
-+            socket_factory_->remote_endpoints_[i].insecure_nameserver.value(),
-+            session_->config().nameservers[servers[i]]);
-+      } else {
-+        // Check secure server match.
-+        EXPECT_EQ(
-+            socket_factory_->remote_endpoints_[i].secure_nameserver.value(),
-+            session_->config()
-+                .dns_over_https_servers[servers[i] - num_insecure_nameservers]);
-+      }
-     }
-   }
- 
-@@ -762,6 +791,7 @@ class DnsTransactionTest : public DnsTransactionTestBase,
-       if (server.use_post && request->method() == "POST") {
-         if (url_base == request->url().spec()) {
-           server_found = true;
-+          socket_factory_->remote_endpoints_.push_back(server);
-         }
-       } else if (!server.use_post && request->method() == "GET") {
-         std::string prefix = url_base + "?dns=";
-@@ -769,6 +799,7 @@ class DnsTransactionTest : public DnsTransactionTestBase,
-                                      request->url().spec().begin());
-         if (mispair.first == prefix.end()) {
-           server_found = true;
-+          socket_factory_->remote_endpoints_.push_back(server);
-         }
-       }
-     }
-@@ -1552,6 +1583,43 @@ TEST_F(DnsTransactionTest, HttpsPostFailThenUDPFallback) {
-   TransactionHelper helper0(kT0HostName, kT0Qtype, kT0RecordCount);
-   SetDohJobMakerCallback(base::BindRepeating(DohJobMakerCallbackFailStart));
-   EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
-+  unsigned kOrder0[] = {1, 0};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
-+}
-+
-+TEST_F(DnsTransactionTest, HttpsPostFailNoUDPFallbackInSecureMode) {
-+  config_.attempts = 1;
-+  ConfigureNumServers(2);
-+  ConfigDohServers(false /* clear_udp */, true /* use_post */, 2);
-+  AddQueryAndErrorResponse(0, kT0HostName, kT0Qtype, ERR_CONNECTION_REFUSED,
-+                           SYNCHRONOUS, Transport::HTTPS);
-+  AddQueryAndErrorResponse(0, kT0HostName, kT0Qtype, ERR_CONNECTION_REFUSED,
-+                           SYNCHRONOUS, Transport::HTTPS);
-+  TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_FAILED);
-+  helper0.set_secure_dns_mode(SecureDnsMode::SECURE);
-+  SetDohJobMakerCallback(base::BindRepeating(DohJobMakerCallbackFailStart));
-+  EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
-+  unsigned kOrder0[] = {2, 3};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
-+}
-+
-+TEST_F(DnsTransactionTest, NoHttpsAttemptInOffMode) {
-+  config_.attempts = 2;
-+  ConfigureNumServers(2);
-+  ConfigDohServers(false /* clear_udp */, true /* use_post */, 2);
-+  AddQueryAndErrorResponse(0, kT0HostName, kT0Qtype, ERR_CONNECTION_REFUSED,
-+                           SYNCHRONOUS, Transport::UDP);
-+  AddQueryAndErrorResponse(0, kT0HostName, kT0Qtype, ERR_CONNECTION_REFUSED,
-+                           SYNCHRONOUS, Transport::UDP);
-+  AddQueryAndErrorResponse(0, kT0HostName, kT0Qtype, ERR_CONNECTION_REFUSED,
-+                           SYNCHRONOUS, Transport::UDP);
-+  AddQueryAndResponse(0, kT0HostName, kT0Qtype, kT0ResponseDatagram,
-+                      base::size(kT0ResponseDatagram), ASYNC, Transport::UDP);
-+  TransactionHelper helper0(kT0HostName, kT0Qtype, kT0RecordCount);
-+  helper0.set_secure_dns_mode(SecureDnsMode::OFF);
-+  EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
-+  unsigned kOrder0[] = {0, 1, 0, 1};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- }
- 
- TEST_F(DnsTransactionTest, HttpsPostFailThenUDPFailThenUDPFallback) {
-@@ -1575,6 +1643,8 @@ TEST_F(DnsTransactionTest, HttpsPostFailThenUDPFailThenUDPFallback) {
-   EXPECT_EQ(session_->NextGoodServerIndex(0), 1u);
-   EXPECT_EQ(session_->NextGoodServerIndex(1), 1u);
-   EXPECT_EQ(session_->NextGoodServerIndex(2), 2u);
-+  unsigned kOrder0[] = {3, 0, 1};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- }
- 
- TEST_F(DnsTransactionTest, HttpsMarkUdpBad) {
-@@ -1595,6 +1665,8 @@ TEST_F(DnsTransactionTest, HttpsMarkUdpBad) {
-   EXPECT_EQ(session_->NextGoodServerIndex(0), 1u);
-   EXPECT_EQ(session_->NextGoodServerIndex(1), 1u);
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(2), 2u);
-+  unsigned kOrder0[] = {2, 0, 1};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- 
-   AddQueryAndErrorResponse(1, kT1HostName, kT1Qtype, ERR_CONNECTION_REFUSED,
-                            SYNCHRONOUS, Transport::HTTPS);
-@@ -1612,6 +1684,11 @@ TEST_F(DnsTransactionTest, HttpsMarkUdpBad) {
-   EXPECT_EQ(session_->NextGoodServerIndex(0), 0u);
-   EXPECT_EQ(session_->NextGoodServerIndex(1), 0u);
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(2), 2u);
-+  unsigned kOrder1[] = {
-+      2, 0, 1, /* transaction0 */
-+      2, 1, 0  /* transaction1 */
-+  };
-+  CheckServerOrder(kOrder1, base::size(kOrder1));
- }
- 
- TEST_F(DnsTransactionTest, HttpsMarkHttpsBad) {
-@@ -1627,7 +1704,6 @@ TEST_F(DnsTransactionTest, HttpsMarkHttpsBad) {
-                            SYNCHRONOUS, Transport::HTTPS);
-   AddQueryAndErrorResponse(1, kT1HostName, kT1Qtype, ERR_CONNECTION_REFUSED,
-                            SYNCHRONOUS, Transport::HTTPS);
--
-   AddQueryAndResponse(1, kT1HostName, kT1Qtype, kT1ResponseDatagram,
-                       base::size(kT1ResponseDatagram), ASYNC, Transport::HTTPS);
-   TransactionHelper helper0(kT0HostName, kT0Qtype, kT0RecordCount);
-@@ -1640,6 +1716,8 @@ TEST_F(DnsTransactionTest, HttpsMarkHttpsBad) {
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(1), 3u);
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(2), 3u);
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(3), 3u);
-+  unsigned kOrder0[] = {1, 2, 3};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- 
-   EXPECT_TRUE(helper1.RunUntilDone(transaction_factory_.get()));
-   // Server 0 is still our only UDP server, so will be good by definition.
-@@ -1651,6 +1729,11 @@ TEST_F(DnsTransactionTest, HttpsMarkHttpsBad) {
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(1), 2u);
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(2), 2u);
-   EXPECT_EQ(session_->NextGoodDnsOverHttpsServerIndex(3), 2u);
-+  unsigned kOrder1[] = {
-+      1, 2, 3, /* transaction0 */
-+      3, 1, 2  /* transaction1 */
-+  };
-+  CheckServerOrder(kOrder1, base::size(kOrder1));
- }
- 
- TEST_F(DnsTransactionTest, HttpsPostFailThenHTTPFallback) {
-@@ -1662,6 +1745,8 @@ TEST_F(DnsTransactionTest, HttpsPostFailThenHTTPFallback) {
-                       Transport::HTTPS);
-   TransactionHelper helper0(kT0HostName, kT0Qtype, kT0RecordCount);
-   EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
-+  unsigned kOrder0[] = {0, 1};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- }
- 
- TEST_F(DnsTransactionTest, HttpsPostFailTwiceThenUDPFallback) {
-@@ -1678,6 +1763,8 @@ TEST_F(DnsTransactionTest, HttpsPostFailTwiceThenUDPFallback) {
-   TransactionHelper helper0(kT0HostName, kT0Qtype, kT0RecordCount);
-   SetDohJobMakerCallback(base::BindRepeating(DohJobMakerCallbackFailStart));
-   EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
-+  unsigned kOrder0[] = {1, 2, 0};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- }
- 
- TEST_F(DnsTransactionTest, HttpsPostFailTwice) {
-@@ -1692,6 +1779,8 @@ TEST_F(DnsTransactionTest, HttpsPostFailTwice) {
-   TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_FAILED);
-   SetDohJobMakerCallback(base::BindRepeating(DohJobMakerCallbackFailStart));
-   EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
-+  unsigned kOrder0[] = {0, 1};
-+  CheckServerOrder(kOrder0, base::size(kOrder0));
- }
- 
- void MakeResponseWithCookie(URLRequest* request, HttpResponseInfo* info) {
-diff --git a/net/dns/dns_util.h b/net/dns/dns_util.h
---- a/net/dns/dns_util.h
-+++ b/net/dns/dns_util.h
-@@ -93,6 +93,18 @@ uint16_t DnsQueryTypeToQtype(DnsQueryType dns_query_type);
- NET_EXPORT DnsQueryType
- AddressFamilyToDnsQueryType(AddressFamily address_family);
- 
-+// The SecureDnsMode specifies what types of lookups (secure/insecure) should
-+// be performed and in what order when resolving a specific query.
-+enum SecureDnsMode : int {
-+  // In OFF mode, no DoH lookups should be performed.
-+  OFF,
-+  // In AUTOMATIC mode, DoH lookups should be performed first if DoH is
-+  // available, and insecure DNS lookups should be performed as a fallback.
-+  AUTOMATIC,
-+  // In SECURE mode, only DoH lookups should be performed.
-+  SECURE,
-+};
-+
- }  // namespace net
- 
- #endif  // NET_DNS_DNS_UTIL_H_
-diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
---- a/net/dns/host_resolver_impl.cc
-+++ b/net/dns/host_resolver_impl.cc
-@@ -1066,7 +1066,7 @@ class HostResolverImpl::DnsTask : public base::SupportsWeakPtr<DnsTask> {
-             base::BindOnce(&DnsTask::OnTransactionComplete,
-                            base::Unretained(this), tick_clock_->NowTicks(),
-                            dns_query_type),
--            net_log_);
-+            net_log_, SecureDnsMode::AUTOMATIC);
-     trans->SetRequestContext(delegate_->url_request_context());
-     trans->SetRequestPriority(delegate_->priority());
-     return trans;
--- 
-2.11.0
-

+ 1 - 1
build/patches/Switch-to-fstack-protector-strong.patch

@@ -16,7 +16,7 @@ higher memory/cache usage but not by the full 2-3%.
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
 --- a/build/config/compiler/BUILD.gn
 --- a/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
 +++ b/build/config/compiler/BUILD.gn
-@@ -259,16 +259,12 @@ config("compiler") {
+@@ -263,16 +263,12 @@ config("compiler") {
          cflags += [ "-fstack-protector" ]
          cflags += [ "-fstack-protector" ]
        }
        }
      } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {
      } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {

+ 2 - 2
build/patches/Use-4-tile-rows-never-show-logo.patch

@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
      private boolean mSearchProviderIsGoogle;
      private boolean mSearchProviderIsGoogle;
  
  
      private boolean mInitialized;
      private boolean mInitialized;
-@@ -550,7 +550,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
+@@ -542,7 +542,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
                  && mInitialized) {
                  && mInitialized) {
              return;
              return;
          }
          }
@@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
          mSearchProviderIsGoogle = isGoogle;
          mSearchProviderIsGoogle = isGoogle;
  
  
          updateTileGridPadding();
          updateTileGridPadding();
-@@ -839,7 +839,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
+@@ -834,7 +834,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
      }
      }
  
  
      private static int getMaxTileRows() {
      private static int getMaxTileRows() {

+ 2 - 2
build/patches/User-Agent-anonymize.patch

@@ -27,9 +27,9 @@ diff --git a/chrome/browser/ui/android/android_about_app_info.cc b/chrome/browse
 diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
 diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
 --- a/components/version_info/version_info.cc
 --- a/components/version_info/version_info.cc
 +++ b/components/version_info/version_info.cc
 +++ b/components/version_info/version_info.cc
-@@ -7,13 +7,24 @@
- #include "base/logging.h"
+@@ -8,13 +8,24 @@
  #include "base/no_destructor.h"
  #include "base/no_destructor.h"
+ #include "base/strings/string_number_conversions.h"
  #include "base/version.h"
  #include "base/version.h"
 +#include "base/system/sys_info.h"
 +#include "base/system/sys_info.h"
  #include "build/build_config.h"
  #include "build/build_config.h"

+ 10 - 10
build/patches/autofill-disable-autofill-download-manager.patch

@@ -11,15 +11,15 @@ Disables the autofill download manager (trk:158).
 diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
 diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
 --- a/components/autofill/core/browser/autofill_download_manager.cc
 --- a/components/autofill/core/browser/autofill_download_manager.cc
 +++ b/components/autofill/core/browser/autofill_download_manager.cc
 +++ b/components/autofill/core/browser/autofill_download_manager.cc
-@@ -52,7 +52,6 @@ namespace autofill {
- 
- namespace {
+@@ -60,7 +60,6 @@ constexpr std::pair<int, int> kAutofillExperimentRanges[] = {
+     {3314445, 3314448}, {3314854, 3314883},
+ };
  
  
 -const size_t kMaxQueryGetSize = 1400;  // 1.25KB
 -const size_t kMaxQueryGetSize = 1400;  // 1.25KB
  const size_t kAutofillDownloadManagerMaxFormCacheSize = 16;
  const size_t kAutofillDownloadManagerMaxFormCacheSize = 16;
  const size_t kMaxFieldsPerQueryRequest = 100;
  const size_t kMaxFieldsPerQueryRequest = 100;
  
  
-@@ -412,6 +411,7 @@ bool GetUploadPayloadForApi(const AutofillUploadContents& upload,
+@@ -448,6 +447,7 @@ bool GetUploadPayloadForApi(const AutofillUploadContents& upload,
    return upload_request.SerializeToString(payload);
    return upload_request.SerializeToString(payload);
  }
  }
  
  
@@ -27,7 +27,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
  // Gets an API method URL given its type (query or upload) and an optional
  // Gets an API method URL given its type (query or upload) and an optional
  // resource ID.
  // resource ID.
  // Example usage:
  // Example usage:
-@@ -434,6 +434,7 @@ std::string GetAPIMethodUrl(AutofillDownloadManager::RequestType type,
+@@ -470,6 +470,7 @@ std::string GetAPIMethodUrl(AutofillDownloadManager::RequestType type,
    }
    }
    return base::StrCat({api_method_url, "/", resource_id});
    return base::StrCat({api_method_url, "/", resource_id});
  }
  }
@@ -35,7 +35,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
  
  
  }  // namespace
  }  // namespace
  
  
-@@ -559,6 +560,7 @@ void AutofillDownloadManager::ClearUploadHistory(PrefService* pref_service) {
+@@ -643,6 +644,7 @@ void AutofillDownloadManager::ClearUploadHistory(PrefService* pref_service) {
  
  
  std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
  std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
      const FormRequestData& request_data) const {
      const FormRequestData& request_data) const {
@@ -43,7 +43,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
    std::string method("POST");
    std::string method("POST");
    std::string query_str;
    std::string query_str;
  
  
-@@ -581,12 +583,17 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
+@@ -665,12 +667,17 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
    GURL url = autofill_server_url_
    GURL url = autofill_server_url_
                   .Resolve(RequestTypeToString(request_data.request_type))
                   .Resolve(RequestTypeToString(request_data.request_type))
                   .ReplaceComponents(replacements);
                   .ReplaceComponents(replacements);
@@ -61,7 +61,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
    // ID of the resource to add to the API request URL. Nothing will be added if
    // ID of the resource to add to the API request URL. Nothing will be added if
    // |resource_id| is empty.
    // |resource_id| is empty.
    std::string resource_id;
    std::string resource_id;
-@@ -615,6 +622,10 @@ AutofillDownloadManager::GetRequestURLAndMethodForApi(
+@@ -699,6 +706,10 @@ AutofillDownloadManager::GetRequestURLAndMethodForApi(
        (request_data.request_type == AutofillDownloadManager::REQUEST_QUERY)
        (request_data.request_type == AutofillDownloadManager::REQUEST_QUERY)
            ? "GET"
            ? "GET"
            : "POST";
            : "POST";
@@ -75,7 +75,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
 diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
 diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
 --- a/components/autofill/core/browser/autofill_manager.cc
 --- a/components/autofill/core/browser/autofill_manager.cc
 +++ b/components/autofill/core/browser/autofill_manager.cc
 +++ b/components/autofill/core/browser/autofill_manager.cc
-@@ -172,19 +172,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder,
+@@ -175,19 +175,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder,
    }
    }
  }
  }
  
  
@@ -95,7 +95,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
  }  // namespace
  }  // namespace
  
  
  AutofillManager::FillingContext::FillingContext() = default;
  AutofillManager::FillingContext::FillingContext() = default;
-@@ -1281,11 +1268,6 @@ AutofillManager::AutofillManager(
+@@ -1277,11 +1264,6 @@ AutofillManager::AutofillManager(
        weak_ptr_factory_(this) {
        weak_ptr_factory_(this) {
    DCHECK(driver);
    DCHECK(driver);
    DCHECK(client_);
    DCHECK(client_);

+ 1 - 1
build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch

@@ -11,7 +11,7 @@ anyway), avoid sending to Google.
 diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
 --- a/net/dns/host_resolver_impl.cc
 --- a/net/dns/host_resolver_impl.cc
 +++ b/net/dns/host_resolver_impl.cc
 +++ b/net/dns/host_resolver_impl.cc
-@@ -122,10 +122,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
+@@ -117,10 +117,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
  // cached.
  // cached.
  const int kIPv6ProbePeriodMs = 1000;
  const int kIPv6ProbePeriodMs = 1000;
  
  

+ 10 - 10
build/patches/getClientRects-getBoundingClientRect-measureText-add-fingerprinting-mitigation.patch

@@ -30,10 +30,10 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
  #include "base/macros.h"
  #include "base/macros.h"
  #include "base/optional.h"
  #include "base/optional.h"
 +#include "base/rand_util.h"
 +#include "base/rand_util.h"
+ #include "cc/input/overscroll_behavior.h"
+ #include "cc/input/scroll_snap_data.h"
  #include "services/metrics/public/cpp/mojo_ukm_recorder.h"
  #include "services/metrics/public/cpp/mojo_ukm_recorder.h"
- #include "services/metrics/public/cpp/ukm_builders.h"
- #include "services/metrics/public/cpp/ukm_source_id.h"
-@@ -734,6 +735,10 @@ Document::Document(const DocumentInit& initializer,
+@@ -738,6 +739,10 @@ Document::Document(const DocumentInit& initializer,
    }
    }
    DCHECK(fetcher_);
    DCHECK(fetcher_);
  
  
@@ -44,7 +44,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
    root_scroller_controller_ = RootScrollerController::Create(*this);
    root_scroller_controller_ = RootScrollerController::Create(*this);
  
  
    // We depend on the url getting immediately set in subframes, but we
    // We depend on the url getting immediately set in subframes, but we
-@@ -799,6 +804,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
+@@ -803,6 +808,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
                         Position::BeforeNode(*shadow_host));
                         Position::BeforeNode(*shadow_host));
  }
  }
  
  
@@ -62,7 +62,7 @@ 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
-@@ -389,6 +389,9 @@ class CORE_EXPORT Document : public ContainerNode,
+@@ -393,6 +393,9 @@ class CORE_EXPORT Document : public ContainerNode,
      has_xml_declaration_ = has_xml_declaration ? 1 : 0;
      has_xml_declaration_ = has_xml_declaration ? 1 : 0;
    }
    }
  
  
@@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
    String visibilityState() const;
    String visibilityState() const;
    bool IsPageVisible() const;
    bool IsPageVisible() const;
    bool hidden() const;
    bool hidden() const;
-@@ -1798,6 +1801,8 @@ class CORE_EXPORT Document : public ContainerNode,
+@@ -1815,6 +1818,8 @@ class CORE_EXPORT Document : public ContainerNode,
  
  
    double start_time_;
    double start_time_;
  
  
@@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
 diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
 diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
 --- a/third_party/blink/renderer/core/dom/element.cc
 --- a/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
 +++ b/third_party/blink/renderer/core/dom/element.cc
-@@ -1202,6 +1202,15 @@ DOMRectList* Element::getClientRects() {
+@@ -1222,6 +1222,15 @@ DOMRectList* Element::getClientRects() {
    DCHECK(element_layout_object);
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
    GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
        quads, *element_layout_object);
        quads, *element_layout_object);
@@ -100,7 +100,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
    return DOMRectList::Create(quads);
    return DOMRectList::Create(quads);
  }
  }
  
  
-@@ -1219,6 +1228,13 @@ DOMRect* Element::getBoundingClientRect() {
+@@ -1239,6 +1248,13 @@ DOMRect* Element::getBoundingClientRect() {
    DCHECK(element_layout_object);
    DCHECK(element_layout_object);
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
    GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
                                                          *element_layout_object);
                                                          *element_layout_object);
@@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
 diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
 diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
 --- a/third_party/blink/renderer/core/dom/range.cc
 --- a/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
 +++ b/third_party/blink/renderer/core/dom/range.cc
-@@ -1646,11 +1646,27 @@ DOMRectList* Range::getClientRects() const {
+@@ -1642,11 +1642,27 @@ DOMRectList* Range::getClientRects() const {
    Vector<FloatQuad> quads;
    Vector<FloatQuad> quads;
    GetBorderAndTextQuads(quads);
    GetBorderAndTextQuads(quads);
  
  
@@ -198,7 +198,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/common/features.h"
  #include "third_party/blink/public/platform/platform.h"
  #include "third_party/blink/public/platform/platform.h"
  #include "third_party/blink/public/platform/task_type.h"
  #include "third_party/blink/public/platform/task_type.h"
-@@ -784,8 +786,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
+@@ -793,8 +795,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
    else
    else
      direction = ToTextDirection(GetState().GetDirection(), canvas());
      direction = ToTextDirection(GetState().GetDirection(), canvas());
  
  

+ 2 - 2
build/patches/kill-Auth.patch

@@ -86,7 +86,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
  import com.google.android.gms.common.ConnectionResult;
  import com.google.android.gms.common.ConnectionResult;
  import com.google.android.gms.common.GoogleApiAvailability;
  import com.google.android.gms.common.GoogleApiAvailability;
  
  
-@@ -117,48 +114,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
+@@ -116,48 +113,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
          // so don't report any accounts if Google Play Services are out of date.
          // so don't report any accounts if Google Play Services are out of date.
          checkCanUseGooglePlayServices();
          checkCanUseGooglePlayServices();
  
  
@@ -138,7 +138,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
      }
      }
  
  
      @Override
      @Override
-@@ -198,17 +165,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
+@@ -197,17 +164,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
      @SuppressLint("MissingPermission")
      @SuppressLint("MissingPermission")
      @Override
      @Override
      public void createAddAccountIntent(Callback<Intent> callback) {
      public void createAddAccountIntent(Callback<Intent> callback) {

+ 23 - 28
build/patches/kill-GCM.patch

@@ -8,7 +8,7 @@ Subject: kill GCM
  chrome/android/java/AndroidManifest.xml            |  62 ---------
  chrome/android/java/AndroidManifest.xml            |  62 ---------
  .../chrome/browser/BackgroundSyncLauncher.java     |  97 --------------
  .../chrome/browser/BackgroundSyncLauncher.java     |  97 --------------
  .../chrome/browser/ChromeBackgroundService.java    |   1 -
  .../chrome/browser/ChromeBackgroundService.java    |   1 -
- .../invalidation/InvalidationController.java       |  13 --
+ .../invalidation/InvalidationController.java       |   8 --
  .../browser/ntp/snippets/SnippetsLauncher.java     |  44 -------
  .../browser/ntp/snippets/SnippetsLauncher.java     |  44 -------
  .../browser/services/gcm/GCMBackgroundTask.java    |   2 +-
  .../browser/services/gcm/GCMBackgroundTask.java    |   2 +-
  .../gcm/InvalidationGcmUpstreamSender.java         |  15 ---
  .../gcm/InvalidationGcmUpstreamSender.java         |  15 ---
@@ -22,7 +22,7 @@ Subject: kill GCM
  third_party/cacheinvalidation/BUILD.gn             |   6 -
  third_party/cacheinvalidation/BUILD.gn             |   6 -
  .../client/contrib/MultiplexingGcmListener.java    |  92 +------------
  .../client/contrib/MultiplexingGcmListener.java    |  92 +------------
  .../android2/channel/AndroidNetworkChannel.java    |  18 +--
  .../android2/channel/AndroidNetworkChannel.java    |  18 +--
- 19 files changed, 15 insertions(+), 531 deletions(-)
+ 19 files changed, 15 insertions(+), 526 deletions(-)
 
 
 diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
 diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
 --- a/build/secondary/third_party/android_tools/BUILD.gn
 --- a/build/secondary/third_party/android_tools/BUILD.gn
@@ -40,7 +40,7 @@ diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondar
 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
-@@ -369,7 +369,6 @@ android_library("chrome_java") {
+@@ -344,7 +344,6 @@ android_library("chrome_java") {
      "//third_party/android_deps:javax_inject_javax_inject_java",
      "//third_party/android_deps:javax_inject_javax_inject_java",
      "//third_party/android_media:android_media_java",
      "//third_party/android_media:android_media_java",
      "//third_party/android_swipe_refresh:android_swipe_refresh_java",
      "//third_party/android_swipe_refresh:android_swipe_refresh_java",
@@ -51,7 +51,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 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
-@@ -77,22 +77,17 @@ by a child template that "extends" this file.
+@@ -81,22 +81,17 @@ by a child template that "extends" this file.
      <permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
      <permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
      <permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
      <permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
      <permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
      <permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
@@ -74,7 +74,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
      <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
      <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
  
  
      <uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
      <uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
-@@ -991,43 +986,6 @@ by a child template that "extends" this file.
+@@ -1002,43 +997,6 @@ by a child template that "extends" this file.
              android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
              android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
              android:hardwareAccelerated="false" />
              android:hardwareAccelerated="false" />
  
  
@@ -118,7 +118,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
          <!-- Notification service for sync. -->
          <!-- Notification service for sync. -->
          <meta-data android:name="ipc.invalidation.ticl.listener_service_class"
          <meta-data android:name="ipc.invalidation.ticl.listener_service_class"
              android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
              android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
-@@ -1039,8 +997,6 @@ by a child template that "extends" this file.
+@@ -1050,8 +1008,6 @@ by a child template that "extends" this file.
          </service>
          </service>
          <service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
          <service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
              android:exported="false"/>
              android:exported="false"/>
@@ -127,7 +127,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
          <receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
          <receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
              android:exported="false"/>
              android:exported="false"/>
          <receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
          <receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
-@@ -1067,24 +1023,6 @@ by a child template that "extends" this file.
+@@ -1078,24 +1034,6 @@ by a child template that "extends" this file.
              android:exported="false"
              android:exported="false"
              android:permission="android.permission.BIND_JOB_SERVICE"/>
              android:permission="android.permission.BIND_JOB_SERVICE"/>
  
  
@@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
      /**
      /**
       * Disables the automatic use of the GCMNetworkManager. When disabled, the methods which
       * Disables the automatic use of the GCMNetworkManager. When disabled, the methods which
       * interact with GCM can still be used, but will not be called automatically on creation, or by
       * interact with GCM can still be used, but will not be called automatically on creation, or by
-@@ -124,30 +118,6 @@ public class BackgroundSyncLauncher {
+@@ -123,30 +117,6 @@ public class BackgroundSyncLauncher {
      @VisibleForTesting
      @VisibleForTesting
      @CalledByNative
      @CalledByNative
      protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) {
      protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) {
@@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
      }
      }
  
  
      /**
      /**
-@@ -159,7 +129,6 @@ public class BackgroundSyncLauncher {
+@@ -158,7 +128,6 @@ public class BackgroundSyncLauncher {
      }
      }
  
  
      protected BackgroundSyncLauncher() {
      protected BackgroundSyncLauncher() {
@@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
          launchBrowserIfStopped(false, 0);
          launchBrowserIfStopped(false, 0);
      }
      }
  
  
-@@ -188,72 +157,6 @@ public class BackgroundSyncLauncher {
+@@ -187,72 +156,6 @@ public class BackgroundSyncLauncher {
          return !sGCMEnabled;
          return !sGCMEnabled;
      }
      }
  
  
@@ -310,22 +310,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/In
  import org.chromium.base.ApplicationState;
  import org.chromium.base.ApplicationState;
  import org.chromium.base.ApplicationStatus;
  import org.chromium.base.ApplicationStatus;
  import org.chromium.base.ContextUtils;
  import org.chromium.base.ContextUtils;
-@@ -192,18 +190,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
+@@ -193,13 +191,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
       * Registers for Google Cloud Messaging (GCM) for Invalidations.
       * Registers for Google Cloud Messaging (GCM) for Invalidations.
       */
       */
      private void ensureGcmIsInitialized() {
      private void ensureGcmIsInitialized() {
 -        if (mGcmInitialized) return;
 -        if (mGcmInitialized) return;
          mGcmInitialized = true;
          mGcmInitialized = true;
--        new AsyncTask<Void>() {
--            @Override
--            protected Void doInBackground() {
--                boolean useGcmUpstream = true;
--                AndroidGcmController.get(ContextUtils.getApplicationContext())
--                        .initializeGcm(useGcmUpstream);
--                return null;
--            }
--        }
--                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+-        PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> {
+-            boolean useGcmUpstream = true;
+-            AndroidGcmController.get(ContextUtils.getApplicationContext())
+-                    .initializeGcm(useGcmUpstream);
+-        });
      }
      }
  
  
      @VisibleForTesting
      @VisibleForTesting
@@ -445,8 +440,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/In
  import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
  import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
  
  
  import org.chromium.base.ContextUtils;
  import org.chromium.base.ContextUtils;
-@@ -93,20 +92,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
-      * This function runs on a thread from the AsyncTask.THREAD_POOL_EXECUTOR.
+@@ -87,20 +86,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
+      * This function runs on a thread pool executor thread.
       */
       */
      private void sendUpstreamMessage(String to, Bundle data, String token, Context context) {
      private void sendUpstreamMessage(String to, Bundle data, String token, Context context) {
 -        // Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
 -        // Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
@@ -476,8 +471,8 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
 -  "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
 -  "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
-   "java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
-@@ -1447,7 +1446,6 @@ chrome_java_sources = [
+   "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
+@@ -1385,7 +1384,6 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
    "java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
    "java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
    "java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
    "java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
    "java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
@@ -604,11 +599,11 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/
 -            @TaskInfo.NetworkType int networkType) {
 -            @TaskInfo.NetworkType int networkType) {
 -        switch (networkType) {
 -        switch (networkType) {
 -            // This is correct: GcmNM ANY means no network is guaranteed.
 -            // This is correct: GcmNM ANY means no network is guaranteed.
--            case TaskInfo.NETWORK_TYPE_NONE:
+-            case TaskInfo.NetworkType.NONE:
 -                return Task.NETWORK_STATE_ANY;
 -                return Task.NETWORK_STATE_ANY;
--            case TaskInfo.NETWORK_TYPE_ANY:
+-            case TaskInfo.NetworkType.ANY:
 -                return Task.NETWORK_STATE_CONNECTED;
 -                return Task.NETWORK_STATE_CONNECTED;
--            case TaskInfo.NETWORK_TYPE_UNMETERED:
+-            case TaskInfo.NetworkType.UNMETERED:
 -                return Task.NETWORK_STATE_UNMETERED;
 -                return Task.NETWORK_STATE_UNMETERED;
 -            default:
 -            default:
 -                assert false;
 -                assert false;

+ 1 - 1
build/patches/kill-Location-fall-back-to-system.patch

@@ -10,7 +10,7 @@ Subject: kill Location, fall back to system
 diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
 diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
 --- a/services/device/geolocation/BUILD.gn
 --- a/services/device/geolocation/BUILD.gn
 +++ b/services/device/geolocation/BUILD.gn
 +++ b/services/device/geolocation/BUILD.gn
-@@ -134,7 +134,6 @@ if (is_android) {
+@@ -137,7 +137,6 @@ if (is_android) {
        "android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
        "android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
        "android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
        "android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
        "android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
        "android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",

+ 1 - 1
build/patches/kill-TOS-and-metrics-opt-out.patch

@@ -23,7 +23,7 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
 diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
 diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
 --- a/chrome/android/java/res/values/dimens.xml
 --- a/chrome/android/java/res/values/dimens.xml
 +++ b/chrome/android/java/res/values/dimens.xml
 +++ b/chrome/android/java/res/values/dimens.xml
-@@ -184,7 +184,6 @@
+@@ -192,7 +192,6 @@
      <dimen name="fre_button_padding">12dp</dimen>
      <dimen name="fre_button_padding">12dp</dimen>
      <dimen name="fre_margin">24dp</dimen>
      <dimen name="fre_margin">24dp</dimen>
      <dimen name="fre_image_height">120dp</dimen>
      <dimen name="fre_image_height">120dp</dimen>

+ 1 - 1
build/patches/kill-Vision.patch

@@ -13,7 +13,7 @@ Barcode, face and text detection APIs
 diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
 diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
 --- a/services/shape_detection/BUILD.gn
 --- a/services/shape_detection/BUILD.gn
 +++ b/services/shape_detection/BUILD.gn
 +++ b/services/shape_detection/BUILD.gn
-@@ -85,14 +85,10 @@ if (is_android) {
+@@ -84,14 +84,10 @@ if (is_android) {
  
  
    android_library("shape_detection_java") {
    android_library("shape_detection_java") {
      java_files = [
      java_files = [

+ 1 - 1
build/patches/openH264-enable-ARM-ARM64-optimizations.patch

@@ -12,7 +12,7 @@ Limit threads auto-detect only for iOS
 diff --git a/content/renderer/media_recorder/h264_encoder.cc b/content/renderer/media_recorder/h264_encoder.cc
 diff --git a/content/renderer/media_recorder/h264_encoder.cc b/content/renderer/media_recorder/h264_encoder.cc
 --- a/content/renderer/media_recorder/h264_encoder.cc
 --- a/content/renderer/media_recorder/h264_encoder.cc
 +++ b/content/renderer/media_recorder/h264_encoder.cc
 +++ b/content/renderer/media_recorder/h264_encoder.cc
-@@ -149,11 +149,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
+@@ -150,11 +150,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
      init_params.iRCMode = RC_OFF_MODE;
      init_params.iRCMode = RC_OFF_MODE;
    }
    }
  
  

+ 1 - 1
build/patches/profile-resetter-do-not-tick-send-settings-by-default.patch

@@ -16,7 +16,7 @@ any information.
 diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/browser/profile_resetter/reset_report_uploader.cc
 diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/browser/profile_resetter/reset_report_uploader.cc
 --- a/chrome/browser/profile_resetter/reset_report_uploader.cc
 --- a/chrome/browser/profile_resetter/reset_report_uploader.cc
 +++ b/chrome/browser/profile_resetter/reset_report_uploader.cc
 +++ b/chrome/browser/profile_resetter/reset_report_uploader.cc
-@@ -19,7 +19,7 @@
+@@ -20,7 +20,7 @@
  
  
  namespace {
  namespace {
  const char kResetReportUrl[] =
  const char kResetReportUrl[] =

+ 6 - 6
build/patches/promo-disable-Google-promotion-fetching.patch

@@ -22,14 +22,14 @@ References: https://github.com/iridium-browser/iridium-browser/issues/33
 diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
 diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
 --- a/chrome/browser/signin/signin_promo.cc
 --- a/chrome/browser/signin/signin_promo.cc
 +++ b/chrome/browser/signin/signin_promo.cc
 +++ b/chrome/browser/signin/signin_promo.cc
-@@ -86,6 +86,7 @@ const char kSigninPromoLandingURLSuccessPage[] = "success.html";
- 
- bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
-   DCHECK(profile);
+@@ -86,6 +86,7 @@ GURL GetEmbeddedPromoURL(signin_metrics::AccessPoint access_point,
+     url = net::AppendQueryParameter(url, signin::kSignInPromoQueryKeyAutoClose,
+                                     "1");
+   }
 +  return false;
 +  return false;
+   return url;
+ }
  
  
-   // Don't show if the profile is an incognito.
-   if (profile->IsOffTheRecord())
 -- 
 -- 
 2.11.0
 2.11.0
 
 

+ 3 - 3
build/patches/safe_browsing-disable-cookie-transmission.patch

@@ -38,7 +38,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
 diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
 diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
 --- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
 --- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
 +++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
 +++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
-@@ -761,7 +761,7 @@ void CheckClientDownloadRequest::SendRequest() {
+@@ -772,7 +772,7 @@ void CheckClientDownloadRequest::SendRequest() {
    auto resource_request = std::make_unique<network::ResourceRequest>();
    auto resource_request = std::make_unique<network::ResourceRequest>();
    resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl();
    resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl();
    resource_request->method = "POST";
    resource_request->method = "POST";
@@ -50,7 +50,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/check_client_downl
 diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
 diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
 --- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
 --- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
 +++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
 +++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
-@@ -250,7 +250,7 @@ void PPAPIDownloadRequest::SendRequest() {
+@@ -251,7 +251,7 @@ void PPAPIDownloadRequest::SendRequest() {
    auto resource_request = std::make_unique<network::ResourceRequest>();
    auto resource_request = std::make_unique<network::ResourceRequest>();
    resource_request->url = GetDownloadRequestUrl();
    resource_request->url = GetDownloadRequestUrl();
    resource_request->method = "POST";
    resource_request->method = "POST";
@@ -73,7 +73,7 @@ diff --git a/components/safe_browsing/browser/threat_details_cache.cc b/componen
 diff --git a/components/safe_browsing/db/v4_update_protocol_manager.cc b/components/safe_browsing/db/v4_update_protocol_manager.cc
 diff --git a/components/safe_browsing/db/v4_update_protocol_manager.cc b/components/safe_browsing/db/v4_update_protocol_manager.cc
 --- a/components/safe_browsing/db/v4_update_protocol_manager.cc
 --- a/components/safe_browsing/db/v4_update_protocol_manager.cc
 +++ b/components/safe_browsing/db/v4_update_protocol_manager.cc
 +++ b/components/safe_browsing/db/v4_update_protocol_manager.cc
-@@ -343,8 +343,8 @@ void V4UpdateProtocolManager::IssueUpdateRequest() {
+@@ -344,8 +344,8 @@ void V4UpdateProtocolManager::IssueUpdateRequest() {
    std::string req_base64 = GetBase64SerializedUpdateRequestProto();
    std::string req_base64 = GetBase64SerializedUpdateRequestProto();
    GetUpdateUrlAndHeaders(req_base64, &resource_request->url,
    GetUpdateUrlAndHeaders(req_base64, &resource_request->url,
                           &resource_request->headers);
                           &resource_request->headers);

+ 2 - 2
build/patches/safe_browsing-disable-incident-reporting.patch

@@ -16,7 +16,7 @@ the URL so we get notified if this happens again in the future).
 diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc b/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
 diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc b/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
 --- a/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
 --- a/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
 +++ b/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
 +++ b/chrome/browser/safe_browsing/incident_reporting/incident_report_uploader_impl.cc
-@@ -22,7 +22,7 @@ namespace safe_browsing {
+@@ -23,7 +23,7 @@ namespace safe_browsing {
  namespace {
  namespace {
  
  
  const char kSbIncidentReportUrl[] =
  const char kSbIncidentReportUrl[] =
@@ -28,7 +28,7 @@ diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_report_upl
 diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
 +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
-@@ -310,11 +310,14 @@ IncidentReportingService::UploadContext::~UploadContext() {
+@@ -311,11 +311,14 @@ IncidentReportingService::UploadContext::~UploadContext() {
  
  
  // static
  // static
  bool IncidentReportingService::IsEnabledForProfile(Profile* profile) {
  bool IncidentReportingService::IsEnabledForProfile(Profile* profile) {

+ 1 - 1
build/patches/ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-Google.patch

@@ -17,7 +17,7 @@ Related comment: https://bugs.chromium.org/p/chromium/issues/detail?id=710701#c1
 diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn
 diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn
 --- a/third_party/blink/renderer/devtools/BUILD.gn
 --- a/third_party/blink/renderer/devtools/BUILD.gn
 +++ b/third_party/blink/renderer/devtools/BUILD.gn
 +++ b/third_party/blink/renderer/devtools/BUILD.gn
-@@ -1258,10 +1258,8 @@ action("generate_devtools_grd") {
+@@ -1265,10 +1265,8 @@ action("generate_devtools_grd") {
        devtools_embedder_scripts +
        devtools_embedder_scripts +
        [ "$resources_out_dir/devtools_extension_api.js" ]
        [ "$resources_out_dir/devtools_extension_api.js" ]
  
  

+ 9 - 9
build/patches/ungoogled-chromium-Disable-Gaia.patch

@@ -18,7 +18,7 @@ See also: https://github.com/Eloston/ungoogled-chromium/issues/104
 diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
 diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
 --- a/chrome/browser/browser_resources.grd
 --- a/chrome/browser/browser_resources.grd
 +++ b/chrome/browser/browser_resources.grd
 +++ b/chrome/browser/browser_resources.grd
-@@ -384,7 +384,6 @@
+@@ -396,7 +396,6 @@
        <include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
        <include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
        <include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" flattenhtml="true" type="BINDATA" />
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
        <include name="IDR_INSPECT_CSS" file="resources\inspect\inspect.css" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INSPECT_CSS" file="resources\inspect\inspect.css" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
        <include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
        <include name="IDR_INSPECT_JS" file="resources\inspect\inspect.js" flattenhtml="true" type="BINDATA" />
        <include name="IDR_INSPECT_JS" file="resources\inspect\inspect.js" flattenhtml="true" type="BINDATA" />
-@@ -487,7 +486,6 @@
+@@ -496,7 +495,6 @@
        <include name="IDR_WEBRTC_LOGS_JS" file="resources\media\webrtc_logs.js" type="BINDATA" />
        <include name="IDR_WEBRTC_LOGS_JS" file="resources\media\webrtc_logs.js" type="BINDATA" />
        <include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
        <include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
        <include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
        <include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
@@ -37,7 +37,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
 diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
 diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
 --- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
 --- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
 +++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
 +++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
-@@ -67,7 +67,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
+@@ -68,7 +68,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
  #endif
  #endif
      case IDR_CRYPTOTOKEN_MANIFEST:
      case IDR_CRYPTOTOKEN_MANIFEST:
      case IDR_FEEDBACK_MANIFEST:
      case IDR_FEEDBACK_MANIFEST:
@@ -48,7 +48,7 @@ diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.
 diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
 diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
 --- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
 --- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
 +++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
 +++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
-@@ -42,7 +42,7 @@ ComponentLoader* GetComponentLoader(BrowserContext* context) {
+@@ -43,7 +43,7 @@ ComponentLoader* GetComponentLoader(BrowserContext* context) {
  
  
  void LoadGaiaAuthExtension(BrowserContext* context) {
  void LoadGaiaAuthExtension(BrowserContext* context) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -57,7 +57,7 @@ diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/ch
    ComponentLoader* component_loader = GetComponentLoader(context);
    ComponentLoader* component_loader = GetComponentLoader(context);
    const base::CommandLine* command_line =
    const base::CommandLine* command_line =
        base::CommandLine::ForCurrentProcess();
        base::CommandLine::ForCurrentProcess();
-@@ -55,6 +55,7 @@ void LoadGaiaAuthExtension(BrowserContext* context) {
+@@ -56,6 +56,7 @@ void LoadGaiaAuthExtension(BrowserContext* context) {
  
  
    component_loader->Add(IDR_GAIA_AUTH_MANIFEST,
    component_loader->Add(IDR_GAIA_AUTH_MANIFEST,
                          base::FilePath(FILE_PATH_LITERAL("gaia_auth")));
                          base::FilePath(FILE_PATH_LITERAL("gaia_auth")));
@@ -80,7 +80,7 @@ diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome
 diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc
 diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc
 --- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
 --- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
 +++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
 +++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
-@@ -49,7 +49,6 @@ content::WebUIDataSource* CreateWebUIDataSource() {
+@@ -51,7 +51,6 @@ content::WebUIDataSource* CreateWebUIDataSource() {
  
  
    source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS);
    source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS);
    source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS);
    source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS);
@@ -91,7 +91,7 @@ diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/
 diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc
 diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc
 --- a/google_apis/gaia/gaia_auth_fetcher.cc
 --- a/google_apis/gaia/gaia_auth_fetcher.cc
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
 +++ b/google_apis/gaia/gaia_auth_fetcher.cc
-@@ -44,7 +44,7 @@ namespace {
+@@ -45,7 +45,7 @@ namespace {
  const int kLoadFlagsIgnoreCookies = net::LOAD_DO_NOT_SEND_COOKIES |
  const int kLoadFlagsIgnoreCookies = net::LOAD_DO_NOT_SEND_COOKIES |
                                      net::LOAD_DO_NOT_SAVE_COOKIES;
                                      net::LOAD_DO_NOT_SAVE_COOKIES;
  
  
@@ -100,7 +100,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
  
  
  std::unique_ptr<const GaiaAuthConsumer::ClientOAuthResult>
  std::unique_ptr<const GaiaAuthConsumer::ClientOAuthResult>
  ExtractOAuth2TokenPairResponse(const std::string& data) {
  ExtractOAuth2TokenPairResponse(const std::string& data) {
-@@ -260,6 +260,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
+@@ -261,6 +261,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
      const net::NetworkTrafficAnnotationTag& traffic_annotation) {
      const net::NetworkTrafficAnnotationTag& traffic_annotation) {
    DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
    DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
  
  
@@ -108,7 +108,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
    auto resource_request = std::make_unique<network::ResourceRequest>();
    auto resource_request = std::make_unique<network::ResourceRequest>();
    resource_request->url = gaia_gurl;
    resource_request->url = gaia_gurl;
    original_url_ = gaia_gurl;
    original_url_ = gaia_gurl;
-@@ -314,6 +315,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
+@@ -315,6 +316,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
        base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete,
        base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete,
                       base::Unretained(this)),
                       base::Unretained(this)),
        kMaxMessageSize);
        kMaxMessageSize);

+ 3 - 3
build/patches/ungoogled-chromium-Disable-Google-host-detection.patch

@@ -323,11 +323,11 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
 +  return false;
 +  return false;
  }
  }
  
  
- const std::vector<std::string>& GetGoogleRegistrableDomains() {
+ bool IsGoogleAssociatedDomainUrl(const GURL& url) {
 diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
 diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
 --- a/components/search_engines/template_url.cc
 --- a/components/search_engines/template_url.cc
 +++ b/components/search_engines/template_url.cc
 +++ b/components/search_engines/template_url.cc
-@@ -504,11 +504,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
+@@ -505,11 +505,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
  bool TemplateURLRef::HasGoogleBaseURLs(
  bool TemplateURLRef::HasGoogleBaseURLs(
      const SearchTermsData& search_terms_data) const {
      const SearchTermsData& search_terms_data) const {
    ParseIfNecessary(search_terms_data);
    ParseIfNecessary(search_terms_data);
@@ -343,7 +343,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin
 diff --git a/net/base/url_util.cc b/net/base/url_util.cc
 diff --git a/net/base/url_util.cc b/net/base/url_util.cc
 --- a/net/base/url_util.cc
 --- a/net/base/url_util.cc
 +++ b/net/base/url_util.cc
 +++ b/net/base/url_util.cc
-@@ -383,28 +383,6 @@ void GetIdentityFromURL(const GURL& url,
+@@ -392,28 +392,6 @@ void GetIdentityFromURL(const GURL& url,
  }
  }
  
  
  bool HasGoogleHost(const GURL& url) {
  bool HasGoogleHost(const GURL& url) {

+ 1 - 1
build/patches/ungoogled-chromium-Disable-profile-avatar-downloading.patch

@@ -12,7 +12,7 @@ Added some Bromite-specific further improvements
 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
-@@ -1289,8 +1289,6 @@ jumbo_split_static_library("browser") {
+@@ -1364,8 +1364,6 @@ jumbo_split_static_library("browser") {
      "profiles/profile_attributes_entry.h",
      "profiles/profile_attributes_entry.h",
      "profiles/profile_attributes_storage.cc",
      "profiles/profile_attributes_storage.cc",
      "profiles/profile_attributes_storage.h",
      "profiles/profile_attributes_storage.h",

+ 75 - 82
build/patches/ungoogled-chromium-disable-safe-browsing.patch → build/patches/ungoogled-chromium-Disable-safe-browsing.patch

@@ -1,33 +1,33 @@
 From: csagan5 <32685696+csagan5@users.noreply.github.com>
 From: csagan5 <32685696+csagan5@users.noreply.github.com>
 Date: Tue, 16 Oct 2018 05:22:59 +0200
 Date: Tue, 16 Oct 2018 05:22:59 +0200
-Subject: ungoogled-chromium: disable safe browsing
+Subject: ungoogled-chromium: Disable safe browsing
 
 
 ---
 ---
  chrome/browser/BUILD.gn                            |  2 -
  chrome/browser/BUILD.gn                            |  2 -
  chrome/browser/browser_process.h                   | 16 -----
  chrome/browser/browser_process.h                   | 16 -----
  chrome/browser/browser_process_impl.cc             | 29 ---------
  chrome/browser/browser_process_impl.cc             | 29 ---------
  chrome/browser/browser_process_impl.h              |  6 --
  chrome/browser/browser_process_impl.h              |  6 --
- .../chrome_browsing_data_remover_delegate.cc       | 29 ---------
+ .../chrome_browsing_data_remover_delegate.cc       | 30 ---------
  chrome/browser/chrome_content_browser_client.cc    | 32 +---------
  chrome/browser/chrome_content_browser_client.cc    | 32 +---------
  .../file_type_policies_component_installer.cc      | 14 -----
  .../file_type_policies_component_installer.cc      | 14 -----
- .../download/chrome_download_manager_delegate.cc   | 17 -----
+ .../download/chrome_download_manager_delegate.cc   | 17 ------
  chrome/browser/download/download_item_model.cc     |  3 -
  chrome/browser/download/download_item_model.cc     |  3 -
  chrome/browser/download/download_prefs.cc          | 13 +---
  chrome/browser/download/download_prefs.cc          | 13 +---
- .../browser/download/download_target_determiner.cc | 24 +------
+ .../browser/download/download_target_determiner.cc | 24 +-------
  .../extensions/api/downloads/downloads_api.cc      | 39 +-----------
  .../extensions/api/downloads/downloads_api.cc      | 39 +-----------
  .../extensions/api/downloads/downloads_api.h       | 10 ---
  .../extensions/api/downloads/downloads_api.h       | 10 ---
- .../api/webstore_private/webstore_private_api.cc   | 43 +------------
- .../browser/extensions/blacklist_state_fetcher.cc  | 34 ++--------
+ .../api/webstore_private/webstore_private_api.cc   | 44 +-------------
+ .../browser/extensions/blacklist_state_fetcher.cc  | 34 ++---------
  .../browser/extensions/blacklist_state_fetcher.h   |  3 -
  .../browser/extensions/blacklist_state_fetcher.h   |  3 -
- .../chrome_resource_dispatcher_host_delegate.cc    |  7 +--
+ .../chrome_resource_dispatcher_host_delegate.cc    |  5 +-
  .../metrics/chrome_metrics_service_client.cc       |  3 -
  .../metrics/chrome_metrics_service_client.cc       |  3 -
- .../browser/net/trial_comparison_cert_verifier.cc  |  3 -
+ .../trial_comparison_cert_verifier_controller.cc   |  3 -
  .../chrome_browser_main_extra_parts_profiles.cc    |  1 -
  .../chrome_browser_main_extra_parts_profiles.cc    |  1 -
  chrome/browser/profiles/profile_impl.cc            | 14 +----
  chrome/browser/profiles/profile_impl.cc            | 14 +----
  chrome/browser/safe_browsing/BUILD.gn              |  2 +
  chrome/browser/safe_browsing/BUILD.gn              |  2 +
  chrome/browser/ssl/captive_portal_blocking_page.cc |  7 +--
  chrome/browser/ssl/captive_portal_blocking_page.cc |  7 +--
  chrome/browser/ssl/cert_report_helper.cc           |  2 -
  chrome/browser/ssl/cert_report_helper.cc           |  2 -
- chrome/browser/ssl/security_state_tab_helper.cc    | 73 ----------------------
+ chrome/browser/ssl/security_state_tab_helper.cc    | 71 ----------------------
  .../chrome_subresource_filter_client.cc            | 14 -----
  .../chrome_subresource_filter_client.cc            | 14 -----
  chrome/browser/ui/BUILD.gn                         |  1 -
  chrome/browser/ui/BUILD.gn                         |  1 -
  chrome/browser/ui/tab_helpers.cc                   | 22 +++----
  chrome/browser/ui/tab_helpers.cc                   | 22 +++----
@@ -35,12 +35,12 @@ Subject: ungoogled-chromium: disable safe browsing
  chrome/renderer/chrome_content_renderer_client.cc  |  1 -
  chrome/renderer/chrome_content_renderer_client.cc  |  1 -
  components/safe_browsing/features.cc               |  2 +-
  components/safe_browsing/features.cc               |  2 +-
  .../core/browser/subresource_filter_features.cc    |  2 +-
  .../core/browser/subresource_filter_features.cc    |  2 +-
- 32 files changed, 33 insertions(+), 446 deletions(-)
+ 32 files changed, 32 insertions(+), 445 deletions(-)
 
 
 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
-@@ -2696,8 +2696,6 @@ jumbo_split_static_library("browser") {
+@@ -2800,8 +2800,6 @@ jumbo_split_static_library("browser") {
        "download/download_commands.h",
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
        "download/download_crx_util.h",
@@ -175,7 +175,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
 diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
 +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-@@ -628,35 +628,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
+@@ -646,36 +646,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
          CONTENT_SETTINGS_TYPE_CLIENT_HINTS, base::Time(), base::Time::Max(),
          CONTENT_SETTINGS_TYPE_CLIENT_HINTS, base::Time(), base::Time::Max(),
          website_settings_filter);
          website_settings_filter);
  
  
@@ -202,9 +202,10 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
 -
 -
 -        manager_ptr->DeleteCookies(
 -        manager_ptr->DeleteCookies(
 -            std::move(deletion_filter),
 -            std::move(deletion_filter),
--            base::BindOnce(&OnClearedCookies,
--                           CreatePendingTaskCompletionClosure(),
--                           std::move(cookie_manager)));
+-            base::BindOnce(
+-                &OnClearedCookies,
+-                CreateTaskCompletionClosure(TracingDataType::kCookies),
+-                std::move(cookie_manager)));
 -      }
 -      }
 -    }
 -    }
 -
 -
@@ -214,7 +215,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
 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
-@@ -853,30 +853,6 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
+@@ -860,30 +860,6 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
    GetIOThreadApplicationLocale() = locale;
    GetIOThreadApplicationLocale() = locale;
  }
  }
  
  
@@ -245,7 +246,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
  float GetDeviceScaleAdjustment() {
  float GetDeviceScaleAdjustment() {
    static const float kMinFSM = 1.05f;
    static const float kMinFSM = 1.05f;
-@@ -2052,7 +2028,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2089,7 +2065,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
        // Disable client-side phishing detection in the renderer if it is
        // Disable client-side phishing detection in the renderer if it is
        // disabled in the Profile preferences or the browser process.
        // disabled in the Profile preferences or the browser process.
        if (!prefs->GetBoolean(prefs::kSafeBrowsingEnabled) ||
        if (!prefs->GetBoolean(prefs::kSafeBrowsingEnabled) ||
@@ -254,7 +255,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
          command_line->AppendSwitch(
          command_line->AppendSwitch(
              switches::kDisableClientSidePhishingDetection);
              switches::kDisableClientSidePhishingDetection);
        }
        }
-@@ -2747,7 +2723,7 @@ void ChromeContentBrowserClient::AllowCertificateError(
+@@ -2718,7 +2694,7 @@ void ChromeContentBrowserClient::AllowCertificateError(
    SSLErrorHandler::HandleSSLError(
    SSLErrorHandler::HandleSSLError(
        web_contents, cert_error, ssl_info, request_url,
        web_contents, cert_error, ssl_info, request_url,
        expired_previous_decision,
        expired_previous_decision,
@@ -263,7 +264,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
        callback, SSLErrorHandler::BlockingPageReadyCallback());
        callback, SSLErrorHandler::BlockingPageReadyCallback());
  }
  }
  
  
-@@ -3030,8 +3006,6 @@ bool ChromeContentBrowserClient::CanCreateWindow(
+@@ -3003,8 +2979,6 @@ bool ChromeContentBrowserClient::CanCreateWindow(
  void ChromeContentBrowserClient::ResourceDispatcherHostCreated() {
  void ChromeContentBrowserClient::ResourceDispatcherHostCreated() {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
  
  
@@ -272,7 +273,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
    for (size_t i = 0; i < extra_parts_.size(); ++i)
    for (size_t i = 0; i < extra_parts_.size(); ++i)
      extra_parts_[i]->ResourceDispatcherHostCreated();
      extra_parts_[i]->ResourceDispatcherHostCreated();
  
  
-@@ -4250,7 +4224,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
+@@ -4242,7 +4216,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
    if (base::FeatureList::IsEnabled(features::kSSLCommittedInterstitials)) {
    if (base::FeatureList::IsEnabled(features::kSSLCommittedInterstitials)) {
      throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
      throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
          handle,
          handle,
@@ -308,7 +309,7 @@ diff --git a/chrome/browser/component_updater/file_type_policies_component_insta
 diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
 diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 --- a/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
 +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -322,13 +322,6 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() {
+@@ -327,13 +327,6 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() {
  
  
  void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) {
  void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) {
    download_manager_ = dm;
    download_manager_ = dm;
@@ -322,7 +323,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
  }
  }
  
  
  #if defined(OS_ANDROID)
  #if defined(OS_ANDROID)
-@@ -636,16 +629,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath(
+@@ -644,16 +637,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath(
  
  
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
  void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
      base::FilePath* filename) {
      base::FilePath* filename) {
@@ -385,7 +386,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download
 diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
 diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
 --- a/chrome/browser/download/download_target_determiner.cc
 --- a/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
 +++ b/chrome/browser/download/download_target_determiner.cc
-@@ -988,29 +988,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
+@@ -1028,29 +1028,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
        download_->HasUserGesture())
        download_->HasUserGesture())
      return DownloadFileType::NOT_DANGEROUS;
      return DownloadFileType::NOT_DANGEROUS;
  
  
@@ -427,7 +428,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b
  #include "chrome/browser/download/download_file_icon_extractor.h"
  #include "chrome/browser/download/download_file_icon_extractor.h"
  #include "chrome/browser/download/download_open_prompt.h"
  #include "chrome/browser/download/download_open_prompt.h"
  #include "chrome/browser/download/download_prefs.h"
  #include "chrome/browser/download/download_prefs.h"
-@@ -1304,9 +1303,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {}
+@@ -1305,9 +1304,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {}
  
  
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
  
  
@@ -437,7 +438,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b
  bool DownloadsAcceptDangerFunction::RunAsync() {
  bool DownloadsAcceptDangerFunction::RunAsync() {
    std::unique_ptr<downloads::AcceptDanger::Params> params(
    std::unique_ptr<downloads::AcceptDanger::Params> params(
        downloads::AcceptDanger::Params::Create(*args_));
        downloads::AcceptDanger::Params::Create(*args_));
-@@ -1344,40 +1340,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) {
+@@ -1345,40 +1341,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) {
      return;
      return;
    }
    }
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
    RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -487,9 +488,9 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/br
  #include "base/scoped_observer.h"
  #include "base/scoped_observer.h"
  #include "base/time/time.h"
  #include "base/time/time.h"
 -#include "chrome/browser/download/download_danger_prompt.h"
 -#include "chrome/browser/download/download_danger_prompt.h"
- #include "chrome/browser/download/download_path_reservation_tracker.h"
  #include "chrome/browser/extensions/chrome_extension_function.h"
  #include "chrome/browser/extensions/chrome_extension_function.h"
  #include "chrome/common/extensions/api/downloads.h"
  #include "chrome/common/extensions/api/downloads.h"
+ #include "components/download/content/public/all_download_item_notifier.h"
 @@ -189,25 +188,16 @@ class DownloadsRemoveFileFunction : public ChromeAsyncExtensionFunction {
 @@ -189,25 +188,16 @@ class DownloadsRemoveFileFunction : public ChromeAsyncExtensionFunction {
  
  
  class DownloadsAcceptDangerFunction : public ChromeAsyncExtensionFunction {
  class DownloadsAcceptDangerFunction : public ChromeAsyncExtensionFunction {
@@ -519,18 +520,21 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/br
 diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
 +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
-@@ -682,48 +682,7 @@ WebstorePrivateGetReferrerChainFunction::
+@@ -681,51 +681,9 @@ WebstorePrivateGetReferrerChainFunction::
  
  
  ExtensionFunction::ResponseAction
  ExtensionFunction::ResponseAction
  WebstorePrivateGetReferrerChainFunction::Run() {
  WebstorePrivateGetReferrerChainFunction::Run() {
 -  Profile* profile = chrome_details_.GetProfile();
 -  Profile* profile = chrome_details_.GetProfile();
 -  if (!SafeBrowsingNavigationObserverManager::IsEnabledAndReady(profile))
 -  if (!SafeBrowsingNavigationObserverManager::IsEnabledAndReady(profile))
--    return RespondNow(ArgumentList(GetReferrerChain::Results::Create("")));
+-    return RespondNow(ArgumentList(
+-        api::webstore_private::GetReferrerChain::Results::Create("")));
 -
 -
 -  content::WebContents* web_contents = GetSenderWebContents();
 -  content::WebContents* web_contents = GetSenderWebContents();
 -  if (!web_contents) {
 -  if (!web_contents) {
--    return RespondNow(ErrorWithArguments(GetReferrerChain::Results::Create(""),
--                                         kWebstoreUserCancelledError));
+-    return RespondNow(ErrorWithArguments(
++  return RespondNow(ErrorWithArguments(
+         api::webstore_private::GetReferrerChain::Results::Create(""),
+         kWebstoreUserCancelledError));
 -  }
 -  }
 -
 -
 -  scoped_refptr<SafeBrowsingNavigationObserverManager>
 -  scoped_refptr<SafeBrowsingNavigationObserverManager>
@@ -563,16 +567,16 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
 -  // Base64 encode the proto to avoid issues with base::Value rejecting strings
 -  // Base64 encode the proto to avoid issues with base::Value rejecting strings
 -  // which are not valid UTF8.
 -  // which are not valid UTF8.
 -  base::Base64Encode(serialized_referrer_proto, &serialized_referrer_proto);
 -  base::Base64Encode(serialized_referrer_proto, &serialized_referrer_proto);
--  return RespondNow(ArgumentList(
--      GetReferrerChain::Results::Create(serialized_referrer_proto)));
-+  return RespondNow(ArgumentList(GetReferrerChain::Results::Create("")));
+-  return RespondNow(
+-      ArgumentList(api::webstore_private::GetReferrerChain::Results::Create(
+-          serialized_referrer_proto)));
  }
  }
  
  
  }  // namespace extensions
  }  // namespace extensions
 diff --git a/chrome/browser/extensions/blacklist_state_fetcher.cc b/chrome/browser/extensions/blacklist_state_fetcher.cc
 diff --git a/chrome/browser/extensions/blacklist_state_fetcher.cc b/chrome/browser/extensions/blacklist_state_fetcher.cc
 --- a/chrome/browser/extensions/blacklist_state_fetcher.cc
 --- a/chrome/browser/extensions/blacklist_state_fetcher.cc
 +++ b/chrome/browser/extensions/blacklist_state_fetcher.cc
 +++ b/chrome/browser/extensions/blacklist_state_fetcher.cc
-@@ -31,28 +31,9 @@ BlacklistStateFetcher::~BlacklistStateFetcher() {
+@@ -32,28 +32,9 @@ BlacklistStateFetcher::~BlacklistStateFetcher() {
  void BlacklistStateFetcher::Request(const std::string& id,
  void BlacklistStateFetcher::Request(const std::string& id,
                                      const RequestCallback& callback) {
                                      const RequestCallback& callback) {
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
    DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -604,7 +608,7 @@ diff --git a/chrome/browser/extensions/blacklist_state_fetcher.cc b/chrome/brows
  }
  }
  
  
  void BlacklistStateFetcher::SendRequest(const std::string& id) {
  void BlacklistStateFetcher::SendRequest(const std::string& id) {
-@@ -63,8 +44,7 @@ void BlacklistStateFetcher::SendRequest(const std::string& id) {
+@@ -64,8 +45,7 @@ void BlacklistStateFetcher::SendRequest(const std::string& id) {
    std::string request_str;
    std::string request_str;
    request.SerializeToString(&request_str);
    request.SerializeToString(&request_str);
  
  
@@ -614,7 +618,7 @@ diff --git a/chrome/browser/extensions/blacklist_state_fetcher.cc b/chrome/brows
    net::NetworkTrafficAnnotationTag traffic_annotation =
    net::NetworkTrafficAnnotationTag traffic_annotation =
        net::DefineNetworkTrafficAnnotation("extension_blacklist", R"(
        net::DefineNetworkTrafficAnnotation("extension_blacklist", R"(
          semantics {
          semantics {
-@@ -111,12 +91,6 @@ void BlacklistStateFetcher::SendRequest(const std::string& id) {
+@@ -112,12 +92,6 @@ void BlacklistStateFetcher::SendRequest(const std::string& id) {
                       base::Unretained(this), fetcher));
                       base::Unretained(this), fetcher));
  }
  }
  
  
@@ -650,7 +654,7 @@ diff --git a/chrome/browser/extensions/blacklist_state_fetcher.h b/chrome/browse
 diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 --- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
 +++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
-@@ -290,8 +290,7 @@ void NotifyUIThreadOfRequestComplete(
+@@ -289,8 +289,7 @@ void NotifyUIThreadOfRequestComplete(
  }  // namespace
  }  // namespace
  
  
  ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate()
  ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate()
@@ -660,7 +664,7 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
  
  
  ChromeResourceDispatcherHostDelegate::~ChromeResourceDispatcherHostDelegate() {
  ChromeResourceDispatcherHostDelegate::~ChromeResourceDispatcherHostDelegate() {
  #if BUILDFLAG(ENABLE_EXTENSIONS)
  #if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -305,8 +304,6 @@ void ChromeResourceDispatcherHostDelegate::RequestBeginning(
+@@ -304,8 +303,6 @@ void ChromeResourceDispatcherHostDelegate::RequestBeginning(
      content::AppCacheService* appcache_service,
      content::AppCacheService* appcache_service,
      ResourceType resource_type,
      ResourceType resource_type,
      std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
      std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
@@ -669,19 +673,10 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
    ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
    ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
  
  
  #if BUILDFLAG(ENABLE_OFFLINE_PAGES) || BUILDFLAG(ENABLE_NACL)
  #if BUILDFLAG(ENABLE_OFFLINE_PAGES) || BUILDFLAG(ENABLE_NACL)
-@@ -410,7 +407,7 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
-   content::ResourceThrottle* first_throttle = NULL;
- #if defined(OS_ANDROID)
-   first_throttle = DataReductionProxyResourceThrottle::MaybeCreate(
--      request, resource_context, resource_type, safe_browsing_.get());
-+      request, resource_context, resource_type, nullptr);
- #endif  // defined(OS_ANDROID)
- 
- #if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
 diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
 diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -714,9 +714,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
+@@ -718,9 +718,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
    metrics_service_->RegisterMetricsProvider(
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<HttpsEngagementMetricsProvider>());
        std::make_unique<HttpsEngagementMetricsProvider>());
  
  
@@ -691,23 +686,23 @@ diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/br
  #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
  #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
    metrics_service_->RegisterMetricsProvider(
    metrics_service_->RegisterMetricsProvider(
        std::make_unique<UpgradeMetricsProvider>());
        std::make_unique<UpgradeMetricsProvider>());
-diff --git a/chrome/browser/net/trial_comparison_cert_verifier.cc b/chrome/browser/net/trial_comparison_cert_verifier.cc
---- a/chrome/browser/net/trial_comparison_cert_verifier.cc
-+++ b/chrome/browser/net/trial_comparison_cert_verifier.cc
-@@ -80,9 +80,6 @@ void SendTrialVerificationReport(void* profile_id,
+diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
+--- a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
++++ b/chrome/browser/net/trial_comparison_cert_verifier_controller.cc
+@@ -112,9 +112,6 @@ void TrialComparisonCertVerifierController::SendTrialReport(
    std::string serialized_report;
    std::string serialized_report;
    if (!report.Serialize(&serialized_report))
    if (!report.Serialize(&serialized_report))
      return;
      return;
 -
 -
--  CertificateReportingServiceFactory::GetForBrowserContext(profile)->Send(
+-  CertificateReportingServiceFactory::GetForBrowserContext(profile_)->Send(
 -      serialized_report);
 -      serialized_report);
  }
  }
  
  
- std::unique_ptr<base::Value> TrialVerificationJobResultCallback(
+ // static
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -239,7 +239,6 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -237,7 +237,6 @@ void ChromeBrowserMainExtraPartsProfiles::
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
    CaptivePortalServiceFactory::GetInstance();
    CaptivePortalServiceFactory::GetInstance();
  #endif
  #endif
@@ -718,7 +713,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 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
-@@ -589,18 +589,6 @@ ProfileImpl::ProfileImpl(
+@@ -563,18 +563,6 @@ ProfileImpl::ProfileImpl(
                                   create_mode == CREATE_MODE_SYNCHRONOUS);
                                   create_mode == CREATE_MODE_SYNCHRONOUS);
  #endif
  #endif
  
  
@@ -737,7 +732,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
    content::BrowserContext::Initialize(this, path_);
    content::BrowserContext::Initialize(this, path_);
  
  
    {
    {
-@@ -609,7 +597,7 @@ ProfileImpl::ProfileImpl(
+@@ -583,7 +571,7 @@ ProfileImpl::ProfileImpl(
              ->CreateDelegate();
              ->CreateDelegate();
      delegate->InitPrefRegistry(pref_registry_.get());
      delegate->InitPrefRegistry(pref_registry_.get());
      prefs_ = chrome_prefs::CreateProfilePrefs(
      prefs_ = chrome_prefs::CreateProfilePrefs(
@@ -749,15 +744,15 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
 diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
 diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
 --- a/chrome/browser/safe_browsing/BUILD.gn
 --- a/chrome/browser/safe_browsing/BUILD.gn
 +++ b/chrome/browser/safe_browsing/BUILD.gn
 +++ b/chrome/browser/safe_browsing/BUILD.gn
-@@ -6,6 +6,7 @@ import("//extensions/buildflags/buildflags.gni")
- import("//third_party/protobuf/proto_library.gni")
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//extensions/buildflags/buildflags.gni")
  
  
- static_library("safe_browsing") {
+ jumbo_static_library("safe_browsing") {
 +  if (false) {
 +  if (false) {
    sources = [
    sources = [
      "safe_browsing_controller_client.cc",
      "safe_browsing_controller_client.cc",
      "safe_browsing_controller_client.h",
      "safe_browsing_controller_client.h",
-@@ -100,6 +101,7 @@ static_library("safe_browsing") {
+@@ -100,6 +101,7 @@ jumbo_static_library("safe_browsing") {
    } else {
    } else {
      sources += [ "chrome_cleaner/chrome_cleaner_extension_util_win_noop.cc" ]
      sources += [ "chrome_cleaner/chrome_cleaner_extension_util_win_noop.cc" ]
    }
    }
@@ -804,7 +799,7 @@ diff --git a/chrome/browser/ssl/cert_report_helper.cc b/chrome/browser/ssl/cert_
 diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
 diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
 --- a/chrome/browser/ssl/security_state_tab_helper.cc
 --- a/chrome/browser/ssl/security_state_tab_helper.cc
 +++ b/chrome/browser/ssl/security_state_tab_helper.cc
 +++ b/chrome/browser/ssl/security_state_tab_helper.cc
-@@ -186,79 +186,6 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const {
+@@ -186,77 +186,6 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const {
  
  
  security_state::MaliciousContentStatus
  security_state::MaliciousContentStatus
  SecurityStateTabHelper::GetMaliciousContentStatus() const {
  SecurityStateTabHelper::GetMaliciousContentStatus() const {
@@ -860,9 +855,7 @@ diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ss
 -        return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING;
 -        return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING;
 -#endif
 -#endif
 -      case safe_browsing::SB_THREAT_TYPE_BILLING:
 -      case safe_browsing::SB_THREAT_TYPE_BILLING:
--        return base::FeatureList::IsEnabled(safe_browsing::kBillingInterstitial)
--                   ? security_state::MALICIOUS_CONTENT_STATUS_BILLING
--                   : security_state::MALICIOUS_CONTENT_STATUS_NONE;
+-        return security_state::MALICIOUS_CONTENT_STATUS_BILLING;
 -      case safe_browsing::
 -      case safe_browsing::
 -          DEPRECATED_SB_THREAT_TYPE_URL_PASSWORD_PROTECTION_PHISHING:
 -          DEPRECATED_SB_THREAT_TYPE_URL_PASSWORD_PROTECTION_PHISHING:
 -      case safe_browsing::SB_THREAT_TYPE_URL_BINARY_MALWARE:
 -      case safe_browsing::SB_THREAT_TYPE_URL_BINARY_MALWARE:
@@ -911,7 +904,7 @@ diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.
 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
-@@ -2463,7 +2463,6 @@ jumbo_split_static_library("ui") {
+@@ -2461,7 +2461,6 @@ jumbo_split_static_library("ui") {
        "views/cookie_info_view.h",
        "views/cookie_info_view.h",
        "views/device_chooser_content_view.cc",
        "views/device_chooser_content_view.cc",
        "views/device_chooser_content_view.h",
        "views/device_chooser_content_view.h",
@@ -922,7 +915,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
 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
-@@ -44,8 +44,8 @@
+@@ -47,8 +47,8 @@
  #include "chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.h"
  #include "chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/profiles/profile.h"
  #include "chrome/browser/resource_coordinator/tab_helper.h"
  #include "chrome/browser/resource_coordinator/tab_helper.h"
@@ -933,7 +926,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
  #include "chrome/browser/sessions/session_tab_helper.h"
  #include "chrome/browser/sessions/session_tab_helper.h"
  #include "chrome/browser/ssl/connection_help_tab_helper.h"
  #include "chrome/browser/ssl/connection_help_tab_helper.h"
  #include "chrome/browser/ssl/security_state_tab_helper.h"
  #include "chrome/browser/ssl/security_state_tab_helper.h"
-@@ -105,7 +105,7 @@
+@@ -106,7 +106,7 @@
  #else
  #else
  #include "chrome/browser/banners/app_banner_manager_desktop.h"
  #include "chrome/browser/banners/app_banner_manager_desktop.h"
  #include "chrome/browser/plugins/plugin_observer.h"
  #include "chrome/browser/plugins/plugin_observer.h"
@@ -942,7 +935,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
  #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
  #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
  #include "chrome/browser/ui/hung_plugin_tab_helper.h"
  #include "chrome/browser/ui/hung_plugin_tab_helper.h"
  #include "chrome/browser/ui/sad_tab_helper.h"
  #include "chrome/browser/ui/sad_tab_helper.h"
-@@ -200,10 +200,10 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -201,10 +201,10 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
    ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient(
    ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient(
        web_contents,
        web_contents,
        autofill::ChromeAutofillClient::FromWebContents(web_contents));
        autofill::ChromeAutofillClient::FromWebContents(web_contents));
@@ -957,7 +950,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
    ChromeTranslateClient::CreateForWebContents(web_contents);
    ChromeTranslateClient::CreateForWebContents(web_contents);
    ClientHintsObserver::CreateForWebContents(web_contents);
    ClientHintsObserver::CreateForWebContents(web_contents);
    ConnectionHelpTabHelper::CreateForWebContents(web_contents);
    ConnectionHelpTabHelper::CreateForWebContents(web_contents);
-@@ -243,10 +243,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -244,10 +244,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
    PreviewsUITabHelper::CreateForWebContents(web_contents);
    PreviewsUITabHelper::CreateForWebContents(web_contents);
    RecentlyAudibleHelper::CreateForWebContents(web_contents);
    RecentlyAudibleHelper::CreateForWebContents(web_contents);
    ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents);
    ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents);
@@ -970,8 +963,8 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
    SearchEngineTabHelper::CreateForWebContents(web_contents);
    SearchEngineTabHelper::CreateForWebContents(web_contents);
    SecurityStateTabHelper::CreateForWebContents(web_contents);
    SecurityStateTabHelper::CreateForWebContents(web_contents);
    if (SiteEngagementService::IsEnabled())
    if (SiteEngagementService::IsEnabled())
-@@ -299,7 +297,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
-                         new ChromePDFWebContentsHelperClient()));
+@@ -297,7 +295,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+       web_contents, std::make_unique<ChromePDFWebContentsHelperClient>());
    PluginObserver::CreateForWebContents(web_contents);
    PluginObserver::CreateForWebContents(web_contents);
    SadTabHelper::CreateForWebContents(web_contents);
    SadTabHelper::CreateForWebContents(web_contents);
 -  safe_browsing::SafeBrowsingTabObserver::CreateForWebContents(web_contents);
 -  safe_browsing::SafeBrowsingTabObserver::CreateForWebContents(web_contents);
@@ -982,15 +975,15 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
 diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
 +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
-@@ -250,6 +250,7 @@ BadClockBlockingPage* CreateBadClockBlockingPage(
-       base::Callback<void(content::CertificateRequestResultType)>());
+@@ -267,6 +267,7 @@ LookalikeUrlInterstitialPage* CreateLookalikeInterstitialPage(
+                                                      safe_url));
  }
  }
  
  
 +#if 0
 +#if 0
  safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
  safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
      content::WebContents* web_contents) {
      content::WebContents* web_contents) {
    safe_browsing::SBThreatType threat_type =
    safe_browsing::SBThreatType threat_type =
-@@ -308,7 +309,9 @@ safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
+@@ -325,7 +326,9 @@ safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
        g_browser_process->safe_browsing_service()->ui_manager().get(),
        g_browser_process->safe_browsing_service()->ui_manager().get(),
        web_contents, main_frame_url, resource);
        web_contents, main_frame_url, resource);
  }
  }
@@ -1000,7 +993,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b
  TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
  TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
      content::WebContents* web_contents) {
      content::WebContents* web_contents) {
    safe_browsing::SBThreatType threat_type =
    safe_browsing::SBThreatType threat_type =
-@@ -360,6 +363,7 @@ TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
+@@ -377,6 +380,7 @@ TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
        g_browser_process->safe_browsing_service()->ui_manager().get(),
        g_browser_process->safe_browsing_service()->ui_manager().get(),
        web_contents, main_frame_url, resource, is_giant_webview);
        web_contents, main_frame_url, resource, is_giant_webview);
  }
  }
@@ -1008,7 +1001,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b
  
  
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
  #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
  CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage(
  CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage(
-@@ -460,8 +464,6 @@ void InterstitialHTMLSource::StartDataRequest(
+@@ -484,8 +488,6 @@ void InterstitialHTMLSource::StartDataRequest(
      interstitial_delegate.reset(CreateSSLBlockingPage(web_contents));
      interstitial_delegate.reset(CreateSSLBlockingPage(web_contents));
    } else if (path_without_query == "/mitm-software-ssl") {
    } else if (path_without_query == "/mitm-software-ssl") {
      interstitial_delegate.reset(CreateMITMSoftwareBlockingPage(web_contents));
      interstitial_delegate.reset(CreateMITMSoftwareBlockingPage(web_contents));
@@ -1016,8 +1009,8 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b
 -    interstitial_delegate.reset(CreateSafeBrowsingBlockingPage(web_contents));
 -    interstitial_delegate.reset(CreateSafeBrowsingBlockingPage(web_contents));
    } else if (path_without_query == "/clock") {
    } else if (path_without_query == "/clock") {
      interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents));
      interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents));
- #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
-@@ -472,11 +474,6 @@ void InterstitialHTMLSource::StartDataRequest(
+   } else if (path_without_query == "/lookalike") {
+@@ -501,11 +503,6 @@ void InterstitialHTMLSource::StartDataRequest(
  
  
    if (path_without_query == "/supervised_user") {
    if (path_without_query == "/supervised_user") {
      html = GetSupervisedUserInterstitialHTML(path);
      html = GetSupervisedUserInterstitialHTML(path);
@@ -1032,7 +1025,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -81,7 +81,6 @@
+@@ -84,7 +84,6 @@
  #include "components/error_page/common/localized_error.h"
  #include "components/error_page/common/localized_error.h"
  #include "components/network_hints/renderer/prescient_networking_dispatcher.h"
  #include "components/network_hints/renderer/prescient_networking_dispatcher.h"
  #include "components/pdf/renderer/pepper_pdf_host.h"
  #include "components/pdf/renderer/pepper_pdf_host.h"
@@ -1043,7 +1036,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
 diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc
 diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc
 --- a/components/safe_browsing/features.cc
 --- a/components/safe_browsing/features.cc
 +++ b/components/safe_browsing/features.cc
 +++ b/components/safe_browsing/features.cc
-@@ -44,7 +44,7 @@ const base::Feature kForceEnableResetPasswordWebUI{
+@@ -39,7 +39,7 @@ const base::Feature kForceEnableResetPasswordWebUI{
      "ForceEnableResetPasswordWebUI", base::FEATURE_DISABLED_BY_DEFAULT};
      "ForceEnableResetPasswordWebUI", base::FEATURE_DISABLED_BY_DEFAULT};
  
  
  const base::Feature kSuspiciousSiteTriggerQuotaFeature{
  const base::Feature kSuspiciousSiteTriggerQuotaFeature{
@@ -1055,7 +1048,7 @@ diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/fea
 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
-@@ -230,7 +230,7 @@ base::LazyInstance<scoped_refptr<ConfigurationList>>::Leaky
+@@ -231,7 +231,7 @@ base::LazyInstance<scoped_refptr<ConfigurationList>>::Leaky
  // Constant definitions -------------------------------------------------------
  // Constant definitions -------------------------------------------------------
  
  
  const base::Feature kSafeBrowsingSubresourceFilter{
  const base::Feature kSafeBrowsingSubresourceFilter{

+ 3 - 3
build/patches/ungoogled-chromium-Disable-translate-integration.patch

@@ -10,9 +10,9 @@ Subject: ungoogled-chromium: Disable translate integration
 diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
 diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
 --- a/components/translate/core/browser/translate_manager.cc
 --- a/components/translate/core/browser/translate_manager.cc
 +++ b/components/translate/core/browser/translate_manager.cc
 +++ b/components/translate/core/browser/translate_manager.cc
-@@ -664,8 +664,9 @@ void TranslateManager::FilterIsTranslatePossible(
-   if (net::NetworkChangeNotifier::IsOffline())
-     decision->PreventAllTriggering();
+@@ -704,8 +704,9 @@ void TranslateManager::FilterIsTranslatePossible(
+         TranslateBrowserMetrics::INITIATION_STATUS_NO_NETWORK);
+   }
  
  
 -  if (!ignore_missing_key_for_testing_ &&
 -  if (!ignore_missing_key_for_testing_ &&
 -      !::google_apis::HasAPIKeyConfigured()) {
 -      !::google_apis::HasAPIKeyConfigured()) {

+ 1 - 1
build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch

@@ -16,7 +16,7 @@ Disable additional URLs that are not caught by the "trk" scheme
 diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc
 diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc
 --- a/chrome/browser/android/rlz/rlz_ping_handler.cc
 --- a/chrome/browser/android/rlz/rlz_ping_handler.cc
 +++ b/chrome/browser/android/rlz/rlz_ping_handler.cc
 +++ b/chrome/browser/android/rlz/rlz_ping_handler.cc
-@@ -75,7 +75,7 @@ void RlzPingHandler::Ping(
+@@ -76,7 +76,7 @@ void RlzPingHandler::Ping(
    DCHECK_EQ(id.length(), 50u);
    DCHECK_EQ(id.length(), 50u);
  
  
    GURL request_url(base::StringPrintf(
    GURL request_url(base::StringPrintf(

+ 2 - 2
build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch

@@ -9,7 +9,7 @@ Subject: ungoogled-chromium: Disable webRTC log uploader
 diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 --- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 --- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 +++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
 +++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
-@@ -129,29 +129,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
+@@ -131,29 +131,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
    DCHECK(meta_data.get());
    DCHECK(meta_data.get());
    DCHECK(!upload_done_data.log_path.empty());
    DCHECK(!upload_done_data.log_path.empty());
  
  
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
  }
  }
  
  
  void WebRtcLogUploader::PrepareMultipartPostData(
  void WebRtcLogUploader::PrepareMultipartPostData(
-@@ -162,6 +140,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
+@@ -164,6 +142,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
    DCHECK(!compressed_log.empty());
    DCHECK(!compressed_log.empty());
    DCHECK(meta_data.get());
    DCHECK(meta_data.get());
  
  

+ 2 - 2
build/patches/updater-disable-updater-pings.patch

@@ -30,7 +30,7 @@ diff --git a/components/component_updater/component_updater_url_constants.cc b/c
 diff --git a/components/component_updater/configurator_impl.cc b/components/component_updater/configurator_impl.cc
 diff --git a/components/component_updater/configurator_impl.cc b/components/component_updater/configurator_impl.cc
 --- a/components/component_updater/configurator_impl.cc
 --- a/components/component_updater/configurator_impl.cc
 +++ b/components/component_updater/configurator_impl.cc
 +++ b/components/component_updater/configurator_impl.cc
-@@ -48,8 +48,7 @@ ConfiguratorImpl::ConfiguratorImpl(
+@@ -49,8 +49,7 @@ ConfiguratorImpl::ConfiguratorImpl(
      : background_downloads_enabled_(config_policy.BackgroundDownloadsEnabled()),
      : background_downloads_enabled_(config_policy.BackgroundDownloadsEnabled()),
        deltas_enabled_(config_policy.DeltaUpdatesEnabled()),
        deltas_enabled_(config_policy.DeltaUpdatesEnabled()),
        fast_update_(config_policy.FastUpdate()),
        fast_update_(config_policy.FastUpdate()),
@@ -40,7 +40,7 @@ diff --git a/components/component_updater/configurator_impl.cc b/components/comp
        url_source_override_(config_policy.UrlSourceOverride()),
        url_source_override_(config_policy.UrlSourceOverride()),
        initial_delay_(config_policy.InitialDelay()) {
        initial_delay_(config_policy.InitialDelay()) {
    if (config_policy.TestRequest()) {
    if (config_policy.TestRequest()) {
-@@ -88,8 +87,6 @@ std::vector<GURL> ConfiguratorImpl::UpdateUrl() const {
+@@ -89,8 +88,6 @@ std::vector<GURL> ConfiguratorImpl::UpdateUrl() const {
                                GURL(kUpdaterJSONFallbackUrl)}
                                GURL(kUpdaterJSONFallbackUrl)}
            : std::vector<GURL>{GURL(kUpdaterDefaultUrl),
            : std::vector<GURL>{GURL(kUpdaterDefaultUrl),
                                GURL(kUpdaterFallbackUrl)};
                                GURL(kUpdaterFallbackUrl)};

+ 1 - 3
build/patches_list.txt

@@ -13,7 +13,6 @@ promo-disable-Google-promotion-fetching.patch
 Disable-omission-of-URL-elements-in-Omnibox.patch
 Disable-omission-of-URL-elements-in-Omnibox.patch
 Modify-default-preferences.patch
 Modify-default-preferences.patch
 Disable-contextual-search-by-default.patch
 Disable-contextual-search-by-default.patch
-Disable-hyperlink-auditing-by-default.patch
 Do-not-store-passwords-by-default.patch
 Do-not-store-passwords-by-default.patch
 Disable-NTP-remote-suggestions-by-default.patch
 Disable-NTP-remote-suggestions-by-default.patch
 Disable-references-to-fonts.googleapis.com.patch
 Disable-references-to-fonts.googleapis.com.patch
@@ -40,7 +39,7 @@ ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-
 safe_browsing-disable-incident-reporting.patch
 safe_browsing-disable-incident-reporting.patch
 safe_browsing-disable-reporting-of-safebrowsing-override.patch
 safe_browsing-disable-reporting-of-safebrowsing-override.patch
 safe_browsing-disable-cookie-transmission.patch
 safe_browsing-disable-cookie-transmission.patch
-ungoogled-chromium-disable-safe-browsing.patch
+ungoogled-chromium-Disable-safe-browsing.patch
 Allow-building-without-safebrowsing-for-Android.patch
 Allow-building-without-safebrowsing-for-Android.patch
 Hide-passwords-manager-link.patch
 Hide-passwords-manager-link.patch
 Disable-Omaha-update-checks.patch
 Disable-Omaha-update-checks.patch
@@ -71,7 +70,6 @@ Add-flags-to-disable-device-motion-and-orientation-APIs.patch
 Punt-the-Widevine-version-string.patch
 Punt-the-Widevine-version-string.patch
 Disable-metrics-on-all-I-O-threads.patch
 Disable-metrics-on-all-I-O-threads.patch
 Add-a-flag-for-DNS-over-HTTPS.patch
 Add-a-flag-for-DNS-over-HTTPS.patch
-Support-different-secure-DNS-modes-within-DnsTransaction.patch
 Enable-secure-DNS-mode-by-default-in-DnsTransaction.patch
 Enable-secure-DNS-mode-by-default-in-DnsTransaction.patch
 Always-respect-async-dns-flag-regardless-of-SDK-version.patch
 Always-respect-async-dns-flag-regardless-of-SDK-version.patch
 Add-flag-to-configure-maximum-connections-per-host.patch
 Add-flag-to-configure-maximum-connections-per-host.patch

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است