From c8e8919714685689b6cec953c8b39f7e2f0e29f3 Mon Sep 17 00:00:00 2001 From: Carl <32685696+csagan5@users.noreply.github.com> Date: Thu, 19 Dec 2019 23:55:40 +0100 Subject: [PATCH 01/25] Updated patches for v79 (#440) * Updated patches for v79 Remaining issue: * blank tabs when running on x86 emulators Waiting on upstream to fix that. The other upstream storage bug (https://bugs.chromium.org/p/chromium/issues/detail?id=1033655) is fixed in this version. --- CHANGELOG.md | 10 +- build/bromite_patches_list.txt | 16 +- build/chromium_patches_list.txt | 6 +- build/patches/AV1-codec-support.patch | 32 +- .../Add-DuckDuckGo-Lite-search-engine.patch | 274 +++-- .../Add-English-only-search-engine.patch | 455 ++++---- build/patches/Add-Qwant-search-engine.patch | 639 +++++------ .../patches/Add-StartPage-search-engine.patch | 1020 ----------------- .../Add-a-proxy-configuration-page.patch | 72 +- .../Add-an-always-incognito-mode.patch | 111 +- .../Add-bookmark-import-export-actions.patch | 170 ++- ...dd-custom-tab-intents-privacy-option.patch | 49 +- build/patches/Add-exit-menu-item.patch | 14 +- ...nfigure-maximum-connections-per-host.patch | 30 +- ...ontrol-video-playback-resume-feature.patch | 10 +- .../Add-flag-to-disable-IPv6-probes.patch | 42 +- build/patches/Add-flag-to-disable-WebGL.patch | 8 +- ...e-device-motion-and-orientation-APIs.patch | 60 +- ...Add-menu-option-to-toggle-ad-blocker.patch | 30 +- ...-toggle-global-Javascript-preference.patch | 28 +- ...configure-the-ad-blocker-filters-URL.patch | 87 +- ...-to-not-persist-tabs-across-sessions.patch | 18 +- .../Add-option-to-use-home-page-as-NTP.patch | 68 +- ...ings-option-for-session-only-cookies.patch | 79 +- ...ng-for-DNS-over-HTTPS-DoH-custom-URL.patch | 81 +- .../Allow-building-without-feed-support.patch | 33 + .../Allow-playing-audio-in-background.patch | 8 +- ...site-sign-in-without-account-sign-in.patch | 2 +- .../Always-allow-partner-customisation.patch | 6 +- ...c-dns-flag-regardless-of-SDK-version.patch | 6 +- .../Always-show-home-page-settings.patch | 234 ---- ...e-new-tab-page-for-default-home-page.patch | 28 +- ...e-fingerprinting-mitigations-via-IDL.patch | 25 +- .../patches/Battery-API-return-nothing.patch | 4 +- ...the-domain-name-or-with-a-trk-scheme.patch | 56 +- .../Bromite-AdBlockUpdaterService.patch | 144 ++- ...sts-for-single-word-Omnibar-searches.patch | 12 +- ...le-NTP-remote-suggestions-by-default.patch | 21 +- .../patches/Disable-Omaha-update-checks.patch | 12 +- build/patches/Disable-WebRTC-by-default.patch | 10 +- ...isable-addresses-autofill-by-default.patch | 36 + build/patches/Disable-all-promo-dialogs.patch | 6 +- ...Disable-contextual-search-by-default.patch | 10 +- .../Disable-dynamic-module-loading.patch | 54 +- ...Disable-fetching-of-all-field-trials.patch | 25 +- ...media-router-and-remoting-by-default.patch | 12 +- ...ble-metrics-collection-for-NTP-tiles.patch | 6 +- .../Disable-metrics-on-all-I-O-threads.patch | 4 +- ...-home-to-be-opened-in-CCT-by-default.patch | 2 +- ...-omission-of-URL-elements-in-Omnibox.patch | 2 +- ...-password-reuse-detection-on-android.patch | 23 + .../patches/Disable-plugins-enumeration.patch | 4 +- .../patches/Disable-previews-by-default.patch | 2 +- ...romos-displayed-in-bookmarks-manager.patch | 54 +- ...e-references-to-fonts.googleapis.com.patch | 12 +- build/patches/Disable-safe-browsing.patch | 667 +++++------ ...able-search-ready-omnibox-by-default.patch | 6 +- .../Disable-seed-based-field-trials.patch | 4 +- ...isable-some-signed-exchange-features.patch | 6 +- .../Disable-sync-services-menu-entry.patch | 2 +- ...sable-third-party-cookies-by-default.patch | 4 +- .../Disable-unified-consent-on-Android.patch | 2 +- build/patches/Disable-update-scheduler.patch | 4 +- ...tifications-to-default-search-engine.patch | 8 +- ...ore-download-location-prompt-setting.patch | 4 +- ...Do-not-record-UMA-for-network-errors.patch | 38 - .../Do-not-store-passwords-by-default.patch | 4 +- ...ownloads-storage-location-by-default.patch | 4 +- ...le-download-rename-option-by-default.patch | 4 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 4 +- ...ble-night-mode-menu-entry-by-default.patch | 2 +- ...ation-for-devices-with-enough-memory.patch | 6 +- ...en-accessing-page-info-site-settings.patch | 2 +- .../patches/Hide-passwords-manager-link.patch | 4 +- .../patches/Hide-send-reports-checkbox.patch | 2 +- ...of-autocomplete-matches-from-5-to-10.patch | 24 +- ...tracking-ads-and-video-functionality.patch | 26 +- .../patches/Modify-default-preferences.patch | 54 +- ...or-canvas-text-and-client-rectangles.patch | 163 ++- build/patches/Never-fetch-popular-sites.patch | 2 +- .../Never-send-any-crash-upload-data.patch | 2 +- ...uiltin-autocomplete-for-chrome-flags.patch | 12 +- .../Open-YouTube-links-in-Bromite.patch | 28 +- .../Punt-the-Widevine-version-string.patch | 24 - ...ders-in-DoH-requests-to-bare-minimum.patch | 102 ++ build/patches/Remove-EV-certificates.patch | 2 +- build/patches/Remove-SMS-integration.patch | 8 +- ...ound-sync-and-translate-menu-options.patch | 12 +- ...dependency-on-com.google.android.gcm.patch | 10 +- ...dency-on-com.google.android.gms.auth.patch | 32 +- ...dency-on-com.google.android.gms.cast.patch | 175 +-- ...dynamic-com.google.android.gms.tasks.patch | 183 +-- ...apps-com.google.android.gms.location.patch | 68 +- ....places-com.google.android.gms.stats.patch | 12 +- ...ndency-on-com.google.android.gms.gcm.patch | 222 +--- ...cut-com.google.android.gms.phenotype.patch | 40 +- ...ependency-on-com.google.android.play.patch | 50 +- build/patches/Remove-help-menu-item.patch | 22 +- ...play-dependency-for-module-installer.patch | 481 -------- ...e-signin-and-data-saver-integrations.patch | 352 +++--- ...ce-DoH-probe-domain-with-RIPE-domain.patch | 4 +- .../Restore-classic-new-tab-page.patch | 2 +- ...y-Omnibox-flag-since-it-has-launched.patch | 66 +- ...o-M78-Enable-AImageReader-by-default.patch | 4 +- ...nifiedConsent-from-ChromeFeatureList.patch | 23 - ...t-code-in-sync-and-privacy-directory.patch | 295 +++-- ...emove-disable-pull-to-refresh-effect.patch | 18 +- .../Skip-the-first-run-and-metrics.patch | 10 +- .../Switch-to-fstack-protector-strong.patch | 4 +- ...-consent-miscellanous-backport-fixes.patch | 95 ++ .../Use-4-tile-rows-never-show-logo.patch | 22 +- .../Use-64-bit-WebView-processes.patch | 2 +- build/patches/Use-dummy-DFM-installer.patch | 546 +++++++++ build/patches/User-Agent-anonymize.patch | 8 +- ...ll-disable-autofill-download-manager.patch | 18 +- ...vice-disable-more-privacy-nightmares.patch | 2 +- ...sable-warning-about-missing-API-keys.patch | 2 +- ...build-remove-calling-untrusted-hooks.patch | 18 +- build/patches/disable-AdsBlockedInfoBar.patch | 4 +- .../disable-background-sync-by-default.patch | 4 +- .../disable-payment-support-by-default.patch | 2 +- ...nsors-access-site-setting-by-default.patch | 6 +- ...IPv6-connectivity-probes-to-RIPE-DNS.patch | 2 +- ...t_run-deactivate-autoupdate-globally.patch | 2 +- ...ging-disable-experiment-status-check.patch | 2 +- build/patches/kill-Auth.patch | 16 +- build/patches/kill-GCM.patch | 285 +---- .../kill-Location-fall-back-to-system.patch | 8 +- .../kill-TOS-and-metrics-opt-out.patch | 10 +- build/patches/kill-Translate.patch | 8 +- build/patches/kill-Vision.patch | 10 +- ...-length-for-newly-generated-RSA-keys.patch | 2 +- ...nH264-enable-ARM-ARM64-optimizations.patch | 8 +- ...pt-for-download-directory-by-default.patch | 4 +- ...efs-disable-signinallowed-by-default.patch | 10 +- .../prefs-only-keep-cookies-until-exit.patch | 4 +- ...do-not-tick-send-settings-by-default.patch | 2 +- ...mo-disable-Google-promotion-fetching.patch | 2 +- ...browsing-disable-cookie-transmission.patch | 16 +- ..._browsing-disable-incident-reporting.patch | 16 +- ...e-reporting-of-safebrowsing-override.patch | 4 +- ...g-of-translate-languages-from-server.patch | 2 +- ...-instead-of-remote-files-from-Google.patch | 49 +- .../ungoogled-chromium-Disable-GCM.patch | 2 +- .../ungoogled-chromium-Disable-Gaia.patch | 2 +- ...romium-Disable-Google-host-detection.patch | 40 +- ...hromium-Disable-Network-Time-Tracker.patch | 2 +- ...-chromium-Disable-domain-reliability.patch | 10 +- ...m-Disable-intranet-redirect-detector.patch | 2 +- ...m-Disable-profile-avatar-downloading.patch | 12 +- ...romium-Disable-translate-integration.patch | 16 +- ...ed-chromium-Disable-untraceable-URLs.patch | 2 +- ...chromium-Disable-webRTC-log-uploader.patch | 4 +- .../updater-disable-updater-pings.patch | 8 +- 154 files changed, 3675 insertions(+), 5187 deletions(-) delete mode 100644 build/patches/Add-StartPage-search-engine.patch create mode 100644 build/patches/Allow-building-without-feed-support.patch delete mode 100644 build/patches/Always-show-home-page-settings.patch create mode 100644 build/patches/Disable-addresses-autofill-by-default.patch create mode 100644 build/patches/Disable-password-reuse-detection-on-android.patch delete mode 100644 build/patches/Do-not-record-UMA-for-network-errors.patch delete mode 100644 build/patches/Punt-the-Widevine-version-string.patch create mode 100644 build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch delete mode 100644 build/patches/Remove-play-dependency-for-module-installer.patch delete mode 100644 build/patches/Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch create mode 100644 build/patches/Unified-consent-miscellanous-backport-fixes.patch create mode 100644 build/patches/Use-dummy-DFM-installer.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 66a610c1..814f8fb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,17 @@ +# 79.0.3945.94 +* removed patches which do not apply anymore (Widevine version punting, always show homepage settings, network errors UMA recording) +* removed split APKs support (Play integration) +* disabled password reuse functionality (Play integration) +* re-introduced minimal headers for DoH +* removed Startpage +* disable feed support +* updated User-agent version + # 78.0.3904.130 * support user-specified subresources filter URL (fixes https://github.com/bromite/bromite/issues/2) * revert removal of flag for disabling pull-to-refresh effect * fix crash when entering no DoH URL (fixes https://github.com/bromite/bromite/issues/430) * added Peter Lowe's Ad and tracking server list (fixes https://github.com/bromite/bromite/issues/423) -* removed Startpage * enabled dav1d_decoder # 78.0.3904.119 diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 0b022d3a..c8b760dd 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,10 +1,9 @@ Disable-third-party-cookies-by-default.patch Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch +Disable-unified-consent-on-Android.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch -Always-show-home-page-settings.patch battery_status_service-disable-more-privacy-nightmares.patch Battery-API-return-nothing.patch google-cloud-messaging-disable-experiment-status-check.patch @@ -45,7 +44,6 @@ Remove-background-sync-and-translate-menu-options.patch Hide-passwords-manager-link.patch Disable-Omaha-update-checks.patch Disable-update-scheduler.patch -Add-StartPage-search-engine.patch Add-English-only-search-engine.patch Add-DuckDuckGo-Lite-search-engine.patch Add-Qwant-search-engine.patch @@ -67,7 +65,6 @@ User-Agent-anonymize.patch AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch Add-flags-to-disable-device-motion-and-orientation-APIs.patch -Punt-the-Widevine-version-string.patch Disable-metrics-on-all-I-O-threads.patch Always-respect-async-dns-flag-regardless-of-SDK-version.patch Add-flag-to-configure-maximum-connections-per-host.patch @@ -102,7 +99,6 @@ Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.locatio Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch Remove-dependency-on-com.google.android.gms.cast.patch Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch -Remove-play-dependency-for-module-installer.patch Remove-SMS-integration.patch Allow-website-sign-in-without-account-sign-in.patch Offer-builtin-autocomplete-for-chrome-flags.patch @@ -127,12 +123,11 @@ disable-payment-support-by-default.patch disable-background-sync-by-default.patch disable-sensors-access-site-setting-by-default.patch Disable-media-router-and-remoting-by-default.patch -Do-not-record-UMA-for-network-errors.patch -Disable-unified-consent-on-Android.patch Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch Disable-search-ready-omnibox-by-default.patch disable-AdsBlockedInfoBar.patch Bromite-AdBlockUpdaterService.patch +Add-option-to-configure-the-ad-blocker-filters-URL.patch Revert-Merge-to-M78-Enable-AImageReader-by-default.patch Replace-DoH-probe-domain-with-RIPE-domain.patch Increase-number-of-autocomplete-matches-from-5-to-10.patch @@ -141,5 +136,10 @@ Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-schem Disable-some-signed-exchange-features.patch Add-flag-to-disable-WebGL.patch Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch +Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch Revert-flags-remove-disable-pull-to-refresh-effect.patch -Add-option-to-configure-the-ad-blocker-filters-URL.patch +Use-dummy-DFM-installer.patch +Disable-password-reuse-detection-on-android.patch +Unified-consent-miscellanous-backport-fixes.patch +Allow-building-without-feed-support.patch +Disable-addresses-autofill-by-default.patch diff --git a/build/chromium_patches_list.txt b/build/chromium_patches_list.txt index bd5b435d..77c03c57 100644 --- a/build/chromium_patches_list.txt +++ b/build/chromium_patches_list.txt @@ -1,7 +1,7 @@ Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch +Disable-unified-consent-on-Android.patch +Unified-consent-miscellanous-backport-fixes.patch AV1-codec-support.patch Switch-to-fstack-protector-strong.patch Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch -Disable-safe-browsing.patch -Disable-sync-services-menu-entry.patch +Disable-password-reuse-detection-on-android.patch diff --git a/build/patches/AV1-codec-support.patch b/build/patches/AV1-codec-support.patch index dba3411d..8f9ba166 100644 --- a/build/patches/AV1-codec-support.patch +++ b/build/patches/AV1-codec-support.patch @@ -5,21 +5,21 @@ Subject: AV1 codec support libaom build fixes (requires -fPIC) Report AV1 as playable on Android --- - media/base/mime_util_internal.cc | 6 +++++- - third_party/libaom/BUILD.gn | 6 ++++-- - third_party/libaom/libaom_srcs.gni | 5 +++++ - .../source/config/linux/arm-neon-cpu-detect/config/aom_config.asm | 2 +- - .../source/config/linux/arm-neon-cpu-detect/config/aom_config.h | 2 +- - .../libaom/source/config/linux/arm-neon/config/aom_config.asm | 2 +- - third_party/libaom/source/config/linux/arm-neon/config/aom_config.h | 2 +- - third_party/libaom/source/config/linux/arm/config/aom_config.asm | 2 +- - third_party/libaom/source/config/linux/arm/config/aom_config.h | 2 +- - third_party/libaom/source/config/linux/arm64/config/aom_config.asm | 2 +- - third_party/libaom/source/config/linux/arm64/config/aom_config.h | 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/x64/config/aom_config.asm | 2 +- - third_party/libaom/source/config/linux/x64/config/aom_config.h | 2 +- + media/base/mime_util_internal.cc | 6 +++++- + third_party/libaom/BUILD.gn | 6 ++++-- + third_party/libaom/libaom_srcs.gni | 5 +++++ + .../config/linux/arm-neon-cpu-detect/config/aom_config.asm | 2 +- + .../config/linux/arm-neon-cpu-detect/config/aom_config.h | 2 +- + .../source/config/linux/arm-neon/config/aom_config.asm | 2 +- + .../libaom/source/config/linux/arm-neon/config/aom_config.h | 2 +- + .../libaom/source/config/linux/arm/config/aom_config.asm | 2 +- + .../libaom/source/config/linux/arm/config/aom_config.h | 2 +- + .../libaom/source/config/linux/arm64/config/aom_config.asm | 2 +- + .../libaom/source/config/linux/arm64/config/aom_config.h | 2 +- + .../source/config/linux/generic/config/aom_config.asm | 2 +- + .../libaom/source/config/linux/generic/config/aom_config.h | 2 +- + .../libaom/source/config/linux/x64/config/aom_config.asm | 2 +- + .../libaom/source/config/linux/x64/config/aom_config.h | 2 +- 15 files changed, 26 insertions(+), 15 deletions(-) diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc @@ -230,5 +230,5 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/th #define CONFIG_RUNTIME_CPU_DETECT 1 #define CONFIG_SHARED 0 -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-DuckDuckGo-Lite-search-engine.patch b/build/patches/Add-DuckDuckGo-Lite-search-engine.patch index 0f165d16..2039b5a5 100644 --- a/build/patches/Add-DuckDuckGo-Lite-search-engine.patch +++ b/build/patches/Add-DuckDuckGo-Lite-search-engine.patch @@ -3,10 +3,10 @@ Date: Thu, 12 Oct 2017 11:06:18 +0200 Subject: Add DuckDuckGo Lite search engine --- - .../search_engines/prepopulated_engines.json | 10 ++ - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 129 +++++++++++---------- - 3 files changed, 76 insertions(+), 64 deletions(-) + .../search_engines/prepopulated_engines.json | 10 ++ + .../search_engines/search_engine_type.h | 1 + + .../template_url_prepopulate_data.cc | 122 +++++++++--------- + 3 files changed, 75 insertions(+), 58 deletions(-) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json --- a/components/search_engines/prepopulated_engines.json @@ -38,12 +38,12 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ + SEARCH_ENGINE_DUCKDUCKGOLIGHT, SEARCH_ENGINE_PARSIJOO, SEARCH_ENGINE_QWANT, - SEARCH_ENGINE_STARTPAGE, + diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc @@ -35,6 +35,7 @@ const PrepopulatedEngine* const engines_default[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo, + &duckduckgo, &duckduckgo_light, @@ -51,7 +51,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Note, the below entries are sorted by country code, not the name in comment. @@ -44,7 +45,7 @@ const PrepopulatedEngine* const engines_AE[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -60,7 +60,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Albania @@ -60,7 +61,7 @@ const PrepopulatedEngine* const engines_AR[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo_ar, - &duckduckgo, @@ -69,7 +69,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Austria @@ -68,7 +69,7 @@ const PrepopulatedEngine* const engines_AT[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo_at, - &duckduckgo, @@ -78,7 +78,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Australia @@ -76,7 +77,7 @@ const PrepopulatedEngine* const engines_AU[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo_au, - &duckduckgo, @@ -87,7 +87,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bosnia and Herzegovina @@ -92,7 +93,7 @@ const PrepopulatedEngine* const engines_BE[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -96,7 +96,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bulgaria @@ -124,7 +125,7 @@ const PrepopulatedEngine* const engines_BN[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -105,7 +105,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bolivia @@ -132,7 +133,7 @@ const PrepopulatedEngine* const engines_BO[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -114,7 +114,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Brazil @@ -140,7 +141,7 @@ const PrepopulatedEngine* const engines_BR[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, &yahoo_br, - &duckduckgo, @@ -122,31 +122,30 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Belarus -@@ -156,19 +157,19 @@ const PrepopulatedEngine* const engines_BZ[] = { - &googleen, &google, &startpage, +@@ -157,11 +158,12 @@ const PrepopulatedEngine* const engines_BZ[] = { &bing, &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, ++ &duckduckgo_light, }; // Canada const PrepopulatedEngine* const engines_CA[] = { -- &googleen, &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, -+ &googleen, &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light, +- &googleen, &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, ++ &googleen, &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light, }; // Switzerland - const PrepopulatedEngine* const engines_CH[] = { - &googleen, &google, &startpage, +@@ -169,6 +171,7 @@ const PrepopulatedEngine* const engines_CH[] = { + &googleen, &google, &bing, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, ++ &duckduckgo_light, &yahoo_ch, }; -@@ -177,7 +178,7 @@ const PrepopulatedEngine* const engines_CL[] = { - &googleen, &google, &startpage, +@@ -177,7 +180,7 @@ const PrepopulatedEngine* const engines_CL[] = { + &googleen, &google, &bing, &yahoo_cl, - &duckduckgo, @@ -154,8 +153,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // China -@@ -190,7 +191,7 @@ const PrepopulatedEngine* const engines_CO[] = { - &googleen, &google, &startpage, +@@ -190,7 +193,7 @@ const PrepopulatedEngine* const engines_CO[] = { + &googleen, &google, &yahoo_co, &bing, - &duckduckgo, @@ -163,8 +162,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Costa Rica -@@ -198,7 +199,7 @@ const PrepopulatedEngine* const engines_CR[] = { - &googleen, &google, &startpage, +@@ -198,7 +201,7 @@ const PrepopulatedEngine* const engines_CR[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -172,8 +171,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Czech Republic -@@ -214,7 +215,7 @@ const PrepopulatedEngine* const engines_DE[] = { - &googleen, &google, &startpage, +@@ -214,7 +217,7 @@ const PrepopulatedEngine* const engines_DE[] = { + &googleen, &google, &bing, &yahoo_de, - &duckduckgo, @@ -181,8 +180,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Denmark -@@ -222,7 +223,7 @@ const PrepopulatedEngine* const engines_DK[] = { - &googleen, &google, &startpage, +@@ -222,7 +225,7 @@ const PrepopulatedEngine* const engines_DK[] = { + &googleen, &google, &bing, &yahoo_dk, - &duckduckgo, @@ -190,8 +189,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Dominican Republic -@@ -230,7 +231,7 @@ const PrepopulatedEngine* const engines_DO[] = { - &googleen, &google, &startpage, +@@ -230,7 +233,7 @@ const PrepopulatedEngine* const engines_DO[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -199,8 +198,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Algeria -@@ -246,7 +247,7 @@ const PrepopulatedEngine* const engines_EC[] = { - &googleen, &google, &startpage, +@@ -246,7 +249,7 @@ const PrepopulatedEngine* const engines_EC[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -208,8 +207,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Estonia -@@ -270,7 +271,7 @@ const PrepopulatedEngine* const engines_ES[] = { - &googleen, &google, &startpage, +@@ -270,7 +273,7 @@ const PrepopulatedEngine* const engines_ES[] = { + &googleen, &google, &bing, &yahoo_es, - &duckduckgo, @@ -217,8 +216,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Finland -@@ -278,7 +279,7 @@ const PrepopulatedEngine* const engines_FI[] = { - &googleen, &google, &startpage, +@@ -278,7 +281,7 @@ const PrepopulatedEngine* const engines_FI[] = { + &googleen, &google, &bing, &yahoo_fi, - &duckduckgo, @@ -226,8 +225,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Faroe Islands -@@ -286,7 +287,7 @@ const PrepopulatedEngine* const engines_FO[] = { - &googleen, &google, &startpage, +@@ -286,7 +289,7 @@ const PrepopulatedEngine* const engines_FO[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -235,8 +234,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // France -@@ -302,7 +303,7 @@ const PrepopulatedEngine* const engines_GB[] = { - &googleen, &google, &startpage, +@@ -302,7 +305,7 @@ const PrepopulatedEngine* const engines_GB[] = { + &googleen, &google, &bing, &yahoo_uk, - &duckduckgo, @@ -244,8 +243,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Greece -@@ -310,7 +311,7 @@ const PrepopulatedEngine* const engines_GR[] = { - &googleen, &google, &startpage, +@@ -310,7 +313,7 @@ const PrepopulatedEngine* const engines_GR[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -253,8 +252,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Guatemala -@@ -318,7 +319,7 @@ const PrepopulatedEngine* const engines_GT[] = { - &googleen, &google, &startpage, +@@ -318,7 +321,7 @@ const PrepopulatedEngine* const engines_GT[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -262,8 +261,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Hong Kong -@@ -334,7 +335,7 @@ const PrepopulatedEngine* const engines_HN[] = { - &googleen, &google, &startpage, +@@ -334,7 +337,7 @@ const PrepopulatedEngine* const engines_HN[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -271,8 +270,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Croatia -@@ -342,7 +343,7 @@ const PrepopulatedEngine* const engines_HR[] = { - &googleen, &google, &startpage, +@@ -342,7 +345,7 @@ const PrepopulatedEngine* const engines_HR[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -280,8 +279,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Hungary -@@ -350,7 +351,7 @@ const PrepopulatedEngine* const engines_HU[] = { - &googleen, &google, &startpage, +@@ -350,7 +353,7 @@ const PrepopulatedEngine* const engines_HU[] = { + &googleen, &google, &yahoo, &bing, - &duckduckgo, @@ -289,8 +288,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Indonesia -@@ -358,7 +359,7 @@ const PrepopulatedEngine* const engines_ID[] = { - &googleen, &google, &startpage, +@@ -358,7 +361,7 @@ const PrepopulatedEngine* const engines_ID[] = { + &googleen, &google, &yahoo_id, &bing, - &duckduckgo, @@ -298,8 +297,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Ireland -@@ -366,7 +367,7 @@ const PrepopulatedEngine* const engines_IE[] = { - &googleen, &google, &startpage, +@@ -366,7 +369,7 @@ const PrepopulatedEngine* const engines_IE[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -307,8 +306,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Israel -@@ -382,7 +383,7 @@ const PrepopulatedEngine* const engines_IN[] = { - &googleen, &google, &startpage, +@@ -382,7 +385,7 @@ const PrepopulatedEngine* const engines_IN[] = { + &googleen, &google, &yahoo_in, &bing, - &duckduckgo, @@ -316,8 +315,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Iraq -@@ -405,7 +406,7 @@ const PrepopulatedEngine* const engines_IS[] = { - &googleen, &google, &startpage, +@@ -405,7 +408,7 @@ const PrepopulatedEngine* const engines_IS[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -325,8 +324,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Italy -@@ -413,7 +414,7 @@ const PrepopulatedEngine* const engines_IT[] = { - &googleen, &google, &startpage, +@@ -413,7 +416,7 @@ const PrepopulatedEngine* const engines_IT[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -334,8 +333,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Jamaica -@@ -421,7 +422,7 @@ const PrepopulatedEngine* const engines_JM[] = { - &googleen, &google, &startpage, +@@ -421,7 +424,7 @@ const PrepopulatedEngine* const engines_JM[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -343,8 +342,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Jordan -@@ -445,7 +446,7 @@ const PrepopulatedEngine* const engines_KE[] = { - &googleen, &google, &startpage, +@@ -445,7 +448,7 @@ const PrepopulatedEngine* const engines_KE[] = { + &googleen, &google, &yahoo, &bing, - &duckduckgo, @@ -352,34 +351,33 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // South Korea -@@ -477,14 +478,14 @@ const PrepopulatedEngine* const engines_LB[] = { - &googleen, &google, &startpage, +@@ -478,6 +481,7 @@ const PrepopulatedEngine* const engines_LB[] = { &bing, &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, ++ &duckduckgo_light, }; // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { - &googleen, &google, &startpage, +@@ -485,6 +489,7 @@ const PrepopulatedEngine* const engines_LI[] = { + &googleen, &google, &bing, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, ++ &duckduckgo_light, &yahoo, }; -@@ -500,7 +501,7 @@ const PrepopulatedEngine* const engines_LT[] = { +@@ -500,7 +505,7 @@ const PrepopulatedEngine* const engines_LT[] = { const PrepopulatedEngine* const engines_LU[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, - &duckduckgo, + &duckduckgo, &duckduckgo_light, &yahoo, }; -@@ -533,7 +534,7 @@ const PrepopulatedEngine* const engines_MC[] = { - &googleen, &google, &startpage, +@@ -533,7 +538,7 @@ const PrepopulatedEngine* const engines_MC[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -387,8 +385,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Moldova -@@ -541,7 +542,7 @@ const PrepopulatedEngine* const engines_MD[] = { - &googleen, &google, &startpage, +@@ -541,7 +546,7 @@ const PrepopulatedEngine* const engines_MD[] = { + &googleen, &google, &yandex_ru, &mail_ru, - &duckduckgo, @@ -396,8 +394,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Montenegro -@@ -557,7 +558,7 @@ const PrepopulatedEngine* const engines_MK[] = { - &googleen, &google, &startpage, +@@ -557,7 +562,7 @@ const PrepopulatedEngine* const engines_MK[] = { + &googleen, &google, &yahoo, &bing, - &duckduckgo, @@ -405,8 +403,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Mexico -@@ -565,7 +566,7 @@ const PrepopulatedEngine* const engines_MX[] = { - &googleen, &google, &startpage, +@@ -565,7 +570,7 @@ const PrepopulatedEngine* const engines_MX[] = { + &googleen, &google, &bing, &yahoo_mx, - &duckduckgo, @@ -414,8 +412,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Malaysia -@@ -581,7 +582,7 @@ const PrepopulatedEngine* const engines_NI[] = { - &googleen, &google, &startpage, +@@ -581,7 +586,7 @@ const PrepopulatedEngine* const engines_NI[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -423,8 +421,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Netherlands -@@ -589,7 +590,7 @@ const PrepopulatedEngine* const engines_NL[] = { - &googleen, &google, &startpage, +@@ -589,7 +594,7 @@ const PrepopulatedEngine* const engines_NL[] = { + &googleen, &google, &bing, &yahoo_nl, - &duckduckgo, @@ -432,25 +430,24 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Norway -@@ -597,14 +598,14 @@ const PrepopulatedEngine* const engines_NO[] = { - &googleen, &google, &startpage, +@@ -598,13 +603,14 @@ const PrepopulatedEngine* const engines_NO[] = { &bing, &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, ++ &duckduckgo_light, }; // New Zealand const PrepopulatedEngine* const engines_NZ[] = { - &googleen, &google, &startpage, + &googleen, &google, &bing, - &duckduckgo, + &duckduckgo, &duckduckgo_light, &yahoo_nz, }; -@@ -621,7 +622,7 @@ const PrepopulatedEngine* const engines_PA[] = { - &googleen, &google, &startpage, +@@ -621,7 +627,7 @@ const PrepopulatedEngine* const engines_PA[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -458,8 +455,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Peru -@@ -629,7 +630,7 @@ const PrepopulatedEngine* const engines_PE[] = { - &googleen, &google, &startpage, +@@ -629,7 +635,7 @@ const PrepopulatedEngine* const engines_PE[] = { + &googleen, &google, &yahoo_pe, &bing, - &duckduckgo, @@ -467,8 +464,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Philippines -@@ -637,7 +638,7 @@ const PrepopulatedEngine* const engines_PH[] = { - &googleen, &google, &startpage, +@@ -637,7 +643,7 @@ const PrepopulatedEngine* const engines_PH[] = { + &googleen, &google, &yahoo_ph, &bing, - &duckduckgo, @@ -476,8 +473,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Pakistan -@@ -653,7 +654,7 @@ const PrepopulatedEngine* const engines_PL[] = { - &googleen, &google, &startpage, +@@ -653,7 +659,7 @@ const PrepopulatedEngine* const engines_PL[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -485,8 +482,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Puerto Rico -@@ -661,7 +662,7 @@ const PrepopulatedEngine* const engines_PR[] = { - &googleen, &google, &startpage, +@@ -661,7 +667,7 @@ const PrepopulatedEngine* const engines_PR[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -494,8 +491,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Portugal -@@ -669,7 +670,7 @@ const PrepopulatedEngine* const engines_PT[] = { - &googleen, &google, &startpage, +@@ -669,7 +675,7 @@ const PrepopulatedEngine* const engines_PT[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -503,8 +500,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Paraguay -@@ -677,7 +678,7 @@ const PrepopulatedEngine* const engines_PY[] = { - &googleen, &google, &startpage, +@@ -677,7 +683,7 @@ const PrepopulatedEngine* const engines_PY[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -512,8 +509,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Qatar -@@ -693,7 +694,7 @@ const PrepopulatedEngine* const engines_RO[] = { - &googleen, &google, &startpage, +@@ -693,7 +699,7 @@ const PrepopulatedEngine* const engines_RO[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -521,8 +518,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Serbia -@@ -701,7 +702,7 @@ const PrepopulatedEngine* const engines_RS[] = { - &googleen, &google, &startpage, +@@ -701,7 +707,7 @@ const PrepopulatedEngine* const engines_RS[] = { + &googleen, &google, &yahoo, &bing, - &duckduckgo, @@ -530,8 +527,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Russia -@@ -733,7 +734,7 @@ const PrepopulatedEngine* const engines_SE[] = { - &googleen, &google, &startpage, +@@ -733,7 +739,7 @@ const PrepopulatedEngine* const engines_SE[] = { + &googleen, &google, &bing, &yahoo_se, - &duckduckgo, @@ -539,8 +536,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Singapore -@@ -749,7 +750,7 @@ const PrepopulatedEngine* const engines_SI[] = { - &googleen, &google, &startpage, +@@ -749,7 +755,7 @@ const PrepopulatedEngine* const engines_SI[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -548,8 +545,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Slovakia -@@ -757,7 +758,7 @@ const PrepopulatedEngine* const engines_SK[] = { - &googleen, &google, &startpage, +@@ -757,7 +763,7 @@ const PrepopulatedEngine* const engines_SK[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -557,8 +554,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // El Salvador -@@ -765,7 +766,7 @@ const PrepopulatedEngine* const engines_SV[] = { - &googleen, &google, &startpage, +@@ -765,7 +771,7 @@ const PrepopulatedEngine* const engines_SV[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -566,8 +563,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Syria -@@ -805,7 +806,7 @@ const PrepopulatedEngine* const engines_TT[] = { - &googleen, &google, &startpage, +@@ -805,7 +811,7 @@ const PrepopulatedEngine* const engines_TT[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -575,8 +572,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Taiwan -@@ -837,7 +838,7 @@ const PrepopulatedEngine* const engines_US[] = { - &googleen, &google, &startpage, +@@ -837,7 +843,7 @@ const PrepopulatedEngine* const engines_US[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -584,8 +581,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Uruguay -@@ -845,7 +846,7 @@ const PrepopulatedEngine* const engines_UY[] = { - &googleen, &google, &startpage, +@@ -845,7 +851,7 @@ const PrepopulatedEngine* const engines_UY[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -593,8 +590,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Venezuela -@@ -853,7 +854,7 @@ const PrepopulatedEngine* const engines_VE[] = { - &googleen, &google, &startpage, +@@ -853,7 +859,7 @@ const PrepopulatedEngine* const engines_VE[] = { + &googleen, &google, &yahoo_ve, &bing, - &duckduckgo, @@ -602,8 +599,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Vietnam -@@ -877,7 +878,7 @@ const PrepopulatedEngine* const engines_ZA[] = { - &googleen, &google, &startpage, +@@ -877,7 +883,7 @@ const PrepopulatedEngine* const engines_ZA[] = { + &googleen, &google, &bing, &yahoo, - &duckduckgo, @@ -611,15 +608,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Zimbabwe -@@ -897,7 +898,7 @@ const PrepopulatedEngine* const kAllEngines[] = { - &bing, - &coccoc, - &daum, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &googleen, &google, &startpage, - &mail_ru, - &naver, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-English-only-search-engine.patch b/build/patches/Add-English-only-search-engine.patch index 9718c8fd..a18858ab 100644 --- a/build/patches/Add-English-only-search-engine.patch +++ b/build/patches/Add-English-only-search-engine.patch @@ -5,10 +5,10 @@ Subject: Add English-only search engine Add a Google search engine that forces languages to English, disable from all its searches RLZ and field experiments querystring parameters. --- - .../search_engines/prepopulated_engines.json | 21 ++ - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 131 insertions(+), 109 deletions(-) + .../search_engines/prepopulated_engines.json | 21 ++ + .../search_engines/search_engine_type.h | 1 + + .../template_url_prepopulate_data.cc | 216 +++++++++--------- + 3 files changed, 130 insertions(+), 108 deletions(-) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json --- a/components/search_engines/prepopulated_engines.json @@ -47,11 +47,11 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ @@ -68,6 +68,7 @@ enum SearchEngineType { SEARCH_ENGINE_PARSIJOO, SEARCH_ENGINE_QWANT, - SEARCH_ENGINE_STARTPAGE, -+ SEARCH_ENGINE_GOOGLE_EN, ++ SEARCH_ENGINE_GOOGLE_EN, SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. }; + diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc @@ -59,8 +59,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Default (for countries with no better engine set) const PrepopulatedEngine* const engines_default[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, }; @@ -68,8 +68,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Engine selection by country ------------------------------------------------ // United Arab Emirates const PrepopulatedEngine* const engines_AE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -77,8 +77,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Albania const PrepopulatedEngine* const engines_AL[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &ask, @@ -86,8 +86,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Argentina const PrepopulatedEngine* const engines_AR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_ar, &duckduckgo, @@ -95,8 +95,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Austria const PrepopulatedEngine* const engines_AT[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_at, &duckduckgo, @@ -104,8 +104,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Australia const PrepopulatedEngine* const engines_AU[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_au, &duckduckgo, @@ -113,8 +113,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bosnia and Herzegovina const PrepopulatedEngine* const engines_BA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &ask, @@ -122,8 +122,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Belgium const PrepopulatedEngine* const engines_BE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -131,8 +131,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bulgaria const PrepopulatedEngine* const engines_BG[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -140,8 +140,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bahrain const PrepopulatedEngine* const engines_BH[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &ask, @@ -149,8 +149,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Burundi const PrepopulatedEngine* const engines_BI[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -158,8 +158,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Brunei const PrepopulatedEngine* const engines_BN[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -167,8 +167,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bolivia const PrepopulatedEngine* const engines_BO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -176,8 +176,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Brazil const PrepopulatedEngine* const engines_BR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_br, &duckduckgo, @@ -185,8 +185,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Belarus const PrepopulatedEngine* const engines_BY[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yandex_by, &mail_ru, &bing, @@ -194,8 +194,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Belize const PrepopulatedEngine* const engines_BZ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -203,14 +203,14 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Canada const PrepopulatedEngine* const engines_CA[] = { -- &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, -+ &googleen, &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, +- &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, ++ &googleen, &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, }; // Switzerland const PrepopulatedEngine* const engines_CH[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &duckduckgo, &yahoo_ch, @@ -218,8 +218,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Chile const PrepopulatedEngine* const engines_CL[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_cl, &duckduckgo, @@ -227,14 +227,14 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // China const PrepopulatedEngine* const engines_CN[] = { -- &baidu, &so_360, &google, &startpage, &sogou, &bing, -+ &baidu, &so_360, &googleen, &google, &startpage, &sogou, &bing, +- &baidu, &so_360, &google, &sogou, &bing, ++ &baidu, &so_360, &googleen, &google, &sogou, &bing, }; // Colombia const PrepopulatedEngine* const engines_CO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_co, &bing, &duckduckgo, @@ -242,8 +242,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Costa Rica const PrepopulatedEngine* const engines_CR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -251,8 +251,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Czech Republic const PrepopulatedEngine* const engines_CZ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &seznam, &bing, &yahoo, @@ -260,8 +260,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Germany const PrepopulatedEngine* const engines_DE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_de, &duckduckgo, @@ -269,8 +269,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Denmark const PrepopulatedEngine* const engines_DK[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_dk, &duckduckgo, @@ -278,8 +278,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Dominican Republic const PrepopulatedEngine* const engines_DO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -287,8 +287,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Algeria const PrepopulatedEngine* const engines_DZ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -296,8 +296,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Ecuador const PrepopulatedEngine* const engines_EC[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -305,8 +305,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Estonia const PrepopulatedEngine* const engines_EE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yandex_ru, &neti, @@ -314,8 +314,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Egypt const PrepopulatedEngine* const engines_EG[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -323,8 +323,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Spain const PrepopulatedEngine* const engines_ES[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_es, &duckduckgo, @@ -332,8 +332,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Finland const PrepopulatedEngine* const engines_FI[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_fi, &duckduckgo, @@ -341,8 +341,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Faroe Islands const PrepopulatedEngine* const engines_FO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -350,8 +350,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // France const PrepopulatedEngine* const engines_FR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_fr, &qwant, @@ -359,8 +359,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // United Kingdom const PrepopulatedEngine* const engines_GB[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_uk, &duckduckgo, @@ -368,8 +368,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Greece const PrepopulatedEngine* const engines_GR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -377,8 +377,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Guatemala const PrepopulatedEngine* const engines_GT[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -386,8 +386,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Hong Kong const PrepopulatedEngine* const engines_HK[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_hk, &bing, &baidu, @@ -395,8 +395,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Honduras const PrepopulatedEngine* const engines_HN[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -404,8 +404,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Croatia const PrepopulatedEngine* const engines_HR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -413,8 +413,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Hungary const PrepopulatedEngine* const engines_HU[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &duckduckgo, @@ -422,8 +422,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Indonesia const PrepopulatedEngine* const engines_ID[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_id, &bing, &duckduckgo, @@ -431,8 +431,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Ireland const PrepopulatedEngine* const engines_IE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -440,8 +440,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Israel const PrepopulatedEngine* const engines_IL[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -449,8 +449,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // India const PrepopulatedEngine* const engines_IN[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_in, &bing, &duckduckgo, @@ -458,8 +458,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Iraq const PrepopulatedEngine* const engines_IQ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -467,16 +467,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Iran const PrepopulatedEngine* const engines_IR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, }; // Iceland const PrepopulatedEngine* const engines_IS[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -484,8 +484,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Italy const PrepopulatedEngine* const engines_IT[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -493,8 +493,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Jamaica const PrepopulatedEngine* const engines_JM[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -502,8 +502,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Jordan const PrepopulatedEngine* const engines_JO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -511,8 +511,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Japan const PrepopulatedEngine* const engines_JP[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_jp, &bing, &baidu, @@ -520,8 +520,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Kenya const PrepopulatedEngine* const engines_KE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &duckduckgo, @@ -529,8 +529,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // South Korea const PrepopulatedEngine* const engines_KR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &naver, &daum, &bing, @@ -538,8 +538,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Kuwait const PrepopulatedEngine* const engines_KW[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &ask, @@ -547,8 +547,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Kazakhstan const PrepopulatedEngine* const engines_KZ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yandex_kz, &mail_ru, &bing, @@ -556,8 +556,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Lebanon const PrepopulatedEngine* const engines_LB[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -565,8 +565,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Liechtenstein const PrepopulatedEngine* const engines_LI[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &duckduckgo, &yahoo, @@ -574,8 +574,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Lithuania const PrepopulatedEngine* const engines_LT[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -583,8 +583,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Luxembourg const PrepopulatedEngine* const engines_LU[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &duckduckgo, &yahoo, @@ -592,8 +592,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Latvia const PrepopulatedEngine* const engines_LV[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yandex_ru, &yahoo, @@ -601,8 +601,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Libya const PrepopulatedEngine* const engines_LY[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_com, @@ -610,8 +610,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Morocco const PrepopulatedEngine* const engines_MA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -619,8 +619,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Monaco const PrepopulatedEngine* const engines_MC[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -628,8 +628,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Moldova const PrepopulatedEngine* const engines_MD[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yandex_ru, &mail_ru, &duckduckgo, @@ -637,8 +637,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Montenegro const PrepopulatedEngine* const engines_ME[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -646,8 +646,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Macedonia const PrepopulatedEngine* const engines_MK[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &duckduckgo, @@ -655,8 +655,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Mexico const PrepopulatedEngine* const engines_MX[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_mx, &duckduckgo, @@ -664,8 +664,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Malaysia const PrepopulatedEngine* const engines_MY[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_my, &bing, &baidu, @@ -673,8 +673,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Nicaragua const PrepopulatedEngine* const engines_NI[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -682,8 +682,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Netherlands const PrepopulatedEngine* const engines_NL[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_nl, &duckduckgo, @@ -691,8 +691,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Norway const PrepopulatedEngine* const engines_NO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -700,8 +700,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // New Zealand const PrepopulatedEngine* const engines_NZ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &duckduckgo, &yahoo_nz, @@ -709,8 +709,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Oman const PrepopulatedEngine* const engines_OM[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &ask, @@ -718,8 +718,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Panama const PrepopulatedEngine* const engines_PA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -727,8 +727,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Peru const PrepopulatedEngine* const engines_PE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_pe, &bing, &duckduckgo, @@ -736,8 +736,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Philippines const PrepopulatedEngine* const engines_PH[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_ph, &bing, &duckduckgo, @@ -745,8 +745,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Pakistan const PrepopulatedEngine* const engines_PK[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &baidu, @@ -754,8 +754,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Poland const PrepopulatedEngine* const engines_PL[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -763,8 +763,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Puerto Rico const PrepopulatedEngine* const engines_PR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -772,8 +772,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Portugal const PrepopulatedEngine* const engines_PT[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -781,8 +781,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Paraguay const PrepopulatedEngine* const engines_PY[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -790,8 +790,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Qatar const PrepopulatedEngine* const engines_QA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &ask, @@ -799,8 +799,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Romania const PrepopulatedEngine* const engines_RO[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -808,8 +808,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Serbia const PrepopulatedEngine* const engines_RS[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &duckduckgo, @@ -817,16 +817,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Russia const PrepopulatedEngine* const engines_RU[] = { &yandex_ru, -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &mail_ru, &bing, }; // Rwanda const PrepopulatedEngine* const engines_RW[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -834,8 +834,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Saudi Arabia const PrepopulatedEngine* const engines_SA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_com, @@ -843,8 +843,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Sweden const PrepopulatedEngine* const engines_SE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_se, &duckduckgo, @@ -852,8 +852,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Singapore const PrepopulatedEngine* const engines_SG[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo_sg, &yandex_com, @@ -861,8 +861,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Slovenia const PrepopulatedEngine* const engines_SI[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -870,8 +870,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Slovakia const PrepopulatedEngine* const engines_SK[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -879,8 +879,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // El Salvador const PrepopulatedEngine* const engines_SV[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -888,8 +888,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Syria const PrepopulatedEngine* const engines_SY[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -897,8 +897,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Thailand const PrepopulatedEngine* const engines_TH[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_th, &bing, &ask, @@ -906,8 +906,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Tunisia const PrepopulatedEngine* const engines_TN[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo, &bing, &yandex_ru, @@ -915,8 +915,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Turkey const PrepopulatedEngine* const engines_TR[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yandex_tr, &yahoo_tr, &bing, @@ -924,8 +924,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Trinidad and Tobago const PrepopulatedEngine* const engines_TT[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -933,8 +933,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Taiwan const PrepopulatedEngine* const engines_TW[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_tw, &bing, &baidu, @@ -942,8 +942,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Tanzania const PrepopulatedEngine* const engines_TZ[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &yandex_ru, @@ -951,8 +951,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Ukraine const PrepopulatedEngine* const engines_UA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yandex_ua, &mail_ru, &bing, @@ -960,8 +960,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // United States const PrepopulatedEngine* const engines_US[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -969,8 +969,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Uruguay const PrepopulatedEngine* const engines_UY[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -978,8 +978,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Venezuela const PrepopulatedEngine* const engines_VE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &yahoo_ve, &bing, &duckduckgo, @@ -987,8 +987,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Vietnam const PrepopulatedEngine* const engines_VN[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &coccoc, &bing, &yahoo_vn, @@ -996,8 +996,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Yemen const PrepopulatedEngine* const engines_YE[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &baidu, @@ -1005,8 +1005,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // South Africa const PrepopulatedEngine* const engines_ZA[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &duckduckgo, @@ -1014,20 +1014,11 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Zimbabwe const PrepopulatedEngine* const engines_ZW[] = { -- &google, &startpage, -+ &googleen, &google, &startpage, +- &google, ++ &googleen, &google, &bing, &yahoo, &baidu, -@@ -898,7 +898,7 @@ const PrepopulatedEngine* const kAllEngines[] = { - &coccoc, - &daum, - &duckduckgo, -- &google, &startpage, -+ &googleen, &google, &startpage, - &mail_ru, - &naver, - &qwant, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-Qwant-search-engine.patch b/build/patches/Add-Qwant-search-engine.patch index b7e82cea..a0db4167 100644 --- a/build/patches/Add-Qwant-search-engine.patch +++ b/build/patches/Add-Qwant-search-engine.patch @@ -5,9 +5,9 @@ Subject: Add Qwant search engine Specify image URL in upstream engine definition Make search engine selectable in default list --- - .../search_engines/prepopulated_engines.json | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 2 files changed, 110 insertions(+), 109 deletions(-) + .../search_engines/prepopulated_engines.json | 1 + + .../template_url_prepopulate_data.cc | 216 +++++++++--------- + 2 files changed, 109 insertions(+), 108 deletions(-) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json --- a/components/search_engines/prepopulated_engines.json @@ -27,8 +27,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Default (for countries with no better engine set) const PrepopulatedEngine* const engines_default[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, @@ -36,8 +36,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Engine selection by country ------------------------------------------------ // United Arab Emirates const PrepopulatedEngine* const engines_AE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, @@ -45,8 +45,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Albania const PrepopulatedEngine* const engines_AL[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &ask, @@ -54,8 +54,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Argentina const PrepopulatedEngine* const engines_AR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_ar, &duckduckgo, &duckduckgo_light, @@ -63,8 +63,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Austria const PrepopulatedEngine* const engines_AT[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_at, &duckduckgo, &duckduckgo_light, @@ -72,8 +72,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Australia const PrepopulatedEngine* const engines_AU[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_au, &duckduckgo, &duckduckgo_light, @@ -81,8 +81,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bosnia and Herzegovina const PrepopulatedEngine* const engines_BA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &ask, @@ -90,8 +90,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Belgium const PrepopulatedEngine* const engines_BE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, @@ -99,8 +99,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bulgaria const PrepopulatedEngine* const engines_BG[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, @@ -108,8 +108,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bahrain const PrepopulatedEngine* const engines_BH[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &ask, @@ -117,8 +117,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Burundi const PrepopulatedEngine* const engines_BI[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, @@ -126,8 +126,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Brunei const PrepopulatedEngine* const engines_BN[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, @@ -135,8 +135,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Bolivia const PrepopulatedEngine* const engines_BO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, @@ -144,8 +144,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Brazil const PrepopulatedEngine* const engines_BR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_br, &duckduckgo, &duckduckgo_light, @@ -153,8 +153,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Belarus const PrepopulatedEngine* const engines_BY[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yandex_by, &mail_ru, &bing, @@ -162,840 +162,831 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Belize const PrepopulatedEngine* const engines_BZ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, - &duckduckgo, &duckduckgo_light, -@@ -162,12 +162,12 @@ const PrepopulatedEngine* const engines_BZ[] = { + &duckduckgo, +@@ -163,12 +163,12 @@ const PrepopulatedEngine* const engines_BZ[] = { // Canada const PrepopulatedEngine* const engines_CA[] = { -- &googleen, &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light, -+ &googleen, &google, &startpage, &qwant, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light, +- &googleen, &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light, ++ &googleen, &google, &qwant, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light, }; // Switzerland const PrepopulatedEngine* const engines_CH[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, - &duckduckgo, &duckduckgo_light, - &yahoo_ch, -@@ -175,7 +175,7 @@ const PrepopulatedEngine* const engines_CH[] = { + &duckduckgo, + &duckduckgo_light, +@@ -177,7 +177,7 @@ const PrepopulatedEngine* const engines_CH[] = { // Chile const PrepopulatedEngine* const engines_CL[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_cl, &duckduckgo, &duckduckgo_light, -@@ -183,12 +183,12 @@ const PrepopulatedEngine* const engines_CL[] = { +@@ -185,12 +185,12 @@ const PrepopulatedEngine* const engines_CL[] = { // China const PrepopulatedEngine* const engines_CN[] = { -- &baidu, &so_360, &googleen, &google, &startpage, &sogou, &bing, -+ &baidu, &so_360, &googleen, &google, &startpage, &qwant, &sogou, &bing, +- &baidu, &so_360, &googleen, &google, &sogou, &bing, ++ &baidu, &so_360, &googleen, &google, &qwant, &sogou, &bing, }; // Colombia const PrepopulatedEngine* const engines_CO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_co, &bing, &duckduckgo, &duckduckgo_light, -@@ -196,7 +196,7 @@ const PrepopulatedEngine* const engines_CO[] = { +@@ -198,7 +198,7 @@ const PrepopulatedEngine* const engines_CO[] = { // Costa Rica const PrepopulatedEngine* const engines_CR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -204,7 +204,7 @@ const PrepopulatedEngine* const engines_CR[] = { +@@ -206,7 +206,7 @@ const PrepopulatedEngine* const engines_CR[] = { // Czech Republic const PrepopulatedEngine* const engines_CZ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &seznam, &bing, &yahoo, -@@ -212,7 +212,7 @@ const PrepopulatedEngine* const engines_CZ[] = { +@@ -214,7 +214,7 @@ const PrepopulatedEngine* const engines_CZ[] = { // Germany const PrepopulatedEngine* const engines_DE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_de, &duckduckgo, &duckduckgo_light, -@@ -220,7 +220,7 @@ const PrepopulatedEngine* const engines_DE[] = { +@@ -222,7 +222,7 @@ const PrepopulatedEngine* const engines_DE[] = { // Denmark const PrepopulatedEngine* const engines_DK[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_dk, &duckduckgo, &duckduckgo_light, -@@ -228,7 +228,7 @@ const PrepopulatedEngine* const engines_DK[] = { +@@ -230,7 +230,7 @@ const PrepopulatedEngine* const engines_DK[] = { // Dominican Republic const PrepopulatedEngine* const engines_DO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -236,7 +236,7 @@ const PrepopulatedEngine* const engines_DO[] = { +@@ -238,7 +238,7 @@ const PrepopulatedEngine* const engines_DO[] = { // Algeria const PrepopulatedEngine* const engines_DZ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -244,7 +244,7 @@ const PrepopulatedEngine* const engines_DZ[] = { +@@ -246,7 +246,7 @@ const PrepopulatedEngine* const engines_DZ[] = { // Ecuador const PrepopulatedEngine* const engines_EC[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -252,7 +252,7 @@ const PrepopulatedEngine* const engines_EC[] = { +@@ -254,7 +254,7 @@ const PrepopulatedEngine* const engines_EC[] = { // Estonia const PrepopulatedEngine* const engines_EE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yandex_ru, &neti, -@@ -260,7 +260,7 @@ const PrepopulatedEngine* const engines_EE[] = { +@@ -262,7 +262,7 @@ const PrepopulatedEngine* const engines_EE[] = { // Egypt const PrepopulatedEngine* const engines_EG[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -268,7 +268,7 @@ const PrepopulatedEngine* const engines_EG[] = { +@@ -270,7 +270,7 @@ const PrepopulatedEngine* const engines_EG[] = { // Spain const PrepopulatedEngine* const engines_ES[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_es, &duckduckgo, &duckduckgo_light, -@@ -276,7 +276,7 @@ const PrepopulatedEngine* const engines_ES[] = { +@@ -278,7 +278,7 @@ const PrepopulatedEngine* const engines_ES[] = { // Finland const PrepopulatedEngine* const engines_FI[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_fi, &duckduckgo, &duckduckgo_light, -@@ -284,7 +284,7 @@ const PrepopulatedEngine* const engines_FI[] = { +@@ -286,7 +286,7 @@ const PrepopulatedEngine* const engines_FI[] = { // Faroe Islands const PrepopulatedEngine* const engines_FO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -292,7 +292,7 @@ const PrepopulatedEngine* const engines_FO[] = { +@@ -294,7 +294,7 @@ const PrepopulatedEngine* const engines_FO[] = { // France const PrepopulatedEngine* const engines_FR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_fr, &qwant, -@@ -300,7 +300,7 @@ const PrepopulatedEngine* const engines_FR[] = { +@@ -302,7 +302,7 @@ const PrepopulatedEngine* const engines_FR[] = { // United Kingdom const PrepopulatedEngine* const engines_GB[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_uk, &duckduckgo, &duckduckgo_light, -@@ -308,7 +308,7 @@ const PrepopulatedEngine* const engines_GB[] = { +@@ -310,7 +310,7 @@ const PrepopulatedEngine* const engines_GB[] = { // Greece const PrepopulatedEngine* const engines_GR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -316,7 +316,7 @@ const PrepopulatedEngine* const engines_GR[] = { +@@ -318,7 +318,7 @@ const PrepopulatedEngine* const engines_GR[] = { // Guatemala const PrepopulatedEngine* const engines_GT[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -324,7 +324,7 @@ const PrepopulatedEngine* const engines_GT[] = { +@@ -326,7 +326,7 @@ const PrepopulatedEngine* const engines_GT[] = { // Hong Kong const PrepopulatedEngine* const engines_HK[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_hk, &bing, &baidu, -@@ -332,7 +332,7 @@ const PrepopulatedEngine* const engines_HK[] = { +@@ -334,7 +334,7 @@ const PrepopulatedEngine* const engines_HK[] = { // Honduras const PrepopulatedEngine* const engines_HN[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -340,7 +340,7 @@ const PrepopulatedEngine* const engines_HN[] = { +@@ -342,7 +342,7 @@ const PrepopulatedEngine* const engines_HN[] = { // Croatia const PrepopulatedEngine* const engines_HR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -348,7 +348,7 @@ const PrepopulatedEngine* const engines_HR[] = { +@@ -350,7 +350,7 @@ const PrepopulatedEngine* const engines_HR[] = { // Hungary const PrepopulatedEngine* const engines_HU[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &duckduckgo, &duckduckgo_light, -@@ -356,7 +356,7 @@ const PrepopulatedEngine* const engines_HU[] = { +@@ -358,7 +358,7 @@ const PrepopulatedEngine* const engines_HU[] = { // Indonesia const PrepopulatedEngine* const engines_ID[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_id, &bing, &duckduckgo, &duckduckgo_light, -@@ -364,7 +364,7 @@ const PrepopulatedEngine* const engines_ID[] = { +@@ -366,7 +366,7 @@ const PrepopulatedEngine* const engines_ID[] = { // Ireland const PrepopulatedEngine* const engines_IE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -372,7 +372,7 @@ const PrepopulatedEngine* const engines_IE[] = { +@@ -374,7 +374,7 @@ const PrepopulatedEngine* const engines_IE[] = { // Israel const PrepopulatedEngine* const engines_IL[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, -@@ -380,7 +380,7 @@ const PrepopulatedEngine* const engines_IL[] = { +@@ -382,7 +382,7 @@ const PrepopulatedEngine* const engines_IL[] = { // India const PrepopulatedEngine* const engines_IN[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_in, &bing, &duckduckgo, &duckduckgo_light, -@@ -388,7 +388,7 @@ const PrepopulatedEngine* const engines_IN[] = { +@@ -390,7 +390,7 @@ const PrepopulatedEngine* const engines_IN[] = { // Iraq const PrepopulatedEngine* const engines_IQ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -396,14 +396,14 @@ const PrepopulatedEngine* const engines_IQ[] = { +@@ -398,14 +398,14 @@ const PrepopulatedEngine* const engines_IQ[] = { // Iran const PrepopulatedEngine* const engines_IR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, }; // Iceland const PrepopulatedEngine* const engines_IS[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -411,7 +411,7 @@ const PrepopulatedEngine* const engines_IS[] = { +@@ -413,7 +413,7 @@ const PrepopulatedEngine* const engines_IS[] = { // Italy const PrepopulatedEngine* const engines_IT[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -419,7 +419,7 @@ const PrepopulatedEngine* const engines_IT[] = { +@@ -421,7 +421,7 @@ const PrepopulatedEngine* const engines_IT[] = { // Jamaica const PrepopulatedEngine* const engines_JM[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -427,7 +427,7 @@ const PrepopulatedEngine* const engines_JM[] = { +@@ -429,7 +429,7 @@ const PrepopulatedEngine* const engines_JM[] = { // Jordan const PrepopulatedEngine* const engines_JO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -435,7 +435,7 @@ const PrepopulatedEngine* const engines_JO[] = { +@@ -437,7 +437,7 @@ const PrepopulatedEngine* const engines_JO[] = { // Japan const PrepopulatedEngine* const engines_JP[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_jp, &bing, &baidu, -@@ -443,7 +443,7 @@ const PrepopulatedEngine* const engines_JP[] = { +@@ -445,7 +445,7 @@ const PrepopulatedEngine* const engines_JP[] = { // Kenya const PrepopulatedEngine* const engines_KE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &duckduckgo, &duckduckgo_light, -@@ -451,7 +451,7 @@ const PrepopulatedEngine* const engines_KE[] = { +@@ -453,7 +453,7 @@ const PrepopulatedEngine* const engines_KE[] = { // South Korea const PrepopulatedEngine* const engines_KR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &naver, &daum, &bing, -@@ -459,7 +459,7 @@ const PrepopulatedEngine* const engines_KR[] = { +@@ -461,7 +461,7 @@ const PrepopulatedEngine* const engines_KR[] = { // Kuwait const PrepopulatedEngine* const engines_KW[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &ask, -@@ -467,7 +467,7 @@ const PrepopulatedEngine* const engines_KW[] = { +@@ -469,7 +469,7 @@ const PrepopulatedEngine* const engines_KW[] = { // Kazakhstan const PrepopulatedEngine* const engines_KZ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yandex_kz, &mail_ru, &bing, -@@ -475,7 +475,7 @@ const PrepopulatedEngine* const engines_KZ[] = { +@@ -477,7 +477,7 @@ const PrepopulatedEngine* const engines_KZ[] = { // Lebanon const PrepopulatedEngine* const engines_LB[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, - &duckduckgo, &duckduckgo_light, -@@ -483,7 +483,7 @@ const PrepopulatedEngine* const engines_LB[] = { + &duckduckgo, +@@ -486,7 +486,7 @@ const PrepopulatedEngine* const engines_LB[] = { // Liechtenstein const PrepopulatedEngine* const engines_LI[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, - &duckduckgo, &duckduckgo_light, - &yahoo, -@@ -491,7 +491,7 @@ const PrepopulatedEngine* const engines_LI[] = { + &duckduckgo, + &duckduckgo_light, +@@ -495,7 +495,7 @@ const PrepopulatedEngine* const engines_LI[] = { // Lithuania const PrepopulatedEngine* const engines_LT[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, -@@ -499,7 +499,7 @@ const PrepopulatedEngine* const engines_LT[] = { +@@ -503,7 +503,7 @@ const PrepopulatedEngine* const engines_LT[] = { // Luxembourg const PrepopulatedEngine* const engines_LU[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &duckduckgo, &duckduckgo_light, &yahoo, -@@ -507,7 +507,7 @@ const PrepopulatedEngine* const engines_LU[] = { +@@ -511,7 +511,7 @@ const PrepopulatedEngine* const engines_LU[] = { // Latvia const PrepopulatedEngine* const engines_LV[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yandex_ru, &yahoo, -@@ -515,7 +515,7 @@ const PrepopulatedEngine* const engines_LV[] = { +@@ -519,7 +519,7 @@ const PrepopulatedEngine* const engines_LV[] = { // Libya const PrepopulatedEngine* const engines_LY[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_com, -@@ -523,7 +523,7 @@ const PrepopulatedEngine* const engines_LY[] = { +@@ -527,7 +527,7 @@ const PrepopulatedEngine* const engines_LY[] = { // Morocco const PrepopulatedEngine* const engines_MA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -531,7 +531,7 @@ const PrepopulatedEngine* const engines_MA[] = { +@@ -535,7 +535,7 @@ const PrepopulatedEngine* const engines_MA[] = { // Monaco const PrepopulatedEngine* const engines_MC[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -539,7 +539,7 @@ const PrepopulatedEngine* const engines_MC[] = { +@@ -543,7 +543,7 @@ const PrepopulatedEngine* const engines_MC[] = { // Moldova const PrepopulatedEngine* const engines_MD[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yandex_ru, &mail_ru, &duckduckgo, &duckduckgo_light, -@@ -547,7 +547,7 @@ const PrepopulatedEngine* const engines_MD[] = { +@@ -551,7 +551,7 @@ const PrepopulatedEngine* const engines_MD[] = { // Montenegro const PrepopulatedEngine* const engines_ME[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -555,7 +555,7 @@ const PrepopulatedEngine* const engines_ME[] = { +@@ -559,7 +559,7 @@ const PrepopulatedEngine* const engines_ME[] = { // Macedonia const PrepopulatedEngine* const engines_MK[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &duckduckgo, &duckduckgo_light, -@@ -563,7 +563,7 @@ const PrepopulatedEngine* const engines_MK[] = { +@@ -567,7 +567,7 @@ const PrepopulatedEngine* const engines_MK[] = { // Mexico const PrepopulatedEngine* const engines_MX[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_mx, &duckduckgo, &duckduckgo_light, -@@ -571,7 +571,7 @@ const PrepopulatedEngine* const engines_MX[] = { +@@ -575,7 +575,7 @@ const PrepopulatedEngine* const engines_MX[] = { // Malaysia const PrepopulatedEngine* const engines_MY[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_my, &bing, &baidu, -@@ -579,7 +579,7 @@ const PrepopulatedEngine* const engines_MY[] = { +@@ -583,7 +583,7 @@ const PrepopulatedEngine* const engines_MY[] = { // Nicaragua const PrepopulatedEngine* const engines_NI[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -587,7 +587,7 @@ const PrepopulatedEngine* const engines_NI[] = { +@@ -591,7 +591,7 @@ const PrepopulatedEngine* const engines_NI[] = { // Netherlands const PrepopulatedEngine* const engines_NL[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_nl, &duckduckgo, &duckduckgo_light, -@@ -595,7 +595,7 @@ const PrepopulatedEngine* const engines_NL[] = { +@@ -599,7 +599,7 @@ const PrepopulatedEngine* const engines_NL[] = { // Norway const PrepopulatedEngine* const engines_NO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, - &duckduckgo, &duckduckgo_light, -@@ -603,7 +603,7 @@ const PrepopulatedEngine* const engines_NO[] = { + &duckduckgo, +@@ -608,7 +608,7 @@ const PrepopulatedEngine* const engines_NO[] = { // New Zealand const PrepopulatedEngine* const engines_NZ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &duckduckgo, &duckduckgo_light, &yahoo_nz, -@@ -611,7 +611,7 @@ const PrepopulatedEngine* const engines_NZ[] = { +@@ -616,7 +616,7 @@ const PrepopulatedEngine* const engines_NZ[] = { // Oman const PrepopulatedEngine* const engines_OM[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &ask, -@@ -619,7 +619,7 @@ const PrepopulatedEngine* const engines_OM[] = { +@@ -624,7 +624,7 @@ const PrepopulatedEngine* const engines_OM[] = { // Panama const PrepopulatedEngine* const engines_PA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -627,7 +627,7 @@ const PrepopulatedEngine* const engines_PA[] = { +@@ -632,7 +632,7 @@ const PrepopulatedEngine* const engines_PA[] = { // Peru const PrepopulatedEngine* const engines_PE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_pe, &bing, &duckduckgo, &duckduckgo_light, -@@ -635,7 +635,7 @@ const PrepopulatedEngine* const engines_PE[] = { +@@ -640,7 +640,7 @@ const PrepopulatedEngine* const engines_PE[] = { // Philippines const PrepopulatedEngine* const engines_PH[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_ph, &bing, &duckduckgo, &duckduckgo_light, -@@ -643,7 +643,7 @@ const PrepopulatedEngine* const engines_PH[] = { +@@ -648,7 +648,7 @@ const PrepopulatedEngine* const engines_PH[] = { // Pakistan const PrepopulatedEngine* const engines_PK[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &baidu, -@@ -651,7 +651,7 @@ const PrepopulatedEngine* const engines_PK[] = { +@@ -656,7 +656,7 @@ const PrepopulatedEngine* const engines_PK[] = { // Poland const PrepopulatedEngine* const engines_PL[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -659,7 +659,7 @@ const PrepopulatedEngine* const engines_PL[] = { +@@ -664,7 +664,7 @@ const PrepopulatedEngine* const engines_PL[] = { // Puerto Rico const PrepopulatedEngine* const engines_PR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -667,7 +667,7 @@ const PrepopulatedEngine* const engines_PR[] = { +@@ -672,7 +672,7 @@ const PrepopulatedEngine* const engines_PR[] = { // Portugal const PrepopulatedEngine* const engines_PT[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -675,7 +675,7 @@ const PrepopulatedEngine* const engines_PT[] = { +@@ -680,7 +680,7 @@ const PrepopulatedEngine* const engines_PT[] = { // Paraguay const PrepopulatedEngine* const engines_PY[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -683,7 +683,7 @@ const PrepopulatedEngine* const engines_PY[] = { +@@ -688,7 +688,7 @@ const PrepopulatedEngine* const engines_PY[] = { // Qatar const PrepopulatedEngine* const engines_QA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &ask, -@@ -691,7 +691,7 @@ const PrepopulatedEngine* const engines_QA[] = { +@@ -696,7 +696,7 @@ const PrepopulatedEngine* const engines_QA[] = { // Romania const PrepopulatedEngine* const engines_RO[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -699,7 +699,7 @@ const PrepopulatedEngine* const engines_RO[] = { +@@ -704,7 +704,7 @@ const PrepopulatedEngine* const engines_RO[] = { // Serbia const PrepopulatedEngine* const engines_RS[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &duckduckgo, &duckduckgo_light, -@@ -708,14 +708,14 @@ const PrepopulatedEngine* const engines_RS[] = { +@@ -713,14 +713,14 @@ const PrepopulatedEngine* const engines_RS[] = { // Russia const PrepopulatedEngine* const engines_RU[] = { &yandex_ru, -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &mail_ru, &bing, }; // Rwanda const PrepopulatedEngine* const engines_RW[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, -@@ -723,7 +723,7 @@ const PrepopulatedEngine* const engines_RW[] = { +@@ -728,7 +728,7 @@ const PrepopulatedEngine* const engines_RW[] = { // Saudi Arabia const PrepopulatedEngine* const engines_SA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_com, -@@ -731,7 +731,7 @@ const PrepopulatedEngine* const engines_SA[] = { +@@ -736,7 +736,7 @@ const PrepopulatedEngine* const engines_SA[] = { // Sweden const PrepopulatedEngine* const engines_SE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_se, &duckduckgo, &duckduckgo_light, -@@ -739,7 +739,7 @@ const PrepopulatedEngine* const engines_SE[] = { +@@ -744,7 +744,7 @@ const PrepopulatedEngine* const engines_SE[] = { // Singapore const PrepopulatedEngine* const engines_SG[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo_sg, &yandex_com, -@@ -747,7 +747,7 @@ const PrepopulatedEngine* const engines_SG[] = { +@@ -752,7 +752,7 @@ const PrepopulatedEngine* const engines_SG[] = { // Slovenia const PrepopulatedEngine* const engines_SI[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -755,7 +755,7 @@ const PrepopulatedEngine* const engines_SI[] = { +@@ -760,7 +760,7 @@ const PrepopulatedEngine* const engines_SI[] = { // Slovakia const PrepopulatedEngine* const engines_SK[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -763,7 +763,7 @@ const PrepopulatedEngine* const engines_SK[] = { +@@ -768,7 +768,7 @@ const PrepopulatedEngine* const engines_SK[] = { // El Salvador const PrepopulatedEngine* const engines_SV[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -771,7 +771,7 @@ const PrepopulatedEngine* const engines_SV[] = { +@@ -776,7 +776,7 @@ const PrepopulatedEngine* const engines_SV[] = { // Syria const PrepopulatedEngine* const engines_SY[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, -@@ -779,7 +779,7 @@ const PrepopulatedEngine* const engines_SY[] = { +@@ -784,7 +784,7 @@ const PrepopulatedEngine* const engines_SY[] = { // Thailand const PrepopulatedEngine* const engines_TH[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_th, &bing, &ask, -@@ -787,7 +787,7 @@ const PrepopulatedEngine* const engines_TH[] = { +@@ -792,7 +792,7 @@ const PrepopulatedEngine* const engines_TH[] = { // Tunisia const PrepopulatedEngine* const engines_TN[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo, &bing, &yandex_ru, -@@ -795,7 +795,7 @@ const PrepopulatedEngine* const engines_TN[] = { +@@ -800,7 +800,7 @@ const PrepopulatedEngine* const engines_TN[] = { // Turkey const PrepopulatedEngine* const engines_TR[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yandex_tr, &yahoo_tr, &bing, -@@ -803,7 +803,7 @@ const PrepopulatedEngine* const engines_TR[] = { +@@ -808,7 +808,7 @@ const PrepopulatedEngine* const engines_TR[] = { // Trinidad and Tobago const PrepopulatedEngine* const engines_TT[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -811,7 +811,7 @@ const PrepopulatedEngine* const engines_TT[] = { +@@ -816,7 +816,7 @@ const PrepopulatedEngine* const engines_TT[] = { // Taiwan const PrepopulatedEngine* const engines_TW[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_tw, &bing, &baidu, -@@ -819,7 +819,7 @@ const PrepopulatedEngine* const engines_TW[] = { +@@ -824,7 +824,7 @@ const PrepopulatedEngine* const engines_TW[] = { // Tanzania const PrepopulatedEngine* const engines_TZ[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &yandex_ru, -@@ -827,7 +827,7 @@ const PrepopulatedEngine* const engines_TZ[] = { +@@ -832,7 +832,7 @@ const PrepopulatedEngine* const engines_TZ[] = { // Ukraine const PrepopulatedEngine* const engines_UA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yandex_ua, &mail_ru, &bing, -@@ -835,7 +835,7 @@ const PrepopulatedEngine* const engines_UA[] = { +@@ -840,7 +840,7 @@ const PrepopulatedEngine* const engines_UA[] = { // United States const PrepopulatedEngine* const engines_US[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -843,7 +843,7 @@ const PrepopulatedEngine* const engines_US[] = { +@@ -848,7 +848,7 @@ const PrepopulatedEngine* const engines_US[] = { // Uruguay const PrepopulatedEngine* const engines_UY[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -851,7 +851,7 @@ const PrepopulatedEngine* const engines_UY[] = { +@@ -856,7 +856,7 @@ const PrepopulatedEngine* const engines_UY[] = { // Venezuela const PrepopulatedEngine* const engines_VE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &yahoo_ve, &bing, &duckduckgo, &duckduckgo_light, -@@ -859,7 +859,7 @@ const PrepopulatedEngine* const engines_VE[] = { +@@ -864,7 +864,7 @@ const PrepopulatedEngine* const engines_VE[] = { // Vietnam const PrepopulatedEngine* const engines_VN[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &coccoc, &bing, &yahoo_vn, -@@ -867,7 +867,7 @@ const PrepopulatedEngine* const engines_VN[] = { +@@ -872,7 +872,7 @@ const PrepopulatedEngine* const engines_VN[] = { // Yemen const PrepopulatedEngine* const engines_YE[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &baidu, -@@ -875,7 +875,7 @@ const PrepopulatedEngine* const engines_YE[] = { +@@ -880,7 +880,7 @@ const PrepopulatedEngine* const engines_YE[] = { // South Africa const PrepopulatedEngine* const engines_ZA[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &duckduckgo, &duckduckgo_light, -@@ -883,7 +883,7 @@ const PrepopulatedEngine* const engines_ZA[] = { +@@ -888,7 +888,7 @@ const PrepopulatedEngine* const engines_ZA[] = { // Zimbabwe const PrepopulatedEngine* const engines_ZW[] = { -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, +- &googleen, &google, ++ &googleen, &google, &qwant, &bing, &yahoo, &baidu, -@@ -899,7 +899,7 @@ const PrepopulatedEngine* const kAllEngines[] = { - &coccoc, - &daum, - &duckduckgo, &duckduckgo_light, -- &googleen, &google, &startpage, -+ &googleen, &google, &startpage, &qwant, - &mail_ru, - &naver, - &qwant, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-StartPage-search-engine.patch b/build/patches/Add-StartPage-search-engine.patch deleted file mode 100644 index 70f55d70..00000000 --- a/build/patches/Add-StartPage-search-engine.patch +++ /dev/null @@ -1,1020 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Oct 2017 21:24:05 +0200 -Subject: Add StartPage search engine - ---- - .../search_engines/prepopulated_engines.json | 10 + - components/search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 218 ++++++++++----------- - 3 files changed, 120 insertions(+), 109 deletions(-) - -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -193,6 +193,16 @@ - "id": 56 - }, - -+ "startpage": { -+ "name": "StartPage", -+ "keyword": "startpage.com", -+ "favicon_url": "https://www.startpage.com/graphics/favicon/sp-favicon-16x16.png", -+ "search_url": "https://www.startpage.com/do/dsearch?query={searchTerms}&cat=web&pl=opensearch", -+ "suggest_url": "https://www.startpage.com/cgi-bin/csuggest?query={searchTerms}&limit=10&format=json", -+ "type": "SEARCH_ENGINE_STARTPAGE", -+ "id": 33 -+ }, -+ - "yahoo": { - "name": "Yahoo!", - "keyword": "yahoo.com", -diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h ---- a/components/search_engines/search_engine_type.h -+++ b/components/search_engines/search_engine_type.h -@@ -67,6 +67,7 @@ enum SearchEngineType { - SEARCH_ENGINE_DUCKDUCKGO, - SEARCH_ENGINE_PARSIJOO, - SEARCH_ENGINE_QWANT, -+ SEARCH_ENGINE_STARTPAGE, - - SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. - }; -diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc ---- a/components/search_engines/template_url_prepopulate_data.cc -+++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -32,7 +32,7 @@ namespace { - - // Default (for countries with no better engine set) - const PrepopulatedEngine* const engines_default[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - }; -@@ -41,7 +41,7 @@ const PrepopulatedEngine* const engines_default[] = { - // Engine selection by country ------------------------------------------------ - // United Arab Emirates - const PrepopulatedEngine* const engines_AE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -49,7 +49,7 @@ const PrepopulatedEngine* const engines_AE[] = { - - // Albania - const PrepopulatedEngine* const engines_AL[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &ask, -@@ -57,7 +57,7 @@ const PrepopulatedEngine* const engines_AL[] = { - - // Argentina - const PrepopulatedEngine* const engines_AR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_ar, - &duckduckgo, -@@ -65,7 +65,7 @@ const PrepopulatedEngine* const engines_AR[] = { - - // Austria - const PrepopulatedEngine* const engines_AT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_at, - &duckduckgo, -@@ -73,7 +73,7 @@ const PrepopulatedEngine* const engines_AT[] = { - - // Australia - const PrepopulatedEngine* const engines_AU[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_au, - &duckduckgo, -@@ -81,7 +81,7 @@ const PrepopulatedEngine* const engines_AU[] = { - - // Bosnia and Herzegovina - const PrepopulatedEngine* const engines_BA[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &ask, -@@ -89,7 +89,7 @@ const PrepopulatedEngine* const engines_BA[] = { - - // Belgium - const PrepopulatedEngine* const engines_BE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -97,7 +97,7 @@ const PrepopulatedEngine* const engines_BE[] = { - - // Bulgaria - const PrepopulatedEngine* const engines_BG[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -105,7 +105,7 @@ const PrepopulatedEngine* const engines_BG[] = { - - // Bahrain - const PrepopulatedEngine* const engines_BH[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -113,7 +113,7 @@ const PrepopulatedEngine* const engines_BH[] = { - - // Burundi - const PrepopulatedEngine* const engines_BI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -121,7 +121,7 @@ const PrepopulatedEngine* const engines_BI[] = { - - // Brunei - const PrepopulatedEngine* const engines_BN[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -129,7 +129,7 @@ const PrepopulatedEngine* const engines_BN[] = { - - // Bolivia - const PrepopulatedEngine* const engines_BO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -137,7 +137,7 @@ const PrepopulatedEngine* const engines_BO[] = { - - // Brazil - const PrepopulatedEngine* const engines_BR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_br, - &duckduckgo, -@@ -145,7 +145,7 @@ const PrepopulatedEngine* const engines_BR[] = { - - // Belarus - const PrepopulatedEngine* const engines_BY[] = { -- &google, -+ &google, &startpage, - &yandex_by, - &mail_ru, - &bing, -@@ -153,7 +153,7 @@ const PrepopulatedEngine* const engines_BY[] = { - - // Belize - const PrepopulatedEngine* const engines_BZ[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -161,12 +161,12 @@ const PrepopulatedEngine* const engines_BZ[] = { - - // Canada - const PrepopulatedEngine* const engines_CA[] = { -- &google, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, -+ &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, - }; - - // Switzerland - const PrepopulatedEngine* const engines_CH[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo_ch, -@@ -174,7 +174,7 @@ const PrepopulatedEngine* const engines_CH[] = { - - // Chile - const PrepopulatedEngine* const engines_CL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_cl, - &duckduckgo, -@@ -182,12 +182,12 @@ const PrepopulatedEngine* const engines_CL[] = { - - // China - const PrepopulatedEngine* const engines_CN[] = { -- &baidu, &so_360, &google, &sogou, &bing, -+ &baidu, &so_360, &google, &startpage, &sogou, &bing, - }; - - // Colombia - const PrepopulatedEngine* const engines_CO[] = { -- &google, -+ &google, &startpage, - &yahoo_co, - &bing, - &duckduckgo, -@@ -195,7 +195,7 @@ const PrepopulatedEngine* const engines_CO[] = { - - // Costa Rica - const PrepopulatedEngine* const engines_CR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -203,7 +203,7 @@ const PrepopulatedEngine* const engines_CR[] = { - - // Czech Republic - const PrepopulatedEngine* const engines_CZ[] = { -- &google, -+ &google, &startpage, - &seznam, - &bing, - &yahoo, -@@ -211,7 +211,7 @@ const PrepopulatedEngine* const engines_CZ[] = { - - // Germany - const PrepopulatedEngine* const engines_DE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_de, - &duckduckgo, -@@ -219,7 +219,7 @@ const PrepopulatedEngine* const engines_DE[] = { - - // Denmark - const PrepopulatedEngine* const engines_DK[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_dk, - &duckduckgo, -@@ -227,7 +227,7 @@ const PrepopulatedEngine* const engines_DK[] = { - - // Dominican Republic - const PrepopulatedEngine* const engines_DO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -235,7 +235,7 @@ const PrepopulatedEngine* const engines_DO[] = { - - // Algeria - const PrepopulatedEngine* const engines_DZ[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -243,7 +243,7 @@ const PrepopulatedEngine* const engines_DZ[] = { - - // Ecuador - const PrepopulatedEngine* const engines_EC[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -251,7 +251,7 @@ const PrepopulatedEngine* const engines_EC[] = { - - // Estonia - const PrepopulatedEngine* const engines_EE[] = { -- &google, -+ &google, &startpage, - &bing, - &yandex_ru, - &neti, -@@ -259,7 +259,7 @@ const PrepopulatedEngine* const engines_EE[] = { - - // Egypt - const PrepopulatedEngine* const engines_EG[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -267,7 +267,7 @@ const PrepopulatedEngine* const engines_EG[] = { - - // Spain - const PrepopulatedEngine* const engines_ES[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_es, - &duckduckgo, -@@ -275,7 +275,7 @@ const PrepopulatedEngine* const engines_ES[] = { - - // Finland - const PrepopulatedEngine* const engines_FI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_fi, - &duckduckgo, -@@ -283,7 +283,7 @@ const PrepopulatedEngine* const engines_FI[] = { - - // Faroe Islands - const PrepopulatedEngine* const engines_FO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -291,7 +291,7 @@ const PrepopulatedEngine* const engines_FO[] = { - - // France - const PrepopulatedEngine* const engines_FR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_fr, - &qwant, -@@ -299,7 +299,7 @@ const PrepopulatedEngine* const engines_FR[] = { - - // United Kingdom - const PrepopulatedEngine* const engines_GB[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_uk, - &duckduckgo, -@@ -307,7 +307,7 @@ const PrepopulatedEngine* const engines_GB[] = { - - // Greece - const PrepopulatedEngine* const engines_GR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -315,7 +315,7 @@ const PrepopulatedEngine* const engines_GR[] = { - - // Guatemala - const PrepopulatedEngine* const engines_GT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -323,7 +323,7 @@ const PrepopulatedEngine* const engines_GT[] = { - - // Hong Kong - const PrepopulatedEngine* const engines_HK[] = { -- &google, -+ &google, &startpage, - &yahoo_hk, - &bing, - &baidu, -@@ -331,7 +331,7 @@ const PrepopulatedEngine* const engines_HK[] = { - - // Honduras - const PrepopulatedEngine* const engines_HN[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -339,7 +339,7 @@ const PrepopulatedEngine* const engines_HN[] = { - - // Croatia - const PrepopulatedEngine* const engines_HR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -347,7 +347,7 @@ const PrepopulatedEngine* const engines_HR[] = { - - // Hungary - const PrepopulatedEngine* const engines_HU[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -355,7 +355,7 @@ const PrepopulatedEngine* const engines_HU[] = { - - // Indonesia - const PrepopulatedEngine* const engines_ID[] = { -- &google, -+ &google, &startpage, - &yahoo_id, - &bing, - &duckduckgo, -@@ -363,7 +363,7 @@ const PrepopulatedEngine* const engines_ID[] = { - - // Ireland - const PrepopulatedEngine* const engines_IE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -371,7 +371,7 @@ const PrepopulatedEngine* const engines_IE[] = { - - // Israel - const PrepopulatedEngine* const engines_IL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -379,7 +379,7 @@ const PrepopulatedEngine* const engines_IL[] = { - - // India - const PrepopulatedEngine* const engines_IN[] = { -- &google, -+ &google, &startpage, - &yahoo_in, - &bing, - &duckduckgo, -@@ -387,7 +387,7 @@ const PrepopulatedEngine* const engines_IN[] = { - - // Iraq - const PrepopulatedEngine* const engines_IQ[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -395,14 +395,14 @@ const PrepopulatedEngine* const engines_IQ[] = { - - // Iran - const PrepopulatedEngine* const engines_IR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - }; - - // Iceland - const PrepopulatedEngine* const engines_IS[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -410,7 +410,7 @@ const PrepopulatedEngine* const engines_IS[] = { - - // Italy - const PrepopulatedEngine* const engines_IT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -418,7 +418,7 @@ const PrepopulatedEngine* const engines_IT[] = { - - // Jamaica - const PrepopulatedEngine* const engines_JM[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -426,7 +426,7 @@ const PrepopulatedEngine* const engines_JM[] = { - - // Jordan - const PrepopulatedEngine* const engines_JO[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -434,7 +434,7 @@ const PrepopulatedEngine* const engines_JO[] = { - - // Japan - const PrepopulatedEngine* const engines_JP[] = { -- &google, -+ &google, &startpage, - &yahoo_jp, - &bing, - &baidu, -@@ -442,7 +442,7 @@ const PrepopulatedEngine* const engines_JP[] = { - - // Kenya - const PrepopulatedEngine* const engines_KE[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -450,7 +450,7 @@ const PrepopulatedEngine* const engines_KE[] = { - - // South Korea - const PrepopulatedEngine* const engines_KR[] = { -- &google, -+ &google, &startpage, - &naver, - &daum, - &bing, -@@ -458,7 +458,7 @@ const PrepopulatedEngine* const engines_KR[] = { - - // Kuwait - const PrepopulatedEngine* const engines_KW[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -466,7 +466,7 @@ const PrepopulatedEngine* const engines_KW[] = { - - // Kazakhstan - const PrepopulatedEngine* const engines_KZ[] = { -- &google, -+ &google, &startpage, - &yandex_kz, - &mail_ru, - &bing, -@@ -474,7 +474,7 @@ const PrepopulatedEngine* const engines_KZ[] = { - - // Lebanon - const PrepopulatedEngine* const engines_LB[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -482,7 +482,7 @@ const PrepopulatedEngine* const engines_LB[] = { - - // Liechtenstein - const PrepopulatedEngine* const engines_LI[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo, -@@ -490,7 +490,7 @@ const PrepopulatedEngine* const engines_LI[] = { - - // Lithuania - const PrepopulatedEngine* const engines_LT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -498,7 +498,7 @@ const PrepopulatedEngine* const engines_LT[] = { - - // Luxembourg - const PrepopulatedEngine* const engines_LU[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo, -@@ -506,7 +506,7 @@ const PrepopulatedEngine* const engines_LU[] = { - - // Latvia - const PrepopulatedEngine* const engines_LV[] = { -- &google, -+ &google, &startpage, - &bing, - &yandex_ru, - &yahoo, -@@ -514,7 +514,7 @@ const PrepopulatedEngine* const engines_LV[] = { - - // Libya - const PrepopulatedEngine* const engines_LY[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_com, -@@ -522,7 +522,7 @@ const PrepopulatedEngine* const engines_LY[] = { - - // Morocco - const PrepopulatedEngine* const engines_MA[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -530,7 +530,7 @@ const PrepopulatedEngine* const engines_MA[] = { - - // Monaco - const PrepopulatedEngine* const engines_MC[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -538,7 +538,7 @@ const PrepopulatedEngine* const engines_MC[] = { - - // Moldova - const PrepopulatedEngine* const engines_MD[] = { -- &google, -+ &google, &startpage, - &yandex_ru, - &mail_ru, - &duckduckgo, -@@ -546,7 +546,7 @@ const PrepopulatedEngine* const engines_MD[] = { - - // Montenegro - const PrepopulatedEngine* const engines_ME[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -554,7 +554,7 @@ const PrepopulatedEngine* const engines_ME[] = { - - // Macedonia - const PrepopulatedEngine* const engines_MK[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -562,7 +562,7 @@ const PrepopulatedEngine* const engines_MK[] = { - - // Mexico - const PrepopulatedEngine* const engines_MX[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_mx, - &duckduckgo, -@@ -570,7 +570,7 @@ const PrepopulatedEngine* const engines_MX[] = { - - // Malaysia - const PrepopulatedEngine* const engines_MY[] = { -- &google, -+ &google, &startpage, - &yahoo_my, - &bing, - &baidu, -@@ -578,7 +578,7 @@ const PrepopulatedEngine* const engines_MY[] = { - - // Nicaragua - const PrepopulatedEngine* const engines_NI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -586,7 +586,7 @@ const PrepopulatedEngine* const engines_NI[] = { - - // Netherlands - const PrepopulatedEngine* const engines_NL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_nl, - &duckduckgo, -@@ -594,7 +594,7 @@ const PrepopulatedEngine* const engines_NL[] = { - - // Norway - const PrepopulatedEngine* const engines_NO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -602,7 +602,7 @@ const PrepopulatedEngine* const engines_NO[] = { - - // New Zealand - const PrepopulatedEngine* const engines_NZ[] = { -- &google, -+ &google, &startpage, - &bing, - &duckduckgo, - &yahoo_nz, -@@ -610,7 +610,7 @@ const PrepopulatedEngine* const engines_NZ[] = { - - // Oman - const PrepopulatedEngine* const engines_OM[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -618,7 +618,7 @@ const PrepopulatedEngine* const engines_OM[] = { - - // Panama - const PrepopulatedEngine* const engines_PA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -626,7 +626,7 @@ const PrepopulatedEngine* const engines_PA[] = { - - // Peru - const PrepopulatedEngine* const engines_PE[] = { -- &google, -+ &google, &startpage, - &yahoo_pe, - &bing, - &duckduckgo, -@@ -634,7 +634,7 @@ const PrepopulatedEngine* const engines_PE[] = { - - // Philippines - const PrepopulatedEngine* const engines_PH[] = { -- &google, -+ &google, &startpage, - &yahoo_ph, - &bing, - &duckduckgo, -@@ -642,7 +642,7 @@ const PrepopulatedEngine* const engines_PH[] = { - - // Pakistan - const PrepopulatedEngine* const engines_PK[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &baidu, -@@ -650,7 +650,7 @@ const PrepopulatedEngine* const engines_PK[] = { - - // Poland - const PrepopulatedEngine* const engines_PL[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -658,7 +658,7 @@ const PrepopulatedEngine* const engines_PL[] = { - - // Puerto Rico - const PrepopulatedEngine* const engines_PR[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -666,7 +666,7 @@ const PrepopulatedEngine* const engines_PR[] = { - - // Portugal - const PrepopulatedEngine* const engines_PT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -674,7 +674,7 @@ const PrepopulatedEngine* const engines_PT[] = { - - // Paraguay - const PrepopulatedEngine* const engines_PY[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -682,7 +682,7 @@ const PrepopulatedEngine* const engines_PY[] = { - - // Qatar - const PrepopulatedEngine* const engines_QA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &ask, -@@ -690,7 +690,7 @@ const PrepopulatedEngine* const engines_QA[] = { - - // Romania - const PrepopulatedEngine* const engines_RO[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -698,7 +698,7 @@ const PrepopulatedEngine* const engines_RO[] = { - - // Serbia - const PrepopulatedEngine* const engines_RS[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &duckduckgo, -@@ -707,14 +707,14 @@ const PrepopulatedEngine* const engines_RS[] = { - // Russia - const PrepopulatedEngine* const engines_RU[] = { - &yandex_ru, -- &google, -+ &google, &startpage, - &mail_ru, - &bing, - }; - - // Rwanda - const PrepopulatedEngine* const engines_RW[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -722,7 +722,7 @@ const PrepopulatedEngine* const engines_RW[] = { - - // Saudi Arabia - const PrepopulatedEngine* const engines_SA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_com, -@@ -730,7 +730,7 @@ const PrepopulatedEngine* const engines_SA[] = { - - // Sweden - const PrepopulatedEngine* const engines_SE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_se, - &duckduckgo, -@@ -738,7 +738,7 @@ const PrepopulatedEngine* const engines_SE[] = { - - // Singapore - const PrepopulatedEngine* const engines_SG[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo_sg, - &yandex_com, -@@ -746,7 +746,7 @@ const PrepopulatedEngine* const engines_SG[] = { - - // Slovenia - const PrepopulatedEngine* const engines_SI[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -754,7 +754,7 @@ const PrepopulatedEngine* const engines_SI[] = { - - // Slovakia - const PrepopulatedEngine* const engines_SK[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -762,7 +762,7 @@ const PrepopulatedEngine* const engines_SK[] = { - - // El Salvador - const PrepopulatedEngine* const engines_SV[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -770,7 +770,7 @@ const PrepopulatedEngine* const engines_SV[] = { - - // Syria - const PrepopulatedEngine* const engines_SY[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -778,7 +778,7 @@ const PrepopulatedEngine* const engines_SY[] = { - - // Thailand - const PrepopulatedEngine* const engines_TH[] = { -- &google, -+ &google, &startpage, - &yahoo_th, - &bing, - &ask, -@@ -786,7 +786,7 @@ const PrepopulatedEngine* const engines_TH[] = { - - // Tunisia - const PrepopulatedEngine* const engines_TN[] = { -- &google, -+ &google, &startpage, - &yahoo, - &bing, - &yandex_ru, -@@ -794,7 +794,7 @@ const PrepopulatedEngine* const engines_TN[] = { - - // Turkey - const PrepopulatedEngine* const engines_TR[] = { -- &google, -+ &google, &startpage, - &yandex_tr, - &yahoo_tr, - &bing, -@@ -802,7 +802,7 @@ const PrepopulatedEngine* const engines_TR[] = { - - // Trinidad and Tobago - const PrepopulatedEngine* const engines_TT[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -810,7 +810,7 @@ const PrepopulatedEngine* const engines_TT[] = { - - // Taiwan - const PrepopulatedEngine* const engines_TW[] = { -- &google, -+ &google, &startpage, - &yahoo_tw, - &bing, - &baidu, -@@ -818,7 +818,7 @@ const PrepopulatedEngine* const engines_TW[] = { - - // Tanzania - const PrepopulatedEngine* const engines_TZ[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &yandex_ru, -@@ -826,7 +826,7 @@ const PrepopulatedEngine* const engines_TZ[] = { - - // Ukraine - const PrepopulatedEngine* const engines_UA[] = { -- &google, -+ &google, &startpage, - &yandex_ua, - &mail_ru, - &bing, -@@ -834,7 +834,7 @@ const PrepopulatedEngine* const engines_UA[] = { - - // United States - const PrepopulatedEngine* const engines_US[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -842,7 +842,7 @@ const PrepopulatedEngine* const engines_US[] = { - - // Uruguay - const PrepopulatedEngine* const engines_UY[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -850,7 +850,7 @@ const PrepopulatedEngine* const engines_UY[] = { - - // Venezuela - const PrepopulatedEngine* const engines_VE[] = { -- &google, -+ &google, &startpage, - &yahoo_ve, - &bing, - &duckduckgo, -@@ -858,7 +858,7 @@ const PrepopulatedEngine* const engines_VE[] = { - - // Vietnam - const PrepopulatedEngine* const engines_VN[] = { -- &google, -+ &google, &startpage, - &coccoc, - &bing, - &yahoo_vn, -@@ -866,7 +866,7 @@ const PrepopulatedEngine* const engines_VN[] = { - - // Yemen - const PrepopulatedEngine* const engines_YE[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &baidu, -@@ -874,7 +874,7 @@ const PrepopulatedEngine* const engines_YE[] = { - - // South Africa - const PrepopulatedEngine* const engines_ZA[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &duckduckgo, -@@ -882,7 +882,7 @@ const PrepopulatedEngine* const engines_ZA[] = { - - // Zimbabwe - const PrepopulatedEngine* const engines_ZW[] = { -- &google, -+ &google, &startpage, - &bing, - &yahoo, - &baidu, -@@ -898,7 +898,7 @@ const PrepopulatedEngine* const kAllEngines[] = { - &coccoc, - &daum, - &duckduckgo, -- &google, -+ &google, &startpage, - &mail_ru, - &naver, - &qwant, --- -2.11.0 - diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index e4e4ecb9..9c3ba7ee 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -7,26 +7,26 @@ Allows to use a PAC script URL, automatic configuration and explicit proxy settings. Offer auto-complete for the proxy page URL. --- - chrome/android/java/res/values/values.xml | 3 + - .../android/java/res/xml/privacy_preferences.xml | 4 + - .../chrome_autocomplete_provider_client.cc | 2 + - chrome/browser/browser_resources.grd | 6 + - .../prefs/chrome_command_line_pref_store.cc | 2 +- - chrome/browser/resources/proxy_config.css | 61 ++++ - chrome/browser/resources/proxy_config.html | 78 ++++ - chrome/browser/resources/proxy_config.js | 252 +++++++++++++ - chrome/browser/ui/BUILD.gn | 2 + - .../ui/webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 397 +++++++++++++++++++++ - chrome/browser/ui/webui/proxy_config_ui.h | 33 ++ - chrome/common/webui_url_constants.cc | 4 + - chrome/common/webui_url_constants.h | 2 + - .../policy/core/browser/proxy_policy_handler.cc | 2 +- - components/proxy_config/proxy_config_dictionary.cc | 22 +- - components/proxy_config/proxy_config_dictionary.h | 6 +- - net/proxy_resolution/proxy_config.cc | 45 +++ - net/proxy_resolution/proxy_config.h | 3 + - 19 files changed, 915 insertions(+), 12 deletions(-) + chrome/android/java/res/values/values.xml | 3 + + .../java/res/xml/privacy_preferences.xml | 4 + + .../chrome_autocomplete_provider_client.cc | 2 + + chrome/browser/browser_resources.grd | 6 + + .../prefs/chrome_command_line_pref_store.cc | 2 +- + chrome/browser/resources/proxy_config.css | 61 +++ + chrome/browser/resources/proxy_config.html | 78 ++++ + chrome/browser/resources/proxy_config.js | 252 +++++++++++ + chrome/browser/ui/BUILD.gn | 2 + + .../webui/chrome_web_ui_controller_factory.cc | 3 + + chrome/browser/ui/webui/proxy_config_ui.cc | 395 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.h | 33 ++ + chrome/common/webui_url_constants.cc | 4 + + chrome/common/webui_url_constants.h | 2 + + .../core/browser/proxy_policy_handler.cc | 2 +- + .../proxy_config/proxy_config_dictionary.cc | 22 +- + .../proxy_config/proxy_config_dictionary.h | 6 +- + net/proxy_resolution/proxy_config.cc | 45 ++ + net/proxy_resolution/proxy_config.h | 3 + + 19 files changed, 913 insertions(+), 12 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -36,7 +36,7 @@ Offer auto-complete for the proxy page URL. diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -76,6 +76,9 @@ +@@ -78,6 +78,9 @@ 1 2 @@ -63,15 +63,15 @@ 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 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -257,6 +257,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -256,6 +256,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { + std::vector builtins_to_provide; builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUIFlagsURL)); - builtins_to_provide.push_back( -+ base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL)); + builtins_to_provide.push_back( ++ base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL)); + builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL)); #if !defined(OS_ANDROID) - builtins_to_provide.push_back( diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd @@ -91,7 +91,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 --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -153,7 +153,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -152,7 +152,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { SetValue( proxy_config::prefs::kProxy, std::make_unique(ProxyConfigDictionary::CreateFixedServers( @@ -509,7 +509,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -275,6 +275,8 @@ jumbo_split_static_library("ui") { +@@ -263,6 +263,8 @@ jumbo_static_library("ui") { "webui/metrics_handler.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -529,7 +529,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" #include "chrome/browser/ui/webui/settings/settings_ui.h" #include "chrome/browser/ui/webui/settings_utils.h" -@@ -413,6 +414,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -376,6 +377,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -542,7 +542,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,397 @@ +@@ -0,0 +1,395 @@ +/* + This file is part of Bromite. + @@ -811,9 +811,7 @@ new file mode 100644 +void ProxyConfigMessageHandler::OnApply(const base::ListValue* list) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + -+ const base::Value::ListStorage& params = list->GetList(); -+ -+ if ((params.size() != 1) || !params[0].is_dict()) { ++ if ((list->GetList().size() != 1) || !list->GetList()[0].is_dict()) { + return; + } + @@ -981,7 +979,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -189,6 +189,8 @@ const char kChromeUINativePhysicalWebDiagnosticsURL[] = +@@ -182,6 +182,8 @@ const char kChromeUINativePhysicalWebDiagnosticsURL[] = const char kChromeUINativeScheme[] = "chrome-native"; const char kChromeUIOfflineInternalsHost[] = "offline-internals"; const char kChromeUIPhysicalWebDiagnosticsHost[] = "physical-web-diagnostics"; @@ -990,7 +988,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUISnippetsInternalsHost[] = "snippets-internals"; const char kChromeUIWebApksHost[] = "webapks"; #endif -@@ -456,6 +458,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { +@@ -461,6 +463,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { kResetSubPage, kSmartLockSettingsSubPage, kSmbSharesSubPage, @@ -998,7 +996,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kStorageSubPage, kStylusSubPage, kSwitchAccessSubPage, -@@ -556,6 +559,7 @@ const char* const kChromeHostURLs[] = { +@@ -561,6 +564,7 @@ const char* const kChromeHostURLs[] = { #if !defined(OS_ANDROID) #if !defined(OS_CHROMEOS) kChromeUIAppLauncherPageHost, @@ -1009,7 +1007,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 --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -110,6 +110,8 @@ extern const char kChromeUIMemoryInternalsHost[]; +@@ -105,6 +105,8 @@ extern const char kChromeUIMemoryInternalsHost[]; extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; @@ -1201,5 +1199,5 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co // Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp, // &fallback_proxies}, or NULL if there is no proxy to use. -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 29701242..281198b0 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -5,15 +5,15 @@ Subject: Add an always-incognito mode More specifically, add a preference that causes all new tabs and all clicked links to launch as incognito. --- - chrome/android/chrome_java_sources.gni | 1 + - .../android/java/res/xml/privacy_preferences.xml | 5 ++ - .../browser/AlwaysIncognitoLinkInterceptor.java | 73 ++++++++++++++++++++++ - .../chromium/chrome/browser/ChromeActivity.java | 5 ++ - .../chrome/browser/appmenu/AppMenuHandlerImpl.java | 11 ++++ - .../contextmenu/ChromeContextMenuPopulator.java | 9 ++- - .../chrome/browser/tabmodel/ChromeTabCreator.java | 24 ++++++- - .../java/strings/android_chrome_strings.grd | 8 +++ - 8 files changed, 134 insertions(+), 2 deletions(-) + chrome/android/chrome_java_sources.gni | 1 + + .../java/res/xml/privacy_preferences.xml | 5 ++ + .../AlwaysIncognitoLinkInterceptor.java | 73 +++++++++++++++++++ + .../chrome/browser/ChromeActivity.java | 5 ++ + .../browser/appmenu/AppMenuHandlerImpl.java | 10 +++ + .../ChromeContextMenuPopulator.java | 9 ++- + .../browser/tabmodel/ChromeTabCreator.java | 20 ++++- + .../java/strings/android_chrome_strings.grd | 8 ++ + 8 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -26,7 +26,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java + "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java", "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", - "java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java", + "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java", 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 +++ b/chrome/android/java/res/xml/privacy_preferences.xml @@ -123,7 +123,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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -225,6 +225,8 @@ public abstract class ChromeActivity +@@ -228,6 +228,8 @@ public abstract class ChromeActivity private static final int RECORD_MULTI_WINDOW_SCREEN_WIDTH_DELAY_MS = 5000; @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. /** * Timeout in ms for reading PartnerBrowserCustomizations provider. */ -@@ -1650,6 +1652,9 @@ public abstract class ChromeActivity +@@ -1706,6 +1708,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -145,33 +145,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java -@@ -20,6 +20,7 @@ import android.view.WindowManager; - import android.widget.PopupMenu; +@@ -20,6 +20,7 @@ import android.widget.PopupMenu; import org.chromium.base.Callback; -+import org.chromium.base.ContextUtils; - import org.chromium.base.ObservableSupplier; import org.chromium.base.VisibleForTesting; ++import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordUserAction; -@@ -57,6 +58,8 @@ class AppMenuHandlerImpl - private @Nullable OverviewModeBehavior mOverviewModeBehavior; - private OverviewModeBehavior.OverviewModeObserver mOverviewModeObserver; + import org.chromium.chrome.R; + import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; +@@ -58,6 +59,8 @@ class AppMenuHandlerImpl + */ + private Integer mHighlightMenuId; + private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; + /** - * The resource id of the menu item to highlight when the menu next opens. A value of - * {@code null} means no item will be highlighted. This value will be cleared after the menu is -@@ -267,6 +270,14 @@ class AppMenuHandlerImpl + * Whether the highlighted item should use a circle highlight or not. + */ +@@ -208,6 +211,13 @@ class AppMenuHandlerImpl if (mDelegate.shouldShowHeader(appRect.height())) { headerResourceId = mDelegate.getHeaderResourceId(); } + + if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { + final MenuItem newTabOption = mAppMenu.getMenu().findItem(R.id.new_tab_menu_id); -+ if (newTabOption != null) { ++ if (newTabOption != null) + newTabOption.setVisible(false); -+ } + } + mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y, @@ -180,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -15,6 +15,7 @@ import android.webkit.URLUtil; +@@ -16,6 +16,7 @@ import androidx.annotation.IntDef; import org.chromium.base.library_loader.LibraryProcessType; import org.chromium.base.metrics.RecordHistogram; @@ -188,15 +187,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabPanel; -@@ -46,6 +47,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -47,6 +48,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { private static final String TAG = "CCMenuPopulator"; private final ContextMenuItemDelegate mDelegate; private final @ContextMenuMode int mMode; + private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; + private boolean mEnableLensWithSearchByImageText; /** - * Defines the Groups of each Context Menu Item -@@ -298,7 +300,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -301,7 +303,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL && !isEmptyUrl(params.getUrl()) && UrlUtilities.isAcceptedScheme(params.getUrl())) { @@ -204,18 +203,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr + if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false) + && !mDelegate.isIncognito()) { + // disallow open in new tab -+ } else { ++ } else + linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB)); -+ } ++ if (!mDelegate.isIncognito() && mDelegate.isIncognitoSupported()) { linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_INCOGNITO_TAB)); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -8,8 +8,10 @@ import android.content.Intent; - import android.support.annotation.Nullable; - import android.text.TextUtils; +@@ -9,8 +9,10 @@ import android.text.TextUtils; + + import androidx.annotation.Nullable; +import org.chromium.base.ContextUtils; import org.chromium.base.SysUtils; @@ -224,7 +223,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.ServiceTabLauncher; -@@ -17,6 +19,7 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; +@@ -19,6 +21,7 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabAssociatedApp; import org.chromium.chrome.browser.tab.TabBuilder; @@ -232,50 +231,47 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.tab.TabDelegateFactory; import org.chromium.chrome.browser.tab.TabParentIntent; import org.chromium.chrome.browser.tab.TabRedirectHandler; -@@ -37,6 +40,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - +@@ -40,6 +43,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { private final ChromeActivity mActivity; + private final StartupTabPreloader mStartupTabPreloader; private final boolean mIncognito; + private final TabObserver mExtraLogic; private WindowAndroid mNativeWindow; private TabModel mTabModel; -@@ -47,6 +51,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - mActivity = activity; +@@ -51,6 +55,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + mStartupTabPreloader = startupTabPreloader; mNativeWindow = nativeWindow; mIncognito = incognito; -+ if (!mIncognito) { ++ if (!mIncognito) + mExtraLogic = new AlwaysIncognitoLinkInterceptor(ContextUtils.getAppSharedPreferences()); -+ } else { ++ else + mExtraLogic = null; -+ } } @Override -@@ -171,6 +180,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { +@@ -186,6 +194,9 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { tab.getWebContents()); } -+ if (mExtraLogic != null) { ++ if (mExtraLogic != null) + tab.addObserver(mExtraLogic); -+ } + mTabModel.addTab(tab, position, type); return tab; } finally { -@@ -199,6 +212,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - .setWindow(mNativeWindow) - .setLaunchType(type) +@@ -217,6 +228,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + .setDelegateFactory(delegateFactory) + .setInitiallyHidden(!openInForeground) .build(); + -+ if (mExtraLogic != null) { ++ if (mExtraLogic != null) + tab.addObserver(mExtraLogic); -+ } + - tab.initialize(webContents, delegateFactory, !openInForeground, null, false); mTabModel.addTab(tab, position, type); return true; -@@ -242,7 +260,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + } +@@ -259,7 +274,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { */ public Tab launchUrlFromExternalApp(String url, String referer, String headers, String appId, boolean forceNewTab, Intent intent, long intentTimestamp) { @@ -283,14 +279,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName()); // If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is -@@ -307,6 +324,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { - state.isIncognito()); - tab.initialize(null, createDefaultTabDelegateFactory(), !selectTab, state, false); +@@ -326,6 +340,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator { + .setTabState(state) + .build(); assert state.isIncognito() == mIncognito; + -+ if (mExtraLogic != null) { ++ if (mExtraLogic != null) + tab.addObserver(mExtraLogic); -+ } + mTabModel.addTab(tab, index, TabLaunchType.FROM_RESTORE); return tab; @@ -298,7 +293,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -689,6 +689,14 @@ CHAR-LIMIT guidelines: +@@ -669,6 +669,14 @@ CHAR-LIMIT guidelines: Search and site suggestions disabled @@ -314,5 +309,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Themes -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 0fddf026..ee468ea0 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -6,29 +6,29 @@ Add bookmark import/export actions in bookmarks activity and page Reduce permissions needed for bookmarks import/export Completely remove contacts picker permission from the file dialog --- - chrome/android/java/AndroidManifest.xml | 1 - - .../java/res/menu/bookmark_action_bar_menu.xml | 14 ++ - .../browser/bookmarks/BookmarkActionBar.java | 12 ++ - .../chrome/browser/bookmarks/BookmarkActivity.java | 15 ++ - .../chrome/browser/bookmarks/BookmarkBridge.java | 46 +++++ - .../chrome/browser/bookmarks/BookmarkDelegate.java | 10 + - .../chrome/browser/bookmarks/BookmarkManager.java | 20 ++ - .../chrome/browser/bookmarks/BookmarkPage.java | 1 + - .../java/strings/android_chrome_strings.grd | 6 + - chrome/browser/BUILD.gn | 8 +- - .../browser/android/bookmarks/bookmark_bridge.cc | 215 +++++++++++++++++++++ - chrome/browser/android/bookmarks/bookmark_bridge.h | 20 +- - chrome/browser/importer/profile_writer.cc | 12 ++ - chrome/browser/importer/profile_writer.h | 6 + - chrome/common/BUILD.gn | 3 + - chrome/utility/BUILD.gn | 7 +- - chrome/utility/importer/bookmark_html_reader.cc | 27 ++- - chrome/utility/importer/bookmark_html_reader.h | 9 + - .../src/org/chromium/ui/base/SelectFileDialog.java | 18 +- - ui/shell_dialogs/select_file_dialog.h | 2 + - ui/shell_dialogs/select_file_dialog_android.cc | 6 + - ui/shell_dialogs/select_file_dialog_android.h | 2 + - 22 files changed, 446 insertions(+), 14 deletions(-) + chrome/android/java/AndroidManifest.xml | 1 - + .../res/menu/bookmark_action_bar_menu.xml | 14 ++ + .../browser/bookmarks/BookmarkActionBar.java | 12 + + .../browser/bookmarks/BookmarkActivity.java | 15 ++ + .../browser/bookmarks/BookmarkBridge.java | 47 ++++ + .../browser/bookmarks/BookmarkDelegate.java | 10 + + .../browser/bookmarks/BookmarkManager.java | 20 ++ + .../browser/bookmarks/BookmarkPage.java | 1 + + .../java/strings/android_chrome_strings.grd | 6 + + chrome/browser/BUILD.gn | 8 +- + .../android/bookmarks/bookmark_bridge.cc | 215 ++++++++++++++++++ + .../android/bookmarks/bookmark_bridge.h | 20 +- + chrome/browser/importer/profile_writer.cc | 12 + + chrome/browser/importer/profile_writer.h | 6 + + chrome/common/BUILD.gn | 3 + + chrome/utility/BUILD.gn | 7 +- + .../utility/importer/bookmark_html_reader.cc | 27 ++- + .../utility/importer/bookmark_html_reader.h | 9 + + .../chromium/ui/base/SelectFileDialog.java | 18 +- + ui/shell_dialogs/select_file_dialog.h | 2 + + .../select_file_dialog_android.cc | 6 + + ui/shell_dialogs/select_file_dialog_android.h | 2 + + 22 files changed, 447 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -39,15 +39,16 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - - {% set notouch_build = notouch_build|default(0) %} + + diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml --- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml +++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml -@@ -22,6 +22,20 @@ +@@ -21,6 +21,20 @@ + android:visible="false" app:showAsAction="ifRoom" app:iconTint="@color/standard_mode_tint" /> - -+ +@@ -82,6 +82,12 @@ public class BookmarkActionBar extends SelectableListToolbar } else if (menuItem.getItemId() == R.id.search_menu_id) { mDelegate.openSearchUI(); return true; @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } SelectionDelegate selectionDelegate = mDelegate.getSelectionDelegate(); -@@ -141,6 +147,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -133,6 +139,8 @@ public class BookmarkActionBar extends SelectableListToolbar void showLoadingUi() { setTitle(null); setNavigationButton(NAVIGATION_BUTTON_NONE); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -150,6 +158,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -142,6 +150,8 @@ public class BookmarkActionBar extends SelectableListToolbar super.showNormalView(); if (mDelegate == null) { @@ -99,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -182,6 +192,8 @@ public class BookmarkActionBar extends SelectableListToolbar +@@ -172,6 +182,8 @@ public class BookmarkActionBar extends SelectableListToolbar public void onFolderStateSet(BookmarkId folder) { mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); @@ -166,29 +166,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm +import android.net.Uri; import android.os.SystemClock; +import android.provider.Browser; + import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Pair; +@@ -23,6 +27,11 @@ import org.chromium.components.bookmarks.BookmarkType; + import org.chromium.components.url_formatter.UrlFormatter; + import org.chromium.content_public.browser.WebContents; -@@ -14,11 +18,15 @@ import org.chromium.base.VisibleForTesting; - import org.chromium.base.annotations.CalledByNative; - import org.chromium.base.annotations.NativeMethods; - import org.chromium.base.metrics.RecordHistogram; +import org.chromium.chrome.browser.document.ChromeLauncherActivity; +import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.bookmarks.BookmarkType; - import org.chromium.components.url_formatter.UrlFormatter; +import org.chromium.ui.base.PageTransition; +import org.chromium.ui.base.WindowAndroid; - ++ import java.util.ArrayList; import java.util.List; -@@ -525,6 +533,24 @@ public class BookmarkBridge { + +@@ -553,6 +562,24 @@ public class BookmarkBridge { + mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } - /** ++ /** + * Import bookmarks from a selected file. + * @param window The current window of the bookmarks activity or page. + */ @@ -206,11 +203,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + BookmarkBridgeJni.get().exportBookmarks(mNativeBookmarkBridge, BookmarkBridge.this); + } + -+ /** + /** * Synchronously gets a list of bookmarks that match the specified search query. * @param query Keyword used for searching bookmarks. - * @param maxNumberOfResult Maximum number of result to fetch. -@@ -877,6 +903,24 @@ public class BookmarkBridge { +@@ -914,6 +941,24 @@ public class BookmarkBridge { depthList.add(depth); } @@ -235,7 +231,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList>(); for (int i = 0; i < left.length; i++) { -@@ -943,6 +987,8 @@ public class BookmarkBridge { +@@ -982,6 +1027,8 @@ public class BookmarkBridge { int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, boolean getFolders, boolean getBookmarks, List bookmarksList); @@ -247,10 +243,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java -@@ -70,6 +70,16 @@ interface BookmarkDelegate { +@@ -69,6 +69,16 @@ interface BookmarkDelegate { + */ void openSearchUI(); - /** ++ /** + * Imports bookmarks from user-selected file. + */ + void importBookmarks(); @@ -260,14 +257,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + */ + void exportBookmarks(); + -+ /** + /** * Dismisses the search UI. */ - void closeSearchUI(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -22,6 +22,7 @@ import org.chromium.chrome.R; +@@ -23,6 +23,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem; import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserver; @@ -275,7 +271,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.chrome.browser.favicon.LargeIconBridge; import org.chromium.chrome.browser.gesturenav.HistoryNavigationDelegate; import org.chromium.chrome.browser.native_page.BasicNativePage; -@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout; +@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout; import org.chromium.chrome.browser.widget.selection.SelectableListToolbar.SearchDelegate; import org.chromium.chrome.browser.widget.selection.SelectionDelegate; import org.chromium.components.bookmarks.BookmarkId; @@ -283,7 +279,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import java.util.Stack; -@@ -58,6 +60,7 @@ public class BookmarkManager +@@ -59,6 +61,7 @@ public class BookmarkManager private Activity mActivity; private ViewGroup mMainView; private BookmarkModel mBookmarkModel; @@ -291,24 +287,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private BookmarkUndoController mUndoController; private final ObserverList mUIObservers = new ObserverList<>(); private BasicNativePage mNativePage; -@@ -362,6 +365,13 @@ public class BookmarkManager +@@ -374,6 +377,13 @@ public class BookmarkManager + mSelectableListLayout.setHistoryNavigationDelegate(delegate); } - /** ++ /** + * Sets the Android window that is used by further intents created by the bookmark activity. + */ + public void setWindow(ActivityWindowAndroid window) { + mWindowAndroid = window; + } + -+ /** + /** * @return Current URL representing the UI state of bookmark manager. If no state has been shown * yet in this session, on phone return last used state stored in preference; on tablet - * return the url previously set by {@link #updateForUrl(String)}. -@@ -523,6 +533,16 @@ public class BookmarkManager +@@ -547,6 +557,16 @@ public class BookmarkManager + } } - @Override ++ @Override + public void importBookmarks() { + mBookmarkModel.importBookmarks(mWindowAndroid); + } @@ -318,10 +315,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + mBookmarkModel.exportBookmarks(); + } + -+ @Override + @Override public void openSearchUI() { setState(BookmarkUIState.createSearchState()); - mSelectableListLayout.onStartSearch(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java @@ -336,7 +332,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -236,6 +236,12 @@ CHAR-LIMIT guidelines: +@@ -230,6 +230,12 @@ CHAR-LIMIT guidelines: Search @@ -352,7 +348,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -174,6 +174,10 @@ jumbo_split_static_library("browser") { +@@ -163,6 +163,10 @@ jumbo_static_library("browser") { "bitmap_fetcher/bitmap_fetcher_service.h", "bitmap_fetcher/bitmap_fetcher_service_factory.cc", "bitmap_fetcher/bitmap_fetcher_service_factory.h", @@ -363,7 +359,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", "bookmarks/chrome_bookmark_client.cc", -@@ -3007,8 +3011,6 @@ jumbo_split_static_library("browser") { +@@ -2953,8 +2957,6 @@ jumbo_static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -372,7 +368,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "certificate_viewer.h", "chrome_browser_field_trials_desktop.cc", "chrome_browser_field_trials_desktop.h", -@@ -3115,8 +3117,6 @@ jumbo_split_static_library("browser") { +@@ -3059,8 +3061,6 @@ jumbo_static_library("browser") { "importer/importer_uma.h", "importer/in_process_importer_bridge.cc", "importer/in_process_importer_bridge.h", @@ -384,9 +380,9 @@ 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 --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc -@@ -41,6 +41,21 @@ - #include "components/undo/undo_manager.h" +@@ -43,6 +43,21 @@ #include "content/public/browser/browser_thread.h" + #include "content/public/browser/web_contents.h" +#include "base/android/content_uri_utils.h" +#include "base/android/path_utils.h" @@ -406,7 +402,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse using base::android::AttachCurrentThread; using base::android::ConvertUTF8ToJavaString; using base::android::ConvertUTF16ToJavaString; -@@ -58,6 +73,56 @@ using bookmarks::BookmarkPermanentNode; +@@ -60,6 +75,56 @@ using bookmarks::BookmarkPermanentNode; using bookmarks::BookmarkType; using content::BrowserThread; @@ -462,8 +458,8 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse + namespace { - class BookmarkTitleComparer { -@@ -134,6 +199,10 @@ BookmarkBridge::~BookmarkBridge() { + const int kInvalidId = -1; +@@ -138,6 +203,10 @@ BookmarkBridge::~BookmarkBridge() { bookmark_model_->RemoveObserver(this); if (partner_bookmarks_shim_) partner_bookmarks_shim_->RemoveObserver(this); @@ -474,7 +470,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef&) { -@@ -475,6 +544,152 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -524,6 +593,152 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -662,7 +658,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting( -@@ -129,6 +138,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -133,6 +142,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, jlong id, jint type); @@ -676,7 +672,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser void SetBookmarkTitle(JNIEnv* env, const base::android::JavaParamRef& obj, jlong id, -@@ -274,12 +290,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -278,12 +294,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, void ShimBeingDeleted(PartnerBookmarksShim* shim) override; Profile* profile_; @@ -752,7 +748,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 --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -440,6 +440,9 @@ static_library("common") { +@@ -445,6 +445,9 @@ static_library("common") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -774,7 +770,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/edge_database_reader_win.cc", -@@ -160,6 +158,11 @@ static_library("utility") { +@@ -164,6 +162,11 @@ static_library("utility") { } } @@ -895,7 +891,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 --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -33,6 +33,7 @@ import org.chromium.base.task.PostTask; +@@ -34,6 +34,7 @@ import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.ui.PhotoPickerListener; import org.chromium.ui.R; @@ -903,7 +899,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui import org.chromium.ui.UiUtils; import java.io.File; -@@ -52,6 +53,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -53,6 +54,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String IMAGE_TYPE = "image/"; private static final String VIDEO_TYPE = "video/"; private static final String AUDIO_TYPE = "audio/"; @@ -911,7 +907,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_VIDEO_TYPES = VIDEO_TYPE + "*"; private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*"; -@@ -130,6 +132,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -131,6 +133,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mFileTypes = fileTypes; } @@ -923,7 +919,7 @@ 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. * @param fileTypes MIME types requested (i.e. "image/*") -@@ -157,7 +164,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -158,7 +165,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -932,7 +928,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission); } else { if (((mSupportsImageCapture && shouldShowImageTypes()) -@@ -185,7 +192,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -186,7 +193,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } // TODO(finnur): Remove once we figure out the cause of crbug.com/950024. @@ -941,7 +937,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format("Permissions arrays misaligned: %d != %d", -@@ -199,7 +206,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -200,7 +207,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -950,7 +946,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui onFileNotSelected(); return; } -@@ -348,6 +355,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -349,6 +356,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType); } @@ -958,7 +954,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -625,6 +633,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -626,6 +634,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(specificType) > 0; } @@ -1010,5 +1006,5 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/se ~SelectFileDialogImpl() override; -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 59f2ba55..c359fcb0 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -3,12 +3,12 @@ Date: Wed, 29 Aug 2018 11:03:44 +0200 Subject: Add custom tab intents privacy option --- - chrome/android/java/res/values/values.xml | 3 +++ - chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../org/chromium/chrome/browser/LaunchIntentDispatcher.java | 2 ++ - .../browser/preferences/privacy/PrivacyPreferences.java | 11 +++++++++++ - chrome/android/java/strings/android_chrome_strings.grd | 7 +++++++ - 5 files changed, 28 insertions(+) + chrome/android/java/res/values/values.xml | 3 +++ + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chrome/browser/LaunchIntentDispatcher.java | 3 +++ + .../preferences/privacy/PrivacyPreferences.java | 11 +++++++++++ + .../android/java/strings/android_chrome_strings.grd | 7 +++++++ + 5 files changed, 29 insertions(+) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml @@ -41,22 +41,23 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -43,6 +43,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; - import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; +@@ -43,6 +43,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; - import org.chromium.chrome.browser.profiles.Profile; -+import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferences; import org.chromium.chrome.browser.searchwidget.SearchActivity; import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.util.FeatureUtilities; -@@ -273,6 +274,7 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega ++import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferences; + import org.chromium.chrome.browser.util.IntentUtils; + import org.chromium.chrome.browser.util.UrlConstants; + import org.chromium.chrome.browser.vr.VrModuleProvider; +@@ -251,6 +252,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; -+ if (!ContextUtils.getAppSharedPreferences().getBoolean(PrivacyPreferences.PREF_ALLOW_CUSTOM_TAB_INTENTS, false)) return false; - // CCT is disabled in noTouch mode except for some Chrome-internal exceptions. - if (FeatureUtilities.isNoTouchModeEnabled() - && !IntentHandler.wasIntentSenderChrome(intent)) { ++ if (!ContextUtils.getAppSharedPreferences().getBoolean(PrivacyPreferences.PREF_ALLOW_CUSTOM_TAB_INTENTS, false)) ++ return false; + if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent) + || !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) { + return false; 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java @@ -80,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } else if (PREF_CONTEXTUAL_SEARCH.equals(key)) { PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false"); } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) { -@@ -141,6 +147,11 @@ public class PrivacyPreferences +@@ -140,6 +146,11 @@ public class PrivacyPreferences prefServiceBridge.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -91,13 +92,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK); if (doNotTrackPref != null) { - doNotTrackPref.setSummary(prefServiceBridge.isDoNotTrackEnabled() ? textOn : textOff); + doNotTrackPref.setSummary( 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 +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -4020,6 +4020,13 @@ The site does NOT gain access to the camera. The camera images are only visible - - Close other incognito tabs +@@ -3987,6 +3987,13 @@ The site does NOT gain access to the camera. The camera images are only visible + 'Installing Extra ICU for Chrome…')."> + Extra ICU + + @@ -107,8 +108,8 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and + Allow applications to open custom tab intents, similar to webview. + - - + + -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index b4d6dc11..7f14d49a 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -4,10 +4,10 @@ Subject: Add exit menu item Corrected Exit functionality --- - chrome/android/java/res/menu/main_menu.xml | 2 ++ - .../java/src/org/chromium/chrome/browser/ChromeActivity.java | 2 ++ - .../org/chromium/chrome/browser/init/ChromeLifetimeController.java | 6 +++++- - chrome/android/java/strings/android_chrome_strings.grd | 3 +++ + chrome/android/java/res/menu/main_menu.xml | 2 ++ + .../src/org/chromium/chrome/browser/ChromeActivity.java | 2 ++ + .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++- + chrome/android/java/strings/android_chrome_strings.grd | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml @@ -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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2137,6 +2137,8 @@ public abstract class ChromeActivity +@@ -2204,6 +2204,8 @@ public abstract class ChromeActivity new AddToHomescreenManager(this, currentTab); addToHomescreenManager.start(); RecordUserAction.record("MobileMenuAddToHomescreen"); @@ -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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2947,6 +2947,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Settings @@ -64,5 +64,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Close all tabs -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 1507a333..9708f382 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -6,20 +6,20 @@ With the introduction of this flag it is possible to increase the maximum allowed connections per host; this can however be detrimental to devices with limited CPU/memory resources and it is disabled by default. --- - chrome/browser/about_flags.cc | 8 ++++++++ - chrome/browser/flag_descriptions.cc | 4 ++++ - chrome/browser/flag_descriptions.h | 3 +++ - .../common/network_features.cc | 3 +++ - .../common/network_features.h | 4 ++++ - .../common/network_switch_list.h | 4 ++++ - .../url_formatter/spoof_checks/top_domains/BUILD.gn | 1 + - net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++ + chrome/browser/about_flags.cc | 8 ++++++++ + chrome/browser/flag_descriptions.cc | 4 ++++ + chrome/browser/flag_descriptions.h | 3 +++ + .../common/network_features.cc | 3 +++ + .../common/network_features.h | 4 ++++ + .../common/network_switch_list.h | 4 ++++ + .../spoof_checks/top_domains/BUILD.gn | 1 + + net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++ 8 files changed, 44 insertions(+) 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 -@@ -669,6 +669,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { +@@ -668,6 +668,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { net::kEffectiveConnectionType4G}, }; @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // Ensure that all effective connection types returned by Network Quality // Estimator (NQE) are also exposed via flags. static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 == -@@ -2538,6 +2543,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2596,6 +2601,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPassiveDocumentEventListenersName, flag_descriptions::kPassiveDocumentEventListenersDescription, kOsAll, FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)}, @@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1240,6 +1240,10 @@ const char kLookalikeUrlNavigationSuggestionsDescription[] = +@@ -1275,6 +1275,10 @@ const char kLookalikeUrlNavigationSuggestionsDescription[] = const char kMarkHttpAsName[] = "Mark non-secure origins as non-secure"; const char kMarkHttpAsDescription[] = "Change the UI treatment for HTTP pages"; @@ -58,7 +58,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 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -761,6 +761,9 @@ extern const char kMarkHttpAsWarning[]; +@@ -776,6 +776,9 @@ extern const char kMarkHttpAsWarning[]; extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[]; extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[]; @@ -110,7 +110,7 @@ diff --git a/components/network_session_configurator/common/network_switch_list. diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -78,6 +78,7 @@ executable("make_top_domain_list_for_edit_distance") { +@@ -78,6 +78,7 @@ executable("make_top_domain_list_variables") { "//base", "//base:i18n", "//third_party/icu", @@ -132,7 +132,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket namespace net { -@@ -185,6 +189,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -187,6 +191,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); @@ -153,5 +153,5 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket } -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index 069da1d8..5ed4092c 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1580,6 +1580,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1633,6 +1633,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-webassembly-threads", flag_descriptions::kEnableWasmThreadsName, flag_descriptions::kEnableWasmThreadsDescription, kOsAll, FEATURE_VALUE_TYPE(features::kWebAssemblyThreads)}, @@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -876,6 +876,11 @@ const char kMemlogStackModeNative[] = "Native"; +@@ -904,6 +904,11 @@ const char kMemlogStackModeNative[] = "Native"; const char kMemlogStackModeNativeWithThreadNames[] = "Native with thread names"; const char kMemlogStackModePseudo[] = "Trace events"; @@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -520,6 +520,9 @@ extern const char kEnablePortalsDescription[]; +@@ -532,6 +532,9 @@ extern const char kEnablePortalsDescription[]; extern const char kEnablePictureInPictureName[]; extern const char kEnablePictureInPictureDescription[]; @@ -55,7 +55,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -212,11 +212,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", +@@ -216,11 +216,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad", // when in background. const base::Feature kResumeBackgroundVideo { "resume-background-video", @@ -69,5 +69,5 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc // Enable Media Capabilities with finch-parameters. -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 43067243..91430e4e 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -3,20 +3,20 @@ Date: Sun, 18 Nov 2018 13:06:49 +0100 Subject: Add flag to disable IPv6 probes --- - chrome/browser/about_flags.cc | 5 +++++ - chrome/browser/flag_descriptions.cc | 4 ++++ - chrome/browser/flag_descriptions.h | 3 +++ - components/subresource_filter/tools/BUILD.gn | 6 ++++++ - components/url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++- - net/dns/host_resolver_manager.cc | 10 ++++++++-- - services/network/public/cpp/features.cc | 4 ++++ - services/network/public/cpp/features.h | 2 ++ + chrome/browser/about_flags.cc | 5 +++++ + chrome/browser/flag_descriptions.cc | 4 ++++ + chrome/browser/flag_descriptions.h | 3 +++ + components/subresource_filter/tools/BUILD.gn | 6 ++++++ + .../url_formatter/spoof_checks/top_domains/BUILD.gn | 3 ++- + net/dns/host_resolver_manager.cc | 10 ++++++++-- + services/network/public/cpp/features.cc | 4 ++++ + services/network/public/cpp/features.h | 2 ++ 8 files changed, 34 insertions(+), 3 deletions(-) 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 -@@ -3198,6 +3198,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3244,6 +3244,11 @@ const FeatureEntry kFeatureEntries[] = { kMarkHttpAsFeatureVariations, "HTTPReallyBadFinal")}, @@ -31,21 +31,21 @@ 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 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2512,6 +2512,10 @@ const char kForegroundNotificationManagerDescription[] = - const char kHomePageButtonName[] = "Force Enable Home Page Button"; - const char kHomePageButtonDescription[] = "Displays a home button if enabled."; +@@ -2512,6 +2512,10 @@ const char kContextualSearchSimplifiedServerDescription[] = + const char kContextualSearchSecondTapName[] = + "Contextual Search second tap triggering"; +const char kIPv6ProbingName[] = "Enable IPv6 probing."; +const char kIPv6ProbingDescription[] = + "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity."; + - const char kHomepageTileName[] = - "Enable Homepage tile shown in Suggested Tiles"; - const char kHomepageTileDescription[] = + const char kContextualSearchSecondTapDescription[] = + "Enables triggering on a second tap gesture even when Ranker would " + "normally suppress that tap."; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -523,6 +523,9 @@ extern const char kEnableNewDownloadBackendDescription[]; +@@ -535,6 +535,9 @@ extern const char kEnableNewDownloadBackendDescription[]; extern const char kEnablePortalsName[]; extern const char kEnablePortalsDescription[]; @@ -88,7 +88,7 @@ diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresour diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn -@@ -78,7 +78,8 @@ executable("make_top_domain_list_for_edit_distance") { +@@ -78,7 +78,8 @@ executable("make_top_domain_list_variables") { "//base", "//base:i18n", "//third_party/icu", @@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "url/url_canon_ip.h" #if BUILDFLAG(ENABLE_MDNS) -@@ -3209,8 +3210,13 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { +@@ -3269,8 +3270,13 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { bool cached = true; if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() > kIPv6ProbePeriodMs) { @@ -128,7 +128,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -46,6 +46,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -51,6 +51,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kThrottleDelayable{"ThrottleDelayable", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -142,7 +142,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -19,6 +19,8 @@ extern const base::Feature kNetworkErrorLogging; +@@ -21,6 +21,8 @@ extern const base::Feature kNetworkErrorLogging; COMPONENT_EXPORT(NETWORK_CPP) extern const base::Feature kNetworkService; COMPONENT_EXPORT(NETWORK_CPP) @@ -152,5 +152,5 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp COMPONENT_EXPORT(NETWORK_CPP) extern const base::Feature kReporting; -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flag-to-disable-WebGL.patch b/build/patches/Add-flag-to-disable-WebGL.patch index 7c1795f4..46510be3 100644 --- a/build/patches/Add-flag-to-disable-WebGL.patch +++ b/build/patches/Add-flag-to-disable-WebGL.patch @@ -11,7 +11,7 @@ Subject: Add flag to disable WebGL diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1364,6 +1364,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1425,6 +1425,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAccelerated2dCanvasName, flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, @@ -24,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -385,6 +385,10 @@ const char kDisableAudioForDesktopShareDescription[] = +@@ -426,6 +426,10 @@ const char kDisableAudioForDesktopShareDescription[] = "With this flag on, desktop share picker window will not let the user " "choose whether to share audio."; @@ -38,7 +38,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -256,6 +256,9 @@ extern const char kDevtoolsExperimentsDescription[]; +@@ -274,6 +274,9 @@ extern const char kDevtoolsExperimentsDescription[]; extern const char kDisableAudioForDesktopShareName[]; extern const char kDisableAudioForDesktopShareDescription[]; @@ -49,5 +49,5 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kDisableBestEffortTasksDescription[]; -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch b/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch index d7cb2d70..2e746a39 100644 --- a/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch +++ b/build/patches/Add-flags-to-disable-device-motion-and-orientation-APIs.patch @@ -5,22 +5,22 @@ Subject: Add flags to disable device motion and orientation APIs Both flags will be disabled by default and prevent usage of gyroscope and legacy acceleration events. --- - chrome/browser/about_flags.cc | 6 ++++++ - chrome/browser/flag_descriptions.cc | 8 ++++++++ - chrome/browser/flag_descriptions.h | 6 ++++++ - content/child/runtime_features.cc | 3 +++ - content/public/common/content_features.cc | 10 ++++++++++ - content/public/common/content_features.h | 2 ++ - third_party/blink/public/platform/web_runtime_features.h | 2 ++ - third_party/blink/renderer/modules/modules_initializer.cc | 9 ++++++--- - .../blink/renderer/platform/exported/web_runtime_features.cc | 8 ++++++++ - .../blink/renderer/platform/runtime_enabled_features.json5 | 8 ++++++++ + chrome/browser/about_flags.cc | 6 ++++++ + chrome/browser/flag_descriptions.cc | 8 ++++++++ + chrome/browser/flag_descriptions.h | 6 ++++++ + content/child/runtime_features.cc | 3 +++ + content/public/common/content_features.cc | 10 ++++++++++ + content/public/common/content_features.h | 2 ++ + .../blink/public/platform/web_runtime_features.h | 2 ++ + .../blink/renderer/modules/modules_initializer.cc | 9 ++++++--- + .../renderer/platform/exported/web_runtime_features.cc | 8 ++++++++ + .../renderer/platform/runtime_enabled_features.json5 | 8 ++++++++ 10 files changed, 59 insertions(+), 3 deletions(-) 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 -@@ -1606,6 +1606,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1659,6 +1659,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, @@ -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 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -644,6 +644,14 @@ const char kWinrtSensorsImplementationDescription[] = +@@ -674,6 +674,14 @@ const char kWinrtSensorsImplementationDescription[] = "Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for " "sensors"; @@ -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 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -398,6 +398,12 @@ extern const char kEnableTLS13EarlyDataDescription[]; +@@ -410,6 +410,12 @@ extern const char kWinrtGeolocationImplementationDescription[]; extern const char kWinrtSensorsImplementationName[]; extern const char kWinrtSensorsImplementationDescription[]; @@ -70,20 +70,20 @@ 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 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -85,6 +85,9 @@ void SetIndividualRuntimeFeatures( - base::FeatureList::IsEnabled(features::kSharedArrayBuffer) || - base::FeatureList::IsEnabled(features::kWebAssemblyThreads)); - +@@ -85,6 +85,9 @@ void SetRuntimeFeatureDefaultsForPlatform( + command_line.HasSwitch( + switches::kEnableGpuMemoryBufferCompositorResources) && + !command_line.HasSwitch(switches::kDisableWebGLImageChromium) && + WebRuntimeFeatures::EnableDeviceMotion(base::FeatureList::IsEnabled(features::kDeviceMotion)); + WebRuntimeFeatures::EnableDeviceOrientation(base::FeatureList::IsEnabled(features::kDeviceOrientation)); + - if (command_line.HasSwitch(switches::kDisableSharedWorkers)) - WebRuntimeFeatures::EnableSharedWorker(false); - + !command_line.HasSwitch(switches::kDisableGpu) && + base::FeatureList::IsEnabled(features::kWebGLImageChromium); + #else diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -689,6 +689,16 @@ const base::Feature kExperimentalProductivityFeatures{ +@@ -688,6 +688,16 @@ const base::Feature kExperimentalProductivityFeatures{ // TODO(rouslan): Remove this. const base::Feature kWebPayments{"WebPayments", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -103,7 +103,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -157,6 +157,8 @@ CONTENT_EXPORT extern const base::Feature kScriptStreamingOnPreload; +@@ -156,6 +156,8 @@ CONTENT_EXPORT extern const base::Feature kScriptStreamingOnPreload; CONTENT_EXPORT extern const base::Feature kTrustedDOMTypes; CONTENT_EXPORT extern const base::Feature kBrowserUseDisplayThreadPriority; @@ -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 --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -91,6 +91,8 @@ class WebRuntimeFeatures { +@@ -96,6 +96,8 @@ class WebRuntimeFeatures { BLINK_PLATFORM_EXPORT static void EnableCSSHexAlphaColor(bool); BLINK_PLATFORM_EXPORT static void EnableSameSiteByDefaultCookies(bool); BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool); @@ -127,7 +127,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa 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 +++ b/third_party/blink/renderer/modules/modules_initializer.cc -@@ -244,9 +244,12 @@ void ModulesInitializer::InitInspectorAgentSession( +@@ -235,9 +235,12 @@ void ModulesInitializer::InitInspectorAgentSession( void ModulesInitializer::OnClearWindowObjectInMainWorld( Document& document, const Settings& settings) const { @@ -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 --- a/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::EnableScrollTopLeftInterop(bool enable) { +@@ -172,6 +172,14 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) { RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable); } @@ -164,10 +164,11 @@ 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 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1128,6 +1128,14 @@ +@@ -1132,6 +1132,14 @@ + name: "OffscreenCanvasCommit", status: "experimental", }, - { ++ { + name: "DeviceMotion", + status: "stable", + }, @@ -175,10 +176,9 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + name: "DeviceOrientation", + status: "stable", + }, -+ { + { name: "OnDeviceChange", // Android does not yet support SystemMonitor. - status: {"Android": "", "default": "stable"}, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch b/build/patches/Add-menu-option-to-toggle-ad-blocker.patch index 61387092..9d6daadf 100644 --- a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch +++ b/build/patches/Add-menu-option-to-toggle-ad-blocker.patch @@ -3,13 +3,13 @@ Date: Sat, 14 Sep 2019 10:19:07 +0200 Subject: Add menu option to toggle ad blocker --- - chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +++++++ - chrome/android/java/res/menu/main_menu.xml | 11 ++++++ - .../chromium/chrome/browser/ChromeActivity.java | 8 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 40 ++++++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 2 ++ - .../java/strings/android_chrome_strings.grd | 11 ++++++ + .../java/res/menu/custom_tabs_menu.xml | 12 ++++++ + chrome/android/java/res/menu/main_menu.xml | 11 +++++ + .../chrome/browser/ChromeActivity.java | 8 ++++ + .../chrome/browser/ChromeTabbedActivity.java | 8 ++++ + .../AppMenuPropertiesDelegateImpl.java | 40 +++++++++++++++++++ + .../CustomTabAppMenuPropertiesDelegate.java | 2 + + .../java/strings/android_chrome_strings.grd | 11 +++++ 7 files changed, 92 insertions(+) diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml @@ -58,7 +58,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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2159,6 +2159,14 @@ public abstract class ChromeActivity +@@ -2226,6 +2226,14 @@ public abstract class ChromeActivity RecordUserAction.record("MobileMenuRequestEnableJavascript"); } else if (id == R.id.reader_mode_prefs_id) { DomDistillerUIUtils.openSettings(currentTab.getWebContents()); @@ -76,7 +76,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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1757,6 +1757,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo +@@ -1767,6 +1767,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo reportNewTabShortcutUsed(true); getTabCreator(true).launchNTP(); } @@ -94,7 +94,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/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -26,6 +26,7 @@ import org.chromium.base.metrics.RecordHistogram; +@@ -27,6 +27,7 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ChromeSwitches; @@ -102,7 +102,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.banners.AppBannerManager; import org.chromium.chrome.browser.bookmarks.BookmarkBridge; -@@ -224,6 +225,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -235,6 +236,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate // Prepare translate menu button. prepareTranslateMenuItem(menu, currentTab); @@ -111,7 +111,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu // Hide 'Add to homescreen' for the following: // * chrome:// pages - Android doesn't know how to direct those URLs. // * incognito pages - To avoid problems where users create shortcuts in incognito -@@ -299,6 +302,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -310,6 +313,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate PrefServiceBridge.getInstance().isIncognitoModeManaged()); } @@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -201,6 +201,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -205,6 +205,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat } } @@ -170,7 +170,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2952,6 +2952,17 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Turn on Request desktop site @@ -189,5 +189,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Appearance -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch b/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch index b447d1ac..e5762575 100644 --- a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch +++ b/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch @@ -3,13 +3,13 @@ Date: Wed, 18 Oct 2017 21:26:53 +0200 Subject: Add menu option to toggle global Javascript preference --- - chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +++++++ - chrome/android/java/res/menu/main_menu.xml | 13 ++++++++ - .../chromium/chrome/browser/ChromeActivity.java | 8 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 39 ++++++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../java/strings/android_chrome_strings.grd | 11 ++++++ + .../java/res/menu/custom_tabs_menu.xml | 12 ++++++ + chrome/android/java/res/menu/main_menu.xml | 13 +++++++ + .../chrome/browser/ChromeActivity.java | 8 ++++ + .../chrome/browser/ChromeTabbedActivity.java | 8 ++++ + .../AppMenuPropertiesDelegateImpl.java | 39 +++++++++++++++++++ + .../CustomTabAppMenuPropertiesDelegate.java | 1 + + .../java/strings/android_chrome_strings.grd | 11 ++++++ 7 files changed, 92 insertions(+) diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml @@ -74,7 +74,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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2149,6 +2149,14 @@ public abstract class ChromeActivity +@@ -2216,6 +2216,14 @@ public abstract class ChromeActivity currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent( !usingDesktopUserAgent, reloadOnChange); RecordUserAction.record("MobileMenuRequestDesktopSite"); @@ -92,7 +92,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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1802,6 +1802,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo +@@ -1813,6 +1813,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -110,7 +110,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/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -241,6 +241,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -252,6 +252,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu // Only display reader mode settings menu option if the current page is in reader mode. menu.findItem(R.id.reader_mode_prefs_id) .setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl())); -@@ -432,6 +434,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -438,6 +440,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } } @@ -166,7 +166,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -202,6 +202,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -206,6 +206,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat } updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); @@ -177,7 +177,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2932,6 +2932,17 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Find in page @@ -196,5 +196,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Desktop site -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch b/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch index bc4191ef..c5b149a9 100644 --- a/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch +++ b/build/patches/Add-option-to-configure-the-ad-blocker-filters-URL.patch @@ -3,24 +3,23 @@ Date: Thu, 5 Dec 2019 22:41:25 +0100 Subject: Add option to configure the ad blocker filters URL --- - chrome/android/chrome_java_sources.gni | 2 + - chrome/android/java/res/layout/adblock_editor.xml | 65 ++++++++++++++++ - chrome/android/java/res/values/values.xml | 2 + - .../android/java/res/xml/adblock_preferences.xml | 25 ++++++ - chrome/android/java/res/xml/main_preferences.xml | 11 ++- - .../chrome/browser/preferences/AdBlockEditor.java | 91 ++++++++++++++++++++++ - .../browser/preferences/AdBlockPreferences.java | 53 +++++++++++++ - .../chrome/browser/util/FeatureUtilities.java | 10 +++ - .../java/strings/android_chrome_strings.grd | 14 ++++ - chrome/app/generated_resources.grd | 10 +++ - chrome/browser/android/feature_utilities.cc | 8 ++ - chrome/browser/browser_process_impl.cc | 3 +- - .../browser/net/system_network_context_manager.cc | 3 + - chrome/common/pref_names.cc | 3 + - chrome/common/pref_names.h | 1 + - .../component_updater/adblock_updater_service.cc | 6 +- - .../component_updater/adblock_updater_service.h | 3 +- - 17 files changed, 302 insertions(+), 8 deletions(-) + chrome/android/chrome_java_sources.gni | 2 + + .../java/res/layout/adblock_editor.xml | 65 +++++++++++++ + chrome/android/java/res/values/values.xml | 2 + + .../java/res/xml/adblock_preferences.xml | 25 +++++ + .../android/java/res/xml/main_preferences.xml | 11 ++- + .../browser/preferences/AdBlockEditor.java | 91 +++++++++++++++++++ + .../preferences/AdBlockPreferences.java | 53 +++++++++++ + .../java/strings/android_chrome_strings.grd | 14 +++ + chrome/app/generated_resources.grd | 10 ++ + chrome/browser/android/feature_utilities.cc | 8 ++ + chrome/browser/browser_process_impl.cc | 3 +- + .../net/system_network_context_manager.cc | 3 + + chrome/common/pref_names.cc | 3 + + chrome/common/pref_names.h | 1 + + .../adblock_updater_service.cc | 6 +- + .../adblock_updater_service.h | 3 +- + 16 files changed, 292 insertions(+), 8 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/preferences/AdBlockEditor.java @@ -29,7 +28,7 @@ Subject: Add option to configure the ad blocker filters URL diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1266,6 +1266,8 @@ chrome_java_sources = [ +@@ -1277,6 +1277,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/preferences/PreferenceUtils.java", "java/src/org/chromium/chrome/browser/preferences/Preferences.java", "java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java", @@ -111,7 +110,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -68,6 +68,8 @@ +@@ -70,6 +70,8 @@ @@ -153,15 +152,16 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -61,19 +61,24 @@ +@@ -60,20 +60,25 @@ + android:key="privacy" android:order="13" android:title="@string/prefs_privacy"/> - -+ @@ -387,7 +362,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -9505,6 +9505,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -9603,6 +9603,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -407,7 +382,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/android/feature_utilities.cc --- a/chrome/browser/android/feature_utilities.cc +++ b/chrome/browser/android/feature_utilities.cc -@@ -58,6 +58,14 @@ std::string GetReachedCodeProfilerTrialGroup() { +@@ -50,6 +50,14 @@ std::string GetReachedCodeProfilerTrialGroup() { } // namespace android } // namespace chrome @@ -425,7 +400,7 @@ diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/androi diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1032,7 +1032,8 @@ BrowserProcessImpl::adblock_updater() { +@@ -1028,7 +1028,8 @@ BrowserProcessImpl::adblock_updater() { adblock_updater_ = std::make_unique( g_browser_process->system_network_context_manager()->GetSharedURLLoaderFactory(), std::move(scheduler), @@ -438,7 +413,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro 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 +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -391,6 +391,8 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -405,6 +405,8 @@ SystemNetworkContextManager::SystemNetworkContextManager( ssl_config_service_manager_( SSLConfigServiceManager::CreateDefaultManager(local_state_)), proxy_config_monitor_(local_state_) { @@ -447,7 +422,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows #if !defined(OS_ANDROID) // QuicAllowed was not part of Android policy. const base::Value* value = -@@ -462,6 +464,7 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { +@@ -508,6 +510,7 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { } void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { @@ -458,7 +433,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -1871,6 +1871,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -1925,6 +1925,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; // capture devices without prompt. const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -512,5 +487,5 @@ diff --git a/components/component_updater/adblock_updater_service.h b/components // Adds an observer for this class. An observer should not be added more -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 9e71e808..8bc52024 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -3,17 +3,17 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200 Subject: Add option to not persist tabs across sessions --- - chrome/android/java/res/values/values.xml | 3 +++ - chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 +++- - .../browser/preferences/privacy/PrivacyPreferences.java | 12 ++++++++++++ - chrome/android/java/strings/android_chrome_strings.grd | 6 ++++++ + chrome/android/java/res/values/values.xml | 3 +++ + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chrome/browser/ChromeTabbedActivity.java | 4 +++- + .../preferences/privacy/PrivacyPreferences.java | 12 ++++++++++++ + .../android/java/strings/android_chrome_strings.grd | 6 ++++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -62,6 +62,9 @@ +@@ -64,6 +64,9 @@ @@ -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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1166,8 +1166,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo +@@ -1173,8 +1173,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo boolean hadCipherData = CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState()); @@ -106,7 +106,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -3764,6 +3764,12 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -3699,6 +3699,12 @@ The site does NOT gain access to the camera. The camera images are only visible IMAGE @@ -120,5 +120,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and LINK -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index 70a084f6..d0747e8d 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -4,35 +4,35 @@ Subject: Add option to use home page as NTP Use about:blank as default homepage --- - .../android/java/res/xml/homepage_preferences.xml | 5 +++++ - .../partnercustomizations/HomepageManager.java | 24 ++++++++++++++++++++-- - .../browser/preferences/HomepagePreferences.java | 10 +++++++++ - .../chrome/browser/tabmodel/TabCreatorManager.java | 11 ++++++++-- - .../java/strings/android_chrome_strings.grd | 3 +++ - chrome/browser/ui/browser_ui_prefs.cc | 2 ++ - chrome/common/pref_names.cc | 4 ++++ - chrome/common/pref_names.h | 1 + + .../java/res/xml/homepage_preferences.xml | 5 ++++ + .../HomepageManager.java | 24 +++++++++++++++++-- + .../preferences/HomepagePreferences.java | 10 ++++++++ + .../browser/tabmodel/TabCreatorManager.java | 11 +++++++-- + .../java/strings/android_chrome_strings.grd | 3 +++ + chrome/browser/ui/browser_ui_prefs.cc | 2 ++ + chrome/common/pref_names.cc | 4 ++++ + chrome/common/pref_names.h | 1 + 8 files changed, 56 insertions(+), 4 deletions(-) diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml --- a/chrome/android/java/res/xml/homepage_preferences.xml +++ b/chrome/android/java/res/xml/homepage_preferences.xml -@@ -7,6 +7,11 @@ +@@ -6,6 +6,11 @@ + - + -+ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -@@ -32,6 +32,7 @@ public class HomepageManager { +@@ -31,6 +31,7 @@ public class HomepageManager { } private static final String PREF_HOMEPAGE_ENABLED = "homepage"; @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz private static final String PREF_HOMEPAGE_CUSTOM_URI = "homepage_custom_uri"; private static final String PREF_HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; -@@ -91,7 +92,8 @@ public class HomepageManager { +@@ -90,7 +91,8 @@ public class HomepageManager { */ public static boolean shouldCloseAppWithZeroTabs() { return HomepageManager.isHomepageEnabled() @@ -51,7 +51,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz /** @@ -111,7 +113,7 @@ public class HomepageManager { - * @return The default homepage URI. + * if the homepage button is force enabled via flag. */ public static String getDefaultHomepageUri() { - return UrlConstants.NTP_NON_NATIVE_URL; @@ -59,10 +59,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz } /** -@@ -125,6 +127,14 @@ public class HomepageManager { +@@ -124,6 +126,14 @@ public class HomepageManager { + return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, true); } - /** ++ /** + * Returns the user preference for whether the New Tab Page is the homepage or not. + * + */ @@ -70,14 +71,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz + return mSharedPreferences.getBoolean(PREF_NTP_IS_HOMEPAGE, false); + } + -+ /** + /** * Sets the user preference for whether the homepage is enabled. */ - public void setPrefHomepageEnabled(boolean enabled) { -@@ -138,6 +148,16 @@ public class HomepageManager { +@@ -137,6 +147,16 @@ public class HomepageManager { + notifyHomepageUpdated(); } - /** ++ /** + * Sets the user preference for whether the new tab page is the homepage or not. + */ + public void setPrefNTPIsHomepageEnabled(boolean enabled) { @@ -87,14 +88,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz + notifyHomepageUpdated(); + } + -+ /** + /** * @return User specified homepage custom URI string. */ - public String getPrefHomepageCustomUri() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java -@@ -20,6 +20,7 @@ public class HomepagePreferences extends PreferenceFragmentCompat { +@@ -19,6 +19,7 @@ public class HomepagePreferences extends PreferenceFragmentCompat { @VisibleForTesting public static final String PREF_HOMEPAGE_SWITCH = "homepage_switch"; private static final String PREF_HOMEPAGE_EDIT = "homepage_edit"; @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Hom private HomepageManager mHomepageManager; private Preference mHomepageEdit; -@@ -42,6 +43,15 @@ public class HomepagePreferences extends PreferenceFragmentCompat { +@@ -39,6 +40,15 @@ public class HomepagePreferences extends PreferenceFragmentCompat { return true; }); @@ -153,20 +153,20 @@ 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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -663,6 +663,9 @@ CHAR-LIMIT guidelines: - - Open this page +@@ -668,6 +668,9 @@ CHAR-LIMIT guidelines: + + Search and site suggestions disabled + + Use for new tabs + - - + + diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -54,6 +54,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -55,6 +55,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { GetHomeButtonAndHomePageIsNewTabPageFlags()); registry->RegisterBooleanPref(prefs::kShowHomeButton, false, GetHomeButtonAndHomePageIsNewTabPageFlags()); @@ -192,8 +192,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 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -318,6 +318,7 @@ extern const char kSettingsShowBrowserBanner[]; - extern const char kSettingsShowOSBanner[]; +@@ -322,6 +322,7 @@ extern const char kSettingsShowOSBanner[]; + extern const char kDeviceLoginScreenWebUsbAllowDevicesForUrls[]; #endif // defined(OS_CHROMEOS) extern const char kShowHomeButton[]; +extern const char kNewTabPageIsHomePage[]; @@ -201,5 +201,5 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h extern const char kAllowDeletingBrowserHistory[]; #if !defined(OS_ANDROID) -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-site-settings-option-for-session-only-cookies.patch b/build/patches/Add-site-settings-option-for-session-only-cookies.patch index 776213cf..3a96f4cf 100644 --- a/build/patches/Add-site-settings-option-for-session-only-cookies.patch +++ b/build/patches/Add-site-settings-option-for-session-only-cookies.patch @@ -3,12 +3,12 @@ Date: Tue, 28 Aug 2018 23:27:23 +0200 Subject: Add site settings option for session-only cookies --- - chrome/android/java/res/values/values.xml | 3 +++ - .../android/java/res/xml/website_preferences.xml | 7 ++++++ - .../browser/preferences/PrefServiceBridge.java | 10 +++++++++ - .../website/SingleCategoryPreferences.java | 21 +++++++++++++++++- - .../java/strings/android_chrome_strings.grd | 6 ++++++ - .../android/preferences/pref_service_bridge.cc | 25 ++++++++++++++++++++++ + chrome/android/java/res/values/values.xml | 3 +++ + .../java/res/xml/website_preferences.xml | 7 ++++++ + .../preferences/PrefServiceBridge.java | 10 ++++++++ + .../website/SingleCategoryPreferences.java | 21 +++++++++++++++- + .../java/strings/android_chrome_strings.grd | 6 +++++ + .../preferences/pref_service_bridge.cc | 25 +++++++++++++++++++ 6 files changed, 71 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml @@ -44,44 +44,37 @@ diff --git a/chrome/android/java/res/xml/website_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -@@ -242,6 +242,10 @@ public class PrefServiceBridge { - return nativeGetBlockThirdPartyCookiesEnabled(); +@@ -265,6 +265,10 @@ public class PrefServiceBridge { + return PrefServiceBridgeJni.get().getBlockThirdPartyCookiesEnabled(PrefServiceBridge.this); } + public boolean isCookiesSessionOnlyEnabled() { -+ return nativeGetCookiesSessionOnlyEnabled(); ++ return PrefServiceBridgeJni.get().getCookiesSessionOnlyEnabled(PrefServiceBridge.this); + } + /** * @return Whether third-party cookie blocking is configured by policy */ -@@ -631,6 +635,10 @@ public class PrefServiceBridge { - nativeSetBlockThirdPartyCookiesEnabled(enabled); +@@ -668,6 +672,10 @@ public class PrefServiceBridge { + PrefServiceBridge.this, enabled); } + public void setCookiesSessionOnlyEnabled(boolean enabled) { -+ nativeSetCookiesSessionOnlyEnabled(enabled); ++ PrefServiceBridgeJni.get().setCookiesSessionOnlyEnabled(PrefServiceBridge.this, enabled); + } + public void setDoNotTrackEnabled(boolean enabled) { - nativeSetDoNotTrackEnabled(enabled); + PrefServiceBridgeJni.get().setDoNotTrackEnabled(PrefServiceBridge.this, enabled); } -@@ -1094,6 +1102,7 @@ public class PrefServiceBridge { - private native boolean nativeGetAutoplayEnabled(); - private native boolean nativeGetBackgroundSyncEnabled(); - private native boolean nativeGetBlockThirdPartyCookiesEnabled(); -+ private native boolean nativeGetCookiesSessionOnlyEnabled(); - private native boolean nativeGetBlockThirdPartyCookiesManaged(); - private native boolean nativeGetRememberPasswordsEnabled(); - private native boolean nativeGetPasswordManagerAutoSigninEnabled(); -@@ -1141,6 +1150,7 @@ public class PrefServiceBridge { - private native void nativeSetAutoplayEnabled(boolean enabled); - private native void nativeSetAllowCookiesEnabled(boolean enabled); - private native void nativeSetBackgroundSyncEnabled(boolean enabled); -+ private native void nativeSetCookiesSessionOnlyEnabled(boolean enabled); - private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled); - private native void nativeSetClipboardEnabled(boolean enabled); - private native void nativeSetDoNotTrackEnabled(boolean enabled); +@@ -1138,6 +1146,8 @@ public class PrefServiceBridge { + + @NativeMethods + public interface Natives { ++ boolean getCookiesSessionOnlyEnabled(PrefServiceBridge caller); ++ void setCookiesSessionOnlyEnabled(PrefServiceBridge caller, boolean enabled); + boolean isContentSettingEnabled(PrefServiceBridge caller, int contentSettingType); + boolean isContentSettingManaged(PrefServiceBridge caller, int contentSettingType); + void setContentSettingEnabled( diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java @@ -93,15 +86,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate"; public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more"; private static final String ADD_EXCEPTION_KEY = "add_exception"; -@@ -484,6 +485,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat - if (type == SiteSettingsCategory.Type.COOKIES - && !FeatureUtilities.isNoTouchModeEnabled()) { +@@ -477,6 +478,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat + + if (type == SiteSettingsCategory.Type.COOKIES) { updateThirdPartyCookiesCheckBox(); + updateCookiesSessionOnlyCheckBox(); } else if (type == SiteSettingsCategory.Type.NOTIFICATIONS) { updateNotificationsVibrateCheckBox(); } -@@ -523,6 +525,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -516,6 +518,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat int setting = (int) newValue; prefServiceBridge.setContentSetting(mCategory.getContentSettingsType(), setting); getInfoForOrigins(); @@ -110,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web } else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) { prefServiceBridge.setBlockThirdPartyCookiesEnabled(((boolean) newValue)); } else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) { -@@ -840,6 +844,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -833,6 +837,8 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat TriStateSiteSettingsPreference triStateToggle = (TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY); Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY); @@ -119,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY); Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY); PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP); -@@ -871,6 +877,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -864,6 +870,7 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat if (hideSecondaryToggles) { screen.removePreference(thirdPartyCookies); @@ -127,15 +120,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web screen.removePreference(notificationsVibrate); screen.removePreference(explainProtectedMediaKey); screen.removePreference(allowedGroup); -@@ -881,14 +888,17 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -874,12 +881,15 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat return; } - // Configure/hide the third-party cookies toggle, as needed. + // Configure/hide the third-party cookies toggle and session-only cookie toggle, as needed. - // We don't need this toggle in touchless. Refer to crbug/951850. - if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES) - && !FeatureUtilities.isNoTouchModeEnabled()) { + if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) { thirdPartyCookies.setOnPreferenceChangeListener(this); updateThirdPartyCookiesCheckBox(); + cookiesSessionOnly.setOnPreferenceChangeListener(this); @@ -146,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web } // Configure/hide the notifications vibrate toggle, as needed. -@@ -1003,6 +1013,15 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat +@@ -994,6 +1004,15 @@ public class SingleCategoryPreferences extends PreferenceFragmentCompat preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged()); } @@ -165,7 +156,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -895,6 +895,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -878,6 +878,12 @@ Your Google account may have other forms of browsing history like searches and a Prevent third-party websites from saving and reading cookie data @@ -181,7 +172,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 --- a/chrome/browser/android/preferences/pref_service_bridge.cc +++ b/chrome/browser/android/preferences/pref_service_bridge.cc -@@ -314,6 +314,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled( +@@ -330,6 +330,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled( return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies); } @@ -199,7 +190,7 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged( JNIEnv* env, const JavaParamRef& obj) { -@@ -785,6 +796,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled( +@@ -801,6 +812,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled( GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled); } @@ -221,5 +212,5 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/ JNIEnv* env, const JavaParamRef& obj, -- -2.11.0 +2.17.1 diff --git a/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch b/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch index 3d66f7ad..f491f586 100644 --- a/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch +++ b/build/patches/Add-user-setting-for-DNS-over-HTTPS-DoH-custom-URL.patch @@ -3,20 +3,20 @@ Date: Sat, 23 Nov 2019 10:55:16 +0100 Subject: Add user setting for DNS-over-HTTPS (DoH) custom URL --- - chrome/android/chrome_java_sources.gni | 2 + - chrome/android/java/res/layout/doh_editor.xml | 65 ++++++++++++++++ - chrome/android/java/res/values/values.xml | 2 + - chrome/android/java/res/xml/doh_preferences.xml | 25 ++++++ - .../android/java/res/xml/privacy_preferences.xml | 5 ++ - .../chrome/browser/preferences/DoHEditor.java | 91 ++++++++++++++++++++++ - .../chrome/browser/preferences/DoHPreferences.java | 52 +++++++++++++ - .../chrome/browser/util/FeatureUtilities.java | 25 ++++++ - .../java/strings/android_chrome_strings.grd | 11 +++ - chrome/app/generated_resources.grd | 6 ++ - chrome/browser/android/feature_utilities.cc | 23 ++++++ - .../browser/net/system_network_context_manager.cc | 46 +++-------- - chrome/common/chrome_features.cc | 4 +- - 13 files changed, 320 insertions(+), 37 deletions(-) + chrome/android/chrome_java_sources.gni | 2 + + chrome/android/java/res/layout/doh_editor.xml | 65 +++++++++++++ + chrome/android/java/res/values/values.xml | 2 + + .../android/java/res/xml/doh_preferences.xml | 25 +++++ + .../java/res/xml/privacy_preferences.xml | 5 + + .../chrome/browser/preferences/DoHEditor.java | 91 +++++++++++++++++++ + .../browser/preferences/DoHPreferences.java | 52 +++++++++++ + .../chrome/browser/util/FeatureUtilities.java | 24 +++++ + .../java/strings/android_chrome_strings.grd | 11 +++ + chrome/app/generated_resources.grd | 6 ++ + chrome/browser/android/feature_utilities.cc | 23 +++++ + .../net/system_network_context_manager.cc | 46 +++------- + chrome/common/chrome_features.cc | 4 +- + 13 files changed, 319 insertions(+), 37 deletions(-) create mode 100644 chrome/android/java/res/layout/doh_editor.xml create mode 100644 chrome/android/java/res/xml/doh_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/preferences/DoHEditor.java @@ -25,7 +25,7 @@ Subject: Add user setting for DNS-over-HTTPS (DoH) custom URL diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1251,7 +1251,9 @@ chrome_java_sources = [ +@@ -1263,7 +1263,9 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/preferences/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java", "java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java", @@ -108,7 +108,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -88,6 +88,8 @@ +@@ -92,6 +92,8 @@ 400 200 @@ -318,8 +318,8 @@ new file mode 100644 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java -@@ -163,6 +163,27 @@ public class FeatureUtilities { - nativeSetCustomTabVisible(visible); +@@ -223,6 +223,26 @@ public class FeatureUtilities { + FeatureUtilitiesJni.get().setCustomTabVisible(visible); } + /** @@ -327,40 +327,39 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUti + * @param url Whether custom URL is enabled or not. + */ + public static void setDoHEnabled(boolean enabled) { -+ nativeSetDoHEnabled(enabled); ++ FeatureUtilitiesJni.get().setDoHEnabled(enabled); + } + + public static boolean getDoHEnabled() { -+ return nativeGetDoHEnabled(); ++ return FeatureUtilitiesJni.get().getDoHEnabled(); + } + + public static void setDoHTemplates(String t) { -+ nativeSetDoHTemplates(t); ++ FeatureUtilitiesJni.get().setDoHTemplates(t); + } + + public static String getDoHTemplates() { -+ return nativeGetDoHTemplates(); ++ return FeatureUtilitiesJni.get().getDoHTemplates(); + } -+ + /** * Records whether the activity is in multi-window mode with native-side feature utilities. * @param isInMultiWindowMode Whether the activity is in Android N multi-window mode. -@@ -897,6 +918,10 @@ public class FeatureUtilities { - } - - private static native void nativeSetCustomTabVisible(boolean visible); -+ private static native void nativeSetDoHEnabled(boolean enabled); -+ private static native boolean nativeGetDoHEnabled(); -+ private static native void nativeSetDoHTemplates(String templates); -+ private static native String nativeGetDoHTemplates(); - private static native void nativeSetIsInMultiWindowMode(boolean isInMultiWindowMode); - private static native boolean nativeIsNetworkServiceWarmUpEnabled(); - } +@@ -852,6 +872,10 @@ public class FeatureUtilities { + interface Natives { + void setCustomTabVisible(boolean visible); + void setIsInMultiWindowMode(boolean isInMultiWindowMode); ++ void setDoHEnabled(boolean enabled); ++ boolean getDoHEnabled(); ++ void setDoHTemplates(String templates); ++ String getDoHTemplates(); + boolean isNetworkServiceWarmUpEnabled(); + void setAdBlockFiltersURL(String url); + String getAdBlockFiltersURL(); 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 +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -656,6 +656,17 @@ CHAR-LIMIT guidelines: +@@ -644,6 +644,17 @@ CHAR-LIMIT guidelines: Chrome Passwords @@ -381,7 +380,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -6507,6 +6507,12 @@ the Bookmarks menu."> +@@ -6558,6 +6558,12 @@ the Bookmarks menu."> Home page @@ -407,7 +406,7 @@ diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/androi #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" #include "chrome/browser/profiles/profile_manager.h" #include "components/ntp_snippets/content_suggestions_service.h" -@@ -73,3 +76,23 @@ static jboolean JNI_FeatureUtilities_IsNetworkServiceWarmUpEnabled( +@@ -76,3 +79,23 @@ static jboolean JNI_FeatureUtilities_IsNetworkServiceWarmUpEnabled( return content::IsOutOfProcessNetworkService() && base::FeatureList::IsEnabled(features::kWarmUpNetworkProcess); } @@ -434,7 +433,7 @@ diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/androi 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 +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -134,9 +134,14 @@ void GetStubResolverConfig( +@@ -137,9 +137,14 @@ void GetStubResolverConfig( std::string doh_templates = local_state->GetString(prefs::kDnsOverHttpsTemplates); @@ -452,7 +451,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows for (const std::string& server_template : SplitString(doh_templates, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { -@@ -404,40 +409,11 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -425,40 +430,11 @@ SystemNetworkContextManager::SystemNetworkContextManager( // features before registering change callbacks for these preferences. local_state_->SetDefaultPrefValue(prefs::kBuiltInDnsClientEnabled, base::Value(ShouldEnableAsyncDns())); @@ -499,7 +498,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -271,12 +271,12 @@ const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList"; +@@ -294,12 +294,12 @@ const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList"; // Enable DNS over HTTPS (DoH). const base::Feature kDnsOverHttps{"DnsOverHttps", @@ -515,5 +514,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc // Supply one or more space-separated DoH server URI templates to use when this // feature is enabled. If no templates are specified, then a hardcoded mapping -- -2.11.0 +2.17.1 diff --git a/build/patches/Allow-building-without-feed-support.patch b/build/patches/Allow-building-without-feed-support.patch new file mode 100644 index 00000000..88e09d24 --- /dev/null +++ b/build/patches/Allow-building-without-feed-support.patch @@ -0,0 +1,33 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Thu, 19 Dec 2019 22:52:53 +0100 +Subject: Allow building without feed support + +--- + .../chrome/browser/ntp/cards/ExploreOfflineCard.java | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java +@@ -13,7 +13,6 @@ import org.chromium.base.ApiCompatibilityUtils; + import org.chromium.chrome.R; + import org.chromium.chrome.browser.ChromeFeatureList; + import org.chromium.chrome.browser.download.DownloadUtils; +-import org.chromium.chrome.browser.feed.FeedConfiguration; + import org.chromium.net.NetworkChangeNotifier; + import org.chromium.ui.text.SpanApplier; + +@@ -73,9 +72,7 @@ public class ExploreOfflineCard { + + View imageView = cardView.findViewById(R.id.explore_offline_image); + imageView.setBackground(imageView.getContext().getResources().getDrawable( +- FeedConfiguration.getFeedUiEnabled() +- ? R.drawable.card_background_rounded_right_half_with_border +- : R.drawable.card_background_rounded_right_half_no_border)); ++ R.drawable.card_background_rounded_right_half_no_border)); + + cardView.setOnClickListener(v -> mOpenDownloadHomeCallback.run()); + return cardView; +-- +2.17.1 + diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index f1cb5ed9..0b9ec7fb 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/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 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc -@@ -976,6 +976,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -989,6 +989,12 @@ bool WebMediaPlayerImpl::HasAudio() const { 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( const blink::WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3278,7 +3284,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3298,7 +3304,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { // Audio only stream is allowed to play when in background. // TODO: We should check IsBackgroundOptimizationCandidate here. But we need // to move the logic of checking video frames out of that function. @@ -39,7 +39,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 --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h -@@ -142,6 +142,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl +@@ -143,6 +143,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl // True if the loaded media has a playable video/audio track. bool HasVideo() const override; bool HasAudio() const override; @@ -49,5 +49,5 @@ diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl void EnabledAudioTracksChanged( const blink::WebVector& enabledTrackIds) -- -2.11.0 +2.17.1 diff --git a/build/patches/Allow-website-sign-in-without-account-sign-in.patch b/build/patches/Allow-website-sign-in-without-account-sign-in.patch index a010e402..f21da40d 100644 --- a/build/patches/Allow-website-sign-in-without-account-sign-in.patch +++ b/build/patches/Allow-website-sign-in-without-account-sign-in.patch @@ -20,5 +20,5 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ // static -- -2.11.0 +2.17.1 diff --git a/build/patches/Always-allow-partner-customisation.patch b/build/patches/Always-allow-partner-customisation.patch index 0780ac70..956143ca 100644 --- a/build/patches/Always-allow-partner-customisation.patch +++ b/build/patches/Always-allow-partner-customisation.patch @@ -3,13 +3,13 @@ Date: Thu, 14 Dec 2017 16:19:50 +0200 Subject: Always allow partner customisation --- - .../PartnerBrowserCustomizations.java | 16 ++++++++-------- + .../PartnerBrowserCustomizations.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java -@@ -243,14 +243,14 @@ public class PartnerBrowserCustomizations { +@@ -244,14 +244,14 @@ public class PartnerBrowserCustomizations { @Override protected Void doInBackground() { try { @@ -33,5 +33,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz if (isCancelled()) return null; refreshIncognitoModeDisabled(); -- -2.11.0 +2.17.1 diff --git a/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch b/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch index 0ac9ef74..22a91d50 100644 --- a/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch +++ b/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 --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -242,7 +242,7 @@ void OnAuthPrefsChanged(PrefService* local_state, +@@ -245,7 +245,7 @@ void OnAuthPrefsChanged(PrefService* local_state, // Android this includes checking the Android version in the field trial. bool ShouldEnableAsyncDns() { 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 --- a/components/cronet/url_request_context_config.cc +++ b/components/cronet/url_request_context_config.cc -@@ -550,7 +550,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions( +@@ -573,7 +573,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions( effective_experimental_options->Remove(it.key(), nullptr); continue; } @@ -34,5 +34,5 @@ diff --git a/components/cronet/url_request_context_config.cc b/components/cronet const base::DictionaryValue* stale_dns_args = nullptr; if (!it.value().GetAsDictionary(&stale_dns_args)) { -- -2.11.0 +2.17.1 diff --git a/build/patches/Always-show-home-page-settings.patch b/build/patches/Always-show-home-page-settings.patch deleted file mode 100644 index 5b94c7b2..00000000 --- a/build/patches/Always-show-home-page-settings.patch +++ /dev/null @@ -1,234 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 17 Mar 2019 20:51:11 +0100 -Subject: Always show home page settings - -Remove the "Force Enable Home Page Button" flag, which was bugged, and always -display home page settings. -This allows removing the home page button and restoring it from settings. ---- - .../browser/init/ProcessInitializationHandler.java | 12 -------- - .../partnercustomizations/HomepageManager.java | 17 ++--------- - .../preferences/ChromePreferenceManager.java | 7 ----- - .../browser/preferences/MainPreferences.java | 12 +++----- - .../chrome/browser/util/FeatureUtilities.java | 34 ---------------------- - chrome/browser/about_flags.cc | 3 -- - chrome/browser/android/chrome_feature_list.cc | 4 --- - chrome/browser/android/chrome_feature_list.h | 1 - - 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 ---- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -356,18 +356,6 @@ public class ProcessInitializationHandler { - deferredStartupHandler.addDeferredTask(new Runnable() { - @Override - public void run() { -- if (HomepageManager.shouldShowHomepageSetting()) { -- RecordHistogram.recordBooleanHistogram("Settings.ShowHomeButtonPreferenceState", -- HomepageManager.isHomepageEnabled()); -- RecordHistogram.recordBooleanHistogram("Settings.HomePageIsCustomized", -- !HomepageManager.getInstance().getPrefHomepageUseDefaultUri()); -- } -- } -- }); -- -- deferredStartupHandler.addDeferredTask(new Runnable() { -- @Override -- public void run() { - // Starts syncing with GSA. - AppHooks.get().createGsaHelper().startSync(); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -@@ -83,10 +83,7 @@ public class HomepageManager { - * @return Whether or not homepage is enabled. - */ - public static boolean isHomepageEnabled() { -- if (FeatureUtilities.isHomePageButtonForceEnabled()) { -- return getInstance().getPrefHomepageEnabled(); -- } -- return false; -+ return getInstance().getPrefHomepageEnabled(); - } - - /** -@@ -98,13 +95,6 @@ public class HomepageManager { - } - - /** -- * @return Whether or not homepage setting should be shown. -- */ -- public static boolean shouldShowHomepageSetting() { -- return FeatureUtilities.isHomePageButtonForceEnabled(); -- } -- -- /** - * @return Homepage URI string, if it's enabled. Null otherwise or uninitialized. - */ - public static String getHomepageUri() { -@@ -118,8 +108,7 @@ public class HomepageManager { - } - - /** -- * @return The default homepage URI if the homepage is partner provided or the new tab page -- * if the homepage button is force enabled via flag. -+ * @return The default homepage URI. - */ - public static String getDefaultHomepageUri() { - return UrlConstants.NTP_NON_NATIVE_URL; -@@ -132,7 +121,7 @@ public class HomepageManager { - * @see #isHomepageEnabled - */ - public boolean getPrefHomepageEnabled() { -- return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, true); -+ return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, false); - } - - /** -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 -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java -@@ -154,13 +154,6 @@ public class ChromePreferenceManager { - private static final String CHROME_MODERN_DESIGN_ENABLED_KEY = "chrome_modern_design_enabled"; - - /** -- * Whether or not the home page button is force enabled. -- * Default value is false. -- */ -- public static final String HOME_PAGE_BUTTON_FORCE_ENABLED_KEY = -- "home_page_button_force_enabled"; -- -- /** - * Whether or not the homepage tile will be shown. - * Default value is false. - */ -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 -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java -@@ -206,15 +206,11 @@ public class MainPreferences extends PreferenceFragmentCompat - updateSyncAndServicesPreference(); - updateSearchEnginePreference(); - -- if (HomepageManager.shouldShowHomepageSetting()) { -- Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE); -- if (FeatureUtilities.isNewTabPageButtonEnabled()) { -- homepagePref.setTitle(R.string.options_startup_page_title); -- } -- setOnOffSummary(homepagePref, HomepageManager.getInstance().getPrefHomepageEnabled()); -- } else { -- removePreferenceIfPresent(PREF_HOMEPAGE); -+ Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE); -+ if (FeatureUtilities.isNewTabPageButtonEnabled()) { -+ homepagePref.setTitle(R.string.options_startup_page_title); - } -+ setOnOffSummary(homepagePref, HomepageManager.getInstance().getPrefHomepageEnabled()); - - if (NightModeUtils.isNightModeSupported() && FeatureUtilities.isNightModeAvailable()) { - addPreferenceIfAbsent(PREF_UI_THEME); -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 -+++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java -@@ -73,7 +73,6 @@ public class FeatureUtilities { - private static Boolean sHasGoogleAccountAuthenticator; - private static Boolean sHasRecognitionIntentHandler; - -- private static Boolean sIsHomePageButtonForceEnabled; - private static Boolean sIsHomepageTileEnabled; - private static Boolean sIsNewTabPageButtonEnabled; - private static Boolean sIsBottomToolbarEnabled; -@@ -178,7 +177,6 @@ public class FeatureUtilities { - public static void cacheNativeFlags() { - cacheCommandLineOnNonRootedEnabled(); - FirstRunUtils.cacheFirstRunPrefs(); -- cacheHomePageButtonForceEnabled(); - cacheHomepageTileEnabled(); - cacheNewTabPageButtonEnabled(); - cacheBottomToolbarEnabled(); -@@ -228,38 +226,6 @@ public class FeatureUtilities { - return Build.VERSION.SDK_INT > Build.VERSION_CODES.M; - } - -- /** -- * Cache whether or not the home page button is force enabled so on next startup, the value can -- * be made available immediately. -- */ -- public static void cacheHomePageButtonForceEnabled() { -- if (PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled()) return; -- ChromePreferenceManager.getInstance().writeBoolean( -- ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, -- ChromeFeatureList.isEnabled(ChromeFeatureList.HOME_PAGE_BUTTON_FORCE_ENABLED)); -- } -- -- /** -- * @return Whether or not the home page button is force enabled. -- */ -- public static boolean isHomePageButtonForceEnabled() { -- if (sIsHomePageButtonForceEnabled == null) { -- ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance(); -- -- sIsHomePageButtonForceEnabled = prefManager.readBoolean( -- ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, false); -- } -- return sIsHomePageButtonForceEnabled; -- } -- -- /** -- * Resets whether the home page button is enabled for tests. After this is called, the next -- * call to #isHomePageButtonForceEnabled() will retrieve the value from shared preferences. -- */ -- public static void resetHomePageButtonForceEnabledForTests() { -- sIsHomePageButtonForceEnabled = null; -- } -- - private static void cacheServiceManagerForDownloadResumption() { - boolean resumptionDownloadInReducedMode = - ChromeFeatureList.isEnabled(ChromeFeatureList.SERVICE_MANAGER_FOR_DOWNLOAD); -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 -@@ -1932,9 +1932,6 @@ const FeatureEntry kFeatureEntries[] = { - {"enable-chrome-duet-labels", flag_descriptions::kChromeDuetLabelsName, - flag_descriptions::kChromeDuetLabelsDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kChromeDuetLabeled)}, -- {"force-enable-home-page-button", flag_descriptions::kHomePageButtonName, -- flag_descriptions::kHomePageButtonDescription, kOsAndroid, -- FEATURE_VALUE_TYPE(chrome::android::kHomePageButtonForceEnabled)}, - {"enable-ntp-button", flag_descriptions::kNtpButtonName, - flag_descriptions::kNtpButtonDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kNTPButton)}, -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 -+++ b/chrome/browser/android/chrome_feature_list.cc -@@ -143,7 +143,6 @@ const base::Feature* kFeaturesExposedToJava[] = { - &kEphemeralTab, - &kExploreSites, - &kHandleMediaIntents, -- &kHomePageButtonForceEnabled, - &kHomepageTile, - &kHorizontalTabSwitcherAndroid, - &kIdentityDisc, -@@ -439,9 +438,6 @@ const base::Feature kForegroundNotificationManager{ - const base::Feature kHandleMediaIntents{"HandleMediaIntents", - base::FEATURE_ENABLED_BY_DEFAULT}; - --const base::Feature kHomePageButtonForceEnabled{ -- "HomePageButtonForceEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; -- - const base::Feature kHomepageTile{"HomepageTile", - base::FEATURE_ENABLED_BY_DEFAULT}; - -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 -+++ b/chrome/browser/android/chrome_feature_list.h -@@ -77,7 +77,6 @@ extern const base::Feature kEphemeralTab; - extern const base::Feature kExploreSites; - extern const base::Feature kForegroundNotificationManager; - extern const base::Feature kHandleMediaIntents; --extern const base::Feature kHomePageButtonForceEnabled; - extern const base::Feature kHomepageTile; - extern const base::Feature kHorizontalTabSwitcherAndroid; - extern const base::Feature kIdentityDisc; --- -2.11.0 - diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index b4a4ac73..df1968b2 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -4,33 +4,13 @@ Subject: Always use new tab page for default home page Ignore any partner-provided home page. --- - .../chrome/browser/partnercustomizations/HomepageManager.java | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) + .../chrome/browser/partnercustomizations/HomepageManager.java | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java -@@ -83,8 +83,7 @@ public class HomepageManager { - * @return Whether or not homepage is enabled. - */ - public static boolean isHomepageEnabled() { -- if (PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled() -- || FeatureUtilities.isHomePageButtonForceEnabled()) { -+ if (FeatureUtilities.isHomePageButtonForceEnabled()) { - return getInstance().getPrefHomepageEnabled(); - } - return false; -@@ -102,8 +101,7 @@ public class HomepageManager { - * @return Whether or not homepage setting should be shown. - */ - public static boolean shouldShowHomepageSetting() { -- return PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled() -- || FeatureUtilities.isHomePageButtonForceEnabled(); -+ return FeatureUtilities.isHomePageButtonForceEnabled(); - } - - /** -@@ -124,9 +122,7 @@ public class HomepageManager { +@@ -111,9 +111,7 @@ public class HomepageManager { * if the homepage button is force enabled via flag. */ public static String getDefaultHomepageUri() { @@ -42,5 +22,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz /** -- -2.11.0 +2.17.1 diff --git a/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch b/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch index 6a7fb9db..aced69fb 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch @@ -2,12 +2,12 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 25 Mar 2018 21:49:37 +0200 Subject: AudioBuffer, AnalyserNode: fingerprinting mitigations via IDL -Return fixed base latency +Truncate base latency precision to two digits --- - third_party/blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- - third_party/blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++-- - third_party/blink/renderer/modules/webaudio/audio_context.cc | 1 + - 3 files changed, 7 insertions(+), 6 deletions(-) + .../blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- + .../blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++-- + .../blink/renderer/modules/webaudio/audio_context.cc | 4 +++- + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl --- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl @@ -43,14 +43,17 @@ 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 --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -358,6 +358,7 @@ void AudioContext::StopRendering() { - double AudioContext::baseLatency() const { +@@ -373,7 +373,9 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); -+ return 0.04; - // TODO(hongchan): Due to the incompatible constructor between - // AudioDestinationNode and RealtimeAudioDestinationNode, casting directly +- return base_latency_; ++ // remove precision past two decimal digits ++ int l = base_latency_ * 100; ++ return double(l)/100; + } + + MediaElementAudioSourceNode* AudioContext::createMediaElementSource( -- -2.11.0 +2.17.1 diff --git a/build/patches/Battery-API-return-nothing.patch b/build/patches/Battery-API-return-nothing.patch index fbd5e4c5..e7c0197e 100644 --- a/build/patches/Battery-API-return-nothing.patch +++ b/build/patches/Battery-API-return-nothing.patch @@ -4,7 +4,7 @@ Subject: Battery API: return nothing Include @thestinger's fix for correct charging/unknown values --- - .../renderer/modules/battery/battery_manager.cc | 25 ++++------------------ + .../modules/battery/battery_manager.cc | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc @@ -61,5 +61,5 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi void BatteryManager::RegisterWithDispatcher() { -- -2.11.0 +2.17.1 diff --git a/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch b/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch index 91ed7032..f59cf597 100644 --- a/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch +++ b/build/patches/Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch @@ -6,21 +6,21 @@ Subject: Block all connection requests with 'qjz9zk' in the domain name or An info bar is displayed unless the --disable-trkbar command-line flag or the chrome://flag option is used. This patch is based on Iridium's 'net: add "trk:" scheme and help identify URLs being retrieved' --- - .../chrome_autocomplete_scheme_classifier.cc | 1 + - chrome/browser/history/history_utils.cc | 1 + - chrome/browser/ui/singleton_tabs.cc | 3 +- - chromecast/browser/url_request_context_factory.cc | 7 ++++- - components/omnibox/browser/autocomplete_input.cc | 7 +++-- - components/url_formatter/url_fixer.cc | 4 +++ - .../browser/child_process_security_policy_impl.cc | 1 + - net/BUILD.gn | 2 ++ - net/url_request/trk_protocol_handler.cc | 26 +++++++++++++++++ - net/url_request/trk_protocol_handler.h | 33 ++++++++++++++++++++++ - net/url_request/url_request.cc | 8 ++++++ - net/url_request/url_request_context_builder.cc | 4 +++ - url/url_constants.cc | 1 + - url/url_constants.h | 1 + - url/url_util.cc | 2 ++ + .../chrome_autocomplete_scheme_classifier.cc | 1 + + chrome/browser/history/history_utils.cc | 1 + + chrome/browser/ui/singleton_tabs.cc | 3 +- + .../browser/url_request_context_factory.cc | 7 +++- + .../omnibox/browser/autocomplete_input.cc | 7 ++-- + components/url_formatter/url_fixer.cc | 4 +++ + .../child_process_security_policy_impl.cc | 1 + + net/BUILD.gn | 2 ++ + net/url_request/trk_protocol_handler.cc | 26 +++++++++++++++ + net/url_request/trk_protocol_handler.h | 33 +++++++++++++++++++ + net/url_request/url_request.cc | 8 +++++ + .../url_request_context_builder.cc | 4 +++ + url/url_constants.cc | 1 + + url/url_constants.h | 1 + + url/url_util.cc | 2 ++ 15 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 net/url_request/trk_protocol_handler.cc create mode 100644 net/url_request/trk_protocol_handler.h @@ -50,7 +50,7 @@ diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/hi diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc --- a/chrome/browser/ui/singleton_tabs.cc +++ b/chrome/browser/ui/singleton_tabs.cc -@@ -99,7 +99,8 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { +@@ -100,7 +100,8 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { // Skip view-source tabs. This is needed because RewriteURLIfNecessary // removes the "view-source:" scheme which leads to incorrect matching. @@ -131,7 +131,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -507,6 +507,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() { +@@ -513,6 +513,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() { RegisterWebSafeScheme(url::kHttpsScheme); RegisterWebSafeScheme(url::kFtpScheme); RegisterWebSafeScheme(url::kDataScheme); @@ -142,7 +142,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1787,6 +1787,8 @@ component("net") { +@@ -1801,6 +1801,8 @@ component("net") { "url_request/report_sender.h", "url_request/static_http_user_agent_settings.cc", "url_request/static_http_user_agent_settings.h", @@ -223,7 +223,7 @@ new file mode 100644 diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc -@@ -15,6 +15,7 @@ +@@ -13,6 +13,7 @@ #include "base/metrics/histogram_macros.h" #include "base/rand_util.h" #include "base/stl_util.h" @@ -231,7 +231,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc #include "base/strings/utf_string_conversions.h" #include "base/synchronization/lock.h" #include "base/threading/thread_task_runner_handle.h" -@@ -42,6 +43,7 @@ +@@ -40,6 +41,7 @@ #include "net/url_request/url_request_redirect_job.h" #include "url/gurl.h" #include "url/origin.h" @@ -239,7 +239,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc using base::Time; using std::string; -@@ -612,6 +614,12 @@ URLRequest::URLRequest(const GURL& url, +@@ -592,6 +594,12 @@ URLRequest::URLRequest(const GURL& url, // Sanity check out environment. DCHECK(base::ThreadTaskRunnerHandle::IsSet()); @@ -264,15 +264,15 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur #include "net/url_request/url_request_context_storage.h" #include "net/url_request/url_request_intercepting_job_factory.h" @@ -641,6 +642,9 @@ std::unique_ptr URLRequestContextBuilder::Build() { - job_factory->SetProtocolHandler(url::kDataScheme, - std::make_unique()); - + } + url_request_interceptors_.clear(); + } + job_factory->SetProtocolHandler(url::kTraceScheme, + std::make_unique()); + - #if !BUILDFLAG(DISABLE_FILE_SUPPORT) - if (file_enabled_) { - job_factory->SetProtocolHandler( + if (create_intercepting_job_factory_) { + top_job_factory = std::move(create_intercepting_job_factory_) + .Run(std::move(top_job_factory)); diff --git a/url/url_constants.cc b/url/url_constants.cc --- a/url/url_constants.cc +++ b/url/url_constants.cc @@ -315,5 +315,5 @@ diff --git a/url/url_util.cc b/url/url_util.cc // Schemes that can be sent CORS requests. -- -2.11.0 +2.17.1 diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index 97061691..bc5bc0d5 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -7,36 +7,63 @@ Do not use experiments to enable/disable presets Always enable ad filtering Download filters by checking Last-Modified header first --- - chrome/browser/after_startup_task_utils.cc | 5 + - chrome/browser/browser_process.h | 7 + - chrome/browser/browser_process_impl.cc | 28 +++ - chrome/browser/browser_process_impl.h | 3 + - chrome/browser/chrome_browser_main.cc | 5 +- - chrome/browser/chrome_content_browser_client.cc | 18 -- - components/component_updater/BUILD.gn | 6 + - .../component_updater/adblock_updater_service.cc | 249 +++++++++++++++++++++ - .../component_updater/adblock_updater_service.h | 99 ++++++++ - .../component_updater/download_filters_task.cc | 228 +++++++++++++++++++ - .../component_updater/download_filters_task.h | 131 +++++++++++ - .../content_subresource_filter_throttle_manager.cc | 11 + - .../content/browser/ruleset_service.cc | 33 ++- - .../content/browser/ruleset_service.h | 7 +- - .../content/browser/ruleset_version.cc | 1 + - .../content/browser/ruleset_version.h | 5 + - .../content/browser/verified_ruleset_dealer.cc | 2 + - .../core/browser/subresource_filter_features.cc | 113 +--------- - .../core/common/common_features.cc | 2 +- - .../frame_host/navigation_throttle_runner.cc | 10 - - 20 files changed, 817 insertions(+), 146 deletions(-) + .../chrome/browser/util/FeatureUtilities.java | 10 + + chrome/browser/after_startup_task_utils.cc | 5 + + chrome/browser/browser_process.h | 7 + + chrome/browser/browser_process_impl.cc | 28 ++ + chrome/browser/browser_process_impl.h | 3 + + chrome/browser/chrome_browser_main.cc | 5 +- + .../browser/chrome_content_browser_client.cc | 17 -- + components/component_updater/BUILD.gn | 6 + + .../adblock_updater_service.cc | 249 ++++++++++++++++++ + .../adblock_updater_service.h | 99 +++++++ + .../download_filters_task.cc | 228 ++++++++++++++++ + .../component_updater/download_filters_task.h | 131 +++++++++ + ...ent_subresource_filter_throttle_manager.cc | 11 + + .../content/browser/ruleset_service.cc | 33 ++- + .../content/browser/ruleset_service.h | 7 +- + .../content/browser/ruleset_version.cc | 1 + + .../content/browser/ruleset_version.h | 5 + + .../browser/verified_ruleset_dealer.cc | 2 + + .../browser/subresource_filter_features.cc | 113 +------- + .../core/common/common_features.cc | 2 +- + .../frame_host/navigation_throttle_runner.cc | 10 - + 21 files changed, 827 insertions(+), 145 deletions(-) create mode 100644 components/component_updater/adblock_updater_service.cc create mode 100644 components/component_updater/adblock_updater_service.h create mode 100644 components/component_updater/download_filters_task.cc create mode 100644 components/component_updater/download_filters_task.h +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 ++++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java +@@ -277,6 +277,14 @@ public class FeatureUtilities { + cacheServiceManagerForBackgroundPrefetch(); + } + ++ public static void setAdBlockFiltersURL(String url) { ++ FeatureUtilitiesJni.get().setAdBlockFiltersURL(url); ++ } ++ ++ public static String getAdBlockFiltersURL() { ++ return FeatureUtilitiesJni.get().getAdBlockFiltersURL(); ++ } ++ + /** + * @return True if tab model merging for Android N+ is enabled. + */ +@@ -845,5 +853,7 @@ public class FeatureUtilities { + void setCustomTabVisible(boolean visible); + void setIsInMultiWindowMode(boolean isInMultiWindowMode); + boolean isNetworkServiceWarmUpEnabled(); ++ void setAdBlockFiltersURL(String url); ++ String getAdBlockFiltersURL(); + } + } diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc --- a/chrome/browser/after_startup_task_utils.cc +++ b/chrome/browser/after_startup_task_utils.cc -@@ -36,6 +36,8 @@ +@@ -37,6 +37,8 @@ #include "ui/views/linux_ui/linux_ui.h" #endif @@ -45,7 +72,7 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s using content::BrowserThread; using content::WebContents; using content::WebContentsObserver; -@@ -135,6 +137,9 @@ void SetBrowserStartupIsComplete() { +@@ -136,6 +138,9 @@ void SetBrowserStartupIsComplete() { g_after_startup_tasks.Get().clear(); g_after_startup_tasks.Get().shrink_to_fit(); @@ -58,14 +85,14 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h -@@ -22,6 +22,7 @@ - #include "chrome/browser/shell_integration.h" +@@ -21,6 +21,7 @@ + #include "build/build_config.h" #include "chrome/common/buildflags.h" #include "media/media_buildflags.h" +#include "components/component_updater/adblock_updater_service.h" class BackgroundModeManager; - class DownloadRequestLimiter; + class BrowserProcessPlatformPart; @@ -58,6 +59,10 @@ class ComponentUpdateService; class SupervisedUserWhitelistInstaller; } @@ -89,7 +116,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1009,6 +1009,34 @@ BrowserProcessImpl::component_updater() { +@@ -1005,6 +1005,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -135,7 +162,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc #if BUILDFLAG(ENABLE_SUPERVISED_USERS) component_updater::SupervisedUserWhitelistInstaller* supervised_user_whitelist_installer() override; -@@ -361,6 +362,8 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -357,6 +358,8 @@ class BrowserProcessImpl : public BrowserProcess, // but some users of component updater only install per-user. std::unique_ptr component_updater_; @@ -147,7 +174,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -1722,8 +1722,11 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1715,8 +1715,11 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { PreBrowserStart(); @@ -163,7 +190,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -65,7 +65,6 @@ +@@ -63,7 +63,6 @@ #include "chrome/browser/hid/chrome_hid_delegate.h" #include "chrome/browser/language/translate_frame_binder.h" #include "chrome/browser/lifetime/browser_shutdown.h" @@ -171,15 +198,15 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/media/router/media_router_feature.h" #include "chrome/browser/media/router/presentation/presentation_service_delegate_impl.h" #include "chrome/browser/media/router/presentation/receiver_presentation_service_delegate_impl.h" -@@ -81,7 +80,6 @@ - #include "chrome/browser/net_benchmarking.h" - #include "chrome/browser/notifications/platform_notification_service_factory.h" - #include "chrome/browser/notifications/platform_notification_service_impl.h" --#include "chrome/browser/page_load_metrics/metrics_navigation_throttle.h" - #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h" - #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" - #include "chrome/browser/password_manager/chrome_password_manager_client.h" -@@ -4044,16 +4042,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -207,7 +206,6 @@ + #include "components/nacl/common/buildflags.h" + #include "components/nacl/common/nacl_constants.h" + #include "components/net_log/chrome_net_log.h" +-#include "components/page_load_metrics/browser/metrics_navigation_throttle.h" + #include "components/page_load_metrics/browser/metrics_web_contents_observer.h" + #include "components/page_load_metrics/browser/page_load_metrics_util.h" + #include "components/payments/content/payment_request_display_manager.h" +@@ -3798,16 +3796,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( content::NavigationHandle* handle) { std::vector> throttles; @@ -194,21 +221,20 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch - } - #if BUILDFLAG(ENABLE_PLUGINS) - std::unique_ptr flash_url_throttle = - FlashDownloadInterception::MaybeCreateThrottleFor(handle); -@@ -4163,12 +4151,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - } + MaybeAddThrottle(&throttles, + FlashDownloadInterception::MaybeCreateThrottleFor(handle)); +@@ -3914,11 +3902,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( + safe_browsing::MaybeCreateNavigationThrottle(handle)); #endif -- std::unique_ptr -- lookalike_url_navigation_throttle = lookalikes:: -- LookalikeUrlNavigationThrottle::MaybeCreateNavigationThrottle(handle); -- if (lookalike_url_navigation_throttle) -- throttles.push_back(std::move(lookalike_url_navigation_throttle)); +- MaybeAddThrottle( +- &throttles, +- lookalikes::LookalikeUrlNavigationThrottle::MaybeCreateNavigationThrottle( +- handle)); - - std::unique_ptr pdf_iframe_throttle = - PDFIFrameNavigationThrottle::MaybeCreateThrottleFor(handle); - if (pdf_iframe_throttle) + MaybeAddThrottle(&throttles, + PDFIFrameNavigationThrottle::MaybeCreateThrottleFor(handle)); + diff --git a/components/component_updater/BUILD.gn b/components/component_updater/BUILD.gn --- a/components/component_updater/BUILD.gn +++ b/components/component_updater/BUILD.gn @@ -269,7 +295,7 @@ new file mode 100644 +#include "url/gurl.h" +#include "base/strings/safe_sprintf.h" +#include "base/strings/string_number_conversions.h" -+ ++#include "base/strings/string_split.h" +namespace adblock_updater { + +// all constants express seconds @@ -743,7 +769,7 @@ new file mode 100644 + +void DownloadFiltersTask::OnResponseStarted( + const GURL& final_url, -+ const network::ResourceResponseHead& response_head) { ++ const network::mojom::URLResponseHead& response_head) { + + final_url_ = final_url; + response_code_ = response_head.headers ? response_head.headers->response_code() : -1; @@ -920,7 +946,7 @@ new file mode 100644 + + void OnDownloadProgress(uint64_t current); + void OnResponseStarted(const GURL& final_url, -+ const network::ResourceResponseHead& response_head); ++ const network::mojom::URLResponseHead& response_head); + void OnDownloadComplete(base::FilePath file_path, + int net_error, + int64_t content_size); @@ -955,7 +981,7 @@ new file mode 100644 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc -@@ -308,6 +308,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -306,6 +306,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } @@ -1325,16 +1351,16 @@ diff --git a/content/browser/frame_host/navigation_throttle_runner.cc b/content/ #include "content/browser/frame_host/form_submission_throttle.h" -#include "content/browser/frame_host/history_navigation_ablation_study_navigation_throttle.h" #include "content/browser/frame_host/mixed_content_navigation_throttle.h" - #include "content/browser/frame_host/navigation_handle_impl.h" + #include "content/browser/frame_host/navigation_request.h" #include "content/browser/frame_host/navigator_delegate.h" @@ -120,15 +119,6 @@ void NavigationThrottleRunner::RegisterNavigationThrottles() { - devtools_instrumentation::CreateNavigationThrottles(handle)) { + devtools_instrumentation::CreateNavigationThrottles(handle_)) { AddThrottle(std::move(throttle)); } - - // Delay navigation for an ablation study (if needed). - AddThrottle(HistoryNavigationAblationStudyNavigationThrottle:: -- MaybeCreateForNavigation(handle)); +- MaybeCreateForNavigation(handle_)); - - // Insert all testing NavigationThrottles last. - throttles_.insert(throttles_.end(), @@ -1344,5 +1370,5 @@ diff --git a/content/browser/frame_host/navigation_throttle_runner.cc b/content/ NavigationThrottle* NavigationThrottleRunner::GetDeferringThrottle() const { -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-HEAD-requests-for-single-word-Omnibar-searches.patch b/build/patches/Disable-HEAD-requests-for-single-word-Omnibar-searches.patch index 3d03ddda..92e42f77 100644 --- a/build/patches/Disable-HEAD-requests-for-single-word-Omnibar-searches.patch +++ b/build/patches/Disable-HEAD-requests-for-single-word-Omnibar-searches.patch @@ -4,14 +4,14 @@ Subject: Disable HEAD requests for single-word Omnibar searches Patch from https://github.com/Eloston/ungoogled-chromium/issues/814#issuecomment-526873727 --- - chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc | 8 ++++---- - chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h | 2 +- + .../ui/omnibox/chrome_omnibox_navigation_observer.cc | 8 ++++---- + .../ui/omnibox/chrome_omnibox_navigation_observer.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc --- a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc +++ b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc -@@ -85,8 +85,8 @@ ChromeOmniboxNavigationObserver::ChromeOmniboxNavigationObserver( +@@ -86,8 +86,8 @@ ChromeOmniboxNavigationObserver::ChromeOmniboxNavigationObserver( shortcuts_backend_(ShortcutsBackendFactory::GetForProfile(profile)), load_state_(LOAD_NOT_SEEN), fetch_state_(FETCH_NOT_COMPLETE) { @@ -22,7 +22,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c // We need to start by listening to AllSources, since we don't know which tab // the navigation might occur in. -@@ -286,7 +286,7 @@ void ChromeOmniboxNavigationObserver::OnAllLoadingFinished() { +@@ -287,7 +287,7 @@ void ChromeOmniboxNavigationObserver::OnAllLoadingFinished() { delete this; } @@ -31,7 +31,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c const GURL& destination_url) { net::NetworkTrafficAnnotationTag traffic_annotation = net::DefineNetworkTrafficAnnotation("omnibox_navigation_observer", R"( -@@ -327,4 +327,4 @@ void ChromeOmniboxNavigationObserver::CreateLoader( +@@ -328,4 +328,4 @@ void ChromeOmniboxNavigationObserver::CreateLoader( loader_->SetAllowHttpErrorResults(true); loader_->SetOnRedirectCallback(base::BindRepeating( &ChromeOmniboxNavigationObserver::OnURLRedirect, base::Unretained(this))); @@ -50,5 +50,5 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h b/ch const base::string16 text_; const AutocompleteMatch match_; -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-NTP-remote-suggestions-by-default.patch b/build/patches/Disable-NTP-remote-suggestions-by-default.patch index 13346035..fb2f115f 100644 --- a/build/patches/Disable-NTP-remote-suggestions-by-default.patch +++ b/build/patches/Disable-NTP-remote-suggestions-by-default.patch @@ -3,8 +3,9 @@ Date: Thu, 12 Oct 2017 08:15:17 +0200 Subject: Disable NTP remote suggestions by default --- - components/ntp_snippets/features.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + components/ntp_snippets/features.cc | 4 ++-- + .../remote/remote_suggestions_status_service_impl.cc | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc --- a/components/ntp_snippets/features.cc @@ -27,6 +28,20 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu const base::Feature kOptionalImagesEnabledFeature{ "NTPRemoteSuggestionsOptionalImages", base::FEATURE_ENABLED_BY_DEFAULT}; +diff --git a/components/ntp_snippets/remote/remote_suggestions_status_service_impl.cc b/components/ntp_snippets/remote/remote_suggestions_status_service_impl.cc +--- a/components/ntp_snippets/remote/remote_suggestions_status_service_impl.cc ++++ b/components/ntp_snippets/remote/remote_suggestions_status_service_impl.cc +@@ -36,8 +36,8 @@ RemoteSuggestionsStatusServiceImpl::~RemoteSuggestionsStatusServiceImpl() = + // static + void RemoteSuggestionsStatusServiceImpl::RegisterProfilePrefs( + PrefRegistrySimple* registry) { +- registry->RegisterBooleanPref(prefs::kEnableSnippets, true); +- registry->RegisterBooleanPref(prefs::kArticlesListVisible, true); ++ registry->RegisterBooleanPref(prefs::kEnableSnippets, false); ++ registry->RegisterBooleanPref(prefs::kArticlesListVisible, false); + } + + void RemoteSuggestionsStatusServiceImpl::Init( -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-Omaha-update-checks.patch b/build/patches/Disable-Omaha-update-checks.patch index 8b9363e6..f0014bb6 100644 --- a/build/patches/Disable-Omaha-update-checks.patch +++ b/build/patches/Disable-Omaha-update-checks.patch @@ -4,15 +4,15 @@ Subject: Disable Omaha update checks Do not consider Jelly Bean unsupported --- - .../android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +- - .../java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java | 2 +- - chrome/browser/android/chrome_feature_list.cc | 2 +- + .../java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +- + .../org/chromium/chrome/browser/omaha/VersionNumberGetter.java | 2 +- + chrome/browser/android/chrome_feature_list.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java -@@ -135,7 +135,7 @@ public class OmahaBase { +@@ -136,7 +136,7 @@ public class OmahaBase { /** See {@link #sIsDisabled}. */ static boolean isDisabled() { @@ -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 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc -@@ -465,7 +465,7 @@ const base::Feature kIntentBlockExternalFormRedirectsNoGesture{ +@@ -458,7 +458,7 @@ const base::Feature kIntentBlockExternalFormRedirectsNoGesture{ base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kJellyBeanSupported{"JellyBeanSupported", @@ -46,5 +46,5 @@ diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/andr const base::Feature kSearchEnginePromoExistingDevice{ "SearchEnginePromo.ExistingDevice", base::FEATURE_ENABLED_BY_DEFAULT}; -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-WebRTC-by-default.patch b/build/patches/Disable-WebRTC-by-default.patch index 30ecb875..e5ce1a2e 100644 --- a/build/patches/Disable-WebRTC-by-default.patch +++ b/build/patches/Disable-WebRTC-by-default.patch @@ -9,7 +9,7 @@ Subject: Disable WebRTC by default diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -82,10 +82,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -83,10 +83,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif // TODO(guoweis): Remove next 2 options at M50. @@ -18,11 +18,11 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u + registry->RegisterBooleanPref(prefs::kWebRTCMultipleRoutesEnabled, false); + registry->RegisterBooleanPref(prefs::kWebRTCNonProxiedUdpEnabled, false); registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, -- content::kWebRTCIPHandlingDefault); -+ content::kWebRTCIPHandlingDisableNonProxiedUdp); +- blink::kWebRTCIPHandlingDefault); ++ blink::kWebRTCIPHandlingDisableNonProxiedUdp); registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); - + registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-addresses-autofill-by-default.patch b/build/patches/Disable-addresses-autofill-by-default.patch new file mode 100644 index 00000000..b7651341 --- /dev/null +++ b/build/patches/Disable-addresses-autofill-by-default.patch @@ -0,0 +1,36 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Thu, 19 Dec 2019 21:46:10 +0100 +Subject: Disable addresses autofill by default + +--- + .../autofill_assistant/AutofillAssistantPreferencesUtil.java | 2 +- + .../autofill_assistant/AutofillAssistantPreferences.java | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java +--- a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java ++++ b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferencesUtil.java +@@ -25,7 +25,7 @@ class AutofillAssistantPreferencesUtil { + /** Checks whether the Autofill Assistant switch preference in settings is on. */ + static boolean isAutofillAssistantSwitchOn() { + return ContextUtils.getAppSharedPreferences().getBoolean( +- AutofillAssistantPreferences.PREF_AUTOFILL_ASSISTANT_SWITCH, true); ++ AutofillAssistantPreferences.PREF_AUTOFILL_ASSISTANT_SWITCH, false); + } + + /** Checks whether the Autofill Assistant onboarding has been accepted. */ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferences.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferences.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferences.java +@@ -48,7 +48,7 @@ public class AutofillAssistantPreferences extends PreferenceFragmentCompat { + // (e.g. the switch will say "On" when it is really turned off), so .setChecked() should be + // called after .addPreference() + autofillAssistantSwitch.setChecked(ContextUtils.getAppSharedPreferences().getBoolean( +- PREF_AUTOFILL_ASSISTANT_SWITCH, true)); ++ PREF_AUTOFILL_ASSISTANT_SWITCH, false)); + } + + private Context getStyledContext() { +-- +2.17.1 + diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index da50411b..f078745c 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -3,13 +3,13 @@ Date: Tue, 12 Jun 2018 15:09:26 +0200 Subject: Disable all promo dialogs --- - .../chrome/browser/ChromeTabbedActivity.java | 30 +--------------------- + .../chrome/browser/ChromeTabbedActivity.java | 30 +------------------ 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -799,35 +799,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo +@@ -801,35 +801,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo try (TraceEvent e = TraceEvent.scoped( "ChromeTabbedActivity.createToolbarButtonInProductHelpController")) { ChromePreferenceManager preferenceManager = ChromePreferenceManager.getInstance(); @@ -47,5 +47,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-contextual-search-by-default.patch b/build/patches/Disable-contextual-search-by-default.patch index 2a13838f..4316f499 100644 --- a/build/patches/Disable-contextual-search-by-default.patch +++ b/build/patches/Disable-contextual-search-by-default.patch @@ -4,14 +4,14 @@ Subject: Disable contextual search by default Disable contextual search in preference by default --- - .../src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java | 2 +- - chrome/browser/profiles/profile.cc | 2 +- + .../chromium/chrome/browser/preferences/PrefServiceBridge.java | 2 +- + chrome/browser/profiles/profile.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -@@ -423,7 +423,7 @@ public class PrefServiceBridge { +@@ -449,7 +449,7 @@ public class PrefServiceBridge { * @return Whether the Contextual Search feature was disabled by the user explicitly. */ public boolean isContextualSearchDisabled() { @@ -23,7 +23,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -145,7 +145,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -154,7 +154,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #if defined(OS_ANDROID) registry->RegisterStringPref( prefs::kContextualSearchEnabled, @@ -33,5 +33,5 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil #endif // defined(OS_ANDROID) registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-dynamic-module-loading.patch b/build/patches/Disable-dynamic-module-loading.patch index 3d81b21e..68f261e8 100644 --- a/build/patches/Disable-dynamic-module-loading.patch +++ b/build/patches/Disable-dynamic-module-loading.patch @@ -3,17 +3,17 @@ Date: Mon, 20 May 2019 23:14:36 +0200 Subject: Disable dynamic module loading --- - chrome/android/chrome_java_sources.gni | 13 ---------- - .../browser/customtabs/CustomTabActivity.java | 18 ------------- - .../customtabs/CustomTabIntentDataProvider.java | 17 ++---------- - .../browser/customtabs/CustomTabsConnection.java | 30 ---------------------- - .../CustomTabActivityComponent.java | 4 --- + chrome/android/chrome_java_sources.gni | 13 -------- + .../browser/customtabs/CustomTabActivity.java | 18 ----------- + .../CustomTabIntentDataProvider.java | 17 ++--------- + .../customtabs/CustomTabsConnection.java | 30 ------------------- + .../CustomTabActivityComponent.java | 4 --- 5 files changed, 2 insertions(+), 80 deletions(-) diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -418,19 +418,6 @@ chrome_java_sources = [ +@@ -426,19 +426,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/customtabs/content/TabCreationMode.java", "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java", "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java", @@ -31,12 +31,12 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java - "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleMetrics.java", - "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ObjectWrapper.java", "java/src/org/chromium/chrome/browser/customtabs/features/CustomTabNavigationBarController.java", + "java/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeController.java", "java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabBrowserControlsVisibilityDelegate.java", - "java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbarCoordinator.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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -66,7 +66,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.Int +@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.Int import org.chromium.chrome.browser.customtabs.content.TabCreationMode; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityComponent; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityModule; @@ -44,17 +44,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.customtabs.features.CustomTabNavigationBarController; import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator; import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule; -@@ -136,9 +135,6 @@ public class CustomTabActivity extends ChromeActivity= Build.VERSION_CODES.LOLLIPOP && useSeparateTask()) { +@@ -280,10 +270,6 @@ public class CustomTabActivity extends ChromeActivityDO NOT CALL * Public to be instanciable from {@link ChromeApplication}. This is however -@@ -1373,7 +1370,6 @@ public class CustomTabsConnection { +@@ -1382,7 +1379,6 @@ public class CustomTabsConnection { if (ChromeApplication.isSevereMemorySignal(level)) { getInstance().mClientManager.cleanupUnusedSessions(); } @@ -151,7 +151,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust } @VisibleForTesting -@@ -1510,32 +1506,6 @@ public class CustomTabsConnection { +@@ -1519,32 +1515,6 @@ public class CustomTabsConnection { recordSpeculationStatusOnSwap(SPECULATION_STATUS_ON_SWAP_BACKGROUND_TAB_NOT_MATCHED); } @@ -187,16 +187,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java -@@ -15,8 +15,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityNavigatio - import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController; +@@ -18,8 +18,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabContro import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabFactory; import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvider; + import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler; -import org.chromium.chrome.browser.customtabs.dynamicmodule.DynamicModuleCoordinator; -import org.chromium.chrome.browser.customtabs.dynamicmodule.DynamicModuleToolbarController; + import org.chromium.chrome.browser.customtabs.features.ImmersiveModeController; import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator; import org.chromium.chrome.browser.dependency_injection.ActivityScope; - import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule; -@@ -32,8 +30,6 @@ import dagger.Subcomponent; +@@ -36,8 +34,6 @@ import dagger.Subcomponent; @ActivityScope public interface CustomTabActivityComponent extends ChromeActivityComponent { TrustedWebActivityCoordinator resolveTrustedWebActivityCoordinator(); @@ -206,5 +206,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/depe CustomTabBottomBarDelegate resolveBottomBarDelegate(); CustomTabActivityTabController resolveTabController(); -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index e9143e0d..b6f708a9 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -3,42 +3,45 @@ Date: Sun, 8 Jul 2018 18:16:34 +0200 Subject: Disable fetching of all field trials --- - .../src/org/chromium/chrome/browser/ChromeFeatureList.java | 12 +++--------- - components/variations/service/variations_service.cc | 12 +----------- - 2 files changed, 4 insertions(+), 20 deletions(-) + .../chrome/browser/ChromeFeatureList.java | 15 +++------------ + .../variations/service/variations_service.cc | 12 +----------- + 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java -@@ -106,9 +106,7 @@ public abstract class ChromeFeatureList { +@@ -107,10 +107,7 @@ public abstract class ChromeFeatureList { */ public static int getFieldTrialParamByFeatureAsInt( String featureName, String paramName, int defaultValue) { - if (sTestFeatures != null) return defaultValue; - assert isInitialized(); -- return nativeGetFieldTrialParamByFeatureAsInt(featureName, paramName, defaultValue); +- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsInt( +- featureName, paramName, defaultValue); + return defaultValue; } /** -@@ -125,9 +123,7 @@ public abstract class ChromeFeatureList { +@@ -127,10 +124,7 @@ public abstract class ChromeFeatureList { */ public static double getFieldTrialParamByFeatureAsDouble( String featureName, String paramName, double defaultValue) { - if (sTestFeatures != null) return defaultValue; - assert isInitialized(); -- return nativeGetFieldTrialParamByFeatureAsDouble(featureName, paramName, defaultValue); +- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsDouble( +- featureName, paramName, defaultValue); + return defaultValue; } /** -@@ -144,9 +140,7 @@ public abstract class ChromeFeatureList { +@@ -147,10 +141,7 @@ public abstract class ChromeFeatureList { */ public static boolean getFieldTrialParamByFeatureAsBoolean( String featureName, String paramName, boolean defaultValue) { - if (sTestFeatures != null) return defaultValue; - assert isInitialized(); -- return nativeGetFieldTrialParamByFeatureAsBoolean(featureName, paramName, defaultValue); +- return ChromeFeatureListJni.get().getFieldTrialParamByFeatureAsBoolean( +- featureName, paramName, defaultValue); + return defaultValue; } @@ -46,7 +49,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 --- a/components/variations/service/variations_service.cc +++ b/components/variations/service/variations_service.cc -@@ -240,17 +240,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers, +@@ -241,17 +241,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers, // Variations seed fetching is only enabled in official Chrome builds, if a URL // is specified on the command line, and for testing. bool IsFetchingEnabled() { @@ -66,5 +69,5 @@ diff --git a/components/variations/service/variations_service.cc b/components/va std::unique_ptr MaybeImportFirstRunSeed( -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index ae8d21a5..64c5a2d1 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -3,9 +3,9 @@ Date: Thu, 4 Jul 2019 19:08:52 -0400 Subject: Disable media router and remoting by default --- - chrome/browser/media/router/media_router_feature.cc | 17 ++++++++--------- - chrome/browser/profiles/profile.cc | 2 +- - chrome/browser/profiles/profile_impl.cc | 2 +- + .../media/router/media_router_feature.cc | 17 ++++++++--------- + chrome/browser/profiles/profile.cc | 2 +- + chrome/browser/profiles/profile_impl.cc | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc @@ -40,7 +40,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -223,7 +223,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -232,7 +232,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { prefs::kMediaRouterFirstRunFlowAcknowledged, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -52,7 +52,7 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -444,7 +444,7 @@ void ProfileImpl::RegisterProfilePrefs( +@@ -422,7 +422,7 @@ void ProfileImpl::RegisterProfilePrefs( registry->RegisterStringPref( prefs::kPrintPreviewDefaultDestinationSelectionRules, std::string()); registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false); @@ -62,5 +62,5 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p registry->RegisterBooleanPref( prefs::kOobeMarketingOptInScreenFinished, false, -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-metrics-collection-for-NTP-tiles.patch b/build/patches/Disable-metrics-collection-for-NTP-tiles.patch index 24e10d1c..0188f5e2 100644 --- a/build/patches/Disable-metrics-collection-for-NTP-tiles.patch +++ b/build/patches/Disable-metrics-collection-for-NTP-tiles.patch @@ -3,8 +3,8 @@ Date: Wed, 20 Feb 2019 21:41:26 +0100 Subject: Disable metrics collection for NTP tiles --- - .../android/ntp/most_visited_sites_bridge.cc | 21 --------------------- - components/ntp_tiles/BUILD.gn | 3 --- + .../android/ntp/most_visited_sites_bridge.cc | 21 ------------------- + components/ntp_tiles/BUILD.gn | 3 --- 2 files changed, 24 deletions(-) diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc @@ -87,5 +87,5 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn "popular_sites_impl_unittest.cc", ] -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-metrics-on-all-I-O-threads.patch b/build/patches/Disable-metrics-on-all-I-O-threads.patch index 065d5f4c..c7ae2353 100644 --- a/build/patches/Disable-metrics-on-all-I-O-threads.patch +++ b/build/patches/Disable-metrics-on-all-I-O-threads.patch @@ -10,7 +10,7 @@ Subject: Disable metrics on all I/O threads diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -909,7 +909,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -905,7 +905,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { #endif // defined(OS_CHROMEOS) registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled, @@ -32,5 +32,5 @@ diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profile #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" #include "components/signin/public/base/signin_pref_names.h" -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-offline-pages-in-the-downloads-home-to-be-opened-in-CCT-by-default.patch b/build/patches/Disable-offline-pages-in-the-downloads-home-to-be-opened-in-CCT-by-default.patch index dbb7093a..daed1089 100644 --- a/build/patches/Disable-offline-pages-in-the-downloads-home-to-be-opened-in-CCT-by-default.patch +++ b/build/patches/Disable-offline-pages-in-the-downloads-home-to-be-opened-in-CCT-by-default.patch @@ -20,5 +20,5 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/ const base::Feature kOfflinePagesCTSuppressNotificationsFeature{ "OfflinePagesCTSuppressNotifications", base::FEATURE_DISABLED_BY_DEFAULT}; -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch b/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch index 5736bb83..afd17e44 100644 --- a/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch +++ b/build/patches/Disable-omission-of-URL-elements-in-Omnibox.patch @@ -33,5 +33,5 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte const FormatUrlType kFormatUrlOmitDefaults = -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-password-reuse-detection-on-android.patch b/build/patches/Disable-password-reuse-detection-on-android.patch new file mode 100644 index 00000000..e18e3942 --- /dev/null +++ b/build/patches/Disable-password-reuse-detection-on-android.patch @@ -0,0 +1,23 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sun, 15 Dec 2019 22:39:56 +0100 +Subject: Disable password reuse detection on android + +--- + components/password_manager/core/browser/BUILD.gn | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn +--- a/components/password_manager/core/browser/BUILD.gn ++++ b/components/password_manager/core/browser/BUILD.gn +@@ -12,7 +12,7 @@ if (is_android) { + + # TODO(crbug.com/1006430): Fix password reuse detection not fully functional on + # Android. +-password_reuse_detection_support = !is_ios ++password_reuse_detection_support = !is_ios && !is_android + password_reuse_warning_support = !is_android && !is_ios + password_on_focus_ping_support = !is_android && !is_ios + +-- +2.17.1 + diff --git a/build/patches/Disable-plugins-enumeration.patch b/build/patches/Disable-plugins-enumeration.patch index 52cd62c8..e23477a0 100644 --- a/build/patches/Disable-plugins-enumeration.patch +++ b/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 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1234,10 +1234,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -1169,10 +1169,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { @@ -23,5 +23,5 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) { -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-previews-by-default.patch b/build/patches/Disable-previews-by-default.patch index 1fc1041f..a4af8c24 100644 --- a/build/patches/Disable-previews-by-default.patch +++ b/build/patches/Disable-previews-by-default.patch @@ -24,5 +24,5 @@ diff --git a/components/previews/core/previews_features.cc b/components/previews // Enables the Offline previews on android slow connections. -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-promos-displayed-in-bookmarks-manager.patch b/build/patches/Disable-promos-displayed-in-bookmarks-manager.patch index e00de6cd..4364f39d 100644 --- a/build/patches/Disable-promos-displayed-in-bookmarks-manager.patch +++ b/build/patches/Disable-promos-displayed-in-bookmarks-manager.patch @@ -5,11 +5,11 @@ Subject: Disable promos displayed in bookmarks manager Remove personalized signin promo view from bookmarks, never reach signin thresholds. --- - .../personalized_signin_promo_view_bookmarks.xml | 30 ------------ - .../browser/bookmarks/BookmarkItemsAdapter.java | 23 +-------- - .../browser/bookmarks/BookmarkPromoHeader.java | 54 +--------------------- - .../bookmarks/ReorderBookmarkItemsAdapter.java | 19 +------- - .../browser/signin/SigninPromoController.java | 19 +------- + ...rsonalized_signin_promo_view_bookmarks.xml | 30 ----------- + .../bookmarks/BookmarkItemsAdapter.java | 23 +------- + .../bookmarks/BookmarkPromoHeader.java | 54 +------------------ + .../ReorderBookmarkItemsAdapter.java | 19 +------ + .../browser/signin/SigninPromoController.java | 19 +------ 5 files changed, 7 insertions(+), 138 deletions(-) delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml @@ -52,7 +52,7 @@ deleted file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java -@@ -59,7 +59,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -60,7 +60,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter private BookmarkDelegate mDelegate; private Context mContext; @@ -60,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private String mSearchText; private BookmarkId mCurrentFolder; -@@ -217,9 +216,9 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -219,9 +218,9 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter switch (viewType) { case ViewType.PERSONALIZED_SIGNIN_PROMO: @@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm case ViewType.FOLDER: BookmarkFolderRow folder = (BookmarkFolderRow) LayoutInflater.from( parent.getContext()).inflate(R.layout.bookmark_folder_row, parent, false); -@@ -240,8 +239,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -242,8 +241,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter public void onBindViewHolder(ViewHolder holder, int position) { switch (holder.getItemViewType()) { case ViewType.PERSONALIZED_SIGNIN_PROMO: @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm break; case ViewType.SYNC_PROMO: break; -@@ -260,7 +257,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -262,7 +259,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter public void onViewRecycled(ViewHolder holder) { switch (holder.getItemViewType()) { case ViewType.PERSONALIZED_SIGNIN_PROMO: @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm break; default: // Other view holders don't have special recycling code. -@@ -296,7 +292,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -298,7 +294,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter } }; @@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm populateTopLevelFoldersList(); notifyDataSetChanged(); } -@@ -307,7 +302,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -309,7 +304,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter mDelegate.removeUIObserver(this); mDelegate.getModel().removeObserver(mBookmarkModelObserver); mDelegate = null; @@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } @Override -@@ -387,19 +381,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter +@@ -389,19 +383,6 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter if (currentUIState == BookmarkUIState.STATE_SEARCHING) return; assert currentUIState == BookmarkUIState.STATE_FOLDER : "Unexpected UI state"; @@ -128,18 +128,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java -@@ -18,7 +18,6 @@ import org.chromium.base.ContextUtils; +@@ -19,7 +19,6 @@ import org.chromium.base.ContextUtils; import org.chromium.base.VisibleForTesting; import org.chromium.chrome.R; import org.chromium.chrome.browser.signin.IdentityServicesProvider; -import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; import org.chromium.chrome.browser.signin.ProfileDataCache; - import org.chromium.chrome.browser.signin.SigninAccessPoint; import org.chromium.chrome.browser.signin.SigninManager; + import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; @@ -132,19 +131,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs + return mPromoState; } - /** +- /** - * @return Personalized signin promo header {@link ViewHolder} instance that can be used with - * {@link RecyclerView}. - */ @@ -152,11 +153,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm - return new ViewHolder(view) {}; - } - -- /** + /** * @return Sync promo header {@link ViewHolder} instance that can be used with * {@link RecyclerView}. - */ -@@ -156,42 +142,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs +@@ -157,42 +143,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs return new ViewHolder(view) {}; } @@ -199,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private @PromoState int calculatePromoState() { if (sPromoStateForTests != null) { return sPromoStateForTests; -@@ -204,8 +154,7 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs +@@ -205,8 +155,7 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs if (!ChromeSigninController.get().isSignedIn()) { boolean impressionLimitReached = !SigninPromoController.hasNotReachedImpressionLimit( SigninAccessPoint.BOOKMARK_MANAGER); @@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return PromoState.PROMO_NONE; } return PromoState.PROMO_SIGNIN_PERSONALIZED; -@@ -253,7 +202,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs +@@ -254,7 +203,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs } private void triggerPromoUpdate() { @@ -220,7 +220,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ReorderBookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ReorderBookmarkItemsAdapter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ReorderBookmarkItemsAdapter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ReorderBookmarkItemsAdapter.java -@@ -186,8 +186,6 @@ class ReorderBookmarkItemsAdapter extends DragReorderableListAdapter - -- - @@ -93,10 +94,9 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi - android:key="safe_browsing" - android:title="@string/safe_browsing_title" - android:summary="@string/safe_browsing_summary" /> -- @@ -33,14 +20,6 @@ android:title="@string/preload_pages_title" android:summary="@string/preload_pages_summary" @@ -115,10 +115,11 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/res/xml/sync_and_services_preferences.xml b/chrome/android/java/res/xml/sync_and_services_preferences.xml --- a/chrome/android/java/res/xml/sync_and_services_preferences.xml +++ b/chrome/android/java/res/xml/sync_and_services_preferences.xml -@@ -51,26 +51,6 @@ +@@ -50,30 +50,10 @@ + android:title="@string/autocomplete_searches_and_urls_title" android:summary="@string/autocomplete_searches_and_urls_summary" android:persistent="false"/> - + - -- Uses cookies to remember your preferences, even if you don't visit those pages @@ -360,7 +364,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Make searches and browsing better -@@ -421,12 +415,6 @@ CHAR-LIMIT guidelines: +@@ -415,12 +409,6 @@ CHAR-LIMIT guidelines: For more settings that relate to privacy, security, and data collection, see <link>Sync and Google services</link> @@ -373,7 +377,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Cancel sync? -@@ -728,30 +716,12 @@ CHAR-LIMIT guidelines: +@@ -711,30 +699,12 @@ CHAR-LIMIT guidelines: Privacy @@ -404,7 +408,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Tap to Search -@@ -4041,9 +4011,6 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -3947,9 +3917,6 @@ The site does NOT gain access to the camera. The camera images are only visible You can see sites you visit in Chrome and set timers for them.\n\nGoogle gets info about the sites you set timers for and how long you visit them. This info is used to make Digital Wellbeing better. @@ -417,7 +421,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3039,8 +3039,6 @@ jumbo_split_static_library("browser") { +@@ -2983,8 +2983,6 @@ jumbo_static_library("browser") { "download/download_commands.h", "download/download_crx_util.cc", "download/download_crx_util.h", @@ -469,7 +473,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -68,7 +68,6 @@ +@@ -69,7 +69,6 @@ #include "chrome/browser/printing/print_preview_dialog_controller.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/resource_coordinator/resource_coordinator_parts.h" @@ -477,7 +481,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro #include "chrome/browser/shell_integration.h" #include "chrome/browser/site_isolation/prefs_observer.h" #include "chrome/browser/ssl/secure_origin_prefs_observer.h" -@@ -361,8 +360,6 @@ void BrowserProcessImpl::StartTearDown() { +@@ -362,8 +361,6 @@ void BrowserProcessImpl::StartTearDown() { metrics_services_manager_.reset(); intranet_redirect_detector_.reset(); @@ -486,7 +490,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro network_time_tracker_.reset(); #if BUILDFLAG(ENABLE_PLUGINS) plugins_resource_service_.reset(); -@@ -954,22 +951,6 @@ StatusTray* BrowserProcessImpl::status_tray() { +@@ -950,22 +947,6 @@ StatusTray* BrowserProcessImpl::status_tray() { return status_tray_.get(); } @@ -509,7 +513,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro subresource_filter::RulesetService* BrowserProcessImpl::subresource_filter_ruleset_service() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1228,23 +1209,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { +@@ -1222,23 +1203,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() { } void BrowserProcessImpl::CreateSafeBrowsingService() { @@ -546,7 +550,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc subresource_filter::RulesetService* subresource_filter_ruleset_service() override; optimization_guide::OptimizationGuideService* optimization_guide_service() -@@ -312,9 +309,6 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -308,9 +305,6 @@ class BrowserProcessImpl : public BrowserProcess, std::unique_ptr background_mode_manager_; #endif @@ -617,7 +621,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 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -120,10 +120,9 @@ +@@ -111,10 +111,9 @@ #include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h" #include "chrome/browser/renderer_preferences_util.h" #include "chrome/browser/resource_coordinator/background_tab_navigation_throttle.h" @@ -630,22 +634,18 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/safe_browsing/ui_manager.h" #include "chrome/browser/safe_browsing/url_checker_delegate_impl.h" #include "chrome/browser/search/search.h" -@@ -136,11 +135,13 @@ - #include "chrome/browser/speech/tts_controller_delegate_impl.h" - #include "chrome/browser/ssl/insecure_sensitive_input_driver_factory.h" - #include "chrome/browser/ssl/ssl_blocking_page.h" --#include "chrome/browser/ssl/ssl_cert_reporter.h" -+//#include "chrome/browser/ssl/ssl_cert_reporter.h" - #include "chrome/browser/ssl/ssl_client_auth_metrics.h" - #include "chrome/browser/ssl/ssl_client_certificate_selector.h" - #include "chrome/browser/ssl/ssl_error_handler.h" +@@ -237,8 +236,10 @@ + #include "components/safe_browsing/features.h" + #include "components/safe_browsing/password_protection/password_protection_navigation_throttle.h" + #include "components/security_interstitials/content/origin_policy_ui.h" +#if defined(FULL_SAFE_BROWSING) - #include "chrome/browser/ssl/ssl_error_navigation_throttle.h" + #include "components/security_interstitials/content/ssl_cert_reporter.h" + #include "components/security_interstitials/content/ssl_error_navigation_throttle.h" +#endif - #include "chrome/browser/ssl/typed_navigation_timing_throttle.h" - #include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h" - #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h" -@@ -862,30 +863,6 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { + #include "components/signin/public/identity_manager/identity_manager.h" + #include "components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h" + #include "components/translate/core/common/translate_switches.h" +@@ -837,30 +838,6 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) { GetIOThreadApplicationLocale() = locale; } @@ -676,7 +676,23 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if defined(OS_ANDROID) float GetDeviceScaleAdjustment() { static const float kMinFSM = 1.05f; -@@ -1264,7 +1241,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask( +@@ -1044,6 +1021,7 @@ void MaybeAddThrottle( + throttles->push_back(std::move(maybe_throttle)); + } + ++#if defined(FULL_SAFE_BROWSING) + // Returns whether |web_contents| is within a hosted app. + bool IsInHostedApp(WebContents* web_contents) { + #if BUILDFLAG(ENABLE_EXTENSIONS) +@@ -1054,6 +1032,7 @@ bool IsInHostedApp(WebContents* web_contents) { + return false; + #endif + } ++#endif + + } // namespace + +@@ -1259,7 +1238,9 @@ void ChromeContentBrowserClient::PostAfterStartupTask( InitNetworkContextsParentDirectory(); DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -686,16 +702,16 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } bool ChromeContentBrowserClient::IsBrowserStartupComplete() { -@@ -2031,7 +2010,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -1957,7 +1938,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( } #elif defined(OS_POSIX) #if defined(OS_ANDROID) - bool enable_crash_reporter = true; + bool enable_crash_reporter = false; #else - bool enable_crash_reporter = breakpad::IsCrashReporterEnabled(); - #endif -@@ -2122,7 +2101,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( + bool enable_crash_reporter = false; + if (crash_reporter::IsCrashpadEnabled()) { +@@ -2062,7 +2043,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( // Disable client-side phishing detection in the renderer if it is // disabled in the Profile preferences or the browser process. if (!prefs->GetBoolean(prefs::kSafeBrowsingEnabled) || @@ -704,25 +720,24 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch command_line->AppendSwitch( switches::kDisableClientSidePhishingDetection); } -@@ -4202,12 +4181,12 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - +@@ -3946,11 +3927,13 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( throttles.push_back(std::make_unique( handle, handle->GetWebContents()->GetBrowserContext())); -- + +#if defined(FULL_SAFE_BROWSING) throttles.push_back(std::make_unique( handle, std::make_unique(web_contents), - base::Bind(&SSLErrorHandler::HandleSSLError))); -- + base::Bind(&SSLErrorHandler::HandleSSLError), + base::Bind(&IsInHostedApp))); +#endif + throttles.push_back(std::make_unique(handle)); - std::unique_ptr https_upgrade_timing_throttle = -@@ -4238,11 +4217,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - PreviewsLitePageDecider::MaybeCreateThrottleFor(handle); - if (previews_lite_page_throttle) - throttles.push_back(std::move(previews_lite_page_throttle)); +@@ -3970,11 +3953,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( + GooglePasswordManagerNavigationThrottle::MaybeCreateThrottleFor(handle)); + #endif + - if (base::FeatureList::IsEnabled(safe_browsing::kCommittedSBInterstitials)) { - throttles.push_back( - std::make_unique( @@ -731,7 +746,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if defined(OS_WIN) || defined(OS_MACOSX) || \ (defined(OS_LINUX) && !defined(OS_CHROMEOS)) -@@ -5250,19 +5224,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( +@@ -4931,19 +4909,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate( content::ResourceContext* resource_context) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -789,7 +804,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 --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -40,9 +40,11 @@ +@@ -39,9 +39,11 @@ #include "chrome/browser/download/save_package_file_picker.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/profiles/profile.h" @@ -801,7 +816,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom #include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" #include "chrome/common/buildflags.h" -@@ -51,7 +53,9 @@ +@@ -50,7 +52,9 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/pdf_util.h" #include "chrome/common/pref_names.h" @@ -811,7 +826,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom #include "chrome/grit/generated_resources.h" #include "components/download/public/common/download_danger_type.h" #include "components/download/public/common/download_features.h" -@@ -122,8 +126,10 @@ using content::DownloadManager; +@@ -115,8 +119,10 @@ using content::DownloadManager; using download::DownloadItem; using download::DownloadPathReservationTracker; using download::PathValidationResult; @@ -822,7 +837,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom namespace { -@@ -345,13 +351,6 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() { +@@ -322,13 +328,6 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() { void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { download_manager_ = dm; @@ -836,7 +851,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } #if defined(OS_ANDROID) -@@ -654,16 +653,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( +@@ -638,16 +637,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( base::FilePath* filename) { @@ -853,7 +868,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( -@@ -797,19 +786,19 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { +@@ -771,19 +760,19 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { return std::string(chrome::kApplicationClientIDStringForAVScanning); } @@ -875,7 +890,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom void ChromeDownloadManagerDelegate::ShouldBlockDownload( download::DownloadItem* download, -@@ -1262,13 +1251,17 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( +@@ -1239,13 +1228,17 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); #endif @@ -891,13 +906,13 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } +#endif - if (base::FeatureList::IsEnabled( - download::features::kPreventDownloadsWithSamePath)) { + base::FilePath target_path = target_info->target_path; + // A separate reservation with the same target path may exist. 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 +++ b/chrome/browser/download/chrome_download_manager_delegate.h -@@ -21,8 +21,10 @@ - #include "build/build_config.h" +@@ -22,8 +22,10 @@ + #include "chrome/browser/download/download_completion_blocker.h" #include "chrome/browser/download/download_target_determiner_delegate.h" #include "chrome/browser/download/download_target_info.h" +#if defined(FULL_SAFE_BROWSING) @@ -907,9 +922,18 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome #include "components/download/public/common/download_danger_type.h" #include "components/download/public/common/download_item.h" #include "components/download/public/common/download_path_reservation_tracker.h" -@@ -135,8 +137,10 @@ class ChromeDownloadManagerDelegate +@@ -134,7 +136,7 @@ class ChromeDownloadManagerDelegate + DownloadPrefs* download_prefs() { return download_prefs_.get(); } +-#if BUILDFLAG(FULL_SAFE_BROWSING) ++#if defined(FULL_SAFE_BROWSING) + // The state of a safebrowsing check. + class SafeBrowsingState : public DownloadCompletionBlocker { + public: +@@ -151,8 +153,10 @@ class ChromeDownloadManagerDelegate + #endif // FULL_SAFE_BROWSING + protected: +#if defined(FULL_SAFE_BROWSING) virtual safe_browsing::DownloadProtectionService* @@ -918,7 +942,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome // Show file picker for |download|. virtual void ShowFilePickerForDownload( -@@ -205,9 +209,11 @@ class ChromeDownloadManagerDelegate +@@ -221,9 +225,11 @@ class ChromeDownloadManagerDelegate const content::NotificationSource& source, const content::NotificationDetails& details) override; @@ -977,7 +1001,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow is_being_revived_(false) {} } // namespace -@@ -378,6 +386,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { +@@ -388,6 +396,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) { data->should_prefer_opening_in_browser_ = preference; } @@ -985,7 +1009,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const { const DownloadItemModelData* data = DownloadItemModelData::Get(download_); return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS; -@@ -388,6 +397,7 @@ void DownloadItemModel::SetDangerLevel( +@@ -398,6 +407,7 @@ void DownloadItemModel::SetDangerLevel( DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_); data->danger_level_ = danger_level; } @@ -993,7 +1017,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow bool DownloadItemModel::IsBeingRevived() const { const DownloadItemModelData* data = DownloadItemModelData::Get(download_); -@@ -536,9 +546,6 @@ bool DownloadItemModel::IsCommandEnabled( +@@ -546,9 +556,6 @@ bool DownloadItemModel::IsCommandEnabled( // filename. Don't base an "Always open" decision based on it. Also // exclude extensions. return download_->CanOpenDownload() && @@ -1014,9 +1038,9 @@ diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/down #include "chrome/common/safe_browsing/download_file_types.pb.h" +#endif #include "components/download/public/common/download_item.h" + #include "components/safe_browsing/buildflags.h" - // Implementation of DownloadUIModel that wrappers around a |DownloadItem*|. As -@@ -48,9 +50,11 @@ class DownloadItemModel : public DownloadUIModel, +@@ -49,9 +51,11 @@ class DownloadItemModel : public DownloadUIModel, void SetWasUINotified(bool should_notify) override; bool ShouldPreferOpeningInBrowser() const override; void SetShouldPreferOpeningInBrowser(bool preference) override; @@ -1031,7 +1055,7 @@ diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/down diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc -@@ -33,7 +33,9 @@ +@@ -34,7 +34,9 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/pref_names.h" @@ -1041,7 +1065,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download #include "components/download/public/common/download_item.h" #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/pref_service.h" -@@ -55,7 +57,9 @@ +@@ -56,7 +58,9 @@ using content::BrowserContext; using content::BrowserThread; using content::DownloadManager; @@ -1051,7 +1075,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download namespace { -@@ -224,14 +228,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) { +@@ -228,14 +232,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) { base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) + extension); @@ -1067,7 +1091,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download } } -@@ -381,10 +378,6 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension( +@@ -385,10 +382,6 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension( bool DownloadPrefs::EnableAutoOpenBasedOnExtension( const base::FilePath& file_name) { base::FilePath::StringType extension = file_name.Extension(); @@ -1331,7 +1355,7 @@ diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/downl using offline_items_collection::FailState; namespace { -@@ -390,12 +392,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() const { +@@ -401,12 +403,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() const { void DownloadUIModel::SetShouldPreferOpeningInBrowser(bool preference) {} @@ -1358,8 +1382,8 @@ diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/downlo +#endif #include "components/download/public/common/download_item.h" #include "components/offline_items_collection/core/offline_item.h" - -@@ -172,6 +174,7 @@ class DownloadUIModel { + #include "components/safe_browsing/buildflags.h" +@@ -173,6 +175,7 @@ class DownloadUIModel { // Change what's returned by ShouldPreferOpeningInBrowser to |preference|. virtual void SetShouldPreferOpeningInBrowser(bool preference); @@ -1367,7 +1391,7 @@ diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/downlo // Return the danger level determined during download target determination. // The value returned here is independent of the danger level as determined by // the Safe Browsing. -@@ -180,6 +183,7 @@ class DownloadUIModel { +@@ -181,6 +184,7 @@ class DownloadUIModel { // Change what's returned by GetDangerLevel(). virtual void SetDangerLevel( safe_browsing::DownloadFileType::DangerLevel danger_level); @@ -1386,7 +1410,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_open_prompt.h" #include "chrome/browser/download/download_prefs.h" -@@ -1311,9 +1310,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {} +@@ -1325,9 +1324,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {} DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {} @@ -1396,7 +1420,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b bool DownloadsAcceptDangerFunction::RunAsync() { std::unique_ptr params( downloads::AcceptDanger::Params::Create(*args_)); -@@ -1351,40 +1347,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) { +@@ -1365,40 +1361,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) { return; } RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER); @@ -1449,7 +1473,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/br #include "chrome/browser/extensions/chrome_extension_function.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 { +@@ -186,25 +185,16 @@ class DownloadsRemoveFileFunction : public ChromeAsyncExtensionFunction { class DownloadsAcceptDangerFunction : public ChromeAsyncExtensionFunction { public: @@ -1478,7 +1502,7 @@ 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 --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -682,51 +682,9 @@ WebstorePrivateGetReferrerChainFunction:: +@@ -683,51 +683,9 @@ WebstorePrivateGetReferrerChainFunction:: ExtensionFunction::ResponseAction WebstorePrivateGetReferrerChainFunction::Run() { @@ -1612,7 +1636,7 @@ diff --git a/chrome/browser/extensions/blacklist_state_fetcher.h b/chrome/browse 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 +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -773,9 +773,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { +@@ -759,9 +759,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() { metrics_service_->RegisterMetricsProvider( std::make_unique()); @@ -1633,130 +1657,59 @@ diff --git a/chrome/browser/native_file_system/chrome_native_file_system_permiss #include "chrome/browser/sessions/session_tab_helper.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/common/chrome_paths.h" -@@ -322,74 +321,6 @@ class ReadPermissionGrantImpl +@@ -328,6 +327,7 @@ class ReadPermissionGrantImpl PermissionStatus status_ = PermissionStatus::GRANTED; }; --void DoSafeBrowsingCheckOnUIThread( -- int process_id, -- int frame_id, -- std::unique_ptr item, -- safe_browsing::CheckDownloadCallback callback) { -- DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -- -- safe_browsing::SafeBrowsingService* sb_service = -- g_browser_process->safe_browsing_service(); -- -- if (!sb_service || !sb_service->download_protection_service() || -- !sb_service->download_protection_service()->enabled()) { -- std::move(callback).Run(safe_browsing::DownloadCheckResult::UNKNOWN); -- return; -- } -- -- if (!item->browser_context) { -- content::RenderProcessHost* rph = -- content::RenderProcessHost::FromID(process_id); -- if (!rph) { -- std::move(callback).Run(safe_browsing::DownloadCheckResult::UNKNOWN); -- return; -- } -- item->browser_context = rph->GetBrowserContext(); -- } -- -- if (!item->web_contents) { -- content::RenderFrameHost* rfh = -- content::RenderFrameHost::FromID(process_id, frame_id); -- if (rfh) -- item->web_contents = content::WebContents::FromRenderFrameHost(rfh); -- } -- -- sb_service->download_protection_service()->CheckNativeFileSystemWrite( -- std::move(item), std::move(callback)); --} -- --ChromeNativeFileSystemPermissionContext::SafeBrowsingResult --InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) { -- using Result = safe_browsing::DownloadCheckResult; -- switch (result) { -- // Only allow downloads that are marked as SAFE or UNKNOWN by SafeBrowsing. -- // All other types are going to be blocked. UNKNOWN could be the result of a -- // failed safe browsing ping. -- case Result::UNKNOWN: -- case Result::SAFE: -- case Result::WHITELISTED_BY_POLICY: -- return ChromeNativeFileSystemPermissionContext::SafeBrowsingResult:: -- kAllow; -- -- case Result::DANGEROUS: -- case Result::UNCOMMON: -- case Result::DANGEROUS_HOST: -- case Result::POTENTIALLY_UNWANTED: -- case Result::BLOCKED_PASSWORD_PROTECTED: -- return ChromeNativeFileSystemPermissionContext::SafeBrowsingResult:: -- kBlock; -- -- // This shouldn't be returned for Native File System write checks. -- case Result::ASYNC_SCANNING: -- NOTREACHED(); -- return ChromeNativeFileSystemPermissionContext::SafeBrowsingResult:: -- kAllow; -- } -- NOTREACHED(); -- return ChromeNativeFileSystemPermissionContext::SafeBrowsingResult::kBlock; --} -- ++#if defined(FULL_SAFE_BROWSING) + void DoSafeBrowsingCheckOnUIThread( + int process_id, + int frame_id, +@@ -396,6 +396,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) { + NOTREACHED(); + return ChromeNativeFileSystemPermissionContext::AfterWriteCheckResult::kBlock; + } ++#endif + } // namespace - ChromeNativeFileSystemPermissionContext::Grants::Grants() = default; -@@ -666,28 +597,6 @@ void ChromeNativeFileSystemPermissionContext::ConfirmSensitiveDirectoryAccess( - std::move(callback))); +@@ -677,6 +678,7 @@ void ChromeNativeFileSystemPermissionContext::ConfirmSensitiveDirectoryAccess( + process_id, frame_id, std::move(callback))); } --void ChromeNativeFileSystemPermissionContext::PerformSafeBrowsingChecks( -- std::unique_ptr item, -- int process_id, -- int frame_id, -- base::OnceCallback callback) { -- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- base::PostTask( -- FROM_HERE, {content::BrowserThread::UI}, -- base::BindOnce( -- &DoSafeBrowsingCheckOnUIThread, process_id, frame_id, std::move(item), -- base::BindOnce( -- [](scoped_refptr task_runner, -- base::OnceCallback callback, -- safe_browsing::DownloadCheckResult result) { -- task_runner->PostTask( -- FROM_HERE, -- base::BindOnce(std::move(callback), -- InterpretSafeBrowsingResult(result))); -- }, -- base::SequencedTaskRunnerHandle::Get(), std::move(callback)))); --} -- ++#if defined(FULL_SAFE_BROWSING) + void ChromeNativeFileSystemPermissionContext::PerformAfterWriteChecks( + std::unique_ptr item, + int process_id, +@@ -699,6 +701,7 @@ void ChromeNativeFileSystemPermissionContext::PerformAfterWriteChecks( + }, + base::SequencedTaskRunnerHandle::Get(), std::move(callback)))); + } ++#endif + ChromeNativeFileSystemPermissionContext::Grants ChromeNativeFileSystemPermissionContext::GetPermissionGrants( - const url::Origin& origin, diff --git a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h --- a/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h +++ b/chrome/browser/native_file_system/chrome_native_file_system_permission_context.h -@@ -155,12 +155,6 @@ class ChromeNativeFileSystemPermissionContext +@@ -152,11 +152,13 @@ class ChromeNativeFileSystemPermissionContext int frame_id, base::OnceCallback callback) override; -- void PerformSafeBrowsingChecks( -- std::unique_ptr item, -- int process_id, -- int frame_id, -- base::OnceCallback callback) override; -- - struct Grants { - Grants(); - ~Grants(); ++#if defined(FULL_SAFE_BROWSING) + void PerformAfterWriteChecks( + std::unique_ptr item, + int process_id, + int frame_id, + base::OnceCallback callback) override; ++#endif + + // Returns a snapshot of the currently granted permissions. + // TODO(https://crbug.com/984769): Eliminate process_id and frame_id from this 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 -@@ -125,9 +125,6 @@ void TrialComparisonCertVerifierController::SendTrialReport( +@@ -127,9 +127,6 @@ void TrialComparisonCertVerifierController::SendTrialReport( std::string serialized_report; if (!report.Serialize(&serialized_report)) return; @@ -1769,7 +1722,7 @@ diff --git a/chrome/browser/net/trial_comparison_cert_verifier_controller.cc b/c diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -244,7 +244,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -252,7 +252,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) CaptivePortalServiceFactory::GetInstance(); #endif @@ -1780,7 +1733,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 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -90,7 +90,6 @@ +@@ -91,7 +91,6 @@ #include "chrome/browser/profiles/profile_metrics.h" #include "chrome/browser/push_messaging/push_messaging_service_factory.h" #include "chrome/browser/push_messaging/push_messaging_service_impl.h" @@ -1788,23 +1741,23 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p #include "chrome/browser/sharing/sharing_service_factory.h" #include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/signin/signin_ui_util.h" -@@ -623,16 +622,6 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { - pref_registry_.get()); - - prefs::mojom::TrackedPreferenceValidationDelegatePtr pref_validation_delegate; -- scoped_refptr safe_browsing_service( -- g_browser_process->safe_browsing_service()); -- if (safe_browsing_service.get()) { -- auto pref_validation_delegate_impl = -- safe_browsing_service->CreatePreferenceValidationDelegate(this); -- if (pref_validation_delegate_impl) { -- mojo::MakeStrongBinding(std::move(pref_validation_delegate_impl), -- mojo::MakeRequest(&pref_validation_delegate)); -- } -- } +@@ -602,6 +601,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { + mojo::PendingRemote + pref_validation_delegate; ++#if defined(FULL_SAFE_BROWSING) + scoped_refptr safe_browsing_service( + g_browser_process->safe_browsing_service()); + if (safe_browsing_service.get()) { +@@ -613,7 +613,7 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { + pref_validation_delegate.InitWithNewPipeAndPassReceiver()); + } + } +- ++#endif prefs_ = CreatePrefService(pref_registry_, CreateExtensionPrefStore(this, false), + profile_policy_connector_->policy_service(), diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn @@ -1859,7 +1812,7 @@ diff --git a/chrome/browser/ssl/captive_portal_blocking_page.cc b/chrome/browser diff --git a/chrome/browser/ssl/cert_report_helper.cc b/chrome/browser/ssl/cert_report_helper.cc --- a/chrome/browser/ssl/cert_report_helper.cc +++ b/chrome/browser/ssl/cert_report_helper.cc -@@ -180,8 +180,6 @@ void CertReportHelper::FinishCertCollection() { +@@ -181,8 +181,6 @@ void CertReportHelper::FinishCertCollection() { LOG(ERROR) << "Failed to serialize certificate report."; return; } @@ -1871,92 +1824,19 @@ 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 --- a/chrome/browser/ssl/security_state_tab_helper.cc +++ b/chrome/browser/ssl/security_state_tab_helper.cc -@@ -160,88 +160,6 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const { +@@ -234,6 +234,7 @@ bool SecurityStateTabHelper::UsedPolicyInstalledCertificate() const { security_state::MaliciousContentStatus SecurityStateTabHelper::GetMaliciousContentStatus() const { -- content::NavigationEntry* entry = -- web_contents()->GetController().GetVisibleEntry(); -- if (!entry) -- return security_state::MALICIOUS_CONTENT_STATUS_NONE; -- safe_browsing::SafeBrowsingService* sb_service = -- g_browser_process->safe_browsing_service(); -- if (!sb_service) -- return security_state::MALICIOUS_CONTENT_STATUS_NONE; -- scoped_refptr sb_ui_manager = sb_service->ui_manager(); -- safe_browsing::SBThreatType threat_type; -- if (sb_ui_manager->IsUrlWhitelistedOrPendingForWebContents( -- entry->GetURL(), false, entry, web_contents(), false, &threat_type)) { -- switch (threat_type) { -- case safe_browsing::SB_THREAT_TYPE_UNUSED: -- case safe_browsing::SB_THREAT_TYPE_SAFE: -- case safe_browsing::SB_THREAT_TYPE_URL_PHISHING: -- case safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_PHISHING: -- return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING; -- case safe_browsing::SB_THREAT_TYPE_URL_MALWARE: -- case safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE: -- return security_state::MALICIOUS_CONTENT_STATUS_MALWARE; -- case safe_browsing::SB_THREAT_TYPE_URL_UNWANTED: -- return security_state::MALICIOUS_CONTENT_STATUS_UNWANTED_SOFTWARE; -- case safe_browsing::SB_THREAT_TYPE_SIGNED_IN_SYNC_PASSWORD_REUSE: --#if BUILDFLAG(FULL_SAFE_BROWSING) -- if (safe_browsing::ChromePasswordProtectionService:: -- ShouldShowPasswordReusePageInfoBubble( -- web_contents(), PasswordType::PRIMARY_ACCOUNT_PASSWORD)) { -- return security_state:: -- MALICIOUS_CONTENT_STATUS_SIGNED_IN_SYNC_PASSWORD_REUSE; -- } -- // If user has already changed Gaia password, returns the regular -- // social engineering content status. -- return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING; --#endif -- case safe_browsing::SB_THREAT_TYPE_SIGNED_IN_NON_SYNC_PASSWORD_REUSE: --#if BUILDFLAG(FULL_SAFE_BROWSING) -- if (safe_browsing::ChromePasswordProtectionService:: -- ShouldShowPasswordReusePageInfoBubble( -- web_contents(), PasswordType::OTHER_GAIA_PASSWORD)) { -- return security_state:: -- MALICIOUS_CONTENT_STATUS_SIGNED_IN_NON_SYNC_PASSWORD_REUSE; -- } -- // If user has already changed Gaia password, returns the regular -- // social engineering content status. -- return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING; --#endif -- case safe_browsing::SB_THREAT_TYPE_ENTERPRISE_PASSWORD_REUSE: --#if BUILDFLAG(FULL_SAFE_BROWSING) -- if (safe_browsing::ChromePasswordProtectionService:: -- ShouldShowPasswordReusePageInfoBubble( -- web_contents(), PasswordType::ENTERPRISE_PASSWORD)) { -- return security_state:: -- MALICIOUS_CONTENT_STATUS_ENTERPRISE_PASSWORD_REUSE; -- } -- // If user has already changed Gaia password, returns the regular -- // social engineering content status. -- return security_state::MALICIOUS_CONTENT_STATUS_SOCIAL_ENGINEERING; --#endif -- case safe_browsing::SB_THREAT_TYPE_BILLING: -- return security_state::MALICIOUS_CONTENT_STATUS_BILLING; -- case safe_browsing:: -- DEPRECATED_SB_THREAT_TYPE_URL_PASSWORD_PROTECTION_PHISHING: -- case safe_browsing::SB_THREAT_TYPE_URL_BINARY_MALWARE: -- case safe_browsing::SB_THREAT_TYPE_EXTENSION: -- case safe_browsing::SB_THREAT_TYPE_BLACKLISTED_RESOURCE: -- case safe_browsing::SB_THREAT_TYPE_API_ABUSE: -- case safe_browsing::SB_THREAT_TYPE_SUBRESOURCE_FILTER: -- case safe_browsing::SB_THREAT_TYPE_CSD_WHITELIST: -- case safe_browsing::SB_THREAT_TYPE_AD_SAMPLE: -- case safe_browsing::SB_THREAT_TYPE_BLOCKED_AD_POPUP: -- case safe_browsing::SB_THREAT_TYPE_BLOCKED_AD_REDIRECT: -- case safe_browsing::SB_THREAT_TYPE_SUSPICIOUS_SITE: -- case safe_browsing::SB_THREAT_TYPE_APK_DOWNLOAD: -- case safe_browsing::SB_THREAT_TYPE_HIGH_CONFIDENCE_ALLOWLIST: -- // These threat types are not currently associated with -- // interstitials, and thus resources with these threat types are -- // not ever whitelisted or pending whitelisting. -- NOTREACHED(); -- break; -- } -- } ++#if defined(FULL_SAFE_BROWSING) + content::NavigationEntry* entry = + web_contents()->GetController().GetVisibleEntry(); + if (!entry) +@@ -320,6 +321,7 @@ SecurityStateTabHelper::GetMaliciousContentStatus() const { + break; + } + } ++#endif return security_state::MALICIOUS_CONTENT_STATUS_NONE; } @@ -1983,7 +1863,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 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -2662,7 +2662,6 @@ jumbo_split_static_library("ui") { +@@ -2706,7 +2706,6 @@ jumbo_static_library("ui") { "views/device_chooser_content_view.h", "views/devtools_process_observer.cc", "views/devtools_process_observer.h", @@ -1994,27 +1874,24 @@ 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 --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -50,8 +50,8 @@ - #include "chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.h" +@@ -49,8 +49,6 @@ #include "chrome/browser/profiles/profile.h" + #include "chrome/browser/profiles/profile_key.h" #include "chrome/browser/resource_coordinator/tab_helper.h" -#include "chrome/browser/safe_browsing/safe_browsing_navigation_observer.h" -#include "chrome/browser/safe_browsing/trigger_creator.h" -+//#include "chrome/browser/safe_browsing/safe_browsing_navigation_observer.h" -+//#include "chrome/browser/safe_browsing/trigger_creator.h" #include "chrome/browser/sessions/session_tab_helper.h" #include "chrome/browser/ssl/connection_help_tab_helper.h" #include "chrome/browser/ssl/security_state_tab_helper.h" -@@ -108,7 +108,7 @@ +@@ -109,7 +107,6 @@ #else #include "chrome/browser/banners/app_banner_manager_desktop.h" #include "chrome/browser/plugins/plugin_observer.h" -#include "chrome/browser/safe_browsing/safe_browsing_tab_observer.h" -+//#include "chrome/browser/safe_browsing/safe_browsing_tab_observer.h" #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" #include "chrome/browser/ui/hung_plugin_tab_helper.h" #include "chrome/browser/ui/intent_picker_tab_helper.h" -@@ -247,10 +247,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -248,10 +245,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { PreviewsUITabHelper::CreateForWebContents(web_contents); RecentlyAudibleHelper::CreateForWebContents(web_contents); ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents); @@ -2025,7 +1902,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc safety_tips::ReputationWebContentsObserver::CreateForWebContents( web_contents); SearchEngineTabHelper::CreateForWebContents(web_contents); -@@ -303,7 +299,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -304,7 +297,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents, std::make_unique()); PluginObserver::CreateForWebContents(web_contents); SadTabHelper::CreateForWebContents(web_contents); @@ -2036,7 +1913,7 @@ 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 --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc -@@ -271,6 +271,7 @@ LookalikeUrlInterstitialPage* CreateLookalikeInterstitialPage( +@@ -277,6 +277,7 @@ LookalikeUrlInterstitialPage* CreateLookalikeInterstitialPage( safe_url)); } @@ -2044,7 +1921,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage( content::WebContents* web_contents) { safe_browsing::SBThreatType threat_type = -@@ -329,7 +330,9 @@ safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage( +@@ -335,7 +336,9 @@ safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage( g_browser_process->safe_browsing_service()->ui_manager().get(), web_contents, main_frame_url, resource); } @@ -2054,7 +1931,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage( content::WebContents* web_contents) { safe_browsing::SBThreatType threat_type = -@@ -381,6 +384,7 @@ TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage( +@@ -387,6 +390,7 @@ TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage( g_browser_process->safe_browsing_service()->ui_manager().get(), web_contents, main_frame_url, resource, is_giant_webview); } @@ -2062,7 +1939,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b #if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION) CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage( -@@ -487,8 +491,6 @@ void InterstitialHTMLSource::StartDataRequest( +@@ -493,8 +497,6 @@ void InterstitialHTMLSource::StartDataRequest( interstitial_delegate.reset(CreateSSLBlockingPage(web_contents)); } else if (path_without_query == "/mitm-software-ssl") { interstitial_delegate.reset(CreateMITMSoftwareBlockingPage(web_contents)); @@ -2071,7 +1948,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b } else if (path_without_query == "/clock") { interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents)); } else if (path_without_query == "/lookalike") { -@@ -500,13 +502,6 @@ void InterstitialHTMLSource::StartDataRequest( +@@ -506,13 +508,6 @@ void InterstitialHTMLSource::StartDataRequest( } else if (path_without_query == "/origin_policy") { interstitial_delegate.reset( CreateOriginPolicyInterstitialPage(web_contents)); @@ -2106,10 +1983,10 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/ - ] -} - - if (safe_browsing_mode == 1) { - source_set("archive_analyzer_results") { + if (is_win) { + source_set("pe_image_reader") { sources = [ -@@ -150,7 +136,6 @@ if (safe_browsing_mode == 1) { +@@ -167,7 +153,6 @@ if (safe_browsing_mode == 1) { source_set("safe_browsing") { deps = [ @@ -2120,7 +1997,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -85,7 +85,6 @@ +@@ -86,7 +86,6 @@ #include "components/page_load_metrics/renderer/metrics_render_frame_observer.h" #include "components/pdf/renderer/pepper_pdf_host.h" #include "components/safe_browsing/buildflags.h" @@ -2131,10 +2008,10 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn --- a/components/password_manager/core/browser/BUILD.gn +++ b/components/password_manager/core/browser/BUILD.gn -@@ -12,7 +12,7 @@ if (is_android) { - - # TODO(crbug.com/706392): Fix password reuse detection for Android. - password_reuse_detection_support = !is_android && !is_ios +@@ -14,7 +14,7 @@ if (is_android) { + # Android. + password_reuse_detection_support = !is_ios + password_reuse_warning_support = !is_android && !is_ios -password_on_focus_ping_support = !is_ios +password_on_focus_ping_support = !is_android && !is_ios @@ -2143,8 +2020,8 @@ diff --git a/components/password_manager/core/browser/BUILD.gn b/components/pass diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc --- a/components/safe_browsing/features.cc +++ b/components/safe_browsing/features.cc -@@ -63,7 +63,7 @@ const base::Feature kSendOnFocusPing { - #endif +@@ -87,7 +87,7 @@ constexpr base::FeatureParam kShouldFillOldPhishGuardProto{ + &kPasswordProtectionForSignedInUsers, "DeprecateOldProto", false}; const base::Feature kSuspiciousSiteTriggerQuotaFeature{ - "SafeBrowsingSuspiciousSiteTriggerQuota", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -2167,7 +2044,7 @@ diff --git a/components/unified_consent/unified_consent_service.cc b/components/ diff --git a/content/browser/native_file_system/native_file_system_file_writer_impl.cc b/content/browser/native_file_system/native_file_system_file_writer_impl.cc --- a/content/browser/native_file_system/native_file_system_file_writer_impl.cc +++ b/content/browser/native_file_system/native_file_system_file_writer_impl.cc -@@ -91,8 +91,7 @@ NativeFileSystemFileWriterImpl::NativeFileSystemFileWriterImpl( +@@ -93,8 +93,7 @@ NativeFileSystemFileWriterImpl::NativeFileSystemFileWriterImpl( url, handle_state, /*is_directory=*/false), @@ -2177,22 +2054,22 @@ diff --git a/content/browser/native_file_system/native_file_system_file_writer_i DCHECK_EQ(swap_url.type(), url.type()); } -@@ -296,48 +295,7 @@ void NativeFileSystemFileWriterImpl::CloseImpl(CloseCallback callback) { +@@ -302,50 +301,7 @@ void NativeFileSystemFileWriterImpl::CloseImpl(CloseCallback callback) { // swap file even if the writer was destroyed at that point. state_ = State::kClosePending; -- if (!require_safe_browsing_check() || !manager()->permission_context()) { -- DidPassSafeBrowsingCheck(std::move(callback)); +- if (!RequireAfterWriteCheck() || !manager()->permission_context()) { +- DidPassAfterWriteCheck(std::move(callback)); - return; - } - - ComputeHashForSwapFile(base::BindOnce( -- &NativeFileSystemFileWriterImpl::DoSafeBrowsingCheck, +- &NativeFileSystemFileWriterImpl::DoAfterWriteCheck, - weak_factory_.GetWeakPtr(), swap_url().path(), std::move(callback))); -} - -// static --void NativeFileSystemFileWriterImpl::DoSafeBrowsingCheck( +-void NativeFileSystemFileWriterImpl::DoAfterWriteCheck( - base::WeakPtr file_writer, - const base::FilePath& swap_path, - NativeFileSystemFileWriterImpl::CloseCallback callback, @@ -2211,6 +2088,8 @@ diff --git a/content/browser/native_file_system/native_file_system_file_writer_i - return; - } - +- DCHECK_CALLED_ON_VALID_SEQUENCE(file_writer->sequence_checker_); +- - auto item = std::make_unique(); - item->target_file_path = file_writer->url().path(); - item->full_path = file_writer->swap_url().path(); @@ -2218,49 +2097,49 @@ diff --git a/content/browser/native_file_system/native_file_system_file_writer_i - item->size = size; - item->frame_url = file_writer->context().url; - item->has_user_gesture = file_writer->has_transient_user_activation_; -- file_writer->manager()->permission_context()->PerformSafeBrowsingChecks( +- file_writer->manager()->permission_context()->PerformAfterWriteChecks( - std::move(item), file_writer->context().process_id, - file_writer->context().frame_id, -- base::BindOnce(&NativeFileSystemFileWriterImpl::DidSafeBrowsingCheck, +- base::BindOnce(&NativeFileSystemFileWriterImpl::DidAfterWriteCheck, - file_writer, swap_path, std::move(callback))); -+ DidPassSafeBrowsingCheck(std::move(callback)); ++ DidPassAfterWriteCheck(std::move(callback)); } // static diff --git a/content/browser/native_file_system/native_file_system_file_writer_impl.h b/content/browser/native_file_system/native_file_system_file_writer_impl.h --- a/content/browser/native_file_system/native_file_system_file_writer_impl.h +++ b/content/browser/native_file_system/native_file_system_file_writer_impl.h -@@ -88,15 +88,8 @@ class CONTENT_EXPORT NativeFileSystemFileWriterImpl +@@ -80,15 +80,8 @@ class CONTENT_EXPORT NativeFileSystemFileWriterImpl bool complete); void TruncateImpl(uint64_t length, TruncateCallback callback); void CloseImpl(CloseCallback callback); - // The following two methods are static, because they need to be invoked to -+ // The following method is static because it needs to be invoked to ++ // The following method is static, because it needs to be invoked to // perform cleanup even if the writer was deleted before they were invoked. -- static void DoSafeBrowsingCheck( +- static void DoAfterWriteCheck( - base::WeakPtr file_writer, - const base::FilePath& swap_path, - NativeFileSystemFileWriterImpl::CloseCallback callback, - base::File::Error hash_result, - const std::string& hash, - int64_t size); - static void DidSafeBrowsingCheck( + static void DidAfterWriteCheck( base::WeakPtr file_writer, const base::FilePath& swap_path, -@@ -109,7 +102,7 @@ class CONTENT_EXPORT NativeFileSystemFileWriterImpl +@@ -101,7 +94,7 @@ class CONTENT_EXPORT NativeFileSystemFileWriterImpl - // Safe browsing checks only apply to native local paths. - bool require_safe_browsing_check() { + // After write checks only apply to native local paths. + bool RequireAfterWriteCheck() const { - return url().type() == storage::kFileSystemTypeNativeLocal; + return false; } // Quarantine checks only apply to native local paths. -@@ -149,10 +142,6 @@ class CONTENT_EXPORT NativeFileSystemFileWriterImpl +@@ -141,10 +134,6 @@ class CONTENT_EXPORT NativeFileSystemFileWriterImpl bool skip_quarantine_check_for_testing_ = false; -- // Keeps track of user activation state at creation time for SafeBrowsing +- // Keeps track of user activation state at creation time for after write - // checks. - bool has_transient_user_activation_ = false; - @@ -2273,17 +2152,17 @@ diff --git a/content/public/browser/native_file_system_permission_context.h b/co @@ -95,13 +95,6 @@ class NativeFileSystemPermissionContext { base::OnceCallback callback) = 0; - enum class SafeBrowsingResult { kAllow, kBlock }; -- // Runs a recently finished write operation through Safe Browsing code to -- // determine if the write should be allowed or blocked. -- virtual void PerformSafeBrowsingChecks( + enum class AfterWriteCheckResult { kAllow, kBlock }; +- // Runs a recently finished write operation through checks such as malware +- // or other security checks to determine if the write should be allowed. +- virtual void PerformAfterWriteChecks( - std::unique_ptr item, - int process_id, - int frame_id, -- base::OnceCallback callback) = 0; +- base::OnceCallback callback) = 0; // Returns whether the given |origin| is allowed to ask for write access. // This is used to block save file dialogs from being shown -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-search-ready-omnibox-by-default.patch b/build/patches/Disable-search-ready-omnibox-by-default.patch index 193d6ed1..541608f4 100644 --- a/build/patches/Disable-search-ready-omnibox-by-default.patch +++ b/build/patches/Disable-search-ready-omnibox-by-default.patch @@ -9,8 +9,8 @@ Subject: Disable search-ready omnibox by default 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 +++ b/chrome/browser/android/chrome_feature_list.cc -@@ -518,7 +518,7 @@ const base::Feature kRevampedContextMenu{"RevampedContextMenu", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -518,7 +518,7 @@ const base::Feature kScrollToExpandPaymentHandler{ + "ScrollToExpandPaymentHandler", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kSearchReadyOmniboxFeature{ - "SearchReadyOmnibox", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -19,5 +19,5 @@ diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/andr const base::Feature kServiceManagerForBackgroundPrefetch{ "ServiceManagerForBackgroundPrefetch", base::FEATURE_DISABLED_BY_DEFAULT}; -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-seed-based-field-trials.patch b/build/patches/Disable-seed-based-field-trials.patch index e4675487..d09d3cd6 100644 --- a/build/patches/Disable-seed-based-field-trials.patch +++ b/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 --- a/components/variations/service/variations_field_trial_creator.cc +++ b/components/variations/service/variations_field_trial_creator.cc -@@ -535,8 +535,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials( +@@ -538,8 +538,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials( #endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED) bool used_seed = false; if (!used_testing_config) { @@ -21,5 +21,5 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c platform_field_trials->SetupFeatureControllingFieldTrials(used_seed, -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-some-signed-exchange-features.patch b/build/patches/Disable-some-signed-exchange-features.patch index f3a077e5..3c947392 100644 --- a/build/patches/Disable-some-signed-exchange-features.patch +++ b/build/patches/Disable-some-signed-exchange-features.patch @@ -9,7 +9,7 @@ Subject: Disable some signed exchange features diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -508,7 +508,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{ +@@ -507,7 +507,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{ // Signed Exchange Reporting for distributors // https://www.chromestatus.com/features/5687904902840320 const base::Feature kSignedExchangeReportingForDistributors{ @@ -18,7 +18,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c // Subresource prefetching+loading via Signed HTTP Exchange // https://www.chromestatus.com/features/5126805474246656 -@@ -518,7 +518,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{ +@@ -517,7 +517,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{ // Origin-Signed HTTP Exchanges (for WebPackage Loading) // https://www.chromestatus.com/features/5745285984681984 const base::Feature kSignedHTTPExchange{"SignedHTTPExchange", @@ -28,5 +28,5 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c // Whether to send a ping to the inner URL upon navigation or not. const base::Feature kSignedHTTPExchangePingValidity{ -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-sync-services-menu-entry.patch b/build/patches/Disable-sync-services-menu-entry.patch index eb9e8119..ac83f595 100644 --- a/build/patches/Disable-sync-services-menu-entry.patch +++ b/build/patches/Disable-sync-services-menu-entry.patch @@ -40,5 +40,5 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi app:allowDividerBelow="false" /> -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-third-party-cookies-by-default.patch b/build/patches/Disable-third-party-cookies-by-default.patch index 3a344bad..7a9f71ad 100644 --- a/build/patches/Disable-third-party-cookies-by-default.patch +++ b/build/patches/Disable-third-party-cookies-by-default.patch @@ -10,7 +10,7 @@ author: Chad Miller diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -57,7 +57,7 @@ void CookieSettings::GetCookieSettings( +@@ -58,7 +58,7 @@ void CookieSettings::GetCookieSettings( void CookieSettings::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo registry->RegisterIntegerPref( prefs::kCookieControlsMode, -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-unified-consent-on-Android.patch b/build/patches/Disable-unified-consent-on-Android.patch index 4be8a4fb..86a772ce 100644 --- a/build/patches/Disable-unified-consent-on-Android.patch +++ b/build/patches/Disable-unified-consent-on-Android.patch @@ -19,5 +19,5 @@ diff --git a/components/unified_consent/feature.cc b/components/unified_consent/ #else base::FEATURE_ENABLED_BY_DEFAULT -- -2.11.0 +2.17.1 diff --git a/build/patches/Disable-update-scheduler.patch b/build/patches/Disable-update-scheduler.patch index 9dbfc155..b51c108a 100644 --- a/build/patches/Disable-update-scheduler.patch +++ b/build/patches/Disable-update-scheduler.patch @@ -3,7 +3,7 @@ Date: Sat, 27 Oct 2018 17:54:01 +0200 Subject: Disable update scheduler --- - .../chromium/chrome/browser/component_updater/UpdateScheduler.java | 7 ++----- + .../chrome/browser/component_updater/UpdateScheduler.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java @@ -29,5 +29,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updat \ No newline at end of file +} -- -2.11.0 +2.17.1 diff --git a/build/patches/Do-not-grant-notifications-to-default-search-engine.patch b/build/patches/Do-not-grant-notifications-to-default-search-engine.patch index cf595284..6c05d339 100644 --- a/build/patches/Do-not-grant-notifications-to-default-search-engine.patch +++ b/build/patches/Do-not-grant-notifications-to-default-search-engine.patch @@ -4,8 +4,8 @@ Subject: Do not grant notifications to default search engine Block gelocation by default instead of granting it for non-enterprise use cases (almost the totality of users) --- - .../search_permissions/search_permissions_service.cc | 20 ++++++-------------- - chrome/common/chrome_features.cc | 2 +- + .../search_permissions_service.cc | 20 ++++++------------- + chrome/common/chrome_features.cc | 2 +- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/chrome/browser/android/search_permissions/search_permissions_service.cc b/chrome/browser/android/search_permissions/search_permissions_service.cc @@ -63,7 +63,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 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -288,7 +288,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ +@@ -311,7 +311,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ #if defined(OS_ANDROID) // Enable changing default downloads storage location on Android. const base::Feature kDownloadsLocationChange{"DownloadsLocationChange", @@ -73,5 +73,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc // If enabled, Drive will use FCM for its invalidations. -- -2.11.0 +2.17.1 diff --git a/build/patches/Do-not-ignore-download-location-prompt-setting.patch b/build/patches/Do-not-ignore-download-location-prompt-setting.patch index 0bd22cd2..e9bc9e2f 100644 --- a/build/patches/Do-not-ignore-download-location-prompt-setting.patch +++ b/build/patches/Do-not-ignore-download-location-prompt-setting.patch @@ -6,7 +6,7 @@ Upstream has decided that it works as intended (https://bugs.chromium.org/p/chro but users would like to decide where to save a file even when there is no SD card available; do not skip the prompt in such cases. --- - .../download/DownloadLocationDialogBridge.java | 73 +++++++--------------- + .../DownloadLocationDialogBridge.java | 73 ++++++------------- 1 file changed, 21 insertions(+), 52 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java @@ -108,5 +108,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo switch (dialogType) { case DownloadLocationDialogType.LOCATION_FULL: -- -2.11.0 +2.17.1 diff --git a/build/patches/Do-not-record-UMA-for-network-errors.patch b/build/patches/Do-not-record-UMA-for-network-errors.patch deleted file mode 100644 index 2f6c24e7..00000000 --- a/build/patches/Do-not-record-UMA-for-network-errors.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 27 Jul 2019 11:19:53 +0200 -Subject: Do not record UMA for network errors - ---- - services/network/network_context.cc | 17 ----------------- - 1 file changed, 17 deletions(-) - -diff --git a/services/network/network_context.cc b/services/network/network_context.cc ---- a/services/network/network_context.cc -+++ b/services/network/network_context.cc -@@ -393,23 +393,6 @@ class NetworkContext::ContextNetworkDelegate - started); - } - -- // Record network errors that HTTP requests complete with, including OK and -- // ABORTED. -- // TODO(mmenke): Seems like this really should be looking at HTTPS requests, -- // too. -- // TODO(mmenke): We should remove the main frame case from here, and move it -- // into the consumer - the network service shouldn't know what a main frame -- // is. -- if (request->url().SchemeIs("http")) { -- base::UmaHistogramSparse("Net.HttpRequestCompletionErrorCodes", -- -net_error); -- -- if (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) { -- base::UmaHistogramSparse( -- "Net.HttpRequestCompletionErrorCodes.MainFrame", -net_error); -- } -- } -- - ForwardProxyErrors(net_error); - } - --- -2.11.0 - diff --git a/build/patches/Do-not-store-passwords-by-default.patch b/build/patches/Do-not-store-passwords-by-default.patch index b8416f94..c34c8adc 100644 --- a/build/patches/Do-not-store-passwords-by-default.patch +++ b/build/patches/Do-not-store-passwords-by-default.patch @@ -9,7 +9,7 @@ Subject: Do not store passwords by default diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -202,10 +202,10 @@ void PasswordManager::RegisterProfilePrefs( +@@ -155,10 +155,10 @@ void PasswordManager::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kBlacklistedCredentialsNormalized, false); registry->RegisterBooleanPref( @@ -23,5 +23,5 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(), PrefRegistry::NO_REGISTRATION_FLAGS); -- -2.11.0 +2.17.1 diff --git a/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch b/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch index e1523e0f..9436a1a3 100644 --- a/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch +++ b/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch @@ -9,7 +9,7 @@ Subject: Enable changing default downloads storage location by default diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -288,7 +288,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ +@@ -311,7 +311,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ #if defined(OS_ANDROID) // Enable changing default downloads storage location on Android. const base::Feature kDownloadsLocationChange{"DownloadsLocationChange", @@ -19,5 +19,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc // If enabled, Drive will use FCM for its invalidations. -- -2.11.0 +2.17.1 diff --git a/build/patches/Enable-download-rename-option-by-default.patch b/build/patches/Enable-download-rename-option-by-default.patch index ff666435..ec111b60 100644 --- a/build/patches/Enable-download-rename-option-by-default.patch +++ b/build/patches/Enable-download-rename-option-by-default.patch @@ -9,7 +9,7 @@ Subject: Enable download rename option by default 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 +++ b/chrome/browser/android/chrome_feature_list.cc -@@ -421,7 +421,7 @@ const base::Feature kDownloadNotificationBadge{ +@@ -414,7 +414,7 @@ const base::Feature kDownloadNotificationBadge{ "DownloadNotificationBadge", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kDownloadRename{"DownloadRename", @@ -19,5 +19,5 @@ diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/andr const base::Feature kDownloadTabManagementModule{ "DownloadTabManagementModule", base::FEATURE_DISABLED_BY_DEFAULT}; -- -2.11.0 +2.17.1 diff --git a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch b/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch index afbfc111..737fff29 100644 --- a/build/patches/Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch +++ b/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 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -282,6 +282,10 @@ config("compiler") { +@@ -297,6 +297,10 @@ config("compiler") { } } @@ -54,5 +54,5 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") && !is_mac && !is_ios && current_os != "aix") { -- -2.11.0 +2.17.1 diff --git a/build/patches/Enable-night-mode-menu-entry-by-default.patch b/build/patches/Enable-night-mode-menu-entry-by-default.patch index d4150560..6f8bfdc8 100644 --- a/build/patches/Enable-night-mode-menu-entry-by-default.patch +++ b/build/patches/Enable-night-mode-menu-entry-by-default.patch @@ -19,5 +19,5 @@ diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/andr const base::Feature kAndroidNightModeCCT{"AndroidNightModeCCT", base::FEATURE_ENABLED_BY_DEFAULT}; -- -2.11.0 +2.17.1 diff --git a/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch b/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch index e79d0a96..75ca7646 100644 --- a/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch +++ b/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch @@ -9,7 +9,7 @@ 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 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -617,11 +617,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL", +@@ -651,11 +651,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL", // browser_features, as they are only used on the browser side. const base::Feature kSitePerProcess { "site-per-process", @@ -21,7 +21,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc }; // Controls a mode for dynamically process-isolating sites where the user has -@@ -643,7 +639,7 @@ const base::Feature kSiteIsolationForPasswordSites{ +@@ -685,7 +681,7 @@ const base::Feature kSiteIsolationForPasswordSites{ // base::SysInfo::AmountOfPhysicalMemoryMB(). const base::Feature kSitePerProcessOnlyForHighMemoryClients{ "site-per-process-only-for-high-memory-clients", @@ -31,5 +31,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc "site-per-process-low-memory-cutoff-mb"; -- -2.11.0 +2.17.1 diff --git a/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch b/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch index 93826954..656cb7d1 100644 --- a/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch +++ b/build/patches/Fix-crash-when-accessing-page-info-site-settings.patch @@ -20,5 +20,5 @@ diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/p render_frame_host, canonical_requesting_origin.GetOrigin(), embedding_origin.GetOrigin()); -- -2.11.0 +2.17.1 diff --git a/build/patches/Hide-passwords-manager-link.patch b/build/patches/Hide-passwords-manager-link.patch index a18c3a4b..9ed54e26 100644 --- a/build/patches/Hide-passwords-manager-link.patch +++ b/build/patches/Hide-passwords-manager-link.patch @@ -3,7 +3,7 @@ Date: Sun, 13 Aug 2017 19:33:04 -0400 Subject: Hide passwords manager link --- - .../chrome/browser/preferences/password/SavePasswordsPreferences.java | 4 ++-- + .../preferences/password/SavePasswordsPreferences.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java @@ -28,5 +28,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pas PreferenceCategory profileCategory = new PreferenceCategory(getStyledContext()); profileCategory.setKey(PREF_KEY_CATEGORY_EXCEPTIONS); -- -2.11.0 +2.17.1 diff --git a/build/patches/Hide-send-reports-checkbox.patch b/build/patches/Hide-send-reports-checkbox.patch index 9e9a6c6b..0d977eb3 100644 --- a/build/patches/Hide-send-reports-checkbox.patch +++ b/build/patches/Hide-send-reports-checkbox.patch @@ -19,5 +19,5 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j -- -2.11.0 +2.17.1 diff --git a/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch index f8220063..d9a64219 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-from-5-to-10.patch @@ -4,37 +4,27 @@ Subject: Increase number of autocomplete matches from 5 to 10 Patch from https://github.com/Eloston/ungoogled-chromium/issues/814#issuecomment-526874703 --- - components/omnibox/browser/autocomplete_result.cc | 7 ++----- + components/omnibox/browser/autocomplete_result.cc | 3 ++- components/omnibox/browser/omnibox_field_trial.cc | 3 ++- - 2 files changed, 4 insertions(+), 6 deletions(-) + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc --- a/components/omnibox/browser/autocomplete_result.cc +++ b/components/omnibox/browser/autocomplete_result.cc -@@ -48,17 +48,14 @@ struct MatchGURLHash { +@@ -74,7 +74,8 @@ struct MatchGURLHash { // static size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) { #if (defined(OS_ANDROID)) - constexpr size_t kDefaultMaxAutocompleteMatches = 5; -+ constexpr size_t kDefaultMaxAutocompleteMatches = 10; // was 6, this needs to be double the value of default_max_matches_per_provider from components/omnibox/browser/omnibox_field_trial.cc ++ // changed from 6, this needs to be double the value of default_max_matches_per_provider from components/omnibox/browser/omnibox_field_trial.cc ++ constexpr size_t kDefaultMaxAutocompleteMatches = 10; if (is_zero_suggest) return kDefaultMaxAutocompleteMatches; #else - constexpr size_t kDefaultMaxAutocompleteMatches = 6; - #endif // defined(OS_ANDROID) - -- return base::GetFieldTrialParamByFeatureAsInt( -- omnibox::kUIExperimentMaxAutocompleteMatches, -- OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, -- kDefaultMaxAutocompleteMatches); -+ return kDefaultMaxAutocompleteMatches; - } - - AutocompleteResult::AutocompleteResult() { diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -321,7 +321,8 @@ void OmniboxFieldTrial::GetDemotionsByType( +@@ -329,7 +329,8 @@ void OmniboxFieldTrial::GetDemotionsByType( size_t OmniboxFieldTrial::GetProviderMaxMatches( AutocompleteProvider::Type provider) { @@ -45,5 +35,5 @@ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omni std::string param_value = base::GetFieldTrialParamValueByFeature( omnibox::kUIExperimentMaxAutocompleteMatches, -- -2.11.0 +2.17.1 diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch index b73c658a..e025098b 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch @@ -7,13 +7,13 @@ Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com to al Set proper injection script nonce Send a random key press to circumvent idle status detection --- - third_party/blink/renderer/core/dom/BUILD.gn | 2 + - third_party/blink/renderer/core/dom/document.cc | 60 +++++++++++++++++++++- - third_party/blink/renderer/core/dom/document.h | 2 + - .../renderer/core/dom/extensions/anti_amp_cure.h | 6 +++ - .../renderer/core/dom/extensions/video_bg_play.h | 6 +++ - .../renderer/core/html/html_script_element.cc | 5 ++ - .../blink/renderer/core/html/html_script_element.h | 1 + + third_party/blink/renderer/core/dom/BUILD.gn | 2 + + .../blink/renderer/core/dom/document.cc | 60 ++++++++++++++++++- + .../blink/renderer/core/dom/document.h | 2 + + .../core/dom/extensions/anti_amp_cure.h | 6 ++ + .../core/dom/extensions/video_bg_play.h | 6 ++ + .../renderer/core/html/html_script_element.cc | 5 ++ + .../renderer/core/html/html_script_element.h | 1 + 7 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h create mode 100644 third_party/blink/renderer/core/dom/extensions/video_bg_play.h @@ -21,7 +21,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 --- a/third_party/blink/renderer/core/dom/BUILD.gn +++ b/third_party/blink/renderer/core/dom/BUILD.gn -@@ -146,6 +146,8 @@ blink_core_sources("dom") { +@@ -144,6 +144,8 @@ blink_core_sources("dom") { "global_event_handlers.h", "icon_url.cc", "icon_url.h", @@ -33,7 +33,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 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -254,6 +254,7 @@ +@@ -257,6 +257,7 @@ #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h" #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h" #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h" @@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h" #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h" -@@ -319,6 +320,8 @@ +@@ -321,6 +322,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& liveDocumentSet(); -@@ -6688,8 +6691,63 @@ void Document::FinishedParsing() { +@@ -6664,8 +6667,63 @@ void Document::FinishedParsing() { // Parser should have picked up all preloads by now fetcher_->ClearPreloads(ResourceFetcher::kClearSpeculativeMarkupPreloads); @@ -118,7 +118,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 --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -1641,6 +1641,8 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -1663,6 +1663,8 @@ class CORE_EXPORT Document : public ContainerNode, void AddAXContext(AXContext*); void RemoveAXContext(AXContext*); @@ -176,5 +176,5 @@ diff --git a/third_party/blink/renderer/core/html/html_script_element.h b/third_ void setAsync(bool); bool async() const; -- -2.11.0 +2.17.1 diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index f2e53098..1fdfc3c3 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -4,27 +4,27 @@ Subject: Modify default preferences Do not hide component extensions --- - chrome/browser/background/background_mode_manager.cc | 2 +- - chrome/browser/chrome_content_browser_client.cc | 2 +- - chrome/browser/net/prediction_options.cc | 2 +- - chrome/browser/net/prediction_options.h | 2 +- - chrome/browser/profiles/profile.cc | 2 +- - .../settings/reset_page/reset_profile_dialog.html | 2 +- - chrome/browser/ui/browser_ui_prefs.cc | 4 ++-- - chrome/browser/ui/navigation_correction_tab_observer.cc | 2 +- - .../browser/ui/webui/local_discovery/local_discovery_ui.cc | 4 ---- - chrome/service/cloud_print/connector_settings.cc | 2 +- - components/autofill/core/browser/autofill_manager.cc | 14 ++++---------- - components/autofill/core/common/autofill_prefs.cc | 2 +- - components/bookmarks/browser/bookmark_utils.cc | 4 ++-- - components/safe_browsing/common/safe_browsing_prefs.cc | 4 ++-- - extensions/common/extension.cc | 8 -------- + .../browser/background/background_mode_manager.cc | 2 +- + chrome/browser/chrome_content_browser_client.cc | 2 +- + chrome/browser/net/prediction_options.cc | 2 +- + chrome/browser/net/prediction_options.h | 2 +- + chrome/browser/profiles/profile.cc | 2 +- + .../settings/reset_page/reset_profile_dialog.html | 2 +- + chrome/browser/ui/browser_ui_prefs.cc | 4 ++-- + .../ui/navigation_correction_tab_observer.cc | 2 +- + .../ui/webui/local_discovery/local_discovery_ui.cc | 4 ---- + chrome/service/cloud_print/connector_settings.cc | 2 +- + .../autofill/core/browser/autofill_manager.cc | 14 ++++---------- + components/autofill/core/common/autofill_prefs.cc | 2 +- + components/bookmarks/browser/bookmark_utils.cc | 4 ++-- + .../safe_browsing/common/safe_browsing_prefs.cc | 4 ++-- + extensions/common/extension.cc | 8 -------- 15 files changed, 19 insertions(+), 37 deletions(-) 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 +++ b/chrome/browser/background/background_mode_manager.cc -@@ -301,7 +301,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -302,7 +302,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false); registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false); #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 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1150,7 +1150,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1141,7 +1141,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { 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 --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -140,7 +140,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; +@@ -149,7 +149,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kSearchSuggestEnabled, @@ -96,7 +96,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -66,11 +66,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -67,11 +67,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( @@ -113,7 +113,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 --- a/chrome/browser/ui/navigation_correction_tab_observer.cc +++ b/chrome/browser/ui/navigation_correction_tab_observer.cc -@@ -42,7 +42,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {} +@@ -43,7 +43,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {} // static void NavigationCorrectionTabObserver::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* prefs) { @@ -151,7 +151,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 --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc -@@ -516,10 +516,7 @@ bool AutofillManager::ShouldParseForms(const std::vector& forms, +@@ -529,10 +529,7 @@ bool AutofillManager::ShouldParseForms(const std::vector& forms, bool enabled = IsAutofillEnabled(); sync_state_ = personal_data_ ? personal_data_->GetSyncSigninState() : AutofillSyncSigninState::kNumSyncStates; @@ -163,7 +163,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a return enabled; } -@@ -803,10 +800,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl( +@@ -818,10 +815,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl( // suggestions available. // TODO(mathp): Differentiate between number of suggestions available // (current metric) and number shown to the user. @@ -175,7 +175,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a } } -@@ -1427,8 +1421,8 @@ void AutofillManager::Reset() { +@@ -1450,8 +1444,8 @@ void AutofillManager::Reset() { #if defined(OS_ANDROID) || defined(OS_IOS) autofill_assistant_.Reset(); #endif @@ -189,7 +189,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc -@@ -150,7 +150,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -152,7 +152,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { prefs::kAutofillLastVersionDisusedAddressesDeleted, 0, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( @@ -201,7 +201,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc --- a/components/bookmarks/browser/bookmark_utils.cc +++ b/components/bookmarks/browser/bookmark_utils.cc -@@ -443,12 +443,12 @@ bool DoesBookmarkContainWords(const base::string16& title, +@@ -439,12 +439,12 @@ bool DoesBookmarkContainWords(const base::string16& title, void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kShowBookmarkBar, @@ -219,7 +219,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar diff --git a/components/safe_browsing/common/safe_browsing_prefs.cc b/components/safe_browsing/common/safe_browsing_prefs.cc --- a/components/safe_browsing/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/common/safe_browsing_prefs.cc -@@ -167,9 +167,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -169,9 +169,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -250,5 +250,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc // show packaged apps and platform apps because there are some pieces of // functionality that are only available in chrome://extensions/ but which -- -2.11.0 +2.17.1 diff --git a/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch b/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch index e395814b..5b99da66 100644 --- a/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch +++ b/build/patches/Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch @@ -25,30 +25,30 @@ approach to change color components. Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data fingerprinting deception --- - chrome/browser/BUILD.gn | 1 + - chrome/browser/about_flags.cc | 13 ++ - content/browser/BUILD.gn | 1 + - .../renderer_host/render_process_host_impl.cc | 4 + - content/child/BUILD.gn | 1 + - content/child/runtime_features.cc | 8 ++ - .../blink/public/platform/web_runtime_features.h | 3 + - third_party/blink/renderer/core/dom/document.cc | 18 +++ - third_party/blink/renderer/core/dom/document.h | 7 + - third_party/blink/renderer/core/dom/element.cc | 8 ++ - third_party/blink/renderer/core/dom/range.cc | 12 +- - .../renderer/core/html/canvas/text_metrics.cc | 18 +++ - .../blink/renderer/core/html/canvas/text_metrics.h | 2 + - .../canvas/canvas2d/canvas_rendering_context_2d.cc | 8 +- - .../modules/webgl/webgl_debug_renderer_info.cc | 4 +- - third_party/blink/renderer/platform/BUILD.gn | 5 +- - .../platform/exported/web_runtime_features.cc | 12 ++ - .../platform/graphics/image_data_buffer.cc | 7 + - .../platform/graphics/static_bitmap_image.cc | 159 +++++++++++++++++++++ - .../platform/graphics/static_bitmap_image.h | 2 + - .../platform/runtime_enabled_features.json5 | 9 ++ - third_party/ungoogled/BUILD.gn | 10 ++ - third_party/ungoogled/ungoogled_switches.cc | 18 +++ - third_party/ungoogled/ungoogled_switches.h | 18 +++ + chrome/browser/BUILD.gn | 1 + + chrome/browser/about_flags.cc | 13 ++ + content/browser/BUILD.gn | 1 + + .../renderer_host/render_process_host_impl.cc | 4 + + content/child/BUILD.gn | 1 + + content/child/runtime_features.cc | 8 + + .../public/platform/web_runtime_features.h | 3 + + .../blink/renderer/core/dom/document.cc | 18 ++ + .../blink/renderer/core/dom/document.h | 7 + + .../blink/renderer/core/dom/element.cc | 8 + + third_party/blink/renderer/core/dom/range.cc | 12 +- + .../renderer/core/html/canvas/text_metrics.cc | 18 ++ + .../renderer/core/html/canvas/text_metrics.h | 2 + + .../canvas2d/canvas_rendering_context_2d.cc | 8 +- + .../webgl/webgl_debug_renderer_info.cc | 4 +- + third_party/blink/renderer/platform/BUILD.gn | 5 +- + .../platform/exported/web_runtime_features.cc | 12 ++ + .../platform/graphics/image_data_buffer.cc | 7 + + .../platform/graphics/static_bitmap_image.cc | 159 ++++++++++++++++++ + .../platform/graphics/static_bitmap_image.h | 2 + + .../platform/runtime_enabled_features.json5 | 9 + + third_party/ungoogled/BUILD.gn | 10 ++ + third_party/ungoogled/ungoogled_switches.cc | 18 ++ + third_party/ungoogled/ungoogled_switches.h | 18 ++ 24 files changed, 343 insertions(+), 5 deletions(-) create mode 100644 third_party/ungoogled/BUILD.gn create mode 100644 third_party/ungoogled/ungoogled_switches.cc @@ -57,7 +57,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2200,6 +2200,7 @@ jumbo_split_static_library("browser") { +@@ -2144,6 +2144,7 @@ jumbo_static_library("browser") { "//third_party/metrics_proto", "//third_party/re2", "//third_party/smhasher:cityhash", @@ -69,14 +69,14 @@ 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 @@ -147,6 +147,7 @@ + #include "third_party/blink/public/common/experiments/memory_ablation_experiment.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/forcedark/forcedark_switches.h" - #include "third_party/leveldatabase/leveldb_features.h" +#include "third_party/ungoogled/ungoogled_switches.h" + #include "third_party/leveldatabase/leveldb_features.h" + #include "ui/accessibility/accessibility_features.h" #include "ui/accessibility/accessibility_switches.h" - #include "ui/base/ui_base_features.h" - #include "ui/base/ui_base_switches.h" -@@ -1405,12 +1406,24 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1466,12 +1467,24 @@ const FeatureEntry kFeatureEntries[] = { {"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName, flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll, SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)}, @@ -115,7 +115,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -213,6 +213,7 @@ +@@ -220,6 +220,7 @@ #include "third_party/blink/public/common/page/launching_process_state.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" #include "third_party/blink/public/public_buildflags.h" @@ -123,22 +123,22 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "third_party/skia/include/core/SkBitmap.h" #include "ui/accessibility/accessibility_switches.h" #include "ui/base/ui_base_switches.h" -@@ -2970,6 +2971,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( - switches::kEnableWebGLSwapChain, - switches::kEnableWebVR, - switches::kFileUrlPathAlias, +@@ -2977,6 +2978,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( + switches::kDisablePreferCompositingToLCDText, + switches::kDisableDatabases, + switches::kDisableFileSystem, + switches::kFingerprintingClientRectsNoise, + switches::kFingerprintingCanvasMeasureTextNoise, + switches::kFingerprintingCanvasImageDataNoise, - switches::kForceDisplayColorProfile, - switches::kForceDeviceScaleFactor, - switches::kForceGpuMemAvailableMb, + switches::kDisableFrameRateLimit, + switches::kDisableGpuMemoryBufferVideoFrames, + switches::kDisableImageAnimationResync, diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn --- a/content/child/BUILD.gn +++ b/content/child/BUILD.gn -@@ -120,6 +120,7 @@ target(link_target_type, "child") { - "//third_party/blink/public:scaled_resources", +@@ -123,6 +123,7 @@ target(link_target_type, "child") { "//third_party/blink/public/common", + "//third_party/blink/public/strings", "//third_party/ced", + "//third_party/ungoogled:switches", "//third_party/zlib/google:compression_utils", @@ -149,15 +149,15 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. +++ b/content/child/runtime_features.cc @@ -23,6 +23,7 @@ #include "services/network/public/cpp/features.h" + #include "services/network/public/cpp/network_switches.h" #include "third_party/blink/public/common/features.h" - #include "third_party/blink/public/platform/web_runtime_features.h" +#include "third_party/ungoogled/ungoogled_switches.h" + #include "third_party/blink/public/platform/web_runtime_features.h" + #include "ui/accessibility/accessibility_features.h" #include "ui/base/ui_base_features.h" - #include "ui/events/blink/blink_features.h" - #include "ui/gfx/switches.h" -@@ -461,6 +462,13 @@ void SetIndividualRuntimeFeatures( - WebRuntimeFeatures::EnableAllowSyncXHRInPageDismissal(true); - } +@@ -513,6 +514,13 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( + if (ui::IsOverlayScrollbarEnabled()) + WebRuntimeFeatures::EnableOverlayScrollbars(true); + WebRuntimeFeatures::EnableFingerprintingClientRectsNoise( + !command_line.HasSwitch(switches::kFingerprintingClientRectsNoise)); @@ -166,13 +166,13 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. + WebRuntimeFeatures::EnableFingerprintingCanvasImageDataNoise( + !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise)); + - WebRuntimeFeatures::EnableAutoplayIgnoresWebAudio( - base::FeatureList::IsEnabled(media::kAutoplayIgnoreWebAudio)); + WebRuntimeFeatures::EnableFormControlsRefresh( + features::IsFormControlsRefreshEnabled()); 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 +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -228,6 +228,9 @@ class WebRuntimeFeatures { +@@ -229,6 +229,9 @@ class WebRuntimeFeatures { BLINK_PLATFORM_EXPORT static void EnableMergeBlockingNonBlockingPools(bool); BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool); BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool); @@ -193,9 +193,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/time/time.h" #include "cc/input/overscroll_behavior.h" #include "cc/input/scroll_snap_data.h" -@@ -1199,6 +1200,15 @@ Document::Document(const DocumentInit& initializer, - #ifndef NDEBUG - liveDocumentSet().insert(this); +@@ -2794,6 +2795,23 @@ void Document::UpdateStyleAndLayoutTree() { + #if DCHECK_IS_ON() + AssertLayoutTreeUpdated(*this); #endif + + if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) { @@ -206,28 +206,21 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink + noise_factor_x_ = 1; + noise_factor_y_ = 1; + } - } - - Document::~Document() { -@@ -1227,6 +1237,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope, - Position::BeforeNode(*shadow_host)); - } - ++} ++ +double Document::GetNoiseFactorX() { + return noise_factor_x_; +} + +double Document::GetNoiseFactorY() { + return noise_factor_y_; -+} -+ - SelectorQueryCache& Document::GetSelectorQueryCache() { - if (!selector_query_cache_) - selector_query_cache_ = std::make_unique(); + } + + void Document::UpdateActiveStyle() { 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 +++ b/third_party/blink/renderer/core/dom/document.h -@@ -408,6 +408,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -414,6 +414,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -238,7 +231,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ String visibilityState() const; bool IsPageVisible() const; bool hidden() const; -@@ -1905,6 +1909,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -1936,6 +1940,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -251,7 +244,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 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -1630,6 +1630,11 @@ DOMRectList* Element::getClientRects() { +@@ -1877,6 +1877,11 @@ DOMRectList* Element::getClientRects() { DCHECK(element_layout_object); GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom( quads, *element_layout_object); @@ -263,7 +256,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return DOMRectList::Create(quads); } -@@ -1647,6 +1652,9 @@ DOMRect* Element::getBoundingClientRect() { +@@ -1894,6 +1899,9 @@ DOMRect* Element::getBoundingClientRect() { DCHECK(element_layout_object); GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -342,7 +335,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc -@@ -811,9 +811,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { +@@ -818,9 +818,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { else direction = ToTextDirection(GetState().GetDirection(), canvas()); @@ -379,7 +372,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 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1417,7 +1417,9 @@ jumbo_component("platform") { +@@ -1454,7 +1454,9 @@ jumbo_component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -390,18 +383,18 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re public_deps = [ ":blink_platform_public_deps", -@@ -1450,6 +1452,7 @@ jumbo_component("platform") { +@@ -1487,6 +1489,7 @@ jumbo_component("platform") { + "//third_party/blink/public/common", + "//third_party/blink/public/mojom:embedded_frame_sink_mojo_bindings_blink", "//third_party/ced", ++ "//third_party/ungoogled:switches", "//third_party/emoji-segmenter", "//third_party/icu", -+ "//third_party/ungoogled:switches", - "//third_party/webrtc/api:libjingle_logging_api", - "//third_party/webrtc/api/audio_codecs/L16:audio_decoder_L16", - "//third_party/webrtc/api/audio_codecs/L16:audio_encoder_L16", + "//third_party/libyuv", 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 +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -722,4 +722,16 @@ void WebRuntimeFeatures::EnableAcceleratedSmallCanvases(bool enable) { +@@ -704,4 +704,16 @@ void WebRuntimeFeatures::EnableAcceleratedSmallCanvases(bool enable) { RuntimeEnabledFeatures::SetAcceleratedSmallCanvasesEnabled(enable); } @@ -469,7 +462,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc #include "v8/include/v8.h" namespace blink { -@@ -154,10 +158,165 @@ bool StaticBitmapImage::ConvertToArrayBufferContents( +@@ -141,10 +145,165 @@ bool StaticBitmapImage::ConvertToArrayBufferContents( DCHECK(read_pixels_successful || !sk_image->bounds().intersect(SkIRect::MakeXYWH( rect.X(), rect.Y(), info.width(), info.height()))); @@ -638,8 +631,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h -@@ -46,6 +46,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image { - static scoped_refptr Create(WTF::ArrayBufferContents&, +@@ -44,6 +44,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image { + static scoped_refptr Create(sk_sp data, const SkImageInfo&); + static void ShuffleSubchannelColorData(const void *addr, const SkImageInfo& info, int srcX, int srcY); @@ -650,9 +643,9 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h 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 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -677,6 +677,15 @@ - name: "FileSystem", - status: "stable", +@@ -683,6 +683,15 @@ + name: "FetchMetadataDestination", + status: "experimental" }, + { + name: "FingerprintingClientRectsNoise", @@ -663,9 +656,9 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + { + name: "FingerprintingCanvasImageDataNoise", + }, - // FirstContentfulPaintPlusPlus enables the Largest Text Paint metric, Last - // Text Paint metric, Largest Image Paint metric and Last Image Paint - // metric. See also: http://bit.ly/fcp_plus_plus + { + name: "FileHandling", + // NativeFileSystem is in Origin Trial, which doesn't support having diff --git a/third_party/ungoogled/BUILD.gn b/third_party/ungoogled/BUILD.gn new file mode 100644 --- /dev/null @@ -728,5 +721,5 @@ new file mode 100644 + +#endif // THIRD_PARTY_UNGOOGLED_FINGERPRINTING_SWITCHES_H_ -- -2.11.0 +2.17.1 diff --git a/build/patches/Never-fetch-popular-sites.patch b/build/patches/Never-fetch-popular-sites.patch index 997ac1ca..2cac3a2d 100644 --- a/build/patches/Never-fetch-popular-sites.patch +++ b/build/patches/Never-fetch-popular-sites.patch @@ -23,5 +23,5 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref)); const base::TimeDelta time_since_last_download = -- -2.11.0 +2.17.1 diff --git a/build/patches/Never-send-any-crash-upload-data.patch b/build/patches/Never-send-any-crash-upload-data.patch index 585c8d8f..6c785ab7 100644 --- a/build/patches/Never-send-any-crash-upload-data.patch +++ b/build/patches/Never-send-any-crash-upload-data.patch @@ -20,5 +20,5 @@ diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/t progress_callback_ = progress_callback; -- -2.11.0 +2.17.1 diff --git a/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch b/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch index edf3aa16..5f5a798c 100644 --- a/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch +++ b/build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch @@ -3,21 +3,21 @@ Date: Sun, 28 Oct 2018 14:11:50 +0100 Subject: Offer builtin autocomplete for chrome://flags --- - chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc | 2 ++ + .../browser/autocomplete/chrome_autocomplete_provider_client.cc | 2 ++ 1 file changed, 2 insertions(+) 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 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -255,6 +255,8 @@ std::vector +@@ -254,6 +254,8 @@ std::vector ChromeAutocompleteProviderClient::GetBuiltinURLs() { + std::vector ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { std::vector builtins_to_provide; - builtins_to_provide.push_back( -+ base::ASCIIToUTF16(chrome::kChromeUIFlagsURL)); + builtins_to_provide.push_back( ++ base::ASCIIToUTF16(chrome::kChromeUIFlagsURL)); + builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL)); #if !defined(OS_ANDROID) - builtins_to_provide.push_back( -- -2.11.0 +2.17.1 diff --git a/build/patches/Open-YouTube-links-in-Bromite.patch b/build/patches/Open-YouTube-links-in-Bromite.patch index 0146187b..8e7a99e7 100644 --- a/build/patches/Open-YouTube-links-in-Bromite.patch +++ b/build/patches/Open-YouTube-links-in-Bromite.patch @@ -3,26 +3,34 @@ Date: Thu, 11 Jan 2018 13:27:34 +0200 Subject: Open YouTube links in Bromite --- - .../chrome/browser/externalnav/ExternalNavigationHandler.java | 7 +++++++ - 1 file changed, 7 insertions(+) + .../browser/externalnav/ExternalNavigationHandler.java | 8 ++++++++ + 1 file changed, 8 insertions(+) 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java -@@ -402,6 +402,13 @@ public class ExternalNavigationHandler { +@@ -402,6 +402,7 @@ public class ExternalNavigationHandler { + Uri.parse(WebView.SCHEME_TEL + + params.getUrl().substring(WTAI_MC_URL_PREFIX.length()))), + false); ++ + if (DEBUG) Log.i(TAG, "wtai:// link handled"); + RecordUserAction.record("Android.PhoneIntent"); + return true; +@@ -745,6 +746,13 @@ public class ExternalNavigationHandler { + return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION; } - // TODO(changwan): check if we need to handle URL even when external intent is off. -+ // Force to open YouTube urls in Bromite -+ String intentPackageName = intent.getPackage(); ++ // force to open YouTube urls in Bromite ++ String intentPackageName = targetIntent.getPackage(); + if (intentPackageName != null && intentPackageName.equals("com.google.android.youtube")) { + if (DEBUG) Log.i(TAG, "NO_OVERRIDE: YouTube URL for YouTube app"); + return OverrideUrlLoadingResult.NO_OVERRIDE; + } + - if (CommandLine.getInstance().hasSwitch( - ChromeSwitches.DISABLE_EXTERNAL_INTENT_REQUESTS)) { - Log.w(TAG, "External intent handling is disabled by a command-line flag."); + // This should come after file intents, but before any returns of + // OVERRIDE_WITH_EXTERNAL_INTENT. + if (externalIntentRequestsDisabled()) return OverrideUrlLoadingResult.NO_OVERRIDE; -- -2.11.0 +2.17.1 diff --git a/build/patches/Punt-the-Widevine-version-string.patch b/build/patches/Punt-the-Widevine-version-string.patch deleted file mode 100644 index 668bb08d..00000000 --- a/build/patches/Punt-the-Widevine-version-string.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 2 Apr 2018 11:36:02 +0200 -Subject: Punt the Widevine version string - -Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromium-browser.wily.beta/view/head:/debian/patches/fix_building_widevinecdm_with_chromium.patch ---- - chrome/common/chrome_content_client.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc ---- a/chrome/common/chrome_content_client.cc -+++ b/chrome/common/chrome_content_client.cc -@@ -517,7 +517,7 @@ void ChromeContentClient::AddContentDecryptionModules( - base::FilePath cdm_path; - content::CdmCapability capability; - if (IsWidevineAvailable(&cdm_path, &capability)) { -- const base::Version version(WIDEVINE_CDM_VERSION_STRING); -+ const base::Version version("1.0.123.456"); - DCHECK(version.IsValid()); - - cdms->push_back( --- -2.11.0 - diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch new file mode 100644 index 00000000..5da27c75 --- /dev/null +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -0,0 +1,102 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 28 Apr 2018 08:30:26 +0200 +Subject: Reduce HTTP headers in DoH requests to bare minimum + +Serve DoH requests with maximum priority. +--- + net/base/load_flags_list.h | 6 ++++++ + net/dns/dns_transaction.cc | 3 ++- + net/url_request/url_request_http_job.cc | 16 +++++++++++----- + 3 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h +--- a/net/base/load_flags_list.h ++++ b/net/base/load_flags_list.h +@@ -106,6 +106,12 @@ LOAD_FLAG(SUPPORT_ASYNC_REVALIDATION, 1 << 16) + // the LOAD_CAN_USE_RESTRICTED_PREFETCH load flag. + LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 17) + ++// This load will not send Accept-Language or User-Agent headers, and not ++// advertise brotli encoding. ++// Used to comply with IETF (draft) DNS-over-HTTPS: ++// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests." ++LOAD_FLAG(MINIMAL_HEADERS, 1 << 18) ++ + // This flag must be set on requests that are allowed to reuse cache entries + // that are marked as RESTRICTED_PREFETCH. Requests without this flag cannot + // reuse restricted prefetch responses in the cache. Restricted response reuse +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 +@@ -403,6 +403,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { + // perspective to prevent the client from sending AIA requests). + request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | + LOAD_BYPASS_PROXY | ++ LOAD_IGNORE_LIMITS | LOAD_MINIMAL_HEADERS | + LOAD_DISABLE_CERT_NETWORK_FETCHES); + request_->set_allow_credentials(false); + } +@@ -1004,7 +1005,7 @@ class DnsTransactionImpl : public DnsTransaction, + had_tcp_attempt_(false), + first_server_index_(0), + url_request_context_(url_request_context), +- request_priority_(DEFAULT_PRIORITY) { ++ request_priority_(MAXIMUM_PRIORITY) { + DCHECK(session_.get()); + DCHECK(!hostname_.empty()); + DCHECK(!callback_.is_null()); +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 ++++ b/net/url_request/url_request_http_job.cc +@@ -354,6 +354,7 @@ void URLRequestHttpJob::Start() { + // plugin could set a referrer although sending the referrer is inhibited. + request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer); + ++ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) { + // Our consumer should have made sure that this is a safe referrer. See for + // instance WebCore::FrameLoader::HideReferrer. + if (referrer.is_valid()) { +@@ -369,11 +370,14 @@ void URLRequestHttpJob::Start() { + request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, + referer_value); + } ++ } + ++ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) { + request_info_.extra_headers.SetHeaderIfMissing( + HttpRequestHeaders::kUserAgent, + http_user_agent_settings_ ? + http_user_agent_settings_->GetUserAgent() : std::string()); ++ } + + AddExtraHeaders(); + AddCookieHeaderAndStart(); +@@ -588,10 +592,12 @@ void URLRequestHttpJob::AddExtraHeaders() { + } else { + // Advertise "br" encoding only if transferred data is opaque to proxy. + bool advertise_brotli = false; +- if (request()->context()->enable_brotli()) { +- if (request()->url().SchemeIsCryptographic() || +- IsLocalhost(request()->url())) { +- advertise_brotli = true; ++ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) { ++ if (request()->context()->enable_brotli()) { ++ if (request()->url().SchemeIsCryptographic() || ++ IsLocalhost(request()->url())) { ++ advertise_brotli = true; ++ } + } + } + +@@ -609,7 +615,7 @@ void URLRequestHttpJob::AddExtraHeaders() { + } + } + +- if (http_user_agent_settings_) { ++ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS) && http_user_agent_settings_) { + // Only add default Accept-Language if the request didn't have it + // specified. + std::string accept_language = +-- +2.17.1 + diff --git a/build/patches/Remove-EV-certificates.patch b/build/patches/Remove-EV-certificates.patch index 4b646414..4d560c57 100644 --- a/build/patches/Remove-EV-certificates.patch +++ b/build/patches/Remove-EV-certificates.patch @@ -97,5 +97,5 @@ diff --git a/net/cert/ev_root_ca_metadata.h b/net/cert/ev_root_ca_metadata.h // RegisterOID registers |policy|, a policy OID in dotted string form, and -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-SMS-integration.patch b/build/patches/Remove-SMS-integration.patch index 94e64634..129e8b56 100644 --- a/build/patches/Remove-SMS-integration.patch +++ b/build/patches/Remove-SMS-integration.patch @@ -3,15 +3,15 @@ Date: Sun, 3 Nov 2019 08:22:29 +0100 Subject: Remove SMS integration --- - content/public/android/BUILD.gn | 2 - - .../org/chromium/content/browser/sms/Wrappers.java | 74 ---------------------- + content/public/android/BUILD.gn | 2 - + .../content/browser/sms/Wrappers.java | 74 ------------------- 2 files changed, 76 deletions(-) delete mode 100644 content/public/android/java/src/org/chromium/content/browser/sms/Wrappers.java diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -231,8 +231,6 @@ android_library("content_java") { +@@ -232,8 +232,6 @@ android_library("content_java") { "java/src/org/chromium/content/browser/selection/SmartSelectionClient.java", "java/src/org/chromium/content/browser/selection/SmartSelectionMetricsLogger.java", "java/src/org/chromium/content/browser/selection/SmartSelectionProvider.java", @@ -100,5 +100,5 @@ deleted file mode 100644 - } -} -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-background-sync-and-translate-menu-options.patch b/build/patches/Remove-background-sync-and-translate-menu-options.patch index 8442176b..5244b7a5 100644 --- a/build/patches/Remove-background-sync-and-translate-menu-options.patch +++ b/build/patches/Remove-background-sync-and-translate-menu-options.patch @@ -3,8 +3,8 @@ Date: Wed, 22 Mar 2017 19:10:30 -0400 Subject: Remove background sync and translate menu options --- - chrome/android/java/res/xml/site_settings_preferences.xml | 4 ---- - .../chrome/browser/preferences/website/SiteSettingsPreferences.java | 3 +-- + chrome/android/java/res/xml/site_settings_preferences.xml | 4 ---- + .../browser/preferences/website/SiteSettingsPreferences.java | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml @@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java -@@ -73,7 +73,7 @@ public class SiteSettingsPreferences +@@ -72,7 +72,7 @@ public class SiteSettingsPreferences // The Media sub-menu only contains Protected Content and Autoplay, so remove all other // menus. for (@Type int i = 0; i < Type.NUM_ENTRIES; i++) { @@ -33,14 +33,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web getPreferenceScreen().removePreference(findPreference(i)); } getPreferenceScreen().removePreference(findPreference(MEDIA_KEY)); -@@ -111,7 +111,6 @@ public class SiteSettingsPreferences +@@ -106,7 +106,6 @@ public class SiteSettingsPreferences websitePrefs.add(Type.ADS); } websitePrefs.add(Type.AUTOMATIC_DOWNLOADS); - websitePrefs.add(Type.BACKGROUND_SYNC); CommandLine commandLine = CommandLine.getInstance(); - if (commandLine.hasSwitch(ContentSwitches.ENABLE_WEB_BLUETOOTH_SCANNING)) { + if (commandLine.hasSwitch(ContentSwitches.ENABLE_EXPERIMENTAL_WEB_PLATFORM_FEATURES)) { websitePrefs.add(Type.BLUETOOTH_SCANNING); -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gcm.patch b/build/patches/Remove-dependency-on-com.google.android.gcm.patch index 309aee36..0d511eb3 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gcm.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gcm.patch @@ -3,10 +3,10 @@ Date: Sat, 2 Nov 2019 09:29:52 +0100 Subject: Remove dependency on com.google.android.gcm --- - third_party/android_sdk/BUILD.gn | 3 -- - .../external/client/android2/AndroidManifest.xml | 35 ---------------------- - .../channel/AndroidMessageReceiverService.java | 17 ----------- - .../channel/AndroidMessageSenderService.java | 3 +- + third_party/android_sdk/BUILD.gn | 3 -- + .../client/android2/AndroidManifest.xml | 35 ------------------- + .../AndroidMessageReceiverService.java | 17 --------- + .../channel/AndroidMessageSenderService.java | 3 +- 4 files changed, 1 insertion(+), 57 deletions(-) diff --git a/third_party/android_sdk/BUILD.gn b/third_party/android_sdk/BUILD.gn @@ -128,5 +128,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ // GCMRegistrar#getRegistrationId occasionally throws a runtime exception. Catching the // exception rather than crashing. -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch b/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch index 19d68233..57cad59c 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.auth.patch @@ -3,20 +3,20 @@ Date: Sat, 2 Nov 2019 09:22:31 +0100 Subject: Remove dependency on com.google.android.gms.auth --- - chrome/android/BUILD.gn | 1 - - components/signin/core/browser/android/BUILD.gn | 1 - - .../components/signin/AccountIdProvider.java | 10 +---- - .../signin/SystemAccountManagerDelegate.java | 15 +------- - content/public/android/BUILD.gn | 1 - - content/test/BUILD.gn | 1 - - third_party/android_deps/BUILD.gn | 44 ---------------------- - third_party/robolectric/BUILD.gn | 1 - + chrome/android/BUILD.gn | 1 - + .../signin/core/browser/android/BUILD.gn | 1 - + .../components/signin/AccountIdProvider.java | 10 +---- + .../signin/SystemAccountManagerDelegate.java | 15 +------ + content/public/android/BUILD.gn | 1 - + content/test/BUILD.gn | 1 - + third_party/android_deps/BUILD.gn | 44 ------------------- + third_party/robolectric/BUILD.gn | 1 - 8 files changed, 2 insertions(+), 72 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -267,7 +267,6 @@ android_library("chrome_java") { +@@ -258,7 +258,6 @@ android_library("chrome_java") { ":thumbnail_cache_entry_proto_java", ":update_proto_java", ":usage_stats_proto_java", @@ -27,7 +27,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/components/signin/core/browser/android/BUILD.gn b/components/signin/core/browser/android/BUILD.gn --- a/components/signin/core/browser/android/BUILD.gn +++ b/components/signin/core/browser/android/BUILD.gn -@@ -15,7 +15,6 @@ generate_jni("jni_headers") { +@@ -16,7 +16,6 @@ generate_jni("jni_headers") { android_library("java") { deps = [ @@ -108,7 +108,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -2442,7 +2442,6 @@ if (is_android) { +@@ -2444,7 +2444,6 @@ if (is_android) { testonly = true java_files = content_java_sources_needing_jni deps = [ @@ -119,10 +119,11 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -772,50 +772,6 @@ android_aar_prebuilt("com_android_support_viewpager_java") { +@@ -802,50 +802,6 @@ android_aar_prebuilt("com_android_support_viewpager_java") { + ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_auth_java") { - aar_path = "libs/com_google_android_gms_play_services_auth/play-services-auth-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info" @@ -166,10 +167,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_base_java") { aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" diff --git a/third_party/robolectric/BUILD.gn b/third_party/robolectric/BUILD.gn --- a/third_party/robolectric/BUILD.gn +++ b/third_party/robolectric/BUILD.gn @@ -182,5 +182,5 @@ diff --git a/third_party/robolectric/BUILD.gn b/third_party/robolectric/BUILD.gn "$google_play_services_package:google_play_services_basement_java", "//third_party/android_deps:android_support_v4_java", -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch b/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch index 8f39984b..9e74d0e6 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.cast.patch @@ -3,33 +3,33 @@ Date: Sat, 2 Nov 2019 08:00:04 +0100 Subject: Remove dependency on com.google.android.gms.cast --- - chrome/android/BUILD.gn | 6 -- - chrome/android/features/media_router/BUILD.gn | 2 - - .../browser/media/router/CastSessionUtil.java | 35 ------- - .../chrome/browser/media/router/MediaSink.java | 44 +------- - .../browser/media/router/MediaStatusBridge.java | 40 ++----- - .../router/caf/BaseNotificationController.java | 46 --------- - .../media/router/caf/BaseSessionController.java | 115 +-------------------- - .../router/caf/CafBaseMediaRouteProvider.java | 103 +----------------- - .../media/router/caf/CafMediaRouteProvider.java | 16 --- - .../media/router/caf/CafMessageHandler.java | 97 +---------------- - .../browser/media/router/caf/CastMediaSource.java | 10 +- - .../media/router/caf/CastOptionsProvider.java | 22 +--- - .../media/router/caf/CastSessionController.java | 84 --------------- - .../chrome/browser/media/router/caf/CastUtils.java | 6 -- - .../remoting/CafExpandedControllerActivity.java | 24 +---- - .../caf/remoting/FlingingControllerAdapter.java | 61 ----------- - .../router/caf/remoting/RemotingMediaSource.java | 8 +- - .../caf/remoting/RemotingSessionController.java | 21 ---- - chrome/android/java/AndroidManifest.xml | 28 ----- - chrome/test/android/cast_emulator/BUILD.gn | 1 - - third_party/android_deps/BUILD.gn | 32 ------ - 21 files changed, 26 insertions(+), 775 deletions(-) + chrome/android/BUILD.gn | 6 - + chrome/android/features/media_router/BUILD.gn | 2 - + .../browser/media/router/CastSessionUtil.java | 35 ------ + .../browser/media/router/MediaSink.java | 44 +------ + .../media/router/MediaStatusBridge.java | 40 ++---- + .../caf/BaseNotificationController.java | 46 ------- + .../router/caf/BaseSessionController.java | 118 +----------------- + .../router/caf/CafBaseMediaRouteProvider.java | 103 +-------------- + .../router/caf/CafMediaRouteProvider.java | 16 --- + .../media/router/caf/CafMessageHandler.java | 97 +------------- + .../media/router/caf/CastMediaSource.java | 10 +- + .../media/router/caf/CastOptionsProvider.java | 22 +--- + .../router/caf/CastSessionController.java | 84 ------------- + .../browser/media/router/caf/CastUtils.java | 6 - + .../CafExpandedControllerActivity.java | 24 +--- + .../remoting/FlingingControllerAdapter.java | 61 --------- + .../caf/remoting/RemotingMediaSource.java | 8 +- + .../remoting/RemotingSessionController.java | 21 ---- + chrome/android/java/AndroidManifest.xml | 28 ----- + chrome/test/android/cast_emulator/BUILD.gn | 1 - + third_party/android_deps/BUILD.gn | 33 ----- + 21 files changed, 27 insertions(+), 778 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -269,8 +269,6 @@ android_library("chrome_java") { +@@ -260,8 +260,6 @@ android_library("chrome_java") { ":usage_stats_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:jni_java", -@@ -689,8 +687,6 @@ junit_binary("chrome_junit_tests") { +@@ -654,8 +652,6 @@ junit_binary("chrome_junit_tests") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -47,7 +47,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -790,8 +786,6 @@ android_library("chrome_test_java") { +@@ -759,8 +755,6 @@ android_library("chrome_test_java") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -121,9 +121,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/MediaSink.java -@@ -8,41 +8,24 @@ import android.support.annotation.Nullable; - import android.support.v7.media.MediaRouter; - import android.support.v7.media.MediaRouter.RouteInfo; +@@ -9,41 +9,24 @@ import android.support.v7.media.MediaRouter.RouteInfo; + + import androidx.annotation.Nullable; -import com.google.android.gms.cast.CastDevice; - @@ -165,7 +165,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b } /** -@@ -52,17 +35,8 @@ public class MediaSink { +@@ -53,17 +36,8 @@ public class MediaSink { return CAST_SINK_URN_PREFIX + getId(); } @@ -183,7 +183,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b return false; } -@@ -70,23 +44,15 @@ public class MediaSink { +@@ -71,23 +45,15 @@ public class MediaSink { public int hashCode() { final int prime = 31; int result = 1; @@ -208,7 +208,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b } /** -@@ -97,10 +63,6 @@ public class MediaSink { +@@ -98,10 +64,6 @@ public class MediaSink { */ @Nullable public static MediaSink fromSinkId(String sinkId, MediaRouter router) { @@ -437,9 +437,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java -@@ -6,12 +6,6 @@ package org.chromium.chrome.browser.media.router.caf; +@@ -6,18 +6,11 @@ package org.chromium.chrome.browser.media.router.caf; - import android.support.annotation.Nullable; + import androidx.annotation.Nullable; -import com.google.android.gms.cast.CastDevice; -import com.google.android.gms.cast.framework.CastSession; @@ -450,7 +450,13 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -@@ -52,16 +46,13 @@ public abstract class BaseSessionController { + + import org.chromium.base.Log; +-import org.chromium.chrome.browser.media.router.CastSessionUtil; + import org.chromium.chrome.browser.media.router.FlingingController; + import org.chromium.chrome.browser.media.router.MediaSink; + import org.chromium.chrome.browser.media.router.MediaSource; +@@ -50,17 +43,14 @@ public abstract class BaseSessionController { } private final Random mRequestIdGenerator = new Random(); @@ -459,15 +465,17 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b private final CafBaseMediaRouteProvider mProvider; private CreateRouteRequestInfo mRouteCreationInfo; - private final RemoteMediaClient.Callback mRemoteMediaClientCallback; - private final List> mCallbacks = new ArrayList<>(); + private final List mCallbacks = new ArrayList<>(); public BaseSessionController(CafBaseMediaRouteProvider provider) { mProvider = provider; - mRemoteMediaClientCallback = new RemoteMediaClientCallback(); - } +- } ++ } public void addCallback(Callback callback) { -@@ -80,9 +71,6 @@ public abstract class BaseSessionController { + mCallbacks.add(callback); +@@ -72,9 +62,6 @@ public abstract class BaseSessionController { public void requestSessionLaunch() { mRouteCreationInfo = mProvider.getPendingCreateRouteRequestInfo(); @@ -477,7 +485,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b // When the user clicks a route on the MediaRouteChooserDialog, we intercept the click event // and do not select the route. Instead the route selection is postponed to here. This will // trigger CAF to launch the session. -@@ -101,60 +89,18 @@ public abstract class BaseSessionController { +@@ -93,60 +80,18 @@ public abstract class BaseSessionController { return mRouteCreationInfo; } @@ -539,7 +547,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b } private void updateMediaSessionId(String message) { -@@ -179,29 +125,6 @@ public abstract class BaseSessionController { +@@ -171,29 +116,6 @@ public abstract class BaseSessionController { private void updateRemoteMediaClient(String message) { if (!isConnected()) return; @@ -569,7 +577,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b } /** Called when session started. */ -@@ -218,40 +141,6 @@ public abstract class BaseSessionController { +@@ -210,40 +132,6 @@ public abstract class BaseSessionController { return mProvider; } @@ -610,7 +618,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b @Nullable public FlingingController getFlingingController() { return null; -@@ -262,7 +151,7 @@ public abstract class BaseSessionController { +@@ -254,7 +142,7 @@ public abstract class BaseSessionController { * {@link CastSession#getSessionId()} is final. */ public String getSessionId() { @@ -622,9 +630,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java -@@ -11,9 +11,6 @@ import android.support.v7.media.MediaRouteSelector; - import android.support.v7.media.MediaRouter; - import android.support.v7.media.MediaRouter.RouteInfo; +@@ -12,9 +12,6 @@ import androidx.annotation.NonNull; + import androidx.annotation.Nullable; + import androidx.annotation.VisibleForTesting; -import com.google.android.gms.cast.framework.CastSession; -import com.google.android.gms.cast.framework.SessionManagerListener; @@ -632,7 +640,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b import org.chromium.base.Log; import org.chromium.chrome.browser.media.router.DiscoveryCallback; import org.chromium.chrome.browser.media.router.DiscoveryDelegate; -@@ -36,7 +33,7 @@ import java.util.Set; +@@ -37,7 +34,7 @@ import java.util.Set; * A base provider containing common implementation for CAF-based {@link MediaRouteProvider}s. */ public abstract class CafBaseMediaRouteProvider @@ -641,7 +649,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b private static final String TAG = "CafMR"; protected static final List NO_SINKS = Collections.emptyList(); -@@ -153,7 +150,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -154,7 +151,6 @@ public abstract class CafBaseMediaRouteProvider // current session and clean up the routes (can't wait for session ending as the signal // might be delayed). sessionController().endSession(); @@ -649,7 +657,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b } if (mPendingCreateRouteRequestInfo != null) { cancelPendingRequest("Request replaced"); -@@ -182,9 +178,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -183,9 +179,6 @@ public abstract class CafBaseMediaRouteProvider mManager.onRouteRequestError("The sink does not exist", nativeRequestId); } @@ -659,7 +667,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo(source, sink, presentationId, origin, tabId, isIncognito, nativeRequestId, targetRouteInfo); -@@ -211,100 +204,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -212,100 +205,6 @@ public abstract class CafBaseMediaRouteProvider removeRoute(routeId, /* error= */ null); } @@ -763,9 +771,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java -@@ -11,8 +11,6 @@ import android.support.annotation.Nullable; - import android.support.annotation.VisibleForTesting; - import android.support.v7.media.MediaRouter; +@@ -12,8 +12,6 @@ import androidx.annotation.NonNull; + import androidx.annotation.Nullable; + import androidx.annotation.VisibleForTesting; -import com.google.android.gms.cast.framework.CastSession; - @@ -773,9 +781,10 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b import org.chromium.chrome.browser.media.router.ChromeMediaRouter; import org.chromium.chrome.browser.media.router.ClientRecord; @@ -148,20 +146,6 @@ public class CafMediaRouteProvider extends CafBaseMediaRouteProvider { + return mMessageHandler; } - @Override +- @Override - protected void handleSessionStart(CastSession session, String sessionId) { - super.handleSessionStart(session, sessionId); - @@ -789,10 +798,9 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b - sessionController().getSession().getRemoteMediaClient().requestStatus(); - } - -- @Override + @Override protected void addRoute( MediaRoute route, String origin, int tabId, int nativeRequestId, boolean wasLaunched) { - super.addRoute(route, origin, tabId, nativeRequestId, wasLaunched); diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java @@ -941,16 +949,16 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java -@@ -8,8 +8,6 @@ import android.net.Uri; - import android.support.annotation.Nullable; - import android.support.v7.media.MediaRouteSelector; +@@ -9,8 +9,6 @@ import android.support.v7.media.MediaRouteSelector; + + import androidx.annotation.Nullable; -import com.google.android.gms.cast.CastMediaControlIntent; - import org.chromium.chrome.browser.media.router.MediaSource; import java.util.Arrays; -@@ -105,13 +103,7 @@ public class CastMediaSource implements MediaSource { +@@ -106,13 +104,7 @@ public class CastMediaSource implements MediaSource { */ @Override public MediaRouteSelector buildRouteSelector() { @@ -1002,8 +1010,8 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java @@ -7,11 +7,6 @@ package org.chromium.chrome.browser.media.router.caf; - import android.support.annotation.NonNull; - import android.support.annotation.VisibleForTesting; + import androidx.annotation.NonNull; + import androidx.annotation.VisibleForTesting; -import com.google.android.gms.cast.ApplicationMetadata; -import com.google.android.gms.cast.Cast; @@ -1204,7 +1212,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b return flags; } }; -@@ -173,20 +161,10 @@ public class CafExpandedControllerActivity +@@ -179,20 +167,10 @@ public class CafExpandedControllerActivity private void updateUi() { if (!mSessionController.isConnected()) return; @@ -1339,16 +1347,16 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java -@@ -11,8 +11,6 @@ import android.support.annotation.Nullable; - import android.support.v7.media.MediaRouteSelector; - import android.util.Base64; +@@ -12,8 +12,6 @@ import android.util.Base64; + + import androidx.annotation.Nullable; -import com.google.android.gms.cast.CastMediaControlIntent; - import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.chrome.browser.media.router.MediaSource; -@@ -78,9 +76,7 @@ public class RemotingMediaSource implements MediaSource { +@@ -79,9 +77,7 @@ public class RemotingMediaSource implements MediaSource { */ @Override public MediaRouteSelector buildRouteSelector() { @@ -1359,7 +1367,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b } /** -@@ -107,7 +103,7 @@ public class RemotingMediaSource implements MediaSource { +@@ -108,7 +104,7 @@ public class RemotingMediaSource implements MediaSource { sApplicationId = (customAppId != null && !customAppId.isEmpty()) ? customAppId @@ -1380,10 +1388,11 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b import org.chromium.base.Log; import org.chromium.chrome.browser.media.router.CastSessionUtil; import org.chromium.chrome.browser.media.router.caf.BaseNotificationController; -@@ -34,19 +32,6 @@ public class RemotingSessionController extends BaseSessionController { +@@ -33,19 +31,6 @@ public class RemotingSessionController extends BaseSessionController { + sInstance = new WeakReference<>(this); } - @Override +- @Override - public void attachToCastSession(CastSession session) { - super.attachToCastSession(session); - @@ -1396,27 +1405,26 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b - } - } - -- @Override + @Override public void onSessionStarted() { super.onSessionStarted(); - RemotingMediaSource source = (RemotingMediaSource) getSource(); -@@ -54,12 +39,6 @@ public class RemotingSessionController extends BaseSessionController { +@@ -53,12 +38,6 @@ public class RemotingSessionController extends BaseSessionController { + mFlingingControllerAdapter = new FlingingControllerAdapter(this, source.getMediaUrl()); } - @Override +- @Override - protected void onStatusUpdated() { - mFlingingControllerAdapter.onStatusUpdated(); - super.onStatusUpdated(); - } - -- @Override + @Override public FlingingControllerAdapter getFlingingController() { return mFlingingControllerAdapter; - } diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -184,12 +184,6 @@ by a child template that "extends" this file. +@@ -180,12 +180,6 @@ by a child template that "extends" this file. android:theme="@android:style/Theme.Material.Light.Dialog.Alert" /> {% endif %} @@ -1429,7 +1437,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro +@@ -1195,18 +1179,6 @@ android:value="true" /> {% endif %} {% block extra_application_definitions %} @@ -1479,10 +1487,11 @@ diff --git a/chrome/test/android/cast_emulator/BUILD.gn b/chrome/test/android/ca diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -798,38 +798,6 @@ android_aar_prebuilt("google_play_services_basement_java") { +@@ -828,39 +828,6 @@ android_aar_prebuilt("google_play_services_basement_java") { + input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_cast_java") { - aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-16.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info" @@ -1511,13 +1520,13 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ] - - # Removing all resources from cast framework as they are unused bloat. -- strip_resources = true +- # Can only safely remove them when R8 will strip the path that accesses them. +- strip_resources = !is_java_debug -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_tasks_java") { aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch b/build/patches/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch index bffdc258..a4f1520d 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch @@ -5,39 +5,39 @@ Subject: Remove dependency on com.google.android.gms.tasks --- - chrome/android/BUILD.gn | 8 --- - chrome/android/features/media_router/BUILD.gn | 2 - - .../browser/media/router/ChromeMediaRouter.java | 7 +- - chrome/android/java/AndroidManifest.xml | 9 --- - .../src/org/chromium/chrome/browser/AppHooks.java | 14 +--- - .../chromium/chrome/browser/ChromeVersionInfo.java | 12 +--- - .../browser/component_updater/UpdateScheduler.java | 3 - - .../browser/externalauth/ExternalAuthUtils.java | 14 ++-- - .../externalauth/UserRecoverableErrorHandler.java | 7 -- - .../browser/gcore/ChromeGoogleApiClientImpl.java | 25 +------ - .../browser/gcore/GoogleApiClientHelper.java | 82 +--------------------- - .../chrome/browser/omaha/UpdateStatusProvider.java | 10 +-- - .../browser/preferences/PreferencesLauncher.java | 5 +- - chrome/test/android/BUILD.gn | 2 - - components/background_task_scheduler/BUILD.gn | 10 --- - components/signin/core/browser/android/BUILD.gn | 2 - - .../signin/GmsAvailabilityException.java | 4 +- - content/public/android/BUILD.gn | 3 - - content/test/BUILD.gn | 3 - - device/BUILD.gn | 2 - - remoting/android/client_java_tmpl.gni | 3 - - services/BUILD.gn | 4 -- - services/device/geolocation/BUILD.gn | 2 - - services/shape_detection/BUILD.gn | 2 - - third_party/android_deps/BUILD.gn | 38 ---------- - third_party/cacheinvalidation/BUILD.gn | 1 - - third_party/robolectric/BUILD.gn | 2 - - 27 files changed, 16 insertions(+), 260 deletions(-) + chrome/android/BUILD.gn | 8 -- + chrome/android/features/media_router/BUILD.gn | 2 - + .../media/router/ChromeMediaRouter.java | 7 +- + chrome/android/java/AndroidManifest.xml | 9 -- + .../org/chromium/chrome/browser/AppHooks.java | 14 +--- + .../chrome/browser/ChromeVersionInfo.java | 12 +-- + .../component_updater/UpdateScheduler.java | 3 - + .../externalauth/ExternalAuthUtils.java | 14 +--- + .../UserRecoverableErrorHandler.java | 7 -- + .../gcore/ChromeGoogleApiClientImpl.java | 25 +----- + .../browser/gcore/GoogleApiClientHelper.java | 82 +------------------ + .../browser/omaha/UpdateStatusProvider.java | 10 +-- + .../preferences/PreferencesLauncher.java | 20 +---- + chrome/test/android/BUILD.gn | 2 - + components/background_task_scheduler/BUILD.gn | 10 --- + .../signin/core/browser/android/BUILD.gn | 2 - + .../signin/GmsAvailabilityException.java | 4 +- + content/public/android/BUILD.gn | 3 - + content/test/BUILD.gn | 3 - + device/BUILD.gn | 2 - + remoting/android/client_java_tmpl.gni | 3 - + services/BUILD.gn | 4 - + services/device/geolocation/BUILD.gn | 2 - + services/shape_detection/BUILD.gn | 2 - + third_party/android_deps/BUILD.gn | 38 --------- + third_party/cacheinvalidation/BUILD.gn | 1 - + third_party/robolectric/BUILD.gn | 2 - + 27 files changed, 16 insertions(+), 275 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -267,9 +267,6 @@ android_library("chrome_java") { +@@ -258,9 +258,6 @@ android_library("chrome_java") { ":thumbnail_cache_entry_proto_java", ":update_proto_java", ":usage_stats_proto_java", @@ -47,7 +47,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:jni_java", "//chrome/android/features/keyboard_accessory:public_java", -@@ -685,8 +682,6 @@ junit_binary("chrome_junit_tests") { +@@ -650,8 +647,6 @@ junit_binary("chrome_junit_tests") { ":chrome_java", ":chrome_junit_test_support", ":partner_location_descriptor_proto_java", @@ -56,8 +56,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -784,9 +779,6 @@ android_library("chrome_test_java") { - ":browser_java_test_support", +@@ -753,9 +748,6 @@ android_library("chrome_test_java") { + ":chrome_public_test_apk_resources", ":chrome_test_util_java", ":partner_location_descriptor_proto_java", - "$google_play_services_package:google_play_services_base_java", @@ -81,9 +81,9 @@ diff --git a/chrome/android/features/media_router/BUILD.gn b/chrome/android/feat diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java --- a/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java +++ b/chrome/android/features/media_router/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java -@@ -7,9 +7,6 @@ package org.chromium.chrome.browser.media.router; - import android.support.annotation.Nullable; - import android.support.v7.media.MediaRouter; +@@ -8,9 +8,6 @@ import android.support.v7.media.MediaRouter; + + import androidx.annotation.Nullable; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; @@ -91,7 +91,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.base.StrictModeContext; -@@ -43,9 +40,7 @@ public class ChromeMediaRouter implements MediaRouteManager { +@@ -44,9 +41,7 @@ public class ChromeMediaRouter implements MediaRouteManager { int googleApiAvailabilityResult = AppHooks.get().isGoogleApiAvailableWithMinApkVersion( MIN_GOOGLE_PLAY_SERVICES_APK_VERSION); @@ -105,7 +105,7 @@ diff --git a/chrome/android/features/media_router/java/src/org/chromium/chrome/b diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -889,15 +889,6 @@ by a child template that "extends" this file. +@@ -840,15 +840,6 @@ by a child template that "extends" this file. @@ -124,17 +124,17 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java --- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java -@@ -15,9 +15,6 @@ import android.support.annotation.Nullable; - import android.view.View; - import android.view.inputmethod.InputConnection; +@@ -13,9 +13,6 @@ import android.view.View; + + import androidx.annotation.Nullable; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; - import org.chromium.base.Callback; - import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; -@@ -419,16 +416,7 @@ public abstract class AppHooks { + import org.chromium.base.VisibleForTesting; +@@ -380,16 +377,7 @@ public abstract class AppHooks { * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}. */ public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) { @@ -203,9 +203,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java -@@ -13,9 +13,6 @@ import android.os.Binder; - import android.support.annotation.WorkerThread; - import android.text.TextUtils; +@@ -14,9 +14,6 @@ import android.text.TextUtils; + + import androidx.annotation.WorkerThread; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; @@ -213,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; import org.chromium.base.Log; -@@ -157,9 +154,7 @@ public class ExternalAuthUtils { +@@ -158,9 +155,7 @@ public class ExternalAuthUtils { * when it is updating. */ public boolean isGooglePlayServicesMissing(final Context context) { @@ -224,7 +224,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex } /** -@@ -181,7 +176,6 @@ public class ExternalAuthUtils { +@@ -182,7 +177,6 @@ public class ExternalAuthUtils { Context context = ContextUtils.getApplicationContext(); final int resultCode = checkGooglePlayServicesAvailable(context); @@ -232,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex // resultCode is some kind of error. Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode)); if (isUserRecoverableError(resultCode)) { -@@ -251,7 +245,7 @@ public class ExternalAuthUtils { +@@ -252,7 +246,7 @@ public class ExternalAuthUtils { protected int checkGooglePlayServicesAvailable(final Context context) { // TODO(crbug.com/577190): Temporarily allowing disk access until more permanent fix is in. try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { @@ -241,7 +241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex } } -@@ -263,7 +257,7 @@ public class ExternalAuthUtils { +@@ -264,7 +258,7 @@ public class ExternalAuthUtils { * @return true If the code represents a user-recoverable error */ protected boolean isUserRecoverableError(final int errorCode) { @@ -250,7 +250,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/Ex } /** -@@ -273,6 +267,6 @@ public class ExternalAuthUtils { +@@ -274,6 +268,6 @@ public class ExternalAuthUtils { * @return a textual description of the error code */ protected String describeError(final int errorCode) { @@ -373,7 +373,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApi import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus.ApplicationStateListener; import org.chromium.base.Log; -@@ -67,30 +62,16 @@ import org.chromium.base.ThreadUtils; +@@ -67,29 +62,15 @@ import org.chromium.base.ThreadUtils; * } * */ @@ -389,7 +389,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApi private long mDisconnectionDelayMs; private Runnable mPendingDisconnect; - /** +- /** - * Creates a helper and enrolls it in the various connection management features. - * See the class documentation for {@link GoogleApiClientHelper} for more information. - * @@ -401,10 +401,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApi - enableLifecycleManagement(true); - } - -- /** + /** * Opts in or out of lifecycle management. The client's connection will be closed and reopened * when Chrome goes in and out of background. - * @@ -116,13 +97,6 @@ public class GoogleApiClientHelper * Enabling or disabling it while it is already enabled or disabled has no effect. */ @@ -502,16 +501,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gcore/GoogleApi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java -@@ -19,8 +19,6 @@ import android.support.annotation.NonNull; - import android.support.annotation.Nullable; - import android.text.TextUtils; +@@ -20,8 +20,6 @@ import androidx.annotation.IntDef; + import androidx.annotation.NonNull; + import androidx.annotation.Nullable; -import com.google.android.gms.common.GooglePlayServicesUtil; - import org.chromium.base.ActivityState; import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus.ActivityStateListener; -@@ -463,13 +461,7 @@ public class UpdateStatusProvider implements ActivityStateListener { +@@ -464,13 +462,7 @@ public class UpdateStatusProvider implements ActivityStateListener { } private boolean isGooglePlayStoreAvailable(Context context) { @@ -529,30 +528,44 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java -@@ -12,8 +12,6 @@ import android.os.Bundle; - import android.support.annotation.Nullable; - import android.support.v4.app.Fragment; +@@ -13,8 +13,6 @@ import android.support.v4.app.Fragment; + + import androidx.annotation.Nullable; -import com.google.android.gms.common.ConnectionResult; - import org.chromium.base.annotations.CalledByNative; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -@@ -202,8 +200,7 @@ public class PreferencesLauncher { - int minGooglePlayServicesVersion = ChromeFeatureList.getFieldTrialParamByFeatureAsInt( - GOOGLE_ACCOUNT_PWM_UI, MIN_GOOGLE_PLAY_SERVICES_VERSION_PARAM, - DEFAULT_MIN_GOOGLE_PLAY_SERVICES_APK_VERSION); -- if (AppHooks.get().isGoogleApiAvailableWithMinApkVersion(minGooglePlayServicesVersion) -- != ConnectionResult.SUCCESS) -+ if (true) - return false; +@@ -190,22 +188,6 @@ public class PreferencesLauncher { + } - if (!ChromeFeatureList.isEnabled(GOOGLE_ACCOUNT_PWM_UI)) return false; + private static boolean tryShowingTheGooglePasswordManager(Activity activity) { +- GooglePasswordManagerUIProvider googlePasswordManagerUIProvider = +- AppHooks.get().createGooglePasswordManagerUIProvider(); +- if (googlePasswordManagerUIProvider == null) return false; +- +- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return false; +- +- int minGooglePlayServicesVersion = ChromeFeatureList.getFieldTrialParamByFeatureAsInt( +- GOOGLE_ACCOUNT_PWM_UI, MIN_GOOGLE_PLAY_SERVICES_VERSION_PARAM, +- DEFAULT_MIN_GOOGLE_PLAY_SERVICES_APK_VERSION); +- if (AppHooks.get().isGoogleApiAvailableWithMinApkVersion(minGooglePlayServicesVersion) +- != ConnectionResult.SUCCESS) { +- return false; +- } +- +- if (!ChromeFeatureList.isEnabled(GOOGLE_ACCOUNT_PWM_UI)) return false; +- +- return googlePasswordManagerUIProvider.showGooglePasswordManager(activity); ++ return false; + } + } diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -153,8 +153,6 @@ android_library("chrome_java_test_support") { - "javatests/src/org/chromium/chrome/test/util/TranslateUtil.java", +@@ -175,8 +175,6 @@ android_library("chrome_java_test_support") { + "javatests/src/org/chromium/chrome/test/util/WaitForFocusHelper.java", ] deps = [ - "$google_play_services_package:google_play_services_base_java", @@ -572,7 +585,7 @@ diff --git a/components/background_task_scheduler/BUILD.gn b/components/backgrou - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//content/public/android:content_java", - "//third_party/android_deps:com_android_support_support_annotations_java", + "//third_party/android_deps:androidx_annotation_annotation_java", @@ -75,9 +72,6 @@ if (is_android) { deps = [ ":background_task_scheduler_java", @@ -597,7 +610,7 @@ diff --git a/components/background_task_scheduler/BUILD.gn b/components/backgrou diff --git a/components/signin/core/browser/android/BUILD.gn b/components/signin/core/browser/android/BUILD.gn --- a/components/signin/core/browser/android/BUILD.gn +++ b/components/signin/core/browser/android/BUILD.gn -@@ -15,8 +15,6 @@ generate_jni("jni_headers") { +@@ -16,8 +16,6 @@ generate_jni("jni_headers") { android_library("java") { deps = [ @@ -642,7 +655,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -2442,9 +2442,6 @@ if (is_android) { +@@ -2444,9 +2444,6 @@ if (is_android) { testonly = true java_files = content_java_sources_needing_jni deps = [ @@ -651,11 +664,11 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//content/public/android:content_java", - ] + "//ui/android:ui_full_java", diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -386,8 +386,6 @@ if (is_android) { +@@ -387,8 +387,6 @@ if (is_android) { junit_binary("device_junit_tests") { java_files = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ] deps = [ @@ -667,7 +680,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni --- a/remoting/android/client_java_tmpl.gni +++ b/remoting/android/client_java_tmpl.gni -@@ -101,9 +101,6 @@ template("remoting_android_client_java_tmpl") { +@@ -102,9 +102,6 @@ template("remoting_android_client_java_tmpl") { if (defined(invoker.play_services_package)) { deps += [ @@ -701,15 +714,15 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -141,8 +141,6 @@ if (is_android) { +@@ -150,8 +150,6 @@ if (is_android) { deps = [ ":geolocation", ":geolocation_jni_headers", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", "//base:base_java", + "//base:jni_java", "//components/location/android:location_java", - "//services/device/public/java:geolocation_java", diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn @@ -725,10 +738,11 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD. diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -772,44 +772,6 @@ android_aar_prebuilt("com_android_support_viewpager_java") { +@@ -802,44 +802,6 @@ android_aar_prebuilt("com_android_support_viewpager_java") { + ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_base_java") { - aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" @@ -766,10 +780,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { aar_path = "libs/com_google_android_material_material/material-1.0.0-rc02.aar" - info_path = "libs/com_google_android_material_material/com_google_android_material_material.info" diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn --- a/third_party/cacheinvalidation/BUILD.gn +++ b/third_party/cacheinvalidation/BUILD.gn @@ -794,5 +807,5 @@ diff --git a/third_party/robolectric/BUILD.gn b/third_party/robolectric/BUILD.gn "//third_party/gson:gson_java", "//third_party/guava:guava_java", -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch b/build/patches/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch index 0574cfca..c4d992eb 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch @@ -5,23 +5,23 @@ Subject: Remove dependency on com.google.android.gms.fido, com.google.android.gms.location --- - chrome/android/BUILD.gn | 5 - - .../externalnav/ExternalNavigationHandler.java | 3 - - .../browser/instantapps/InstantAppsHandler.java | 59 +----------- - components/gcm_driver/instance_id/android/BUILD.gn | 2 - - .../instance_id/InstanceIDWithSubtype.java | 28 +----- - device/BUILD.gn | 1 - - services/device/geolocation/BUILD.gn | 1 - - .../geolocation/LocationProviderGmsCore.java | 103 +-------------------- - third_party/android_deps/BUILD.gn | 58 ------------ - third_party/cacheinvalidation/BUILD.gn | 1 - - .../client/android2/AndroidManifestUpdatedGcm.xml | 3 - - 11 files changed, 9 insertions(+), 255 deletions(-) + chrome/android/BUILD.gn | 5 - + .../ExternalNavigationHandler.java | 4 - + .../instantapps/InstantAppsHandler.java | 59 +--------- + .../gcm_driver/instance_id/android/BUILD.gn | 2 - + .../instance_id/InstanceIDWithSubtype.java | 28 +---- + device/BUILD.gn | 1 - + services/device/geolocation/BUILD.gn | 1 - + .../geolocation/LocationProviderGmsCore.java | 103 +----------------- + third_party/android_deps/BUILD.gn | 58 ---------- + third_party/cacheinvalidation/BUILD.gn | 1 - + .../android2/AndroidManifestUpdatedGcm.xml | 3 - + 11 files changed, 9 insertions(+), 256 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -271,8 +271,6 @@ android_library("chrome_java") { +@@ -262,8 +262,6 @@ android_library("chrome_java") { "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", @@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:jni_java", -@@ -693,7 +691,6 @@ junit_binary("chrome_junit_tests") { +@@ -658,7 +656,6 @@ junit_binary("chrome_junit_tests") { "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", @@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -795,8 +792,6 @@ android_library("chrome_test_java") { +@@ -764,8 +761,6 @@ android_library("chrome_test_java") { "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", @@ -50,23 +50,17 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java -@@ -581,7 +581,6 @@ public class ExternalNavigationHandler { +@@ -641,10 +641,6 @@ public class ExternalNavigationHandler { if (shouldProxyForInstantApps) { RecordHistogram.recordEnumeratedHistogram("Android.InstantApps.DirectInstantAppsIntent", AiaIntent.SERP, AiaIntent.NUM_ENTRIES); -- intent.putExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER, true); - } else if (isDirectInstantAppsIntent) { - // For security reasons, we disable all intent:// URLs to Instant Apps that are - // not coming from SERP. -@@ -590,8 +589,6 @@ public class ExternalNavigationHandler { - AiaIntent.OTHER, AiaIntent.NUM_ENTRIES); - return OverrideUrlLoadingResult.NO_OVERRIDE; - } else { +- targetIntent.putExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER, true); +- } else { - // Make sure this extra is not sent unless we've done the verification. -- intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER); +- targetIntent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER); } - boolean deviceCanHandleIntent = deviceCanHandleIntent(intent); + // The intent can be used to launch Chrome itself, record the user diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java @@ -184,15 +178,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/Ins diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn --- a/components/gcm_driver/instance_id/android/BUILD.gn +++ b/components/gcm_driver/instance_id/android/BUILD.gn -@@ -18,7 +18,6 @@ generate_jni("test_support_jni_headers") { +@@ -19,7 +19,6 @@ generate_jni("test_support_jni_headers") { android_library("instance_id_driver_java") { deps = [ - "$google_play_services_package:google_play_services_iid_java", "//base:base_java", + "//base:jni_java", "//components/gcm_driver/android:gcm_driver_java", - ] -@@ -34,7 +33,6 @@ android_library("instance_id_driver_java") { +@@ -37,7 +36,6 @@ android_library("instance_id_driver_java") { android_library("instance_id_driver_test_support_java") { deps = [ ":instance_id_driver_java", @@ -288,7 +282,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -388,7 +388,6 @@ if (is_android) { +@@ -389,7 +389,6 @@ if (is_android) { deps = [ "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -299,14 +293,14 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -143,7 +143,6 @@ if (is_android) { +@@ -152,7 +152,6 @@ if (is_android) { ":geolocation_jni_headers", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_location_java", "//base:base_java", + "//base:jni_java", "//components/location/android:location_java", - "//services/device/public/java:geolocation_java", diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java --- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java +++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java @@ -460,10 +454,11 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -830,64 +830,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") { +@@ -861,64 +861,6 @@ android_aar_prebuilt("google_play_services_cast_framework_java") { + strip_resources = !is_java_debug } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_fido_java") { - aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" @@ -521,10 +516,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_tasks_java") { aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn --- a/third_party/cacheinvalidation/BUILD.gn +++ b/third_party/cacheinvalidation/BUILD.gn @@ -550,5 +544,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch b/build/patches/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch index 1c641ea6..190604fc 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch @@ -4,16 +4,17 @@ Subject: Remove dependency on com.google.android.gms.flags, com.google.android.gms.location.places, com.google.android.gms.stats --- - third_party/android_deps/BUILD.gn | 49 --------------------------------------- + third_party/android_deps/BUILD.gn | 49 ------------------------------- 1 file changed, 49 deletions(-) diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -1499,55 +1499,6 @@ android_aar_prebuilt("com_android_support_versionedparcelable_java") { +@@ -1512,55 +1512,6 @@ android_aar_prebuilt("com_android_support_versionedparcelable_java") { + ignore_aidl = true } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_flags_java") { - aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" @@ -62,10 +63,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_code_findbugs_jsr305_java") { jar_path = "libs/com_google_code_findbugs_jsr305/jsr305-1.3.9.jar" - output_name = "com_google_code_findbugs_jsr305" -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch b/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch index d4ece443..74c7180c 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.gcm.patch @@ -5,28 +5,26 @@ Subject: Remove dependency on com.google.android.gms.gcm It also disalbes Snippets, auto-update of offline pages and launching browser from background service. The snippets are already disabled in native codes, this will disable it on Java level. --- - chrome/android/BUILD.gn | 3 - - .../chrome/browser/BackgroundSyncLauncher.java | 17 +---- - .../chrome/browser/ChromeBackgroundService.java | 79 +------------------ - .../invalidation/InvalidationController.java | 1 + - .../browser/ntp/snippets/SnippetsLauncher.java | 2 +- - .../services/gcm/ChromeGcmListenerService.java | 58 +------------- - components/background_task_scheduler/BUILD.gn | 3 - - .../BackgroundTaskGcmTaskService.java | 63 +-------------- - .../BackgroundTaskSchedulerFactory.java | 6 +- - .../BackgroundTaskSchedulerGcmNetworkManager.java | 14 +--- - third_party/android_deps/BUILD.gn | 15 ---- - third_party/cacheinvalidation/BUILD.gn | 1 - - .../client/android2/AndroidManifestUpdatedGcm.xml | 20 ----- - .../android2/channel/AndroidGcmController.java | 42 +--------- - .../channel/AndroidInstanceIDListenerService.java | 13 +--- - .../channel/GcmRegistrationTaskService.java | 89 +--------------------- - 16 files changed, 14 insertions(+), 412 deletions(-) + chrome/android/BUILD.gn | 3 - + .../browser/ChromeBackgroundService.java | 4 - + .../ntp/snippets/SnippetsLauncher.java | 2 +- + .../gcm/ChromeGcmListenerService.java | 57 +----------- + components/background_task_scheduler/BUILD.gn | 3 - + .../BackgroundTaskGcmTaskService.java | 63 +------------ + .../BackgroundTaskSchedulerFactory.java | 6 +- + ...kgroundTaskSchedulerGcmNetworkManager.java | 14 +-- + third_party/android_deps/BUILD.gn | 15 ---- + third_party/cacheinvalidation/BUILD.gn | 1 - + .../android2/AndroidManifestUpdatedGcm.xml | 20 ----- + .../channel/AndroidGcmController.java | 42 +-------- + .../AndroidInstanceIDListenerService.java | 13 +-- + .../channel/GcmRegistrationTaskService.java | 89 +------------------ + 14 files changed, 10 insertions(+), 322 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -272,7 +272,6 @@ android_library("chrome_java") { +@@ -263,7 +263,6 @@ android_library("chrome_java") { "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_fido_java", @@ -34,7 +32,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", -@@ -798,7 +797,6 @@ android_library("chrome_test_java") { +@@ -767,7 +766,6 @@ android_library("chrome_test_java") { "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_fido_java", @@ -50,40 +48,6 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//chrome/android/public/profiles:java", -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java -@@ -41,7 +41,7 @@ public class BackgroundSyncLauncher { - * Automatic GCM use is disabled by tests, and also by this class if it is determined on - * creation that the installed Play Services library is out of date. - */ -- private static boolean sGCMEnabled = true; -+ private static boolean sGCMEnabled; - - @VisibleForTesting - protected AsyncTask mLaunchBrowserIfStoppedTask; -@@ -140,20 +140,7 @@ public class BackgroundSyncLauncher { - */ - @CalledByNative - private static boolean shouldDisableBackgroundSync() { -- // Check to see if Play Services is up to date, and disable GCM if not. -- // This will not automatically set {@link sGCMEnabled} to true, in case it has been -- // disabled in tests. -- if (sGCMEnabled) { -- boolean isAvailable = true; -- if (!ExternalAuthUtils.canUseGooglePlayServices()) { -- setGCMEnabled(false); -- Log.i(TAG, "Disabling Background Sync because Play Services is not up to date."); -- isAvailable = false; -- } -- RecordHistogram.recordBooleanHistogram( -- "BackgroundSync.LaunchTask.PlayServicesAvailable", isAvailable); -- } -- return !sGCMEnabled; -+ return true; - } - - @VisibleForTesting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java @@ -97,111 +61,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroun - import org.chromium.base.Log; import org.chromium.base.VisibleForTesting; - import org.chromium.base.library_loader.ProcessInitException; -@@ -27,67 +23,9 @@ import org.chromium.content_public.browser.UiThreadTaskTraits; - * browser needs to be launched for scheduled tasks, or in response to changing network or power - * conditions. - */ --public class ChromeBackgroundService extends GcmTaskService { -+public class ChromeBackgroundService { - private static final String TAG = "BackgroundService"; - -- @Override -- @VisibleForTesting -- public int onRunTask(final TaskParams params) { -- final String taskTag = params.getTag(); -- final Context context = this; -- PostTask.runOrPostTask(UiThreadTaskTraits.DEFAULT, () -> { -- switch (taskTag) { -- case BackgroundSyncLauncher.TASK_TAG: -- handleBackgroundSyncEvent(context, taskTag); -- break; -- -- case OfflinePageUtils.TASK_TAG: -- // Offline pages are migrating to BackgroundTaskScheduler, therefore getting -- // a task through ChromeBackgroundSerivce should cause a rescheduling using -- // the new component. -- rescheduleOfflinePages(); -- break; -- -- case SnippetsLauncher.TASK_TAG_WIFI: -- case SnippetsLauncher.TASK_TAG_FALLBACK: -- handleSnippetsOnPersistentSchedulerWakeUp(context, taskTag); -- break; -- -- // This is only for tests. -- case ServiceManagerStartupUtils.TASK_TAG: -- handleServicificationStartupTask(context, taskTag); -- break; -- -- default: -- Log.i(TAG, "Unknown task tag " + taskTag); -- break; -- } -- }); -- -- return GcmNetworkManager.RESULT_SUCCESS; -- } -- -- private void handleBackgroundSyncEvent(Context context, String tag) { -- if (!BackgroundSyncLauncher.hasInstance()) { -- // Start the browser. The browser's BackgroundSyncManager (for the active profile) will -- // start, check the network, and run any necessary sync events. This task runs with a -- // wake lock, but has a three minute timeout, so we need to start the browser in its -- // own task. -- // TODO(jkarlin): Protect the browser sync event with a wake lock. -- // See crbug.com/486020. -- launchBrowser(context, tag); -- } -- } -- -- private void handleSnippetsOnPersistentSchedulerWakeUp(Context context, String tag) { -- if (!SnippetsLauncher.hasInstance()) launchBrowser(context, tag); -- snippetsOnPersistentSchedulerWakeUp(); -- } -- -- private void handleServicificationStartupTask(Context context, String tag) { -- launchBrowser(context, tag); -- } -- - @VisibleForTesting - protected void snippetsOnPersistentSchedulerWakeUp() { - SnippetsBridge.onPersistentSchedulerWakeUp(); -@@ -115,23 +53,8 @@ public class ChromeBackgroundService extends GcmTaskService { - protected void rescheduleBackgroundSyncTasksOnUpgrade() { - } - -- private void handleSnippetsOnBrowserUpgraded() { -- if (SnippetsLauncher.shouldNotifyOnBrowserUpgraded()) { -- if (!SnippetsLauncher.hasInstance()) { -- launchBrowser(this, /*tag=*/""); // The |tag| doesn't matter here. -- } -- snippetsOnBrowserUpgraded(); -- } -- } -- - /** Reschedules offline pages (using appropriate version of Background Task Scheduler). */ - protected void rescheduleOfflinePages() { - BackgroundScheduler.getInstance().reschedule(); - } -- -- @Override -- public void onInitializeTasks() { -- rescheduleBackgroundSyncTasksOnUpgrade(); -- handleSnippetsOnBrowserUpgraded(); -- } - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java -@@ -167,6 +167,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat - - // Ensure GCM has been initialized. - ensureGcmIsInitialized(); -+ if (!mGcmInitialized) return; - - // Do not apply changes to {@link #mSessionInvalidationsEnabled} yet because the timer task - // may be scheduled far into the future. + import org.chromium.base.task.PostTask; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java @@ -225,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/Ch import com.google.ipc.invalidation.ticl.android2.channel.AndroidGcmController; import org.chromium.base.ContextUtils; -@@ -35,62 +34,9 @@ import org.chromium.content_public.browser.UiThreadTaskTraits; +@@ -34,62 +33,9 @@ import org.chromium.content_public.browser.UiThreadTaskTraits; /** * Receives Downstream messages and status of upstream messages from GCM. */ @@ -289,15 +149,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/Ch /** * Returns if we deliver the GCMMessage with a background service by calling * Context#startService. This will only work if Android has put us in a whitelist to allow -@@ -225,8 +171,6 @@ public class ChromeGcmListenerService extends GcmListenerService { - - try { - ChromeBrowserInitializer.getInstance(applicationContext).handleSynchronousStartup(); -- GCMDriver.dispatchMessage(message); -- - } catch (ProcessInitException e) { - Log.e(TAG, "ProcessInitException while starting the browser process"); +@@ -222,7 +168,6 @@ public class ChromeGcmListenerService extends GcmListenerService { + static void dispatchMessageToDriver(Context applicationContext, GCMMessage message) { + ThreadUtils.assertOnUiThread(); + ChromeBrowserInitializer.getInstance(applicationContext).handleSynchronousStartup(); +- GCMDriver.dispatchMessage(message); + } + private static boolean isNativeLoaded() { diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn @@ -348,10 +207,11 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ private static final String TAG = "BkgrdTaskGcmTS"; private BackgroundTaskSchedulerGcmNetworkManager.Clock mClock = System::currentTimeMillis; -@@ -90,63 +86,6 @@ public class BackgroundTaskGcmTaskService extends GcmTaskService { +@@ -89,63 +85,6 @@ public class BackgroundTaskGcmTaskService extends GcmTaskService { + } } - @Override +- @Override - public int onRunTask(TaskParams params) { - final TaskParameters taskParams = - BackgroundTaskSchedulerGcmNetworkManager.getTaskParametersFromTaskParams(params); @@ -408,10 +268,9 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ - return GcmNetworkManager.RESULT_SUCCESS; - } - -- @Override + @Override public void onInitializeTasks() { // Ignore the event on OSs supporting JobScheduler. - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) return; diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerFactory.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerFactory.java --- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerFactory.java +++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerFactory.java @@ -431,7 +290,7 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java --- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java +++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java -@@ -18,7 +18,7 @@ import java.util.concurrent.TimeUnit; +@@ -19,7 +19,7 @@ import java.util.concurrent.TimeUnit; * An implementation of {@link BackgroundTaskSchedulerDelegate} that uses the Play Services * {@link GcmNetworkManager} to schedule jobs. */ @@ -440,7 +299,7 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ private static final String TAG = "BkgrdTaskSchedGcmNM"; /** Delta time for expiration checks, after the end time. */ -@@ -34,18 +34,6 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule +@@ -35,18 +35,6 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule sClock = clock; } @@ -462,10 +321,11 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -844,21 +844,6 @@ android_aar_prebuilt("google_play_services_fido_java") { +@@ -875,21 +875,6 @@ android_aar_prebuilt("google_play_services_fido_java") { + strip_drawables = true } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_gcm_java") { - aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info" @@ -480,10 +340,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_iid_java") { aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn --- a/third_party/cacheinvalidation/BUILD.gn +++ b/third_party/cacheinvalidation/BUILD.gn @@ -552,7 +411,7 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ private Context context; -@@ -64,33 +62,13 @@ public class AndroidGcmController { +@@ -64,32 +62,12 @@ public class AndroidGcmController { public static AndroidGcmController get(Context context) { synchronized (lock) { if (androidGcmController == null) { @@ -564,7 +423,7 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ return androidGcmController; } - /** +- /** - * Override AndroidGcmController with a custom GcmNetworkManager in tests. This overrides the - * existing instance of AndroidGcmController if any. - * @@ -583,10 +442,9 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ - this.gcmNetworkManager = gcmNetworkManager; - } - -- /** + /** * Returns true if no registration token is stored or the current application version is higher * than the version for the token stored. - */ @@ -142,21 +120,7 @@ public class AndroidGcmController { return; } @@ -745,5 +603,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ - } } -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch b/build/patches/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch index 73e3da19..d3d6a8c0 100644 --- a/build/patches/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch +++ b/build/patches/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch @@ -4,13 +4,13 @@ Subject: Remove dependency on com.google.android.gms.vision, com.google.android.gms.clearcut, com.google.android.gms.phenotype --- - services/BUILD.gn | 4 - - services/shape_detection/BUILD.gn | 2 - - .../shape_detection/BarcodeDetectionImpl.java | 114 +------------------ - .../BarcodeDetectionProviderImpl.java | 18 +-- - .../shape_detection/FaceDetectionImplGmsCore.java | 122 +-------------------- - .../shape_detection/TextDetectionImpl.java | 60 +--------- - third_party/android_deps/BUILD.gn | 66 ----------- + services/BUILD.gn | 4 - + services/shape_detection/BUILD.gn | 2 - + .../shape_detection/BarcodeDetectionImpl.java | 114 +--------------- + .../BarcodeDetectionProviderImpl.java | 18 +-- + .../FaceDetectionImplGmsCore.java | 122 +----------------- + .../shape_detection/TextDetectionImpl.java | 60 +-------- + third_party/android_deps/BUILD.gn | 66 ---------- 7 files changed, 10 insertions(+), 376 deletions(-) diff --git a/services/BUILD.gn b/services/BUILD.gn @@ -483,10 +483,11 @@ diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detect diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -900,35 +900,6 @@ android_aar_prebuilt("google_play_services_tasks_java") { +@@ -931,35 +931,6 @@ android_aar_prebuilt("google_play_services_tasks_java") { + strip_drawables = true } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_vision_java") { - aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info" @@ -515,14 +516,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { aar_path = "libs/com_google_android_material_material/material-1.0.0-rc02.aar" - info_path = "libs/com_google_android_material_material/com_google_android_material_material.info" -@@ -1528,25 +1499,6 @@ android_aar_prebuilt("com_android_support_versionedparcelable_java") { +@@ -1541,25 +1512,6 @@ android_aar_prebuilt("com_android_support_versionedparcelable_java") { + ignore_aidl = true } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_clearcut_java") { - aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" @@ -541,14 +542,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_flags_java") { aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" -@@ -1564,24 +1516,6 @@ android_aar_prebuilt("google_play_services_flags_java") { +@@ -1577,24 +1529,6 @@ android_aar_prebuilt("google_play_services_flags_java") { + strip_drawables = true } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +-# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -android_aar_prebuilt("google_play_services_phenotype_java") { - aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info" @@ -566,10 +567,9 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - strip_drawables = true -} - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("google_play_services_places_placereport_java") { aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-15.0.1.aar" - info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info" -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-dependency-on-com.google.android.play.patch b/build/patches/Remove-dependency-on-com.google.android.play.patch index 4c9730f1..a1559c58 100644 --- a/build/patches/Remove-dependency-on-com.google.android.play.patch +++ b/build/patches/Remove-dependency-on-com.google.android.play.patch @@ -3,18 +3,18 @@ Date: Fri, 1 Nov 2019 23:01:41 +0100 Subject: Remove dependency on com.google.android.play --- - chrome/android/BUILD.gn | 1 - - .../omaha/inline/FakeAppUpdateManagerWrapper.java | 60 +----- - .../inline/InlineUpdateControllerFactory.java | 16 -- - .../omaha/inline/PlayInlineUpdateController.java | 226 +-------------------- - components/module_installer/android/BUILD.gn | 1 - - third_party/google_android_play_core/BUILD.gn | 5 - + chrome/android/BUILD.gn | 1 - + .../inline/FakeAppUpdateManagerWrapper.java | 60 +---- + .../inline/InlineUpdateControllerFactory.java | 16 -- + .../inline/PlayInlineUpdateController.java | 226 +----------------- + components/module_installer/android/BUILD.gn | 1 - + third_party/google_android_play_core/BUILD.gn | 5 - 6 files changed, 3 insertions(+), 306 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -387,7 +387,6 @@ android_library("chrome_java") { +@@ -378,7 +378,6 @@ android_library("chrome_java") { "//third_party/cct_dynamic_module:cct_dynamic_module_java", "//third_party/feed:feed_lib_proto_java", "//third_party/gif_player:gif_player_java", @@ -25,9 +25,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java -@@ -10,11 +10,6 @@ import android.os.Looper; - import android.os.Message; - import android.support.annotation.IntDef; +@@ -11,11 +11,6 @@ import android.os.Message; + + import androidx.annotation.IntDef; -import com.google.android.play.core.appupdate.AppUpdateInfo; -import com.google.android.play.core.appupdate.testing.FakeAppUpdateManager; @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Fa import org.chromium.base.ContextUtils; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.ChromeActivity; -@@ -30,7 +25,7 @@ import java.lang.ref.WeakReference; +@@ -31,7 +26,7 @@ import java.lang.ref.WeakReference; * wrapper isn't meant to be used for a full integration test, but simulating all of the possible * error cases is a bit easier to do here. */ @@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Fa private static final int RESULT_IN_APP_UPDATE_FAILED = 1; private static final int STEP_DELAY_MS = 5000; private static final int TOAST_DURATION_MS = 2000; -@@ -107,15 +102,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager { +@@ -108,15 +103,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager { switch (event) { case Event.UPDATE_AVAILABLE: w.toast("Making app update available."); @@ -62,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Fa return; case Event.TRIGGER_DOWNLOAD: w.toast("Triggering download."); -@@ -123,27 +115,21 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager { +@@ -124,27 +116,21 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager { return; case Event.DOWNLOAD_STARTS: w.toast("Download has started."); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Fa return; default: w.toast("Unknown event."); -@@ -158,56 +144,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager { +@@ -159,56 +145,12 @@ public class FakeAppUpdateManagerWrapper extends FakeAppUpdateManager { * @param endState at which point should the inline update flow end. */ FakeAppUpdateManagerWrapper(@Type int endState) { @@ -183,9 +183,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/In diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java -@@ -9,15 +9,6 @@ import android.content.IntentSender.SendIntentException; - import android.support.annotation.IntDef; - import android.support.annotation.Nullable; +@@ -10,15 +10,6 @@ import android.content.IntentSender.SendIntentException; + import androidx.annotation.IntDef; + import androidx.annotation.Nullable; -import com.google.android.play.core.appupdate.AppUpdateInfo; -import com.google.android.play.core.appupdate.AppUpdateManager; @@ -199,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Pl import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.browser.omaha.UpdateStatusProvider.UpdateState; -@@ -31,7 +22,7 @@ import java.lang.annotation.RetentionPolicy; +@@ -32,7 +23,7 @@ import java.lang.annotation.RetentionPolicy; * in the foreground. */ public class PlayInlineUpdateController @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Pl /** * Converts Play's InstallErrorCode enum to a stable monotomically incrementing Chrome enum. * This is used for metric stability. -@@ -126,26 +117,9 @@ public class PlayInlineUpdateController +@@ -127,26 +118,9 @@ public class PlayInlineUpdateController private static final int RESULT_IN_APP_UPDATE_FAILED = 1; private static final int REQUEST_CODE = 8123; @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Pl // InlineUpdateController implementation. @Override public void setEnabled(boolean enabled) { -@@ -154,10 +128,8 @@ public class PlayInlineUpdateController +@@ -155,10 +129,8 @@ public class PlayInlineUpdateController if (mEnabled) { mUpdateState = UpdateState.NONE; @@ -246,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Pl } } -@@ -168,220 +140,26 @@ public class PlayInlineUpdateController +@@ -169,220 +141,26 @@ public class PlayInlineUpdateController @Override public void startUpdate(Activity activity) { @@ -471,14 +471,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Pl diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn --- a/components/module_installer/android/BUILD.gn +++ b/components/module_installer/android/BUILD.gn -@@ -23,7 +23,6 @@ android_library("module_installer_java") { - deps = [ +@@ -34,7 +34,6 @@ android_library("module_installer_java") { "//base:base_java", + "//base:jni_java", "//components/crash/android:java", - "//third_party/google_android_play_core:com_google_android_play_core_java", ] - srcjar_deps = [ ":module_installer_build_config" ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] diff --git a/third_party/google_android_play_core/BUILD.gn b/third_party/google_android_play_core/BUILD.gn --- a/third_party/google_android_play_core/BUILD.gn +++ b/third_party/google_android_play_core/BUILD.gn @@ -492,5 +492,5 @@ diff --git a/third_party/google_android_play_core/BUILD.gn b/third_party/google_ - info_path = "com_google_android_play_core.info" -} -- -2.11.0 +2.17.1 diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index c890338d..ec80f4c2 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -3,11 +3,11 @@ Date: Wed, 27 Jun 2018 01:32:28 +0200 Subject: Remove help menu item --- - chrome/android/java/res/menu/main_menu.xml | 2 -- - .../java/src/org/chromium/chrome/browser/ChromeActivity.java | 9 --------- - .../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 3 --- - .../chromium/chrome/browser/customtabs/CustomTabActivity.java | 2 +- - .../chrome/browser/directactions/MenuDirectActionHandler.java | 2 -- + chrome/android/java/res/menu/main_menu.xml | 2 -- + .../src/org/chromium/chrome/browser/ChromeActivity.java | 9 --------- + .../org/chromium/chrome/browser/KeyboardShortcuts.java | 3 --- + .../chrome/browser/customtabs/CustomTabActivity.java | 2 +- + .../browser/directactions/MenuDirectActionHandler.java | 2 -- 5 files changed, 1 insertion(+), 17 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml @@ -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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -2076,15 +2076,6 @@ public abstract class ChromeActivity +@@ -2143,15 +2143,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); @@ -44,7 +44,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -338,9 +338,6 @@ public class KeyboardShortcuts { +@@ -342,9 +342,6 @@ public class KeyboardShortcuts { tab = activity.getActivityTab(); if (tab != null && tab.canGoForward()) tab.goForward(); return true; @@ -57,7 +57,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 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java -@@ -624,7 +624,7 @@ public class CustomTabActivity extends ChromeActivity -Date: Sat, 2 Nov 2019 16:27:51 +0100 -Subject: Remove play dependency for module installer - ---- - .../FakeModuleInstallerBackend.java | 16 +- - .../module_installer/ModuleInstallerImpl.java | 150 --------------- - .../PlayCoreModuleInstallerBackend.java | 210 +-------------------- - 3 files changed, 10 insertions(+), 366 deletions(-) - -diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/FakeModuleInstallerBackend.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/FakeModuleInstallerBackend.java ---- a/components/module_installer/android/java/src/org/chromium/components/module_installer/FakeModuleInstallerBackend.java -+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/FakeModuleInstallerBackend.java -@@ -7,9 +7,6 @@ package org.chromium.components.module_installer; - import android.content.Context; - import android.content.pm.PackageManager; - --import com.google.android.play.core.splitcompat.SplitCompat; --import com.google.android.play.core.splitcompat.ingestion.Verifier; -- - import org.chromium.base.BuildInfo; - import org.chromium.base.ContextUtils; - import org.chromium.base.Log; -@@ -132,18 +129,7 @@ class FakeModuleInstallerBackend extends ModuleInstallerBackend { - return false; - } - -- // Check that the module's signature matches Chrome's. -- try { -- Verifier verifier = new Verifier(context); -- if (!verifier.verifySplits()) { -- return false; -- } -- } catch (IOException | PackageManager.NameNotFoundException e) { -- return false; -- } -- -- // Tell SplitCompat to do a full emulation of the module. -- return SplitCompat.fullInstall(context); -+ return false; - } - - private File joinPaths(String... paths) { -diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/ModuleInstallerImpl.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/ModuleInstallerImpl.java ---- a/components/module_installer/android/java/src/org/chromium/components/module_installer/ModuleInstallerImpl.java -+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/ModuleInstallerImpl.java -@@ -11,9 +11,6 @@ import android.content.pm.PackageManager.NameNotFoundException; - import android.os.Build; - import android.text.TextUtils; - --import com.google.android.play.core.splitcompat.SplitCompat; --import com.google.android.play.core.splitinstall.SplitInstallManagerFactory; -- - import org.chromium.base.BuildInfo; - import org.chromium.base.CommandLine; - import org.chromium.base.ContextUtils; -@@ -57,152 +54,5 @@ import java.util.TreeSet; - sInstance = moduleInstaller; - } - -- @Override -- public void init() { -- try (Timer ignored1 = new Timer()) { -- if (sAppContextSplitCompatted) return; -- // SplitCompat.install may copy modules into Chrome's internal folder or clean them up. -- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { -- SplitCompat.install(ContextUtils.getApplicationContext()); -- sAppContextSplitCompatted = true; -- } -- // SplitCompat.install may add emulated modules. Thus, update crash keys. -- updateCrashKeys(); -- } -- } -- -- @Override -- public void initActivity(Activity activity) { -- try (Timer ignored = new Timer()) { -- // SplitCompat#install should always be run for the application first before it is run -- // for any activities. -- init(); -- SplitCompat.installActivity(activity); -- } -- } -- -- @Override -- public void recordModuleAvailability() { -- try (Timer ignored = new Timer()) { -- getBackend().recordModuleAvailability(); -- } -- } -- -- @Override -- public void recordStartupTime() { -- getBackend().recordStartupTime(Timer.getTotalTime()); -- } -- -- @Override -- public void updateCrashKeys() { -- try (Timer ignored = new Timer()) { -- Context context = ContextUtils.getApplicationContext(); -- -- // Get modules that are fully installed as split APKs (excluding base which is always -- // installed). Tree set to have ordered and, thus, deterministic results. -- Set fullyInstalledModules = new TreeSet<>(); -- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { -- // Split APKs are only supported on Android L+. -- try { -- PackageInfo packageInfo = context.getPackageManager().getPackageInfo( -- BuildInfo.getInstance().packageName, 0); -- if (packageInfo.splitNames != null) { -- fullyInstalledModules.addAll(Arrays.asList(packageInfo.splitNames)); -- } -- } catch (NameNotFoundException e) { -- throw new RuntimeException(e); -- } -- } -- -- // Create temporary split install manager to retrieve both fully installed and emulated -- // modules. Then remove fully installed ones to get emulated ones only. Querying the -- // installed modules can only be done if splitcompat has already been called. Otherwise, -- // emulation of later modules won't work. If splitcompat has not been called no modules -- // are emulated. Therefore, use an empty set in that case. -- Set emulatedModules = new TreeSet<>(); -- if (sAppContextSplitCompatted) { -- emulatedModules.addAll( -- SplitInstallManagerFactory.create(context).getInstalledModules()); -- emulatedModules.removeAll(fullyInstalledModules); -- } -- -- CrashKeys.getInstance().set( -- CrashKeyIndex.INSTALLED_MODULES, encodeCrashKeyValue(fullyInstalledModules)); -- CrashKeys.getInstance().set( -- CrashKeyIndex.EMULATED_MODULES, encodeCrashKeyValue(emulatedModules)); -- } -- } -- -- @Override -- public void install(String moduleName, OnModuleInstallFinishedListener onFinishedListener) { -- try (Timer ignored = new Timer()) { -- ThreadUtils.assertOnUiThread(); -- -- if (!mModuleNameListenerMap.containsKey(moduleName)) { -- mModuleNameListenerMap.put(moduleName, new LinkedList<>()); -- } -- List onFinishedListeners = -- mModuleNameListenerMap.get(moduleName); -- onFinishedListeners.add(onFinishedListener); -- if (onFinishedListeners.size() > 1) { -- // Request is already running. -- return; -- } -- getBackend().install(moduleName); -- } -- } -- -- @Override -- public void installDeferred(String moduleName) { -- try (Timer ignored = new Timer()) { -- ThreadUtils.assertOnUiThread(); -- getBackend().installDeferred(moduleName); -- } -- } -- -- private void onFinished(boolean success, List moduleNames) { -- // Add timer to this private method since it is passed as a callback. -- try (Timer ignored = new Timer()) { -- ThreadUtils.assertOnUiThread(); -- -- mActivityObserver.onModuleInstalled(); -- -- for (String moduleName : moduleNames) { -- List onFinishedListeners = -- mModuleNameListenerMap.get(moduleName); -- if (onFinishedListeners == null) continue; -- -- for (OnModuleInstallFinishedListener listener : onFinishedListeners) { -- listener.onFinished(success); -- } -- mModuleNameListenerMap.remove(moduleName); -- } -- -- if (mModuleNameListenerMap.isEmpty()) { -- mBackend.close(); -- mBackend = null; -- } -- -- updateCrashKeys(); -- } -- } -- -- private ModuleInstallerBackend getBackend() { -- if (mBackend == null) { -- ModuleInstallerBackend.OnFinishedListener listener = this::onFinished; -- mBackend = CommandLine.getInstance().hasSwitch(FAKE_FEATURE_MODULE_INSTALL) -- ? new FakeModuleInstallerBackend(listener) -- : new PlayCoreModuleInstallerBackend(listener); -- } -- return mBackend; -- } -- -- private String encodeCrashKeyValue(Set moduleNames) { -- if (moduleNames.isEmpty()) return ""; -- // Values with dots are interpreted as URLs. Some module names have dots in them. Make sure -- // they don't get sanitized. -- return TextUtils.join(",", moduleNames).replace('.', '$'); -- } -- - private ModuleInstallerImpl() {} - } -diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/PlayCoreModuleInstallerBackend.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/PlayCoreModuleInstallerBackend.java ---- a/components/module_installer/android/java/src/org/chromium/components/module_installer/PlayCoreModuleInstallerBackend.java -+++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/PlayCoreModuleInstallerBackend.java -@@ -7,15 +7,6 @@ package org.chromium.components.module_installer; - import android.content.SharedPreferences; - import android.util.SparseLongArray; - --import com.google.android.play.core.splitinstall.SplitInstallException; --import com.google.android.play.core.splitinstall.SplitInstallManager; --import com.google.android.play.core.splitinstall.SplitInstallManagerFactory; --import com.google.android.play.core.splitinstall.SplitInstallRequest; --import com.google.android.play.core.splitinstall.SplitInstallSessionState; --import com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener; --import com.google.android.play.core.splitinstall.model.SplitInstallErrorCode; --import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; -- - import org.chromium.base.ContextUtils; - import org.chromium.base.Log; - import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample; -@@ -33,14 +24,13 @@ import java.util.Set; - * Backend that uses the Play Core SDK to download a module from Play and install it subsequently. - */ - /* package */ class PlayCoreModuleInstallerBackend -- extends ModuleInstallerBackend implements SplitInstallStateUpdatedListener { -+ extends ModuleInstallerBackend { - private static class InstallTimes { - public final boolean mIsCached; - public final SparseLongArray mInstallTimes = new SparseLongArray(); - - public InstallTimes(boolean isCached) { - mIsCached = isCached; -- mInstallTimes.put(SplitInstallSessionStatus.UNKNOWN, System.currentTimeMillis()); - } - } - -@@ -50,7 +40,6 @@ import java.util.Set; - private static final String KEY_MODULES_DEFERRED_REQUESTED_PREVIOUSLY = - "key_modules_deferred_requested_previously"; - private final Map mInstallTimesMap = new HashMap<>(); -- private final SplitInstallManager mManager; - private boolean mIsClosed; - - // FeatureModuleInstallStatus defined in //tools/metrics/histograms/enums.xml. -@@ -90,183 +79,31 @@ import java.util.Set; - // Keep this one at the end and increment appropriately when adding new status. - private static final int AVAILABILITY_STATUS_COUNT = 3; - -- /** Records via UMA all modules that have been requested and are currently installed. */ -- @Override -- /* package */ void recordModuleAvailability() { -- SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); -- Set requestedModules = new HashSet<>(); -- requestedModules.addAll( -- prefs.getStringSet(KEY_MODULES_ONDEMAND_REQUESTED_PREVIOUSLY, new HashSet<>())); -- requestedModules.addAll( -- prefs.getStringSet(KEY_MODULES_DEFERRED_REQUESTED_PREVIOUSLY, new HashSet<>())); -- Set installedModules = mManager.getInstalledModules(); -- -- for (String name : requestedModules) { -- EnumeratedHistogramSample sample = new EnumeratedHistogramSample( -- "Android.FeatureModules.AvailabilityStatus." + name, AVAILABILITY_STATUS_COUNT); -- if (installedModules.contains(name)) { -- sample.record(AVAILABILITY_STATUS_INSTALLED_REQUESTED); -- } else { -- sample.record(AVAILABILITY_STATUS_REQUESTED); -- } -- } -- -- for (String name : installedModules) { -- if (!requestedModules.contains(name)) { -- // Module appeared without being requested. Weird. -- EnumeratedHistogramSample sample = new EnumeratedHistogramSample( -- "Android.FeatureModules.AvailabilityStatus." + name, -- AVAILABILITY_STATUS_COUNT); -- sample.record(AVAILABILITY_STATUS_INSTALLED_UNREQUESTED); -- } -- } -- } -- -- @Override -- /* package */ void recordStartupTime(long durationMs) { -- TimesHistogramSample sample = -- new TimesHistogramSample("Android.FeatureModules.StartupTime"); -- sample.record(durationMs); -- } -- - /* package */ PlayCoreModuleInstallerBackend(OnFinishedListener listener) { - super(listener); -- // MUST call init before creating a SplitInstallManager. -- ModuleInstaller.getInstance().init(); -- mManager = SplitInstallManagerFactory.create(ContextUtils.getApplicationContext()); -- mManager.registerListener(this); - } - - @Override -- public void install(String moduleName) { -+ public void close() { - assert !mIsClosed; -- -- // Record start time in order to later report the install duration via UMA. We want to make -- // a difference between modules that have been requested first before and after the last -- // Chrome start. Modules that have been requested before may install quicker as they may be -- // installed form cache. To do this, we use shared prefs to track modules previously -- // requested. Additionally, storing requested modules helps us to record module install -- // status at next Chrome start. -- assert !mInstallTimesMap.containsKey(moduleName); -- mInstallTimesMap.put(moduleName, -- new InstallTimes(storeModuleRequested( -- moduleName, KEY_MODULES_ONDEMAND_REQUESTED_PREVIOUSLY))); -- -- SplitInstallRequest request = -- SplitInstallRequest.newBuilder().addModule(moduleName).build(); -- -- mManager.startInstall(request).addOnFailureListener(exception -> { -- int status = exception instanceof SplitInstallException -- ? getHistogramCode(((SplitInstallException) exception).getErrorCode()) -- : INSTALL_STATUS_UNKNOWN_REQUEST_ERROR; -- Log.e(TAG, "Failed to request module '%s': error code %s", moduleName, status); -- // If we reach this error condition |onStateUpdate| won't be called. Thus, call -- // |onFinished| here. -- finish(false, Collections.singletonList(moduleName), status); -- }); -+ mIsClosed = true; - } - - @Override -- public void installDeferred(String moduleName) { -- assert !mIsClosed; -- mManager.deferredInstall(Collections.singletonList(moduleName)); -- storeModuleRequested(moduleName, KEY_MODULES_DEFERRED_REQUESTED_PREVIOUSLY); -+ /* package */ void recordModuleAvailability() { -+ SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); - } - - @Override -- public void close() { -- assert !mIsClosed; -- mManager.unregisterListener(this); -- mIsClosed = true; -+ /* package */ void recordStartupTime(long durationMs) { - } - - @Override -- public void onStateUpdate(SplitInstallSessionState state) { -- assert !mIsClosed; -- Log.i(TAG, "Status for modules '%s' updated to %d", state.moduleNames(), state.status()); -- switch (state.status()) { -- case SplitInstallSessionStatus.DOWNLOADING: -- case SplitInstallSessionStatus.INSTALLING: -- case SplitInstallSessionStatus.INSTALLED: -- for (String name : state.moduleNames()) { -- mInstallTimesMap.get(name).mInstallTimes.put( -- state.status(), System.currentTimeMillis()); -- } -- if (state.status() == SplitInstallSessionStatus.INSTALLED) { -- finish(true, state.moduleNames(), INSTALL_STATUS_SUCCESS); -- } -- break; -- // DOWNLOADED only gets sent if SplitCompat is not enabled. That's an error. -- // SplitCompat should always be enabled. -- case SplitInstallSessionStatus.DOWNLOADED: -- case SplitInstallSessionStatus.CANCELED: -- case SplitInstallSessionStatus.FAILED: -- int status; -- if (state.status() == SplitInstallSessionStatus.DOWNLOADED) { -- status = INSTALL_STATUS_NO_SPLITCOMPAT; -- } else if (state.status() == SplitInstallSessionStatus.CANCELED) { -- status = INSTALL_STATUS_CANCELLATION; -- } else { -- status = getHistogramCode(state.errorCode()); -- } -- Log.e(TAG, "Failed to install modules '%s': error code %s", state.moduleNames(), -- status); -- finish(false, state.moduleNames(), status); -- break; -- } -- } -- -- private void finish(boolean success, List moduleNames, int eventId) { -- for (String name : moduleNames) { -- RecordHistogram.recordEnumeratedHistogram( -- "Android.FeatureModules.InstallStatus." + name, eventId, INSTALL_STATUS_COUNT); -- if (success) { -- recordInstallTimes(name); -- } -- } -- onFinished(success, moduleNames); -+ public void install(String moduleName) { - } - -- /** -- * Gets the UMA code based on a SplitInstall error code -- * @param errorCode The error code -- * @return int The User Metric Analysis code -- */ -- private int getHistogramCode(@SplitInstallErrorCode int errorCode) { -- switch (errorCode) { -- case SplitInstallErrorCode.ACCESS_DENIED: -- return INSTALL_STATUS_ACCESS_DENIED; -- case SplitInstallErrorCode.ACTIVE_SESSIONS_LIMIT_EXCEEDED: -- return INSTALL_STATUS_ACTIVE_SESSIONS_LIMIT_EXCEEDED; -- case SplitInstallErrorCode.API_NOT_AVAILABLE: -- return INSTALL_STATUS_API_NOT_AVAILABLE; -- case SplitInstallErrorCode.INCOMPATIBLE_WITH_EXISTING_SESSION: -- return INSTALL_STATUS_INCOMPATIBLE_WITH_EXISTING_SESSION; -- case SplitInstallErrorCode.INSUFFICIENT_STORAGE: -- return INSTALL_STATUS_INSUFFICIENT_STORAGE; -- case SplitInstallErrorCode.INVALID_REQUEST: -- return INSTALL_STATUS_INVALID_REQUEST; -- case SplitInstallErrorCode.MODULE_UNAVAILABLE: -- return INSTALL_STATUS_MODULE_UNAVAILABLE; -- case SplitInstallErrorCode.NETWORK_ERROR: -- return INSTALL_STATUS_NETWORK_ERROR; -- case SplitInstallErrorCode.NO_ERROR: -- return INSTALL_STATUS_NO_ERROR; -- case SplitInstallErrorCode.SERVICE_DIED: -- return INSTALL_STATUS_SERVICE_DIED; -- case SplitInstallErrorCode.SESSION_NOT_FOUND: -- return INSTALL_STATUS_SESSION_NOT_FOUND; -- case SplitInstallErrorCode.SPLITCOMPAT_COPY_ERROR: -- return INSTALL_STATUS_SPLITCOMPAT_COPY_ERROR; -- case SplitInstallErrorCode.SPLITCOMPAT_EMULATION_ERROR: -- return INSTALL_STATUS_SPLITCOMPAT_EMULATION_ERROR; -- case SplitInstallErrorCode.SPLITCOMPAT_VERIFICATION_ERROR: -- return INSTALL_STATUS_SPLITCOMPAT_VERIFICATION_ERROR; -- case SplitInstallErrorCode.INTERNAL_ERROR: -- return INSTALL_STATUS_INTERNAL_ERROR; -- default: -- return INSTALL_STATUS_UNKNOWN_SPLITINSTALL_ERROR; -- } -+ @Override -+ public void installDeferred(String moduleName) { - } - - /** -@@ -286,33 +123,4 @@ import java.util.Set; - editor.apply(); - return modulesRequestedPreviously.contains(moduleName); - } -- -- /** Records via UMA module install times divided into install steps. */ -- private void recordInstallTimes(String moduleName) { -- recordInstallTime(moduleName, "", SplitInstallSessionStatus.UNKNOWN, -- SplitInstallSessionStatus.INSTALLED); -- recordInstallTime(moduleName, ".PendingDownload", SplitInstallSessionStatus.UNKNOWN, -- SplitInstallSessionStatus.DOWNLOADING); -- recordInstallTime(moduleName, ".Download", SplitInstallSessionStatus.DOWNLOADING, -- SplitInstallSessionStatus.INSTALLING); -- recordInstallTime(moduleName, ".Installing", SplitInstallSessionStatus.INSTALLING, -- SplitInstallSessionStatus.INSTALLED); -- } -- -- private void recordInstallTime( -- String moduleName, String histogramSubname, int startKey, int endKey) { -- assert mInstallTimesMap.containsKey(moduleName); -- InstallTimes installTimes = mInstallTimesMap.get(moduleName); -- if (installTimes.mInstallTimes.get(startKey) == 0 -- || installTimes.mInstallTimes.get(endKey) == 0) { -- // Time stamps for install times have not been stored. Don't record anything to not skew -- // data. -- return; -- } -- RecordHistogram.recordLongTimesHistogram( -- String.format("Android.FeatureModules.%sInstallDuration%s.%s", -- installTimes.mIsCached ? "Cached" : "Uncached", histogramSubname, -- moduleName), -- installTimes.mInstallTimes.get(endKey) - installTimes.mInstallTimes.get(startKey)); -- } - } --- -2.11.0 - diff --git a/build/patches/Remove-signin-and-data-saver-integrations.patch b/build/patches/Remove-signin-and-data-saver-integrations.patch index 31e3c598..1d1f7684 100644 --- a/build/patches/Remove-signin-and-data-saver-integrations.patch +++ b/build/patches/Remove-signin-and-data-saver-integrations.patch @@ -16,30 +16,30 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() >>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17) >>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a --- - chrome/android/BUILD.gn | 4 +- - chrome/android/java/AndroidManifest.xml | 27 ----- - chrome/android/java/res/xml/main_preferences.xml | 14 --- - .../chromium/chrome/browser/ChromeActivity.java | 34 ------ - .../browser/preferences/MainPreferences.java | 86 +-------------- - .../DataReductionPreferenceFragment.java | 17 +-- - .../preferences/privacy/PrivacyPreferences.java | 15 --- - .../sync/SyncAndServicesPreferences.java | 7 -- - .../preferences/sync/SyncPreferenceUtils.java | 3 - - .../chrome/browser/signin/SigninManager.java | 73 +----------- - .../java/strings/android_chrome_strings.grd | 18 --- - .../android/signin/signin_manager_android.cc | 3 +- - .../invalidation/impl/invalidation_service_util.cc | 21 ---- - .../invalidation/impl/invalidation_service_util.h | 6 +- - .../signin/SystemAccountManagerDelegate.java | 38 +------ - .../components/sync/AndroidSyncSettings.java | 24 +--- - .../chromium/net/HttpNegotiateAuthenticator.java | 122 +-------------------- - .../chromoting/base/OAuthTokenFetcher.java | 2 - - 18 files changed, 26 insertions(+), 488 deletions(-) + chrome/android/BUILD.gn | 3 +- + chrome/android/java/AndroidManifest.xml | 28 ------ + .../android/java/res/xml/main_preferences.xml | 14 --- + .../chrome/browser/ChromeActivity.java | 34 ------- + .../browser/preferences/MainPreferences.java | 86 +----------------- + .../DataReductionPreferenceFragment.java | 24 ++--- + .../privacy/PrivacyPreferences.java | 15 ---- + .../sync/SyncAndServicesPreferences.java | 8 -- + .../preferences/sync/SyncPreferenceUtils.java | 3 - + .../chrome/browser/signin/SigninManager.java | 71 ++------------- + .../java/strings/android_chrome_strings.grd | 18 ---- + .../android/signin/signin_manager_android.cc | 1 - + .../impl/invalidation_service_util.cc | 21 ----- + .../impl/invalidation_service_util.h | 6 +- + .../signin/SystemAccountManagerDelegate.java | 38 +------- + .../components/sync/AndroidSyncSettings.java | 24 +---- + .../net/HttpNegotiateAuthenticator.java | 88 +------------------ + .../chromoting/base/OAuthTokenFetcher.java | 2 - + 18 files changed, 26 insertions(+), 458 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -1158,8 +1158,7 @@ jinja_template_resources("chrome_public_apk_template_resources") { +@@ -1136,8 +1136,7 @@ jinja_template_resources("chrome_public_apk_template_resources") { resources = [ "java/res_template/xml/file_paths.xml", "java/res_template/xml/launchershortcuts.xml", @@ -49,18 +49,10 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ] res_dir = "java/res_template" variables = [ "manifest_package=$chrome_public_manifest_package" ] -@@ -1170,7 +1169,6 @@ jinja_template_resources("chrome_test_apk_template_resources") { - "java/res_template/xml/file_paths.xml", - "java/res_template/xml/launchershortcuts.xml", - "java/res_template/xml/searchable.xml", -- "java/res_template/xml/syncadapter.xml", - ] - res_dir = "java/res_template" - diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -47,22 +47,16 @@ by a child template that "extends" this file. +@@ -43,22 +43,16 @@ by a child template that "extends" this file. {% if target_sdk_version|int > 27 or target_sdk_version == "Q" %} {% endif %} @@ -83,7 +75,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% set enable_vr = enable_vr|default(0) %} {% if enable_vr == "true" %} -@@ -103,8 +97,6 @@ by a child template that "extends" this file. +@@ -99,8 +93,6 @@ by a child template that "extends" this file. @@ -92,7 +84,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} {% endblock %} -@@ -1009,16 +1001,6 @@ by a child template that "extends" this file. +@@ -960,16 +952,6 @@ by a child template that "extends" this file. android:resource="@xml/file_paths" /> @@ -109,29 +101,31 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1126,15 +1108,6 @@ by a child template that "extends" this file. +@@ -1077,16 +1059,6 @@ by a child template that "extends" this file. - -- -- -- -- -- -- - +- +- +- +- + + - - @@ -140,26 +134,25 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j - android:order="1" - android:title="@string/sign_in_to_chrome"/> - -- -@@ -85,11 +76,6 @@ +@@ -84,11 +75,6 @@ + android:key="languages" android:order="16" android:title="@string/prefs_languages"/> - -- +@@ -268,9 +266,6 @@ public abstract class ChromeActivity @SuppressLint("NewApi") private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener; @@ -178,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. @Nullable private ChromeFullscreenManager mFullscreenManager; -@@ -906,28 +901,6 @@ public abstract class ChromeActivity +@@ -919,28 +914,6 @@ public abstract class ChromeActivity private void createContextReporterIfNeeded() { if (!mStarted) return; // Sync state reporting should work only in started state. if (mContextReporter != null || getActivityTab() == null) return; @@ -207,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity. } @Override -@@ -995,13 +968,6 @@ public abstract class ChromeActivity +@@ -1008,13 +981,6 @@ public abstract class ChromeActivity if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) { GSAAccountChangeListener.getInstance().disconnect(); } @@ -335,7 +328,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai updateSearchEnginePreference(); Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE); -@@ -223,10 +185,6 @@ public class MainPreferences extends PreferenceFragmentCompat +@@ -220,10 +182,6 @@ public class MainPreferences extends PreferenceFragmentCompat } else { removePreferenceIfPresent(PREF_DEVELOPER); } @@ -346,7 +339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai } private Preference addPreferenceIfAbsent(String key) { -@@ -240,13 +198,6 @@ public class MainPreferences extends PreferenceFragmentCompat +@@ -237,13 +195,6 @@ public class MainPreferences extends PreferenceFragmentCompat if (preference != null) getPreferenceScreen().removePreference(preference); } @@ -360,8 +353,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai private void updateSearchEnginePreference() { if (!TemplateUrlServiceFactory.get().isLoaded()) { ChromeBasePreference searchEnginePref = -@@ -278,28 +229,6 @@ public class MainPreferences extends PreferenceFragmentCompat - pref.setSummary(getResources().getString(isOn ? R.string.text_on : R.string.text_off)); +@@ -275,28 +226,6 @@ public class MainPreferences extends PreferenceFragmentCompat + pref.setSummary(isOn ? R.string.text_on : R.string.text_off); } - // SigninManager.SignInStateObserver implementation. @@ -389,7 +382,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai // TemplateUrlService.LoadListener implementation. @Override public void onTemplateUrlServiceLoaded() { -@@ -307,11 +236,6 @@ public class MainPreferences extends PreferenceFragmentCompat +@@ -304,11 +233,6 @@ public class MainPreferences extends PreferenceFragmentCompat updateSearchEnginePreference(); } @@ -401,7 +394,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai @VisibleForTesting ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() { return mManagedPreferenceDelegate; -@@ -321,9 +245,6 @@ public class MainPreferences extends PreferenceFragmentCompat +@@ -318,9 +242,6 @@ public class MainPreferences extends PreferenceFragmentCompat return new ManagedPreferenceDelegate() { @Override public boolean isPreferenceControlledByPolicy(Preference preference) { @@ -411,7 +404,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai if (PREF_SEARCH_ENGINE.equals(preference.getKey())) { return TemplateUrlServiceFactory.get().isDefaultSearchManaged(); } -@@ -332,11 +253,6 @@ public class MainPreferences extends PreferenceFragmentCompat +@@ -329,11 +250,6 @@ public class MainPreferences extends PreferenceFragmentCompat @Override public boolean isPreferenceClickDisabledByPolicy(Preference preference) { @@ -426,7 +419,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/preferences/datareduction/DataReductionPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java -@@ -45,10 +45,10 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat { +@@ -50,10 +50,10 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { PreferenceUtils.addPreferencesFromResource(this, R.xml.data_reduction_preferences); getActivity().setTitle(R.string.data_reduction_title_lite_mode); @@ -441,13 +434,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat setHasOptionsMenu(true); -@@ -143,14 +143,7 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat { +@@ -148,21 +148,7 @@ public class DataReductionPreferenceFragment extends PreferenceFragmentCompat { * Returns summary string. */ public static String generateSummary(Resources resources) { - if (DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) { -- String percent = -- DataReductionProxySettings.getInstance().getContentLengthPercentSavings(); +- ContentLengths length = DataReductionProxySettings.getInstance().getContentLengths(); +- +- // If received is less than show chart threshold than don't show summary. +- if (ConversionUtils.bytesToKilobytes(length.getReceived()) +- < DataReductionProxySettings.DATA_REDUCTION_SHOW_CHART_KB_THRESHOLD) { +- return ""; +- } +- +- String percent = generatePercentSavings(length); - return resources.getString( - R.string.data_reduction_menu_item_summary_lite_mode, percent); - } else { @@ -456,7 +456,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat + return (String) resources.getText(R.string.text_off); } - private void createDataReductionSwitch(boolean isEnabled) { + /** 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java @@ -502,7 +502,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java -@@ -163,14 +163,7 @@ public class SyncAndServicesPreferences extends PreferenceFragmentCompat +@@ -167,15 +167,7 @@ public class SyncAndServicesPreferences extends PreferenceFragmentCompat mPrivacyPrefManager.migrateNetworkPredictionPreferences(); @@ -513,6 +513,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn - assert actionBar != null; - actionBar.setHomeActionContentDescription( - R.string.prefs_sync_and_services_content_description); +- RecordUserAction.record("Signin_Signin_ShowAdvancedSyncSettings"); - } PreferenceUtils.addPreferencesFromResource(this, R.xml.sync_and_services_preferences); @@ -520,8 +521,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -119,9 +119,6 @@ public class SyncPreferenceUtils { - if (profileSyncService.isPassphraseRequiredForDecryption()) { +@@ -118,9 +118,6 @@ public class SyncPreferenceUtils { + if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { return res.getString(R.string.sync_need_passphrase); } - if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { @@ -533,75 +534,79 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java -@@ -27,10 +27,7 @@ import org.chromium.base.metrics.RecordUserAction; +@@ -23,10 +23,7 @@ import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; - import org.chromium.chrome.browser.externalauth.UserRecoverableErrorHandler; -import org.chromium.components.signin.AccountIdProvider; import org.chromium.components.signin.AccountManagerFacade; -import org.chromium.components.signin.AccountTrackerService; -import org.chromium.components.signin.ChromeSigninController; - import org.chromium.components.sync.AndroidSyncSettings; - import org.chromium.content_public.browser.UiThreadTaskTraits; - -@@ -47,7 +44,7 @@ import java.util.List; - *

+ import org.chromium.components.signin.identitymanager.ClearAccountsAction; + import org.chromium.components.signin.identitymanager.CoreAccountInfo; + import org.chromium.components.signin.identitymanager.IdentityManager; +@@ -52,7 +49,7 @@ import java.util.List; * See chrome/browser/signin/signin_manager_android.h for more details. */ --public class SigninManager implements AccountTrackerService.OnSystemAccountsSeededListener { -+public class SigninManager { + public class SigninManager +- implements AccountTrackerService.OnSystemAccountsSeededListener, IdentityManager.Observer { ++ implements IdentityManager.Observer { private static final String TAG = "SigninManager"; /** -@@ -183,7 +180,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -168,7 +165,6 @@ public class SigninManager + * This is not final, as destroy() updates this. */ private long mNativeSigninManagerAndroid; - private final Context mContext; - private final AccountTrackerService mAccountTrackerService; + private final IdentityManager mIdentityManager; + private final IdentityMutator mIdentityMutator; private final AndroidSyncSettings mAndroidSyncSettings; - private final ObserverList mSignInStateObservers = new ObserverList<>(); - private final ObserverList mSignInAllowedObservers = -@@ -219,28 +215,24 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -205,24 +201,22 @@ public class SigninManager */ @CalledByNative - private static SigninManager create( -- long nativeSigninManagerAndroid, AccountTrackerService accountTrackerService) { -+ long nativeSigninManagerAndroid) { + private static SigninManager create(long nativeSigninManagerAndroid, +- AccountTrackerService accountTrackerService, IdentityManager identityManager, ++ IdentityManager identityManager, + IdentityMutator identityMutator) { assert nativeSigninManagerAndroid != 0; - assert accountTrackerService != null; - return new SigninManager(ContextUtils.getApplicationContext(), nativeSigninManagerAndroid, -- accountTrackerService, AndroidSyncSettings.get()); -+ AndroidSyncSettings.get()); + assert identityManager != null; + assert identityMutator != null; +- return new SigninManager(nativeSigninManagerAndroid, accountTrackerService, identityManager, ++ return new SigninManager(nativeSigninManagerAndroid, identityManager, + identityMutator, AndroidSyncSettings.get()); } @VisibleForTesting - SigninManager(Context context, long nativeSigninManagerAndroid, -- AccountTrackerService accountTrackerService, AndroidSyncSettings androidSyncSettings) { -+ AndroidSyncSettings androidSyncSettings) { +- SigninManager(long nativeSigninManagerAndroid, AccountTrackerService accountTrackerService, ++ SigninManager(long nativeSigninManagerAndroid, + IdentityManager identityManager, IdentityMutator identityMutator, + AndroidSyncSettings androidSyncSettings) { ThreadUtils.assertOnUiThread(); - assert context != null; assert androidSyncSettings != null; - mContext = context; mNativeSigninManagerAndroid = nativeSigninManagerAndroid; - mAccountTrackerService = accountTrackerService; + mIdentityManager = identityManager; + mIdentityMutator = identityMutator; mAndroidSyncSettings = androidSyncSettings; - +@@ -230,7 +224,6 @@ public class SigninManager mSigninAllowedByPolicy = SigninManagerJni.get().isSigninAllowedByPolicy(mNativeSigninManagerAndroid); -- + - mAccountTrackerService.addSystemAccountsSeededListener(this); + mIdentityManager.addObserver(this); } - /** -@@ -249,7 +241,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed - */ +@@ -241,7 +234,6 @@ public class SigninManager @CalledByNative public void destroy() { + mIdentityManager.removeObserver(this); - mAccountTrackerService.removeSystemAccountsSeededListener(this); mNativeSigninManagerAndroid = 0; } -@@ -286,8 +277,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -285,8 +277,7 @@ public class SigninManager * Returns true if signin can be started now. */ public boolean isSignInAllowed() { @@ -611,10 +616,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa } /** -@@ -344,27 +334,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -342,27 +333,6 @@ public class SigninManager + }); } - /** +- /** - * Continue pending sign in after system accounts have been seeded into AccountTrackerService. - */ - @Override @@ -635,11 +641,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa - } - } - -- /** + /** * Starts the sign-in flow, and executes the callback when finished. * - * If an activity is provided, it is considered an "interactive" sign-in and the user can be -@@ -419,16 +388,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -418,14 +388,8 @@ public class SigninManager } private void progressSignInFlowSeedSystemAccounts() { @@ -648,21 +653,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa - } else if (AccountIdProvider.getInstance().canBeUsed()) { - mSignInState.mBlockedOnAccountSeeding = true; - } else { -- Activity activity = mSignInState.mActivity; -- handleGooglePlayServicesUnavailability(activity, !isForceSigninEnabled()); - Log.w(TAG, "Cancelling the sign-in process as Google Play services is unavailable"); - abortSignIn(); - } -+ mSignInState.mBlockedOnAccountSeeding = true; ++ Log.w(TAG, "Cancelling the sign-in process as Google Play services is unavailable"); ++ abortSignIn(); } /** -@@ -462,18 +422,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -459,18 +423,6 @@ public class SigninManager // This method should be called at most once per sign-in flow. - assert mSignInState != null; + assert mSignInState != null && mSignInState.mCoreAccountInfo != null; -- if (!SigninManagerJni.get().setPrimaryAccount( -- mNativeSigninManagerAndroid, mSignInState.mAccount.name)) { +- if (!mIdentityMutator.setPrimaryAccount(mSignInState.mCoreAccountInfo.getId())) { - Log.w(TAG, "Failed to set the PrimaryAccount in IdentityManager, aborting signin"); - abortSignIn(); - return; @@ -670,24 +673,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa - - // Cache the signed-in account name. This must be done after the native call, otherwise - // sync tries to start without being signed in natively and crashes. -- ChromeSigninController.get().setSignedInAccountName(mSignInState.mAccount.name); -- enableSync(mSignInState.mAccount); +- ChromeSigninController.get().setSignedInAccountName( +- mSignInState.mCoreAccountInfo.getName()); +- enableSync(mSignInState.mCoreAccountInfo.getAccount()); - if (mSignInState.mCallback != null) { mSignInState.mCallback.onSignInComplete(); } -@@ -640,10 +588,8 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed +@@ -620,10 +572,8 @@ public class SigninManager // Native sign-out must happen before resetting the account so data is deleted correctly. // http://crbug.com/589028 - ChromeSigninController.get().setSignedInAccountName(null); - if (mSignOutState.mWipeDataHooks != null) mSignOutState.mWipeDataHooks.preWipeData(); - disableSyncAndWipeData(mSignOutState.mShouldWipeUserData, this::onProfileDataWiped); + if (mSignOutState.mSignOutCallback != null) mSignOutState.mSignOutCallback.preWipeData(); + disableSyncAndWipeData(mSignOutState.mShouldWipeUserData, this::finishSignOut); - mAccountTrackerService.invalidateAccountSeedStatus(true); } - @VisibleForTesting -@@ -719,13 +665,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed + void finishSignOut() { +@@ -683,13 +633,6 @@ public class SigninManager SigninManagerJni.get().stopApplyingCloudPolicy(mNativeSigninManagerAndroid); } @@ -704,7 +708,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninMa 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 +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -345,24 +345,12 @@ CHAR-LIMIT guidelines: +@@ -339,24 +339,12 @@ CHAR-LIMIT guidelines: @@ -729,7 +733,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Disabled by the administrator of this device -@@ -412,9 +400,6 @@ CHAR-LIMIT guidelines: +@@ -406,9 +394,6 @@ CHAR-LIMIT guidelines: Sends URLs of pages you visit to Google @@ -739,7 +743,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Cancel sync? -@@ -1282,9 +1267,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1265,9 +1250,6 @@ Your Google account may have other forms of browsing history like searches and a When Lite mode is on, Chrome uses Google servers to make pages load faster. Lite mode rewrites very slow pages to load only essential content. Lite mode does not apply to Incognito tabs. @@ -752,16 +756,14 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc --- a/chrome/browser/android/signin/signin_manager_android.cc +++ b/chrome/browser/android/signin/signin_manager_android.cc -@@ -145,8 +145,7 @@ SigninManagerAndroid::SigninManagerAndroid( - g_browser_process->local_state()); +@@ -138,7 +138,6 @@ SigninManagerAndroid::SigninManagerAndroid( java_signin_manager_ = Java_SigninManager_create( -- base::android::AttachCurrentThread(), reinterpret_cast(this), -- identity_manager_->LegacyGetAccountTrackerServiceJavaObject()); -+ base::android::AttachCurrentThread(), reinterpret_cast(this)); + base::android::AttachCurrentThread(), reinterpret_cast(this), +- identity_manager_->LegacyGetAccountTrackerServiceJavaObject(), + identity_manager_->GetJavaObject(), + identity_manager_->GetIdentityMutatorJavaObject()); } - - base::android::ScopedJavaLocalRef diff --git a/components/invalidation/impl/invalidation_service_util.cc b/components/invalidation/impl/invalidation_service_util.cc --- a/components/invalidation/impl/invalidation_service_util.cc +++ b/components/invalidation/impl/invalidation_service_util.cc @@ -875,7 +877,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon diff --git a/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java b/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java --- a/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java +++ b/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java -@@ -212,13 +212,7 @@ public class AndroidSyncSettings { +@@ -213,13 +213,7 @@ public class AndroidSyncSettings { private void setChromeSyncEnabled(boolean value) { synchronized (mLock) { @@ -890,7 +892,7 @@ diff --git a/components/sync/android/java/src/org/chromium/components/sync/Andro } notifyObservers(); } -@@ -299,19 +293,9 @@ public class AndroidSyncSettings { +@@ -300,19 +294,9 @@ public class AndroidSyncSettings { boolean oldChromeSyncEnabled = mChromeSyncEnabled; boolean oldMasterSyncEnabled = mMasterSyncEnabled; @@ -916,7 +918,7 @@ diff --git a/components/sync/android/java/src/org/chromium/components/sync/Andro diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java --- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java +++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java -@@ -96,50 +96,7 @@ public class HttpNegotiateAuthenticator { +@@ -97,54 +97,8 @@ public class HttpNegotiateAuthenticator { @Override public void run(AccountManagerFuture future) { @@ -925,7 +927,8 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - accounts = future.getResult(); - } catch (OperationCanceledException | AuthenticatorException | IOException e) { - Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to retrieve accounts.", e); -- nativeSetResult(mRequestData.nativeResultObject, NetError.ERR_UNEXPECTED, null); +- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, +- HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null); - return; - } - @@ -933,8 +936,9 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: No account provided for the kerberos " - + "authentication. Please verify the configuration policies and " - + "that the CONTACTS runtime permission is granted. "); -- nativeSetResult(mRequestData.nativeResultObject, -- NetError.ERR_MISSING_AUTH_CREDENTIALS, null); +- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, +- HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS, +- null); - return; - } - @@ -943,8 +947,9 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - + "kerberos authentication. Please fix the configuration by " - + "providing a single account.", - accounts.length); -- nativeSetResult(mRequestData.nativeResultObject, -- NetError.ERR_MISSING_AUTH_CREDENTIALS, null); +- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, +- HttpNegotiateAuthenticator.this, NetError.ERR_MISSING_AUTH_CREDENTIALS, +- null); - return; - } - @@ -955,7 +960,8 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - // API >= 23 USE_CREDENTIALS permission is removed - Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: USE_CREDENTIALS permission not " - + "granted. Aborting authentication."); -- nativeSetResult(mRequestData.nativeResultObject, +- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, +- HttpNegotiateAuthenticator.this, - NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null); - return; - } @@ -965,10 +971,11 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - new GetTokenCallback(mRequestData), - new Handler(ThreadUtils.getUiThreadLooper())); + // account-based authentication removed for privacy-violations concerns ++ return; } } -@@ -152,41 +109,7 @@ public class HttpNegotiateAuthenticator { +@@ -157,42 +111,8 @@ public class HttpNegotiateAuthenticator { @Override public void run(AccountManagerFuture future) { @@ -977,7 +984,8 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - result = future.getResult(); - } catch (OperationCanceledException | AuthenticatorException | IOException e) { - Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to obtain a token.", e); -- nativeSetResult(mRequestData.nativeResultObject, NetError.ERR_UNEXPECTED, null); +- HttpNegotiateAuthenticatorJni.get().setResult(mRequestData.nativeResultObject, +- HttpNegotiateAuthenticator.this, NetError.ERR_UNEXPECTED, null); - return; - } - @@ -1007,69 +1015,15 @@ diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.ja - } else { - processResult(result, mRequestData); - } -+ // ditto ++ // account-based authentication removed for privacy-violations concerns ++ return; } } -@@ -300,22 +223,7 @@ public class HttpNegotiateAuthenticator { - */ - private void requestTokenWithoutActivity( - Context ctx, RequestData requestData, String[] features) { -- if (lacksPermission(ctx, Manifest.permission.GET_ACCOUNTS, true /* onlyPreM */)) { -- // Protecting the AccountManager#getAccountsByTypeAndFeatures call. -- // API < 23 Requires the GET_ACCOUNTS permission or throws an exception. -- // API >= 23 Requires the GET_ACCOUNTS permission (CONTACTS permission group) or -- // returns only the accounts whose authenticator has a signature that -- // matches our app. Working with this restriction and not requesting -- // the permission is a valid use case in the context of WebView, so we -- // don't require it on M+ -- Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: GET_ACCOUNTS permission not " -- + "granted. Aborting authentication."); -- nativeSetResult(requestData.nativeResultObject, -- NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null); -- return; -- } -- requestData.accountManager.getAccountsByTypeAndFeatures(mAccountType, features, -- new GetAccountsCallback(requestData), new Handler(ThreadUtils.getUiThreadLooper())); -+ // ditto - } - - /** -@@ -334,29 +242,7 @@ public class HttpNegotiateAuthenticator { - */ - private void requestTokenWithActivity( - Context ctx, Activity activity, RequestData requestData, String[] features) { -- boolean isPreM = Build.VERSION.SDK_INT < Build.VERSION_CODES.M; -- String permission = isPreM -- ? "android.permission.MANAGE_ACCOUNTS" -- : Manifest.permission.GET_ACCOUNTS; -- -- // Check if the AccountManager#getAuthTokenByFeatures call can be made. -- // API < 23 Requires the MANAGE_ACCOUNTS permission. -- // API >= 23 Requires the GET_ACCOUNTS permission to behave properly. When it's not granted, -- // accounts not managed by the current application can't be retrieved. Depending -- // on the authenticator implementation, it might prompt to create an account, but -- // that won't be saved. This would be a bad user experience, so we also consider -- // it a failure case. -- if (lacksPermission(ctx, permission, isPreM)) { -- Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: %s permission not granted. " -- + "Aborting authentication", permission); -- nativeSetResult(requestData.nativeResultObject, -- NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null); -- return; -- } -- -- requestData.accountManager.getAuthTokenByFeatures(mAccountType, requestData.authTokenType, -- features, activity, null, requestData.options, new GetTokenCallback(requestData), -- new Handler(ThreadUtils.getUiThreadLooper())); -+ // ditto - } - - /** diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java --- a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java +++ b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java -@@ -92,7 +92,6 @@ public class OAuthTokenFetcher { +@@ -93,7 +93,6 @@ public class OAuthTokenFetcher { /** Begins fetching a token. Should be called on the main thread. */ public void fetch() { @@ -1077,7 +1031,7 @@ diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFe } /** -@@ -101,7 +100,6 @@ public class OAuthTokenFetcher { +@@ -102,7 +101,6 @@ public class OAuthTokenFetcher { * @param expiredToken A previously-fetched token which has expired. */ public void clearAndFetch(String expiredToken) { @@ -1086,5 +1040,5 @@ diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFe private void fetchImpl(final String expiredToken) { -- -2.11.0 +2.17.1 diff --git a/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch b/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch index baf843aa..51c896b0 100644 --- a/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch +++ b/build/patches/Replace-DoH-probe-domain-with-RIPE-domain.patch @@ -9,7 +9,7 @@ Subject: Replace DoH probe domain with RIPE domain 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 -@@ -816,7 +816,7 @@ class DnsTCPAttempt : public DnsAttempt { +@@ -818,7 +818,7 @@ class DnsTCPAttempt : public DnsAttempt { // ---------------------------------------------------------------------------- @@ -19,5 +19,5 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc const net::BackoffEntry::Policy kProbeBackoffPolicy = { // Apply exponential backoff rules after the first error. -- -2.11.0 +2.17.1 diff --git a/build/patches/Restore-classic-new-tab-page.patch b/build/patches/Restore-classic-new-tab-page.patch index 04aa34a2..2a4688eb 100644 --- a/build/patches/Restore-classic-new-tab-page.patch +++ b/build/patches/Restore-classic-new-tab-page.patch @@ -34,5 +34,5 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc const TemplateURL* template_url = GetDefaultSearchProviderTemplateURL(profile); -- -2.11.0 +2.17.1 diff --git a/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch b/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch index 0c4d6a3b..6de8c683 100644 --- a/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch +++ b/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch @@ -4,31 +4,31 @@ Subject: Revert "Cleanup Search Ready Omnibox flag since it has launched" This reverts commit ae458edcc8422d0815d0e82261e71fe10d7d6fc2. --- - .../java/src/org/chromium/chrome/browser/ChromeFeatureList.java | 1 + - .../chrome/browser/omnibox/suggestions/AutocompleteMediator.java | 7 +++++++ - chrome/browser/about_flags.cc | 3 +++ - chrome/browser/android/chrome_feature_list.cc | 4 ++++ - chrome/browser/android/chrome_feature_list.h | 1 + - chrome/browser/flag-metadata.json | 5 +++++ - chrome/browser/flag_descriptions.cc | 5 +++++ - chrome/browser/flag_descriptions.h | 3 +++ + .../src/org/chromium/chrome/browser/ChromeFeatureList.java | 1 + + .../browser/omnibox/suggestions/AutocompleteMediator.java | 7 +++++++ + chrome/browser/about_flags.cc | 3 +++ + chrome/browser/android/chrome_feature_list.cc | 4 ++++ + chrome/browser/android/chrome_feature_list.h | 1 + + chrome/browser/flag-metadata.json | 5 +++++ + chrome/browser/flag_descriptions.cc | 5 +++++ + chrome/browser/flag_descriptions.h | 3 +++ 8 files changed, 29 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java @@ -303,6 +303,7 @@ public abstract class ChromeFeatureList { + public static final String QUIET_NOTIFICATION_PROMPTS = "QuietNotificationPrompts"; + public static final String REACHED_CODE_PROFILER = "ReachedCodeProfiler"; + public static final String READER_MODE_IN_CCT = "ReaderModeInCCT"; ++ public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String REMOVE_NAVIGATION_HISTORY = "RemoveNavigationHistory"; public static final String REORDER_BOOKMARKS = "ReorderBookmarks"; public static final String REVAMPED_CONTEXT_MENU = "RevampedContextMenu"; -+ public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; - public static final String SEND_TAB_TO_SELF = "SyncSendTabToSelf"; - public static final String SERVICE_MANAGER_FOR_DOWNLOAD = "ServiceManagerForDownload"; - public static final String SERVICE_WORKER_PAYMENT_APPS = "ServiceWorkerPaymentApps"; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -321,6 +321,13 @@ class AutocompleteMediator +@@ -364,6 +364,13 @@ class AutocompleteMediator void onNativeInitialized() { mNativeInitialized = true; @@ -45,30 +45,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest 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 -@@ -1966,6 +1966,9 @@ const FeatureEntry kFeatureEntries[] = { - {"enable-homepage-tile", flag_descriptions::kHomepageTileName, - flag_descriptions::kHomepageTileDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kHomepageTile)}, +@@ -1972,6 +1972,9 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kAndroidAutofillAccessibilityName, + flag_descriptions::kAndroidAutofillAccessibilityDescription, kOsAndroid, + FEATURE_VALUE_TYPE(features::kAndroidAutofillAccessibility)}, + {"enable-search-ready-omnibox", flag_descriptions::kSearchReadyOmniboxName, + flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)}, - {"enable-bookmark-reorder", flag_descriptions::kReorderBookmarksName, - flag_descriptions::kReorderBookmarksDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kReorderBookmarks)}, + #endif // OS_ANDROID + {"enable-zero-copy", flag_descriptions::kZeroCopyName, + flag_descriptions::kZeroCopyDescription, kOsAll, 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 +++ b/chrome/browser/android/chrome_feature_list.cc @@ -164,6 +164,7 @@ const base::Feature* kFeaturesExposedToJava[] = { - &kReaderModeInCCT, &kReorderBookmarks, &kRevampedContextMenu, + &kScrollToExpandPaymentHandler, + &kSearchReadyOmniboxFeature, &kSearchEnginePromoExistingDevice, &kSearchEnginePromoNewDevice, &kServiceManagerForBackgroundPrefetch, -@@ -516,6 +517,9 @@ const base::Feature kReorderBookmarks{"ReorderBookmarks", - const base::Feature kRevampedContextMenu{"RevampedContextMenu", - base::FEATURE_DISABLED_BY_DEFAULT}; +@@ -516,6 +517,9 @@ const base::Feature kRevampedContextMenu{"RevampedContextMenu", + const base::Feature kScrollToExpandPaymentHandler{ + "ScrollToExpandPaymentHandler", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kSearchReadyOmniboxFeature{ + "SearchReadyOmnibox", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -79,8 +79,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 --- a/chrome/browser/android/chrome_feature_list.h +++ b/chrome/browser/android/chrome_feature_list.h -@@ -101,6 +101,7 @@ extern const base::Feature kReaderModeInCCT; - extern const base::Feature kRevampedContextMenu; +@@ -101,6 +101,7 @@ extern const base::Feature kRevampedContextMenu; + extern const base::Feature kScrollToExpandPaymentHandler; extern const base::Feature kSearchEnginePromoExistingDevice; extern const base::Feature kSearchEnginePromoNewDevice; +extern const base::Feature kSearchReadyOmniboxFeature; @@ -90,22 +90,22 @@ diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/andro diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1626,6 +1626,11 @@ +@@ -1647,6 +1647,11 @@ + "owners": [ "ginko", "newcomer" ], "expiry_milestone": 78 }, - { ++ { + "name": "enable-search-ready-omnibox", + "owners": [ "mdjones" ], + "expiry_milestone": -1 + }, -+ { + { "name": "enable-send-tab-to-self", "owners": [ "//components/send_tab_to_self/OWNERS" ], - "expiry_milestone": 77 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2695,6 +2695,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] = +@@ -2764,6 +2764,11 @@ const char kSafeBrowsingUseLocalBlacklistsV2Description[] = "process to check the Safe Browsing reputation of URLs without calling " "into GmsCore for every URL."; @@ -120,7 +120,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 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1594,6 +1594,9 @@ extern const char kReaderModeInCCTDescription[]; +@@ -1626,6 +1626,9 @@ extern const char kReaderModeInCCTDescription[]; extern const char kSafeBrowsingUseLocalBlacklistsV2Name[]; extern const char kSafeBrowsingUseLocalBlacklistsV2Description[]; @@ -131,5 +131,5 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kSetMarketUrlForTestingDescription[]; -- -2.11.0 +2.17.1 diff --git a/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch b/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch index 66a5fe5d..ada62142 100644 --- a/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch +++ b/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch @@ -23,7 +23,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -417,7 +417,7 @@ const base::Feature kMediaDrmPreprovisioningAtStartup{ +@@ -453,7 +453,7 @@ const base::Feature kMediaDrmPreprovisioningAtStartup{ // Enables the Android Image Reader path for Video decoding(for AVDA and MCVD) const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput", @@ -33,5 +33,5 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc // Prevents using SurfaceLayer for videos. This is meant to be used by embedders // that cannot support SurfaceLayer at the moment. -- -2.11.0 +2.17.1 diff --git a/build/patches/Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch b/build/patches/Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch deleted file mode 100644 index 60224130..00000000 --- a/build/patches/Revert-Remove-UnifiedConsent-from-ChromeFeatureList.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Thu, 26 Sep 2019 00:00:43 +0200 -Subject: Revert "Remove UnifiedConsent from ChromeFeatureList" - -This reverts commit c513d4c926a42ba6cc5eccfd5e85ba64c38bf0c1. ---- - .../android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java -@@ -339,6 +339,7 @@ public abstract class ChromeFeatureList { - public static final String TRUSTED_WEB_ACTIVITY_NOTIFICATION_DELEGATION_ENROLMENT = - "TrustedWebActivityNotificationDelegationAutoEnrolment"; - public static final String VIDEO_PERSISTENCE = "VideoPersistence"; -+ public static final String UNIFIED_CONSENT = "UnifiedConsent"; - public static final String USAGE_STATS = "UsageStats"; - public static final String VR_BROWSING_FEEDBACK = "VrBrowsingFeedback"; - public static final String USER_ACTIVATION_V2 = "UserActivationV2"; --- -2.11.0 - diff --git a/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch b/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch index 0595ca4f..cd368074 100644 --- a/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch +++ b/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch @@ -8,74 +8,75 @@ This reverts commit c672a0683e89eba3554e2562156b3c8532136f21. Restore translations Restore contextual search preference toggle --- - .../android/java/res/xml/privacy_preferences.xml | 30 ++++ - .../preferences/privacy/PrivacyPreferences.java | 157 +++++++++++++++++++-- - .../preferences/sync/SyncPreferenceUtils.java | 5 +- - .../browser/sync/SyncNotificationController.java | 17 ++- - .../java/strings/android_chrome_strings.grd | 15 ++ - .../translations/android_chrome_strings_am.xtb | 19 ++- - .../translations/android_chrome_strings_ar.xtb | 19 ++- - .../translations/android_chrome_strings_bg.xtb | 19 ++- - .../translations/android_chrome_strings_bn.xtb | 19 ++- - .../translations/android_chrome_strings_ca.xtb | 19 ++- - .../translations/android_chrome_strings_cs.xtb | 19 ++- - .../translations/android_chrome_strings_da.xtb | 19 ++- - .../translations/android_chrome_strings_de.xtb | 19 ++- - .../translations/android_chrome_strings_el.xtb | 19 ++- - .../translations/android_chrome_strings_en-GB.xtb | 19 ++- - .../translations/android_chrome_strings_es-419.xtb | 19 ++- - .../translations/android_chrome_strings_es.xtb | 19 ++- - .../translations/android_chrome_strings_et.xtb | 19 ++- - .../translations/android_chrome_strings_fa.xtb | 19 ++- - .../translations/android_chrome_strings_fi.xtb | 19 ++- - .../translations/android_chrome_strings_fil.xtb | 19 ++- - .../translations/android_chrome_strings_fr.xtb | 19 ++- - .../translations/android_chrome_strings_gu.xtb | 19 ++- - .../translations/android_chrome_strings_hi.xtb | 19 ++- - .../translations/android_chrome_strings_hr.xtb | 19 ++- - .../translations/android_chrome_strings_hu.xtb | 19 ++- - .../translations/android_chrome_strings_id.xtb | 19 ++- - .../translations/android_chrome_strings_it.xtb | 19 ++- - .../translations/android_chrome_strings_iw.xtb | 19 ++- - .../translations/android_chrome_strings_ja.xtb | 19 ++- - .../translations/android_chrome_strings_kn.xtb | 19 ++- - .../translations/android_chrome_strings_ko.xtb | 19 ++- - .../translations/android_chrome_strings_lt.xtb | 19 ++- - .../translations/android_chrome_strings_lv.xtb | 19 ++- - .../translations/android_chrome_strings_ml.xtb | 19 ++- - .../translations/android_chrome_strings_mr.xtb | 19 ++- - .../translations/android_chrome_strings_ms.xtb | 19 ++- - .../translations/android_chrome_strings_nl.xtb | 19 ++- - .../translations/android_chrome_strings_no.xtb | 19 ++- - .../translations/android_chrome_strings_pl.xtb | 19 ++- - .../translations/android_chrome_strings_pt-BR.xtb | 19 ++- - .../translations/android_chrome_strings_pt-PT.xtb | 19 ++- - .../translations/android_chrome_strings_ro.xtb | 19 ++- - .../translations/android_chrome_strings_ru.xtb | 19 ++- - .../translations/android_chrome_strings_sk.xtb | 19 ++- - .../translations/android_chrome_strings_sl.xtb | 19 ++- - .../translations/android_chrome_strings_sr.xtb | 19 ++- - .../translations/android_chrome_strings_sv.xtb | 19 ++- - .../translations/android_chrome_strings_sw.xtb | 19 ++- - .../translations/android_chrome_strings_ta.xtb | 19 ++- - .../translations/android_chrome_strings_te.xtb | 19 ++- - .../translations/android_chrome_strings_th.xtb | 19 ++- - .../translations/android_chrome_strings_tr.xtb | 19 ++- - .../translations/android_chrome_strings_uk.xtb | 19 ++- - .../translations/android_chrome_strings_vi.xtb | 19 ++- - .../translations/android_chrome_strings_zh-CN.xtb | 19 ++- - .../translations/android_chrome_strings_zh-TW.xtb | 19 ++- - .../chromium/chrome/browser/sync/SyncTestRule.java | 9 +- - .../org/chromium/chrome/browser/sync/UkmTest.java | 50 ++++++- - 59 files changed, 1198 insertions(+), 73 deletions(-) + .../java/res/xml/privacy_preferences.xml | 30 ++++ + .../privacy/PrivacyPreferences.java | 159 ++++++++++++++++-- + .../preferences/sync/SyncPreferenceUtils.java | 5 +- + .../sync/SyncNotificationController.java | 17 +- + .../java/strings/android_chrome_strings.grd | 15 ++ + .../android_chrome_strings_am.xtb | 19 ++- + .../android_chrome_strings_ar.xtb | 19 ++- + .../android_chrome_strings_bg.xtb | 19 ++- + .../android_chrome_strings_bn.xtb | 19 ++- + .../android_chrome_strings_ca.xtb | 19 ++- + .../android_chrome_strings_cs.xtb | 19 ++- + .../android_chrome_strings_da.xtb | 19 ++- + .../android_chrome_strings_de.xtb | 19 ++- + .../android_chrome_strings_el.xtb | 19 ++- + .../android_chrome_strings_en-GB.xtb | 19 ++- + .../android_chrome_strings_es-419.xtb | 19 ++- + .../android_chrome_strings_es.xtb | 19 ++- + .../android_chrome_strings_et.xtb | 19 ++- + .../android_chrome_strings_fa.xtb | 19 ++- + .../android_chrome_strings_fi.xtb | 19 ++- + .../android_chrome_strings_fil.xtb | 19 ++- + .../android_chrome_strings_fr.xtb | 19 ++- + .../android_chrome_strings_gu.xtb | 19 ++- + .../android_chrome_strings_hi.xtb | 19 ++- + .../android_chrome_strings_hr.xtb | 19 ++- + .../android_chrome_strings_hu.xtb | 19 ++- + .../android_chrome_strings_id.xtb | 19 ++- + .../android_chrome_strings_it.xtb | 19 ++- + .../android_chrome_strings_iw.xtb | 19 ++- + .../android_chrome_strings_ja.xtb | 19 ++- + .../android_chrome_strings_kn.xtb | 19 ++- + .../android_chrome_strings_ko.xtb | 19 ++- + .../android_chrome_strings_lt.xtb | 19 ++- + .../android_chrome_strings_lv.xtb | 19 ++- + .../android_chrome_strings_ml.xtb | 19 ++- + .../android_chrome_strings_mr.xtb | 19 ++- + .../android_chrome_strings_ms.xtb | 19 ++- + .../android_chrome_strings_nl.xtb | 19 ++- + .../android_chrome_strings_no.xtb | 19 ++- + .../android_chrome_strings_pl.xtb | 19 ++- + .../android_chrome_strings_pt-BR.xtb | 19 ++- + .../android_chrome_strings_pt-PT.xtb | 19 ++- + .../android_chrome_strings_ro.xtb | 19 ++- + .../android_chrome_strings_ru.xtb | 19 ++- + .../android_chrome_strings_sk.xtb | 19 ++- + .../android_chrome_strings_sl.xtb | 19 ++- + .../android_chrome_strings_sr.xtb | 19 ++- + .../android_chrome_strings_sv.xtb | 19 ++- + .../android_chrome_strings_sw.xtb | 19 ++- + .../android_chrome_strings_ta.xtb | 19 ++- + .../android_chrome_strings_te.xtb | 19 ++- + .../android_chrome_strings_th.xtb | 19 ++- + .../android_chrome_strings_tr.xtb | 19 ++- + .../android_chrome_strings_uk.xtb | 19 ++- + .../android_chrome_strings_vi.xtb | 19 ++- + .../android_chrome_strings_zh-CN.xtb | 19 ++- + .../android_chrome_strings_zh-TW.xtb | 19 ++- + .../chrome/browser/sync/SyncTestRule.java | 9 +- + .../chromium/chrome/browser/sync/UkmTest.java | 50 +++++- + 59 files changed, 1200 insertions(+), 73 deletions(-) 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 +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -7,6 +7,24 @@ +@@ -6,6 +6,24 @@ + - -+ @@ -19,15 +37,27 @@ android:key="usage_stats_reporting" android:title="@string/usage_stats_setting_title" @@ -278,15 +278,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } return true; -@@ -99,9 +177,37 @@ public class PrivacyPreferences +@@ -98,6 +176,36 @@ public class PrivacyPreferences + */ public void updateSummaries() { PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); - + PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); + - CharSequence textOn = getActivity().getResources().getText(R.string.text_on); - CharSequence textOff = getActivity().getResources().getText(R.string.text_off); - ++ CharSequence textOn = getActivity().getResources().getText(R.string.text_on); ++ CharSequence textOff = getActivity().getResources().getText(R.string.text_off); ++ + CheckBoxPreference navigationErrorPref = (CheckBoxPreference) findPreference( + PREF_NAVIGATION_ERROR); + if (navigationErrorPref != null) { @@ -312,12 +312,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + if (safeBrowsingPref != null) { + safeBrowsingPref.setChecked(prefServiceBridge.isSafeBrowsingEnabled()); + } -+ + CheckBoxPreference canMakePaymentPref = (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT); - if (canMakePaymentPref != null) { -@@ -114,6 +220,19 @@ public class PrivacyPreferences - doNotTrackPref.setSummary(prefServiceBridge.isDoNotTrackEnabled() ? textOn : textOff); +@@ -112,6 +220,19 @@ public class PrivacyPreferences + prefServiceBridge.isDoNotTrackEnabled() ? R.string.text_on : R.string.text_off); } + Preference contextualPref = findPreference(PREF_CONTEXTUAL_SEARCH); @@ -336,7 +335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri Preference usageStatsPref = findPreference(PREF_USAGE_STATS); if (usageStatsPref != null) { if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { -@@ -138,6 +257,18 @@ public class PrivacyPreferences +@@ -136,6 +257,18 @@ public class PrivacyPreferences return preference -> { String key = preference.getKey(); PrefServiceBridge prefs = PrefServiceBridge.getInstance(); @@ -358,8 +357,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -119,7 +119,10 @@ public class SyncPreferenceUtils { - if (profileSyncService.isPassphraseRequiredForDecryption()) { +@@ -118,7 +118,10 @@ public class SyncPreferenceUtils { + if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { return res.getString(R.string.sync_need_passphrase); } - return context.getString(R.string.sync_and_services_summary_sync_on); @@ -373,10 +372,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -@@ -6,11 +6,13 @@ package org.chromium.chrome.browser.sync; - +@@ -7,11 +7,13 @@ package org.chromium.chrome.browser.sync; import android.content.Context; import android.content.Intent; + import android.os.Build; +import android.os.Bundle; import android.util.Log; @@ -387,7 +386,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotifi import org.chromium.chrome.browser.notifications.ChromeNotification; import org.chromium.chrome.browser.notifications.ChromeNotificationBuilder; import org.chromium.chrome.browser.notifications.NotificationBuilderFactory; -@@ -23,6 +25,7 @@ import org.chromium.chrome.browser.notifications.PendingIntentProvider; +@@ -24,6 +26,7 @@ import org.chromium.chrome.browser.notifications.PendingIntentProvider; import org.chromium.chrome.browser.notifications.channels.ChannelDefinitions; import org.chromium.chrome.browser.preferences.PreferencesLauncher; import org.chromium.chrome.browser.preferences.sync.SyncAndServicesPreferences; @@ -395,7 +394,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotifi import org.chromium.chrome.browser.sync.GoogleServiceAuthError.State; import org.chromium.chrome.browser.sync.ui.PassphraseActivity; import org.chromium.components.sync.AndroidSyncSettings; -@@ -145,9 +148,17 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC +@@ -154,9 +157,17 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC * @return the intent for opening the settings */ private Intent createSettingsIntent() { @@ -419,7 +418,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotifi 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 +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -728,6 +728,18 @@ CHAR-LIMIT guidelines: +@@ -711,6 +711,18 @@ CHAR-LIMIT guidelines: Privacy @@ -438,7 +437,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and Help improve Chrome security -@@ -1506,6 +1518,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1492,6 +1504,9 @@ Your Google account may have other forms of browsing history like searches and a Signed in to Google as @@ -451,7 +450,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and diff --git a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ ይህ ለሁሉም ጣቢያዎች ውሂብን ያጸዳል፣ የሚከተሉትን ጨምሮ፦ ሁሉንም ትሮች ይዝጉ አጠቃላይ @@ -478,7 +477,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_am. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ سيؤدي هذا إلى محو بيانات جميع المواقع، بما في ذلك: إغلاق جميع علامات التبويب عام @@ -505,7 +504,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ar. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ Това действие ще изчисти данните за всички сайтове, включително: Затваряне на всички раздели Общи @@ -532,7 +531,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bg. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb -@@ -1143,4 +1143,21 @@ +@@ -1117,4 +1117,21 @@ এটা সব সাইটের জন্য ডেটা সাফ করবে, এতে অন্তর্ভুক্ত আছে: সমস্ত ট্যাবগুলি বন্ধ করুন সাধারণ @@ -559,7 +558,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bn. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb -@@ -1141,4 +1141,21 @@ El lloc web NO obté accés a la càmera. Només tu pots veure les imatges de la +@@ -1115,4 +1115,21 @@ El lloc web NO obté accés a la càmera. Només tu pots veure les imatges de la S'esborraran les dades de tots els llocs web, com ara: Tanca totes les pestanyes General @@ -586,7 +585,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ca. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb -@@ -1141,4 +1141,21 @@ Web NEZÍSKÁ přístup k fotoaparátu. Fotky z fotoaparátu uvidíte pouze vy +@@ -1115,4 +1115,21 @@ Web NEZÍSKÁ přístup k fotoaparátu. Fotky z fotoaparátu uvidíte pouze vy Tímto vymažete data všech webů včetně těchto: Zavřít všechny karty Všeobecné @@ -613,7 +612,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_cs. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb -@@ -1141,4 +1141,21 @@ Websitet får IKKE adgang til kameraet. Kameraets billeder kan kun ses af dig.Denne handling rydder dataene for alle websites, herunder: Luk alle faner Generelt @@ -640,7 +639,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_da. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb -@@ -1141,4 +1141,21 @@ Die Website erhält KEINEN Zugriff auf die Kamera. Die Kamerabilder sind nur fü +@@ -1115,4 +1115,21 @@ Die Website erhält KEINEN Zugriff auf die Kamera. Die Kamerabilder sind nur fü Alle Daten für alle Websites werden gelöscht, darunter: Alle Tabs schließen Allgemein @@ -667,7 +666,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_de. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ Αυτή η ενέργεια θα εκκαθαρίσει τα δεδομένα για όλους τους ιστότοπους, όπως: Κλείσιμο όλων των καρτελών Γενικά @@ -694,7 +693,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_el. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb -@@ -1141,4 +1141,21 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -1115,4 +1115,21 @@ The site does NOT gain access to the camera. The camera images are only visible This will clear data for all sites, including: Close all tabs General @@ -721,7 +720,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_en- diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb -@@ -1141,4 +1141,21 @@ El sitio NO podrá acceder a la cámara. Solo tú podrás ver las imágenes de l +@@ -1115,4 +1115,21 @@ El sitio NO podrá acceder a la cámara. Solo tú podrás ver las imágenes de l Esta acción borrará los datos de todos los sitios, entre los que se incluyen: Cerrar todas las pestañas General @@ -748,7 +747,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es- diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb -@@ -1141,4 +1141,21 @@ El sitio web no obtendrá acceso a la cámara. Solo tú puedes ver las imágenes +@@ -1115,4 +1115,21 @@ El sitio web no obtendrá acceso a la cámara. Solo tú puedes ver las imágenes Se borrarán los datos de todos los sitios web, incluidos: Cerrar todas las pestañas General @@ -775,7 +774,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_et.xtb b/chrome/android/java/strings/translations/android_chrome_strings_et.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_et.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_et.xtb -@@ -1141,4 +1141,21 @@ Sait EI saa juurdepääsu kaamerale. Kaamera jäädvustatud pildid on nähtavad +@@ -1115,4 +1115,21 @@ Sait EI saa juurdepääsu kaamerale. Kaamera jäädvustatud pildid on nähtavad See kustutab kõikide saitide andmed, sealhulgas: Sule kõik vahelehed Üldine @@ -802,7 +801,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_et. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ با این کار داده‌های همه سایت‌ها پاک می‌شود، از جمله: بستن همه برگه‌ها موارد کلی @@ -829,7 +828,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fa. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb -@@ -1141,4 +1141,21 @@ Sivusto EI saa kameran käyttöoikeutta. Kamerakuvat näkyvät vain sinulle.Kaikkien sivustojen tiedot poistetaan, esimerkiksi: Sulje kaikki välilehdet Yleistä @@ -856,7 +855,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fi. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb -@@ -1141,4 +1141,21 @@ HINDI magkakaroon ng access sa camera ang site. Ikaw lang ang makakakita ng mga +@@ -1115,4 +1115,21 @@ HINDI magkakaroon ng access sa camera ang site. Ikaw lang ang makakakita ng mga Iki-clear nito ang data para sa lahat ng site, kabilang ang: Isara ang lahat ng tab Pangkalahatan @@ -883,7 +882,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fil diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb -@@ -1141,4 +1141,21 @@ En revanche, le site n'a PAS accès à la caméra. Vous seul pouvez voir les ima +@@ -1115,4 +1115,21 @@ En revanche, le site n'a PAS accès à la caméra. Vous seul pouvez voir les ima Cette action entraînera la suppression des données pour tous les sites, y compris : Fermer tous les onglets Général @@ -910,7 +909,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fr. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb -@@ -1141,4 +1141,21 @@ VR મોડમાં દાખલ થતા પહેલા ખાતરી ક +@@ -1115,4 +1115,21 @@ VR મોડમાં દાખલ થતા પહેલા ખાતરી ક આ બધી સાઇટ્સ પરથી ડેટા સાફ કરશે, આ સહિત: બધા ટેબ્સ બંધ કરો સામાન્ય @@ -937,7 +936,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_gu. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ इससे इन सभी साइटों का डेटा साफ़ हो जाएगा: सभी टैब बंद करें सामान्य @@ -964,7 +963,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hi. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb -@@ -1141,4 +1141,21 @@ Web-lokacija NE dobiva pristup fotoaparatu. Slike fotoaparata možete vidjeti sa +@@ -1115,4 +1115,21 @@ Web-lokacija NE dobiva pristup fotoaparatu. Slike fotoaparata možete vidjeti sa Izbrisat će se podaci za sve web-lokacije, uključujući: Zatvori sve kartice Općenito @@ -991,7 +990,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hr. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb -@@ -1141,4 +1141,21 @@ A webhely NEM kap hozzáférést a kamerához. A kamera képét csak Ön láthat +@@ -1115,4 +1115,21 @@ A webhely NEM kap hozzáférést a kamerához. A kamera képét csak Ön láthat Ezzel törli az összes webhely adatait, beleértve a következőket: Az összes lap bezárása Általános @@ -1018,7 +1017,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hu. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb -@@ -1141,4 +1141,21 @@ Situs TIDAK mendapatkan akses ke kamera. Gambar kamera hanya dapat dilihat oleh +@@ -1115,4 +1115,21 @@ Situs TIDAK mendapatkan akses ke kamera. Gambar kamera hanya dapat dilihat oleh Tindakan ini akan menghapus data untuk semua situs, termasuk: Tutup semua tab Umum @@ -1045,7 +1044,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_id. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb -@@ -1141,4 +1141,21 @@ Il sito NON ottiene l'accesso alla videocamera. Le immagini della videocamera so +@@ -1115,4 +1115,21 @@ Il sito NON ottiene l'accesso alla videocamera. Le immagini della videocamera so Questa operazione cancellerà i dati di tutti i siti, inclusi: Chiudi tutte le schede Generali @@ -1072,7 +1071,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_it. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ פעולה זו תמחק נתונים של כל האתרים, כולל: סגור את כל הכרטיסיות כללי @@ -1099,7 +1098,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_iw. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb -@@ -1141,4 +1141,21 @@ VR を開始する前に、信頼できるサイトかどうかを確認して +@@ -1115,4 +1115,21 @@ VR を開始する前に、信頼できるサイトかどうかを確認して この操作を行うと、次を含むすべてのサイトのデータが削除されます。 すべてのタブを閉じる 全般 @@ -1126,7 +1125,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ja. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb -@@ -1142,4 +1142,21 @@ VR ಗೆ ಪ್ರವೇಶಿಸುವ ಮೊದಲು ನೀವು ಈ ವೆ +@@ -1116,4 +1116,21 @@ VR ಗೆ ಪ್ರವೇಶಿಸುವ ಮೊದಲು ನೀವು ಈ ವೆ ಇದು ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಿಗೆ ಡೇಟಾ ತೆರವುಗೊಳಿಸುತ್ತದೆ, ಇವುಗಳನ್ನೂ ಒಳಗೊಂಡು: ಎಲ್ಲ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ ಸಾಮಾನ್ಯ @@ -1153,7 +1152,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_kn. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb -@@ -1141,4 +1141,21 @@ VR로 들어가기 전에 이 사이트를 신뢰할 수 있는지 확인하세 +@@ -1115,4 +1115,21 @@ VR로 들어가기 전에 이 사이트를 신뢰할 수 있는지 확인하세 다음을 포함한 모든 사이트의 데이터가 삭제됩니다. 탭 모두 닫기 일반 @@ -1180,7 +1179,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ko. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb -@@ -1141,4 +1141,21 @@ Svetainė NETURI prieigos prie fotoaparato. Fotoaparato vaizdai matomi tik jums. +@@ -1115,4 +1115,21 @@ Svetainė NETURI prieigos prie fotoaparato. Fotoaparato vaizdai matomi tik jums. Bus išvalyti visų svetainių duomenys, įskaitant: Uždar. visų skirtukų lapus Bendra @@ -1207,7 +1206,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lt. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb -@@ -1141,4 +1141,21 @@ Vietnei NAV piekļuves kamerai. Kameras attēli ir redzami tikai jums.Tādējādi tiks dzēsti dati no visām vietnēm, tostarp: Aizvērt visas cilnes Vispārīgi @@ -1234,7 +1233,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lv. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb -@@ -1141,4 +1141,21 @@ VR-ൽ പ്രവേശിക്കുന്നതിന് മുമ്പ് +@@ -1115,4 +1115,21 @@ VR-ൽ പ്രവേശിക്കുന്നതിന് മുമ്പ് ഇത് ഇനിപ്പറയുന്നവ ഉൾപ്പെടെയുള്ള എല്ലാ സൈറ്റുകളുടെയും വിവരങ്ങൾ മായ്‌ക്കുന്നതിനിടയാക്കും: എല്ലാ ടാബുകളും അടയ്‌ക്കുക പൊതുവായ @@ -1261,7 +1260,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ml. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb -@@ -1141,4 +1141,21 @@ VR मध्ये एंटर करण्यापूर्वी तुम +@@ -1115,4 +1115,21 @@ VR मध्ये एंटर करण्यापूर्वी तुम हे यासह सर्व साइटसाठी डेटा साफ करेल: सर्व टॅब बंद करा सामान्य @@ -1288,7 +1287,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_mr. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb -@@ -1141,4 +1141,21 @@ Tapak TIDAK memperoleh akses kepada kamera. Hanya anda dapat melihat imej kamera +@@ -1115,4 +1115,21 @@ Tapak TIDAK memperoleh akses kepada kamera. Hanya anda dapat melihat imej kamera Ini akan memadamkan data untuk semua tapak web, termasuk: Tutup semua tab Umum @@ -1315,7 +1314,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ms. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb -@@ -1141,4 +1141,21 @@ De site krijgt GEEN toegang tot de camera. De camerabeelden zijn alleen zichtbaa +@@ -1115,4 +1115,21 @@ De site krijgt GEEN toegang tot de camera. De camerabeelden zijn alleen zichtbaa Hiermee worden de gegevens voor alle sites gewist, inclusief: Alle tabbladen sluiten Algemeen @@ -1342,7 +1341,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_nl. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb -@@ -1141,4 +1141,21 @@ Nettstedet får IKKE tilgang til kameraet. Kamerabildene er kun synlige for deg. +@@ -1115,4 +1115,21 @@ Nettstedet får IKKE tilgang til kameraet. Kamerabildene er kun synlige for deg. Dette fører til at dataene for alle nettsteder slettes, deriblant disse: Lukk alle faner Generelt @@ -1369,7 +1368,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_no. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb -@@ -1141,4 +1141,21 @@ Witryna NIE uzyskuje dostępu do kamery. Tylko Ty widzisz rejestrowany obraz.Spowoduje to usunięcie danych wszystkich witryn, w tym: Zamknij wszystkie karty Ogólne @@ -1396,7 +1395,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pl. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb -@@ -1142,4 +1142,21 @@ O site NÃO terá acesso à câmera. As imagens da câmera são visíveis apenas +@@ -1116,4 +1116,21 @@ O site NÃO terá acesso à câmera. As imagens da câmera são visíveis apenas Essa ação limpará os dados de todos os sites, incluindo: Fechar todas as guias Geral @@ -1423,7 +1422,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt- diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb -@@ -1141,4 +1141,21 @@ O site NÃO fica com acesso à câmara. As imagens da câmara estão visíveis a +@@ -1115,4 +1115,21 @@ O site NÃO fica com acesso à câmara. As imagens da câmara estão visíveis a Esta ação limpa os dados de todos os sites, incluindo: Fechar todos os separadores Geral @@ -1450,7 +1449,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt- diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb -@@ -1141,4 +1141,21 @@ Acest site NU primește acces la cameră. Imaginile camerei sunt vizibile doar p +@@ -1115,4 +1115,21 @@ Acest site NU primește acces la cameră. Imaginile camerei sunt vizibile doar p Astfel, se vor șterge datele pentru toate site-urile, inclusiv: Închide toate filele General @@ -1477,7 +1476,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ro. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ Будут удалены данные всех сайтов, в том числе: Закрыть все вкладки Общие @@ -1504,7 +1503,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ru. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb -@@ -1141,4 +1141,21 @@ Web NEZÍSKA prístup k fotoaparátu. Obrázky fotoaparátu sú viditeľné iba +@@ -1115,4 +1115,21 @@ Web NEZÍSKA prístup k fotoaparátu. Obrázky fotoaparátu sú viditeľné iba Vymažete dáta všetkých webov vrátane týchto: Zavrieť všetky karty Všeobecné @@ -1531,7 +1530,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sk. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb -@@ -1141,4 +1141,21 @@ Spletno mesto NIMA dostopa do kamere. Posnetki kamere so vidni samo vam.S tem bodo izbrisani podatki za vsa spletna mesta, vključno s temi: Zapri vse zavihke Splošno @@ -1558,7 +1557,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sl. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb -@@ -1141,4 +1141,21 @@ Google налог можда има друге облике историје п +@@ -1115,4 +1115,21 @@ Google налог можда има друге облике историје п Овим бришете податке за све сајтове, укључујући: Затвори све картице Опште @@ -1585,7 +1584,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sr. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb -@@ -1141,4 +1141,21 @@ Webbplatsen får INTE tillgång till kameran. Bara du kan se kamerabilderna.Åtgärden raderar data för alla webbplatser, inklusive: Stäng alla flikar Allmänt @@ -1612,7 +1611,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sv. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb -@@ -1139,4 +1139,21 @@ Tovuti hii HAIPATI idhini ya kufikia kamera. Ni wewe pekee utaona picha hizi za +@@ -1113,4 +1113,21 @@ Tovuti hii HAIPATI idhini ya kufikia kamera. Ni wewe pekee utaona picha hizi za Hatua hii itafuta data ya tovuti zote, ikiwa ni pamoja na: Funga vichupo vyote Jumla @@ -1639,7 +1638,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sw. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb -@@ -1141,4 +1141,21 @@ VRரைத் தொடங்குவதற்கு முன் இது +@@ -1115,4 +1115,21 @@ VRரைத் தொடங்குவதற்கு முன் இது இதனால் எல்லா தளங்களுக்கான தரவும் அழிக்கப்படும், இதில் அடங்குபவை: எல்லா தாவல்களையும் மூடு பொது @@ -1666,7 +1665,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ta. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_te.xtb b/chrome/android/java/strings/translations/android_chrome_strings_te.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_te.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_te.xtb -@@ -1141,4 +1141,21 @@ VRలోకి ప్రవేశించడానికి ముందు, +@@ -1115,4 +1115,21 @@ VRలోకి ప్రవేశించడానికి ముందు, ఇది వీటితో సహా అన్ని సైట్‌ల డేటాను తీసివేస్తుంది: అన్ని ట్యాబ్‌లను మూసివేయి సాధారణం @@ -1693,7 +1692,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_te. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ การดำเนินการนี้จะล้างข้อมูลสำหรับทุกเว็บไซต์ รวมถึง ปิดแท็บทั้งหมด ทั่วไป @@ -1720,7 +1719,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_th. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb -@@ -1141,4 +1141,21 @@ Site kameraya ERİŞMEZ. Kamera görüntülerini yalnızca siz görebilirsiniz.< +@@ -1115,4 +1115,21 @@ Site kameraya ERİŞMEZ. Kamera görüntülerini yalnızca siz görebilirsiniz.< Bu işlem, aşağıdakiler de dahil olmak üzere tüm sitelere ilişkin verileri temizleyecek: Tüm sekmeleri kapat Genel @@ -1747,7 +1746,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_tr. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ Буде видалено дані всіх сайтів, зокрема: Закрити всі вкладки Загальне @@ -1774,7 +1773,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_uk. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb -@@ -1141,4 +1141,21 @@ Trang web này KHÔNG có quyền truy cập vào máy ảnh. Chỉ bạn mới +@@ -1115,4 +1115,21 @@ Trang web này KHÔNG có quyền truy cập vào máy ảnh. Chỉ bạn mới Thao tác này sẽ xóa dữ liệu của tất cả các trang web, bao gồm: Đóng tất cả các tab Chung @@ -1801,7 +1800,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_vi. diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ 这会清除所有网站的数据,包括: 关闭所有标签页 常规 @@ -1828,7 +1827,7 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh- diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb --- a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb -@@ -1141,4 +1141,21 @@ +@@ -1115,4 +1115,21 @@ 這會清除所有網站的資料,包括: 關閉所有分頁 一般 @@ -1855,18 +1854,18 @@ diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh- diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java --- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java -@@ -16,6 +16,7 @@ import org.junit.runners.model.Statement; - import org.chromium.chrome.browser.ChromeActivity; +@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.ChromeFeatureList; + import org.chromium.chrome.browser.SyncFirstSetupCompleteSource; import org.chromium.chrome.browser.autofill.PersonalDataManager; import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard; +import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator; import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory; import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerator; -@@ -156,8 +157,12 @@ public class SyncTestRule extends ChromeActivityTestRule { - public void signIn(final Account account) { - TestThreadUtils.runOnUiThreadBlocking(() -> { - IdentityServicesProvider.getSigninManager().signIn(account, null, null); +@@ -174,8 +175,12 @@ public class SyncTestRule extends ChromeActivityTestRule { + Assert.fail("Sign-in was aborted"); + } + }); - // Outside of tests, URL-keyed anonymized data collection is enabled by sign-in UI. - UnifiedConsentServiceBridge.setUrlKeyedAnonymizedDataCollectionEnabled(true); + if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { @@ -1895,10 +1894,12 @@ diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/UkmTe import org.chromium.components.sync.ModelType; import org.chromium.content_public.browser.test.util.JavaScriptUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils; -@@ -134,6 +137,33 @@ public class UkmTest { +@@ -132,6 +135,33 @@ public class UkmTest { + Assert.assertTrue("UKM Enabled:", isUkmEnabled(normalTab)); + } - @Test - @SmallTest ++ @Test ++ @SmallTest + @DisableFeatures(ChromeFeatureList.UNIFIED_CONSENT) + public void secondaryPassphraseCheck() throws Exception { + // Keep in sync with UkmBrowserTest.SecondaryPassphraseCheck in @@ -1924,11 +1925,9 @@ diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/UkmTe + Assert.assertNotEquals("Client id:", clientId, getUkmClientId(normalTab)); + } + -+ @Test -+ @SmallTest + @Test + @SmallTest public void singleSyncSignoutCheck() throws Exception { - // Keep in sync with UkmBrowserTest.SingleSyncSignoutCheck in - // chrome/browser/metrics/ukm_browsertest.cc. @@ -178,7 +208,23 @@ public class UkmTest { // Disable Sync for history. mSyncTestRule.disableDataType(ModelType.TYPED_URLS); @@ -1956,5 +1955,5 @@ diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/UkmTe } } -- -2.11.0 +2.17.1 diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 00d6ea4e..5b77ee85 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -13,7 +13,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. 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 -@@ -1927,6 +1927,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1997,6 +1997,10 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE(switches::kHostedAppQuitNotification)}, #endif // OS_MACOSX #if defined(OS_ANDROID) @@ -27,22 +27,22 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -681,6 +681,11 @@ - "expiry_milestone": 83 +@@ -712,6 +712,11 @@ + "quickoffice-chrome-eng@google.com" ], + "expiry_milestone": 88 }, - { ++ { + "name": "disable-pull-to-refresh-effect", + // "owners": [ "your-team" ], + "expiry_milestone": -1 + }, -+ { + { // See https://crbug.com/882238. "name": "disable-pushstate-throttle", - "owners": [ "arthursonzogni@ch40m1um.qjz9zk", "palmer@ch40m1um.qjz9zk" ], diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2679,6 +2679,10 @@ extern const char kProcessSharingWithStrictSiteInstancesDescription[] = +@@ -2748,6 +2748,10 @@ extern const char kProcessSharingWithStrictSiteInstancesDescription[] = "separated like strict site isolation, but process selection puts multiple " "site instances in a single process."; @@ -56,7 +56,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 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1583,6 +1583,9 @@ extern const char kProcessSharingWithDefaultSiteInstancesDescription[]; +@@ -1615,6 +1615,9 @@ extern const char kProcessSharingWithDefaultSiteInstancesDescription[]; extern const char kProcessSharingWithStrictSiteInstancesName[]; extern const char kProcessSharingWithStrictSiteInstancesDescription[]; @@ -67,5 +67,5 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kReaderModeHeuristicsDescription[]; extern const char kReaderModeHeuristicsMarkup[]; -- -2.11.0 +2.17.1 diff --git a/build/patches/Skip-the-first-run-and-metrics.patch b/build/patches/Skip-the-first-run-and-metrics.patch index 963cf574..14d8a5af 100644 --- a/build/patches/Skip-the-first-run-and-metrics.patch +++ b/build/patches/Skip-the-first-run-and-metrics.patch @@ -3,9 +3,9 @@ Date: Sun, 26 Nov 2017 22:51:43 +0100 Subject: Skip the first run and metrics --- - .../chromium/chrome/browser/firstrun/FirstRunStatus.java | 8 ++++---- - .../chromium/chrome/browser/firstrun/FirstRunUtils.java | 16 ++++++---------- - .../browser/firstrun/ToSAndUMAFirstRunFragment.java | 6 ++++-- + .../chrome/browser/firstrun/FirstRunStatus.java | 8 ++++---- + .../chrome/browser/firstrun/FirstRunUtils.java | 16 ++++++---------- + .../firstrun/ToSAndUMAFirstRunFragment.java | 6 ++++-- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java @@ -30,7 +30,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/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java -@@ -28,16 +28,12 @@ public class FirstRunUtils { +@@ -37,16 +37,12 @@ public class FirstRunUtils { // - checkAnyUserHasSeenToS() may be true which needs to sync its state to the prefs. boolean javaPrefValue = javaPrefs.getBoolean(CACHED_TOS_ACCEPTED_PREF, false); boolean nativePrefValue = prefsBridge.isFirstRunEulaAccepted(); @@ -78,5 +78,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd Resources resources = getResources(); -- -2.11.0 +2.17.1 diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index 96d2d32d..57c8fef2 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/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 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -273,16 +273,12 @@ config("compiler") { +@@ -288,16 +288,12 @@ config("compiler") { cflags += [ "-fstack-protector" ] } } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { @@ -35,5 +35,5 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn } -- -2.11.0 +2.17.1 diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch new file mode 100644 index 00000000..723729e0 --- /dev/null +++ b/build/patches/Unified-consent-miscellanous-backport-fixes.patch @@ -0,0 +1,95 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Wed, 18 Dec 2019 23:54:37 +0100 +Subject: Unified consent miscellanous backport fixes + +--- + .../privacy/PrivacyPreferences.java | 26 ------------------- + .../sync/SyncNotificationController.java | 12 +++------ + 2 files changed, 3 insertions(+), 35 deletions(-) + +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 ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java +@@ -10,7 +10,6 @@ import android.support.graphics.drawable.VectorDrawableCompat; + import android.support.v7.preference.CheckBoxPreference; + import android.support.v7.preference.Preference; + import android.support.v7.preference.PreferenceFragmentCompat; +-import android.support.v7.preference.PreferenceScreen; + import android.view.Menu; + import android.view.MenuInflater; + import android.view.MenuItem; +@@ -50,13 +49,10 @@ public class PrivacyPreferences + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { +- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); +- privacyPrefManager.migrateNetworkPredictionPreferences(); + PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); + getActivity().setTitle(R.string.prefs_privacy); + setHasOptionsMenu(true); + PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); +- PreferenceScreen preferenceScreen = getPreferenceScreen(); + + mManagedPreferenceDelegate = createManagedPreferenceDelegate(); + +@@ -70,27 +66,6 @@ public class PrivacyPreferences + networkPredictionPref.setOnPreferenceChangeListener(this); + networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); + +- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { +- // Remove preferences that were migrated to SyncAndServicesPreferences. +- preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); +- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); +- +- // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. +- networkPredictionPref.setTitle(R.string.preload_pages_title); +- networkPredictionPref.setSummary(R.string.preload_pages_summary); +- +- // Put networkPredictionPref after canMakePaymentPref by overriding order value. +- // However, calling setOrder doesn't change existing order if Preference has already +- // been added to PreferenceGroup. Remove and re-add it to work around this. +- // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch. +- preferenceScreen.removePreference(networkPredictionPref); +- networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); +- preferenceScreen.addPreference(networkPredictionPref); +- +- updateSummaries(); +- return; +- } +- + ChromeBaseCheckBoxPreference searchSuggestionsPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS); + searchSuggestionsPref.setOnPreferenceChangeListener(this); +@@ -135,7 +110,6 @@ public class PrivacyPreferences + */ + public void updateSummaries() { + PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); +- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); + + CharSequence textOn = getActivity().getResources().getText(R.string.text_on); + CharSequence textOff = getActivity().getResources().getText(R.string.text_off); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java +@@ -157,15 +157,9 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC + * @return the intent for opening the settings + */ + private Intent createSettingsIntent() { +- final String fragmentName; +- final Bundle fragmentArguments; +- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { +- fragmentName = SyncAndServicesPreferences.class.getName(); +- fragmentArguments = SyncAndServicesPreferences.createArguments(false); +- } else { +- fragmentName = AccountManagementFragment.class.getName(); +- fragmentArguments = null; +- } ++ final String fragmentName = AccountManagementFragment.class.getName(); ++ final Bundle fragmentArguments = null; ++ + return PreferencesLauncher.createIntentForSettingsPage( + ContextUtils.getApplicationContext(), fragmentName, fragmentArguments); + } +-- +2.17.1 + diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch index a9cd70f4..a43be137 100644 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ b/build/patches/Use-4-tile-rows-never-show-logo.patch @@ -3,17 +3,17 @@ Date: Wed, 21 Feb 2018 00:32:09 +0100 Subject: Use 4 tile rows, never show logo --- - .../java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 6 +++--- - .../browser/suggestions/mostvisited/MostVisitedSitesBridge.java | 2 +- - .../org/chromium/chrome/browser/suggestions/tile/SiteSection.java | 2 +- - chrome/browser/engagement/important_sites_util.cc | 2 +- - components/history/core/browser/top_sites_impl.h | 2 +- + .../org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 6 +++--- + .../suggestions/mostvisited/MostVisitedSitesBridge.java | 2 +- + .../chrome/browser/suggestions/tile/SiteSection.java | 2 +- + chrome/browser/engagement/important_sites_util.cc | 2 +- + components/history/core/browser/top_sites_impl.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -110,7 +110,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer +@@ -109,7 +109,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer /** Observer for overview mode. */ private EmptyOverviewModeObserver mOverviewObserver; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mInitialized; -@@ -538,7 +538,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer +@@ -523,7 +523,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer && mInitialized) { return; } @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; updateTileGridPadding(); -@@ -822,7 +822,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer +@@ -787,7 +787,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer } private static int getMaxTileRows() { @@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java -@@ -29,7 +29,7 @@ public class MostVisitedSitesBridge +@@ -24,7 +24,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if * the UI supports it, getting more can raise unexpected issues. */ @@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mos diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SiteSection.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SiteSection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SiteSection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SiteSection.java -@@ -115,7 +115,7 @@ public class SiteSection extends OptionalLeaf implements TileGroup.Observer { +@@ -116,7 +116,7 @@ public class SiteSection extends OptionalLeaf implements TileGroup.Observer { ExploreSitesBridge.getVariation())) { return 1; } @@ -89,5 +89,5 @@ diff --git a/components/history/core/browser/top_sites_impl.h b/components/histo TopSitesImpl(PrefService* pref_service, HistoryService* history_service, -- -2.11.0 +2.17.1 diff --git a/build/patches/Use-64-bit-WebView-processes.patch b/build/patches/Use-64-bit-WebView-processes.patch index 83af4af0..866c9f8d 100644 --- a/build/patches/Use-64-bit-WebView-processes.patch +++ b/build/patches/Use-64-bit-WebView-processes.patch @@ -34,5 +34,5 @@ diff --git a/android_webview/apk/java/AndroidManifest.xml b/android_webview/apk/ {# This part is shared between stand-alone WebView and Monochrome #} {% macro common(manifest_package, webview_lib) %} -- -2.11.0 +2.17.1 diff --git a/build/patches/Use-dummy-DFM-installer.patch b/build/patches/Use-dummy-DFM-installer.patch new file mode 100644 index 00000000..36c9a71d --- /dev/null +++ b/build/patches/Use-dummy-DFM-installer.patch @@ -0,0 +1,546 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sun, 15 Dec 2019 19:40:37 +0100 +Subject: Use dummy DFM installer + +--- + .../chrome/browser/ChromeApplication.java | 4 -- + components/module_installer/android/BUILD.gn | 2 - + .../module_installer/engine/FakeEngine.java | 16 +----- + .../engine/SplitCompatEngine.java | 49 ++++++++++--------- + .../engine/SplitCompatEngineFacade.java | 22 ++------- + .../module_installer/logger/Logger.java | 16 ++---- + .../logger/PlayCoreLogger.java | 36 ++------------ + .../logger/SplitAvailabilityLogger.java | 28 ----------- + .../logger/SplitInstallStatusLogger.java | 30 +----------- + .../module_installer/util/ModuleUtil.java | 5 -- + .../util/SplitCompatInitializer.java | 6 --- + 11 files changed, 39 insertions(+), 175 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java +@@ -121,10 +121,6 @@ public class ChromeApplication extends Application { + ChromeBackgroundTaskFactory.setAsDefault(); + } + +- // Write installed modules to crash keys. This needs to be done as early as possible so that +- // these values are set before any crashes are reported. +- ModuleUtil.updateCrashKeys(); +- + BuildInfo.setFirebaseAppId(FirebaseConfig.getFirebaseAppId()); + + if (!ContextUtils.isIsolatedProcess()) { +diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn +--- a/components/module_installer/android/BUILD.gn ++++ b/components/module_installer/android/BUILD.gn +@@ -19,12 +19,10 @@ android_library("module_installer_java") { + "java/src/org/chromium/components/module_installer/logger/Logger.java", + "java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java", + "java/src/org/chromium/components/module_installer/logger/SplitAvailabilityLogger.java", +- "java/src/org/chromium/components/module_installer/logger/SplitInstallFailureLogger.java", + "java/src/org/chromium/components/module_installer/logger/SplitInstallStatusLogger.java", + "java/src/org/chromium/components/module_installer/observer/ActivityObserver.java", + "java/src/org/chromium/components/module_installer/observer/ActivityObserverFacade.java", + "java/src/org/chromium/components/module_installer/observer/InstallerObserver.java", +- "java/src/org/chromium/components/module_installer/util/CrashKeyRecorder.java", + "java/src/org/chromium/components/module_installer/util/ModuleUtil.java", + "java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java", + "java/src/org/chromium/components/module_installer/util/Timer.java", +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java +@@ -7,9 +7,6 @@ package org.chromium.components.module_installer.engine; + import android.content.Context; + import android.content.pm.PackageManager; + +-import com.google.android.play.core.splitcompat.SplitCompat; +-import com.google.android.play.core.splitcompat.ingestion.Verifier; +- + import org.chromium.base.BuildInfo; + import org.chromium.base.ContextUtils; + import org.chromium.base.Log; +@@ -124,18 +121,7 @@ class FakeEngine extends SplitCompatEngine { + return false; + } + +- // Check that the module's signature matches Chrome's. +- try { +- Verifier verifier = new Verifier(context); +- if (!verifier.verifySplits()) { +- return false; +- } +- } catch (IOException | PackageManager.NameNotFoundException e) { +- return false; +- } +- +- // Tell SplitCompat to do a full emulation of the module. +- return SplitCompat.fullInstall(context); ++ return false; + } + + private File joinPaths(String... paths) { +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java +@@ -6,10 +6,10 @@ package org.chromium.components.module_installer.engine; + + import android.app.Activity; + +-import com.google.android.play.core.splitinstall.SplitInstallException; ++/*import com.google.android.play.core.splitinstall.SplitInstallException; + import com.google.android.play.core.splitinstall.SplitInstallRequest; + import com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener; +-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; ++import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus;*/ + + import org.chromium.base.ThreadUtils; + import org.chromium.base.VisibleForTesting; +@@ -26,41 +26,42 @@ import java.util.Set; + * Install engine that uses Play Core and SplitCompat to install modules. + */ + class SplitCompatEngine implements InstallEngine { +- private final SplitCompatEngineFacade mFacade; +- private final SplitInstallStateUpdatedListener mUpdateListener = getStatusUpdateListener(); ++/* private final SplitCompatEngineFacade mFacade; ++ private final SplitInstallStateUpdatedListener mUpdateListener = getStatusUpdateListener();*/ + private static final Map> sSessions = new HashMap<>(); + + public SplitCompatEngine() { +- this(new SplitCompatEngineFacade()); ++// this(new SplitCompatEngineFacade()); + } + +- public SplitCompatEngine(SplitCompatEngineFacade facade) { ++/* public SplitCompatEngine(SplitCompatEngineFacade facade) { + mFacade = facade; + mFacade.initApplicationContext(this); +- } ++ }*/ + + @Override + public void initActivity(Activity activity) { +- mFacade.installActivity(activity); ++// mFacade.installActivity(activity); + } + + @Override + public boolean isInstalled(String moduleName) { +- Set installedModules = mFacade.getSplitManager().getInstalledModules(); +- return installedModules.contains(moduleName); ++// Set installedModules = mFacade.getSplitManager().getInstalledModules(); ++// return installedModules.contains(moduleName); ++ return false; + } + + @Override + public void installDeferred(String moduleName) { +- mFacade.getSplitManager().deferredInstall(Collections.singletonList(moduleName)); +- mFacade.getLogger().logRequestDeferredStart(moduleName); ++// mFacade.getSplitManager().deferredInstall(Collections.singletonList(moduleName)); ++// mFacade.getLogger().logRequestDeferredStart(moduleName); + } + + @Override + public void install(String moduleName, InstallListener listener) { + ThreadUtils.assertOnUiThread(); + +- if (sSessions.containsKey(moduleName)) { ++/* if (sSessions.containsKey(moduleName)) { + sSessions.get(moduleName).add(listener); + return; + } +@@ -85,10 +86,10 @@ class SplitCompatEngine implements InstallEngine { + notifyListeners(moduleName, false); + }); + +- mFacade.getLogger().logRequestStart(moduleName); ++ mFacade.getLogger().logRequestStart(moduleName); */ + } + +- private SplitInstallStateUpdatedListener getStatusUpdateListener() { ++/* private SplitInstallStateUpdatedListener getStatusUpdateListener() { + return state -> { + if (state.moduleNames().size() != 1) { + throw new UnsupportedOperationException("Only one module supported."); +@@ -109,35 +110,35 @@ class SplitCompatEngine implements InstallEngine { + + mFacade.getLogger().logStatus(moduleName, status); + }; +- } ++ }*/ + + private void notifyListeners(String moduleName, Boolean success) { +- for (InstallListener listener : sSessions.get(moduleName)) { ++/* for (InstallListener listener : sSessions.get(moduleName)) { + notifyListener(listener, success); +- } ++ }*/ + + sSessions.remove(moduleName); + unregisterUpdateListener(); + } + + protected void notifyListener(InstallListener listener, Boolean success) { +- if (success) { ++/* if (success) { + mFacade.notifyObservers(); +- } ++ }*/ + + listener.onComplete(success); + } + + private void registerUpdateListener() { +- if (sSessions.size() == 0) { ++/* if (sSessions.size() == 0) { + mFacade.getSplitManager().registerListener(mUpdateListener); +- } ++ }*/ + } + + private void unregisterUpdateListener() { +- if (sSessions.size() == 0) { ++/* if (sSessions.size() == 0) { + mFacade.getSplitManager().unregisterListener(mUpdateListener); +- } ++ }*/ + } + + @VisibleForTesting +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java +@@ -6,10 +6,10 @@ package org.chromium.components.module_installer.engine; + + import android.app.Activity; + +-import com.google.android.play.core.splitcompat.SplitCompat; ++/*import com.google.android.play.core.splitcompat.SplitCompat; + import com.google.android.play.core.splitinstall.SplitInstallManager; + import com.google.android.play.core.splitinstall.SplitInstallManagerFactory; +-import com.google.android.play.core.splitinstall.SplitInstallRequest; ++import com.google.android.play.core.splitinstall.SplitInstallRequest;*/ + + import org.chromium.base.ApplicationStatus; + import org.chromium.base.ContextUtils; +@@ -26,16 +26,13 @@ import org.chromium.components.module_installer.util.ModuleUtil; + class SplitCompatEngineFacade { + private InstallerObserver mObserver; + +- private final SplitInstallManager mSplitManager; + private final Logger mLogger; + + public SplitCompatEngineFacade() { +- this(SplitInstallManagerFactory.create(ContextUtils.getApplicationContext()), +- new PlayCoreLogger()); ++ this(new PlayCoreLogger()); + } + +- public SplitCompatEngineFacade(SplitInstallManager manager, Logger umaLogger) { +- mSplitManager = manager; ++ public SplitCompatEngineFacade(Logger umaLogger) { + mLogger = umaLogger; + } + +@@ -43,10 +40,6 @@ class SplitCompatEngineFacade { + return mLogger; + } + +- public SplitInstallManager getSplitManager() { +- return mSplitManager; +- } +- + public void initApplicationContext(InstallEngine engine) { + ModuleUtil.initApplication(); + +@@ -57,16 +50,9 @@ class SplitCompatEngineFacade { + } + + public void installActivity(Activity activity) { +- // Note that SplitCompat (install) needs to be called on the Application Context prior +- // to calling this method - this is guaranteed by the behavior of SplitCompatEngine. +- SplitCompat.installActivity(activity); + } + + public void notifyObservers() { + mObserver.onModuleInstalled(); + } +- +- public SplitInstallRequest createSplitInstallRequest(String moduleName) { +- return SplitInstallRequest.newBuilder().addModule(moduleName).build(); +- } + } +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/Logger.java +@@ -4,9 +4,6 @@ + + package org.chromium.components.module_installer.logger; + +-import com.google.android.play.core.splitinstall.model.SplitInstallErrorCode; +-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; +- + /** + * Logger for SplitCompat Engine. + */ +@@ -17,7 +14,7 @@ public interface Logger { + * @param moduleName The module name. + * @param errorCode The error code. + */ +- void logRequestFailure(String moduleName, @SplitInstallErrorCode int errorCode); ++ void logRequestFailure(String moduleName, int errorCode); + + /** + * Logs exceptions that happen during the installation process. +@@ -25,7 +22,7 @@ public interface Logger { + * @param moduleName The module name. + * @param errorCode The error code. + */ +- void logStatusFailure(String moduleName, @SplitInstallErrorCode int errorCode); ++ void logStatusFailure(String moduleName, int errorCode); + + /** + * Logs the status count and duration during a module installation process. +@@ -33,7 +30,7 @@ public interface Logger { + * @param moduleName The module name + * @param status The status code + */ +- void logStatus(String moduleName, @SplitInstallSessionStatus int status); ++ void logStatus(String moduleName, int status); + + /** + * Logs the request start time. +@@ -48,11 +45,4 @@ public interface Logger { + * @param moduleName The module name. + */ + void logRequestDeferredStart(String moduleName); +- +- /** +- * Gets the error code for an unknown error thrown at module request time. +- * +- * @return The error code. +- */ +- int getUnknownRequestErrorCode(); + } +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java +@@ -4,56 +4,35 @@ + + package org.chromium.components.module_installer.logger; + +-import com.google.android.play.core.splitinstall.model.SplitInstallErrorCode; +-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; +- + /** + * Concrete Logger for SplitCompat Installers (proxy to specific loggers). + */ + public class PlayCoreLogger implements Logger { +- private final SplitInstallFailureLogger mFailureLogger; + private final SplitInstallStatusLogger mStatusLogger; + private final SplitAvailabilityLogger mAvailabilityLogger; + + public PlayCoreLogger() { +- this(new SplitInstallFailureLogger(), new SplitInstallStatusLogger(), ++ this(new SplitInstallStatusLogger(), + new SplitAvailabilityLogger()); + } + +- public PlayCoreLogger(SplitInstallFailureLogger failureLogger, ++ public PlayCoreLogger( + SplitInstallStatusLogger statusLogger, SplitAvailabilityLogger availabilityLogger) { +- mFailureLogger = failureLogger; + mStatusLogger = statusLogger; + mAvailabilityLogger = availabilityLogger; + } + + @Override +- public void logRequestFailure(String moduleName, @SplitInstallErrorCode int errorCode) { +- mFailureLogger.logRequestFailure(moduleName, errorCode); ++ public void logRequestFailure(String moduleName, int errorCode) { + } + + @Override +- public void logStatusFailure(String moduleName, @SplitInstallErrorCode int errorCode) { +- mFailureLogger.logStatusFailure(moduleName, errorCode); ++ public void logStatusFailure(String moduleName, int errorCode) { + } + + @Override +- public void logStatus(String moduleName, @SplitInstallSessionStatus int status) { ++ public void logStatus(String moduleName, int status) { + mStatusLogger.logStatusChange(moduleName, status); +- +- if (status == SplitInstallSessionStatus.INSTALLED) { +- mAvailabilityLogger.storeModuleInstalled(moduleName, status); +- mAvailabilityLogger.logInstallTimes(moduleName); +- +- // Keep old behavior where we log a 'success' bit with all other failures. +- mFailureLogger.logStatusSuccess(moduleName); +- } else if (status == SplitInstallSessionStatus.CANCELED) { +- // Keep old behavior where we log a 'canceled' bit with all other failures. +- mFailureLogger.logStatusCanceled(moduleName); +- } else if (status == SplitInstallSessionStatus.DOWNLOADED) { +- // Keep old behavior where we log a 'no split compat' bit with all other failures. +- mFailureLogger.logStatusNoSplitCompat(moduleName); +- } + } + + @Override +@@ -67,9 +46,4 @@ public class PlayCoreLogger implements Logger { + mStatusLogger.logRequestDeferredStart(moduleName); + mAvailabilityLogger.storeRequestDeferredStart(moduleName); + } +- +- @Override +- public int getUnknownRequestErrorCode() { +- return SplitInstallFailureLogger.UNKNOWN_REQUEST_ERROR; +- } + } +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitAvailabilityLogger.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitAvailabilityLogger.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitAvailabilityLogger.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitAvailabilityLogger.java +@@ -9,10 +9,6 @@ import android.content.SharedPreferences; + import android.os.SystemClock; + import android.util.SparseLongArray; + +-import com.google.android.play.core.splitinstall.SplitInstallManager; +-import com.google.android.play.core.splitinstall.SplitInstallManagerFactory; +-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; +- + import org.chromium.base.ContextUtils; + import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample; + import org.chromium.base.metrics.RecordHistogram; +@@ -53,21 +49,6 @@ public class SplitAvailabilityLogger { + Set requestedModules = new HashSet<>(); + requestedModules.addAll(prefs.getStringSet(ONDEMAND_REQ_PREV, new HashSet<>())); + requestedModules.addAll(prefs.getStringSet(DEFERRED_REQ_PREV, new HashSet<>())); +- +- Context context = ContextUtils.getApplicationContext(); +- SplitInstallManager manager = SplitInstallManagerFactory.create(context); +- Set installedModules = manager.getInstalledModules(); +- +- for (String name : requestedModules) { +- recordAvailabilityStatus( +- name, installedModules.contains(name) ? INSTALLED_REQUESTED : REQUESTED); +- } +- +- for (String name : installedModules) { +- if (!requestedModules.contains(name)) { +- recordAvailabilityStatus(name, INSTALLED_UNREQUESTED); +- } +- } + } + + private static void recordAvailabilityStatus(String moduleName, int status) { +@@ -82,14 +63,6 @@ public class SplitAvailabilityLogger { + * @param moduleName The module name. + */ + public void logInstallTimes(String moduleName) { +- recordInstallTime(moduleName, "", SplitInstallSessionStatus.UNKNOWN, +- SplitInstallSessionStatus.INSTALLED); +- recordInstallTime(moduleName, ".PendingDownload", SplitInstallSessionStatus.UNKNOWN, +- SplitInstallSessionStatus.DOWNLOADING); +- recordInstallTime(moduleName, ".Download", SplitInstallSessionStatus.DOWNLOADING, +- SplitInstallSessionStatus.INSTALLING); +- recordInstallTime(moduleName, ".Installing", SplitInstallSessionStatus.INSTALLING, +- SplitInstallSessionStatus.INSTALLED); + } + + /** +@@ -169,7 +142,6 @@ public class SplitAvailabilityLogger { + + public InstallTimes(boolean isCached) { + mIsCached = isCached; +- mInstallTimes.put(SplitInstallSessionStatus.UNKNOWN, SystemClock.uptimeMillis()); + } + } + } +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitInstallStatusLogger.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitInstallStatusLogger.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitInstallStatusLogger.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitInstallStatusLogger.java +@@ -4,8 +4,6 @@ + + package org.chromium.components.module_installer.logger; + +-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; +- + import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample; + + class SplitInstallStatusLogger { +@@ -28,33 +26,7 @@ class SplitInstallStatusLogger { + // Keep this one at the end and increment appropriately when adding new status. + private static final int COUNT = 12; + +- private int getHistogramCode(@SplitInstallSessionStatus int code) { +- switch (code) { +- case SplitInstallSessionStatus.PENDING: +- return PENDING; +- case SplitInstallSessionStatus.DOWNLOADING: +- return DOWNLOADING; +- case SplitInstallSessionStatus.DOWNLOADED: +- return DOWNLOADED; +- case SplitInstallSessionStatus.INSTALLING: +- return INSTALLING; +- case SplitInstallSessionStatus.INSTALLED: +- return INSTALLED; +- case SplitInstallSessionStatus.FAILED: +- return FAILED; +- case SplitInstallSessionStatus.CANCELING: +- return CANCELING; +- case SplitInstallSessionStatus.CANCELED: +- return CANCELED; +- case SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION: +- return REQUIRES_USER_CONFIRMATION; +- } +- +- return UNKNOWN_CODE; +- } +- +- public void logStatusChange(String moduleName, @SplitInstallSessionStatus int status) { +- recordInstallStatus(moduleName, getHistogramCode(status)); ++ public void logStatusChange(String moduleName, int status) { + } + + public void logRequestStart(String moduleName) { +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java +@@ -41,11 +41,6 @@ public class ModuleUtil { + * Updates the CrashKey report containing modules currently present. + */ + public static void updateCrashKeys() { +- if (!BuildConfig.IS_BUNDLE) return; +- +- try (Timer timer = new Timer()) { +- CrashKeyRecorder.updateCrashKeys(); +- } + } + + /** +diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java +--- a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java ++++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java +@@ -4,8 +4,6 @@ + + package org.chromium.components.module_installer.util; + +-import com.google.android.play.core.splitcompat.SplitCompat; +- + import org.chromium.base.ContextUtils; + import org.chromium.base.StrictModeContext; + import org.chromium.base.ThreadUtils; +@@ -23,10 +21,6 @@ class SplitCompatInitializer { + return; + } + +- // SplitCompat.install may copy modules into Chrome's internal folder or clean them up. +- try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { +- SplitCompat.install(ContextUtils.getApplicationContext()); +- } + sIsInitialized = true; + } + +-- +2.17.1 + diff --git a/build/patches/User-Agent-anonymize.patch b/build/patches/User-Agent-anonymize.patch index 7b91240b..14825331 100644 --- a/build/patches/User-Agent-anonymize.patch +++ b/build/patches/User-Agent-anonymize.patch @@ -18,14 +18,14 @@ diff --git a/components/version_info/version_info.cc b/components/version_info/v std::string GetProductNameAndVersionForUserAgent() { - return "Chrome/" + GetVersionNumber(); + // latest stable version -+ return "Chrome/78.0.3904.108"; ++ return "Chrome/79.0.3945.79"; } std::string GetProductName() { diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc --- a/content/common/user_agent.cc +++ b/content/common/user_agent.cc -@@ -83,7 +83,7 @@ std::string BuildOSCpuInfo(bool include_android_build_number) { +@@ -87,7 +87,7 @@ std::string BuildOSCpuInfo(bool include_android_build_number) { architecture_token = "; Win64; IA64"; } #elif defined(OS_ANDROID) @@ -34,7 +34,7 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc std::string android_info_str = GetAndroidOSInfo(include_android_build_number); #elif defined(OS_POSIX) && !defined(OS_MACOSX) // Should work on any Posix system. -@@ -155,16 +155,9 @@ std::string BuildUserAgentFromProductAndExtraOSInfo( +@@ -159,16 +159,9 @@ std::string BuildUserAgentFromProductAndExtraOSInfo( } std::string GetAndroidOSInfo(bool include_android_build_number) { @@ -55,5 +55,5 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc // Append the build ID. if (base::FeatureList::IsEnabled(kAndroidUserAgentStringContainsBuildId) || -- -2.11.0 +2.17.1 diff --git a/build/patches/autofill-disable-autofill-download-manager.patch b/build/patches/autofill-disable-autofill-download-manager.patch index 25595cf6..cbb6f70c 100644 --- a/build/patches/autofill-disable-autofill-download-manager.patch +++ b/build/patches/autofill-disable-autofill-download-manager.patch @@ -4,14 +4,14 @@ Subject: autofill: disable autofill download manager Disables the autofill download manager (trk:158). --- - .../core/browser/autofill_download_manager.cc | 60 +++------------------- - .../autofill/core/browser/autofill_manager.cc | 18 ------- + .../core/browser/autofill_download_manager.cc | 60 +++---------------- + .../autofill/core/browser/autofill_manager.cc | 18 ------ 2 files changed, 7 insertions(+), 71 deletions(-) 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 +++ b/components/autofill/core/browser/autofill_download_manager.cc -@@ -63,7 +63,6 @@ constexpr std::pair kAutofillExperimentRanges[] = { +@@ -65,7 +65,6 @@ constexpr std::pair kAutofillExperimentRanges[] = { {3314445, 3314448}, {3314854, 3314883}, }; @@ -19,7 +19,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com const size_t kAutofillDownloadManagerMaxFormCacheSize = 16; const size_t kMaxFieldsPerQueryRequest = 100; -@@ -519,35 +518,6 @@ bool GetUploadPayloadForApi(const AutofillUploadContents& upload, +@@ -521,35 +520,6 @@ bool GetUploadPayloadForApi(const AutofillUploadContents& upload, return upload_request.SerializeToString(payload); } @@ -55,7 +55,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com // Gets HTTP body payload for API POST request. bool GetAPIBodyPayload(const std::string& payload, AutofillDownloadManager::RequestType type, -@@ -771,6 +741,7 @@ size_t AutofillDownloadManager::GetPayloadLength( +@@ -773,6 +743,7 @@ size_t AutofillDownloadManager::GetPayloadLength( std::tuple AutofillDownloadManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -63,7 +63,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com std::string method("POST"); std::string query_str; -@@ -793,35 +764,18 @@ std::tuple AutofillDownloadManager::GetRequestURLAndMethod( +@@ -795,35 +766,18 @@ std::tuple AutofillDownloadManager::GetRequestURLAndMethod( GURL url = autofill_server_url_ .Resolve(RequestTypeToString(request_data.request_type)) .ReplaceComponents(replacements); @@ -108,7 +108,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 --- a/components/autofill/core/browser/autofill_manager.cc +++ b/components/autofill/core/browser/autofill_manager.cc -@@ -180,19 +180,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder, +@@ -182,19 +182,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder, } } @@ -128,7 +128,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a ValuePatternsMetric GetValuePattern(const base::string16& value) { if (IsUPIVirtualPaymentAddress(value)) return ValuePatternsMetric::kUpiVpa; -@@ -1478,11 +1465,6 @@ AutofillManager::AutofillManager( +@@ -1501,11 +1488,6 @@ AutofillManager::AutofillManager( : std::make_unique( driver, client_, personal_data_, credit_card_form_event_logger_.get()); @@ -141,5 +141,5 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a } -- -2.11.0 +2.17.1 diff --git a/build/patches/battery_status_service-disable-more-privacy-nightmares.patch b/build/patches/battery_status_service-disable-more-privacy-nightmares.patch index 55a1a396..40fde786 100644 --- a/build/patches/battery_status_service-disable-more-privacy-nightmares.patch +++ b/build/patches/battery_status_service-disable-more-privacy-nightmares.patch @@ -41,5 +41,5 @@ diff --git a/services/device/battery/battery_status_service.cc b/services/device return callback_list_.Add(callback); } -- -2.11.0 +2.17.1 diff --git a/build/patches/browser-ui-disable-warning-about-missing-API-keys.patch b/build/patches/browser-ui-disable-warning-about-missing-API-keys.patch index 3275df71..a4f306d5 100644 --- a/build/patches/browser-ui-disable-warning-about-missing-API-keys.patch +++ b/build/patches/browser-ui-disable-warning-about-missing-API-keys.patch @@ -19,5 +19,5 @@ diff --git a/chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc b/chr std::unique_ptr( new GoogleApiKeysInfoBarDelegate()))); -- -2.11.0 +2.17.1 diff --git a/build/patches/build-remove-calling-untrusted-hooks.patch b/build/patches/build-remove-calling-untrusted-hooks.patch index 94a48c35..0a974a7f 100644 --- a/build/patches/build-remove-calling-untrusted-hooks.patch +++ b/build/patches/build-remove-calling-untrusted-hooks.patch @@ -5,7 +5,7 @@ Subject: build: remove calling untrusted hooks Avoid downloading untrusted executables and wasting time with a sysroot. --- - DEPS | 121 ++----------------------------------------------------------------- + DEPS | 121 ++--------------------------------------------------------- 1 file changed, 3 insertions(+), 118 deletions(-) diff --git a/DEPS b/DEPS @@ -31,10 +31,11 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden -@@ -3055,49 +3055,6 @@ hooks = [ +@@ -3141,49 +3141,6 @@ hooks = [ + 'sync', '--extract', ], }, - { +- { - 'name': 'sysroot_arm', - 'pattern': '.', - 'condition': 'checkout_linux and checkout_arm', @@ -77,11 +78,10 @@ diff --git a/DEPS b/DEPS - 'action': ['python', 'src/build/linux/sysroot_scripts/install-sysroot.py', - '--arch=x64'], - }, -- { + { # Case-insensitivity for the Win SDK. Must run before win_toolchain below. 'name': 'ciopfs_linux', - 'pattern': '.', -@@ -3124,43 +3081,6 @@ hooks = [ +@@ -3211,43 +3168,6 @@ hooks = [ 'condition': 'checkout_mac', 'action': ['python', 'src/build/mac_toolchain.py'], }, @@ -125,7 +125,7 @@ diff --git a/DEPS b/DEPS { # Mac doesn't use lld so it's not included in the default clang bundle # there. lld is however needed in win and Fuchsia cross builds, so -@@ -3220,18 +3140,6 @@ hooks = [ +@@ -3307,18 +3227,6 @@ hooks = [ '-s', 'src/buildtools/mac/clang-format.sha1', ], }, @@ -144,7 +144,7 @@ diff --git a/DEPS b/DEPS # Pull rc binaries using checked-in hashes. { 'name': 'rc_win', -@@ -3257,29 +3165,6 @@ hooks = [ +@@ -3344,29 +3252,6 @@ hooks = [ '-s', 'src/build/toolchain/win/rc/mac/rc.sha1', ], }, @@ -175,5 +175,5 @@ diff --git a/DEPS b/DEPS { 'name': 'orderfiles_win', -- -2.11.0 +2.17.1 diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index a011b5b3..8feaee9b 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -3,7 +3,7 @@ Date: Mon, 26 Aug 2019 17:54:28 -0400 Subject: disable AdsBlockedInfoBar --- - .../browser/subresource_filter/chrome_subresource_filter_client.cc | 5 ----- + .../subresource_filter/chrome_subresource_filter_client.cc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc @@ -22,5 +22,5 @@ diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client. TabSpecificContentSettings::FromWebContents(web_contents()); content_settings->OnContentBlocked(CONTENT_SETTINGS_TYPE_ADS); -- -2.11.0 +2.17.1 diff --git a/build/patches/disable-background-sync-by-default.patch b/build/patches/disable-background-sync-by-default.patch index 6542a252..a30e15f5 100644 --- a/build/patches/disable-background-sync-by-default.patch +++ b/build/patches/disable-background-sync-by-default.patch @@ -3,7 +3,7 @@ Date: Sun, 16 Jun 2019 21:57:26 -0400 Subject: disable background sync by default --- - components/content_settings/core/browser/content_settings_registry.cc | 2 +- + .../content_settings/core/browser/content_settings_registry.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc @@ -19,5 +19,5 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), WebsiteSettingsInfo::SINGLE_ORIGIN_ONLY_SCOPE, -- -2.11.0 +2.17.1 diff --git a/build/patches/disable-payment-support-by-default.patch b/build/patches/disable-payment-support-by-default.patch index cd610351..ec0a2a2f 100644 --- a/build/patches/disable-payment-support-by-default.patch +++ b/build/patches/disable-payment-support-by-default.patch @@ -19,5 +19,5 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor } -- -2.11.0 +2.17.1 diff --git a/build/patches/disable-sensors-access-site-setting-by-default.patch b/build/patches/disable-sensors-access-site-setting-by-default.patch index aecf0945..7e5cf030 100644 --- a/build/patches/disable-sensors-access-site-setting-by-default.patch +++ b/build/patches/disable-sensors-access-site-setting-by-default.patch @@ -3,13 +3,13 @@ Date: Sun, 16 Jun 2019 15:57:29 -0400 Subject: disable sensors access site setting by default --- - components/content_settings/core/browser/content_settings_registry.cc | 2 +- + .../content_settings/core/browser/content_settings_registry.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -412,7 +412,7 @@ void ContentSettingsRegistry::Init() { +@@ -413,7 +413,7 @@ void ContentSettingsRegistry::Init() { // TODO(crbug.com/904439): Update this to "SECURE_ONLY" once // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure // contexts. @@ -19,5 +19,5 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), WebsiteSettingsInfo::SINGLE_ORIGIN_ONLY_SCOPE, -- -2.11.0 +2.17.1 diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch index ce969d73..0ab39630 100644 --- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch +++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch @@ -32,5 +32,5 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc enum DnsResolveStatus { RESOLVE_STATUS_DNS_SUCCESS = 0, -- -2.11.0 +2.17.1 diff --git a/build/patches/first_run-deactivate-autoupdate-globally.patch b/build/patches/first_run-deactivate-autoupdate-globally.patch index 77ddf425..d40cc07f 100644 --- a/build/patches/first_run-deactivate-autoupdate-globally.patch +++ b/build/patches/first_run-deactivate-autoupdate-globally.patch @@ -26,5 +26,5 @@ diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser if (!extensions_enabled || chromeos::ProfileHelper::IsLockScreenAppProfile(profile_)) { -- -2.11.0 +2.17.1 diff --git a/build/patches/google-cloud-messaging-disable-experiment-status-check.patch b/build/patches/google-cloud-messaging-disable-experiment-status-check.patch index 45abd6b6..d73a9cc5 100644 --- a/build/patches/google-cloud-messaging-disable-experiment-status-check.patch +++ b/build/patches/google-cloud-messaging-disable-experiment-status-check.patch @@ -40,5 +40,5 @@ diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gc simple_url_loader_ = network::SimpleURLLoader::Create( std::move(resource_request), traffic_annotation); -- -2.11.0 +2.17.1 diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index a3607242..b71fbb8d 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -3,17 +3,17 @@ Date: Fri, 22 Jun 2018 17:06:15 +0200 Subject: kill Auth --- - .../chrome/browser/signin/SigninHelper.java | 22 +--------- - .../components/signin/AccountIdProvider.java | 9 +--- - .../signin/SystemAccountManagerDelegate.java | 50 ++-------------------- + .../chrome/browser/signin/SigninHelper.java | 22 +------- + .../components/signin/AccountIdProvider.java | 9 +--- + .../signin/SystemAccountManagerDelegate.java | 50 ++----------------- 3 files changed, 5 insertions(+), 76 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java -@@ -10,10 +10,6 @@ import android.content.Context; - import android.content.SharedPreferences; - import android.support.annotation.Nullable; +@@ -11,10 +11,6 @@ import android.content.SharedPreferences; + + import androidx.annotation.Nullable; -import com.google.android.gms.auth.AccountChangeEvent; -import com.google.android.gms.auth.GoogleAuthException; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHe import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.base.VisibleForTesting; -@@ -74,23 +70,7 @@ public class SigninHelper { +@@ -73,23 +69,7 @@ public class SigninHelper { @Override public List getAccountChangeEvents( Context context, int index, String accountName) { @@ -157,5 +157,5 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -- -2.11.0 +2.17.1 diff --git a/build/patches/kill-GCM.patch b/build/patches/kill-GCM.patch index cd685cc5..8e1798ac 100644 --- a/build/patches/kill-GCM.patch +++ b/build/patches/kill-GCM.patch @@ -3,31 +3,28 @@ Date: Fri, 22 Jun 2018 17:11:38 +0200 Subject: kill GCM --- - chrome/android/BUILD.gn | 1 - - chrome/android/chrome_java_sources.gni | 6 - - chrome/android/java/AndroidManifest.xml | 64 ------- - .../chrome/browser/BackgroundSyncLauncher.java | 97 ---------- - .../chrome/browser/ChromeBackgroundService.java | 1 - - .../ChromeBackgroundTaskFactory.java | 3 - - .../invalidation/InvalidationController.java | 8 - - .../browser/ntp/snippets/SnippetsLauncher.java | 44 ----- - .../browser/services/gcm/GCMBackgroundTask.java | 2 +- - .../gcm/InvalidationGcmUpstreamSender.java | 18 -- - components/background_task_scheduler/BUILD.gn | 1 - - .../BackgroundTaskSchedulerGcmNetworkManager.java | 206 +-------------------- - components/gcm_driver/android/BUILD.gn | 1 - - components/gcm_driver/instance_id/android/BUILD.gn | 1 - - .../gcm_driver/instance_id/InstanceIDBridge.java | 49 +---- - components/sync/android/BUILD.gn | 1 - - third_party/cacheinvalidation/BUILD.gn | 6 - - .../client/contrib/MultiplexingGcmListener.java | 91 +-------- - .../android2/channel/AndroidNetworkChannel.java | 6 +- - 19 files changed, 9 insertions(+), 597 deletions(-) + chrome/android/BUILD.gn | 1 - + chrome/android/chrome_java_sources.gni | 6 - + chrome/android/java/AndroidManifest.xml | 62 ------ + .../ChromeBackgroundTaskFactory.java | 3 - + .../ntp/snippets/SnippetsLauncher.java | 44 ---- + .../services/gcm/GCMBackgroundTask.java | 2 +- + .../gcm/InvalidationGcmUpstreamSender.java | 18 -- + components/background_task_scheduler/BUILD.gn | 1 - + ...kgroundTaskSchedulerGcmNetworkManager.java | 206 +----------------- + components/gcm_driver/android/BUILD.gn | 1 - + .../gcm_driver/instance_id/android/BUILD.gn | 1 - + .../instance_id/InstanceIDBridge.java | 49 +---- + components/sync/android/BUILD.gn | 1 - + third_party/cacheinvalidation/BUILD.gn | 6 - + .../contrib/MultiplexingGcmListener.java | 91 +------- + .../channel/AndroidNetworkChannel.java | 6 +- + 16 files changed, 9 insertions(+), 489 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -378,7 +378,6 @@ android_library("chrome_java") { +@@ -369,7 +369,6 @@ android_library("chrome_java") { "//third_party/android_deps:com_google_protobuf_protobuf_lite_java", "//third_party/android_deps:javax_inject_javax_inject_java", "//third_party/android_media:android_media_java", @@ -38,7 +35,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -20,7 +20,6 @@ chrome_java_sources = [ +@@ -17,7 +17,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/ChromeActivity.java", "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", "java/src/org/chromium/chrome/browser/ChromeApplication.java", @@ -46,7 +43,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -1424,11 +1423,6 @@ chrome_java_sources = [ +@@ -1438,11 +1437,6 @@ chrome_java_sources = [ "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/GoogleServicesManager.java", @@ -61,7 +58,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -78,22 +78,17 @@ by a child template that "extends" this file. +@@ -74,22 +74,17 @@ by a child template that "extends" this file. @@ -84,7 +81,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro {% block extra_uses_permissions %} -@@ -1068,49 +1063,8 @@ by a child template that "extends" this file. +@@ -1019,45 +1014,6 @@ by a child template that "extends" this file. android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" android:hardwareAccelerated="false" /> @@ -127,14 +124,10 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - - + -- - - @@ -159,152 +152,6 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java -@@ -8,10 +8,6 @@ import android.content.Context; - import android.content.SharedPreferences; - import android.os.StrictMode; - --import com.google.android.gms.gcm.GcmNetworkManager; --import com.google.android.gms.gcm.OneoffTask; --import com.google.android.gms.gcm.Task; -- - import org.chromium.base.ContextUtils; - import org.chromium.base.Log; - import org.chromium.base.VisibleForTesting; -@@ -37,8 +33,6 @@ public class BackgroundSyncLauncher { - // BackgroundSyncLauncherAndroid, if any. If it is non-null then the browser is running. - private static BackgroundSyncLauncher sInstance; - -- private GcmNetworkManager mScheduler; -- - /** - * 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 -@@ -123,30 +117,6 @@ public class BackgroundSyncLauncher { - @VisibleForTesting - @CalledByNative - protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) { -- mLaunchBrowserIfStoppedTask = new AsyncTask() { -- @Override -- protected Void doInBackground() { -- SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); -- prefs.edit() -- .putBoolean(PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE, shouldLaunch) -- .apply(); -- return null; -- } -- @Override -- protected void onPostExecute(Void params) { -- if (sGCMEnabled) { -- if (shouldLaunch) { -- RecordHistogram.recordBooleanHistogram( -- "BackgroundSync.LaunchTask.ScheduleSuccess", -- scheduleLaunchTask(mScheduler, minDelayMs)); -- } else { -- RecordHistogram.recordBooleanHistogram( -- "BackgroundSync.LaunchTask.CancelSuccess", -- removeScheduledTasks(mScheduler)); -- } -- } -- } -- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - - /** -@@ -158,7 +128,6 @@ public class BackgroundSyncLauncher { - } - - protected BackgroundSyncLauncher() { -- mScheduler = GcmNetworkManager.getInstance(ContextUtils.getApplicationContext()); - launchBrowserIfStopped(false, 0); - } - -@@ -187,72 +156,6 @@ public class BackgroundSyncLauncher { - return !sGCMEnabled; - } - -- private static boolean scheduleLaunchTask(GcmNetworkManager scheduler, long minDelayMs) { -- // Google Play Services may not be up to date, if the application was not installed through -- // the Play Store. In this case, scheduling the task will fail silently. -- final long minDelaySecs = minDelayMs / 1000; -- OneoffTask oneoff = new OneoffTask.Builder() -- .setService(ChromeBackgroundService.class) -- .setTag(TASK_TAG) -- // We have to set a non-zero execution window here -- .setExecutionWindow(minDelaySecs, minDelaySecs + 1) -- .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED) -- .setPersisted(true) -- .setUpdateCurrent(true) -- .build(); -- try { -- scheduler.schedule(oneoff); -- } catch (IllegalArgumentException e) { -- // Disable GCM for the remainder of this session. -- setGCMEnabled(false); -- // Return false so that the failure will be logged. -- return false; -- } -- return true; -- } -- -- private static boolean removeScheduledTasks(GcmNetworkManager scheduler) { -- // Third-party code causes broadcast to touch disk. http://crbug.com/614679 -- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); -- try { -- scheduler.cancelTask(TASK_TAG, ChromeBackgroundService.class); -- } catch (IllegalArgumentException e) { -- // This occurs when BackgroundSyncLauncherService is not found in the application -- // manifest. This should not happen in code that reaches here, but has been seen in -- // the past. See https://crbug.com/548314 -- // Disable GCM for the remainder of this session. -- setGCMEnabled(false); -- // Return false so that the failure will be logged. -- return false; -- } finally { -- StrictMode.setThreadPolicy(oldPolicy); -- } -- return true; -- } -- -- /** -- * Reschedule any required background sync tasks, if they have been removed due to an -- * application upgrade. -- * -- * This method checks the saved preferences, and reschedules the sync tasks as appropriate -- * to match the preferences. -- * This method is static so that it can be run without actually instantiating a -- * BackgroundSyncLauncher. -- */ -- protected static void rescheduleTasksOnUpgrade(final Context context) { -- final GcmNetworkManager scheduler = GcmNetworkManager.getInstance(context); -- BackgroundSyncLauncher.ShouldLaunchCallback callback = shouldLaunch -> { -- if (shouldLaunch) { -- // It's unclear what time the sync event was supposed to fire, so fire -- // without delay and let the browser reschedule if necessary. -- // TODO(iclelland): If this fails, report the failure via UMA (not now, -- // since the browser is not running, but on next startup.) -- scheduleLaunchTask(scheduler, 0); -- } -- }; -- BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback); -- } -- - @VisibleForTesting - static void setGCMEnabled(boolean enabled) { - sGCMEnabled = enabled; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java -@@ -113,7 +113,6 @@ public class ChromeBackgroundService extends GcmTaskService { - - @VisibleForTesting - protected void rescheduleBackgroundSyncTasksOnUpgrade() { -- BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this); - } - - private void handleSnippetsOnBrowserUpgraded() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/background_task_scheduler/ChromeBackgroundTaskFactory.java @@ -325,32 +172,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task case TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID: return new OfflineBackgroundTask(); case TaskIds.OFFLINE_PAGES_PREFETCH_JOB_ID: -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java -@@ -10,8 +10,6 @@ import android.os.Build; - import android.os.Handler; - import android.os.SystemClock; - --import com.google.ipc.invalidation.ticl.android2.channel.AndroidGcmController; -- - import org.chromium.base.ApplicationState; - import org.chromium.base.ApplicationStatus; - import org.chromium.base.ContextUtils; -@@ -193,13 +191,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat - * Registers for Google Cloud Messaging (GCM) for Invalidations. - */ - private void ensureGcmIsInitialized() { -- if (mGcmInitialized) return; - mGcmInitialized = true; -- PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> { -- boolean useGcmUpstream = true; -- AndroidGcmController.get(ContextUtils.getApplicationContext()) -- .initializeGcm(useGcmUpstream); -- }); - } - - @VisibleForTesting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java @@ -447,7 +268,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/Sn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java --- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java -@@ -41,7 +41,7 @@ public class GCMBackgroundTask implements BackgroundTask { +@@ -42,7 +42,7 @@ public class GCMBackgroundTask implements BackgroundTask { return false; } @@ -459,15 +280,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GC diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java --- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java -@@ -13,7 +13,6 @@ import android.support.annotation.MainThread; - import android.support.annotation.Nullable; - import android.util.Log; +@@ -14,7 +14,6 @@ import android.util.Log; + import androidx.annotation.MainThread; + import androidx.annotation.Nullable; -import com.google.android.gms.gcm.GoogleCloudMessaging; import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService; import org.chromium.base.ContextUtils; -@@ -26,9 +25,6 @@ import org.chromium.components.signin.OAuth2TokenService; +@@ -28,9 +27,6 @@ import org.chromium.components.signin.OAuth2TokenService; import org.chromium.components.sync.SyncConstants; import org.chromium.content_public.browser.UiThreadTaskTraits; @@ -477,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/In /** * Sends Upstream messages for Invalidations using GCM. */ -@@ -87,20 +83,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService { +@@ -92,20 +88,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) { @@ -512,9 +333,9 @@ diff --git a/components/background_task_scheduler/BUILD.gn b/components/backgrou diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java --- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java +++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java -@@ -8,14 +8,6 @@ import android.content.Context; - import android.os.Bundle; - import android.support.annotation.NonNull; +@@ -9,14 +9,6 @@ import android.os.Bundle; + + import androidx.annotation.NonNull; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; @@ -527,7 +348,7 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ import org.chromium.base.Log; import org.chromium.base.ThreadUtils; import org.chromium.base.VisibleForTesting; -@@ -42,212 +34,16 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule +@@ -43,212 +35,16 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule sClock = clock; } @@ -744,18 +565,18 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/ diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/android/BUILD.gn --- a/components/gcm_driver/android/BUILD.gn +++ b/components/gcm_driver/android/BUILD.gn -@@ -14,7 +14,6 @@ android_library("gcm_driver_java") { - deps = [ +@@ -15,7 +15,6 @@ android_library("gcm_driver_java") { "//base:base_java", + "//base:jni_java", "//content/public/android:content_java", - "//third_party/android_sdk:android_gcm_java", "//third_party/jsr-305:jsr_305_javalib", ] - + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn --- a/components/gcm_driver/instance_id/android/BUILD.gn +++ b/components/gcm_driver/instance_id/android/BUILD.gn -@@ -28,7 +28,6 @@ android_library("instance_id_driver_java") { +@@ -31,7 +31,6 @@ android_library("instance_id_driver_java") { java_files = [ "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java", @@ -766,7 +587,7 @@ diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java --- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java +++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java -@@ -28,7 +28,6 @@ public class InstanceIDBridge { +@@ -29,7 +29,6 @@ public class InstanceIDBridge { * Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be * initialized on a background thread. */ @@ -774,7 +595,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com private static boolean sBlockOnAsyncTasksForTesting; -@@ -73,7 +72,7 @@ public class InstanceIDBridge { +@@ -74,7 +73,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected String doBackgroundWork() { @@ -783,7 +604,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override protected void sendResultToNative(String id) { -@@ -88,7 +87,7 @@ public class InstanceIDBridge { +@@ -90,7 +89,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Long doBackgroundWork() { @@ -792,7 +613,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override protected void sendResultToNative(Long creationTime) { -@@ -113,21 +112,7 @@ public class InstanceIDBridge { +@@ -116,21 +115,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected String doBackgroundWork() { @@ -815,7 +636,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override protected void sendResultToNative(String token) { -@@ -143,21 +128,7 @@ public class InstanceIDBridge { +@@ -147,21 +132,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Boolean doBackgroundWork() { @@ -838,7 +659,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override protected void sendResultToNative(Boolean success) { -@@ -172,12 +143,7 @@ public class InstanceIDBridge { +@@ -177,12 +148,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Boolean doBackgroundWork() { @@ -852,7 +673,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override protected void sendResultToNative(Boolean success) { -@@ -216,11 +182,6 @@ public class InstanceIDBridge { +@@ -212,11 +178,6 @@ public class InstanceIDBridge { @Override @SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native. protected Result doInBackground() { @@ -867,10 +688,10 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn --- a/components/sync/android/BUILD.gn +++ b/components/sync/android/BUILD.gn -@@ -11,7 +11,6 @@ android_library("sync_java") { +@@ -12,7 +12,6 @@ android_library("sync_java") { "//components/signin/core/browser/android:java", "//net/android:net_java", - "//third_party/android_deps:com_android_support_support_annotations_java", + "//third_party/android_deps:androidx_annotation_annotation_java", - "//third_party/android_sdk:android_gcm_java", "//third_party/cacheinvalidation:cacheinvalidation_javalib", "//third_party/cacheinvalidation:cacheinvalidation_proto_java", @@ -922,10 +743,11 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ /* This class is public so that it can be instantiated by the Android runtime. */ /** Constants used in broadcast Intents. */ -@@ -106,18 +103,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService { +@@ -105,18 +102,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService { + public static final String EXTRA_DATA_NUM_DELETED_MSGS = PREFIX + "NUM_DELETED_MSGS"; } - /** +- /** - * {@link GCMBroadcastReceiver} that forwards GCM intents to the {@code MultiplexingGcmListener} - * class. - */ @@ -937,10 +759,9 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ - } - } - -- /** + /** * Convenience base class for client implementations. It provides base classes for a broadcast * receiver and an intent service that work together to handle events from the - * {@code MultiplexingGcmListener} while holding a wake lock. @@ -260,80 +245,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService { /** Logger. */ private static final Logger logger = AndroidLogger.forTag("MplexGcmListener"); @@ -1051,5 +872,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ } } -- -2.11.0 +2.17.1 diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 9ecec2cb..d3908002 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -3,14 +3,14 @@ Date: Fri, 22 Jun 2018 17:05:17 +0200 Subject: kill Location, fall back to system --- - services/device/geolocation/BUILD.gn | 1 - - .../chromium/device/geolocation/LocationProviderFactory.java | 10 ++-------- + services/device/geolocation/BUILD.gn | 1 - + .../device/geolocation/LocationProviderFactory.java | 10 ++-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -136,7 +136,6 @@ if (is_android) { +@@ -145,7 +145,6 @@ if (is_android) { "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/LocationProviderFactory.java", @@ -44,5 +44,5 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge } } -- -2.11.0 +2.17.1 diff --git a/build/patches/kill-TOS-and-metrics-opt-out.patch b/build/patches/kill-TOS-and-metrics-opt-out.patch index 86540b4f..16ad164b 100644 --- a/build/patches/kill-TOS-and-metrics-opt-out.patch +++ b/build/patches/kill-TOS-and-metrics-opt-out.patch @@ -3,9 +3,9 @@ Date: Fri, 22 Jun 2018 17:16:07 +0200 Subject: kill TOS and metrics opt-out --- - chrome/android/java/res/layout/fre_tosanduma.xml | 2 +- - chrome/android/java/res/values/dimens.xml | 1 - - .../src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java | 2 +- + chrome/android/java/res/layout/fre_tosanduma.xml | 2 +- + chrome/android/java/res/values/dimens.xml | 1 - + .../chromium/chrome/browser/firstrun/FirstRunActivityBase.java | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml @@ -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 --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -197,7 +197,6 @@ +@@ -194,7 +194,6 @@ 12dp 24dp 120dp @@ -44,5 +44,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR private boolean mNativeInitialized; -- -2.11.0 +2.17.1 diff --git a/build/patches/kill-Translate.patch b/build/patches/kill-Translate.patch index 31a56612..00ebba91 100644 --- a/build/patches/kill-Translate.patch +++ b/build/patches/kill-Translate.patch @@ -3,13 +3,13 @@ Date: Fri, 22 Jun 2018 17:16:43 +0200 Subject: kill Translate --- - .../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 3 +++ + .../org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java -@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.datareduction.DataReductionProxyUma; +@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.datareduction.DataReductionProxyUma; import org.chromium.chrome.browser.metrics.UmaUtils; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -17,7 +17,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider; import org.chromium.ui.base.LocalizationUtils; -@@ -137,6 +138,8 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -138,6 +139,8 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa if (mPostNativePageSequenceCreated) return; mFirstRunFlowSequencer.onNativeInitialized(mFreProperties); @@ -27,5 +27,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR // An optional Data Saver page. if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) { -- -2.11.0 +2.17.1 diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index 54c2c390..2dc8cd96 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -4,10 +4,10 @@ Subject: kill Vision Barcode, face and text detection APIs --- - services/shape_detection/BUILD.gn | 6 ------ - .../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------ - .../chromium/shape_detection/FaceDetectionProviderImpl.java | 13 +------------ - .../org/chromium/shape_detection/InterfaceRegistrar.java | 13 ------------- + services/shape_detection/BUILD.gn | 6 ------ + .../org/chromium/shape_detection/BitmapUtils.java | 12 ------------ + .../shape_detection/FaceDetectionProviderImpl.java | 13 +------------ + .../shape_detection/InterfaceRegistrar.java | 13 ------------- 4 files changed, 1 insertion(+), 43 deletions(-) diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn @@ -124,5 +124,5 @@ diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detect } } -- -2.11.0 +2.17.1 diff --git a/build/patches/net-cert-increase-default-key-length-for-newly-generated-RSA-keys.patch b/build/patches/net-cert-increase-default-key-length-for-newly-generated-RSA-keys.patch index 0e60b9f0..ba2f9594 100644 --- a/build/patches/net-cert-increase-default-key-length-for-newly-generated-RSA-keys.patch +++ b/build/patches/net-cert-increase-default-key-length-for-newly-generated-RSA-keys.patch @@ -21,5 +21,5 @@ diff --git a/net/cert/x509_util.cc b/net/cert/x509_util.cc // Certificates made by CreateKeyAndSelfSignedCert will be signed using this // digest algorithm. -- -2.11.0 +2.17.1 diff --git a/build/patches/openH264-enable-ARM-ARM64-optimizations.patch b/build/patches/openH264-enable-ARM-ARM64-optimizations.patch index 5be30da0..9fe5d9f2 100644 --- a/build/patches/openH264-enable-ARM-ARM64-optimizations.patch +++ b/build/patches/openH264-enable-ARM-ARM64-optimizations.patch @@ -5,14 +5,14 @@ Subject: openH264: enable ARM/ARM64 optimizations Enable the optimizations not only for ChromeOS but for all compatbile ARM/ARM64 architectures Limit threads auto-detect only for iOS --- - .../renderer/modules/mediarecorder/h264_encoder.cc | 6 ++--- - third_party/openh264/BUILD.gn | 31 +++++++++++++++++----- + .../modules/mediarecorder/h264_encoder.cc | 6 ++-- + third_party/openh264/BUILD.gn | 31 ++++++++++++++----- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc --- a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc +++ b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc -@@ -152,11 +152,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) { +@@ -155,11 +155,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) { init_params.iRCMode = RC_OFF_MODE; } @@ -94,5 +94,5 @@ diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn include_dirs = openh264_encoder_include_dirs -- -2.11.0 +2.17.1 diff --git a/build/patches/prefs-always-prompt-for-download-directory-by-default.patch b/build/patches/prefs-always-prompt-for-download-directory-by-default.patch index 79246e05..6797266e 100644 --- a/build/patches/prefs-always-prompt-for-download-directory-by-default.patch +++ b/build/patches/prefs-always-prompt-for-download-directory-by-default.patch @@ -29,7 +29,7 @@ TLDR: Do not let files sneak onto the disk too easily. diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc -@@ -239,7 +239,7 @@ void DownloadPrefs::RegisterProfilePrefs( +@@ -243,7 +243,7 @@ void DownloadPrefs::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kPromptForDownload, @@ -39,5 +39,5 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download registry->RegisterStringPref(prefs::kDownloadExtensionsToOpen, std::string()); registry->RegisterBooleanPref(prefs::kDownloadDirUpgraded, false); -- -2.11.0 +2.17.1 diff --git a/build/patches/prefs-disable-signinallowed-by-default.patch b/build/patches/prefs-disable-signinallowed-by-default.patch index c2e71ca6..cb72b5c7 100644 --- a/build/patches/prefs-disable-signinallowed-by-default.patch +++ b/build/patches/prefs-disable-signinallowed-by-default.patch @@ -3,21 +3,21 @@ Date: Fri, 9 Nov 2018 11:59:50 +0100 Subject: prefs: disable signinallowed by default --- - components/signin/internal/identity_manager/primary_account_manager.cc | 2 +- + .../signin/internal/identity_manager/primary_account_manager.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -58,7 +58,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { - std::string()); +@@ -56,7 +56,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { + registry->RegisterBooleanPref(prefs::kGoogleServicesConsentedToSync, false); registry->RegisterBooleanPref(prefs::kAutologinEnabled, true); registry->RegisterListPref(prefs::kReverseAutologinRejectedEmailList); - registry->RegisterBooleanPref(prefs::kSigninAllowed, true); + registry->RegisterBooleanPref(prefs::kSigninAllowed, false); registry->RegisterBooleanPref(prefs::kSignedInWithCredentialProvider, false); + } - // Deprecated prefs: will be removed in a future release. -- -2.11.0 +2.17.1 diff --git a/build/patches/prefs-only-keep-cookies-until-exit.patch b/build/patches/prefs-only-keep-cookies-until-exit.patch index 39104278..d5aee614 100644 --- a/build/patches/prefs-only-keep-cookies-until-exit.patch +++ b/build/patches/prefs-only-keep-cookies-until-exit.patch @@ -4,7 +4,7 @@ Subject: prefs: only keep cookies until exit Out with all those tracking cookies! --- - components/content_settings/core/browser/content_settings_registry.cc | 2 +- + .../content_settings/core/browser/content_settings_registry.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc @@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, -- -2.11.0 +2.17.1 diff --git a/build/patches/profile-resetter-do-not-tick-send-settings-by-default.patch b/build/patches/profile-resetter-do-not-tick-send-settings-by-default.patch index f60e7d77..116230ce 100644 --- a/build/patches/profile-resetter-do-not-tick-send-settings-by-default.patch +++ b/build/patches/profile-resetter-do-not-tick-send-settings-by-default.patch @@ -26,5 +26,5 @@ diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/b GURL GetClientReportUrl(const std::string& report_url) { GURL url(report_url); -- -2.11.0 +2.17.1 diff --git a/build/patches/promo-disable-Google-promotion-fetching.patch b/build/patches/promo-disable-Google-promotion-fetching.patch index a6d81788..24d3478e 100644 --- a/build/patches/promo-disable-Google-promotion-fetching.patch +++ b/build/patches/promo-disable-Google-promotion-fetching.patch @@ -31,5 +31,5 @@ diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signi } -- -2.11.0 +2.17.1 diff --git a/build/patches/safe_browsing-disable-cookie-transmission.patch b/build/patches/safe_browsing-disable-cookie-transmission.patch index 61720e51..cb8665d6 100644 --- a/build/patches/safe_browsing-disable-cookie-transmission.patch +++ b/build/patches/safe_browsing-disable-cookie-transmission.patch @@ -7,11 +7,11 @@ prevents the long-living tracking cookie from being set. References: https://github.com/iridium-browser/iridium-browser/issues/37 --- - chrome/browser/safe_browsing/client_side_detection_service.cc | 4 ++-- - .../download_protection/check_client_download_request_base.cc | 2 +- - .../safe_browsing/download_protection/ppapi_download_request.cc | 2 +- - components/safe_browsing/browser/threat_details_cache.cc | 1 + - components/safe_browsing/db/v4_update_protocol_manager.cc | 4 ++-- + chrome/browser/safe_browsing/client_side_detection_service.cc | 4 ++-- + .../download_protection/check_client_download_request_base.cc | 2 +- + .../download_protection/ppapi_download_request.cc | 2 +- + components/safe_browsing/browser/threat_details_cache.cc | 1 + + components/safe_browsing/db/v4_update_protocol_manager.cc | 4 ++-- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chrome/browser/safe_browsing/client_side_detection_service.cc @@ -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_base.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc --- a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc +++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc -@@ -596,7 +596,7 @@ void CheckClientDownloadRequestBase::SendRequest() { +@@ -610,7 +610,7 @@ void CheckClientDownloadRequestBase::SendRequest() { auto resource_request = std::make_unique(); resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl(); 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 --- a/components/safe_browsing/db/v4_update_protocol_manager.cc +++ b/components/safe_browsing/db/v4_update_protocol_manager.cc -@@ -369,8 +369,8 @@ void V4UpdateProtocolManager::IssueUpdateRequest() { +@@ -340,8 +340,8 @@ void V4UpdateProtocolManager::IssueUpdateRequest() { std::string req_base64 = GetBase64SerializedUpdateRequestProto(); GetUpdateUrlAndHeaders(req_base64, &resource_request->url, &resource_request->headers); @@ -85,5 +85,5 @@ diff --git a/components/safe_browsing/db/v4_update_protocol_manager.cc b/compone traffic_annotation); loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie( -- -2.11.0 +2.17.1 diff --git a/build/patches/safe_browsing-disable-incident-reporting.patch b/build/patches/safe_browsing-disable-incident-reporting.patch index e859953f..23bac26b 100644 --- a/build/patches/safe_browsing-disable-incident-reporting.patch +++ b/build/patches/safe_browsing-disable-incident-reporting.patch @@ -6,11 +6,11 @@ Disables the safebrowsing incident reporting where you could upload information about a blocked URL to Google (also added a trk prefix to the URL so we get notified if this happens again in the future). --- - .../safe_browsing/incident_reporting/incident_report_uploader_impl.cc | 2 +- - .../safe_browsing/incident_reporting/incident_reporting_service.cc | 3 +++ - chrome/browser/safe_browsing/safe_browsing_blocking_page.cc | 3 +-- - chrome/browser/safe_browsing/safe_browsing_service.cc | 2 ++ - components/security_interstitials/core/safe_browsing_loud_error_ui.cc | 1 + + .../incident_reporting/incident_report_uploader_impl.cc | 2 +- + .../incident_reporting/incident_reporting_service.cc | 3 +++ + chrome/browser/safe_browsing/safe_browsing_blocking_page.cc | 3 +-- + chrome/browser/safe_browsing/safe_browsing_service.cc | 2 ++ + .../security_interstitials/core/safe_browsing_loud_error_ui.cc | 1 + 5 files changed, 8 insertions(+), 3 deletions(-) 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 @@ -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 --- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc +++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc -@@ -312,11 +312,14 @@ IncidentReportingService::UploadContext::~UploadContext() { +@@ -311,11 +311,14 @@ IncidentReportingService::UploadContext::~UploadContext() { // static bool IncidentReportingService::IsEnabledForProfile(Profile* profile) { @@ -59,7 +59,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrom diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/browser/safe_browsing/safe_browsing_service.cc --- a/chrome/browser/safe_browsing/safe_browsing_service.cc +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc -@@ -229,8 +229,10 @@ SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { +@@ -233,8 +233,10 @@ SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { void SafeBrowsingService::RegisterAllDelayedAnalysis() { #if BUILDFLAG(FULL_SAFE_BROWSING) @@ -82,5 +82,5 @@ diff --git a/components/security_interstitials/core/safe_browsing_loud_error_ui. // Constants for the V4 phishing string upgrades. -- -2.11.0 +2.17.1 diff --git a/build/patches/safe_browsing-disable-reporting-of-safebrowsing-override.patch b/build/patches/safe_browsing-disable-reporting-of-safebrowsing-override.patch index 55553cd8..4cb8a339 100644 --- a/build/patches/safe_browsing-disable-reporting-of-safebrowsing-override.patch +++ b/build/patches/safe_browsing-disable-reporting-of-safebrowsing-override.patch @@ -6,7 +6,7 @@ Disables reporting of the safebrowsing override, i.e. the report sent if a user decides to visit a page that was flagged as "insecure". This prevents trk:148 (phishing) and trk:149 (malware). --- - .../browser/safe_browsing/client_side_detection_service.cc | 12 ++++++++++++ + .../safe_browsing/client_side_detection_service.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chrome/browser/safe_browsing/client_side_detection_service.cc @@ -65,5 +65,5 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr void ClientSideDetectionService::HandlePhishingVerdict( -- -2.11.0 +2.17.1 diff --git a/build/patches/translate-disable-fetching-of-translate-languages-from-server.patch b/build/patches/translate-disable-fetching-of-translate-languages-from-server.patch index ebadd84a..624ff364 100644 --- a/build/patches/translate-disable-fetching-of-translate-languages-from-server.patch +++ b/build/patches/translate-disable-fetching-of-translate-languages-from-server.patch @@ -27,5 +27,5 @@ diff --git a/components/translate/core/browser/translate_language_list.cc b/comp void TranslateLanguageList::SetResourceRequestsAllowed(bool allowed) { -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-Google.patch b/build/patches/ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-Google.patch index bb761aa3..7c6deb5a 100644 --- a/build/patches/ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-Google.patch +++ b/build/patches/ungoogled-chromium-Always-use-local-DevTools-files-instead-of-remote-files-from-Google.patch @@ -7,29 +7,30 @@ NOTE: This can break Remote Debugging This also fixes local debugging with domain substitution Related comment: https://bugs.chromium.org/p/chromium/issues/detail?id=710701#c14 --- - third_party/blink/renderer/devtools/BUILD.gn | 6 ++---- - third_party/blink/renderer/devtools/front_end/audits_worker.json | 2 +- - third_party/blink/renderer/devtools/front_end/devtools_app.json | 6 +++--- - third_party/blink/renderer/devtools/front_end/shell.json | 4 ++-- - third_party/blink/renderer/devtools/front_end/worker_app.json | 2 +- + third_party/blink/renderer/devtools/BUILD.gn | 6 ++---- + .../blink/renderer/devtools/front_end/audits_worker.json | 2 +- + .../blink/renderer/devtools/front_end/devtools_app.json | 8 ++++---- + third_party/blink/renderer/devtools/front_end/shell.json | 2 +- + .../blink/renderer/devtools/front_end/worker_app.json | 2 +- 5 files changed, 9 insertions(+), 11 deletions(-) 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 +++ b/third_party/blink/renderer/devtools/BUILD.gn -@@ -1290,10 +1290,8 @@ action("generate_devtools_grd") { - devtools_embedder_scripts + - [ "$resources_out_dir/devtools_extension_api.js" ] +@@ -1621,11 +1621,9 @@ if (!external_devtools_frontend) { + "$resources_out_dir/InspectorBackendCommands.js", + ] -- # Bundle remote modules in ChromeOS. -- if (is_chromeos) { -- grd_files += generated_remote_modules + devtools_emulated_devices_images -- } -+ # Always bundle remote modules. -+ grd_files += generated_remote_modules + devtools_emulated_devices_images +- # Bundle remote modules in ChromeOS. +- if (is_chromeos) { +- grd_files += generated_remote_modules + devtools_emulated_devices_images + ++ # Always bundle remote modules. ++ grd_files += generated_remote_modules + devtools_emulated_devices_images + + lighthouse_locale_files +- } - inputs = grd_files + devtools_image_files - outfile = "$root_gen_dir/devtools/devtools_resources.grd" + inputs = grd_files + devtools_image_files + outfile = "$root_gen_dir/devtools/devtools_resources.grd" diff --git a/third_party/blink/renderer/devtools/front_end/audits_worker.json b/third_party/blink/renderer/devtools/front_end/audits_worker.json --- a/third_party/blink/renderer/devtools/front_end/audits_worker.json +++ b/third_party/blink/renderer/devtools/front_end/audits_worker.json @@ -44,7 +45,7 @@ diff --git a/third_party/blink/renderer/devtools/front_end/audits_worker.json b/ diff --git a/third_party/blink/renderer/devtools/front_end/devtools_app.json b/third_party/blink/renderer/devtools/front_end/devtools_app.json --- a/third_party/blink/renderer/devtools/front_end/devtools_app.json +++ b/third_party/blink/renderer/devtools/front_end/devtools_app.json -@@ -4,21 +4,21 @@ +@@ -4,23 +4,23 @@ { "name": "inspector_main", "type": "autostart" }, { "name": "mobile_throttling", "type": "autostart" }, @@ -53,7 +54,10 @@ diff --git a/third_party/blink/renderer/devtools/front_end/devtools_app.json b/t { "name": "animation" }, { "name": "audits" }, { "name": "browser_debugger" }, + { "name": "css_overview" }, { "name": "cookie_table" }, +- { "name": "dagre_layout", "type": "remote" }, ++ { "name": "dagre_layout" }, { "name": "devices" }, { "name": "elements" }, - { "name": "emulated_devices" , "type": "remote" }, @@ -81,15 +85,6 @@ diff --git a/third_party/blink/renderer/devtools/front_end/shell.json b/third_pa { "name": "color_picker" }, { "name": "console" }, { "name": "coverage" }, -@@ -41,7 +41,7 @@ - { "name": "snippets" }, - { "name": "source_frame" }, - { "name": "sources" }, -- { "name": "terminal", "type": "remote" }, -+ { "name": "terminal" }, - { "name": "text_editor" }, - { "name": "workspace_diff" }, - { "name": "protocol_monitor"} diff --git a/third_party/blink/renderer/devtools/front_end/worker_app.json b/third_party/blink/renderer/devtools/front_end/worker_app.json --- a/third_party/blink/renderer/devtools/front_end/worker_app.json +++ b/third_party/blink/renderer/devtools/front_end/worker_app.json @@ -103,5 +98,5 @@ diff --git a/third_party/blink/renderer/devtools/front_end/worker_app.json b/thi { "name": "timeline" }, { "name": "timeline_model" } -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-GCM.patch b/build/patches/ungoogled-chromium-Disable-GCM.patch index b01baa5d..17e1b940 100644 --- a/build/patches/ungoogled-chromium-Disable-GCM.patch +++ b/build/patches/ungoogled-chromium-Disable-GCM.patch @@ -35,5 +35,5 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc last_checkin_time_, device_checkin_info_.last_checkin_accounts, -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-Gaia.patch b/build/patches/ungoogled-chromium-Disable-Gaia.patch index ba28315e..3f23b8e6 100644 --- a/build/patches/ungoogled-chromium-Disable-Gaia.patch +++ b/build/patches/ungoogled-chromium-Disable-Gaia.patch @@ -63,5 +63,5 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ // static -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-Google-host-detection.patch b/build/patches/ungoogled-chromium-Disable-Google-host-detection.patch index b761e329..09dfe2e6 100644 --- a/build/patches/ungoogled-chromium-Disable-Google-host-detection.patch +++ b/build/patches/ungoogled-chromium-Disable-Google-host-detection.patch @@ -4,27 +4,13 @@ Subject: ungoogled-chromium: Disable Google host detection Disables various detections of Google hosts and functionality specific to them --- - .../page_load_metrics/page_load_metrics_util.cc | 4 +- - components/google/core/common/google_util.cc | 196 ++------------------- - .../common/page_load_metrics_util.cc | 33 +--- - components/search_engines/template_url.cc | 6 +- - net/base/url_util.cc | 21 --- + components/google/core/common/google_util.cc | 196 +----------------- + .../browser/page_load_metrics_util.cc | 4 +- + .../common/page_load_metrics_util.cc | 33 +-- + components/search_engines/template_url.cc | 6 +- + net/base/url_util.cc | 21 -- 5 files changed, 14 insertions(+), 246 deletions(-) -diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.cc b/chrome/browser/page_load_metrics/page_load_metrics_util.cc ---- a/chrome/browser/page_load_metrics/page_load_metrics_util.cc -+++ b/chrome/browser/page_load_metrics/page_load_metrics_util.cc -@@ -171,9 +171,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( - } - - bool IsGoogleSearchHostname(const GURL& url) { -- base::Optional result = -- page_load_metrics::GetGoogleHostnamePrefix(url); -- return result && result.value() == "www"; -+ return false; - } - - bool IsGoogleSearchResultUrl(const GURL& url) { diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc --- a/components/google/core/common/google_util.cc +++ b/components/google/core/common/google_util.cc @@ -283,6 +269,20 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co } bool IsGoogleAssociatedDomainUrl(const GURL& url) { +diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/components/page_load_metrics/browser/page_load_metrics_util.cc +--- a/components/page_load_metrics/browser/page_load_metrics_util.cc ++++ b/components/page_load_metrics/browser/page_load_metrics_util.cc +@@ -171,9 +171,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( + } + + bool IsGoogleSearchHostname(const GURL& url) { +- base::Optional result = +- page_load_metrics::GetGoogleHostnamePrefix(url); +- return result && result.value() == "www"; ++ return false; + } + + bool IsGoogleSearchResultUrl(const GURL& url) { diff --git a/components/page_load_metrics/common/page_load_metrics_util.cc b/components/page_load_metrics/common/page_load_metrics_util.cc --- a/components/page_load_metrics/common/page_load_metrics_util.cc +++ b/components/page_load_metrics/common/page_load_metrics_util.cc @@ -374,5 +374,5 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc } -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index 0a5dc1ff..9f987b40 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -23,5 +23,5 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ NetworkTimeTracker::FetchBehavior NetworkTimeTracker::GetFetchBehavior() const { -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-domain-reliability.patch b/build/patches/ungoogled-chromium-Disable-domain-reliability.patch index 124e0ed9..1a4f6ec8 100644 --- a/build/patches/ungoogled-chromium-Disable-domain-reliability.patch +++ b/build/patches/ungoogled-chromium-Disable-domain-reliability.patch @@ -3,10 +3,10 @@ Date: Sat, 25 Aug 2018 22:58:52 +0200 Subject: ungoogled-chromium: Disable domain reliability --- - components/domain_reliability/BUILD.gn | 42 +- - components/domain_reliability/bake_in_configs.py | 2 +- - components/domain_reliability/google_configs.cc | 565 ----------------------- - components/domain_reliability/uploader.cc | 2 +- + components/domain_reliability/BUILD.gn | 42 +- + .../domain_reliability/bake_in_configs.py | 2 +- + .../domain_reliability/google_configs.cc | 565 ------------------ + components/domain_reliability/uploader.cc | 2 +- 4 files changed, 17 insertions(+), 594 deletions(-) diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn @@ -672,5 +672,5 @@ diff --git a/components/domain_reliability/uploader.cc b/components/domain_relia UploadResult result; result.status = UploadResult::SUCCESS; -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-intranet-redirect-detector.patch b/build/patches/ungoogled-chromium-Disable-intranet-redirect-detector.patch index 2cbbec62..20c6c282 100644 --- a/build/patches/ungoogled-chromium-Disable-intranet-redirect-detector.patch +++ b/build/patches/ungoogled-chromium-Disable-intranet-redirect-detector.patch @@ -24,5 +24,5 @@ diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intra DCHECK(simple_loaders_.empty() && resulting_origins_.empty()); -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar-downloading.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar-downloading.patch index 1d40b99b..9e267ae5 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar-downloading.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar-downloading.patch @@ -4,15 +4,15 @@ Subject: ungoogled-chromium: Disable profile avatar downloading Added some Bromite-specific further improvements --- - chrome/browser/BUILD.gn | 2 -- - chrome/browser/profiles/profile_attributes_entry.cc | 14 -------------- - chrome/browser/profiles/profile_avatar_downloader.cc | 8 +------- + chrome/browser/BUILD.gn | 2 -- + .../browser/profiles/profile_attributes_entry.cc | 14 -------------- + .../browser/profiles/profile_avatar_downloader.cc | 8 +------- 3 files changed, 1 insertion(+), 23 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1449,8 +1449,6 @@ jumbo_split_static_library("browser") { +@@ -1385,8 +1385,6 @@ jumbo_static_library("browser") { "profiles/profile_attributes_entry.h", "profiles/profile_attributes_storage.cc", "profiles/profile_attributes_storage.h", @@ -24,7 +24,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -120,20 +120,6 @@ base::string16 ProfileAttributesEntry::GetUserName() const { +@@ -230,20 +230,6 @@ base::string16 ProfileAttributesEntry::GetUserName() const { } const gfx::Image& ProfileAttributesEntry::GetAvatarIcon() const { @@ -70,5 +70,5 @@ diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/brows net::DefineNetworkTrafficAnnotation("profile_avatar", R"( semantics { -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 22365ab3..358f0495 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -4,11 +4,11 @@ Subject: ungoogled-chromium: Disable translate integration Remove translate offer --- - .../android/java/res/xml/languages_preferences.xml | 5 ----- - .../languages/LanguagesPreferences.java | 22 ---------------------- - .../java/strings/android_chrome_strings.grd | 3 --- - .../translate/core/browser/translate_manager.cc | 5 +++-- - .../translate/core/browser/translate_script.cc | 3 +-- + .../java/res/xml/languages_preferences.xml | 5 ----- + .../languages/LanguagesPreferences.java | 22 ------------------- + .../java/strings/android_chrome_strings.grd | 3 --- + .../core/browser/translate_manager.cc | 5 +++-- + .../core/browser/translate_script.cc | 3 +-- 5 files changed, 4 insertions(+), 34 deletions(-) diff --git a/chrome/android/java/res/xml/languages_preferences.xml b/chrome/android/java/res/xml/languages_preferences.xml @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/lan 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 +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -1211,9 +1211,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1194,9 +1194,6 @@ Your Google account may have other forms of browsing history like searches and a Websites will show text in your preferred language, when possible. @@ -104,7 +104,7 @@ diff --git a/components/translate/core/browser/translate_script.cc b/components/ + &data_, "var securityOrigin = '';"); // Load embedded translate.js. - base::StringPiece str = + data_.append(ui::ResourceBundle::GetSharedInstance().DecompressDataResource( -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch b/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch index a3a728ab..5055cbf7 100644 --- a/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch +++ b/build/patches/ungoogled-chromium-Disable-untraceable-URLs.patch @@ -132,5 +132,5 @@ diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h extern const int kFinancialPort; -- -2.11.0 +2.17.1 diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 4ee6351d..8087e34c 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -3,7 +3,7 @@ Date: Mon, 12 Feb 2018 21:21:36 +0100 Subject: ungoogled-chromium: Disable webRTC log uploader --- - chrome/browser/media/webrtc/webrtc_log_uploader.cc | 27 ++++------------------ + .../media/webrtc/webrtc_log_uploader.cc | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc @@ -51,5 +51,5 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser SetupMultipart(post_data.get(), compressed_log, upload_done_data.paths.incoming_rtp_dump, -- -2.11.0 +2.17.1 diff --git a/build/patches/updater-disable-updater-pings.patch b/build/patches/updater-disable-updater-pings.patch index 3ca043a0..e1053852 100644 --- a/build/patches/updater-disable-updater-pings.patch +++ b/build/patches/updater-disable-updater-pings.patch @@ -6,9 +6,9 @@ Despite auto-updater being arguably disabled (see previous commit), Chromium would still send background requests. Kill it. (trk:170, trk:171) --- - components/component_updater/component_updater_url_constants.cc | 4 ++-- - components/component_updater/configurator_impl.cc | 5 +---- - components/component_updater/configurator_impl.h | 1 - + .../component_updater/component_updater_url_constants.cc | 4 ++-- + components/component_updater/configurator_impl.cc | 5 +---- + components/component_updater/configurator_impl.h | 1 - 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/components/component_updater/component_updater_url_constants.cc b/components/component_updater/component_updater_url_constants.cc @@ -60,5 +60,5 @@ diff --git a/components/component_updater/configurator_impl.h b/components/compo const int initial_delay_; -- -2.11.0 +2.17.1 -- GitLab From ba0e1dc920f4ea881374976487533cfaa191e768 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 20 Dec 2019 07:58:59 +0100 Subject: [PATCH 02/25] Release 79.0.3945.94 --- build/GN_ARGS | 10 +++++++--- build/bromite_patches_list.txt | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/build/GN_ARGS b/build/GN_ARGS index 15be7a74..6225c854 100644 --- a/build/GN_ARGS +++ b/build/GN_ARGS @@ -1,13 +1,18 @@ android_channel="stable" +blink_symbol_level=0 blink_symbol_level=1 dcheck_always_on=false debuggable_apks=false +dfmify_dev_ui=true disable_android_lint=true -enable_ac3_eac3_audio_demuxing=true enable_hevc_demuxing=true enable_iterator_debugging=false +disable_autofill_assistant_dfm=false +disable_tab_ui_dfm=false enable_av1_decoder=true enable_dav1d_decoder=true +enable_feed_in_chrome=false enable_gvr_services=false enable_hangout_services_extension=false +enable_iterator_debugging=false enable_mdns=false enable_mse_mpeg2ts_stream_parser=true ffmpeg_branding="Chrome" proprietary_codecs=true enable_nacl=false @@ -16,13 +21,12 @@ enable_remoting=false enable_reporting=false enable_resource_whitelist_generation=false enable_vr=false -exclude_unwind_tables = true fieldtrial_testing_like_official_build=true +icu_use_data_file=true is_cfi=true is_component_build=false is_debug=false is_official_build=true -remove_webcore_debug_symbols=true rtc_build_examples=false safe_browsing_mode=0 strip_absolute_paths_from_debug_symbols=true diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index c8b760dd..b1201248 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,6 +1,5 @@ Disable-third-party-cookies-by-default.patch Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Disable-unified-consent-on-Android.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch @@ -123,6 +122,7 @@ disable-payment-support-by-default.patch disable-background-sync-by-default.patch disable-sensors-access-site-setting-by-default.patch Disable-media-router-and-remoting-by-default.patch +Disable-unified-consent-on-Android.patch Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch Disable-search-ready-omnibox-by-default.patch disable-AdsBlockedInfoBar.patch -- GitLab From 6340bb4398bf664603932ecb8ec6ddacb2eef133 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 20 Dec 2019 08:43:56 +0100 Subject: [PATCH 03/25] Remove duplicate symbols in GN_ARGS --- build/GN_ARGS | 1 - 1 file changed, 1 deletion(-) diff --git a/build/GN_ARGS b/build/GN_ARGS index 6225c854..96e84b37 100644 --- a/build/GN_ARGS +++ b/build/GN_ARGS @@ -31,7 +31,6 @@ rtc_build_examples=false safe_browsing_mode=0 strip_absolute_paths_from_debug_symbols=true strip_debug_info=true -symbol_level=0 symbol_level=1 target_os="android" use_debug_fission=true -- GitLab From 4a9cbe673df842c3df74e60018c11763dded6f5e Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 21 Dec 2019 10:03:09 +0100 Subject: [PATCH 04/25] Bugfixes to build vanilla Chromium --- build/GN_ARGS | 1 - ...-password-reuse-detection-on-android.patch | 11 +++--- build/patches/Disable-safe-browsing.patch | 12 ------- ...-consent-miscellanous-backport-fixes.patch | 34 +++++++++++++------ 4 files changed, 30 insertions(+), 28 deletions(-) diff --git a/build/GN_ARGS b/build/GN_ARGS index 96e84b37..18c108e0 100644 --- a/build/GN_ARGS +++ b/build/GN_ARGS @@ -1,5 +1,4 @@ android_channel="stable" -blink_symbol_level=0 blink_symbol_level=1 dcheck_always_on=false debuggable_apks=false diff --git a/build/patches/Disable-password-reuse-detection-on-android.patch b/build/patches/Disable-password-reuse-detection-on-android.patch index e18e3942..1d4179ab 100644 --- a/build/patches/Disable-password-reuse-detection-on-android.patch +++ b/build/patches/Disable-password-reuse-detection-on-android.patch @@ -3,21 +3,24 @@ Date: Sun, 15 Dec 2019 22:39:56 +0100 Subject: Disable password reuse detection on android --- - components/password_manager/core/browser/BUILD.gn | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + components/password_manager/core/browser/BUILD.gn | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn --- a/components/password_manager/core/browser/BUILD.gn +++ b/components/password_manager/core/browser/BUILD.gn -@@ -12,7 +12,7 @@ if (is_android) { +@@ -12,9 +12,9 @@ if (is_android) { # TODO(crbug.com/1006430): Fix password reuse detection not fully functional on # Android. -password_reuse_detection_support = !is_ios +password_reuse_detection_support = !is_ios && !is_android password_reuse_warning_support = !is_android && !is_ios - password_on_focus_ping_support = !is_android && !is_ios +-password_on_focus_ping_support = !is_ios ++password_on_focus_ping_support = !is_android && !is_ios + config("password_reuse_detection_config") { + defines = [] -- 2.17.1 diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index 1694ace7..f6f0d150 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -2005,18 +2005,6 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #include "components/spellcheck/spellcheck_buildflags.h" #include "components/startup_metric_utils/common/startup_metric.mojom.h" #include "components/subresource_filter/content/renderer/subresource_filter_agent.h" -diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn ---- a/components/password_manager/core/browser/BUILD.gn -+++ b/components/password_manager/core/browser/BUILD.gn -@@ -14,7 +14,7 @@ if (is_android) { - # Android. - password_reuse_detection_support = !is_ios - password_reuse_warning_support = !is_android && !is_ios --password_on_focus_ping_support = !is_ios -+password_on_focus_ping_support = !is_android && !is_ios - - config("password_reuse_detection_config") { - defines = [] diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc --- a/components/safe_browsing/features.cc +++ b/components/safe_browsing/features.cc diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch index 723729e0..a9ddd6b3 100644 --- a/build/patches/Unified-consent-miscellanous-backport-fixes.patch +++ b/build/patches/Unified-consent-miscellanous-backport-fixes.patch @@ -3,14 +3,14 @@ Date: Wed, 18 Dec 2019 23:54:37 +0100 Subject: Unified consent miscellanous backport fixes --- - .../privacy/PrivacyPreferences.java | 26 ------------------- - .../sync/SyncNotificationController.java | 12 +++------ - 2 files changed, 3 insertions(+), 35 deletions(-) + .../privacy/PrivacyPreferences.java | 38 ------------------- + .../sync/SyncNotificationController.java | 12 ++---- + 2 files changed, 3 insertions(+), 47 deletions(-) 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -@@ -10,7 +10,6 @@ import android.support.graphics.drawable.VectorDrawableCompat; +@@ -9,7 +9,6 @@ import android.support.graphics.drawable.VectorDrawableCompat; import android.support.v7.preference.CheckBoxPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; @@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -@@ -50,13 +49,10 @@ public class PrivacyPreferences +@@ -56,13 +55,10 @@ public class PrivacyPreferences @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -32,14 +32,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri mManagedPreferenceDelegate = createManagedPreferenceDelegate(); -@@ -70,27 +66,6 @@ public class PrivacyPreferences +@@ -76,39 +72,6 @@ public class PrivacyPreferences networkPredictionPref.setOnPreferenceChangeListener(this); networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { - // Remove preferences that were migrated to SyncAndServicesPreferences. +- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR)); - preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); +- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING)); +- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING)); - preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); +- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); - - // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. - networkPredictionPref.setTitle(R.string.preload_pages_title); @@ -53,14 +57,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri - networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); - preferenceScreen.addPreference(networkPredictionPref); - +- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); +- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { +- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class, +- SyncAndServicesPreferences.createArguments(false)); +- }); +- syncAndServicesLink.setSummary( +- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), +- new SpanApplier.SpanInfo("", "", linkSpan))); +- - updateSummaries(); - return; - } -- - ChromeBaseCheckBoxPreference searchSuggestionsPref = - (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS); - searchSuggestionsPref.setOnPreferenceChangeListener(this); -@@ -135,7 +110,6 @@ public class PrivacyPreferences + preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); + preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); + +@@ -176,7 +139,6 @@ public class PrivacyPreferences */ public void updateSummaries() { PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -- GitLab From edaf4c0f1713d5b4b52523a1d95b7517e9a5f032 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 23 Dec 2019 02:28:56 +0100 Subject: [PATCH 05/25] Fixes for unified consent and feed build issues --- .../Allow-building-without-feed-support.patch | 54 ++++++++++++++- ...-consent-miscellanous-backport-fixes.patch | 65 ++++++++++++++++--- 2 files changed, 109 insertions(+), 10 deletions(-) diff --git a/build/patches/Allow-building-without-feed-support.patch b/build/patches/Allow-building-without-feed-support.patch index 88e09d24..84f7fe1b 100644 --- a/build/patches/Allow-building-without-feed-support.patch +++ b/build/patches/Allow-building-without-feed-support.patch @@ -3,9 +3,59 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100 Subject: Allow building without feed support --- - .../chrome/browser/ntp/cards/ExploreOfflineCard.java | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) + .../start_surface/StartSurfaceCoordinator.java | 5 ----- + .../start_surface/StartSurfaceMediator.java | 16 ---------------- + .../browser/ntp/cards/ExploreOfflineCard.java | 5 +---- + 3 files changed, 1 insertion(+), 25 deletions(-) +diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java +--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java ++++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java +@@ -198,11 +198,6 @@ public class StartSurfaceCoordinator implements StartSurface { + mBottomBarCoordinator = new BottomBarCoordinator( + mActivity, mActivity.getCompositorViewHolder(), mPropertyModel); + } +- +- mExploreSurfaceCoordinator = new ExploreSurfaceCoordinator(mActivity, +- mSurfaceMode == SurfaceMode.SINGLE_PANE ? mTasksSurface.getBodyViewContainer() +- : mActivity.getCompositorViewHolder(), +- mPropertyModel, mSurfaceMode == SurfaceMode.SINGLE_PANE); + } + + private TabSwitcher.Controller initializeSecondaryTasksSurface() { +diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java ++++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +@@ -253,15 +253,6 @@ class StartSurfaceMediator + RecordUserAction.record("StartSurface.TasksOnly"); + } + +- // Make sure FeedSurfaceCoordinator is built before the explore surface is showing by +- // default. +- if (mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE) +- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) { +- mPropertyModel.set(FEED_SURFACE_COORDINATOR, +- mFeedSurfaceCreator.createFeedSurfaceCoordinator( +- mNightModeStateProvider.isInNightMode())); +- } +- + mPropertyModel.set(IS_SHOWING_OVERVIEW, true); + mFakeboxDelegate.addUrlFocusChangeListener(mUrlFocusChangeListener); + } +@@ -361,13 +352,6 @@ class StartSurfaceMediator + private void setExploreSurfaceVisibility(boolean isVisible) { + if (isVisible == mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)) return; + +- if (isVisible && mPropertyModel.get(IS_SHOWING_OVERVIEW) +- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) { +- mPropertyModel.set(FEED_SURFACE_COORDINATOR, +- mFeedSurfaceCreator.createFeedSurfaceCoordinator( +- mNightModeStateProvider.isInNightMode())); +- } +- + mPropertyModel.set(IS_EXPLORE_SURFACE_VISIBLE, isVisible); + + if (mSurfaceMode == SurfaceMode.TWO_PANES) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch index a9ddd6b3..6d2db27e 100644 --- a/build/patches/Unified-consent-miscellanous-backport-fixes.patch +++ b/build/patches/Unified-consent-miscellanous-backport-fixes.patch @@ -3,9 +3,10 @@ Date: Wed, 18 Dec 2019 23:54:37 +0100 Subject: Unified consent miscellanous backport fixes --- - .../privacy/PrivacyPreferences.java | 38 ------------------- - .../sync/SyncNotificationController.java | 12 ++---- - 2 files changed, 3 insertions(+), 47 deletions(-) + .../privacy/PrivacyPreferences.java | 52 ++----------------- + .../preferences/sync/SyncPreferenceUtils.java | 3 -- + .../sync/SyncNotificationController.java | 12 ++--- + 3 files changed, 6 insertions(+), 61 deletions(-) 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 @@ -18,7 +19,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -@@ -56,13 +55,10 @@ public class PrivacyPreferences +@@ -45,7 +44,6 @@ public class PrivacyPreferences + private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search"; + private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; + 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_CLEAR_BROWSING_DATA = "clear_browsing_data"; + private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = + "sync_and_services_link_divider"; +@@ -56,13 +54,10 @@ public class PrivacyPreferences @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -32,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri mManagedPreferenceDelegate = createManagedPreferenceDelegate(); -@@ -76,39 +72,6 @@ public class PrivacyPreferences +@@ -76,41 +71,8 @@ public class PrivacyPreferences networkPredictionPref.setOnPreferenceChangeListener(this); networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); @@ -69,10 +78,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri - updateSummaries(); - return; - } - preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); - preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); +- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); +- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); ++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); ++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); -@@ -176,7 +139,6 @@ public class PrivacyPreferences + ChromeBaseCheckBoxPreference navigationErrorPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); +@@ -123,7 +85,7 @@ public class PrivacyPreferences + searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); + + if (!ContextualSearchFieldTrial.isEnabled()) { +- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); ++ getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); + } + + // Listen to changes to the Extended Reporting pref. +@@ -176,7 +138,6 @@ public class PrivacyPreferences */ public void updateSummaries() { PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); @@ -80,6 +102,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri CharSequence textOn = getActivity().getResources().getText(R.string.text_on); CharSequence textOff = getActivity().getResources().getText(R.string.text_off); +@@ -226,13 +187,6 @@ public class PrivacyPreferences + contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); + } + +- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING); +- if (usageAndCrashPref != null) { +- usageAndCrashPref.setSummary( +- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn +- : textOff); +- } +- + Preference usageStatsPref = findPreference(PREF_USAGE_STATS); + if (usageStatsPref != null) { + if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +@@ -118,9 +118,6 @@ public class SyncPreferenceUtils { + if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { + return res.getString(R.string.sync_need_passphrase); + } +- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { +- return context.getString(R.string.sync_and_services_summary_sync_on); +- } + return context.getString(R.string.account_management_sync_summary, accountName); + } + return context.getString(R.string.sync_is_disabled); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -- GitLab From d1fb4d4974513ef8343a412d2d384d7b7dbedc51 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 27 Dec 2019 16:05:14 +0100 Subject: [PATCH 06/25] Updated patches for next v79 release --- ...dd-custom-tab-intents-privacy-option.patch | 8 +- ...-to-not-persist-tabs-across-sessions.patch | 23 +++--- build/patches/Disable-safe-browsing.patch | 82 +++++++------------ build/patches/Log-DoH-timeout.patch | 27 ++++++ ...e-signin-and-data-saver-integrations.patch | 47 +++-------- build/patches/User-Agent-anonymize.patch | 2 +- 6 files changed, 83 insertions(+), 106 deletions(-) create mode 100644 build/patches/Log-DoH-timeout.patch diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index c359fcb0..3e9585ee 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -61,7 +61,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 --- 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 -@@ -43,6 +43,8 @@ public class PrivacyPreferences +@@ -42,6 +42,8 @@ public class PrivacyPreferences private ManagedPreferenceDelegate mManagedPreferenceDelegate; @@ -69,8 +69,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); -@@ -101,6 +103,10 @@ public class PrivacyPreferences + PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); +@@ -76,6 +78,10 @@ public class PrivacyPreferences PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue); } else if (PREF_NETWORK_PREDICTIONS.equals(key)) { PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue); @@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } else if (PREF_CONTEXTUAL_SEARCH.equals(key)) { PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false"); } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) { -@@ -140,6 +146,11 @@ public class PrivacyPreferences +@@ -114,6 +120,11 @@ public class PrivacyPreferences prefServiceBridge.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 8bc52024..7108dbcf 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -3,12 +3,12 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200 Subject: Add option to not persist tabs across sessions --- - chrome/android/java/res/values/values.xml | 3 +++ - chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 4 +++- - .../preferences/privacy/PrivacyPreferences.java | 12 ++++++++++++ - .../android/java/strings/android_chrome_strings.grd | 6 ++++++ - 5 files changed, 29 insertions(+), 1 deletion(-) + chrome/android/java/res/values/values.xml | 3 +++ + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chromium/chrome/browser/ChromeTabbedActivity.java | 4 +++- + .../preferences/privacy/PrivacyPreferences.java | 11 +++++++++++ + .../android/java/strings/android_chrome_strings.grd | 6 ++++++ + 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml @@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import android.os.Bundle; import android.support.graphics.drawable.VectorDrawableCompat; import android.support.v7.preference.CheckBoxPreference; -@@ -14,6 +15,7 @@ import android.view.Menu; +@@ -13,6 +14,7 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -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.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; -@@ -38,6 +40,7 @@ public class PrivacyPreferences +@@ -37,6 +39,7 @@ public class PrivacyPreferences 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_NETWORK_PREDICTIONS = "preload_pages"; @@ -80,7 +80,7 @@ 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_CLEAR_BROWSING_DATA = "clear_browsing_data"; -@@ -112,6 +115,10 @@ public class PrivacyPreferences +@@ -87,6 +90,10 @@ public class PrivacyPreferences } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) { PrefServiceBridge.getInstance().setBoolean( Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); @@ -91,11 +91,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } return true; -@@ -162,6 +169,11 @@ public class PrivacyPreferences - boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled(); +@@ -137,6 +144,10 @@ public class PrivacyPreferences contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); } -+ + + ChromeBaseCheckBoxPreference closeTabsOnExitPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT); + closeTabsOnExitPref.setOnPreferenceChangeListener(this); diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index f6f0d150..9a587848 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -7,32 +7,32 @@ Contains Android-specific fixes to remove Safe Browsing --- chrome/android/chrome_java_sources.gni | 1 - .../java/res/xml/privacy_preferences.xml | 21 ----- - .../res/xml/sync_and_services_preferences.xml | 20 ---- - .../privacy/PrivacyPreferences.java | 94 ------------------- + .../res/xml/sync_and_services_preferences.xml | 20 ----- + .../privacy/PrivacyPreferences.java | 81 ------------------- .../browser/webshare/ShareServiceImpl.java | 6 -- - .../java/strings/android_chrome_strings.grd | 33 ------- + .../java/strings/android_chrome_strings.grd | 33 -------- chrome/browser/BUILD.gn | 2 - chrome/browser/browser_process.h | 16 ---- - chrome/browser/browser_process_impl.cc | 36 ------- + chrome/browser/browser_process_impl.cc | 36 --------- chrome/browser/browser_process_impl.h | 6 -- - .../chrome_browsing_data_remover_delegate.cc | 41 -------- - .../browser/chrome_content_browser_client.cc | 60 +++--------- + .../chrome_browsing_data_remover_delegate.cc | 41 ---------- + .../browser/chrome_content_browser_client.cc | 60 +++----------- .../file_type_policies_component_installer.cc | 16 +--- - .../chrome_download_manager_delegate.cc | 31 +++--- + .../chrome_download_manager_delegate.cc | 31 +++---- .../chrome_download_manager_delegate.h | 8 +- .../browser/download/download_item_model.cc | 13 ++- chrome/browser/download/download_item_model.h | 4 + - chrome/browser/download/download_prefs.cc | 17 +--- - .../download/download_target_determiner.cc | 46 ++++----- + chrome/browser/download/download_prefs.cc | 17 ++-- + .../download/download_target_determiner.cc | 46 +++++------ .../download/download_target_determiner.h | 6 ++ .../browser/download/download_target_info.cc | 4 + .../browser/download/download_target_info.h | 4 + chrome/browser/download/download_ui_model.cc | 4 + chrome/browser/download/download_ui_model.h | 4 + - .../extensions/api/downloads/downloads_api.cc | 39 +------- - .../extensions/api/downloads/downloads_api.h | 10 -- - .../webstore_private/webstore_private_api.cc | 44 +-------- - .../extensions/blacklist_state_fetcher.cc | 34 +------ + .../extensions/api/downloads/downloads_api.cc | 39 +-------- + .../extensions/api/downloads/downloads_api.h | 10 --- + .../webstore_private/webstore_private_api.cc | 44 +--------- + .../extensions/blacklist_state_fetcher.cc | 34 +------- .../extensions/blacklist_state_fetcher.h | 3 - .../metrics/chrome_metrics_service_client.cc | 3 - ...e_native_file_system_permission_context.cc | 5 +- @@ -44,19 +44,18 @@ Contains Android-specific fixes to remove Safe Browsing .../ssl/captive_portal_blocking_page.cc | 7 +- chrome/browser/ssl/cert_report_helper.cc | 2 - .../browser/ssl/security_state_tab_helper.cc | 2 + - .../chrome_subresource_filter_client.cc | 10 -- + .../chrome_subresource_filter_client.cc | 10 --- chrome/browser/ui/BUILD.gn | 1 - chrome/browser/ui/tab_helpers.cc | 8 -- .../ui/webui/interstitials/interstitial_ui.cc | 13 +-- - chrome/common/safe_browsing/BUILD.gn | 15 --- + chrome/common/safe_browsing/BUILD.gn | 15 ---- .../chrome_content_renderer_client.cc | 1 - - .../password_manager/core/browser/BUILD.gn | 2 +- components/safe_browsing/features.cc | 2 +- .../unified_consent_service.cc | 2 +- - .../native_file_system_file_writer_impl.cc | 48 +--------- - .../native_file_system_file_writer_impl.h | 15 +-- + .../native_file_system_file_writer_impl.cc | 48 +---------- + .../native_file_system_file_writer_impl.h | 15 +--- .../native_file_system_permission_context.h | 7 -- - 51 files changed, 128 insertions(+), 651 deletions(-) + 50 files changed, 127 insertions(+), 637 deletions(-) diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni @@ -149,7 +148,7 @@ diff --git a/chrome/android/java/res/xml/sync_and_services_preferences.xml b/chr 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -@@ -17,7 +17,6 @@ import android.view.MenuItem; +@@ -16,7 +16,6 @@ import android.view.MenuItem; import org.chromium.base.BuildInfo; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; @@ -157,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; -@@ -36,21 +35,15 @@ import org.chromium.ui.text.SpanApplier; +@@ -35,11 +34,7 @@ import org.chromium.ui.text.SpanApplier; */ public class PrivacyPreferences extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { @@ -169,9 +168,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_CONTEXTUAL_SEARCH = "contextual_search"; private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; - 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_CLEAR_BROWSING_DATA = "clear_browsing_data"; +@@ -48,7 +43,6 @@ public class PrivacyPreferences private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = "sync_and_services_link_divider"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -179,22 +176,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri private ManagedPreferenceDelegate mManagedPreferenceDelegate; -@@ -78,12 +71,8 @@ public class PrivacyPreferences - - if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { - // Remove preferences that were migrated to SyncAndServicesPreferences. -- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR)); - preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); -- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING)); -- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING)); - preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); - - // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. - networkPredictionPref.setTitle(R.string.preload_pages_title); -@@ -112,32 +101,11 @@ public class PrivacyPreferences - preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); - preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); +@@ -74,32 +68,11 @@ public class PrivacyPreferences + getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); + getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); - ChromeBaseCheckBoxPreference navigationErrorPref = - (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); @@ -207,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - if (!ContextualSearchFieldTrial.isEnabled()) { -- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); +- getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); - } - - // Listen to changes to the Extended Reporting pref. @@ -225,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri updateSummaries(); } -@@ -146,15 +114,8 @@ public class PrivacyPreferences +@@ -108,15 +81,8 @@ public class PrivacyPreferences String key = preference.getKey(); if (PREF_SEARCH_SUGGESTIONS.equals(key)) { PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue); @@ -241,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } else if (PREF_CONTEXTUAL_SEARCH.equals(key)) { PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false"); } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) { -@@ -181,32 +142,12 @@ public class PrivacyPreferences +@@ -142,32 +108,12 @@ public class PrivacyPreferences CharSequence textOn = getActivity().getResources().getText(R.string.text_on); CharSequence textOff = getActivity().getResources().getText(R.string.text_off); @@ -274,18 +258,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri CheckBoxPreference canMakePaymentPref = (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT); if (canMakePaymentPref != null) { -@@ -225,50 +166,15 @@ public class PrivacyPreferences - boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled(); +@@ -187,42 +133,15 @@ public class PrivacyPreferences contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); } -- -- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING); -- if (usageAndCrashPref != null) { -- usageAndCrashPref.setSummary( -- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn -- : textOff); -- } -- + - Preference usageStatsPref = findPreference(PREF_USAGE_STATS); - if (usageStatsPref != null) { - if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { diff --git a/build/patches/Log-DoH-timeout.patch b/build/patches/Log-DoH-timeout.patch new file mode 100644 index 00000000..f6d2ffa0 --- /dev/null +++ b/build/patches/Log-DoH-timeout.patch @@ -0,0 +1,27 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sun, 15 Dec 2019 17:59:04 +0100 +Subject: Log DoH timeout + +--- + net/dns/dns_session.cc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/net/dns/dns_session.cc b/net/dns/dns_session.cc +--- a/net/dns/dns_session.cc ++++ b/net/dns/dns_session.cc +@@ -325,9 +325,11 @@ base::TimeDelta DnsSession::NextTimeout(unsigned server_index, int attempt) { + } + + base::TimeDelta DnsSession::NextDohTimeout(unsigned doh_server_index) { +- return NextTimeoutHelper( ++ base::TimeDelta delta = NextTimeoutHelper( + GetServerStats(doh_server_index, true /* is _doh_server */), + 0 /* num_backoffs */); ++ LOG(INFO) << "DoH: using timeout: " << delta; ++ return delta; + } + + base::TimeDelta DnsSession::NextTimeoutHelper(ServerStats* server_stats, +-- +2.17.1 + diff --git a/build/patches/Remove-signin-and-data-saver-integrations.patch b/build/patches/Remove-signin-and-data-saver-integrations.patch index 1d1f7684..e8448840 100644 --- a/build/patches/Remove-signin-and-data-saver-integrations.patch +++ b/build/patches/Remove-signin-and-data-saver-integrations.patch @@ -22,9 +22,8 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() .../chrome/browser/ChromeActivity.java | 34 ------- .../browser/preferences/MainPreferences.java | 86 +----------------- .../DataReductionPreferenceFragment.java | 24 ++--- - .../privacy/PrivacyPreferences.java | 15 ---- + .../privacy/PrivacyPreferences.java | 7 -- .../sync/SyncAndServicesPreferences.java | 8 -- - .../preferences/sync/SyncPreferenceUtils.java | 3 - .../chrome/browser/signin/SigninManager.java | 71 ++------------- .../java/strings/android_chrome_strings.grd | 18 ---- .../android/signin/signin_manager_android.cc | 1 - @@ -34,7 +33,7 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() .../components/sync/AndroidSyncSettings.java | 24 +---- .../net/HttpNegotiateAuthenticator.java | 88 +------------------ .../chromoting/base/OAuthTokenFetcher.java | 2 - - 18 files changed, 26 insertions(+), 458 deletions(-) + 17 files changed, 26 insertions(+), 447 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -460,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.preferences.PreferenceUtils; import org.chromium.chrome.browser.preferences.PreferencesLauncher; @@ -468,7 +467,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog; import org.chromium.ui.text.NoUnderlineClickableSpan; -@@ -41,9 +40,6 @@ public class PrivacyPreferences +@@ -40,9 +39,6 @@ public class PrivacyPreferences private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; @@ -478,27 +477,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri private ManagedPreferenceDelegate mManagedPreferenceDelegate; -@@ -86,20 +82,9 @@ public class PrivacyPreferences - networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); - preferenceScreen.addPreference(networkPredictionPref); - -- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); -- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { -- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class, -- SyncAndServicesPreferences.createArguments(false)); -- }); -- syncAndServicesLink.setSummary( -- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), -- new SpanApplier.SpanInfo("", "", linkSpan))); -- - updateSummaries(); - return; - } -- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); +@@ -65,9 +61,6 @@ public class PrivacyPreferences + networkPredictionPref.setOnPreferenceChangeListener(this); + networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); +- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); +- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); +- ChromeBaseCheckBoxPreference searchSuggestionsPref = (ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS); + searchSuggestionsPref.setOnPreferenceChangeListener(this); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java @@ -518,19 +506,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn PreferenceUtils.addPreferencesFromResource(this, R.xml.sync_and_services_preferences); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -118,9 +118,6 @@ public class SyncPreferenceUtils { - if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { - return res.getString(R.string.sync_need_passphrase); - } -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- return context.getString(R.string.sync_and_services_summary_sync_on); -- } - return context.getString(R.string.account_management_sync_summary, accountName); - } - return context.getString(R.string.sync_is_disabled); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java diff --git a/build/patches/User-Agent-anonymize.patch b/build/patches/User-Agent-anonymize.patch index 14825331..641bb8e6 100644 --- a/build/patches/User-Agent-anonymize.patch +++ b/build/patches/User-Agent-anonymize.patch @@ -18,7 +18,7 @@ diff --git a/components/version_info/version_info.cc b/components/version_info/v std::string GetProductNameAndVersionForUserAgent() { - return "Chrome/" + GetVersionNumber(); + // latest stable version -+ return "Chrome/79.0.3945.79"; ++ return "Chrome/79.0.3945.93"; } std::string GetProductName() { -- GitLab From 52202a3ffb8a051242996f6c06b9c6f4714f4c02 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Fri, 27 Dec 2019 16:08:41 +0100 Subject: [PATCH 07/25] Release 79.0.3945.100 --- CHANGELOG.md | 5 +++++ build/GN_ARGS | 7 +++---- build/bromite_patches_list.txt | 5 +++-- build/chromium_patches_list.txt | 1 + 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 814f8fb5..fc8742af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 79.0.3945.100 +* log timeout values for DoH +* enable DFM (fixes https://github.com/bromite/bromite/issues/441) +* updated User-agent version + # 79.0.3945.94 * removed patches which do not apply anymore (Widevine version punting, always show homepage settings, network errors UMA recording) * removed split APKs support (Play integration) diff --git a/build/GN_ARGS b/build/GN_ARGS index 18c108e0..c7902112 100644 --- a/build/GN_ARGS +++ b/build/GN_ARGS @@ -2,10 +2,10 @@ android_channel="stable" blink_symbol_level=1 dcheck_always_on=false debuggable_apks=false -dfmify_dev_ui=true +dfmify_dev_ui=false disable_android_lint=true -disable_autofill_assistant_dfm=false -disable_tab_ui_dfm=false +disable_autofill_assistant_dfm=true +disable_tab_ui_dfm=true enable_av1_decoder=true enable_dav1d_decoder=true enable_feed_in_chrome=false @@ -29,7 +29,6 @@ is_official_build=true rtc_build_examples=false safe_browsing_mode=0 strip_absolute_paths_from_debug_symbols=true -strip_debug_info=true symbol_level=1 target_os="android" use_debug_fission=true diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index b1201248..5e7fa44b 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,5 +1,7 @@ Disable-third-party-cookies-by-default.patch Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch +Disable-unified-consent-on-Android.patch +Unified-consent-miscellanous-backport-fixes.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch @@ -122,7 +124,6 @@ disable-payment-support-by-default.patch disable-background-sync-by-default.patch disable-sensors-access-site-setting-by-default.patch Disable-media-router-and-remoting-by-default.patch -Disable-unified-consent-on-Android.patch Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch Disable-search-ready-omnibox-by-default.patch disable-AdsBlockedInfoBar.patch @@ -140,6 +141,6 @@ Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch Revert-flags-remove-disable-pull-to-refresh-effect.patch Use-dummy-DFM-installer.patch Disable-password-reuse-detection-on-android.patch -Unified-consent-miscellanous-backport-fixes.patch Allow-building-without-feed-support.patch Disable-addresses-autofill-by-default.patch +Log-DoH-timeout.patch diff --git a/build/chromium_patches_list.txt b/build/chromium_patches_list.txt index 77c03c57..0fabaea1 100644 --- a/build/chromium_patches_list.txt +++ b/build/chromium_patches_list.txt @@ -5,3 +5,4 @@ AV1-codec-support.patch Switch-to-fstack-protector-strong.patch Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch Disable-password-reuse-detection-on-android.patch +Allow-building-without-feed-support.patch -- GitLab From b94b80e096725877460448375003908df009fd08 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 31 Dec 2019 18:07:47 +0100 Subject: [PATCH 08/25] Release 79.0.3945.107 --- CHANGELOG.md | 5 + build/bromite_patches_list.txt | 6 +- build/chromium_patches_list.txt | 2 - .../Add-an-always-incognito-mode.patch | 86 ++++---- ...dd-custom-tab-intents-privacy-option.patch | 2 +- ...Add-menu-option-to-toggle-ad-blocker.patch | 193 ----------------- ...-toggle-global-Javascript-preference.patch | 200 ------------------ ...-to-not-persist-tabs-across-sessions.patch | 4 +- ...tings-for-cookies-javascript-and-ads.patch | 131 ++++++++++++ ...Disable-contextual-search-by-default.patch | 37 ---- ...media-router-and-remoting-by-default.patch | 2 +- .../Disable-unified-consent-on-Android.patch | 23 -- ...o-M78-Enable-AImageReader-by-default.patch | 28 ++- ...t-code-in-sync-and-privacy-directory.patch | 162 +++++++------- ...-consent-miscellanous-backport-fixes.patch | 156 -------------- 15 files changed, 291 insertions(+), 746 deletions(-) delete mode 100644 build/patches/Add-menu-option-to-toggle-ad-blocker.patch delete mode 100644 build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch create mode 100644 build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch delete mode 100644 build/patches/Disable-contextual-search-by-default.patch delete mode 100644 build/patches/Disable-unified-consent-on-Android.patch delete mode 100644 build/patches/Unified-consent-miscellanous-backport-fixes.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index fc8742af..ddda6e1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 79.0.3945.107 +* always show cookies, javascript and ads site settings (fixes https://github.com/bromite/bromite/issues/133) +* remove global ads and javascript menu options +* fix crash with first tab open when using always incognito (fixes https://github.com/bromite/bromite/issues/453) + # 79.0.3945.100 * log timeout values for DoH * enable DFM (fixes https://github.com/bromite/bromite/issues/441) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 5e7fa44b..110eded3 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -1,7 +1,5 @@ Disable-third-party-cookies-by-default.patch Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Disable-unified-consent-on-Android.patch -Unified-consent-miscellanous-backport-fixes.patch Restore-classic-new-tab-page.patch Always-use-new-tab-page-for-default-home-page.patch Always-allow-partner-customisation.patch @@ -14,7 +12,6 @@ Remove-EV-certificates.patch promo-disable-Google-promotion-fetching.patch Disable-omission-of-URL-elements-in-Omnibox.patch Modify-default-preferences.patch -Disable-contextual-search-by-default.patch Do-not-store-passwords-by-default.patch Disable-NTP-remote-suggestions-by-default.patch Disable-references-to-fonts.googleapis.com.patch @@ -60,8 +57,6 @@ Add-flag-to-control-video-playback-resume-feature.patch Open-YouTube-links-in-Bromite.patch Add-exit-menu-item.patch Remove-help-menu-item.patch -Add-menu-option-to-toggle-global-Javascript-preference.patch -Add-menu-option-to-toggle-ad-blocker.patch User-Agent-anonymize.patch AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch @@ -144,3 +139,4 @@ Disable-password-reuse-detection-on-android.patch Allow-building-without-feed-support.patch Disable-addresses-autofill-by-default.patch Log-DoH-timeout.patch +Always-show-site-settings-for-cookies-javascript-and-ads.patch diff --git a/build/chromium_patches_list.txt b/build/chromium_patches_list.txt index 0fabaea1..daa4e582 100644 --- a/build/chromium_patches_list.txt +++ b/build/chromium_patches_list.txt @@ -1,6 +1,4 @@ Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch -Disable-unified-consent-on-Android.patch -Unified-consent-miscellanous-backport-fixes.patch AV1-codec-support.patch Switch-to-fstack-protector-strong.patch Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 281198b0..c80d3778 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -4,16 +4,18 @@ Subject: Add an always-incognito mode More specifically, add a preference that causes all new tabs and all clicked links to launch as incognito. +Make sure initial incognito status is correctly recognized. --- chrome/android/chrome_java_sources.gni | 1 + .../java/res/xml/privacy_preferences.xml | 5 ++ .../AlwaysIncognitoLinkInterceptor.java | 73 +++++++++++++++++++ - .../chrome/browser/ChromeActivity.java | 5 ++ - .../browser/appmenu/AppMenuHandlerImpl.java | 10 +++ + .../chrome/browser/ChromeActivity.java | 4 + + .../chrome/browser/ChromeTabbedActivity.java | 6 +- + .../browser/appmenu/AppMenuHandlerImpl.java | 9 +++ .../ChromeContextMenuPopulator.java | 9 ++- .../browser/tabmodel/ChromeTabCreator.java | 20 ++++- .../java/strings/android_chrome_strings.grd | 8 ++ - 8 files changed, 129 insertions(+), 2 deletions(-) + 9 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -72,7 +74,7 @@ new file mode 100644 + */ +public class AlwaysIncognitoLinkInterceptor extends EmptyTabObserver { + -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; ++ public static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; + + private final SharedPreferences alwaysIncognitoContainer; + private final Map lastUrls; @@ -123,51 +125,67 @@ 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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java -@@ -228,6 +228,8 @@ public abstract class ChromeActivity - - private static final int RECORD_MULTI_WINDOW_SCREEN_WIDTH_DELAY_MS = 5000; - -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; -+ - /** - * Timeout in ms for reading PartnerBrowserCustomizations provider. - */ -@@ -1706,6 +1708,9 @@ public abstract class ChromeActivity +@@ -55,6 +55,7 @@ import org.chromium.base.annotations.UsedByReflection; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; + import org.chromium.chrome.browser.IntentHandler.TabOpenType; + import org.chromium.chrome.browser.appmenu.AppMenuBlocker; +@@ -1706,6 +1707,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + return mIncognitoTabCreator; + } return incognito ? mIncognitoTabCreator : mRegularTabCreator; } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +@@ -49,6 +49,7 @@ import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; + import org.chromium.base.task.PostTask; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; + import org.chromium.chrome.browser.IntentHandler.TabOpenType; + import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; +@@ -1652,8 +1653,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo + Bundle savedInstanceState = getSavedInstanceState(); + + // We determine the model as soon as possible so every systems get initialized coherently. +- boolean startIncognito = savedInstanceState != null +- && savedInstanceState.getBoolean("is_incognito_selected", false); ++ boolean startIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false) ++ || (savedInstanceState != null ++ && savedInstanceState.getBoolean("is_incognito_selected", false)); + int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0; + + mTabModelSelectorImpl = (TabModelSelectorImpl) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java -@@ -20,6 +20,7 @@ import android.widget.PopupMenu; +@@ -20,8 +20,10 @@ import android.widget.PopupMenu; import org.chromium.base.Callback; import org.chromium.base.VisibleForTesting; +import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -@@ -58,6 +59,8 @@ class AppMenuHandlerImpl - */ - private Integer mHighlightMenuId; - -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; -+ - /** - * Whether the highlighted item should use a circle highlight or not. - */ -@@ -208,6 +211,13 @@ class AppMenuHandlerImpl + import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver; + import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver; +@@ -208,6 +210,13 @@ class AppMenuHandlerImpl if (mDelegate.shouldShowHeader(appRect.height())) { headerResourceId = mDelegate.getHeaderResourceId(); } + -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) { ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) { + final MenuItem newTabOption = mAppMenu.getMenu().findItem(R.id.new_tab_menu_id); + if (newTabOption != null) + newTabOption.setVisible(false); @@ -179,28 +197,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu 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 +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -16,6 +16,7 @@ import androidx.annotation.IntDef; +@@ -16,7 +16,9 @@ import androidx.annotation.IntDef; import org.chromium.base.library_loader.LibraryProcessType; import org.chromium.base.metrics.RecordHistogram; +import org.chromium.base.ContextUtils; import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabPanel; -@@ -47,6 +48,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - private static final String TAG = "CCMenuPopulator"; - private final ContextMenuItemDelegate mDelegate; - private final @ContextMenuMode int mMode; -+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito"; - private boolean mEnableLensWithSearchByImageText; - - /** + import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; @@ -301,7 +303,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL && !isEmptyUrl(params.getUrl()) && UrlUtilities.isAcceptedScheme(params.getUrl())) { - linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB)); -+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false) ++ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false) + && !mDelegate.isIncognito()) { + // disallow open in new tab + } else diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 3e9585ee..d1562991 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -96,7 +96,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -3987,6 +3987,13 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -3965,6 +3965,13 @@ The site does NOT gain access to the camera. The camera images are only visible 'Installing Extra ICU for Chrome…')."> Extra ICU diff --git a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch b/build/patches/Add-menu-option-to-toggle-ad-blocker.patch deleted file mode 100644 index 9d6daadf..00000000 --- a/build/patches/Add-menu-option-to-toggle-ad-blocker.patch +++ /dev/null @@ -1,193 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 14 Sep 2019 10:19:07 +0200 -Subject: Add menu option to toggle ad blocker - ---- - .../java/res/menu/custom_tabs_menu.xml | 12 ++++++ - chrome/android/java/res/menu/main_menu.xml | 11 +++++ - .../chrome/browser/ChromeActivity.java | 8 ++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 ++++ - .../AppMenuPropertiesDelegateImpl.java | 40 +++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 2 + - .../java/strings/android_chrome_strings.grd | 11 +++++ - 7 files changed, 92 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -75,6 +75,18 @@ - android:checkable="true" /> - - -+ -+

-+ -+ -+ -+
-+ - - - - -+ -+ -+ -+ -+ -+ -+ - -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 -@@ -2226,6 +2226,14 @@ public abstract class ChromeActivity - RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else { - return false; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1767,6 +1767,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo - reportNewTabShortcutUsed(true); - getTabCreator(true).launchNTP(); - } -+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableAdBlock"); - } else if (id == R.id.all_bookmarks_menu_id) { - if (currentTab != null) { - getCompositorViewHolder().hideKeyboard(() -> { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -27,6 +27,7 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.ActivityTabProvider; - import org.chromium.chrome.browser.ChromeSwitches; -+import org.chromium.chrome.browser.ContentSettingsType; - import org.chromium.chrome.browser.ShortcutHelper; - import org.chromium.chrome.browser.banners.AppBannerManager; - import org.chromium.chrome.browser.bookmarks.BookmarkBridge; -@@ -235,6 +236,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - // Prepare translate menu button. - prepareTranslateMenuItem(menu, currentTab); - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - // Hide 'Add to homescreen' for the following: - // * chrome:// pages - Android doesn't know how to direct those URLs. - // * incognito pages - To avoid problems where users create shortcuts in incognito -@@ -310,6 +313,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - PrefServiceBridge.getInstance().isIncognitoModeManaged()); - } - -+ /** -+ * Updates the ad blocker item's state. -+ * -+ * @param menu {@link Menu} to enable ad blocker -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableAdBlockMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_adblock_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_adblock_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_adblock_check_id); -+ -+ -+ // Hide Block ads on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS); -+ -+ // Mark the checkbox if ad blocker is globally activated. -+ enableMenuCheck.setChecked(adBlockEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(adBlockEnabled -+ ? mContext.getString(R.string.menu_enable_adblock_on) -+ : mContext.getString(R.string.menu_enable_adblock_off)); -+ } -+ -+ - /** - * Sets the visibility and labels of the "Add to Home screen" and "Open WebAPK" menu items. - */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -205,6 +205,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - } - -+ updateEnableAdBlockMenuItem(menu, currentTab); -+ - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); - updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); -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 -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2865,6 +2865,17 @@ To change this setting, <resetlink>reset sync

- Turn on Request desktop site - -+ -+ -+ Block ads -+ -+ -+ Turn off ad blocking -+ -+ -+ Turn on ad blocking -+ -+ - - Appearance - --- -2.17.1 - diff --git a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch b/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch deleted file mode 100644 index e5762575..00000000 --- a/build/patches/Add-menu-option-to-toggle-global-Javascript-preference.patch +++ /dev/null @@ -1,200 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Oct 2017 21:26:53 +0200 -Subject: Add menu option to toggle global Javascript preference - ---- - .../java/res/menu/custom_tabs_menu.xml | 12 ++++++ - chrome/android/java/res/menu/main_menu.xml | 13 +++++++ - .../chrome/browser/ChromeActivity.java | 8 ++++ - .../chrome/browser/ChromeTabbedActivity.java | 8 ++++ - .../AppMenuPropertiesDelegateImpl.java | 39 +++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../java/strings/android_chrome_strings.grd | 11 ++++++ - 7 files changed, 92 insertions(+) - -diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml ---- a/chrome/android/java/res/menu/custom_tabs_menu.xml -+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -49,6 +49,7 @@ - -+ - -@@ -63,6 +64,17 @@ - -+ -+

-+ -+ -+ -+
- - - -+ - - -@@ -71,6 +72,18 @@ - android:checkable="true" /> - - -+ -+ -+ -+ -+ -+ -+ -+ - -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 -@@ -2216,6 +2216,14 @@ public abstract class ChromeActivity - currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent( - !usingDesktopUserAgent, reloadOnChange); - RecordUserAction.record("MobileMenuRequestDesktopSite"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.reader_mode_prefs_id) { - DomDistillerUIUtils.openSettings(currentTab.getWebContents()); - } else { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1813,6 +1813,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo - NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); - } - RecordUserAction.record("MobileMenuDownloadManager"); -+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) { -+ final boolean reloadOnChange = !currentTab.isNativePage(); -+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled); -+ if (reloadOnChange) { -+ currentTab.reload(); -+ } -+ RecordUserAction.record("MobileMenuRequestEnableJavascript"); - } else if (id == R.id.open_recently_closed_tab) { - TabModel currentModel = mTabModelSelectorImpl.getCurrentModel(); - if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab(); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -252,6 +252,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */); - -+ updateEnableJavascriptMenuItem(menu, currentTab); -+ - // Only display reader mode settings menu option if the current page is in reader mode. - menu.findItem(R.id.reader_mode_prefs_id) - .setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl())); -@@ -438,6 +440,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - } - -+ /** -+ * Updates the enable JavaScript item's state. -+ * -+ * @param menu {@link Menu} for enable javascript -+ * @param currentTab Current tab being displayed. -+ */ -+ protected void updateEnableJavascriptMenuItem( -+ Menu menu, Tab currentTab) { -+ MenuItem enableMenuRow = menu.findItem(R.id.enable_javascript_row_menu_id); -+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_javascript_id); -+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_javascript_check_id); -+ -+ // Hide enable javascript on all chrome:// pages except for the NTP. -+ String url = currentTab.getUrl(); -+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) -+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); -+ // Also hide enable javascsript on Reader Mode. -+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url); -+ -+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage; -+ enableMenuRow.setVisible(itemVisible); -+ if (!itemVisible) return; -+ -+ boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT); -+ -+ // Mark the checkbox if Javascript is activated on this tab. -+ enableMenuCheck.setChecked(jsEnabled); -+ -+ // This title doesn't seem to be displayed by Android, but it is used to set up -+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}. -+ enableMenuLabel.setTitleCondensed(jsEnabled -+ ? mContext.getString(R.string.menu_enable_javascript_on) -+ : mContext.getString(R.string.menu_enable_javascript_off)); -+ } -+ -+ -+ - /** - * Updates the request desktop site item's state. - * -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -206,6 +206,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat - } - - updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible); -+ updateEnableJavascriptMenuItem(menu, currentTab); - prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); - } - } -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 -+++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -2845,6 +2845,17 @@ To change this setting, <resetlink>reset sync

- Find in page - -+ -+ -+ JavaScript -+ -+ -+ Turn off JavaScript -+ -+ -+ Turn on JavaScript -+ -+ - - Desktop site - --- -2.17.1 - diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 7108dbcf..8e9c94d5 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/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 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1173,8 +1173,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo +@@ -1174,8 +1174,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo boolean hadCipherData = CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState()); @@ -105,7 +105,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 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd -@@ -3699,6 +3699,12 @@ The site does NOT gain access to the camera. The camera images are only visible +@@ -3677,6 +3677,12 @@ The site does NOT gain access to the camera. The camera images are only visible IMAGE diff --git a/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch new file mode 100644 index 00000000..3e324c8f --- /dev/null +++ b/build/patches/Always-show-site-settings-for-cookies-javascript-and-ads.patch @@ -0,0 +1,131 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 28 Dec 2019 10:23:04 +0100 +Subject: Always show site settings for cookies, javascript and ads + +Avoid displaying info about intrusive ads +--- + .../website/SingleWebsitePreferences.java | 46 +++++++++---------- + .../browser/preferences/website/Website.java | 20 ++++++++ + 2 files changed, 42 insertions(+), 24 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +@@ -46,6 +46,7 @@ import java.util.Set; + */ + public class SingleWebsitePreferences extends PreferenceFragmentCompat + implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener { ++ public static final String TAG = "SingleWebsitePreferences"; + // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or + // EXTRA_SITE_ADDRESS (a WebsiteAddress) to be present (but not both). If + // EXTRA_SITE is present, the fragment will display the permissions in that +@@ -345,7 +346,24 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + } else if (i == ContentSettingException.Type.SOUND) { + setUpSoundPreference(preference); + } else { +- setUpListPreference(preference, mSite.getContentSettingPermission(i)); ++ // some Bromite-specific overrides for the defaults ++ @ContentSettingValues ++ @Nullable ++ Integer permission = mSite.getContentSettingPermission(i); ++ // initialize cookie and javascript with the category global defaults ++ if (permission == null) { ++ if (i == ContentSettingException.Type.COOKIE) ++ permission = PrefServiceBridge.getInstance().isCategoryEnabled( ++ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES) ++ ? ContentSettingValues.ALLOW ++ : ContentSettingValues.BLOCK; ++ else if (i == ContentSettingException.Type.JAVASCRIPT) ++ permission = PrefServiceBridge.getInstance().isCategoryEnabled( ++ ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT) ++ ? ContentSettingValues.ALLOW ++ : ContentSettingValues.BLOCK; ++ } ++ setUpListPreference(preference, permission); + } + return; + } +@@ -626,17 +644,8 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + } + + private void setUpAdsInformationalBanner() { +- // Add the informational banner which shows at the top of the UI if ad blocking is +- // activated on this site. +- boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled() +- && WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin()) +- && findPreference(PERMISSION_PREFERENCE_KEYS[ContentSettingException.Type.ADS]) +- != null; +- +- if (!adBlockingActivated) { +- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); +- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER); +- } ++ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO); ++ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER); + } + + private SiteSettingsCategory getWarningCategory() { +@@ -711,6 +720,7 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + // TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are + // effectively treating non-ALLOW values as BLOCK. + int index = (value == ContentSettingValues.ALLOW ? 0 : 1); ++ + listPreference.setValueIndex(index); + listPreference.setOnPreferenceChangeListener(this); + listPreference.setSummary("%s"); +@@ -782,22 +792,10 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat + setUpListPreference(preference, null); + return; + } +- // If the ad blocker is activated, then this site will have ads blocked unless there is an +- // explicit permission disallowing the blocking. +- boolean activated = +- WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin()); + @ContentSettingValues + @Nullable + Integer permission = mSite.getContentSettingPermission(ContentSettingException.Type.ADS); + +- // If |permission| is null, there is no explicit (non-default) permission set for this site. +- // If the site is not considered a candidate for blocking, do the standard thing and remove +- // the preference. +- if (permission == null && !activated) { +- setUpListPreference(preference, null); +- return; +- } +- + // However, if the blocking is activated, we still want to show the permission, even if it + // is in the default state. + if (permission == null) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java +@@ -166,6 +166,26 @@ public class Website implements Serializable { + new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, + getAddress().getOrigin(), ContentSettingValues.BLOCK, ""); + } ++ } else if (type == ContentSettingException.Type.COOKIE) { ++ // It is possible to set the permission without having an existing exception, ++ // because we can show the ALLOW state even when this permission is set to the ++ // default. In that case, just set an exception now to ALLOW to enable changing the ++ // permission. ++ if (mContentSettingException[type] == null) { ++ mContentSettingException[type] = ++ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES, ++ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); ++ } ++ } else if (type == ContentSettingException.Type.JAVASCRIPT) { ++ // It is possible to set the permission without having an existing exception, ++ // because we can show the ALLOW state even when this permission is set to the ++ // default. In that case, just set an exception now to ALLOW to enable changing the ++ // permission. ++ if (mContentSettingException[type] == null) { ++ mContentSettingException[type] = ++ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, ++ getAddress().getOrigin(), ContentSettingValues.ALLOW, ""); ++ } + } else if (type == ContentSettingException.Type.SOUND) { + // It is possible to set the permission without having an existing exception, + // because we always show the sound permission in Site Settings. +-- +2.17.1 + diff --git a/build/patches/Disable-contextual-search-by-default.patch b/build/patches/Disable-contextual-search-by-default.patch deleted file mode 100644 index 4316f499..00000000 --- a/build/patches/Disable-contextual-search-by-default.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Daniel Micay -Date: Wed, 23 Nov 2016 09:26:51 -0500 -Subject: Disable contextual search by default - -Disable contextual search in preference by default ---- - .../chromium/chrome/browser/preferences/PrefServiceBridge.java | 2 +- - chrome/browser/profiles/profile.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java -@@ -449,7 +449,7 @@ public class PrefServiceBridge { - * @return Whether the Contextual Search feature was disabled by the user explicitly. - */ - public boolean isContextualSearchDisabled() { -- return getContextualSearchPreference().equals(CONTEXTUAL_SEARCH_DISABLED); -+ return !getContextualSearchPreference().equals(CONTEXTUAL_SEARCH_ENABLED); - } - - /** -diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc ---- a/chrome/browser/profiles/profile.cc -+++ b/chrome/browser/profiles/profile.cc -@@ -154,7 +154,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { - #if defined(OS_ANDROID) - registry->RegisterStringPref( - prefs::kContextualSearchEnabled, -- std::string(), -+ "false", - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - #endif // defined(OS_ANDROID) - registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); --- -2.17.1 - diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index 64c5a2d1..ad4ac24d 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -40,7 +40,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -232,7 +232,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -231,7 +231,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { prefs::kMediaRouterFirstRunFlowAcknowledged, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); diff --git a/build/patches/Disable-unified-consent-on-Android.patch b/build/patches/Disable-unified-consent-on-Android.patch deleted file mode 100644 index 86a772ce..00000000 --- a/build/patches/Disable-unified-consent-on-Android.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Mon, 12 Aug 2019 08:45:43 +0200 -Subject: Disable unified consent on Android - ---- - components/unified_consent/feature.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/unified_consent/feature.cc b/components/unified_consent/feature.cc ---- a/components/unified_consent/feature.cc -+++ b/components/unified_consent/feature.cc -@@ -11,7 +11,7 @@ namespace unified_consent { - // base::Feature definition. - const base::Feature kUnifiedConsent { - "UnifiedConsent", --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_ANDROID) - base::FEATURE_DISABLED_BY_DEFAULT - #else - base::FEATURE_ENABLED_BY_DEFAULT --- -2.17.1 - diff --git a/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch b/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch index ada62142..80fece9e 100644 --- a/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch +++ b/build/patches/Revert-Merge-to-M78-Enable-AImageReader-by-default.patch @@ -5,8 +5,9 @@ Subject: Revert "[Merge to M78] Enable AImageReader by default." This reverts commit 60c3d4531b180b911767fb3ea7c3553d7f408c25. --- gpu/config/gpu_finch_features.cc | 2 +- + gpu/ipc/service/gpu_init.cc | 8 ++------ media/base/media_switches.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc @@ -20,6 +21,31 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc // Use android SurfaceControl API for managing display compositor's buffer queue // and using overlays on Android. +diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc +--- a/gpu/ipc/service/gpu_init.cc ++++ b/gpu/ipc/service/gpu_init.cc +@@ -493,9 +493,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, + + #if defined(OS_ANDROID) + // Disable AImageReader if the workaround is enabled. +- if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { +- base::android::AndroidImageReader::DisableSupport(); +- } ++ base::android::AndroidImageReader::DisableSupport(); + #endif + #if defined(USE_OZONE) + gpu_feature_info_.supported_buffer_formats_for_allocation_and_texturing = +@@ -523,9 +521,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line, + default_offscreen_surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size()); + + // Disable AImageReader if the workaround is enabled. +- if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) { +- base::android::AndroidImageReader::DisableSupport(); +- } ++ base::android::AndroidImageReader::DisableSupport(); + + UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation()); + } diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc diff --git a/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch b/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch index cd368074..a606944b 100644 --- a/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch +++ b/build/patches/Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch @@ -7,12 +7,14 @@ This reverts commit c672a0683e89eba3554e2562156b3c8532136f21. Restore translations Restore contextual search preference toggle +Disable unified consent on Android +Unified consent miscellanous backport fixes --- - .../java/res/xml/privacy_preferences.xml | 30 ++++ - .../privacy/PrivacyPreferences.java | 159 ++++++++++++++++-- - .../preferences/sync/SyncPreferenceUtils.java | 5 +- - .../sync/SyncNotificationController.java | 17 +- - .../java/strings/android_chrome_strings.grd | 15 ++ + .../java/res/xml/privacy_preferences.xml | 30 +++++ + .../privacy/PrivacyPreferences.java | 117 +++++++++++++++--- + .../preferences/sync/SyncPreferenceUtils.java | 2 +- + .../sync/SyncNotificationController.java | 11 +- + .../java/strings/android_chrome_strings.grd | 15 +++ .../android_chrome_strings_am.xtb | 19 ++- .../android_chrome_strings_ar.xtb | 19 ++- .../android_chrome_strings_bg.xtb | 19 ++- @@ -66,8 +68,11 @@ Restore contextual search preference toggle .../android_chrome_strings_zh-CN.xtb | 19 ++- .../android_chrome_strings_zh-TW.xtb | 19 ++- .../chrome/browser/sync/SyncTestRule.java | 9 +- - .../chromium/chrome/browser/sync/UkmTest.java | 50 +++++- - 59 files changed, 1200 insertions(+), 73 deletions(-) + .../chromium/chrome/browser/sync/UkmTest.java | 50 +++++++- + chrome/browser/profiles/profile.cc | 3 +- + .../unified_consent_service_factory.cc | 5 +- + components/unified_consent/feature.cc | 2 +- + 62 files changed, 1150 insertions(+), 82 deletions(-) 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 @@ -128,14 +133,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 --- 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 -@@ -9,12 +9,15 @@ import android.support.graphics.drawable.VectorDrawableCompat; - import android.support.v7.preference.CheckBoxPreference; - import android.support.v7.preference.Preference; - import android.support.v7.preference.PreferenceFragmentCompat; -+import android.support.v7.preference.PreferenceScreen; - import android.view.Menu; - import android.view.MenuInflater; - import android.view.MenuItem; +@@ -15,6 +15,8 @@ import android.view.MenuItem; import org.chromium.base.BuildInfo; import org.chromium.chrome.R; @@ -144,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; -@@ -33,11 +36,21 @@ import org.chromium.ui.text.SpanApplier; +@@ -33,18 +35,25 @@ import org.chromium.ui.text.SpanApplier; */ public class PrivacyPreferences extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { @@ -158,7 +156,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; - private static final String PREF_USAGE_STATS = "usage_stats_reporting"; 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_CLEAR_BROWSING_DATA = "clear_browsing_data"; + private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = + "sync_and_services_link_divider"; @@ -167,15 +164,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri private ManagedPreferenceDelegate mManagedPreferenceDelegate; -@@ -49,6 +62,7 @@ public class PrivacyPreferences + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { +- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); +- privacyPrefManager.migrateNetworkPredictionPreferences(); + PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); getActivity().setTitle(R.string.prefs_privacy); setHasOptionsMenu(true); - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -+ PreferenceScreen preferenceScreen = getPreferenceScreen(); - - mManagedPreferenceDelegate = createManagedPreferenceDelegate(); - -@@ -62,26 +76,90 @@ public class PrivacyPreferences +@@ -62,26 +71,57 @@ public class PrivacyPreferences networkPredictionPref.setOnPreferenceChangeListener(this); networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); @@ -187,41 +183,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri - syncAndServicesLink.setSummary( - SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), - new SpanApplier.SpanInfo("", "", linkSpan))); -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ // Remove preferences that were migrated to SyncAndServicesPreferences. -+ preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR)); -+ preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); -+ preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING)); -+ preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING)); -+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -+ preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); -+ -+ // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. -+ networkPredictionPref.setTitle(R.string.preload_pages_title); -+ networkPredictionPref.setSummary(R.string.preload_pages_summary); -+ -+ // Put networkPredictionPref after canMakePaymentPref by overriding order value. -+ // However, calling setOrder doesn't change existing order if Preference has already -+ // been added to PreferenceGroup. Remove and re-add it to work around this. -+ // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch. -+ preferenceScreen.removePreference(networkPredictionPref); -+ networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); -+ preferenceScreen.addPreference(networkPredictionPref); -+ -+ Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); -+ NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { -+ PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class, -+ SyncAndServicesPreferences.createArguments(false)); -+ }); -+ syncAndServicesLink.setSummary( -+ SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), -+ new SpanApplier.SpanInfo("", "", linkSpan))); -+ -+ updateSummaries(); -+ return; -+ } -+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); ++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); ++ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); + + ChromeBaseCheckBoxPreference navigationErrorPref = + (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); @@ -234,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); + + if (!ContextualSearchFieldTrial.isEnabled()) { -+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); ++ getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); + } + + // Listen to changes to the Extended Reporting pref. @@ -278,12 +241,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri } return true; -@@ -98,6 +176,36 @@ public class PrivacyPreferences - */ +@@ -99,6 +139,35 @@ public class PrivacyPreferences public void updateSummaries() { PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -+ PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); -+ + + CharSequence textOn = getActivity().getResources().getText(R.string.text_on); + CharSequence textOff = getActivity().getResources().getText(R.string.text_off); + @@ -312,10 +273,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + if (safeBrowsingPref != null) { + safeBrowsingPref.setChecked(prefServiceBridge.isSafeBrowsingEnabled()); + } - ++ CheckBoxPreference canMakePaymentPref = (CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT); -@@ -112,6 +220,19 @@ public class PrivacyPreferences + if (canMakePaymentPref != null) { +@@ -112,6 +181,12 @@ public class PrivacyPreferences prefServiceBridge.isDoNotTrackEnabled() ? R.string.text_on : R.string.text_off); } @@ -324,18 +286,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri + boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled(); + contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); + } -+ -+ Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING); -+ if (usageAndCrashPref != null) { -+ usageAndCrashPref.setSummary( -+ privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn -+ : textOff); -+ } + Preference usageStatsPref = findPreference(PREF_USAGE_STATS); if (usageStatsPref != null) { if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { -@@ -136,6 +257,18 @@ public class PrivacyPreferences +@@ -136,6 +211,18 @@ public class PrivacyPreferences return preference -> { String key = preference.getKey(); PrefServiceBridge prefs = PrefServiceBridge.getInstance(); @@ -357,14 +312,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -118,7 +118,10 @@ public class SyncPreferenceUtils { +@@ -118,7 +118,7 @@ public class SyncPreferenceUtils { if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { return res.getString(R.string.sync_need_passphrase); } - return context.getString(R.string.sync_and_services_summary_sync_on); -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ return context.getString(R.string.sync_and_services_summary_sync_on); -+ } + return context.getString(R.string.account_management_sync_summary, accountName); } return context.getString(R.string.sync_is_disabled); @@ -394,22 +346,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotifi import org.chromium.chrome.browser.sync.GoogleServiceAuthError.State; import org.chromium.chrome.browser.sync.ui.PassphraseActivity; import org.chromium.components.sync.AndroidSyncSettings; -@@ -154,9 +157,17 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC +@@ -154,9 +157,11 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC * @return the intent for opening the settings */ private Intent createSettingsIntent() { - return PreferencesLauncher.createIntentForSettingsPage(ContextUtils.getApplicationContext(), - SyncAndServicesPreferences.class.getName(), - SyncAndServicesPreferences.createArguments(false)); -+ final String fragmentName; -+ final Bundle fragmentArguments; -+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -+ fragmentName = SyncAndServicesPreferences.class.getName(); -+ fragmentArguments = SyncAndServicesPreferences.createArguments(false); -+ } else { -+ fragmentName = AccountManagementFragment.class.getName(); -+ fragmentArguments = null; -+ } ++ final String fragmentName = AccountManagementFragment.class.getName(); ++ final Bundle fragmentArguments = null; ++ + return PreferencesLauncher.createIntentForSettingsPage( + ContextUtils.getApplicationContext(), fragmentName, fragmentArguments); } @@ -1954,6 +1900,46 @@ diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/UkmTe + } } } +diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc +--- a/chrome/browser/profiles/profile.cc ++++ b/chrome/browser/profiles/profile.cc +@@ -154,8 +154,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { + #if defined(OS_ANDROID) + registry->RegisterStringPref( + prefs::kContextualSearchEnabled, +- std::string(), +- user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ std::string()); + #endif // defined(OS_ANDROID) + registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); + registry->RegisterStringPref(prefs::kSessionExitType, std::string()); +diff --git a/chrome/browser/unified_consent/unified_consent_service_factory.cc b/chrome/browser/unified_consent/unified_consent_service_factory.cc +--- a/chrome/browser/unified_consent/unified_consent_service_factory.cc ++++ b/chrome/browser/unified_consent/unified_consent_service_factory.cc +@@ -36,10 +36,7 @@ std::vector GetSyncedServicePrefNames() { + return { + prefs::kSearchSuggestEnabled, prefs::kAlternateErrorPagesEnabled, + prefs::kSafeBrowsingEnabled, prefs::kSafeBrowsingScoutReportingEnabled, +- spellcheck::prefs::kSpellCheckUseSpellingService, +-#if defined(OS_ANDROID) +- prefs::kContextualSearchEnabled +-#endif ++ spellcheck::prefs::kSpellCheckUseSpellingService + }; + } + +diff --git a/components/unified_consent/feature.cc b/components/unified_consent/feature.cc +--- a/components/unified_consent/feature.cc ++++ b/components/unified_consent/feature.cc +@@ -11,7 +11,7 @@ namespace unified_consent { + // base::Feature definition. + const base::Feature kUnifiedConsent { + "UnifiedConsent", +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_ANDROID) + base::FEATURE_DISABLED_BY_DEFAULT + #else + base::FEATURE_ENABLED_BY_DEFAULT -- 2.17.1 diff --git a/build/patches/Unified-consent-miscellanous-backport-fixes.patch b/build/patches/Unified-consent-miscellanous-backport-fixes.patch deleted file mode 100644 index 6d2db27e..00000000 --- a/build/patches/Unified-consent-miscellanous-backport-fixes.patch +++ /dev/null @@ -1,156 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 18 Dec 2019 23:54:37 +0100 -Subject: Unified consent miscellanous backport fixes - ---- - .../privacy/PrivacyPreferences.java | 52 ++----------------- - .../preferences/sync/SyncPreferenceUtils.java | 3 -- - .../sync/SyncNotificationController.java | 12 ++--- - 3 files changed, 6 insertions(+), 61 deletions(-) - -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 -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java -@@ -9,7 +9,6 @@ import android.support.graphics.drawable.VectorDrawableCompat; - import android.support.v7.preference.CheckBoxPreference; - import android.support.v7.preference.Preference; - import android.support.v7.preference.PreferenceFragmentCompat; --import android.support.v7.preference.PreferenceScreen; - import android.view.Menu; - import android.view.MenuInflater; - import android.view.MenuItem; -@@ -45,7 +44,6 @@ public class PrivacyPreferences - private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search"; - private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; - 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_CLEAR_BROWSING_DATA = "clear_browsing_data"; - private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER = - "sync_and_services_link_divider"; -@@ -56,13 +54,10 @@ public class PrivacyPreferences - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { -- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); -- privacyPrefManager.migrateNetworkPredictionPreferences(); - PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); - getActivity().setTitle(R.string.prefs_privacy); - setHasOptionsMenu(true); - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -- PreferenceScreen preferenceScreen = getPreferenceScreen(); - - mManagedPreferenceDelegate = createManagedPreferenceDelegate(); - -@@ -76,41 +71,8 @@ public class PrivacyPreferences - networkPredictionPref.setOnPreferenceChangeListener(this); - networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- // Remove preferences that were migrated to SyncAndServicesPreferences. -- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR)); -- preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS)); -- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING)); -- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING)); -- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING)); -- -- // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch. -- networkPredictionPref.setTitle(R.string.preload_pages_title); -- networkPredictionPref.setSummary(R.string.preload_pages_summary); -- -- // Put networkPredictionPref after canMakePaymentPref by overriding order value. -- // However, calling setOrder doesn't change existing order if Preference has already -- // been added to PreferenceGroup. Remove and re-add it to work around this. -- // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch. -- preferenceScreen.removePreference(networkPredictionPref); -- networkPredictionPref.setOrder(canMakePaymentPref.getOrder()); -- preferenceScreen.addPreference(networkPredictionPref); -- -- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); -- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> { -- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class, -- SyncAndServicesPreferences.createArguments(false)); -- }); -- syncAndServicesLink.setSummary( -- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link), -- new SpanApplier.SpanInfo("", "", linkSpan))); -- -- updateSummaries(); -- return; -- } -- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); -+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER)); -+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK)); - - ChromeBaseCheckBoxPreference navigationErrorPref = - (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR); -@@ -123,7 +85,7 @@ public class PrivacyPreferences - searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); - - if (!ContextualSearchFieldTrial.isEnabled()) { -- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); -+ getPreferenceScreen().removePreference(findPreference(PREF_CONTEXTUAL_SEARCH)); - } - - // Listen to changes to the Extended Reporting pref. -@@ -176,7 +138,6 @@ public class PrivacyPreferences - */ - public void updateSummaries() { - PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance(); -- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance(); - - CharSequence textOn = getActivity().getResources().getText(R.string.text_on); - CharSequence textOff = getActivity().getResources().getText(R.string.text_off); -@@ -226,13 +187,6 @@ public class PrivacyPreferences - contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff); - } - -- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING); -- if (usageAndCrashPref != null) { -- usageAndCrashPref.setSummary( -- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn -- : textOff); -- } -- - Preference usageStatsPref = findPreference(PREF_USAGE_STATS); - if (usageStatsPref != null) { - if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java -@@ -118,9 +118,6 @@ public class SyncPreferenceUtils { - if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) { - return res.getString(R.string.sync_need_passphrase); - } -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- return context.getString(R.string.sync_and_services_summary_sync_on); -- } - return context.getString(R.string.account_management_sync_summary, accountName); - } - return context.getString(R.string.sync_is_disabled); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java -@@ -157,15 +157,9 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC - * @return the intent for opening the settings - */ - private Intent createSettingsIntent() { -- final String fragmentName; -- final Bundle fragmentArguments; -- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { -- fragmentName = SyncAndServicesPreferences.class.getName(); -- fragmentArguments = SyncAndServicesPreferences.createArguments(false); -- } else { -- fragmentName = AccountManagementFragment.class.getName(); -- fragmentArguments = null; -- } -+ final String fragmentName = AccountManagementFragment.class.getName(); -+ final Bundle fragmentArguments = null; -+ - return PreferencesLauncher.createIntentForSettingsPage( - ContextUtils.getApplicationContext(), fragmentName, fragmentArguments); - } --- -2.17.1 - -- GitLab From 43bf98a95647918c10de1f2c149ee0c4567faef8 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 31 Dec 2019 18:15:28 +0100 Subject: [PATCH 09/25] Remove entry about bug not yet fixed --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddda6e1b..6e649017 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,6 @@ # 79.0.3945.107 * always show cookies, javascript and ads site settings (fixes https://github.com/bromite/bromite/issues/133) * remove global ads and javascript menu options -* fix crash with first tab open when using always incognito (fixes https://github.com/bromite/bromite/issues/453) # 79.0.3945.100 * log timeout values for DoH -- GitLab From 4b8e47060b7c3d5a87cb416bc37365a747aaa04d Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 6 Jan 2020 09:44:32 +0100 Subject: [PATCH 10/25] Update features list --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 80521c34..36768c44 100644 --- a/README.md +++ b/README.md @@ -69,14 +69,14 @@ Yes, since version 69. While the desktop version of Chromium has an option to di # Features -* native adblock engine +* customizable adblock filters via user-provided URL * remove click-tracking and AMP from search results -* DNS-over-HTTPS support via Google, Cloudflare, Quad9 and AdGuard servers -* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support -* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines -* chrome flags to disable custom intents and clear session on exit +* DNS-over-HTTPS support, you can use any DoH endpoint * always-incognito mode * completely removed safe browsing and other privacy-unfriendly features +* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support +* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines available by default +* chrome flags to disable custom intents and clear session on exit * anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs * use fixed User-Agent to conceal real model and browser version * privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects -- GitLab From dbf32840c649c2d5b4d761014d813310c55a3519 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Wed, 8 Jan 2020 02:14:39 +0100 Subject: [PATCH 11/25] Release 79.0.3945.111 --- CHANGELOG.md | 7 + build/bromite_patches_list.txt | 4 +- ...dd-custom-tab-intents-privacy-option.patch | 16 +- ...-to-not-persist-tabs-across-sessions.patch | 33 +- .../Automated-domain-substitution.patch | 260391 +++++++++++++++ ...media-router-and-remoting-by-default.patch | 2 +- build/patches/Disable-safe-browsing.patch | 53 +- .../Disable-sync-services-menu-entry.patch | 2 +- .../Do-not-enable-QUIC-by-default.patch | 43 + build/patches/Log-DoH-timeout.patch | 27 - .../patches/Modify-default-preferences.patch | 4 +- ...e-signin-and-data-saver-integrations.patch | 4 +- ...-enable-horizontal-tab-switcher-flag.patch | 23 + ...o-M78-Enable-AImageReader-by-default.patch | 44 +- ...t-code-in-sync-and-privacy-directory.patch | 184 +- 15 files changed, 260632 insertions(+), 205 deletions(-) create mode 100644 build/patches/Automated-domain-substitution.patch create mode 100644 build/patches/Do-not-enable-QUIC-by-default.patch delete mode 100644 build/patches/Log-DoH-timeout.patch create mode 100644 build/patches/Restore-enable-horizontal-tab-switcher-flag.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e649017..69a27d1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 79.0.3945.111 +* restore enable-horizontal-tab-switcher flag +* remove non-working contextual search settings +* disable QUIC by default +* fix DoH timeouts issue (https://github.com/bromite/bromite/issues/437) +* remove logging for DoH timeouts + # 79.0.3945.107 * always show cookies, javascript and ads site settings (fixes https://github.com/bromite/bromite/issues/133) * remove global ads and javascript menu options diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 110eded3..497ed187 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -138,5 +138,7 @@ Use-dummy-DFM-installer.patch Disable-password-reuse-detection-on-android.patch Allow-building-without-feed-support.patch Disable-addresses-autofill-by-default.patch -Log-DoH-timeout.patch Always-show-site-settings-for-cookies-javascript-and-ads.patch +Automated-domain-substitution.patch +Do-not-enable-QUIC-by-default.patch +Restore-enable-horizontal-tab-switcher-flag.patch diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index d1562991..561118dd 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -35,9 +35,9 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + android:title="@string/allow_custom_tab_intents_title" + android:summary="@string/allow_custom_tab_intents_summary" + android:defaultValue="false" /> - +@@ -34,6 +34,11 @@ + android:title="@string/allow_custom_tab_intents_title" + android:summary="@string/allow_custom_tab_intents_summary" + android:defaultValue="false" /> + +Date: Sat, 4 Jan 2020 11:35:27 +0100 +Subject: Automated domain substitution + +--- + .gn | 2 +- + BUILD.gn | 2 +- + PRESUBMIT.py | 54 +- + android_webview/browser/aw_browser_context.cc | 2 +- + .../browser/aw_content_browser_client.h | 2 +- + .../browser/aw_contents_io_thread_client.cc | 2 +- + android_webview/browser/aw_settings.cc | 2 +- + .../network_service/aw_web_resource_request.h | 2 +- + .../aw_safe_browsing_whitelist_manager.cc | 4 +- + .../aw_safe_browsing_whitelist_manager.h | 2 +- + android_webview/common/url_constants.cc | 2 +- + android_webview/java/res/values/strings.xml | 2 +- + .../android_webview/AwFirebaseConfig.java | 2 +- + .../java/strings/android_webview_strings.grd | 2 +- + .../renderer/aw_content_renderer_client.cc | 2 +- + android_webview/tools/record_netlog.py | 4 +- + .../tools/remove_preinstalled_webview.py | 2 +- + .../webview_shell/WebViewTracingActivity.java | 2 +- + .../page_cycler/PageCyclerTest.java | 6 +- + ash/app_list/PRESUBMIT.py | 2 +- + .../views/assistant/privacy_info_view.cc | 2 +- + ash/ash_strings.grd | 8 +- + .../assistant_interaction_controller.cc | 4 +- + ash/assistant/assistant_setup_controller.cc | 2 +- + ash/assistant/util/deep_link_util.cc | 14 +- + ash/laser/laser_pointer_view.cc | 2 +- + ash/login/ui/login_user_menu_view.cc | 2 +- + ash/public/cpp/app_list/app_list_features.cc | 2 +- + .../cpp/app_list/internal_app_id_constants.h | 2 +- + ash/resources/PRESUBMIT.py | 4 +- + .../client/shell_browser_main_parts.cc | 2 +- + .../client/shell_new_window_delegate.cc | 4 +- + ash/wm/screen_pinning_controller.h | 2 +- + .../tablet_mode/tablet_mode_window_manager.cc | 2 +- + base/BUILD.gn | 4 +- + base/PRESUBMIT.py | 4 +- + base/allocator/BUILD.gn | 2 +- + .../address_space_randomization.h | 2 +- + base/android/android_image_reader_abi.h | 4 +- + .../org/chromium/base/ApplicationStatus.java | 2 +- + .../src/org/chromium/base/LocaleUtils.java | 4 +- + .../java/src/org/chromium/base/PathUtils.java | 2 +- + .../org/chromium/base/StrictModeContext.java | 2 +- + .../base/library_loader/LibraryLoader.java | 2 +- + base/android/jni_generator/PRESUBMIT.py | 2 +- + base/android/jni_generator/jni_generator.py | 2 +- + .../src/org/chromium/base/PiiEliderTest.java | 2 +- + .../library_loader/library_loader_hooks.h | 2 +- + base/atomicops.h | 2 +- + base/base_paths_win.cc | 4 +- + base/command_line.cc | 2 +- + base/compiler_specific.h | 6 +- + base/debug/debugger_posix.cc | 6 +- + base/debug/proc_maps_linux.cc | 2 +- + base/debug/stack_trace_fuchsia.cc | 2 +- + base/debug/stack_trace_posix.cc | 4 +- + base/debug/stack_trace_win.cc | 2 +- + base/file_version_info.h | 2 +- + base/files/file_enumerator_posix.cc | 2 +- + base/files/file_util_posix.cc | 4 +- + base/files/file_util_win.cc | 6 +- + base/files/file_win.cc | 2 +- + base/hash/hash.cc | 2 +- + base/i18n/file_util_icu.cc | 2 +- + base/ios/device_util.mm | 2 +- + base/lazy_instance_helpers.h | 4 +- + base/logging.cc | 4 +- + base/mac/close_nocancel.cc | 2 +- + base/memory/aligned_memory.cc | 2 +- + base/memory/discardable_shared_memory.cc | 2 +- + base/memory/scoped_refptr.h | 2 +- + base/message_loop/message_pump.h | 2 +- + base/message_loop/message_pump_win.cc | 4 +- + base/metrics/field_trial.h | 2 +- + base/metrics/histogram_functions.h | 2 +- + base/metrics/histogram_macros.h | 2 +- + base/metrics/user_metrics.h | 2 +- + base/native_library_win.cc | 2 +- + base/optional.h | 4 +- + base/process/launch.h | 4 +- + base/process/launch_posix.cc | 2 +- + base/process/memory.h | 2 +- + base/process/memory_win.cc | 2 +- + base/process/process.h | 2 +- + base/process/process_metrics.h | 2 +- + base/profiler/metadata_recorder.h | 2 +- + base/rand_util_win.cc | 2 +- + base/synchronization/lock.h | 2 +- + base/system/sys_info.h | 2 +- + .../sequence_manager/sequence_manager_impl.cc | 2 +- + .../thread_pool/thread_group_native_win.h | 12 +- + base/third_party/cityhash/city.h | 2 +- + .../dynamic_annotations/dynamic_annotations.h | 4 +- + base/third_party/libevent/evdns.c | 2 +- + base/third_party/libevent/evdns.h | 2 +- + base/third_party/libevent/evport.c | 2 +- + base/third_party/libevent/min_heap.h | 2 +- + base/third_party/nspr/prtime.cc | 8 +- + base/third_party/nspr/prtime.h | 4 +- + base/third_party/symbolize/symbolize.cc | 4 +- + base/threading/platform_thread_win.cc | 4 +- + base/threading/platform_thread_win.h | 2 +- + base/time/time.h | 2 +- + base/time/time_win.cc | 8 +- + .../heap_profiler_allocation_context.h | 2 +- + base/trace_event/malloc_dump_provider.cc | 4 +- + base/trace_event/process_memory_dump.h | 2 +- + base/trace_event/trace_category.h | 2 +- + base/values.h | 2 +- + base/win/pe_image.h | 2 +- + base/win/registry.cc | 6 +- + base/win/registry.h | 4 +- + base/win/scoped_com_initializer.cc | 2 +- + base/win/shortcut.h | 4 +- + base/win/win_util.cc | 10 +- + base/win/win_util.h | 2 +- + base/win/wincrypt_shim.h | 2 +- + base/win/windows_version.h | 2 +- + base/win/wmi.cc | 2 +- + base/win/wmi.h | 8 +- + build/android/PRESUBMIT.py | 2 +- + build/android/apk_operations.py | 2 +- + build/android/dump_apk_resource_strings.py | 2 +- + build/android/gradle/generate_gradle.py | 2 +- + .../android/gyp/assert_static_initializers.py | 2 +- + build/android/gyp/compile_resources.py | 2 +- + build/android/gyp/javac.py | 4 +- + build/android/gyp/lint.py | 2 +- + build/android/gyp/main_dex_list.py | 2 +- + build/android/gyp/merge_manifest.py | 4 +- + build/android/gyp/proguard.py | 2 +- + .../android/incremental_install/installer.py | 2 +- + .../ClassLoaderPatcher.java | 6 +- + build/android/lint/suppress.py | 2 +- + build/android/lint/suppressions.xml | 4 +- + build/android/pylib/constants/__init__.py | 2 +- + .../android/commands/unzip/Unzip.java | 2 +- + build/android/pylib/device_settings.py | 8 +- + build/android/pylib/dex/dex_parser.py | 10 +- + .../instrumentation/instrumentation_parser.py | 4 +- + .../json_results_generator.py | 2 +- + .../pylib/utils/google_storage_helper.py | 4 +- + build/android/pylib/utils/maven_downloader.py | 2 +- + build/android/pylib/utils/simpleperf.py | 4 +- + build/android/resource_sizes.py | 2 +- + build/build_config.h | 4 +- + build/chromeos/PRESUBMIT.py | 2 +- + build/config/BUILDCONFIG.gn | 2 +- + build/config/android/rules.gni | 2 +- + build/config/chrome_build.gni | 2 +- + build/config/chromeos/rules.gni | 6 +- + build/config/compiler/BUILD.gn | 6 +- + build/config/compiler/compiler.gni | 2 +- + build/config/fuchsia/BUILD.gn | 2 +- + build/config/fuchsia/elfinfo.py | 2 +- + build/config/nacl/BUILD.gn | 2 +- + build/config/nacl/rules.gni | 2 +- + build/config/sanitizers/sanitizers.gni | 2 +- + build/config/win/BUILD.gn | 6 +- + build/linux/install-chromeos-fonts.py | 2 +- + .../linux/sysroot_scripts/install-sysroot.py | 2 +- + .../unbundle/remove_bundled_libraries.py | 2 +- + build/mac/tweak_info_plist.py | 6 +- + build/mac_toolchain.py | 2 +- + build/nocompile.gni | 2 +- + build/package_mac_toolchain.py | 2 +- + build/run_swarming_xcode_install.py | 4 +- + build/sanitizers/lsan_suppressions.cc | 4 +- + build/sanitizers/sanitizer_options.cc | 2 +- + build/sanitizers/tsan_suppressions.cc | 4 +- + build/toolchain/cros_toolchain.gni | 2 +- + build/toolchain/nacl/BUILD.gn | 2 +- + build/toolchain/win/midl.py | 2 +- + build/toolchain/win/rc/rc.py | 2 +- + build/vs_toolchain.py | 2 +- + build/whitespace_file.txt | 2 +- + buildtools/README.txt | 2 +- + buildtools/clang_format/README.txt | 6 +- + buildtools/ensure_gn_version.py | 2 +- + cc/PRESUBMIT.py | 2 +- + cc/animation/animation_delegate.h | 2 +- + cc/input/browser_controls_offset_manager.cc | 2 +- + cc/input/scroll_state.h | 2 +- + cc/tiles/gpu_image_decode_cache.h | 2 +- + cc/trees/layer_tree_host_impl.cc | 2 +- + chrome/BUILD.gn | 2 +- + chrome/PRESUBMIT.py | 2 +- + .../res/values/strings.xml | 4 +- + ...rBrowserCustomizationsProviderExample.java | 4 +- + .../AutofillAssistantClient.java | 2 +- + .../carousel/AssistantChip.java | 6 +- + ...roid_chrome_autofill_assistant_strings.grd | 2 +- + .../media/router/MediaStatusBridge.java | 4 +- + .../chrome/browser/vr/VrShellDelegate.java | 2 +- + .../browser/feed/FeedConfiguration.java | 4 +- + .../browser/omnibox/geo/CellInfoDelegate.java | 2 +- + ...ntent_suggestions_card_modern_reversed.xml | 2 +- + .../java/res/layout/preference_compat.xml | 2 +- + .../java/res/values-sw600dp/values.xml | 2 +- + chrome/android/java/res/values/dimens.xml | 4 +- + chrome/android/java/res/values/strings.xml | 2 +- + chrome/android/java/res/values/values.xml | 2 +- + chrome/android/java/src/PRESUBMIT.py | 2 +- + .../chrome/browser/ChromeApplication.java | 2 +- + .../chrome/browser/ChromeStringConstants.java | 6 +- + .../chrome/browser/ChromeTabbedActivity.java | 4 +- + .../chrome/browser/IntentHandler.java | 6 +- + .../browser/LaunchIntentDispatcher.java | 2 +- + .../chrome/browser/ShortcutHelper.java | 2 +- + .../ClientAppBroadcastReceiver.java | 8 +- + .../browser/browserservices/Relationship.java | 2 +- + .../CompositorSurfaceManagerImpl.java | 2 +- + .../compositor/CompositorViewHolder.java | 2 +- + .../chrome/browser/crash/FirebaseConfig.java | 2 +- + .../customtabs/CustomButtonParams.java | 2 +- + .../directactions/ChromeDirectActionIds.java | 2 +- + .../DirectActionCoordinator.java | 2 +- + .../browser/feedback/ConnectivityChecker.java | 4 +- + .../chrome/browser/help/HelpAndFeedback.java | 2 +- + .../infobar/InfoBarContainerLayout.java | 2 +- + .../chrome/browser/infobar/InfoBarLayout.java | 2 +- + .../browser/modaldialog/ModalDialogView.java | 2 +- + .../RemoteViewsWithNightModeInflater.java | 2 +- + .../notifications/NotificationConstants.java | 2 +- + .../NotificationManagerProxy.java | 4 +- + .../NotificationPlatformBridge.java | 2 +- + .../indicator/ConnectivityDetector.java | 4 +- + .../chrome/browser/omaha/OmahaBase.java | 2 +- + .../browser/omaha/RequestGenerator.java | 4 +- + .../chrome/browser/omaha/ResponseParser.java | 2 +- + .../browser/omnibox/OmniboxUrlEmphasizer.java | 4 +- + .../omnibox/geo/GeolocationHeader.java | 2 +- + .../geo/partner_location_descriptor.proto | 2 +- + .../answer/AnswerSuggestionProcessor.java | 2 +- + .../suggestions/answer/AnswerText.java | 2 +- + .../answer/AnswerTextNewLayout.java | 6 +- + .../basic/SuggestionViewProperties.java | 2 +- + .../entity/EntitySuggestionProcessor.java | 4 +- + .../page_info/ConnectionInfoPopup.java | 2 +- + .../browser/payments/AndroidPaymentApp.java | 8 +- + .../payments/AndroidPaymentAppFinder.java | 2 +- + .../chrome/browser/payments/PaymentApp.java | 4 +- + .../payments/PaymentManifestVerifier.java | 2 +- + .../browser/payments/PaymentRequestImpl.java | 10 +- + .../browser/payments/ui/DimmingDialog.java | 2 +- + .../browser/payments/ui/PaymentRequestUI.java | 2 +- + .../preferences/SearchEngineAdapter.java | 2 +- + .../preferences/password/ExportFlow.java | 2 +- + .../ClearBrowsingDataTabsFragment.java | 2 +- + .../preferences/sync/SyncPreferenceUtils.java | 4 +- + .../snackbar/TemplatePreservingTextView.java | 4 +- + .../browser/ssl/CaptivePortalHelper.java | 2 +- + .../suggestions/SuggestionsConfig.java | 2 +- + .../SuggestionsNavigationDelegate.java | 2 +- + .../browser/sync/GoogleServiceAuthError.java | 2 +- + .../chromium/chrome/browser/tab/TabState.java | 2 +- + .../browser/toolbar/top/CustomTabToolbar.java | 4 +- + .../PackageReplacedBroadcastReceiver.java | 2 +- + .../chrome/browser/vr/ArCoreInstallUtils.java | 2 +- + .../chrome/browser/vr/ArCoreShim.java | 6 +- + .../java/strings/android_chrome_strings.grd | 50 +- + .../chrome/browser/ShortcutHelperTest.java | 42 +- + .../filter/SearchOfflineItemFilterTest.java | 12 +- + .../download/home/list/ShareUtilsTest.java | 92 +- + .../ExploreSitesCategoryUnitTest.java | 10 +- + .../firstrun/FirstRunFlowSequencerTest.java | 2 +- + .../firstrun/ToSAckedReceiverTest.java | 2 +- + .../native_page/NativePageFactoryTest.java | 2 +- + .../CctOfflinePageModelObserverTest.java | 2 +- + .../browser/omaha/ResponseParserTest.java | 2 +- + .../omnibox/AutocompleteEditTextTest.java | 20 +- + .../browser/omnibox/UrlBarUnitTest.java | 6 +- + .../geo/GeolocationHeaderUnitTest.java | 2 +- + .../SearchEngineChoiceNotificationTest.java | 2 +- + .../browser/signin/SigninManagerTest.java | 6 +- + .../browser/signin/SigninPromoUtilTest.java | 14 +- + .../suggestions/tile/TileGroupUnitTest.java | 2 +- + .../browser/tasks/JourneyManagerTest.java | 6 +- + .../browser/util/UrlUtilitiesUnitTest.java | 10 +- + .../browser/webapps/WebApkInfoTest.java | 12 +- + .../webapps/WebappDataStorageTest.java | 4 +- + .../browser/webapps/WebappInfoTest.java | 2 +- + .../webapps/WebappLauncherActivityTest.java | 2 +- + .../browser/webapps/WebappRegistryTest.java | 44 +- + chrome/android/webapk/PRESUBMIT.py | 2 +- + .../lib/client/WebApkValidatorTest.java | 2 +- + .../webapk/lib/client/WebApkValidator.java | 2 +- + .../lib/common/WebApkMetaDataUtils.java | 2 +- + .../HostBrowserLauncherParamsTest.java | 40 +- + .../webapk/shell_apk/MainActivityTest.java | 40 +- + .../webapk/shell_apk/WebApkUtilsTest.java | 18 +- + .../manifest/maps_go_manifest_config.json | 10 +- + .../webapk/shell_apk/res/values/dimens.xml | 2 +- + chrome/app/PRESUBMIT.py | 8 +- + chrome/app/chrome_command_ids.h | 2 +- + chrome/app/chromium_strings.grd | 8 +- + chrome/app/generated_resources.grd | 220 +- + chrome/app/google_chrome_strings.grd | 8 +- + chrome/app/resources/locale_settings.grd | 12 +- + chrome/app/theme/PRESUBMIT.py | 4 +- + chrome/browser/about_flags.cc | 12 +- + .../autofill_assistant/client_android.cc | 2 +- + .../contextual_search_context.h | 2 +- + .../digital_asset_links_handler.cc | 2 +- + .../digital_asset_links_handler.h | 4 +- + .../browser/android/explore_sites/url_util.cc | 2 +- + .../explore_sites/url_util_experimental.cc | 2 +- + .../search_permissions_service.h | 2 +- + chrome/browser/android/tab_android.cc | 2 +- + chrome/browser/android/tab_state.cc | 4 +- + .../android/usage_stats/website_event.proto | 2 +- + chrome/browser/android/vr/PRESUBMIT.py | 2 +- + .../android/webapk/webapk_installer.cc | 2 +- + .../apps/app_service/app_icon_factory.cc | 2 +- + .../apps/platform_apps/install_chrome_app.cc | 2 +- + .../autofill/autofill_gstatic_reader.cc | 4 +- + .../browser_switcher_service.cc | 2 +- + .../browser_switcher/ieem_sitelist_parser.cc | 4 +- + .../browsing_data/cookies_tree_model.cc | 18 +- + .../captive_portal/captive_portal_service.h | 2 +- + .../captive_portal_tab_helper.h | 2 +- + .../browser/chrome_browser_application_mac.mm | 2 +- + .../browser/chrome_content_browser_client.cc | 2 +- + .../chromeos/android_sms/android_sms_urls.cc | 18 +- + .../chromeos/android_sms/android_sms_urls.h | 4 +- + chrome/browser/chromeos/app_mode/fake_cws.cc | 2 +- + .../auth/arc_background_auth_code_fetcher.cc | 2 +- + .../arc/auth/arc_robot_auth_code_fetcher.cc | 2 +- + .../arc/bluetooth/arc_bluetooth_bridge.cc | 6 +- + .../arc/bluetooth/arc_bluetooth_bridge.h | 2 +- + .../chromeos/arc/policy/arc_policy_util.h | 2 +- + .../tracing/arc_app_performance_tracing.cc | 2 +- + .../chromeos/assistant/assistant_util.cc | 6 +- + .../backdrop_wallpaper_handlers.cc | 6 +- + .../browser/chromeos/crostini/crostini_util.h | 2 +- + .../customization/customization_document.cc | 2 +- + .../dbus/proxy_resolution_service_provider.h | 2 +- + .../drive/drive_integration_service.cc | 2 +- + .../chromeos/extensions/default_web_app_ids.h | 8 +- + ...ocal_account_management_policy_provider.cc | 8 +- + .../file_manager/private_api_drive.cc | 2 +- + .../file_manager/private_api_misc.cc | 2 +- + .../file_manager/file_browser_handlers.h | 2 +- + .../file_manager/file_manager_string_util.cc | 10 +- + .../chromeos/file_manager/file_tasks.h | 4 +- + .../fileapi/provider_async_file_util.h | 2 +- + .../first_run/drive_first_run_controller.cc | 4 +- + .../chromeos/first_run/goodies_displayer.cc | 2 +- + chrome/browser/chromeos/hats/hats_dialog.cc | 2 +- + .../hats/hats_notification_controller.cc | 2 +- + .../easy_unlock/easy_unlock_key_names.cc | 2 +- + .../recommend_apps/device_configuration.proto | 18 +- + .../recommend_apps_fetcher_impl.cc | 2 +- + .../login/session/user_session_manager.cc | 4 +- + .../chromeos/login/ui/captive_portal_view.cc | 2 +- + .../login/users/chrome_user_manager_impl.cc | 2 +- + .../policy/active_directory_policy_manager.cc | 2 +- + .../chromeos/policy/heartbeat_scheduler.cc | 6 +- + .../remote_commands/crd_host_delegate.cc | 16 +- + .../status_collector/status_collector.h | 2 +- + .../release_notes/release_notes_storage.cc | 2 +- + .../scheduler_configuration_manager.h | 2 +- + .../chromeos/smb_client/smb_service_helper.h | 2 +- + chrome/browser/chromeos/tpm_firmware_update.h | 2 +- + chrome/browser/chromeos/u2f_notification.cc | 4 +- + .../recovery_component_installer.cc | 2 +- + .../protocol_handler_registry.cc | 4 +- + .../data_reduction_proxy_chrome_settings.cc | 10 +- + .../data_reduction_proxy_settings_android.cc | 2 +- + .../devtools/device/adb/mock_adb_server.cc | 12 +- + chrome/browser/devtools/url_constants.cc | 4 +- + .../engagement/site_engagement_helper.cc | 2 +- + chrome/browser/extensions/api/README.txt | 4 +- + .../cryptotoken_private_api.cc | 10 +- + .../chrome_content_rules_registry.h | 2 +- + .../api/declarative_content/content_action.h | 2 +- + .../declarative_content/content_condition.h | 2 +- + .../declarative_content/content_predicate.h | 8 +- + .../content_predicate_evaluator.h | 4 +- + .../extension_info_generator.cc | 2 +- + .../extensions/api/downloads/downloads_api.h | 2 +- + .../api/identity/gaia_web_auth_flow.h | 2 +- + .../identity_launch_web_auth_flow_function.cc | 2 +- + .../removable_storage_provider.cc | 2 +- + .../removable_storage_provider_linux.cc | 2 +- + .../chrome_management_api_delegate.cc | 2 +- + .../permissions/permissions_api_helpers.cc | 2 +- + .../chrome_extension_browser_constants.cc | 2 +- + .../chrome_extension_function_details.cc | 2 +- + .../whitelist.h | 2 +- + .../extension_browser_window_helper.cc | 2 +- + .../extensions/external_pref_loader.cc | 2 +- + chrome/browser/extensions/install_signer.cc | 2 +- + .../browser/extensions/navigation_observer.cc | 4 +- + .../browser/extensions/permissions_updater.cc | 12 +- + .../scripting_permissions_modifier.cc | 4 +- + .../scripting_permissions_modifier.h | 6 +- + .../chrome_extension_downloader_factory.cc | 2 +- + .../updater/chrome_update_client_config.cc | 4 +- + .../feedback/feedback_uploader_chrome.cc | 2 +- + .../log_sources/crash_ids_source.cc | 4 +- + chrome/browser/flag-metadata.json | 348 +- + chrome/browser/flag_descriptions.cc | 4 +- + ...gle_search_domain_mixing_metrics_emitter.h | 4 +- + ...ch_domain_mixing_metrics_emitter_factory.h | 2 +- + chrome/browser/google/google_update_win.cc | 2 +- + .../context_menu_content_type_web_view.cc | 2 +- + .../browser/importer/firefox_profile_lock.cc | 8 +- + .../browser/importer/firefox_profile_lock.h | 8 +- + .../importer/firefox_profile_lock_posix.cc | 6 +- + .../importer/firefox_profile_lock_win.cc | 6 +- + .../service_discovery_client_mac.mm | 4 +- + .../lookalike_url_navigation_throttle.cc | 16 +- + .../lookalikes/lookalike_url_service.h | 2 +- + .../remote/flinging_controller_bridge.cc | 2 +- + ...ted_media_identifier_permission_context.cc | 2 +- + .../discovery/discovery_network_list_win.cc | 2 +- + .../media/router/media_sinks_observer.h | 2 +- + .../presentation/local_presentation_manager.h | 2 +- + .../cast/cast_media_route_provider.cc | 2 +- + .../dial/dial_media_route_provider.cc | 12 +- + .../media/webrtc/webrtc_event_log_uploader.cc | 2 +- + .../media/webrtc/webrtc_log_uploader.cc | 2 +- + .../fileapi/media_path_filter.cc | 2 +- + .../swap_thrashing_monitor_delegate_win.cc | 2 +- + .../browser/metrics/thread_watcher_android.h | 2 +- + .../nacl_host/nacl_infobar_delegate.cc | 2 +- + chrome/browser/net/dns_probe_runner.cc | 2 +- + chrome/browser/net/dns_probe_runner.h | 2 +- + chrome/browser/net/service_providers_win.cc | 2 +- + ...ial_comparison_cert_verifier_controller.cc | 2 +- + .../notification_permission_context.h | 4 +- + .../notification_platform_bridge_mac.mm | 2 +- + .../win/notification_template_builder.cc | 2 +- + .../amp_page_load_metrics_observer.h | 2 +- + .../from_gws_page_load_metrics_observer.cc | 2 +- + ...rvice_worker_page_load_metrics_observer.cc | 4 +- + .../password_manager_util_win.cc | 2 +- + .../browser/pepper_broker_infobar_delegate.cc | 2 +- + .../permissions/mock_permission_request.cc | 8 +- + .../permissions/permission_context_base.cc | 10 +- + .../browser/permissions/permission_uma_util.h | 2 +- + chrome/browser/platform_util_chromeos.cc | 2 +- + chrome/browser/platform_util_win.cc | 2 +- + chrome/browser/prefs/pref_metrics_service.cc | 2 +- + chrome/browser/process_singleton_posix.cc | 2 +- + chrome/browser/process_singleton_win.cc | 2 +- + .../profile_resetter/reset_report_uploader.cc | 2 +- + chrome/browser/profiles/profile.h | 2 +- + chrome/browser/profiles/profile_impl.cc | 2 +- + chrome/browser/profiles/profile_impl.h | 2 +- + chrome/browser/profiles/profile_manager.h | 2 +- + .../profiles/profile_shortcut_manager_win.cc | 2 +- + chrome/browser/profiles/profile_window.cc | 4 +- + .../push_messaging_constants.cc | 2 +- + .../push_messaging_notification_manager.h | 2 +- + .../push_messaging_service_impl.cc | 2 +- + chrome/browser/resources/PRESUBMIT.py | 2 +- + .../resources/bookmarks/command_manager.js | 2 +- + .../resources/chromeos/about_os_credits.html | 6 +- + .../add_supervision/add_supervision.js | 14 +- + .../chromeos/arc_support/background.js | 14 +- + .../chromeos/arc_support/playstore.js | 6 +- + .../assistant_optin/assistant_value_prop.js | 2 +- + .../camera/src/js/google-analytics-bundle.js | 2 +- + .../resources/chromeos/camera/src/js/util.js | 2 +- + .../chromeos/camera/src/manifest.json | 2 +- + .../chromevox/background/background.js | 2 +- + .../chromevox/background/options.css | 2 +- + .../chromevox/chromevox/background/options.js | 2 +- + .../chromevox/chromevox/background/prefs.js | 6 +- + .../chromevox/injected/event_watcher.js | 2 +- + .../chromevox/chromevox/injected/history.js | 2 +- + .../chromevox/injected/navigation_manager.js | 2 +- + .../chromeos/chromevox/common/dom_util.js | 10 +- + .../chromevox/common/selection_util.js | 14 +- + .../chromevox/common/traverse_table.js | 2 +- + .../chromevox/common/traverse_util.js | 2 +- + .../chromeos/chromevox/common/xpath_util.js | 2 +- + .../cvox2/background/command_handler.js | 2 +- + .../cvox2/background/language_switching.js | 4 +- + .../chromevox/cvox2/background/panel.html | 2 +- + .../chromevox/cvox2/background/tutorial.js | 6 +- + .../chromevox/extensions/searchvox/loader.js | 2 +- + .../chromeos/chromevox/manifest.json.jinja2 | 4 +- + .../chromevox/strings/chromevox_strings.grd | 6 +- + .../tools/webstore_extension_util.py | 10 +- + .../connectivity_diagnostics/manifest.json | 4 +- + .../resources/chromeos/echo/manifest.json | 8 +- + .../resources/chromeos/emulator/icons.html | 2 +- + .../chromeos/genius_app/manifest.json | 32 +- + .../input_method/google_xkb_manifest.json | 8 +- + .../browser/resources/chromeos/login/cr_ui.js | 2 +- + .../modules/discover_module_redeem_offers.js | 2 +- + .../modules/discover_module_sync_files.js | 2 +- + .../chromeos/login/encryption_migration.js | 2 +- + .../chromeos/login/offline_gaia.html | 2 +- + .../resources/chromeos/login/offline_gaia.js | 2 +- + .../login/saml_password_attributes.js | 2 +- + .../login/screen_arc_terms_of_service.js | 6 +- + .../select_to_speak/manifest.json.jinja2 | 8 +- + .../chromeos/select_to_speak/mock_tts.js | 2 +- + .../chromeos/select_to_speak/options.css | 2 +- + .../select_to_speak/select_to_speak.js | 8 +- + .../strings/select_to_speak_strings.grd | 2 +- + .../chromeos/switch_access/switch_access.js | 2 +- + .../chromeos/wallpaper_manager/manifest.json | 2 +- + .../chromeos/zip_archiver/cpp/volume.h | 4 +- + .../zip_archiver/externs_js/chrome.js | 30 +- + .../chromeos/zip_archiver/js/types.js | 12 +- + .../chromeos/zip_archiver/js/volume.js | 2 +- + .../resources/cloud_print_app/manifest.json | 4 +- + chrome/browser/resources/cryptotoken/asn1.js | 2 +- + .../cryptotoken/cryptotokenapprovedorigins.js | 2 +- + .../browser/resources/cryptotoken/enroller.js | 4 +- + .../default_apps/external_extensions.json | 6 +- + .../discards/graph_doc_template.html | 2 +- + chrome/browser/resources/downloads/icons.html | 2 +- + .../resources/feedback/js/feedback_util.js | 10 +- + .../resources/gaia_auth_host/authenticator.js | 6 +- + .../resources/hangout_services/manifest.json | 2 +- + chrome/browser/resources/hats/hats.html | 2 +- + .../scope_approval_dialog.js | 4 +- + chrome/browser/resources/inspect/inspect.html | 4 +- + .../browser/resources/local_ntp/customize.js | 2 +- + chrome/browser/resources/local_ntp/doodles.js | 4 +- + chrome/browser/resources/local_ntp/voice.js | 8 +- + .../resources/media/mei_preload/manifest.json | 2 +- + chrome/browser/resources/media/webrtc_logs.js | 2 +- + .../media_router/extension/manifest.yaml | 8 +- + .../domain_security_policy_view.html | 4 +- + .../domain_security_policy_view.js | 2 +- + .../resources/net_internals/events_view.html | 2 +- + .../network_speech_synthesis/manifest.json | 2 +- + .../network_speech_synthesis/tts_extension.js | 2 +- + chrome/browser/resources/omnibox/omnibox.html | 2 +- + .../resources/omnibox/omnibox_output.js | 8 +- + .../browser/resources/pdf/elements/icons.html | 2 +- + .../plugin_metadata/plugins_chromeos.json | 2 +- + .../plugin_metadata/plugins_linux.json | 4 +- + .../plugin_metadata/plugins_mac.json | 4 +- + .../plugin_metadata/plugins_win.json | 4 +- + .../browser/resources/policy/policy_base.js | 2 +- + .../print_preview/cloud_print_interface_js.js | 2 +- + .../cloud_print_interface_manager.js | 2 +- + .../print_preview/data/destination_store.js | 2 +- + .../resources/settings/a11y_page/a11y_page.js | 2 +- + .../settings/a11y_page/manage_a11y_page.html | 2 +- + .../settings/about_page/about_page.html | 4 +- + .../about_page/channel_switcher_dialog.html | 2 +- + .../appearance_page/appearance_page.js | 2 +- + .../change_password_browser_proxy.js | 2 +- + .../chromeos/os_about_page/os_about_page.html | 2 +- + .../app_management_page/icons.html | 2 +- + .../resources/settings/chromeos/os_icons.html | 2 +- + .../chromeos/os_people_page/os_people_page.js | 4 +- + .../crostini_page/crostini_shared_paths.js | 2 +- + .../resources/settings/device_page/stylus.js | 2 +- + chrome/browser/resources/settings/icons.html | 2 +- + .../incompatible_application_item.js | 2 +- + .../languages_page/edit_dictionary_page.js | 2 +- + .../people_page/users_add_user_dialog.js | 4 +- + .../plugin_vm_page/plugin_vm_shared_paths.js | 2 +- + .../settings/settings_shared_css.html | 2 +- + .../supervised_user_internals.js | 2 +- + .../usb_internals/descriptor_panel.js | 4 +- + .../resources/user_manager/user_manager.js | 2 +- + .../resources/webstore_app/manifest.json | 4 +- + .../certificate_reporting_service.cc | 2 +- + .../chrome_cleaner/srt_field_trial_win.cc | 8 +- + .../chrome_password_protection_service.cc | 8 +- + .../client_side_detection_service.cc | 4 +- + .../binary_upload_service.cc | 2 +- + .../check_client_download_request_base.cc | 4 +- + .../download_protection/download_feedback.cc | 2 +- + .../ppapi_download_request.cc | 6 +- + .../download_protection/two_phase_uploader.h | 2 +- + .../incident_report_uploader_impl.cc | 2 +- + .../default_settings_fetcher.cc | 2 +- + .../background/ntp_background_service.cc | 6 +- + .../search/background/ntp_backgrounds.cc | 10 +- + chrome/browser/search/local_ntp_source.cc | 8 +- + chrome/browser/search/ntp_icon_source.cc | 2 +- + .../one_google_bar_loader_impl.cc | 2 +- + chrome/browser/search/search.h | 4 +- + chrome/browser/sharing/vapid_key_manager.h | 2 +- + ...hrome_signin_proxying_url_loader_factory.h | 2 +- + chrome/browser/signin/signin_ui_util.cc | 2 +- + .../browser/ssl/captive_portal_helper_win.cc | 2 +- + chrome/browser/ssl/cert_logger.proto | 2 +- + .../browser/ssl/connection_help_tab_helper.cc | 2 +- + chrome/browser/ssl/ssl_blocking_page.h | 2 +- + chrome/browser/startup_data.h | 2 +- + .../child_accounts/family_info_fetcher.cc | 2 +- + .../child_accounts/kids_management_api.cc | 2 +- + .../permission_request_creator_apiary.cc | 2 +- + .../kids_chrome_management_client.cc | 6 +- + .../supervised_user/logged_in_user_mixin.cc | 2 +- + .../supervised_user_block_interstitial.html | 2 +- + .../supervised_user_service.cc | 2 +- + .../supervised_user_url_filter.cc | 16 +- + .../supervised_user_url_filter.h | 6 +- + .../sync_sessions_router_tab_helper.h | 2 +- + .../sampling/shared_sampler_win_defines.h | 2 +- + .../browser/themes/theme_syncable_service.cc | 2 +- + .../browser/tracing/crash_service_uploader.cc | 2 +- + .../ui/app_list/app_list_syncable_service.cc | 2 +- + .../arc/arc_app_reinstall_app_result.cc | 2 +- + .../search_result_ranker.cc | 2 +- + .../assistant/proactive_suggestions_loader.cc | 2 +- + .../browser/ui/ash/chrome_shell_delegate.cc | 2 +- + .../safe_browsing_triggered_popup_blocker.h | 4 +- + .../tab_under_navigation_throttle.h | 2 +- + ...r_content_setting_bubble_model_delegate.cc | 2 +- + chrome/browser/ui/browser_navigator_params.h | 2 +- + chrome/browser/ui/chrome_pages.cc | 2 +- + .../ui/cocoa/applescript/tab_applescript.h | 2 +- + .../browser/ui/cocoa/share_menu_controller.mm | 2 +- + .../ui/crypto_module_password_dialog_nss.cc | 2 +- + .../installation_error_infobar_delegate.cc | 2 +- + .../javascript_dialog_tab_helper.cc | 2 +- + chrome/browser/ui/libgtkui/gtk_util.cc | 2 +- + .../browser/ui/media_router/media_cast_mode.h | 2 +- + .../ui/media_router/query_result_manager.h | 2 +- + chrome/browser/ui/page_info/page_info.cc | 4 +- + ...le_password_manager_navigation_throttle.cc | 4 +- + .../passwords/manage_passwords_bubble_model.h | 2 +- + .../passwords/manage_passwords_view_utils.h | 4 +- + .../ui/passwords/passwords_model_delegate.h | 2 +- + .../browser/ui/pdf/adobe_reader_info_win.cc | 2 +- + .../browser/ui/search/ntp_user_data_logger.cc | 2 +- + chrome/browser/ui/search/search_tab_helper.h | 2 +- + chrome/browser/ui/signin_view_controller.cc | 2 +- + .../ui/startup/startup_browser_creator.cc | 2 +- + .../ui/startup/startup_browser_creator_impl.h | 2 +- + chrome/browser/ui/tab_helpers.h | 2 +- + .../toolbar/media_router_contextual_menu.cc | 6 +- + .../views/accessibility/invert_bubble_view.cc | 6 +- + chrome/browser/ui/views/frame/browser_view.h | 2 +- + .../browser/ui/views/hats/hats_web_dialog.cc | 2 +- + .../ui/views/network_profile_bubble_view.cc | 2 +- + .../ui/views/omnibox/omnibox_view_views.cc | 4 +- + .../ui/views/omnibox/omnibox_view_views.h | 4 +- + .../ui/views/outdated_upgrade_bubble_view.cc | 2 +- + .../ui/views/session_crashed_bubble_view.cc | 2 +- + ...rofile_signin_confirmation_dialog_views.cc | 2 +- + chrome/browser/ui/webui/PRESUBMIT.py | 2 +- + .../add_supervision/add_supervision_ui.cc | 4 +- + .../assistant_optin/assistant_optin_utils.cc | 2 +- + .../chromeos/login/gaia_screen_handler.cc | 2 +- + .../chromeos/login/gaia_screen_handler.h | 2 +- + chrome/browser/ui/webui/components_ui.cc | 2 +- + .../ui/webui/interstitials/interstitial_ui.cc | 2 +- + .../browser/ui/webui/management_ui_handler.cc | 2 +- + chrome/browser/ui/webui/ntp/new_tab_ui.cc | 4 +- + .../ui/webui/ntp/ntp_resource_cache.cc | 8 +- + .../browser/ui/webui/profile_info_watcher.h | 2 +- + .../chromeos/parental_controls_handler.cc | 4 +- + .../webui/settings/reset_settings_handler.cc | 2 +- + .../settings/settings_cookies_view_handler.cc | 2 +- + chrome/browser/ui/webui/settings_utils_win.cc | 2 +- + .../ui/webui/welcome/google_apps_handler.cc | 12 +- + .../webui/welcome/ntp_background_handler.cc | 2 +- + .../ui/window_sizer/window_sizer_ash.cc | 2 +- + chrome/browser/vr/PRESUBMIT.py | 2 +- + .../externally_installed_web_app_prefs.cc | 4 +- + .../external_web_app_manager.h | 2 +- + .../web_applications/web_app_install_task.cc | 2 +- + .../chrome_authenticator_request_delegate.cc | 6 +- + .../conflicts/enumerate_shell_extensions.cc | 2 +- + .../win/conflicts/installed_applications.cc | 4 +- + chrome/browser/win/jumplist.cc | 2 +- + chrome/child/delay_load_failure_hook.cc | 2 +- + chrome/chrome_cleaner/PRESUBMIT.py | 2 +- + .../components/recovery_component.cc | 4 +- + .../system_restore_point_component.cc | 2 +- + chrome/chrome_cleaner/crash/crash_keys.cc | 2 +- + .../crash/crashpad_crash_reporter.cc | 6 +- + .../engines/common/registry_util.cc | 2 +- + .../engines/common/registry_util.h | 2 +- + .../engines/controllers/elevating_facade.cc | 2 +- + .../executables/chrome_cleaner_main.cc | 2 +- + chrome/chrome_cleaner/http/http_agent_impl.cc | 2 +- + chrome/chrome_cleaner/ipc/sandbox.cc | 2 +- + .../logging/cleaner_logging_service.cc | 4 +- + .../chrome_cleaner/logging/dummy_api_keys.cc | 4 +- + .../chrome_cleaner/logging/registry_logger.cc | 2 +- + .../logging/reporter_logging_service.cc | 4 +- + .../mojom/engine_requests.mojom | 2 +- + chrome/chrome_cleaner/os/disk_util.cc | 4 +- + .../os/file_path_sanitization.cc | 2 +- + .../os/post_reboot_registration.cc | 2 +- + chrome/chrome_cleaner/os/registry.cc | 2 +- + chrome/chrome_cleaner/os/system_util.h | 4 +- + .../chrome_cleaner/os/system_util_cleaner.cc | 4 +- + chrome/chrome_cleaner/os/task_scheduler.cc | 2 +- + .../shortcut_parser/target/lnk_parser.cc | 2 +- + chrome/chrome_cleaner/pup_data/pup_data.h | 2 +- + chrome/chrome_elf/BUILD.gn | 2 +- + chrome/chrome_elf/chrome_elf_main.cc | 4 +- + chrome/chrome_elf/nt_registry/nt_registry.cc | 4 +- + chrome/chrome_elf/nt_registry/nt_registry.h | 2 +- + .../chrome_elf/pe_image_safe/pe_image_safe.h | 2 +- + .../third_party_dlls/hardcoded_blocklist.cc | 2 +- + chrome/chrome_elf/third_party_dlls/main.h | 2 +- + chrome/common/chrome_features.cc | 6 +- + chrome/common/chrome_switches.cc | 2 +- + chrome/common/client_hints/client_hints.cc | 2 +- + .../cloud_print/cloud_print_constants.cc | 2 +- + chrome/common/conflicts/module_watcher_win.cc | 2 +- + chrome/common/extensions/PRESUBMIT.py | 2 +- + chrome/common/extensions/api/PRESUBMIT.py | 2 +- + .../common/extensions/api/_api_features.json | 4 +- + chrome/common/extensions/api/cookies.json | 2 +- + chrome/common/extensions/api/debugger.json | 8 +- + .../extensions/api/declarative_content.json | 4 +- + .../api/enterprise_device_attributes.idl | 2 +- + chrome/common/extensions/api/gcm.json | 4 +- + chrome/common/extensions/api/i18n.json | 2 +- + chrome/common/extensions/api/identity.idl | 4 +- + .../extensions/api/image_writer_private.idl | 2 +- + chrome/common/extensions/api/instance_id.json | 2 +- + chrome/common/extensions/api/tabs.json | 4 +- + chrome/common/extensions/api/tts.json | 2 +- + .../extensions/api/webrtc_audio_private.idl | 2 +- + chrome/common/extensions/api/webview_tag.json | 4 +- + chrome/common/extensions/api/windows.json | 2 +- + .../extensions/chrome_extensions_client.cc | 6 +- + .../api/bookmarks/basic/manifest.json | 2 +- + .../examples/api/bookmarks/basic/popup.html | 2 +- + .../docs/examples/api/commands/background.js | 2 +- + .../default_command_override/background.js | 2 +- + .../api/deviceInfo/basic/manifest.json | 2 +- + .../examples/api/deviceInfo/basic/popup.html | 2 +- + .../download_filename_controller/bg.js | 2 +- + .../download_filename_controller/options.html | 4 +- + .../api/downloads/download_manager/popup.html | 2 +- + .../api/downloads/download_manager/popup.js | 4 +- + .../api/downloads/downloads_overwrite/bg.js | 2 +- + .../api/eventPage/basic/background.js | 8 +- + .../api/eventPage/basic/manifest.json | 2 +- + .../examples/api/notifications/options.html | 2 +- + .../api/omnibox/newtab_search/background.js | 2 +- + .../override/override_igoogle/redirect.html | 2 +- + .../docs/examples/api/tabs/pin/background.js | 2 +- + .../api/water_alarm_notification/popup.html | 2 +- + .../basic/navigation_collector.js | 4 +- + .../apps/background-simple/index.html | 10 +- + .../apps/hello-java/HelloLicenseServlet.java | 6 +- + .../apps/hello-python/httplib2/__init__.py | 2 +- + .../docs/examples/apps/hello-python/main.py | 6 +- + .../examples/extensions/app_launcher/popup.js | 2 +- + .../docs/examples/extensions/buildbot/bg.js | 16 +- + .../extensions/buildbot/manifest.json | 6 +- + .../examples/extensions/buildbot/popup.js | 6 +- + .../extensions/calendar/javascript/options.js | 2 +- + .../extensions/calendar/views/options.html | 2 +- + .../extensions/chrome_search/background.js | 6 +- + .../extensions/chrome_search/manifest.json | 2 +- + .../extensions/constant_context/background.js | 2 +- + .../extensions/constant_context/manifest.json | 4 +- + .../extensions/download_images/background.js | 2 +- + .../extensions/email_this_page/options.js | 2 +- + .../docs/examples/extensions/fx/bg.js | 10 +- + .../examples/extensions/gdocs/background.html | 10 +- + .../extensions/gdocs/chrome_ex_oauth.html | 2 +- + .../extensions/gdocs/chrome_ex_oauth.js | 4 +- + .../examples/extensions/gdocs/manifest.json | 8 +- + .../examples/extensions/gdocs/options.html | 2 +- + .../docs/examples/extensions/gdocs/popup.html | 18 +- + .../examples/extensions/gmail/background.js | 2 +- + .../examples/extensions/gmail/manifest.json | 2 +- + .../imageinfo/imageinfo/binaryajax.js | 2 +- + .../extensions/imageinfo/imageinfo/exif.js | 2 +- + .../extensions/irc/servlet/index.html | 2 +- + .../irc/servlet/jstemplate/jsevalcontext.js | 2 +- + .../irc/servlet/jstemplate/jstemplate.js | 2 +- + .../extensions/irc/servlet/jstemplate/util.js | 2 +- + .../managed_bookmarks/background.js | 6 +- + .../examples/extensions/mappy/manifest.json | 6 +- + .../docs/examples/extensions/mappy/popup.js | 4 +- + .../extensions/maps_app/manifest.json | 4 +- + .../examples/extensions/news/css/feed.css | 2 +- + .../examples/extensions/news/css/options.css | 2 +- + .../extensions/news/javascript/feed.js | 2 +- + .../extensions/news/javascript/options.js | 2 +- + .../extensions/news/javascript/util.js | 6 +- + .../examples/extensions/news/manifest.json | 2 +- + .../examples/extensions/news/views/feed.html | 6 +- + .../extensions/news/views/options.html | 2 +- + .../examples/extensions/news_a11y/feed.js | 4 +- + .../extensions/news_a11y/manifest.json | 4 +- + .../news_i18n/_locales/en/messages.json | 2 +- + .../extensions/news_i18n/manifest.json | 2 +- + .../extensions/oauth_contacts/background.js | 10 +- + .../oauth_contacts/chrome_ex_oauth.js | 4 +- + .../extensions/oauth_contacts/contacts.html | 2 +- + .../extensions/oauth_contacts/manifest.json | 8 +- + .../proxy_configuration/background.js | 2 +- + .../extensions/proxy_configuration/popup.js | 2 +- + .../proxy_error_handler.js | 2 +- + .../proxy_form_controller.js | 10 +- + .../extensions/talking_alarm_clock/popup.html | 4 +- + .../examples/extensions/ttsdemo/ttsdemo.html | 2 +- + .../howto/tab_shortcuts/tab_shortcuts.js | 2 +- + .../tutorials/analytics/manifest.json | 2 +- + .../examples/tutorials/analytics/popup.js | 4 +- + .../broken_background_color/background.js | 2 +- + .../get_started_complete/background.js | 2 +- + .../examples/tutorials/getstarted/popup.html | 2 +- + .../examples/tutorials/getstarted/popup.js | 10 +- + .../oauth_tutorial_complete/manifest.json | 2 +- + .../oauth_tutorial_complete/oauth.js | 4 +- + .../extensions/docs/server2/PRESUBMIT.py | 2 +- + .../extensions/docs/server2/admin_servlets.py | 2 +- + .../extensions/docs/server2/branch_utility.py | 2 +- + .../extensions/docs/server2/datastore_util.py | 2 +- + .../docs/server2/gcs_file_system.py | 2 +- + .../extensions/docs/server2/patch_servlet.py | 10 +- + .../extensions/docs/server2/redirector.py | 8 +- + .../docs/server2/rietveld_patcher.py | 10 +- + .../common/extensions/docs/server2/servlet.py | 2 +- + .../extensions/docs/server2/update_cache.py | 2 +- + .../extensions/docs/server2/url_constants.py | 12 +- + .../extensions/docs/static/js/search.js | 2 +- + .../common/extensions/docs/static/js/site.js | 2 +- + .../docs/templates/articles/a11y.html | 10 +- + .../docs/templates/articles/about_apps.html | 12 +- + .../docs/templates/articles/activeTab.html | 2 +- + .../docs/templates/articles/analytics.html | 6 +- + .../templates/articles/angular_framework.html | 26 +- + .../docs/templates/articles/api_index.html | 2 +- + .../docs/templates/articles/api_other.html | 2 +- + .../templates/articles/app_architecture.html | 4 +- + .../templates/articles/app_bluetooth.html | 4 +- + .../articles/app_codelab_basics.html | 2 +- + .../articles/app_codelab_filesystem.html | 4 +- + .../articles/app_codelab_images.html | 6 +- + .../articles/app_codelab_import_todomvc.html | 2 +- + .../templates/articles/app_codelab_intro.html | 4 +- + .../articles/app_codelab_publish.html | 2 +- + .../docs/templates/articles/app_external.html | 8 +- + .../templates/articles/app_frameworks.html | 2 +- + .../docs/templates/articles/app_identity.html | 16 +- + .../docs/templates/articles/app_network.html | 2 +- + .../docs/templates/articles/apps.html | 12 +- + .../articles/arc_in_app_payments.html | 14 +- + .../templates/articles/arc_playservices.html | 14 +- + .../docs/templates/articles/autoupdate.html | 10 +- + .../templates/articles/background_pages.html | 2 +- + .../articles/chrome_apps_on_mobile.html | 14 +- + .../articles/contentSecurityPolicy.html | 2 +- + .../templates/articles/content_scripts.html | 4 +- + .../articles/declare_permissions.html | 2 +- + .../articles/desktop_notifications.html | 8 +- + .../docs/templates/articles/develop_apps.html | 4 +- + .../docs/templates/articles/devguide.html | 2 +- + .../docs/templates/articles/devtools.html | 20 +- + .../docs/templates/articles/experimental.html | 8 +- + .../templates/articles/extensions_index.html | 14 +- + .../articles/external_extensions.html | 14 +- + .../docs/templates/articles/faq.html | 20 +- + .../docs/templates/articles/game_engines.html | 4 +- + .../docs/templates/articles/getstarted.html | 8 +- + .../templates/articles/getstarted_arc.html | 20 +- + .../docs/templates/articles/hosting.html | 8 +- + .../templates/articles/hosting_changes.html | 34 +- + .../docs/templates/articles/inform_users.html | 2 +- + .../docs/templates/articles/inline_faq.html | 4 +- + .../templates/articles/linux_hosting.html | 12 +- + .../docs/templates/articles/manifest/app.html | 4 +- + .../articles/manifest/default_locale.html | 2 +- + .../articles/manifest/description.html | 4 +- + .../manifest/externally_connectable.html | 4 +- + .../articles/manifest/homepage_url.html | 4 +- + .../templates/articles/manifest/icons.html | 4 +- + .../docs/templates/articles/manifest/key.html | 10 +- + .../articles/manifest/kiosk_enabled.html | 28 +- + .../articles/manifest/manifest_version.html | 2 +- + .../manifest/minimum_chrome_version.html | 2 +- + .../articles/manifest/nacl_modules.html | 2 +- + .../templates/articles/manifest/name.html | 4 +- + .../articles/manifest/requirements.html | 6 +- + .../templates/articles/manifest/sandbox.html | 10 +- + .../templates/articles/manifest/storage.html | 6 +- + .../articles/manifest/url_handlers.html | 2 +- + .../templates/articles/manifest/version.html | 2 +- + .../manifest/web_accessible_resources.html | 6 +- + .../templates/articles/match_patterns.html | 30 +- + .../docs/templates/articles/messaging.html | 4 +- + .../docs/templates/articles/migration.html | 46 +- + .../templates/articles/nativeMessaging.html | 12 +- + .../docs/templates/articles/npapi.html | 6 +- + .../docs/templates/articles/offline_apps.html | 2 +- + .../templates/articles/offline_storage.html | 10 +- + .../docs/templates/articles/overview.html | 4 +- + .../docs/templates/articles/packaging.html | 6 +- + .../docs/templates/articles/performance.html | 6 +- + .../articles/permission_warnings.html | 6 +- + .../docs/templates/articles/publish_app.html | 6 +- + .../templates/articles/richNotifications.html | 4 +- + .../templates/articles/sandboxingEval.html | 4 +- + .../docs/templates/articles/security.html | 20 +- + .../templates/articles/sencha_framework.html | 2 +- + .../templates/articles/settings_override.html | 8 +- + .../templates/articles/single_purpose.html | 28 +- + .../docs/templates/articles/themes.html | 10 +- + .../templates/articles/tut_analytics.html | 16 +- + .../templates/articles/tut_debugging.html | 10 +- + .../tut_migration_to_manifest_v2.html | 2 +- + .../docs/templates/articles/tut_oauth.html | 22 +- + .../docs/templates/articles/tutorials.html | 2 +- + .../templates/articles/user_interface.html | 12 +- + .../docs/templates/articles/user_privacy.html | 6 +- + .../docs/templates/articles/webstore.html | 2 +- + .../docs/templates/articles/xhr.html | 14 +- + .../intros/bluetooth_low_energy.html | 2 +- + .../docs/templates/intros/bookmarks.html | 4 +- + .../docs/templates/intros/browserAction.html | 2 +- + .../docs/templates/intros/browsingData.html | 2 +- + .../templates/intros/certificateProvider.html | 4 +- + .../docs/templates/intros/commands.html | 2 +- + .../templates/intros/contentSettings.html | 2 +- + .../docs/templates/intros/cookies.html | 4 +- + .../templates/intros/declarativeContent.html | 6 +- + .../intros/declarativeNetRequest.html | 14 +- + .../intros/declarativeWebRequest.html | 10 +- + .../intros/devtools_inspectedWindow.html | 2 +- + .../docs/templates/intros/downloads.html | 2 +- + .../intros/enterprise_deviceAttributes.html | 2 +- + .../intros/enterprise_platformKeys.html | 2 +- + .../docs/templates/intros/events.html | 8 +- + .../docs/templates/intros/fontSettings.html | 2 +- + .../docs/templates/intros/history.html | 4 +- + .../docs/templates/intros/i18n.html | 10 +- + .../docs/templates/intros/input_ime.html | 2 +- + .../templates/intros/networkingPrivate.html | 2 +- + .../docs/templates/intros/pageAction.html | 2 +- + .../docs/templates/intros/permissions.html | 14 +- + .../docs/templates/intros/privacy.html | 2 +- + .../docs/templates/intros/storage.html | 2 +- + .../docs/templates/intros/tabs.html | 2 +- + .../docs/templates/intros/webNavigation.html | 6 +- + .../docs/templates/intros/webRequest.html | 6 +- + .../docs/templates/intros/webview_tag.html | 12 +- + .../docs/templates/intros/windows.html | 6 +- + .../docs/templates/json/apps_sidenav.json | 2 +- + .../docs/templates/json/chrome_sidenav.json | 2 +- + .../templates/json/content_providers.json | 2 +- + .../templates/json/extensions_sidenav.json | 4 +- + .../docs/templates/json/intro_tables.json | 22 +- + .../docs/templates/json/strings.json | 40 +- + .../docs/templates/private/api_reference.html | 2 +- + .../docs/templates/private/article.html | 6 +- + .../docs/templates/private/fatnav.html | 2 +- + .../private/intro_tables/master_message.html | 2 +- + .../private/permissions/background.html | 2 +- + .../private/permissions/favicon.html | 2 +- + .../private/permissions/notifications.html | 4 +- + .../private/permissions/pointer_lock.html | 2 +- + .../docs/templates/private/site.html | 10 +- + .../docs/templates/private/warning_beta.html | 4 +- + .../docs/templates/private/warning_dev.html | 2 +- + .../templates/private/warning_master.html | 2 +- + .../docs/templates/public/apps/redirects.json | 18 +- + .../public/extensions/redirects.json | 10 +- + .../docs/templates/public/owners.html | 2 +- + chrome/common/google_url_loader_throttle.cc | 4 +- + .../common/importer/firefox_importer_utils.cc | 2 +- + chrome/common/media_router/media_source.h | 2 +- + chrome/common/multi_process_lock.h | 2 +- + chrome/common/pref_names.cc | 2 +- + .../common/safe_browsing/client_model.proto | 4 +- + chrome/common/search.mojom | 2 +- + chrome/common/service_process.mojom | 2 +- + chrome/common/url_constants.cc | 194 +- + chrome/common/url_constants.h | 2 +- + .../gaiacp/associated_user_validator.cc | 2 +- + .../credential_provider/gaiacp/auth_utils.cc | 2 +- + chrome/credential_provider/gaiacp/dllmain.cc | 2 +- + .../gaiacp/gaia_credential_base.cc | 12 +- + chrome/credential_provider/gaiacp/gcp_utils.h | 4 +- + .../gaiacp/internet_availability_checker.cc | 2 +- + .../credential_provider/gaiacp/mdm_utils.cc | 4 +- + chrome/docs/devtools-pillar.html | 2 +- + chrome/docs/index.html | 18 +- + chrome/docs/platform-pillar.html | 12 +- + chrome/install_static/install_constants.h | 4 +- + chrome/install_static/install_details.h | 2 +- + chrome/install_static/install_util.cc | 4 +- + chrome/install_static/install_util.h | 4 +- + chrome/install_static/user_data_dir.cc | 2 +- + chrome/installer/gcapi/gcapi.cc | 2 +- + chrome/installer/gcapi/gcapi_dll.cc | 2 +- + .../chromium-browser.appdata.xml | 10 +- + .../mini_installer/mini_installer.cc | 2 +- + chrome/installer/setup/eula/oem_ar.html | 2 +- + chrome/installer/setup/eula/oem_bg.html | 2 +- + chrome/installer/setup/eula/oem_ca.html | 2 +- + chrome/installer/setup/eula/oem_cs.html | 2 +- + chrome/installer/setup/eula/oem_da.html | 2 +- + chrome/installer/setup/eula/oem_de.html | 2 +- + chrome/installer/setup/eula/oem_el.html | 2 +- + chrome/installer/setup/eula/oem_en-GB.html | 2 +- + chrome/installer/setup/eula/oem_en.html | 2 +- + chrome/installer/setup/eula/oem_es-419.html | 2 +- + chrome/installer/setup/eula/oem_es.html | 2 +- + chrome/installer/setup/eula/oem_et.html | 2 +- + chrome/installer/setup/eula/oem_fi.html | 2 +- + chrome/installer/setup/eula/oem_fil.html | 2 +- + chrome/installer/setup/eula/oem_fr.html | 2 +- + chrome/installer/setup/eula/oem_hi.html | 2 +- + chrome/installer/setup/eula/oem_hr.html | 2 +- + chrome/installer/setup/eula/oem_hu.html | 2 +- + chrome/installer/setup/eula/oem_id.html | 2 +- + chrome/installer/setup/eula/oem_it.html | 2 +- + chrome/installer/setup/eula/oem_iw.html | 2 +- + chrome/installer/setup/eula/oem_ja.html | 2 +- + chrome/installer/setup/eula/oem_ko.html | 2 +- + chrome/installer/setup/eula/oem_lt.html | 2 +- + chrome/installer/setup/eula/oem_lv.html | 2 +- + chrome/installer/setup/eula/oem_nl.html | 2 +- + chrome/installer/setup/eula/oem_no.html | 2 +- + chrome/installer/setup/eula/oem_pl.html | 2 +- + chrome/installer/setup/eula/oem_pt-BR.html | 2 +- + chrome/installer/setup/eula/oem_pt-PT.html | 2 +- + chrome/installer/setup/eula/oem_ro.html | 2 +- + chrome/installer/setup/eula/oem_ru.html | 2 +- + chrome/installer/setup/eula/oem_sk.html | 2 +- + chrome/installer/setup/eula/oem_sl.html | 2 +- + chrome/installer/setup/eula/oem_sr.html | 2 +- + chrome/installer/setup/eula/oem_sv.html | 2 +- + chrome/installer/setup/eula/oem_th.html | 2 +- + chrome/installer/setup/eula/oem_tr.html | 2 +- + chrome/installer/setup/eula/oem_uk.html | 2 +- + chrome/installer/setup/eula/oem_vi.html | 2 +- + chrome/installer/setup/eula/oem_zh-CN.html | 2 +- + chrome/installer/setup/eula/oem_zh-TW.html | 2 +- + .../setup/google_chrome_behaviors.cc | 2 +- + chrome/installer/setup/install_worker.cc | 2 +- + chrome/installer/setup/uninstall.cc | 8 +- + .../util/delete_after_reboot_helper.cc | 4 +- + .../util/delete_after_reboot_helper.h | 2 +- + chrome/installer/util/l10n_string_util.cc | 2 +- + chrome/installer/util/master_preferences.h | 10 +- + chrome/installer/util/shell_util.cc | 14 +- + chrome/installer/util/shell_util.h | 8 +- + chrome/installer/util/work_item.h | 2 +- + .../notification_activator.h | 2 +- + .../notification_helper.cc | 2 +- + chrome/renderer/content_settings_observer.cc | 2 +- + chrome/renderer/media/flash_embed_rewrite.cc | 4 +- + .../extensions/identity_custom_bindings.js | 2 +- + chrome/renderer/safe_browsing/features.h | 2 +- + chrome/renderer/searchbox/searchbox.h | 2 +- + .../renderer/searchbox/searchbox_extension.cc | 2 +- + .../renderer/searchbox/searchbox_extension.h | 2 +- + .../subresource_redirect_params.cc | 2 +- + .../subresource_redirect_util.cc | 2 +- + .../cloud_print/cloud_print_connector.cc | 2 +- + chrome/service/service_process.cc | 4 +- + chrome/service/service_process.h | 2 +- + .../public/mojom/app_service.mojom | 2 +- + chrome/services/util_win/av_products.cc | 2 +- + .../nsNSSCertHelper.cpp | 4 +- + .../nsNSSCertHelper.h | 2 +- + .../nsNSSCertificate.cpp | 2 +- + .../nsNSSCertificate.h | 2 +- + .../nsUsageArrayHelper.cpp | 2 +- + .../nsUsageArrayHelper.h | 2 +- + chrome/tools/build/PRESUBMIT.py | 2 +- + chrome/tools/build/win/makecab.py | 2 +- + chrome/tools/weburl_links.txt | 6 +- + chrome/updater/crash_reporter.cc | 4 +- + chrome/updater/updater_constants.cc | 6 +- + chrome/updater/updater_constants.h | 2 +- + chrome/updater/win/installer/installer.cc | 2 +- + chrome/updater/win/task_scheduler.cc | 2 +- + chrome/updater/win/util.cc | 2 +- + .../utility/importer/bookmark_html_reader.h | 2 +- + chrome/utility/importer/firefox_importer.cc | 2 +- + chrome/utility/importer/firefox_importer.h | 2 +- + chrome/utility/importer/ie_importer_win.cc | 6 +- + chrome/utility/importer/nss_decryptor.cc | 8 +- + chrome/utility/importer/nss_decryptor_mac.h | 2 +- + .../importer/nss_decryptor_system_nss.cc | 4 +- + chrome/utility/importer/nss_decryptor_win.h | 2 +- + .../shell_devtools_discovery_page.html | 2 +- + chromecast/base/chromecast_switches.cc | 4 +- + .../chromecast/shell/CastCrashUploader.java | 6 +- + .../shell/CastWebContentsActivity.java | 2 +- + .../shell/CastWebContentsFragment.java | 2 +- + .../shell/LogcatElisionUnitTest.java | 2 +- + .../browser/service/cast_service_simple.cc | 2 +- + chromecast/common/extensions_api/i18n.json | 2 +- + chromecast/common/extensions_api/tabs.json | 4 +- + chromecast/common/extensions_api/windows.json | 2 +- + chromecast/crash/linux/minidump_uploader.cc | 2 +- + .../audio_sink_android_audiotrack_impl.h | 2 +- + .../android/AudioSinkAudioTrackImpl.java | 2 +- + chromecast/net/connectivity_checker_impl.cc | 4 +- + chromecast/net/net_switches.cc | 2 +- + chromecast/public/bluetooth/gatt.h | 6 +- + chromecast/public/output_restrictions.h | 2 +- + chromeos/BUILD.gn | 8 +- + chromeos/components/drivefs/drivefs_auth.cc | 2 +- + chromeos/constants/chromeos_features.cc | 2 +- + chromeos/dbus/arc_obb_mounter_client.h | 2 +- + .../permission_broker_client.h | 2 +- + .../simple_geolocation_provider.cc | 2 +- + chromeos/hugepage_text/hugepage_text.cc | 2 +- + chromeos/hugepage_text/hugepage_text.h | 2 +- + chromeos/network/geolocation_handler.cc | 4 +- + chromeos/network/network_cert_loader.cc | 2 +- + chromeos/network/network_util.h | 2 +- + chromeos/printing/ppd_provider.h | 2 +- + chromeos/printing/printer_configuration.h | 8 +- + .../assistant_manager_service_impl.cc | 2 +- + .../assistant/public/mojom/assistant.mojom | 4 +- + .../public/proto/email_opt_in_ui.proto | 2 +- + chromeos/services/assistant/service.cc | 6 +- + .../device_sync/cryptauth_client_impl.cc | 8 +- + .../proto/cryptauth_client_app_metadata.proto | 2 +- + .../proto/cryptauth_enrollment.proto | 2 +- + chromeos/services/device_sync/switches.cc | 6 +- + chromeos/services/ime/constants.cc | 2 +- + .../ime/public/cpp/shared_lib/interfaces.h | 4 +- + chromeos/timezone/timezone_request.cc | 2 +- + .../virtual_driver/win/install/setup.cc | 2 +- + .../virtual_driver_setup_resources.grd | 2 +- + .../win/port_monitor/port_monitor.cc | 14 +- + components/arc/session/arc_session.h | 2 +- + .../predictor_config_definitions.cc | 2 +- + .../autofill/content/renderer/PRESUBMIT.py | 2 +- + .../autofill/content/renderer/form_cache.cc | 4 +- + .../renderer/page_passwords_analyser.cc | 2 +- + .../password_form_conversion_utils.cc | 2 +- + .../core/browser/autofill_download_manager.cc | 2 +- + .../core/browser/autofill_experiments.cc | 4 +- + .../browser/form_parsing/address_field.cc | 2 +- + .../autofill/core/browser/form_structure.cc | 2 +- + .../credit_card_fido_authenticator.cc | 2 +- + .../core/browser/payments/payments_client.cc | 2 +- + .../browser/payments/payments_service_url.cc | 8 +- + .../autofill/core/browser/proto/api_v1.proto | 2 +- + .../webdata/autofill_profile_sync_bridge.h | 2 +- + .../devtools_api/client_api_generator.py | 2 +- + .../browser/devtools/devtools_client.cc | 2 +- + .../browser/devtools/devtools_client.h | 2 +- + .../browser/devtools/error_reporter.cc | 2 +- + .../browser/devtools/error_reporter.h | 2 +- + .../browser/devtools/message_dispatcher.h | 2 +- + .../browser/devtools/value_conversions.h | 2 +- + .../autofill_assistant/browser/service.proto | 6 +- + components/bookmarks/browser/bookmark_model.h | 4 +- + components/browser_sync/PRESUBMIT.py | 2 +- + .../core/counters/history_counter.cc | 2 +- + .../core/history_notice_utils.cc | 4 +- + .../captive_portal/captive_portal_detector.cc | 2 +- + components/cast_channel/enum_table.h | 2 +- + .../chrome_ct_policy_enforcer.cc | 2 +- + .../chrome_require_ct_delegate.h | 2 +- + .../data/log_list.json | 32 +- + .../public/constants/constants.h | 2 +- + .../chrome_cleaner/public/interfaces/BUILD.gn | 2 +- + .../common/cloud_device_description.h | 2 +- + .../common/cloud_devices_urls.cc | 8 +- + .../common/printer_description.h | 2 +- + .../components_google_chrome_strings.grd | 2 +- + .../core/common/content_settings_pattern.cc | 38 +- + components/cookie_config/cookie_store_util.cc | 2 +- + components/country_codes/country_codes.cc | 2 +- + .../crash/content/app/breakpad_linux.cc | 2 +- + components/crash/content/app/breakpad_win.cc | 2 +- + .../crash/content/app/crash_export_thunks.h | 2 +- + components/crash/content/app/crashpad_mac.mm | 2 +- + components/crash/content/app/crashpad_win.cc | 2 +- + .../content/app/hard_error_handler_win.cc | 2 +- + .../crash/core/browser/resources/crashes.js | 4 +- + components/cronet/PRESUBMIT.py | 2 +- + .../src/org/chromium/net/CronetEngine.java | 6 +- + .../net/ExperimentalCronetEngine.java | 2 +- + .../org/chromium/net/NetworkException.java | 6 +- + .../src/org/chromium/net/QuicException.java | 8 +- + .../org/chromium/net/RequestFinishedInfo.java | 2 +- + .../net/impl/NetworkExceptionImpl.java | 2 +- + .../chromium/net/impl/QuicExceptionImpl.java | 6 +- + .../CronetHttpURLStreamHandler.java | 2 +- + components/cronet/ios/Cronet.h | 2 +- + .../cronet_consumer_app_delegate.mm | 4 +- + .../cronet_consumer_view_controller.m | 4 +- + components/cronet/native/cronet.idl | 14 +- + .../curl_headers/docs/examples/10-at-a-time.c | 8 +- + .../curl_headers/docs/examples/asiohiper.cpp | 4 +- + .../curl_headers/docs/examples/crawler.c | 2 +- + .../curl_headers/docs/examples/synctime.c | 2 +- + components/cronet/tools/cr_cronet.py | 2 +- + components/cronet/tools/generate_javadoc.py | 2 +- + .../data_reduction_proxy_compression_stats.h | 2 +- + .../browser/data_reduction_proxy_config.cc | 4 +- + .../core/common/chrome_proxy_header.txt | 4 +- + .../data_reduction_proxy_bypass_protocol.cc | 2 +- + .../common/data_reduction_proxy_params.cc | 12 +- + .../core/common/data_reduction_proxy_params.h | 2 +- + .../proto/data_store.proto | 4 +- + .../core/javascript/dom_distiller_viewer.js | 2 +- + .../domain_reliability/bake_in_configs.py | 288 +- + components/drive/chromeos/search_metadata.cc | 4 +- + .../drive/chromeos/sync/remove_performer.cc | 2 +- + components/drive/chromeos/team_drive.h | 2 +- + components/drive/drive.proto | 4 +- + components/drive/drive_api_util.h | 4 +- + components/drive/job_scheduler.cc | 4 +- + components/drive/resource_entry_conversion.cc | 2 +- + components/drive/resource_entry_conversion.h | 4 +- + components/drive/service/drive_api_service.cc | 8 +- + .../drive/service/fake_drive_service.cc | 4 +- + .../error_page/common/localized_error.cc | 4 +- + .../favicon/core/favicon_driver_observer.h | 8 +- + components/favicon/core/favicon_service.h | 4 +- + .../favicon/core/large_icon_service_impl.cc | 2 +- + components/favicon_base/favicon_url_parser.h | 4 +- + components/feed/core/feed_networking_host.cc | 2 +- + components/feedback/feedback_common.cc | 2 +- + components/feedback/feedback_report.h | 2 +- + components/feedback/feedback_uploader.cc | 2 +- + components/feedback/feedback_util.cc | 2 +- + components/feedback/feedback_util.h | 2 +- + components/feedback/proto/web.proto | 2 +- + components/flags_ui/resources/flags.html | 4 +- + components/gcm_driver/account_tracker.cc | 2 +- + .../gcm_driver/GoogleCloudMessagingV2.java | 2 +- + components/gcm_driver/gcm_account_mapper.cc | 2 +- + components/gcm_driver/gcm_account_tracker.cc | 4 +- + components/gcm_driver/gcm_client_impl.cc | 2 +- + components/gcm_driver/web_push_sender.cc | 4 +- + components/google/core/common/google_util.cc | 28 +- + .../core/browser/browsing_history_service.cc | 4 +- + .../core/browser/domain_mixing_metrics.h | 2 +- + .../history/core/browser/history_backend.cc | 34 +- + .../history/core/browser/history_backend.h | 8 +- + .../core/browser/history_backend_notifier.h | 4 +- + .../history/core/browser/history_service.cc | 4 +- + .../history/core/browser/history_service.h | 16 +- + .../core/browser/thumbnail_database.cc | 10 +- + .../history/core/browser/thumbnail_database.h | 4 +- + .../core/browser/top_sites_database.cc | 8 +- + .../history/core/browser/top_sites_impl.cc | 2 +- + components/history/core/browser/url_utils.h | 6 +- + .../history/core/browser/visit_database.cc | 4 +- + .../core/browser/web_history_service.cc | 14 +- + .../history/core/common/thumbnail_score.h | 4 +- + components/image_fetcher/ios/webp_decoder.h | 2 +- + .../InvalidationClientService.java | 2 +- + .../impl/gcm_invalidation_bridge.cc | 2 +- + .../invalidation/impl/gcm_network_channel.cc | 2 +- + .../per_user_topic_registration_manager.cc | 4 +- + .../invalidation/impl/push_client_channel.cc | 2 +- + .../core/simple_keyed_service_factory.h | 2 +- + .../metrics/net/net_metrics_log_uploader.cc | 2 +- + components/metrics/persistent_histograms.cc | 2 +- + components/metrics/url_constants.cc | 6 +- + .../MinidumpUploadCallable.java | 4 +- + components/nacl/browser/nacl_process_host.cc | 4 +- + components/nacl/docs/dev/index.html | 4 +- + components/nacl/loader/nacl_helper_linux.h | 2 +- + components/nacl/loader/nacl_listener.cc | 2 +- + .../nacl_main_platform_delegate_linux.cc | 8 +- + .../renderer/plugin/pnacl_translate_thread.cc | 2 +- + components/net_log/resources/net_export.html | 6 +- + .../common/network_switch_list.h | 6 +- + .../network_time/network_time_tracker.cc | 2 +- + components/ntp_snippets/features.cc | 2 +- + .../ntp_snippets/ntp_snippets_constants.cc | 16 +- + components/ntp_snippets/remote/fetch.py | 8 +- + components/ntp_tiles/popular_sites_impl.cc | 2 +- + .../core/prefetch/prefetch_proto_utils.cc | 2 +- + .../core/prefetch/prefetch_server_urls.cc | 2 +- + .../browser/autocomplete_controller.cc | 2 +- + .../omnibox/browser/autocomplete_controller.h | 2 +- + .../omnibox/browser/autocomplete_input.cc | 2 +- + .../omnibox/browser/autocomplete_match.h | 2 +- + .../omnibox/browser/document_provider.cc | 14 +- + .../browser/document_suggestions_service.cc | 4 +- + components/omnibox/browser/history_match.h | 6 +- + .../omnibox/browser/history_quick_provider.cc | 6 +- + .../omnibox/browser/history_url_provider.cc | 6 +- + .../browser/in_memory_url_index_types.h | 4 +- + .../omnibox/browser/omnibox_edit_model.cc | 18 +- + .../omnibox/browser/omnibox_edit_model.h | 4 +- + .../omnibox/browser/scored_history_match.cc | 2 +- + components/omnibox/browser/search_provider.cc | 4 +- + .../browser/search_suggestion_parser.cc | 2 +- + .../omnibox/browser/shortcuts_provider.cc | 2 +- + .../omnibox/browser/suggestion_answer.h | 4 +- + .../omnibox/browser/titled_url_match_utils.cc | 2 +- + .../omnibox/browser/zero_suggest_provider.cc | 2 +- + .../optimization_guide_constants.cc | 2 +- + .../common/page_load_metrics_util.h | 8 +- + .../renderer/fake_page_timing_sender.h | 2 +- + .../affiliation_fetcher.cc | 2 +- + .../android_affiliation/affiliation_utils.h | 2 +- + .../core/browser/form_parsing/form_parser.cc | 4 +- + .../form_parsing/fuzzer/form_data_producer.h | 2 +- + ...password_requirements_spec_fetcher_impl.cc | 4 +- + .../core/browser/hash_password_manager.cc | 2 +- + .../core/browser/import/csv_password.h | 2 +- + .../browser/import/csv_password_iterator.h | 2 +- + .../authenticated_leak_check.cc | 2 +- + .../leak_detection/leak_detection_request.h | 2 +- + .../core/browser/login_database_win.cc | 2 +- + .../password_generation_frame_helper.cc | 4 +- + .../core/browser/password_hash_data.cc | 2 +- + .../core/browser/password_hash_data.h | 2 +- + .../core/browser/password_manager.h | 2 +- + .../browser/password_manager_constants.cc | 4 +- + .../password_manager_metrics_recorder.h | 2 +- + .../core/browser/password_manager_util.h | 4 +- + .../core/browser/password_reuse_detector.cc | 2 +- + .../core/browser/password_store.cc | 12 +- + .../core/browser/password_sync_util.cc | 4 +- + .../core/browser/password_ui_utils.cc | 2 +- + .../core/browser/psl_matching_helper.cc | 6 +- + .../core/browser/sync/password_sync_bridge.h | 2 +- + .../payments/content/payment_request_spec.cc | 4 +- + .../content/utility/payment_manifest_parser.h | 2 +- + components/payments/core/journey_logger.cc | 2 +- + components/payments/core/url_util.h | 8 +- + .../core/browser/browser_policy_connector.cc | 8 +- + .../core/browser/browser_policy_connector.h | 2 +- + .../core/browser/url_blacklist_manager.h | 2 +- + components/policy/core/browser/url_util.cc | 10 +- + .../policy/core/common/policy_loader_win.cc | 2 +- + components/policy/core/common/preg_parser.h | 2 +- + .../policy/proto/chrome_device_policy.proto | 4 +- + .../proto/device_management_backend.proto | 2 +- + components/policy/resources/PRESUBMIT.py | 2 +- + .../policy/resources/policy_templates.json | 742 +- + .../policy/tools/generate_extension_admx.py | 2 +- + .../syntax_check_policy_template_json.py | 2 +- + .../tools/template_writers/PRESUBMIT.py | 2 +- + .../template_writers/writers/adm_writer.py | 4 +- + .../writers/doc_atomic_groups_writer.py | 2 +- + .../template_writers/writers/doc_writer.py | 2 +- + .../writers/template_writer.py | 2 +- + components/prefs/pref_change_registrar.cc | 2 +- + .../previews/content/previews_decider_impl.cc | 2 +- + .../previews/core/previews_experiments.cc | 4 +- + components/previews/core/previews_features.cc | 2 +- + .../renderer/print_render_frame_helper.cc | 2 +- + components/quirks/quirks_client.cc | 2 +- + components/rappor/proto/rappor_metric.proto | 4 +- + .../rappor/public/mojom/rappor_recorder.mojom | 6 +- + components/rappor/public/rappor_parameters.h | 2 +- + components/rappor/rappor_metric.h | 2 +- + components/rappor/rappor_recorder_impl.h | 2 +- + components/rappor/rappor_service_impl.cc | 2 +- + .../resources/terms/chromeos/terms_en.html | 16 +- + components/resources/terms/terms_am.html | 12 +- + components/resources/terms/terms_ar.html | 6 +- + components/resources/terms/terms_bg.html | 8 +- + components/resources/terms/terms_bn.html | 12 +- + components/resources/terms/terms_ca.html | 6 +- + components/resources/terms/terms_cs.html | 8 +- + components/resources/terms/terms_da.html | 6 +- + components/resources/terms/terms_de.html | 2 +- + components/resources/terms/terms_el.html | 6 +- + components/resources/terms/terms_en-GB.html | 6 +- + components/resources/terms/terms_en.html | 12 +- + components/resources/terms/terms_es-419.html | 12 +- + components/resources/terms/terms_es.html | 6 +- + components/resources/terms/terms_et.html | 6 +- + components/resources/terms/terms_fa.html | 12 +- + components/resources/terms/terms_fi.html | 6 +- + components/resources/terms/terms_fil.html | 12 +- + components/resources/terms/terms_fr.html | 12 +- + components/resources/terms/terms_gu.html | 12 +- + components/resources/terms/terms_he.html | 10 +- + components/resources/terms/terms_hi.html | 12 +- + components/resources/terms/terms_hr.html | 8 +- + components/resources/terms/terms_hu.html | 12 +- + components/resources/terms/terms_id.html | 12 +- + components/resources/terms/terms_it.html | 12 +- + components/resources/terms/terms_ja.html | 12 +- + components/resources/terms/terms_kn.html | 12 +- + components/resources/terms/terms_ko.html | 6 +- + components/resources/terms/terms_lt.html | 10 +- + components/resources/terms/terms_lv.html | 6 +- + components/resources/terms/terms_ml.html | 12 +- + components/resources/terms/terms_mr.html | 12 +- + components/resources/terms/terms_nb.html | 6 +- + components/resources/terms/terms_nl.html | 6 +- + components/resources/terms/terms_pl.html | 12 +- + components/resources/terms/terms_pt-BR.html | 12 +- + components/resources/terms/terms_pt-PT.html | 8 +- + components/resources/terms/terms_ro.html | 6 +- + components/resources/terms/terms_ru.html | 6 +- + components/resources/terms/terms_sk.html | 6 +- + components/resources/terms/terms_sl.html | 4 +- + components/resources/terms/terms_sr.html | 6 +- + components/resources/terms/terms_sv.html | 6 +- + components/resources/terms/terms_sw.html | 12 +- + components/resources/terms/terms_ta.html | 12 +- + components/resources/terms/terms_te.html | 12 +- + components/resources/terms/terms_th.html | 6 +- + components/resources/terms/terms_tr.html | 12 +- + components/resources/terms/terms_uk.html | 12 +- + components/resources/terms/terms_vi.html | 12 +- + components/resources/terms/terms_zh-CN.html | 12 +- + components/resources/terms/terms_zh-TW.html | 12 +- + components/rlz/rlz_tracker.h | 2 +- + components/safe_browsing/base_ui_manager.cc | 2 +- + .../common/safebrowsing_constants.cc | 2 +- + components/safe_browsing/db/metadata.proto | 2 +- + .../db/v4_get_hash_protocol_manager.cc | 2 +- + .../db/v4_protocol_manager_util.cc | 6 +- + .../db/v4_protocol_manager_util.h | 6 +- + components/safe_browsing/db/v4_store.cc | 2 +- + .../password_protection_service.cc | 2 +- + components/safe_browsing/proto/csd.proto | 10 +- + .../realtime/url_lookup_service.cc | 2 +- + .../safe_browsing/triggers/trigger_util.cc | 2 +- + .../safe_browsing/verdict_cache_manager.cc | 4 +- + .../safe_search_url_checker_client.cc | 2 +- + .../safe_search_api/stub_url_checker.cc | 2 +- + components/search_engines/template_url.cc | 2 +- + components/search_engines/template_url.h | 2 +- + .../search_engines/template_url_service.cc | 2 +- + components/search_engines/util.cc | 2 +- + .../search_provider_logos/google_logo_api.cc | 2 +- + .../search_provider_logos/google_logo_api.h | 2 +- + components/search_provider_logos/switches.cc | 18 +- + .../browser/resources/interstitial_large.js | 2 +- + .../core/controller_client.cc | 2 +- + .../core/safe_browsing_loud_error_ui.cc | 4 +- + .../security_interstitials/core/urls.cc | 4 +- + .../security_state/core/security_state.h | 2 +- + .../font/ppapi_fontconfig_matching.cc | 2 +- + .../heap_profiling/connection_manager.cc | 4 +- + .../services/quarantine/quarantine_mac.mm | 2 +- + .../services/quarantine/quarantine_win.cc | 2 +- + .../signin/AccountManagerFacade.java | 4 +- + .../browser/chrome_connected_header_helper.cc | 8 +- + .../browser/resources/signin_internals.js | 2 +- + .../oauth2_token_service_delegate_android.cc | 2 +- + .../browser/account_consistency_service.mm | 6 +- + components/signin/public/base/signin_client.h | 2 +- + .../signin/public/base/signin_pref_names.cc | 2 +- + .../identity_manager/identity_manager.h | 4 +- + .../spellcheck/SpellCheckerSessionBridge.java | 2 +- + .../browser/spelling_service_client.cc | 4 +- + components/ssl_errors/error_classification.h | 4 +- + .../browser/startup_metric_utils.cc | 4 +- + .../volume_mount_watcher_win.cc | 2 +- + .../browser/subresource_filter_constants.h | 8 +- + .../core/common/PRESUBMIT.py | 2 +- + .../suggestions/suggestions_service_impl.cc | 4 +- + components/sync/PRESUBMIT.py | 2 +- + .../components/sync/SyncConstants.java | 2 +- + .../notifier/InvalidationPreferences.java | 2 +- + components/sync/base/data_type_histogram.h | 2 +- + components/sync/driver/resources/about.js | 2 +- + components/sync/driver/sync_util.cc | 4 +- + .../history_delete_directive_specifics.proto | 2 +- + components/sync/protocol/sync.proto | 4 +- + components/sync_bookmarks/PRESUBMIT.py | 2 +- + .../sync_bookmarks/bookmark_model_merger.cc | 2 +- + .../bookmark_model_observer_impl.cc | 2 +- + components/sync_sessions/PRESUBMIT.py | 2 +- + .../local_session_event_router.h | 4 +- + .../sync_sessions/session_sync_bridge.h | 2 +- + .../graphics_memory_dump_provider_android.h | 2 +- + .../core/browser/translate_manager.cc | 2 +- + .../core/browser/translate_ranker_impl.cc | 6 +- + .../core/browser/translate_script.cc | 2 +- + .../translate/core/common/translate_util.cc | 2 +- + components/ui_devtools/agent_util.cc | 4 +- + components/ukm/ukm_reporting_service.cc | 2 +- + .../url_formatter/UrlFormatter.java | 4 +- + components/url_formatter/elide_url.cc | 2 +- + components/url_formatter/elide_url.h | 2 +- + .../spoof_checks/idn_spoof_checker.cc | 2 +- + .../spoof_checks/idn_spoof_checker.h | 2 +- + .../top_domains/make_alexa_top_list.py | 2 +- + .../top_domains/top_domain_util.h | 4 +- + components/url_formatter/url_fixer.cc | 2 +- + components/url_formatter/url_formatter.cc | 4 +- + components/url_formatter/url_formatter.h | 2 +- + components/url_matcher/url_matcher.h | 8 +- + components/url_pattern_index/PRESUBMIT.py | 2 +- + components/user_manager/user.h | 4 +- + .../firstrun/VariationsSeedFetcher.java | 2 +- + components/variations/entropy_provider.h | 2 +- + .../variations/net/variations_http_headers.cc | 4 +- + components/variations/pref_names.cc | 2 +- + components/variations/proto/study.proto | 2 +- + .../variations/service/safe_seed_manager.cc | 18 +- + .../variations/variations_murmur_hash.h | 2 +- + .../variations/variations_url_constants.cc | 4 +- + .../viz/service/display/output_surface.h | 2 +- + components/wifi/wifi_service_win.cc | 2 +- + components/zucchini/disassembler_dex.h | 2 +- + components/zucchini/type_dex.h | 2 +- + .../content_child_process_service_delegate.cc | 2 +- + content/app/resources/README.txt | 4 +- + .../render_widget_host_view_cocoa.mm | 2 +- + .../browser_accessibility_com_win.h | 2 +- + .../appcache/appcache_request_handler.cc | 2 +- + .../browser/appcache/appcache_update_job.cc | 2 +- + .../appcache/appcache_update_url_fetcher.cc | 2 +- + .../appcache/appcache_url_loader_job.cc | 2 +- + .../bluetooth_device_chooser_controller.cc | 2 +- + .../browser_plugin/browser_plugin_guest.cc | 2 +- + content/browser/browser_url_handler_impl.cc | 2 +- + .../browsing_data_filter_builder_impl.cc | 4 +- + content/browser/client_hints/client_hints.cc | 2 +- + .../browser/content_service_delegate_impl.cc | 2 +- + .../browser/devtools/devtools_http_handler.cc | 2 +- + .../devtools_protocol_encoding_cbor_fuzzer.cc | 2 +- + .../fileapi/browser_file_system_helper.cc | 2 +- + .../frame_host/interstitial_page_impl.cc | 2 +- + .../frame_host/navigation_controller_impl.cc | 4 +- + .../browser/frame_host/navigation_request.cc | 6 +- + content/browser/frame_host/navigator_impl.cc | 4 +- + .../frame_host/render_frame_host_impl.cc | 8 +- + .../gpu/gpu_data_manager_impl_private.cc | 2 +- + .../indexed_db/indexed_db_backing_store.cc | 2 +- + .../indexed_db/indexed_db_reporting.cc | 2 +- + content/browser/notification_service_impl.cc | 2 +- + content/browser/plugin_service_impl.cc | 2 +- + .../push_messaging/push_messaging_manager.cc | 2 +- + .../renderer_host/compositor_impl_android.cc | 4 +- + .../dwrite_font_lookup_table_builder_win.cc | 2 +- + .../dwrite_font_proxy_impl_win.cc | 2 +- + .../renderer_host/input/touch_action_filter.h | 2 +- + .../renderer_host/render_process_host_impl.cc | 2 +- + .../renderer_host/render_view_host_impl.h | 2 +- + .../renderer_host/text_input_client_mac.h | 2 +- + content/browser/resources/PRESUBMIT.py | 2 +- + content/browser/resources/gpu/info_view.js | 2 +- + content/browser/sandbox_ipc_linux.h | 2 +- + .../service_worker/service_worker_metrics.cc | 8 +- + content/browser/site_instance_impl.h | 6 +- + .../speech/endpointer/energy_endpointer.cc | 2 +- + .../speech/speech_recognition_engine.cc | 2 +- + content/browser/speech/tts_mac.mm | 2 +- + content/browser/speech/tts_win.cc | 2 +- + .../browser/web_contents/web_contents_impl.cc | 4 +- + .../browser/webauth/authenticator_common.cc | 14 +- + content/common/fetch/fetch_api_request.proto | 2 +- + content/common/input/input_handler.mojom | 2 +- + .../media/peer_connection_tracker.mojom | 2 +- + content/common/net/record_load_histograms.cc | 2 +- + content/common/renderer.mojom | 2 +- + content/public/PRESUBMIT.py | 4 +- + .../android/java/res/values/strings.xml | 2 +- + .../WebContentsAccessibilityImpl.java | 2 +- + .../captioning/CaptioningChangeDelegate.java | 2 +- + .../captioning/CaptioningStyle.java | 2 +- + .../input/ThreadedInputConnection.java | 2 +- + .../browser/browsing_data_filter_builder.h | 4 +- + content/public/browser/payment_app_provider.h | 2 +- + content/public/browser/render_view_host.h | 2 +- + content/public/browser/site_instance.h | 6 +- + content/public/browser/web_contents.h | 2 +- + content/public/common/content_features.cc | 10 +- + content/public/common/content_switches.cc | 6 +- + .../common/resource_request_body_android.cc | 2 +- + content/public/common/url_constants.cc | 2 +- + .../public/renderer/content_renderer_client.h | 4 +- + content/public/renderer/render_view.h | 2 +- + content/renderer/PRESUBMIT.py | 2 +- + .../renderer/loader/resource_dispatcher.cc | 2 +- + content/renderer/loader/resource_dispatcher.h | 2 +- + content/renderer/pepper/message_channel.cc | 2 +- + .../pepper/pepper_media_device_manager.cc | 2 +- + .../renderer/pepper/pepper_plugin_registry.cc | 2 +- + content/renderer/render_thread_impl.cc | 14 +- + content/renderer/render_widget.cc | 4 +- + .../renderer/renderer_blink_platform_impl.h | 2 +- + .../renderer_main_platform_delegate_linux.cc | 2 +- + .../web_service_worker_provider_impl.cc | 2 +- + .../chromium/content_shell/ShellManager.java | 2 +- + .../shell/browser/shell_browser_main_parts.cc | 2 +- + courgette/disassembler_win32.cc | 8 +- + courgette/third_party/bsdiff/bsdiff.h | 4 +- + courgette/third_party/bsdiff/bsdiff_apply.cc | 4 +- + courgette/third_party/bsdiff/bsdiff_create.cc | 10 +- + courgette/third_party/bsdiff/bsdiff_search.h | 6 +- + .../third_party/divsufsort/divsufsort.cc | 2 +- + courgette/third_party/divsufsort/divsufsort.h | 2 +- + .../divsufsort/divsufsort_private.h | 2 +- + courgette/third_party/divsufsort/sssort.cc | 2 +- + courgette/third_party/divsufsort/trsort.cc | 2 +- + courgette/types_win_pe.h | 4 +- + crypto/BUILD.gn | 2 +- + crypto/nss_util.cc | 4 +- + crypto/secure_util.h | 2 +- + device/bluetooth/bluetooth_adapter_android.cc | 4 +- + device/bluetooth/bluetooth_adapter_mac.mm | 2 +- + .../bluetooth_adapter_mac_metrics.mm | 2 +- + device/bluetooth/bluetooth_adapter_winrt.cc | 2 +- + .../bluetooth/bluetooth_classic_device_mac.mm | 4 +- + device/bluetooth/bluetooth_device_win.cc | 2 +- + device/bluetooth/bluetooth_device_winrt.cc | 4 +- + .../bluetooth/bluetooth_task_manager_win.cc | 6 +- + .../bluetooth/dbus/bluetooth_device_client.h | 2 +- + device/fido/fido_constants.h | 8 +- + device/fido/fido_strings.grd | 2 +- + .../gamepad_platform_data_fetcher_win.cc | 2 +- + device/gamepad/public/cpp/BUILD.gn | 2 +- + device/gamepad/raw_input_data_fetcher_win.cc | 2 +- + device/gamepad/xbox_controller_mac.mm | 2 +- + extensions/browser/PRESUBMIT.py | 2 +- + .../api/declarative/declarative_rule.h | 2 +- + .../feedback_private/feedback_private_api.cc | 2 +- + .../web_request/web_request_permissions.cc | 12 +- + ...web_request_proxying_url_loader_factory.cc | 2 +- + extensions/browser/event_listener_map.h | 2 +- + extensions/browser/extension_prefs_observer.h | 2 +- + extensions/browser/image_sanitizer.cc | 2 +- + extensions/browser/info_map.cc | 2 +- + extensions/browser/suggest_permission_util.cc | 4 +- + .../browser/updater/extension_downloader.cc | 6 +- + .../browser/updater/safe_manifest_parser.cc | 2 +- + .../browser/updater/safe_manifest_parser.h | 2 +- + .../browser/url_loader_factory_manager.cc | 2 +- + extensions/common/api/PRESUBMIT.py | 2 +- + extensions/common/api/app_runtime.idl | 4 +- + extensions/common/api/app_window.idl | 2 +- + .../common/api/bluetooth_low_energy.idl | 6 +- + extensions/common/api/bluetooth_socket.idl | 2 +- + .../common/api/extensions_manifest_types.json | 6 +- + extensions/common/api/networking_onc.idl | 2 +- + extensions/common/api/networking_private.idl | 6 +- + extensions/common/api/printer_provider.idl | 6 +- + extensions/common/api/serial.idl | 2 +- + extensions/common/api/socket.idl | 2 +- + extensions/common/api/sockets_tcp.idl | 2 +- + extensions/common/api/sockets_tcp_server.idl | 2 +- + extensions/common/api/sockets_udp.idl | 4 +- + extensions/common/csp_validator.cc | 4 +- + extensions/common/csp_validator.h | 6 +- + extensions/common/event_filtering_info.h | 2 +- + extensions/common/event_matcher.h | 2 +- + extensions/common/extension.cc | 2 +- + extensions/common/extension.h | 2 +- + extensions/common/extension_urls.cc | 10 +- + extensions/common/extension_urls.h | 2 +- + extensions/common/manifest_constants.cc | 2 +- + .../externally_connectable.cc | 4 +- + extensions/common/message_bundle.h | 2 +- + extensions/common/permissions/PRESUBMIT.py | 2 +- + .../common/permissions/api_permission.h | 2 +- + .../common/permissions/api_permission_set.h | 8 +- + .../common/permissions/permissions_data.h | 2 +- + extensions/common/url_pattern.cc | 2 +- + extensions/common/url_pattern.h | 14 +- + extensions/common/url_pattern_set.h | 18 +- + .../resources/permissions_custom_bindings.js | 4 +- + extensions/renderer/resources/platform_app.js | 2 +- + .../renderer/resources/web_request_event.js | 2 +- + extensions/renderer/script_context.cc | 8 +- + extensions/shell/browser/shell_prefs.cc | 2 +- + extensions/strings/extensions_strings.grd | 4 +- + gin/v8_initializer.cc | 4 +- + google_apis/drive/base_requests.cc | 2 +- + google_apis/drive/drive_api_parser.cc | 20 +- + google_apis/drive/drive_api_parser.h | 24 +- + google_apis/drive/drive_api_requests.h | 36 +- + google_apis/drive/drive_api_url_generator.cc | 4 +- + google_apis/gaia/gaia_auth_fetcher.cc | 4 +- + google_apis/gaia/gaia_auth_util.cc | 4 +- + google_apis/gaia/gaia_auth_util.h | 2 +- + google_apis/gaia/gaia_constants.cc | 28 +- + google_apis/gaia/gaia_oauth_client.cc | 6 +- + google_apis/gaia/gaia_oauth_client.h | 12 +- + google_apis/gaia/gaia_switches.h | 10 +- + google_apis/gaia/gaia_urls.cc | 24 +- + google_apis/gaia/google_service_auth_error.h | 2 +- + .../gaia/oauth2_access_token_fetcher_impl.h | 2 +- + .../gaia/oauth2_access_token_manager.cc | 2 +- + google_apis/gcm/base/mcs_util.cc | 2 +- + google_apis/gcm/engine/gservices_settings.cc | 6 +- + google_apis/gcm/engine/mcs_client.cc | 2 +- + google_apis/gcm/protocol/mcs.proto | 2 +- + google_apis/gcm/tools/mcs_probe.cc | 2 +- + google_apis/google_api_keys.cc | 2 +- + google_apis/google_api_keys.h | 4 +- + google_update/google_update_idl.idl | 2 +- + .../CHROMIUM_color_space_metadata.txt | 2 +- + .../CHROMIUM_texture_storage_image.txt | 2 +- + .../CHROMIUM/EGL_CHROMIUM_sync_control.txt | 2 +- + gpu/PRESUBMIT.py | 2 +- + gpu/command_buffer/PRESUBMIT.py | 2 +- + gpu/command_buffer/client/fenced_allocator.h | 2 +- + .../client/shared_memory_limits.h | 2 +- + .../external_vk_image_dawn_representation.cc | 4 +- + .../external_vk_image_dawn_representation.h | 2 +- + .../gles2_cmd_decoder_passthrough_doers.cc | 2 +- + .../shared_image_backing_factory_iosurface.mm | 6 +- + .../service/webgpu_decoder_impl.cc | 2 +- + gpu/config/gpu_info_collector_win.cc | 2 +- + gpu/vulkan/PRESUBMIT.py | 2 +- + headless/app/headless_shell_switches.cc | 2 +- + .../lib/browser/protocol/headless_handler.cc | 2 +- + .../dom_tree_extraction_expected_nodes.txt | 2 +- + .../resources/devtools_discovery_page.html | 2 +- + headless/public/headless_browser.h | 2 +- + infra/config/PRESUBMIT.py | 2 +- + ios/PRESUBMIT.py | 2 +- + ios/README.txt | 2 +- + ios/build/chrome_build.gni | 2 +- + .../app/strings/ios_chromium_strings.grd | 6 +- + .../app/strings/ios_google_chrome_strings.grd | 6 +- + ios/chrome/app/strings/ios_strings.grd | 24 +- + ios/chrome/browser/autofill/BUILD.gn | 4 +- + .../autofill/automation/automation_action.mm | 2 +- + .../browser_state/chrome_browser_state_impl.h | 2 +- + ...chrome_browser_state_removal_controller.mm | 2 +- + ios/chrome/browser/chrome_url_constants.cc | 26 +- + ios/chrome/browser/flags/about_flags.mm | 12 +- + .../omnibox_geolocation_controller.mm | 2 +- + ios/chrome/browser/omaha/omaha_service.mm | 2 +- + .../payments/ios_payment_instrument.mm | 4 +- + .../browser/payments/payment_request.mm | 4 +- + .../search_engines/resources/search_engine.js | 12 +- + .../search_engines/search_engine_tab_helper.h | 4 +- + .../search_engine_tab_helper.mm | 10 +- + .../browser/signin/authentication_service.h | 2 +- + ios/chrome/browser/signin/feature_flags.mm | 2 +- + .../ios_chrome_local_session_event_router.h | 4 +- + ios/chrome/browser/u2f/u2f_controller.mm | 4 +- + .../activity_services/activity_type_util.mm | 2 +- + .../signed_in_accounts_view_controller.mm | 2 +- + .../authentication/signin_earlgrey_utils.mm | 4 +- + .../content_suggestions/ntp_home_mediator.mm | 2 +- + .../welcome_to_chrome_view_controller.mm | 2 +- + ios/chrome/browser/ui/ntp/incognito_view.mm | 2 +- + .../ui/ntp/notification_promo_whats_new.mm | 2 +- + .../popup/autocomplete_match_formatter.mm | 2 +- + .../ui/payments/cells/page_info_item.mm | 2 +- + .../ui/payments/payment_request_manager.h | 2 +- + .../ui/settings/cells/search_engine_item.h | 2 +- + .../table_cell_catalog_view_controller.mm | 8 +- + .../translate_table_view_controller.mm | 2 +- + ios/chrome/browser/web/resources/print.js | 2 +- + ios/net/crn_http_protocol_handler.mm | 2 +- + .../browser/signin/chrome_identity_service.h | 4 +- + .../browser/signin/chrome_identity_service.mm | 4 +- + .../signin/fake_chrome_identity_service.mm | 2 +- + ios/showcase/alert/sc_alert_coordinator.mm | 8 +- + .../fake_autocomplete_suggestion.mm | 4 +- + ios/third_party/firebase/BUILD.gn | 2 +- + ios/third_party/firebase/cipd.yaml | 4 +- + ios/web/js_messaging/resources/setup_frame.js | 2 +- + ios/web/js_messaging/resources/window_id.js | 2 +- + .../navigation/error_retry_state_machine.h | 2 +- + ios/web/navigation/navigation_manager_impl.mm | 6 +- + ios/web/web_state/js/resources/base.js | 2 +- + .../js/resources/plugin_placeholder.js | 2 +- + ios/web_view/internal/cwv_flags.mm | 2 +- + ios/web_view/public/cwv_credit_card.h | 2 +- + ios/web_view/public/cwv_identity.h | 2 +- + .../public/cwv_translation_language.h | 2 +- + ios/web_view/public/cwv_web_view.h | 4 +- + ios/web_view/shell/shell_view_controller.m | 2 +- + ipc/ipc_channel.h | 2 +- + ipc/ipc_message_macros.h | 2 +- + .../notifier/base/gaia_token_pre_xmpp_auth.cc | 2 +- + jingle/notifier/base/notifier_options_util.cc | 4 +- + .../communicator/single_login_attempt.cc | 2 +- + media/PRESUBMIT.py | 4 +- + .../android/audio_track_output_stream.cc | 2 +- + media/audio/android/opensles_util.cc | 4 +- + .../audio/win/audio_low_latency_input_win.cc | 2 +- + .../audio/win/audio_low_latency_output_win.h | 2 +- + media/audio/win/core_audio_util_win.cc | 2 +- + media/audio/win/core_audio_util_win.h | 4 +- + .../media/AudioTrackOutputStream.java | 4 +- + .../org/chromium/media/MediaCodecUtil.java | 2 +- + .../chromium/media/MediaFormatBuilder.java | 2 +- + media/base/android/media_drm_bridge.cc | 8 +- + media/base/android/media_drm_key_type.h | 2 +- + media/base/android/media_player_bridge.h | 2 +- + media/base/container_names.cc | 2 +- + media/base/key_systems.cc | 2 +- + media/base/media_log.h | 2 +- + media/base/media_switches.cc | 2 +- + media/base/video_codecs.h | 2 +- + .../chromium/media/VideoCaptureCamera.java | 2 +- + .../chromium/media/VideoCaptureCamera2.java | 2 +- + .../android/video_capture_device_android.h | 2 +- + .../video/chromeos/camera_3a_controller.cc | 2 +- + .../video/chromeos/camera_3a_controller.h | 2 +- + .../video/linux/v4l2_capture_delegate.cc | 4 +- + .../video/video_capture_device_client.cc | 2 +- + media/capture/video/win/sink_filter_win.h | 2 +- + .../win/video_capture_device_factory_win.cc | 2 +- + .../win/video_capture_device_utils_win.cc | 2 +- + .../video/win/video_capture_device_win.cc | 6 +- + media/filters/dav1d_video_decoder.cc | 2 +- + media/filters/decrypting_audio_decoder.h | 2 +- + media/filters/decrypting_video_decoder.h | 2 +- + media/filters/video_cadence_estimator.h | 2 +- + .../android_video_encode_accelerator.h | 2 +- + media/gpu/windows/d3d11_cdm_proxy.cc | 6 +- + media/gpu/windows/d3d11_cdm_proxy.h | 4 +- + media/gpu/windows/d3d11_decryptor.cc | 4 +- + media/gpu/windows/d3d11_vp9_accelerator.cc | 2 +- + .../dxva_video_decode_accelerator_win.cc | 6 +- + .../dxva_video_decode_accelerator_win.h | 2 +- + ...foundation_video_encode_accelerator_win.cc | 4 +- + .../chromium/midi/UsbMidiDeviceAndroid.java | 2 +- + media/parsers/webp_parser.cc | 8 +- + media/parsers/webp_parser.h | 2 +- + .../renderers/paint_canvas_video_renderer.cc | 4 +- + media/renderers/video_resource_updater.cc | 2 +- + mojo/PRESUBMIT.py | 2 +- + mojo/core/channel.h | 2 +- + mojo/core/platform_handle_in_transit.cc | 2 +- + .../chromium/mojo/system/impl/CoreImpl.java | 2 +- + native_client_sdk/PRESUBMIT.py | 2 +- + .../doc_generated/cds2014/cpp.html | 12 +- + .../doc_generated/cds2014/python.html | 12 +- + .../community/application-gallery.html | 48 +- + .../doc_generated/community/index.html | 2 +- + .../doc_generated/community/middleware.html | 4 +- + .../devguide/coding/3D-graphics.html | 8 +- + .../coding/application-structure.html | 2 +- + .../doc_generated/devguide/coding/audio.html | 2 +- + .../devguide/coding/file-io.html | 2 +- + .../devguide/devcycle/building.html | 4 +- + .../devguide/devcycle/debugging.html | 8 +- + .../devguide/devcycle/dynamic-loading.html | 4 +- + .../devguide/devcycle/running.html | 8 +- + .../devguide/devcycle/vs-addin.html | 6 +- + .../doc_generated/devguide/distributing.html | 4 +- + .../doc_generated/devguide/index.html | 2 +- + .../devguide/tutorial/tutorial-part1.html | 4 +- + .../devguide/tutorial/tutorial-part2.html | 4 +- + native_client_sdk/doc_generated/faq.html | 36 +- + native_client_sdk/doc_generated/help.html | 16 +- + native_client_sdk/doc_generated/index.html | 8 +- + native_client_sdk/doc_generated/io2014.html | 6 +- + .../doc_generated/migration/index.html | 4 +- + .../doc_generated/nacl-and-pnacl.html | 2 +- + native_client_sdk/doc_generated/overview.html | 4 +- + .../c/struct_p_p_b___file_system__1__0.html | 2 +- + .../c/struct_p_p_b___host_resolver__1__0.html | 2 +- + .../struct_p_p_b___network_monitor__1__0.html | 2 +- + .../c/struct_p_p_b___network_proxy__1__0.html | 2 +- + .../c/struct_p_p_b___t_c_p_socket__1__2.html | 2 +- + .../c/struct_p_p_b___u_d_p_socket__1__2.html | 2 +- + .../cpp/classpp_1_1_file_system.html | 2 +- + .../cpp/classpp_1_1_host_resolver.html | 2 +- + .../cpp/classpp_1_1_network_proxy.html | 2 +- + .../cpp/classpp_1_1_t_c_p_socket.html | 2 +- + .../cpp/classpp_1_1_u_d_p_socket.html | 2 +- + .../c/struct_p_p_b___file_system__1__0.html | 2 +- + .../c/struct_p_p_b___host_resolver__1__0.html | 2 +- + .../struct_p_p_b___network_monitor__1__0.html | 2 +- + .../c/struct_p_p_b___network_proxy__1__0.html | 2 +- + .../c/struct_p_p_b___t_c_p_socket__1__2.html | 2 +- + .../c/struct_p_p_b___u_d_p_socket__1__2.html | 2 +- + .../cpp/classpp_1_1_file_system.html | 2 +- + .../cpp/classpp_1_1_host_resolver.html | 2 +- + .../cpp/classpp_1_1_network_proxy.html | 2 +- + .../cpp/classpp_1_1_t_c_p_socket.html | 2 +- + .../cpp/classpp_1_1_u_d_p_socket.html | 2 +- + .../c/struct_p_p_b___file_system__1__0.html | 2 +- + .../c/struct_p_p_b___host_resolver__1__0.html | 2 +- + .../struct_p_p_b___network_monitor__1__0.html | 2 +- + .../c/struct_p_p_b___network_proxy__1__0.html | 2 +- + .../c/struct_p_p_b___t_c_p_socket__1__2.html | 2 +- + .../c/struct_p_p_b___u_d_p_socket__1__2.html | 2 +- + .../cpp/classpp_1_1_file_system.html | 2 +- + .../cpp/classpp_1_1_host_resolver.html | 2 +- + .../cpp/classpp_1_1_network_proxy.html | 2 +- + .../cpp/classpp_1_1_t_c_p_socket.html | 2 +- + .../cpp/classpp_1_1_u_d_p_socket.html | 2 +- + .../publications-and-presentations.html | 48 +- + .../doc_generated/reference/design-docs.html | 30 +- + .../doc_generated/reference/ideas.html | 18 +- + .../pnacl-c-cpp-language-support.html | 2 +- + .../reference/pnacl-undefined-behavior.html | 12 +- + .../sandbox_internals/arm-32-bit-sandbox.html | 6 +- + .../reference/sandbox_internals/index.html | 6 +- + .../sandbox_internals/x86-64-sandbox.html | 2 +- + .../doc_generated/rest-devsite-examples.html | 2 +- + .../doc_generated/sdk/download.html | 4 +- + .../doc_generated/sdk/release-notes.html | 22 +- + .../src/build_tools/build_artifacts.py | 2 +- + .../src/build_tools/build_paths.py | 2 +- + .../src/build_tools/build_sdk.py | 2 +- + .../src/build_tools/buildbot_common.py | 2 +- + .../src/build_tools/buildbot_run.py | 2 +- + .../build_tools/json/naclsdk_manifest.json | 32 +- + .../build_tools/json/naclsdk_manifest0.json | 2 +- + .../build_tools/json/naclsdk_manifest2.json | 4 +- + .../src/build_tools/make_simple.py | 2 +- + .../src/build_tools/nacl-mono-buildbot.py | 2 +- + .../src/build_tools/nacl-mono-builder.py | 2 +- + .../src/build_tools/sdk_tools/cacerts.txt | 2 +- + .../src/build_tools/sdk_tools/config.py | 2 +- + .../build_tools/sdk_tools/sdk_update_main.py | 2 +- + .../third_party/fancy_urllib/__init__.py | 4 +- + .../src/build_tools/update_nacl_manifest.py | 6 +- + .../src/build_tools/update_sdktools.py | 2 +- + native_client_sdk/src/doc/Makefile | 2 +- + native_client_sdk/src/doc/_book.yaml | 2 +- + .../src/doc/_sphinxext/chromesite_builder.py | 2 +- + .../src/doc/_sphinxext/devsite_builder.py | 2 +- + native_client_sdk/src/doc/conf.py | 2 +- + .../src/doc/doxygen/generate_docs.py | 2 +- + .../src/examples/api/socket/index.html | 2 +- + .../api/url_loader/url_loader_handler.h | 2 +- + .../src/examples/demo/drive/drive.cc | 20 +- + .../src/examples/demo/drive/index.html | 2 +- + .../src/examples/demo/nacl_io_demo/index.html | 6 +- + .../src/gonacl_appengine/gonacl.py | 8 +- + .../static/bullet/fullscreen.html | 4 +- + .../gonacl_appengine/static/bullet/index.html | 4 +- + .../gonacl_appengine/static/bullet/main.js | 2 +- + .../gonacl_appengine/static/cube/example.js | 4 +- + .../gonacl_appengine/static/cube/index.html | 2 +- + .../gonacl_appengine/static/earth/example.js | 4 +- + .../gonacl_appengine/static/earth/index.html | 2 +- + .../gonacl_appengine/static/home/index.html | 2 +- + .../src/gonacl_appengine/static/index.html | 6 +- + .../gonacl_appengine/static/life/example.js | 2 +- + .../gonacl_appengine/static/life/index.html | 2 +- + .../gonacl_appengine/static/lua/index.html | 6 +- + .../src/gonacl_appengine/static/lua/lua.js | 2 +- + .../gonacl_appengine/static/lua/naclterm.js | 2 +- + .../static/smoothlife/example.js | 2 +- + .../static/smoothlife/index.html | 4 +- + .../static/voronoi/example.js | 2 +- + .../static/voronoi/index.html | 2 +- + .../src/libraries/nacl_io/include/sys/time.h | 2 +- + .../src/libraries/nacl_io/include/utime.h | 2 +- + .../src/libraries/nacl_io/syscalls/isatty.c | 2 +- + .../src/libraries/nacl_io/syscalls/truncate.c | 2 +- + native_client_sdk/src/resources/common.js | 2 +- + native_client_sdk/src/tools/fix_manifest.py | 2 +- + native_client_sdk/src/web/manifest.html | 6 +- + net/BUILD.gn | 2 +- + net/android/cellular_signal_strength.cc | 2 +- + net/android/http_auth_negotiate_android.h | 2 +- + .../chromium/net/AndroidNetworkLibrary.java | 2 +- + .../net/HttpNegotiateAuthenticator.java | 2 +- + .../net/NetworkChangeNotifierAutoDetect.java | 4 +- + .../java/src/org/chromium/net/X509Util.java | 2 +- + net/base/data_url.cc | 4 +- + net/base/file_stream_context.h | 2 +- + net/base/filename_util.cc | 2 +- + net/base/filename_util_internal.cc | 4 +- + net/base/load_timing_info.h | 2 +- + net/base/network_change_notifier_mac.cc | 2 +- + net/base/network_change_notifier_win.cc | 4 +- + net/base/network_interfaces_win.cc | 4 +- + net/base/platform_mime_util_mac.mm | 2 +- + .../registry_controlled_domain.cc | 4 +- + .../registry_controlled_domain.h | 24 +- + net/base/url_util.cc | 4 +- + net/cert/cert_verifier.h | 2 +- + net/cert/cert_verify_proc.cc | 4 +- + net/cert/cert_verify_proc.h | 2 +- + net/cert/cert_verify_proc_mac.cc | 2 +- + net/cert/cert_verify_proc_nss.cc | 2 +- + net/cert/cert_verify_proc_win.cc | 2 +- + net/cert/internal/signature_algorithm.cc | 2 +- + net/cert/internal/verify_certificate_chain.cc | 2 +- + net/cert/known_roots_nss.cc | 2 +- + net/cert/nss_cert_database.cc | 2 +- + net/cert/symantec_certs.h | 6 +- + net/cert/x509_certificate.cc | 2 +- + net/cert/x509_util_mac.cc | 2 +- + net/cert/x509_util_mac.h | 2 +- + net/cookies/canonical_cookie.cc | 4 +- + net/cookies/cookie_monster.cc | 6 +- + net/cookies/cookie_monster.h | 8 +- + net/cookies/cookie_util.h | 4 +- + net/cookies/parsed_cookie.cc | 4 +- + net/cookies/parsed_cookie.h | 4 +- + .../http_security_header_047.txt | Bin 166 -> 169 bytes + net/disk_cache/disk_cache.h | 2 +- + net/disk_cache/simple/simple_backend_impl.h | 2 +- + net/disk_cache/simple/simple_index.cc | 2 +- + net/dns/dns_config_service_win.cc | 2 +- + net/dns/dns_config_service_win.h | 2 +- + net/dns/dns_transaction.cc | 2 +- + net/dns/dns_util.cc | 2 +- + net/dns/dns_util.h | 2 +- + net/dns/mdns_client.h | 2 +- + net/dns/notify_watcher_mac.cc | 4 +- + .../sqlite/sqlite_persistent_cookie_store.cc | 12 +- + net/http/alternative_service.h | 2 +- + net/http/http_auth_challenge_tokenizer.cc | 2 +- + net/http/http_auth_handler_negotiate.cc | 8 +- + net/http/http_auth_handler_ntlm.cc | 2 +- + net/http/http_auth_handler_ntlm_win.cc | 4 +- + net/http/http_auth_sspi_win.cc | 4 +- + net/http/http_cache_transaction.cc | 2 +- + net/http/http_chunked_decoder.cc | 2 +- + net/http/http_chunked_decoder.h | 2 +- + net/http/http_network_transaction.cc | 2 +- + net/http/http_response_headers.cc | 4 +- + net/http/http_server_properties.cc | 4 +- + net/http/http_server_properties.h | 4 +- + net/http/http_server_properties_manager.cc | 6 +- + net/http/http_stream_parser.cc | 2 +- + net/http/http_util.cc | 2 +- + net/http/transport_security_state.cc | 2 +- + net/http/transport_security_state.h | 2 +- + net/http/transport_security_state_static.json | 494 +- + net/http/url_security_manager_win.cc | 6 +- + net/log/file_net_log_observer.cc | 2 +- + net/log/net_log.h | 2 +- + net/nqe/network_quality_estimator_params.cc | 4 +- + net/nqe/socket_watcher.cc | 2 +- + net/ntlm/ntlm.h | 2 +- + net/ntlm/ntlm_buffer_reader.h | 2 +- + net/ntlm/ntlm_buffer_writer.h | 2 +- + net/ntlm/ntlm_client.cc | 4 +- + net/ntlm/ntlm_client.h | 8 +- + .../dhcp_pac_file_adapter_fetcher_win.cc | 4 +- + net/proxy_resolution/pac_file_decider.cc | 2 +- + net/proxy_resolution/pac_js_library.h | 6 +- + net/proxy_resolution/proxy_bypass_rules.cc | 2 +- + net/proxy_resolution/proxy_bypass_rules.h | 6 +- + net/proxy_resolution/proxy_config.h | 2 +- + .../proxy_config_service_android.cc | 4 +- + .../proxy_config_service_linux.cc | 6 +- + .../proxy_resolution_service.cc | 2 +- + net/proxy_resolution/proxy_resolver_mac.h | 2 +- + .../proxy_resolver_v8_tracing.cc | 2 +- + .../proxy_resolver_v8_tracing.h | 2 +- + .../proxy_resolver_winhttp.cc | 4 +- + net/quic/crypto/proof_verifier_chromium.cc | 2 +- + net/quic/quic_stream_factory.cc | 8 +- + net/socket/socket_options.h | 2 +- + net/socket/tcp_socket_win.cc | 4 +- + net/socket/udp_socket_posix.h | 2 +- + net/socket/udp_socket_win.h | 4 +- + net/spdy/spdy_session.cc | 2 +- + net/ssl/client_cert_store_mac.cc | 2 +- + net/ssl/client_cert_store_win.cc | 2 +- + net/ssl/openssl_ssl_util.cc | 2 +- + net/ssl/ssl_key_logger.h | 2 +- + net/ssl/ssl_platform_key_mac.cc | 2 +- + .../nsNSSCertificateDB.cpp | 2 +- + .../nsNSSCertificateDB.h | 2 +- + .../mozilla_security_manager/nsPKCS12Blob.cpp | 2 +- + .../mozilla_security_manager/nsPKCS12Blob.h | 2 +- + net/third_party/nss/ssl/cmpcert.cc | 2 +- + net/third_party/nss/ssl/cmpcert.h | 2 +- + net/tools/print_certificates.py | 2 +- + net/tools/quic/quic_simple_client_bin.cc | 18 +- + .../transport_security_state_generator.cc | 2 +- + net/url_request/redirect_util.cc | 2 +- + net/url_request/url_fetcher.h | 2 +- + pdf/document_loader_impl.cc | 2 +- + pdf/out_of_process_instance.h | 2 +- + pdf/paint_aggregator.h | 2 +- + pdf/pdfium/pdfium_engine.cc | 2 +- + ppapi/api/pp_macros.idl | 2 +- + ppapi/api/ppb_file_system.idl | 2 +- + ppapi/api/ppb_host_resolver.idl | 2 +- + ppapi/api/ppb_network_monitor.idl | 2 +- + ppapi/api/ppb_network_proxy.idl | 2 +- + ppapi/api/ppb_tcp_socket.idl | 2 +- + ppapi/api/ppb_udp_socket.idl | 2 +- + .../private/ppp_flash_browser_operations.idl | 4 +- + ppapi/c/dev/ppb_var_deprecated.h | 2 +- + ppapi/c/dev/ppp_class_deprecated.h | 2 +- + ppapi/c/pp_macros.h | 2 +- + ppapi/c/ppb_file_system.h | 2 +- + ppapi/c/ppb_host_resolver.h | 2 +- + ppapi/c/ppb_network_monitor.h | 2 +- + ppapi/c/ppb_network_proxy.h | 2 +- + ppapi/c/ppb_tcp_socket.h | 2 +- + ppapi/c/ppb_udp_socket.h | 2 +- + .../c/private/ppp_flash_browser_operations.h | 4 +- + ppapi/cpp/dev/scriptable_object_deprecated.h | 2 +- + ppapi/cpp/file_system.h | 2 +- + ppapi/cpp/host_resolver.h | 2 +- + ppapi/cpp/network_proxy.h | 2 +- + ppapi/cpp/tcp_socket.h | 2 +- + ppapi/cpp/udp_socket.h | 2 +- + .../untrusted/irt_stub/ppapi_plugin_start.c | 2 +- + ppapi/utility/graphics/paint_aggregator.h | 2 +- + printing/backend/print_backend_win.cc | 2 +- + printing/backend/win_helper.cc | 6 +- + printing/metafile_skia.cc | 2 +- + printing/print_settings_initializer_win.cc | 2 +- + printing/printing_context.h | 2 +- + .../android/java/res/layout/host_offline.xml | 2 +- + .../android/java/res/layout/host_online.xml | 2 +- + .../org/chromium/chromoting/Chromoting.java | 8 +- + .../chromium/chromoting/InputEventSender.java | 2 +- + .../chromoting/PrivacyPolicyActivity.java | 2 +- + .../chromoting/TermsOfServiceActivity.java | 2 +- + .../chromoting/ThirdPartyTokenFetcher.java | 2 +- + .../chromoting/help/HelpAndFeedbackBasic.java | 6 +- + .../chromoting/jni/JniOAuthTokenGetter.java | 6 +- + remoting/base/breakpad_mac.mm | 2 +- + remoting/base/chromium_url_request.cc | 2 +- + remoting/base/oauth_token_exchanger.cc | 2 +- + remoting/base/service_urls.cc | 6 +- + remoting/codec/video_encoder_vpx.cc | 6 +- + remoting/codec/webrtc_video_encoder_vpx.cc | 6 +- + remoting/host/evaluate_capability.cc | 2 +- + remoting/host/input_injector_x11.cc | 2 +- + ...rome.remote_assistance-firefox.json.jinja2 | 2 +- + remoting/host/linux/linux_me2me_host.py | 2 +- + remoting/host/linux/remoting_user_session.cc | 2 +- + remoting/host/remoting_me2me_host.cc | 2 +- + ....chrome.remote_desktop-firefox.json.jinja2 | 2 +- + remoting/host/setup/start_host_main.cc | 2 +- + remoting/host/touch_injector_win.cc | 2 +- + remoting/ios/app/app_delegate.mm | 4 +- + remoting/ios/app/help_view_controller.mm | 2 +- + .../ios/app/host_setup_view_controller.mm | 2 +- + .../ios/app/remoting_menu_view_controller.mm | 10 +- + .../facade/remoting_oauth_authentication.mm | 2 +- + remoting/protocol/fake_session.cc | 2 +- + remoting/protocol/socket_util.cc | 2 +- + remoting/resources/remoting_strings.grd | 18 +- + remoting/tools/build/remoting_localize.py | 6 +- + remoting/tools/zip2msi.py | 2 +- + remoting/webapp/base/js/base.js | 2 +- + remoting/webapp/base/js/oauth2.js | 6 +- + remoting/webapp/base/js/xmpp_connection.js | 16 +- + remoting/webapp/base/js/xmpp_login_handler.js | 2 +- + remoting/webapp/build-webapp.py | 22 +- + remoting/webapp/crd/html/butter_bar.html | 2 +- + .../dialog_client_host_needs_upgrade.html | 2 +- + .../crd/html/dialog_client_pin_prompt.html | 2 +- + .../crd/html/dialog_client_unconnected.html | 2 +- + .../webapp/crd/html/dialog_host_setup.html | 2 +- + remoting/webapp/crd/html/ui_it2me.html | 2 +- + remoting/webapp/crd/js/apps_v2_migration.js | 2 +- + remoting/webapp/crd/js/feedback.js | 2 +- + remoting/webapp/crd/js/gcd_client.js | 2 +- + remoting/webapp/crd/js/host_install_dialog.js | 2 +- + remoting/webapp/crd/js/host_installer.js | 12 +- + remoting/webapp/crd/js/host_screen.js | 2 +- + .../crd/js/third_party_token_fetcher.js | 2 +- + remoting/webapp/crd/manifest.json.jinja2 | 12 +- + remoting/webapp/js_proto/chrome_mocks.js | 2 +- + remoting/webapp/js_proto/dom_proto.js | 4 +- + rlz/lib/financial_ping.cc | 2 +- + sandbox/features.gni | 2 +- + .../syscall_parameters_restrictions.cc | 10 +- + sandbox/linux/services/libc_interceptor.cc | 6 +- + sandbox/linux/services/libc_interceptor.h | 2 +- + .../suid/client/setuid_sandbox_client.cc | 2 +- + .../linux/suid/client/setuid_sandbox_host.cc | 4 +- + sandbox/linux/suid/sandbox.c | 4 +- + sandbox/win/src/interception.cc | 2 +- + sandbox/win/src/interception.h | 2 +- + sandbox/win/src/interception_agent.cc | 2 +- + sandbox/win/src/interception_agent.h | 2 +- + sandbox/win/src/interception_internal.h | 2 +- + sandbox/win/src/named_pipe_dispatcher.cc | 2 +- + sandbox/win/src/nt_internals.h | 4 +- + sandbox/win/src/process_mitigations.cc | 2 +- + sandbox/win/src/resolver.h | 2 +- + sandbox/win/src/sandbox_nt_util.h | 2 +- + sandbox/win/src/sandbox_policy.h | 2 +- + sandbox/win/src/sandbox_rand.cc | 2 +- + sandbox/win/src/security_level.h | 4 +- + services/BUILD.gn | 2 +- + services/audio/audio_sandbox_win.cc | 2 +- + .../platform_sensor_ambient_light_mac.cc | 2 +- + .../platform_sensor_reader_win.cc | 2 +- + .../platform_sensor_reader_winrt.cc | 2 +- + .../geolocation/LocationProviderAndroid.java | 2 +- + .../geolocation/LocationProviderGmsCore.java | 2 +- + .../geolocation/network_location_request.cc | 2 +- + .../src/org/chromium/device/nfc/NFCTest.java | 2 +- + .../device/public/mojom/geoposition.mojom | 2 +- + .../image_annotation_service.h | 2 +- + services/network/cert_verify_proc_chromeos.cc | 2 +- + .../network/cross_origin_read_blocking.cc | 8 +- + services/network/cross_origin_read_blocking.h | 2 +- + .../public/cpp/is_potentially_trustworthy.cc | 2 +- + .../network/public/cpp/network_switches.cc | 2 +- + .../network/public/cpp/resource_response.h | 2 +- + .../network/public/mojom/cookie_manager.mojom | 4 +- + .../public/mojom/network_context.mojom | 4 +- + .../public/mojom/network_service.mojom | 2 +- + .../network/public/mojom/udp_socket.mojom | 2 +- + services/network/websocket_throttler.h | 2 +- + .../queued_request_dispatcher.cc | 2 +- + .../client_process_impl.h | 2 +- + .../tracing_observer.cc | 2 +- + .../memory_instrumentation.mojom | 4 +- + .../service_manager/embedder/descriptors.h | 2 +- + .../service_manager/public/cpp/manifest.h | 2 +- + .../sandbox/linux/sandbox_linux.h | 2 +- + .../sandbox/win/sandbox_win.cc | 8 +- + .../service_process_launcher.cc | 2 +- + .../zygote/host/zygote_communication_linux.h | 2 +- + .../zygote/host/zygote_host_impl_linux.cc | 2 +- + .../zygote/zygote_host_linux.h | 2 +- + .../service_manager/zygote/zygote_linux.cc | 4 +- + .../service_manager/zygote/zygote_linux.h | 2 +- + .../zygote/zygote_main_linux.cc | 2 +- + .../shape_detection/BarcodeDetectionImpl.java | 2 +- + .../shape_detection/FaceDetectionImpl.java | 2 +- + .../text_detection_impl_win.cc | 2 +- + .../perfetto/privacy_filtered_fields-inl.h | 2 +- + services/tracing/public/mojom/constants.mojom | 2 +- + .../public/mojom/perfetto_service.mojom | 4 +- + skia/config/SkUserConfig.h | 4 +- + sql/database.cc | 4 +- + storage/browser/blob/blob_reader.h | 2 +- + storage/browser/fileapi/file_system_backend.h | 2 +- + styleguide/c++/c++11.html | 20 +- + styleguide/c++/chromium-cpp/main.py | 2 +- + .../markdown/extensions/smarty.py | 2 +- + .../abseil-cpp/absl/algorithm/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/base/config.h | 2 +- + .../absl/base/internal/direct_mmap.h | 2 +- + .../abseil-cpp/absl/debugging/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/flags/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/hash/BUILD.gn | 6 +- + .../abseil-cpp/absl/hash/internal/city.h | 2 +- + third_party/abseil-cpp/absl/memory/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/meta/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/random/BUILD.gn | 6 +- + .../abseil-cpp/absl/random/internal/BUILD.gn | 6 +- + .../absl/random/internal/platform.h | 2 +- + third_party/abseil-cpp/absl/strings/BUILD.gn | 6 +- + .../abseil-cpp/absl/strings/string_view.cc | 2 +- + .../abseil-cpp/absl/synchronization/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/time/BUILD.gn | 6 +- + .../absl/time/internal/cctz/BUILD.gn | 6 +- + third_party/abseil-cpp/absl/time/time.h | 2 +- + third_party/abseil-cpp/absl/types/BUILD.gn | 6 +- + third_party/afl/src/Makefile | 4 +- + third_party/afl/src/afl-analyze.c | 4 +- + third_party/afl/src/afl-as.c | 6 +- + third_party/afl/src/afl-as.h | 6 +- + third_party/afl/src/afl-fuzz.c | 6 +- + third_party/afl/src/afl-gcc.c | 4 +- + third_party/afl/src/afl-gotcpu.c | 6 +- + third_party/afl/src/afl-showmap.c | 4 +- + third_party/afl/src/afl-tmin.c | 4 +- + third_party/afl/src/alloc-inl.h | 2 +- + third_party/afl/src/config.h | 2 +- + third_party/afl/src/debug.h | 2 +- + third_party/afl/src/docs/QuickStartGuide.txt | 2 +- + third_party/afl/src/docs/historical_notes.txt | 2 +- + third_party/afl/src/docs/notes_for_asan.txt | 2 +- + third_party/afl/src/docs/sister_projects.txt | 4 +- + .../canvas_harness/canvas_harness.html | 2 +- + .../persistent_demo/persistent_demo.c | 2 +- + .../post_library/post_library.so.c | 2 +- + .../post_library/post_library_png.so.c | 2 +- + third_party/afl/src/hash.h | 2 +- + third_party/afl/src/libdislocator/Makefile | 2 +- + .../afl/src/libdislocator/libdislocator.so.c | 2 +- + third_party/afl/src/libtokencap/Makefile | 2 +- + .../afl/src/libtokencap/libtokencap.so.c | 2 +- + third_party/afl/src/llvm_mode/Makefile | 6 +- + .../afl/src/llvm_mode/afl-clang-fast.c | 8 +- + third_party/afl/src/llvm_mode/afl-llvm-rt.o.c | 4 +- + .../src/qemu_mode/patches/afl-qemu-cpu-inl.h | 4 +- + third_party/afl/src/types.h | 2 +- + .../src/src/crazy_linker_ashmem.h | 2 +- + .../src/src/crazy_linker_debug.h | 2 +- + .../src/src/crazy_linker_library_list.cpp | 2 +- + .../src/src/crazy_linker_rdebug.cpp | 4 +- + .../src/src/crazy_linker_relr_relocations.h | 2 +- + .../src/src/crazy_linker_shared_library.cpp | 4 +- + .../src/src/crazy_linker_system_android.cpp | 2 +- + .../src/src/crazy_linker_wrappers.cpp | 2 +- + .../Android_SDK_License-December_9_2016.txt | 4 +- + .../development/scripts/stack.py | 2 +- + third_party/apple_apsl/cssmapplePriv.h | 2 +- + third_party/ashmem/ashmem-dev.c | 2 +- + third_party/axe-core/axe.js | 2 +- + third_party/axe-core/axe.min.js | 2 +- + third_party/blanketjs/src/blanket.js | 8 +- + third_party/blink/PRESUBMIT.py | 4 +- + .../common/frame/user_activation_state.h | 4 +- + .../public/common/origin_trials/trial_token.h | 2 +- + .../document_metadata/copyless_paste.mojom | 2 +- + .../public/mojom/feature_policy/PRESUBMIT.py | 2 +- + .../mojom/payments/payment_handler_host.mojom | 2 +- + .../mojom/payments/payment_request.mojom | 2 +- + .../mojom/remote_objects/remote_objects.mojom | 2 +- + .../public/mojom/web_feature/PRESUBMIT.py | 2 +- + .../platform/linux/web_sandbox_support.h | 2 +- + third_party/blink/public/platform/platform.h | 4 +- + .../public/platform/web_keyboard_event.h | 2 +- + .../blink/public/platform/web_url_response.h | 2 +- + third_party/blink/public/web/web_node.h | 2 +- + .../blink/renderer/bindings/PRESUBMIT.py | 2 +- + .../blink/renderer/bindings/core/v8/BUILD.gn | 2 +- + .../bindings/core/v8/script_regexp.cc | 2 +- + .../renderer/bindings/core/v8/window_proxy.cc | 4 +- + .../renderer/bindings/core/v8/window_proxy.h | 2 +- + .../scripts/aggregate_generated_bindings.py | 2 +- + .../bindings/scripts/blink_idl_lexer.py | 2 +- + .../bindings/scripts/blink_idl_parser.py | 4 +- + .../bindings/scripts/code_generator_v8.py | 2 +- + .../scripts/compute_global_objects.py | 2 +- + .../compute_interfaces_info_individual.py | 2 +- + .../compute_interfaces_info_overall.py | 2 +- + .../scripts/generate_global_constructors.py | 2 +- + .../renderer/bindings/scripts/idl_compiler.py | 2 +- + .../bindings/scripts/idl_definitions.py | 2 +- + .../renderer/bindings/scripts/idl_reader.py | 4 +- + .../bindings/scripts/idl_validator.py | 2 +- + .../scripts/interface_dependency_resolver.py | 2 +- + .../renderer/bindings/scripts/utilities.py | 2 +- + .../bindings/scripts/v8_attributes.py | 2 +- + .../bindings/scripts/v8_callback_function.py | 2 +- + .../bindings/scripts/v8_callback_interface.py | 2 +- + .../renderer/bindings/scripts/v8_interface.py | 2 +- + .../renderer/bindings/scripts/v8_methods.py | 2 +- + .../renderer/bindings/scripts/v8_types.py | 2 +- + .../renderer/bindings/scripts/v8_utilities.py | 2 +- + .../core/style/make_computed_style_base.py | 2 +- + .../build/scripts/update_css_ranking.py | 4 +- + .../memory_usage_monitor_android.cc | 2 +- + third_party/blink/renderer/core/BUILD.gn | 2 +- + .../renderer/core/animation/sampled_effect.cc | 2 +- + .../renderer/core/clipboard/data_transfer.h | 2 +- + .../css/css_computed_style_declaration.cc | 2 +- + .../renderer/core/css/css_font_face_rule.idl | 2 +- + .../renderer/core/css/css_global_rule_set.h | 2 +- + .../renderer/core/css/css_import_rule.idl | 2 +- + .../renderer/core/css/css_media_rule.idl | 2 +- + .../blink/renderer/core/css/css_page_rule.idl | 2 +- + .../core/css/css_primitive_value_mappings.h | 2 +- + .../core/css/css_properties_ranking.json5 | 2 +- + .../blink/renderer/core/css/css_rule.idl | 2 +- + .../blink/renderer/core/css/css_selector.cc | 2 +- + .../core/css/css_style_declaration.idl | 2 +- + .../renderer/core/css/css_style_rule.idl | 2 +- + .../renderer/core/css/css_style_sheet.idl | 2 +- + .../css/invalidation/pending_invalidations.h | 2 +- + .../core/css/invalidation/style_invalidator.h | 2 +- + .../blink/renderer/core/css/parser/css.proto | 8 +- + .../core/css/parser/css_selector_parser.cc | 6 +- + .../core/css/remote_font_face_source.cc | 2 +- + .../core/css/resolver/style_adjuster.cc | 2 +- + .../core/css/resolver/style_resolver.cc | 2 +- + .../renderer/core/css/rule_feature_set.cc | 2 +- + .../renderer/core/css/selector_checker.cc | 2 +- + .../blink/renderer/core/css/style_engine.cc | 6 +- + .../blink/renderer/core/css/style_sheet.idl | 2 +- + .../renderer/core/css/style_sheet_list.idl | 2 +- + .../renderer/core/dom/abort_controller.h | 2 +- + .../blink/renderer/core/dom/abort_signal.h | 2 +- + third_party/blink/renderer/core/dom/attr.idl | 2 +- + .../blink/renderer/core/dom/cdata_section.idl | 2 +- + .../blink/renderer/core/dom/child_node.idl | 2 +- + .../renderer/core/dom/class_collection.cc | 2 +- + .../renderer/core/dom/class_collection.h | 2 +- + .../blink/renderer/core/dom/comment.idl | 2 +- + .../blink/renderer/core/dom/container_node.cc | 2 +- + .../renderer/core/dom/dom_implementation.idl | 2 +- + .../blink/renderer/core/dom/element.cc | 6 +- + third_party/blink/renderer/core/dom/element.h | 2 +- + .../blink/renderer/core/dom/element.idl | 4 +- + .../renderer/core/dom/element_rare_data.h | 2 +- + .../blink/renderer/core/dom/events/event.cc | 2 +- + .../blink/renderer/core/dom/events/event.h | 2 +- + .../blink/renderer/core/dom/events/event.idl | 2 +- + .../core/dom/events/event_listener.idl | 2 +- + .../renderer/core/dom/events/event_target.cc | 4 +- + .../renderer/core/dom/events/event_target.idl | 2 +- + .../dom/events/registered_event_listener.cc | 2 +- + .../dom/events/registered_event_listener.h | 2 +- + .../core/dom/first_letter_pseudo_element.cc | 2 +- + .../core/dom/first_letter_pseudo_element.h | 2 +- + .../blink/renderer/core/dom/iterator.idl | 2 +- + .../renderer/core/dom/named_node_map.idl | 2 +- + third_party/blink/renderer/core/dom/node.idl | 2 +- + .../renderer/core/dom/node_computed_style.h | 2 +- + .../blink/renderer/core/dom/node_filter.idl | 2 +- + .../blink/renderer/core/dom/node_iterator.cc | 2 +- + .../blink/renderer/core/dom/node_iterator.h | 2 +- + .../blink/renderer/core/dom/node_iterator.idl | 2 +- + .../renderer/core/dom/node_iterator_base.cc | 2 +- + .../renderer/core/dom/node_iterator_base.h | 2 +- + .../blink/renderer/core/dom/node_list.idl | 2 +- + .../renderer/core/dom/node_lists_node_data.h | 2 +- + .../blink/renderer/core/dom/node_rare_data.h | 2 +- + .../core/dom/processing_instruction.idl | 2 +- + third_party/blink/renderer/core/dom/range.cc | 4 +- + third_party/blink/renderer/core/dom/range.idl | 2 +- + .../renderer/core/dom/space_split_string.cc | 2 +- + .../renderer/core/dom/transform_source.h | 2 +- + .../blink/renderer/core/dom/tree_walker.cc | 2 +- + .../blink/renderer/core/dom/tree_walker.h | 2 +- + .../blink/renderer/core/dom/tree_walker.idl | 2 +- + .../editing/commands/smart_replace_icu.cc | 2 +- + .../renderer/core/editing/dom_selection.cc | 4 +- + .../renderer/core/editing/editing_behavior.cc | 4 +- + .../core/editing/editing_utilities.cc | 2 +- + .../core/editing/finder/find_buffer.h | 2 +- + .../cold_mode_spell_check_requester.h | 2 +- + .../hot_mode_spell_check_requester.h | 2 +- + .../spellcheck/idle_spell_check_controller.h | 2 +- + .../events/application_cache_error_event.idl | 2 +- + .../core/events/before_unload_event.cc | 2 +- + .../core/events/before_unload_event.h | 2 +- + .../renderer/core/events/clipboard_event.cc | 2 +- + .../renderer/core/events/clipboard_event.h | 2 +- + .../blink/renderer/core/events/input_event.cc | 2 +- + .../renderer/core/events/keyboard_event.cc | 2 +- + .../renderer/core/events/keyboard_event.h | 2 +- + .../renderer/core/events/keyboard_event.idl | 2 +- + .../blink/renderer/core/events/mouse_event.cc | 2 +- + .../blink/renderer/core/events/mouse_event.h | 2 +- + .../renderer/core/events/mutation_event.cc | 2 +- + .../renderer/core/events/mutation_event.h | 2 +- + .../blink/renderer/core/events/touch_event.cc | 2 +- + .../blink/renderer/core/events/ui_event.cc | 2 +- + .../blink/renderer/core/events/ui_event.h | 2 +- + .../core/events/ui_event_with_key_state.h | 2 +- + .../blink/renderer/core/events/wheel_event.cc | 4 +- + .../blink/renderer/core/events/wheel_event.h | 2 +- + .../renderer/core/events/wheel_event.idl | 2 +- + .../exported/web_plugin_container_impl.cc | 2 +- + .../core/exported/web_searchable_form_data.cc | 2 +- + .../core/fileapi/file_reader_loader_client.h | 2 +- + .../blink/renderer/core/frame/PRESUBMIT.py | 2 +- + .../blink/renderer/core/frame/deprecation.cc | 52 +- + .../core/frame/embedded_content_view.h | 2 +- + third_party/blink/renderer/core/frame/frame.h | 2 +- + .../renderer/core/frame/frame_serializer.cc | 2 +- + .../renderer/core/frame/local_dom_window.h | 2 +- + .../blink/renderer/core/frame/local_frame.cc | 4 +- + .../blink/renderer/core/frame/local_frame.h | 4 +- + .../renderer/core/frame/local_frame_view.cc | 2 +- + .../renderer/core/frame/local_frame_view.h | 2 +- + .../blink/renderer/core/frame/navigator.cc | 4 +- + .../blink/renderer/core/frame/settings.h | 2 +- + .../blink/renderer/core/frame/settings.json5 | 4 +- + .../core/frame/web_frame_serializer_impl.cc | 2 +- + .../core/frame/web_view_frame_widget.h | 2 +- + .../core/html/custom/element_internals.idl | 2 +- + .../core/html/custom/validity_state_flags.idl | 2 +- + .../core/html/forms/base_text_input_type.cc | 2 +- + .../core/html/forms/email_input_type.cc | 2 +- + .../core/html/forms/html_button_element.idl | 2 +- + .../forms/html_form_controls_collection.cc | 2 +- + .../forms/html_form_controls_collection.idl | 2 +- + .../core/html/forms/html_form_element.idl | 2 +- + .../core/html/forms/html_input_element.idl | 2 +- + .../core/html/forms/html_label_element.idl | 2 +- + .../core/html/forms/html_legend_element.idl | 2 +- + .../core/html/forms/html_option_element.idl | 2 +- + .../html/forms/html_options_collection.idl | 2 +- + .../core/html/forms/html_select_element.idl | 2 +- + .../html/forms/html_text_area_element.idl | 2 +- + .../core/html/forms/validity_state.cc | 2 +- + .../renderer/core/html/forms/validity_state.h | 2 +- + .../core/html/forms/validity_state.idl | 2 +- + .../renderer/core/html/html_anchor_element.cc | 2 +- + .../core/html/html_anchor_element.idl | 2 +- + .../renderer/core/html/html_area_element.idl | 2 +- + .../renderer/core/html/html_body_element.idl | 2 +- + .../renderer/core/html/html_collection.cc | 2 +- + .../renderer/core/html/html_collection.idl | 2 +- + .../blink/renderer/core/html/html_document.cc | 2 +- + .../renderer/core/html/html_document.idl | 2 +- + .../blink/renderer/core/html/html_element.idl | 4 +- + .../renderer/core/html/html_embed_element.idl | 2 +- + .../renderer/core/html/html_frame_element.idl | 2 +- + .../core/html/html_frame_set_element.idl | 2 +- + .../renderer/core/html/html_iframe_element.cc | 2 +- + .../core/html/html_iframe_element.idl | 2 +- + .../renderer/core/html/html_image_element.idl | 2 +- + .../renderer/core/html/html_link_element.cc | 2 +- + .../renderer/core/html/html_link_element.idl | 2 +- + .../renderer/core/html/html_map_element.idl | 2 +- + .../core/html/html_object_element.idl | 2 +- + .../renderer/core/html/html_pre_element.idl | 2 +- + .../renderer/core/html/html_style_element.idl | 2 +- + .../core/html/html_table_caption_element.idl | 2 +- + .../core/html/html_table_cell_element.idl | 2 +- + .../core/html/html_table_col_element.idl | 2 +- + .../renderer/core/html/html_table_element.idl | 2 +- + .../core/html/html_table_row_element.idl | 2 +- + .../core/html/html_table_section_element.idl | 2 +- + .../core/html/media/autoplay_policy.cc | 4 +- + .../core/html/media/html_media_element.cc | 4 +- + .../core/input/pointer_event_manager.cc | 2 +- + .../intersection_observer_controller.h | 2 +- + .../activate_invisible_event.idl | 2 +- + .../core/layout/adjust_for_absolute_zoom.h | 2 +- + .../core/layout/collapsed_border_value.h | 2 +- + .../renderer/core/layout/floating_objects.cc | 2 +- + .../renderer/core/layout/floating_objects.h | 2 +- + .../core/layout/geometry/logical_offset.h | 2 +- + .../core/layout/geometry/logical_rect.h | 2 +- + .../core/layout/geometry/logical_size.h | 2 +- + .../core/layout/geometry/physical_offset.h | 2 +- + .../core/layout/geometry/physical_rect.h | 2 +- + .../core/layout/geometry/physical_size.h | 2 +- + .../renderer/core/layout/layout_block.cc | 2 +- + .../blink/renderer/core/layout/layout_block.h | 2 +- + .../renderer/core/layout/layout_block_flow.cc | 2 +- + .../renderer/core/layout/layout_block_flow.h | 2 +- + .../blink/renderer/core/layout/layout_box.cc | 4 +- + .../core/layout/layout_box_model_object.cc | 2 +- + .../renderer/core/layout/layout_image.cc | 2 +- + .../blink/renderer/core/layout/layout_image.h | 2 +- + .../core/layout/layout_image_resource.cc | 2 +- + .../core/layout/layout_image_resource.h | 2 +- + .../layout_image_resource_style_image.cc | 2 +- + .../layout_image_resource_style_image.h | 2 +- + .../layout/layout_multi_column_flow_thread.h | 2 +- + .../renderer/core/layout/layout_object.h | 2 +- + .../renderer/core/layout/layout_table.cc | 2 +- + .../blink/renderer/core/layout/layout_text.cc | 2 +- + .../core/layout/layout_text_combine.cc | 2 +- + .../core/layout/layout_theme_default.h | 2 +- + .../blink/renderer/core/layout/layout_view.cc | 2 +- + .../blink/renderer/core/layout/layout_view.h | 2 +- + .../ng/inline/ng_inline_items_builder.h | 2 +- + .../core/layout/ng/inline/ng_offset_mapping.h | 4 +- + .../ng/inline/ng_offset_mapping_builder.h | 2 +- + .../core/layout/svg/layout_svg_path.cc | 2 +- + .../core/layout/svg/layout_svg_shape.cc | 2 +- + .../core/layout/text_run_constructor.h | 2 +- + .../renderer/core/loader/document_loader.cc | 2 +- + .../renderer/core/loader/frame_loader.cc | 6 +- + .../blink/renderer/core/loader/image_loader.h | 4 +- + .../core/loader/interactive_detector.h | 2 +- + .../core/loader/mixed_content_checker.cc | 4 +- + .../loader/previews_resource_loading_hints.cc | 2 +- + .../resource/css_style_sheet_resource.cc | 2 +- + .../resource/css_style_sheet_resource.h | 2 +- + .../core/loader/resource/document_resource.cc | 4 +- + .../core/loader/resource/document_resource.h | 4 +- + .../core/loader/resource/image_resource.cc | 4 +- + .../core/loader/resource/image_resource.h | 6 +- + .../loader/resource/image_resource_content.h | 4 +- + .../loader/resource/image_resource_observer.h | 2 +- + .../multipart_image_resource_parser.h | 4 +- + .../core/loader/resource/script_resource.cc | 2 +- + .../core/loader/resource/script_resource.h | 4 +- + .../resource/xsl_style_sheet_resource.cc | 2 +- + .../resource/xsl_style_sheet_resource.h | 2 +- + .../core/loader/subresource_filter.cc | 2 +- + .../renderer/core/loader/threadable_loader.cc | 2 +- + .../renderer/core/messaging/message_port.cc | 2 +- + .../core/page/scrolling/scroll_state.idl | 2 +- + .../core/page/scrolling/scroll_state_init.idl | 2 +- + .../renderer/core/paint/box_border_painter.cc | 2 +- + .../compositing/composited_layer_mapping.cc | 2 +- + .../paint/first_meaningful_paint_detector.cc | 2 +- + .../paint/first_meaningful_paint_detector.h | 2 +- + .../core/paint/image_paint_timing_detector.h | 2 +- + .../blink/renderer/core/paint/paint_layer.cc | 4 +- + .../blink/renderer/core/paint/paint_layer.h | 10 +- + .../core/paint/paint_layer_clipper.cc | 2 +- + .../renderer/core/paint/paint_layer_clipper.h | 2 +- + .../core/paint/paint_layer_painter.cc | 2 +- + .../core/paint/paint_layer_painting_info.h | 2 +- + .../core/paint/paint_layer_scrollable_area.cc | 6 +- + .../core/paint/paint_layer_scrollable_area.h | 2 +- + .../core/paint/paint_layer_stacking_node.cc | 2 +- + .../core/paint/paint_layer_stacking_node.h | 4 +- + .../core/paint/paint_timing_detector.h | 2 +- + .../core/paint/text_paint_timing_detector.h | 2 +- + .../core/paint/theme_painter_default.h | 2 +- + .../renderer/core/paint/theme_painter_mac.mm | 2 +- + .../script/document_write_intervention.cc | 6 +- + .../core/script/document_write_intervention.h | 2 +- + .../blink/renderer/core/script/layered_api.h | 2 +- + .../renderer/core/scroll/scroll_alignment.cc | 2 +- + .../renderer/core/scroll/scroll_alignment.h | 2 +- + .../blink/renderer/core/streams/PRESUBMIT.py | 4 +- + .../core/streams/transferable_streams.cc | 4 +- + .../blink/renderer/core/style/border_style.h | 2 +- + .../blink/renderer/core/style/border_value.h | 2 +- + .../renderer/core/style/computed_style.h | 4 +- + .../core/style/computed_style_constants.h | 2 +- + .../blink/renderer/core/style/content_data.h | 2 +- + .../renderer/core/style/counter_content.h | 2 +- + .../renderer/core/style/counter_directives.h | 2 +- + .../blink/renderer/core/style/cursor_data.h | 2 +- + .../blink/renderer/core/style/fill_layer.h | 2 +- + .../blink/renderer/core/style/shadow_data.h | 2 +- + .../renderer/core/style/style_reflection.h | 2 +- + .../svg/graphics/filters/svg_filter_builder.h | 2 +- + .../blink/renderer/core/svg/svg_angle.idl | 2 +- + .../renderer/core/svg/svg_animated_number.idl | 2 +- + .../renderer/core/svg/svg_circle_element.idl | 2 +- + .../core/svg/svg_clip_path_element.idl | 2 +- + .../blink/renderer/core/svg/svg_element.idl | 2 +- + .../renderer/core/svg/svg_filter_element.cc | 2 +- + .../renderer/core/svg/svg_filter_element.h | 2 +- + .../renderer/core/svg/svg_filter_element.idl | 2 +- + ...g_filter_primitive_standard_attributes.idl | 2 +- + .../renderer/core/svg/svg_fit_to_view_box.idl | 2 +- + .../blink/renderer/core/svg/svg_length.idl | 2 +- + .../renderer/core/svg/svg_length_list.idl | 2 +- + .../blink/renderer/core/svg/svg_matrix.idl | 2 +- + .../blink/renderer/core/svg/svg_number.idl | 2 +- + .../renderer/core/svg/svg_number_list.idl | 2 +- + .../renderer/core/svg/svg_path_element.idl | 2 +- + .../blink/renderer/core/svg/svg_point.idl | 2 +- + .../blink/renderer/core/svg/svg_rect.idl | 2 +- + .../renderer/core/svg/svg_rect_element.idl | 2 +- + .../renderer/core/svg/svg_style_element.idl | 2 +- + .../renderer/core/svg/svg_svg_element.idl | 2 +- + .../core/svg/svg_text_path_element.cc | 2 +- + .../renderer/core/svg/svg_transform_list.idl | 2 +- + .../renderer/core/svg/svg_uri_reference.idl | 2 +- + .../renderer/core/svg/svg_zoom_and_pan.idl | 2 +- + .../renderer/core/timing/memory_info.idl | 2 +- + .../renderer/core/timing/performance.idl | 2 +- + .../core/timing/performance_resource_timing.h | 4 +- + .../core/timing/window_performance.cc | 2 +- + .../core/workers/worklet_global_scope.h | 2 +- + .../renderer/core/xml/xpath_expression.idl | 2 +- + .../renderer/core/xml/xpath_functions.cc | 2 +- + .../renderer/core/xml/xpath_ns_resolver.idl | 2 +- + .../renderer/core/xml/xslt_processor.idl | 2 +- + .../blink/renderer/devtools/PRESUBMIT.py | 2 +- + .../front_end/audits/AuditsStartView.js | 2 +- + .../front_end/audits/lighthouse/report.js | 4 +- + .../lighthouse/lighthouse-dt-bundle.js | 44 +- + .../front_end/bindings/ResourceUtils.js | 2 +- + .../devtools/front_end/cm/codemirror.js | 2 +- + .../devtools/front_end/cm_modes/stylus.js | 2 +- + .../front_end/color_picker/ContrastDetails.js | 2 +- + .../devtools/front_end/common/UIString.js | 2 +- + .../devtools/front_end/devices/DevicesView.js | 6 +- + .../devtools/front_end/devtools_app.html | 2 +- + .../front_end/devtools_compatibility.js | 2 +- + .../front_end/formatter_worker/acorn/acorn.js | 4 +- + .../renderer/devtools/front_end/help/Help.js | 2 +- + .../front_end/help/ReleaseNoteText.js | 256 +- + .../devtools/front_end/inspector.html | 2 +- + .../renderer/devtools/front_end/js_app.html | 2 +- + .../renderer/devtools/front_end/main/Main.js | 2 +- + .../renderer/devtools/front_end/ndb_app.html | 2 +- + .../front_end/network/NetworkConfigView.js | 4 +- + .../front_end/network/NetworkLogView.js | 2 +- + .../renderer/devtools/front_end/node_app.html | 2 +- + .../front_end/product_registry/BadgePool.js | 2 +- + .../front_end/resources/AppManifestView.js | 2 +- + .../resources/ApplicationPanelSidebar.js | 12 +- + .../resources/BackgroundServiceView.js | 2 +- + .../front_end/resources/ClearStorageView.js | 2 +- + .../devtools/front_end/sdk/CSSMetadata.js | 2 +- + .../devtools/front_end/sdk/NetworkLog.js | 2 +- + .../devtools/front_end/sdk/NetworkManager.js | 2 +- + .../front_end/settings/SettingsScreen.js | 2 +- + .../front_end/sources/SourcesNavigator.js | 8 +- + .../devtools/front_end/sources/SourcesView.js | 2 +- + .../front_end/timeline/TimelinePanel.js | 2 +- + .../front_end/timeline/TimelineUIUtils.js | 4 +- + .../devtools/front_end/ui/SearchableView.js | 2 +- + .../renderer/devtools/front_end/ui/UIUtils.js | 4 +- + .../devtools/front_end/worker_app.html | 2 +- + .../blink/renderer/devtools/package.json | 6 +- + .../blink/renderer/devtools/protocol.json | 6 +- + .../chrome_debug_launcher/launch_chrome.js | 6 +- + .../chrome_debug_launcher/package.json | 4 +- + .../scripts/devtools_run/package.json | 4 +- + .../devtools/scripts/hosted_mode/server.js | 6 +- + .../scripts/jsdoc_validator/PRESUBMIT.py | 2 +- + .../localization_utils/localization_utils.js | 2 +- + .../modules/accessibility/ax_layout_object.cc | 2 +- + .../background_fetch_manager.cc | 2 +- + .../modules/bluetooth/bluetooth_error.cc | 16 +- + .../credentials_container.cc | 4 +- + .../modules/crypto/crypto_histograms.h | 2 +- + .../encryptedmedia/encrypted_media_utils.h | 2 +- + .../modules/gamepad/gamepad_axis_event.idl | 2 +- + .../gamepad/gamepad_axis_event_init.idl | 2 +- + .../modules/gamepad/gamepad_button_event.idl | 2 +- + .../gamepad/gamepad_button_event_init.idl | 2 +- + .../gamepad/gamepad_effect_parameters.idl | 2 +- + .../modules/geolocation/geolocation.cc | 2 +- + .../modules/geolocation/geolocation.h | 2 +- + .../modules/indexeddb/idb_value_wrapping.cc | 2 +- + .../media_capabilities/media_capabilities.cc | 2 +- + .../media_stream_video_renderer_sink.h | 2 +- + .../payments/android_pay_method_data.idl | 2 +- + .../payments/android_pay_tokenization.idl | 2 +- + .../modules/payments/payment_request.cc | 4 +- + .../modules/payments/skip_to_gpay_utils.cc | 8 +- + .../modules/payments/skip_to_gpay_utils.h | 4 +- + .../adapters/ice_transport_adapter_impl.cc | 2 +- + .../peerconnection/rtc_peer_connection.idl | 2 +- + .../presentation_connection_available_event.h | 2 +- + .../renderer/modules/scheduler/scheduler.idl | 2 +- + .../scheduler/scheduler_post_task_options.idl | 2 +- + .../blink/renderer/modules/scheduler/task.idl | 2 +- + .../renderer/modules/scheduler/task_queue.idl | 2 +- + .../task_queue_post_task_options.idl | 2 +- + .../modules/scheduler/window_scheduler.idl | 2 +- + .../service_worker_global_scope.cc | 2 +- + .../modules/vibration/navigator_vibration.cc | 4 +- + .../modules/vibration/navigator_vibration.idl | 2 +- + .../modules/webaudio/audio_context.cc | 4 +- + .../modules/webgpu/gpu_canvas_context.cc | 2 +- + .../modules/webgpu/gpu_render_pipeline.cc | 2 +- + .../renderer/modules/webgpu/gpu_swap_chain.cc | 2 +- + .../modules/webmidi/navigator_web_midi.cc | 2 +- + .../modules/websockets/websocket_stream.h | 2 +- + third_party/blink/renderer/modules/xr/xr.cc | 2 +- + .../blink/renderer/platform/PRESUBMIT.py | 2 +- + .../platform/animation/timing_function.h | 2 +- + .../fonts/bitmap_glyphs_block_list.cc | 2 +- + .../fonts/font_custom_platform_data.cc | 2 +- + .../platform/fonts/font_description.cc | 2 +- + .../platform/fonts/mac/font_cache_mac.mm | 4 +- + .../opentype/open_type_caps_support_mpl.cc | 2 +- + .../platform/fonts/opentype/open_type_types.h | 2 +- + .../fonts/opentype/open_type_vertical_data.cc | 2 +- + .../fonts/opentype/open_type_vertical_data.h | 2 +- + .../platform/fonts/script_run_iterator.cc | 2 +- + .../platform/fonts/shaping/shape_result.cc | 2 +- + .../fonts/shaping/shape_result_view.cc | 2 +- + .../platform/fonts/simple_font_data.cc | 2 +- + .../platform/fonts/simple_font_data.h | 2 +- + .../platform/fonts/skia/skia_text_metrics.cc | 4 +- + .../renderer/platform/fonts/vdmx_parser.cc | 2 +- + .../platform/fonts/web_font_decoder.cc | 2 +- + .../fonts/web_font_typeface_factory.h | 2 +- + .../platform/fonts/win/font_cache_skia_win.cc | 4 +- + .../platform/fonts/win/font_fallback_win.cc | 2 +- + .../renderer/platform/geometry/float_quad.cc | 2 +- + .../platform/graphics/bitmap_image.cc | 2 +- + .../renderer/platform/graphics/bitmap_image.h | 2 +- + .../graphics/filters/distant_light_source.h | 2 +- + .../platform/graphics/filters/fe_tile.cc | 2 +- + .../graphics/filters/filter_effect.cc | 2 +- + .../platform/graphics/filters/filter_effect.h | 2 +- + .../platform/graphics/filters/light_source.h | 2 +- + .../graphics/filters/point_light_source.h | 2 +- + .../graphics/filters/source_graphic.h | 2 +- + .../graphics/filters/spot_light_source.cc | 2 +- + .../graphics/filters/spot_light_source.h | 2 +- + .../graphics/gpu/webgl_image_conversion.cc | 2 +- + .../gpu/webgpu_swap_buffer_provider.cc | 4 +- + .../blink/renderer/platform/graphics/image.cc | 2 +- + .../blink/renderer/platform/graphics/image.h | 2 +- + .../graphics/paint/geometry_mapper.cc | 2 +- + .../paint/geometry_mapper_transform_cache.h | 2 +- + .../platform/graphics/placeholder_image.cc | 4 +- + .../platform/heap/heap_linked_stack.h | 4 +- + .../image-decoders/jpeg/jpeg_image_decoder.cc | 4 +- + .../image-decoders/png/png_image_decoder.cc | 4 +- + .../image-decoders/png/png_image_reader.cc | 4 +- + .../image-decoders/webp/webp_image_decoder.cc | 2 +- + .../platform/instrumentation/use_counter.h | 2 +- + .../platform/loader/fetch/raw_resource.h | 2 +- + .../platform/loader/fetch/resource.cc | 2 +- + .../renderer/platform/loader/fetch/resource.h | 2 +- + .../platform/loader/fetch/resource_error.cc | 2 +- + .../loader/fetch/resource_load_scheduler.cc | 2 +- + .../platform/loader/fetch/resource_loader.cc | 2 +- + .../platform/loader/fetch/resource_request.h | 2 +- + .../platform/loader/fetch/resource_response.h | 2 +- + .../platform/network/form_data_encoder.cc | 2 +- + .../network/network_state_notifier.cc | 4 +- + .../parsed_content_header_field_parameters.h | 2 +- + .../blink/renderer/platform/png_fuzzer.cc | 2 +- + .../platform/runtime_enabled_features.json5 | 2 +- + .../main_thread/memory_purge_manager.h | 2 +- + .../main_thread/page_scheduler_impl.cc | 2 +- + .../scheduler/public/rail_mode_observer.h | 2 +- + .../text/hyphenation/hyphenation_minikin.cc | 2 +- + .../blink/renderer/platform/text/icu_error.cc | 2 +- + .../renderer/platform/text/locale_win.cc | 4 +- + .../renderer/platform/text/unicode_range.cc | 2 +- + .../renderer/platform/text/unicode_range.h | 2 +- + .../transforms/identity_transform_operation.h | 2 +- + .../transforms/matrix_transform_operation.h | 2 +- + .../transforms/rotate_transform_operation.h | 2 +- + .../transforms/scale_transform_operation.h | 2 +- + .../transforms/skew_transform_operation.h | 2 +- + .../platform/transforms/transform_operation.h | 2 +- + .../transforms/transform_operations.h | 2 +- + .../translate_transform_operation.h | 2 +- + .../blink/renderer/platform/weborigin/kurl.cc | 2 +- + .../platform/weborigin/security_origin.cc | 2 +- + .../platform/weborigin/security_origin.h | 4 +- + .../blink/renderer/platform/wtf/assertions.h | 2 +- + .../blink/renderer/platform/wtf/date_math.cc | 2 +- + .../blink/renderer/platform/wtf/date_math.h | 2 +- + .../blink/renderer/platform/wtf/deque.h | 2 +- + .../platform/wtf/dynamic_annotations.h | 2 +- + .../blink/renderer/platform/wtf/hash_table.h | 2 +- + .../renderer/platform/wtf/linked_hash_set.h | 2 +- + .../renderer/platform/wtf/list_hash_set.h | 2 +- + .../blink/renderer/platform/wtf/stack_util.cc | 2 +- + .../renderer/platform/wtf/text/string_impl.h | 2 +- + .../renderer/platform/wtf/thread_specific.h | 2 +- + .../common/checkout/baseline_optimizer.py | 4 +- + .../tools/blinkpy/common/net/buildbot.py | 6 +- + .../blink/tools/blinkpy/common/pretty_diff.py | 2 +- + .../tools/blinkpy/common/system/filesystem.py | 4 +- + .../tools/blinkpy/common/system/profiler.py | 2 +- + .../blink/tools/blinkpy/style/checker.py | 2 +- + .../blink/tools/blinkpy/style/filereader.py | 2 +- + .../blink/tools/blinkpy/style/filter.py | 2 +- + .../blink/tools/blinkpy/style/patchreader.py | 2 +- + .../blink/tools/blinkpy/third_party/pep8.py | 2 +- + .../wpt/tools/webdriver/webdriver/client.py | 2 +- + .../third_party/wpt/wpt/tools/wpt/browser.py | 26 +- + .../third_party/wpt/wpt/tools/wpt/run.py | 4 +- + .../tools/blinkpy/w3c/chromium_commit.py | 2 +- + .../tools/blinkpy/w3c/chromium_commit_mock.py | 2 +- + third_party/blink/tools/blinkpy/w3c/common.py | 4 +- + third_party/blink/tools/blinkpy/w3c/gerrit.py | 8 +- + .../tools/blinkpy/w3c/import_notifier.py | 2 +- + .../blink/tools/blinkpy/w3c/monorail.py | 4 +- + .../tools/blinkpy/w3c/pr_cleanup_tool.py | 2 +- + third_party/blink/tools/check_blink_style.py | 2 +- + third_party/blink/tools/move_blink_source.py | 2 +- + third_party/boringssl/roll_boringssl.py | 2 +- + .../src/example-app-build/AndroidManifest.xml | 2 +- + .../cacheinvalidation/channel_common.proto | 2 +- + .../channel/AndroidChannelConstants.java | 4 +- + .../channel/GcmUpstreamSenderService.java | 2 +- + .../examples/android2/AndroidManifest.xml | 2 +- + .../examples/android2/MainActivity.java | 2 +- + third_party/chaijs/chai.js | 12 +- + .../injected/mathjax_external_util.js | 2 +- + .../closure/bin/build/depstree.py | 2 +- + .../closure/bin/build/source.py | 2 +- + .../closure/bin/build/treescan.py | 2 +- + .../closure-library/closure/goog/base.js | 4 +- + .../externs/accessibility_private.js | 2 +- + .../externs/activity_log_private.js | 2 +- + .../externs/arc_apps_private.js | 2 +- + third_party/closure_compiler/externs/audio.js | 42 +- + .../externs/autofill_private.js | 2 +- + .../closure_compiler/externs/automation.js | 398 +- + .../closure_compiler/externs/bluetooth.js | 34 +- + .../externs/bluetooth_private.js | 2 +- + .../externs/bookmark_manager_private.js | 2 +- + .../closure_compiler/externs/chrome.js | 44 +- + .../externs/chrome_extensions.js | 1126 +- + .../closure_compiler/externs/clipboard.js | 12 +- + .../externs/command_line_private.js | 4 +- + .../externs/developer_private.js | 2 +- + .../externs/file_system_provider.js | 116 +- + .../externs/input_method_private.js | 2 +- + .../externs/language_settings_private.js | 2 +- + .../closure_compiler/externs/management.js | 46 +- + .../externs/metrics_private.js | 2 +- + .../externs/mime_handler_private.js | 2 +- + .../externs/networking_private.js | 2 +- + .../externs/passwords_private.js | 2 +- + .../externs/quick_unlock_private.js | 2 +- + .../externs/safe_browsing_private.js | 2 +- + .../externs/settings_private.js | 2 +- + .../externs/system_display.js | 58 +- + .../closure_compiler/externs/users_private.js | 2 +- + .../closure_compiler/externs/webview_tag.js | 74 +- + .../interfaces/bluetooth_interface.js | 18 +- + .../interfaces/bluetooth_private_interface.js | 16 +- + .../input_method_private_interface.js | 36 +- + .../language_settings_private_interface.js | 36 +- + .../networking_private_interface.js | 50 +- + .../quick_unlock_private_interface.js | 16 +- + .../interfaces/settings_private_interface.js | 12 +- + .../interfaces/system_display_interface.js | 28 +- + .../crashpad/build/install_linux_sysroot.py | 6 +- + .../crashpad/build/run_fuchsia_qemu.py | 2 +- + .../client/crashpad_client_fuchsia.cc | 2 +- + .../crashpad/client/crashpad_client_win.cc | 6 +- + .../crashpad/client/prune_crash_reports.cc | 2 +- + .../crashpad/compat/android/dlfcn_internal.h | 2 +- + .../crashpad/compat/android/sys/mman.h | 2 +- + .../crashpad/compat/linux/sys/ptrace.h | 2 +- + .../crashpad/crashpad/compat/win/winnt.h | 2 +- + .../crashpad/crashpad/doc/appengine/main.go | 4 +- + .../crashpad/doc/support/crashpad.doxy.h | 2 +- + .../crashpad/crashpad/handler/handler_main.cc | 6 +- + .../handler/linux/exception_handler_server.cc | 2 +- + .../handler/mac/file_limit_annotation.h | 2 +- + .../handler/win/crash_other_program.cc | 2 +- + .../crashpad/minidump/minidump_extensions.h | 2 +- + .../minidump/minidump_memory_writer.cc | 2 +- + .../minidump/minidump_memory_writer.h | 2 +- + third_party/crashpad/crashpad/package.h | 4 +- + .../crashpad/crashpad/snapshot/BUILD.gn | 4 +- + .../crashpad/snapshot/elf/elf_image_reader.cc | 2 +- + .../snapshot/elf/module_snapshot_elf.cc | 2 +- + .../snapshot/elf/module_snapshot_elf.h | 2 +- + .../fuchsia/process_reader_fuchsia.cc | 4 +- + .../fuchsia/process_snapshot_fuchsia.cc | 6 +- + .../fuchsia/system_snapshot_fuchsia.cc | 6 +- + .../crashpad/snapshot/handle_snapshot.h | 2 +- + .../snapshot/linux/system_snapshot_linux.cc | 6 +- + .../mac/mach_o_image_segment_reader.cc | 2 +- + .../mac/mach_o_image_symbol_table_reader.cc | 2 +- + .../minidump/module_snapshot_minidump.cc | 4 +- + .../minidump/process_snapshot_minidump.cc | 12 +- + .../minidump/system_snapshot_minidump.cc | 18 +- + .../snapshot/win/exception_snapshot_win.cc | 2 +- + .../snapshot/win/module_snapshot_win.cc | 2 +- + .../snapshot/win/module_snapshot_win.h | 4 +- + .../crashpad/snapshot/win/pe_image_reader.cc | 4 +- + .../snapshot/win/pe_image_resource_reader.cc | 2 +- + .../snapshot/win/process_reader_win.cc | 4 +- + .../snapshot/win/process_snapshot_win.cc | 8 +- + .../crashpad/third_party/zlib/BUILD.gn | 2 +- + .../crashpad/crashpad/tools/generate_dump.cc | 2 +- + .../crashpad/crashpad/util/file/file_io.h | 4 +- + .../crashpad/util/linux/memory_map.cc | 2 +- + .../util/misc/capture_context_win.asm | 4 +- + .../util/misc/capture_context_win_arm64.asm | 2 +- + .../crashpad/util/misc/paths_fuchsia.cc | 2 +- + .../util/net/http_transport_socket.cc | 2 +- + .../crashpad/util/posix/close_multiple.cc | 2 +- + .../crashpad/util/posix/process_info.h | 2 +- + .../crashpad/util/win/command_line.cc | 2 +- + .../crashpad/crashpad/util/win/handle.h | 4 +- + .../crashpad/crashpad/util/win/nt_internals.h | 2 +- + .../crashpad/crashpad/util/win/process_info.h | 4 +- + .../crashpad/util/win/process_structs.h | 6 +- + .../util/win/registration_protocol_win.cc | 2 +- + .../util/win/safe_terminate_process.h | 2 +- + .../crashpad/crashpad/util/win/xp_compat.h | 4 +- + third_party/crashpad/update.py | 2 +- + third_party/dav1d/BUILD.gn | 2 +- + third_party/dav1d/generate_source.py | 2 +- + .../protoc_plugins/util/plugin_protos.py | 4 +- + third_party/flot/jquery.flot.navigate.min.js | 2 +- + .../include/freetype-custom-config/ftoption.h | 6 +- + .../fuchsia-sdk/gen_fidl_response_file.py | 2 +- + .../android/gifplayer/BaseGifDrawable.java | 2 +- + third_party/google-truth/cipd.yaml | 2 +- + .../cloudstorage/cloudstorage_api.py | 2 +- + .../cloudstorage/errors.py | 2 +- + .../cloudstorage/storage_api.py | 10 +- + .../src/chrome/os/inputview/adapter.js | 4 +- + .../src/chrome/os/inputview/canvas.js | 2 +- + .../src/chrome/os/inputview/dom.js | 2 +- + .../src/chrome/os/inputview/hwt_css.js | 2 +- + .../src/chrome/os/inputview/hwt_eventtype.js | 2 +- + .../src/chrome/os/inputview/hwt_util.js | 2 +- + .../src/chrome/os/inputview/inputtool.js | 2 +- + .../src/chrome/os/inputview/strokehandler.js | 2 +- + .../closure/bin/build/closurebuilder.py | 2 +- + .../closure/bin/build/depstree.py | 2 +- + .../closure/bin/build/depswriter.py | 2 +- + .../closure/bin/build/jscompiler.py | 2 +- + .../closure/bin/build/source.py | 2 +- + .../closure/bin/build/treescan.py | 2 +- + .../closure_library/closure/bin/scopify.py | 2 +- + .../closure/goog/array/array.js | 2 +- + .../closure/goog/asserts/asserts.js | 2 +- + .../closure/goog/async/animationdelay.js | 2 +- + .../closure/goog/async/delay.js | 2 +- + .../closure/goog/async/nexttick.js | 2 +- + .../closure_library/closure/goog/base.js | 4 +- + .../closure/goog/debug/entrypointregistry.js | 2 +- + .../closure/goog/debug/logbuffer.js | 2 +- + .../closure/goog/debug/logger.js | 4 +- + .../closure/goog/disposable/disposable.js | 2 +- + .../closure/goog/disposable/idisposable.js | 2 +- + .../closure/goog/dom/browserfeature.js | 2 +- + .../closure_library/closure/goog/dom/dom.js | 8 +- + .../closure/goog/events/browserevent.js | 6 +- + .../closure/goog/events/event.js | 2 +- + .../closure/goog/events/events.js | 2 +- + .../closure/goog/events/eventtarget.js | 2 +- + .../closure/goog/events/eventtype.js | 12 +- + .../closure/goog/events/eventwrapper.js | 2 +- + .../closure/goog/events/keycodes.js | 4 +- + .../closure/goog/events/keyhandler.js | 4 +- + .../closure/goog/events/listenable.js | 2 +- + .../closure/goog/functions/functions.js | 4 +- + .../closure/goog/fx/anim/anim.js | 4 +- + .../closure/goog/fx/animation.js | 2 +- + .../closure_library/closure/goog/fx/easing.js | 2 +- + .../closure/goog/fx/transition.js | 2 +- + .../closure_library/closure/goog/iter/iter.js | 4 +- + .../closure/goog/labs/useragent/browser.js | 8 +- + .../closure/goog/labs/useragent/engine.js | 2 +- + .../closure/goog/labs/useragent/util.js | 2 +- + .../closure_library/closure/goog/log/log.js | 2 +- + .../closure_library/closure/goog/math/size.js | 2 +- + .../closure/goog/object/object.js | 2 +- + .../goog/positioning/abstractposition.js | 2 +- + .../goog/positioning/anchoredposition.js | 2 +- + .../positioning/anchoredviewportposition.js | 2 +- + .../closure/goog/positioning/positioning.js | 2 +- + .../closure/goog/reflect/reflect.js | 4 +- + .../closure/goog/string/string.js | 10 +- + .../closure/goog/structs/collection.js | 2 +- + .../closure/goog/structs/map.js | 2 +- + .../closure/goog/structs/set.js | 2 +- + .../closure/goog/structs/structs.js | 2 +- + .../closure/goog/style/style.js | 6 +- + .../closure/goog/timer/timer.js | 2 +- + .../closure/goog/ui/component.js | 4 +- + .../closure/goog/ui/container.js | 2 +- + .../closure/goog/ui/containerrenderer.js | 2 +- + .../closure/goog/ui/control.js | 6 +- + .../closure/goog/ui/controlcontent.js | 2 +- + .../closure/goog/ui/controlrenderer.js | 2 +- + .../closure/goog/ui/decorate.js | 2 +- + .../closure/goog/ui/menuseparatorrenderer.js | 2 +- + .../closure/goog/ui/registry.js | 2 +- + .../closure/goog/ui/separator.js | 2 +- + .../closure_library/closure/goog/uri/utils.js | 8 +- + .../closure/goog/useragent/useragent.js | 2 +- + .../closure/goog/mochikit/async/deferred.js | 6 +- + .../hunspell/src/hunspell/affentry.cxx | 2 +- + .../hunspell/src/hunspell/affentry.hxx | 2 +- + .../hunspell/src/hunspell/affixmgr.cxx | 2 +- + .../hunspell/src/hunspell/affixmgr.hxx | 2 +- + third_party/hunspell/src/hunspell/atypes.hxx | 2 +- + .../hunspell/src/hunspell/baseaffix.hxx | 2 +- + third_party/hunspell/src/hunspell/csutil.cxx | 2 +- + third_party/hunspell/src/hunspell/csutil.hxx | 2 +- + third_party/hunspell/src/hunspell/filemgr.cxx | 2 +- + third_party/hunspell/src/hunspell/filemgr.hxx | 2 +- + third_party/hunspell/src/hunspell/hashmgr.cxx | 2 +- + third_party/hunspell/src/hunspell/hashmgr.hxx | 2 +- + third_party/hunspell/src/hunspell/htypes.hxx | 2 +- + .../hunspell/src/hunspell/hunspell.cxx | 2 +- + third_party/hunspell/src/hunspell/hunspell.h | 2 +- + .../hunspell/src/hunspell/hunspell.hxx | 2 +- + third_party/hunspell/src/hunspell/hunzip.cxx | 2 +- + third_party/hunspell/src/hunspell/hunzip.hxx | 2 +- + third_party/hunspell/src/hunspell/langnum.hxx | 2 +- + third_party/hunspell/src/hunspell/replist.cxx | 2 +- + third_party/hunspell/src/hunspell/replist.hxx | 2 +- + .../hunspell/src/hunspell/suggestmgr.cxx | 2 +- + .../hunspell/src/hunspell/suggestmgr.hxx | 2 +- + third_party/hunspell/src/hunspell/w_char.hxx | 2 +- + .../hunspell/src/parsers/firstparser.cxx | 2 +- + .../hunspell/src/parsers/firstparser.hxx | 2 +- + .../hunspell/src/parsers/htmlparser.cxx | 2 +- + .../hunspell/src/parsers/htmlparser.hxx | 2 +- + .../hunspell/src/parsers/latexparser.cxx | 2 +- + .../hunspell/src/parsers/latexparser.hxx | 2 +- + .../hunspell/src/parsers/manparser.cxx | 2 +- + .../hunspell/src/parsers/manparser.hxx | 2 +- + .../hunspell/src/parsers/odfparser.cxx | 2 +- + .../hunspell/src/parsers/odfparser.hxx | 2 +- + .../hunspell/src/parsers/textparser.cxx | 2 +- + .../hunspell/src/parsers/textparser.hxx | 2 +- + .../hunspell/src/parsers/xmlparser.cxx | 2 +- + .../hunspell/src/parsers/xmlparser.hxx | 2 +- + third_party/iaccessible2/ia2_api_all.idl | 8 +- + .../inspector_protocol/encoding/encoding.cc | 4 +- + third_party/inspector_protocol/roll.py | 4 +- + .../scripts/unpack_binaries.py | 2 +- + third_party/isimpledom/ISimpleDOMDocument.idl | 4 +- + third_party/isimpledom/ISimpleDOMNode.idl | 4 +- + third_party/isimpledom/ISimpleDOMText.idl | 2 +- + third_party/jstemplate/compile.py | 4 +- + third_party/jstemplate/jsevalcontext.js | 2 +- + third_party/jstemplate/jstemplate.js | 2 +- + .../jstemplate/jstemplate_example.html | 2 +- + third_party/jstemplate/jstemplate_example.js | 2 +- + third_party/jstemplate/jstemplate_jsunit.html | 10 +- + third_party/libaddressinput/BUILD.gn | 2 +- + .../chromium/chrome_address_validator.h | 2 +- + .../chromium/fallback_data_store.cc | 2 +- + .../chromium/tools/require_fields.py | 2 +- + third_party/libaom/BUILD.gn | 2 +- + third_party/libjingle_xmpp/xmpp/constants.cc | 24 +- + third_party/libjingle_xmpp/xmpp/xmppclient.cc | 12 +- + third_party/libjpeg/jconfig.h | 4 +- + third_party/liblouis/wasm/liblouis_wasm.js | 2 +- + .../libpng/contrib/oss-fuzz/README.txt | 2 +- + .../contrib/oss-fuzz/libpng_read_fuzzer.cc | 2 +- + .../libusb/src/libusb/os/threads_windows.c | 2 +- + .../libusb/src/libusb/os/threads_windows.h | 2 +- + third_party/libusb/src/libusb/os/wince_usb.c | 4 +- + third_party/libusb/src/libusb/os/wince_usb.h | 2 +- + .../libusb/src/libusb/os/windows_usb.c | 12 +- + third_party/libusb/src/msvc/inttypes.h | 2 +- + third_party/libusb/src/msvc/stdint.h | 2 +- + third_party/libvpx/BUILD.gn | 2 +- + third_party/libwebp/BUILD.gn | 4 +- + third_party/libwebp/examples/cwebp.c | 2 +- + third_party/libwebp/examples/dwebp.c | 2 +- + third_party/libwebp/examples/stopwatch.h | 2 +- + third_party/libwebp/examples/unicode.h | 2 +- + third_party/libwebp/imageio/image_dec.h | 2 +- + third_party/libwebp/imageio/image_enc.h | 2 +- + third_party/libwebp/src/dec/alpha_dec.c | 2 +- + third_party/libwebp/src/dec/alphai_dec.h | 2 +- + third_party/libwebp/src/dec/buffer_dec.c | 2 +- + third_party/libwebp/src/dec/common_dec.h | 2 +- + third_party/libwebp/src/dec/frame_dec.c | 2 +- + third_party/libwebp/src/dec/idec_dec.c | 2 +- + third_party/libwebp/src/dec/io_dec.c | 2 +- + third_party/libwebp/src/dec/quant_dec.c | 2 +- + third_party/libwebp/src/dec/tree_dec.c | 2 +- + third_party/libwebp/src/dec/vp8_dec.c | 2 +- + third_party/libwebp/src/dec/vp8_dec.h | 2 +- + third_party/libwebp/src/dec/vp8i_dec.h | 2 +- + third_party/libwebp/src/dec/vp8l_dec.c | 4 +- + third_party/libwebp/src/dec/vp8li_dec.h | 4 +- + third_party/libwebp/src/dec/webp_dec.c | 2 +- + third_party/libwebp/src/dec/webpi_dec.h | 2 +- + .../libwebp/src/dsp/alpha_processing.c | 2 +- + .../libwebp/src/dsp/alpha_processing_neon.c | 2 +- + .../libwebp/src/dsp/alpha_processing_sse2.c | 2 +- + .../libwebp/src/dsp/alpha_processing_sse41.c | 2 +- + third_party/libwebp/src/dsp/common_sse2.h | 2 +- + third_party/libwebp/src/dsp/common_sse41.h | 2 +- + third_party/libwebp/src/dsp/cost.c | 2 +- + third_party/libwebp/src/dsp/cost_sse2.c | 2 +- + third_party/libwebp/src/dsp/cpu.c | 2 +- + third_party/libwebp/src/dsp/dec.c | 2 +- + third_party/libwebp/src/dsp/dec_clip_tables.c | 2 +- + third_party/libwebp/src/dsp/dec_neon.c | 4 +- + third_party/libwebp/src/dsp/dec_sse2.c | 4 +- + third_party/libwebp/src/dsp/dec_sse41.c | 2 +- + third_party/libwebp/src/dsp/dsp.h | 2 +- + third_party/libwebp/src/dsp/enc.c | 2 +- + third_party/libwebp/src/dsp/enc_sse2.c | 2 +- + third_party/libwebp/src/dsp/enc_sse41.c | 2 +- + third_party/libwebp/src/dsp/filters.c | 2 +- + third_party/libwebp/src/dsp/filters_neon.c | 2 +- + third_party/libwebp/src/dsp/filters_sse2.c | 2 +- + third_party/libwebp/src/dsp/lossless.c | 6 +- + third_party/libwebp/src/dsp/lossless.h | 4 +- + third_party/libwebp/src/dsp/lossless_common.h | 6 +- + third_party/libwebp/src/dsp/lossless_enc.c | 6 +- + .../libwebp/src/dsp/lossless_enc_neon.c | 2 +- + .../libwebp/src/dsp/lossless_enc_sse2.c | 2 +- + .../libwebp/src/dsp/lossless_enc_sse41.c | 2 +- + third_party/libwebp/src/dsp/lossless_neon.c | 2 +- + third_party/libwebp/src/dsp/lossless_sse2.c | 2 +- + third_party/libwebp/src/dsp/rescaler.c | 2 +- + third_party/libwebp/src/dsp/rescaler_neon.c | 2 +- + third_party/libwebp/src/dsp/rescaler_sse2.c | 2 +- + third_party/libwebp/src/dsp/ssim.c | 2 +- + third_party/libwebp/src/dsp/ssim_sse2.c | 2 +- + third_party/libwebp/src/dsp/upsampling.c | 2 +- + third_party/libwebp/src/dsp/upsampling_neon.c | 2 +- + third_party/libwebp/src/dsp/upsampling_sse2.c | 2 +- + .../libwebp/src/dsp/upsampling_sse41.c | 2 +- + third_party/libwebp/src/dsp/yuv.c | 2 +- + third_party/libwebp/src/dsp/yuv.h | 2 +- + third_party/libwebp/src/dsp/yuv_neon.c | 2 +- + third_party/libwebp/src/dsp/yuv_sse2.c | 2 +- + third_party/libwebp/src/dsp/yuv_sse41.c | 2 +- + third_party/libwebp/src/enc/alpha_enc.c | 4 +- + third_party/libwebp/src/enc/analysis_enc.c | 2 +- + .../src/enc/backward_references_cost_enc.c | 2 +- + .../libwebp/src/enc/backward_references_enc.c | 2 +- + .../libwebp/src/enc/backward_references_enc.h | 2 +- + third_party/libwebp/src/enc/config_enc.c | 2 +- + third_party/libwebp/src/enc/cost_enc.c | 2 +- + third_party/libwebp/src/enc/cost_enc.h | 2 +- + third_party/libwebp/src/enc/filter_enc.c | 2 +- + third_party/libwebp/src/enc/frame_enc.c | 2 +- + third_party/libwebp/src/enc/histogram_enc.c | 2 +- + third_party/libwebp/src/enc/histogram_enc.h | 2 +- + third_party/libwebp/src/enc/iterator_enc.c | 2 +- + .../libwebp/src/enc/near_lossless_enc.c | 4 +- + third_party/libwebp/src/enc/picture_csp_enc.c | 2 +- + third_party/libwebp/src/enc/picture_enc.c | 2 +- + .../libwebp/src/enc/picture_psnr_enc.c | 2 +- + .../libwebp/src/enc/picture_rescale_enc.c | 2 +- + .../libwebp/src/enc/picture_tools_enc.c | 2 +- + third_party/libwebp/src/enc/predictor_enc.c | 8 +- + third_party/libwebp/src/enc/quant_enc.c | 2 +- + third_party/libwebp/src/enc/syntax_enc.c | 2 +- + third_party/libwebp/src/enc/token_enc.c | 2 +- + third_party/libwebp/src/enc/tree_enc.c | 2 +- + third_party/libwebp/src/enc/vp8i_enc.h | 2 +- + third_party/libwebp/src/enc/vp8l_enc.c | 2 +- + third_party/libwebp/src/enc/vp8li_enc.h | 2 +- + third_party/libwebp/src/enc/webp_enc.c | 2 +- + third_party/libwebp/src/mux/animi.h | 2 +- + third_party/libwebp/src/mux/muxedit.c | 4 +- + third_party/libwebp/src/mux/muxi.h | 2 +- + third_party/libwebp/src/mux/muxinternal.c | 4 +- + third_party/libwebp/src/mux/muxread.c | 4 +- + .../libwebp/src/utils/bit_reader_inl_utils.h | 2 +- + .../libwebp/src/utils/bit_reader_utils.c | 2 +- + .../libwebp/src/utils/bit_reader_utils.h | 4 +- + .../libwebp/src/utils/bit_writer_utils.c | 4 +- + .../libwebp/src/utils/bit_writer_utils.h | 2 +- + .../libwebp/src/utils/color_cache_utils.c | 2 +- + .../libwebp/src/utils/color_cache_utils.h | 4 +- + third_party/libwebp/src/utils/filters_utils.c | 2 +- + third_party/libwebp/src/utils/filters_utils.h | 2 +- + .../libwebp/src/utils/huffman_encode_utils.c | 2 +- + .../libwebp/src/utils/huffman_encode_utils.h | 2 +- + third_party/libwebp/src/utils/huffman_utils.c | 2 +- + third_party/libwebp/src/utils/huffman_utils.h | 2 +- + .../src/utils/quant_levels_dec_utils.c | 2 +- + .../src/utils/quant_levels_dec_utils.h | 2 +- + .../libwebp/src/utils/quant_levels_utils.c | 2 +- + .../libwebp/src/utils/quant_levels_utils.h | 2 +- + third_party/libwebp/src/utils/random_utils.c | 2 +- + third_party/libwebp/src/utils/random_utils.h | 2 +- + .../libwebp/src/utils/rescaler_utils.c | 2 +- + .../libwebp/src/utils/rescaler_utils.h | 2 +- + third_party/libwebp/src/utils/thread_utils.c | 2 +- + third_party/libwebp/src/utils/thread_utils.h | 2 +- + third_party/libwebp/src/utils/utils.c | 2 +- + third_party/libwebp/src/utils/utils.h | 4 +- + third_party/libwebp/src/webp/decode.h | 2 +- + third_party/libwebp/src/webp/encode.h | 2 +- + .../libwebp/src/webp/format_constants.h | 2 +- + third_party/libwebp/src/webp/mux.h | 4 +- + third_party/libwebp/src/webp/mux_types.h | 2 +- + third_party/libwebp/src/webp/types.h | 2 +- + third_party/libxml/src/aclocal.m4 | 2 +- + third_party/libxml/src/xmlstring.c | 2 +- + third_party/libxslt/chromium/roll.py | 2 +- + third_party/lottie/lottie_worker.js | 2 +- + third_party/mako/doc/_static/doctools.js | 2 +- + third_party/mako/doc/_static/jquery-3.2.1.js | 18 +- + third_party/metrics_proto/PRESUBMIT.py | 2 +- + .../chrome_user_metrics_extension.proto | 2 +- + third_party/metrics_proto/omnibox_event.proto | 2 +- + .../metrics_proto/translate_event.proto | 2 +- + third_party/metrics_proto/ukm/source.proto | 4 +- + third_party/mocha/mocha.js | 26 +- + third_party/mozilla/NSPasteboard+Utils.h | 2 +- + third_party/mozilla/NSPasteboard+Utils.mm | 2 +- + third_party/mozilla/NSString+Utils.h | 2 +- + third_party/mozilla/NSString+Utils.mm | 2 +- + third_party/mozilla/NSURL+Utils.h | 2 +- + third_party/mozilla/NSURL+Utils.m | 2 +- + third_party/mozilla/NSWorkspace+Utils.h | 4 +- + third_party/mozilla/NSWorkspace+Utils.m | 4 +- + third_party/node/package.json | 2 +- + .../opus/src/doc/draft-ietf-codec-oggopus.xml | 2 +- + .../src/doc/draft-ietf-codec-opus-update.xml | 2 +- + .../opus/src/doc/draft-ietf-codec-opus.xml | 4 +- + .../src/doc/draft-ietf-payload-rtp-opus.xml | 8 +- + third_party/opus/src/doc/opus_in_isobmff.html | 2 +- + third_party/opus/src/doc/release.txt | 6 +- + third_party/ots/src/cff.cc | 4 +- + third_party/ots/src/cmap.cc | 2 +- + third_party/ots/src/cvt.cc | 2 +- + third_party/ots/src/fpgm.cc | 2 +- + third_party/ots/src/gasp.cc | 2 +- + third_party/ots/src/gdef.cc | 2 +- + third_party/ots/src/glyf.cc | 2 +- + third_party/ots/src/gpos.cc | 2 +- + third_party/ots/src/gsub.cc | 2 +- + third_party/ots/src/hdmx.cc | 4 +- + third_party/ots/src/head.cc | 2 +- + third_party/ots/src/hhea.cc | 2 +- + third_party/ots/src/hmtx.cc | 2 +- + third_party/ots/src/kern.cc | 2 +- + third_party/ots/src/layout.cc | 4 +- + third_party/ots/src/layout.h | 2 +- + third_party/ots/src/loca.cc | 2 +- + third_party/ots/src/ltsh.cc | 2 +- + third_party/ots/src/math.cc | 2 +- + third_party/ots/src/maxp.cc | 2 +- + third_party/ots/src/metrics.cc | 4 +- + third_party/ots/src/name.cc | 2 +- + third_party/ots/src/os2.cc | 8 +- + third_party/ots/src/ots.cc | 4 +- + third_party/ots/src/post.cc | 2 +- + third_party/ots/src/prep.cc | 2 +- + third_party/ots/src/vdmx.cc | 2 +- + third_party/ots/src/vhea.cc | 2 +- + third_party/ots/src/vmtx.cc | 2 +- + third_party/ots/src/vorg.cc | 2 +- + third_party/polymer/v1_0/PRESUBMIT.py | 2 +- + .../iron-a11y-keys-behavior-extracted.js | 2 +- + .../iron-flex-layout/iron-flex-layout.html | 2 +- + .../iron-icon/iron-icon.html | 2 +- + .../iron-location/iron-location-extracted.js | 2 +- + .../iron-focusables-helper-extracted.js | 2 +- + .../iron-overlay-manager-extracted.js | 2 +- + .../neon-animation/neon-animated-pages.html | 2 +- + .../paper-progress/paper-progress.html | 2 +- + .../paper-ripple/paper-ripple.html | 2 +- + .../paper-spinner/paper-spinner-lite.html | 2 +- + .../paper-styles/default-theme.html | 2 +- + .../element-styles/paper-material-styles.html | 2 +- + .../paper-styles/typography.html | 2 +- + .../paper-tooltip/paper-tooltip.html | 2 +- + .../iron-a11y-keys-behavior.js | 2 +- + .../iron-flex-layout/iron-flex-layout.js | 2 +- + .../iron-focusables-helper.js | 2 +- + .../iron-overlay-manager.js | 2 +- + .../neon-animation/neon-animated-pages.js | 2 +- + .../paper-progress/paper-progress.js | 2 +- + .../paper-spinner/paper-spinner-lite.js | 2 +- + .../paper-styles/default-theme.js | 2 +- + .../element-styles/paper-item-styles.js | 2 +- + .../element-styles/paper-material-styles.js | 2 +- + .../paper-styles/typography.js | 2 +- + .../paper-tooltip/paper-tooltip.js | 2 +- + .../polymer/polymer_bundled.js | 2 +- + third_party/polymer/v3_0/package.json | 2 +- + third_party/protobuf/CHANGES.txt | 12 +- + third_party/protobuf/CONTRIBUTORS.txt | 68 +- + .../protobuf/benchmarks/benchmarks.proto | 2 +- + .../protobuf/benchmarks/cpp/cpp_benchmark.cc | 2 +- + third_party/protobuf/cmake/CMakeLists.txt | 2 +- + third_party/protobuf/composer.json | 2 +- + third_party/protobuf/configure.ac | 2 +- + .../binary_json_conformance_suite.cc | 48 +- + .../binary_json_conformance_suite.h | 2 +- + .../protobuf/conformance/conformance.proto | 4 +- + .../protobuf/conformance/conformance_cpp.cc | 4 +- + .../conformance/conformance_nodejs.js | 2 +- + .../protobuf/conformance/conformance_objc.m | 2 +- + .../conformance/conformance_python.py | 2 +- + .../protobuf/conformance/conformance_ruby.rb | 2 +- + .../text_format_conformance_suite.cc | 8 +- + .../text_format_conformance_suite.h | 2 +- + .../conformance/update_failure_list.py | 2 +- + .../protobuf/examples/addressbook.proto | 2 +- + third_party/protobuf/java/bom/pom.xml | 8 +- + third_party/protobuf/java/core/pom.xml | 2 +- + .../com/google/protobuf/AbstractMessage.java | 4 +- + .../google/protobuf/AbstractMessageLite.java | 4 +- + .../com/google/protobuf/AbstractParser.java | 4 +- + .../google/protobuf/AbstractProtobufList.java | 2 +- + .../java/com/google/protobuf/Android.java | 2 +- + .../google/protobuf/BlockingRpcChannel.java | 6 +- + .../com/google/protobuf/BlockingService.java | 6 +- + .../com/google/protobuf/BooleanArrayList.java | 4 +- + .../com/google/protobuf/ByteBufferWriter.java | 2 +- + .../java/com/google/protobuf/ByteOutput.java | 2 +- + .../java/com/google/protobuf/ByteString.java | 14 +- + .../com/google/protobuf/CodedInputStream.java | 4 +- + .../google/protobuf/CodedOutputStream.java | 2 +- + .../java/com/google/protobuf/Descriptors.java | 4 +- + .../protobuf/DiscardUnknownFieldsParser.java | 2 +- + .../com/google/protobuf/DoubleArrayList.java | 4 +- + .../com/google/protobuf/DynamicMessage.java | 4 +- + .../com/google/protobuf/ExperimentalApi.java | 2 +- + .../java/com/google/protobuf/Extension.java | 4 +- + .../com/google/protobuf/ExtensionLite.java | 2 +- + .../google/protobuf/ExtensionRegistry.java | 4 +- + .../protobuf/ExtensionRegistryFactory.java | 2 +- + .../protobuf/ExtensionRegistryLite.java | 4 +- + .../java/com/google/protobuf/FieldSet.java | 4 +- + .../com/google/protobuf/FloatArrayList.java | 4 +- + .../com/google/protobuf/GeneratedMessage.java | 4 +- + .../google/protobuf/GeneratedMessageLite.java | 4 +- + .../google/protobuf/GeneratedMessageV3.java | 4 +- + .../com/google/protobuf/IntArrayList.java | 4 +- + .../java/com/google/protobuf/Internal.java | 4 +- + .../InvalidProtocolBufferException.java | 4 +- + .../IterableByteBufferInputStream.java | 2 +- + .../java/com/google/protobuf/LazyField.java | 4 +- + .../com/google/protobuf/LazyFieldLite.java | 4 +- + .../google/protobuf/LazyStringArrayList.java | 4 +- + .../com/google/protobuf/LazyStringList.java | 4 +- + .../com/google/protobuf/LongArrayList.java | 4 +- + .../java/com/google/protobuf/MapEntry.java | 2 +- + .../com/google/protobuf/MapEntryLite.java | 2 +- + .../java/com/google/protobuf/MapField.java | 2 +- + .../com/google/protobuf/MapFieldLite.java | 2 +- + .../java/com/google/protobuf/Message.java | 4 +- + .../java/com/google/protobuf/MessageLite.java | 4 +- + .../google/protobuf/MessageLiteOrBuilder.java | 4 +- + .../google/protobuf/MessageLiteToString.java | 2 +- + .../com/google/protobuf/MessageOrBuilder.java | 4 +- + .../google/protobuf/MessageReflection.java | 4 +- + .../com/google/protobuf/MutabilityOracle.java | 2 +- + .../com/google/protobuf/NioByteString.java | 2 +- + .../main/java/com/google/protobuf/Parser.java | 4 +- + .../PrimitiveNonBoxingCollection.java | 2 +- + .../google/protobuf/ProtobufArrayList.java | 2 +- + .../google/protobuf/ProtocolMessageEnum.java | 2 +- + .../google/protobuf/ProtocolStringList.java | 2 +- + .../google/protobuf/RepeatedFieldBuilder.java | 4 +- + .../protobuf/RepeatedFieldBuilderV3.java | 4 +- + .../com/google/protobuf/RopeByteString.java | 4 +- + .../java/com/google/protobuf/RpcCallback.java | 4 +- + .../java/com/google/protobuf/RpcChannel.java | 4 +- + .../com/google/protobuf/RpcController.java | 4 +- + .../java/com/google/protobuf/RpcUtil.java | 4 +- + .../java/com/google/protobuf/Service.java | 4 +- + .../com/google/protobuf/ServiceException.java | 4 +- + .../google/protobuf/SingleFieldBuilder.java | 4 +- + .../google/protobuf/SingleFieldBuilderV3.java | 4 +- + .../com/google/protobuf/SmallSortedMap.java | 4 +- + .../java/com/google/protobuf/TextFormat.java | 6 +- + .../google/protobuf/TextFormatEscaper.java | 2 +- + .../protobuf/TextFormatParseInfoTree.java | 2 +- + .../protobuf/TextFormatParseLocation.java | 2 +- + .../UninitializedMessageException.java | 4 +- + .../com/google/protobuf/UnknownFieldSet.java | 4 +- + .../google/protobuf/UnknownFieldSetLite.java | 4 +- + .../protobuf/UnmodifiableLazyStringList.java | 4 +- + .../google/protobuf/UnsafeByteOperations.java | 2 +- + .../java/com/google/protobuf/UnsafeUtil.java | 2 +- + .../main/java/com/google/protobuf/Utf8.java | 4 +- + .../java/com/google/protobuf/WireFormat.java | 4 +- + third_party/protobuf/java/lite/pom.xml | 2 +- + third_party/protobuf/java/pom.xml | 6 +- + third_party/protobuf/java/util/pom.xml | 2 +- + .../com/google/protobuf/util/Durations.java | 2 +- + .../google/protobuf/util/FieldMaskTree.java | 2 +- + .../google/protobuf/util/FieldMaskUtil.java | 2 +- + .../com/google/protobuf/util/JsonFormat.java | 2 +- + .../com/google/protobuf/util/TimeUtil.java | 2 +- + .../com/google/protobuf/util/Timestamps.java | 2 +- + third_party/protobuf/js/binary/arith.js | 4 +- + third_party/protobuf/js/binary/constants.js | 4 +- + third_party/protobuf/js/binary/decoder.js | 16 +- + third_party/protobuf/js/binary/encoder.js | 6 +- + third_party/protobuf/js/binary/reader.js | 6 +- + third_party/protobuf/js/binary/utils.js | 4 +- + third_party/protobuf/js/binary/writer.js | 6 +- + third_party/protobuf/js/data.proto | 4 +- + third_party/protobuf/js/debug.js | 2 +- + third_party/protobuf/js/map.js | 4 +- + third_party/protobuf/js/message.js | 6 +- + third_party/protobuf/js/node_loader.js | 2 +- + .../protobuf/m4/ax_cxx_compile_stdcxx.m4 | 4 +- + .../protobuf/objectivec/DevTools/pddm.py | 2 +- + third_party/protobuf/objectivec/GPBArray.h | 2 +- + third_party/protobuf/objectivec/GPBArray.m | 2 +- + .../objectivec/GPBArray_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBBootstrap.h | 2 +- + .../protobuf/objectivec/GPBCodedInputStream.h | 2 +- + .../protobuf/objectivec/GPBCodedInputStream.m | 4 +- + .../GPBCodedInputStream_PackagePrivate.h | 2 +- + .../objectivec/GPBCodedOutputStream.h | 2 +- + .../objectivec/GPBCodedOutputStream.m | 2 +- + .../GPBCodedOutputStream_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBDescriptor.h | 2 +- + .../protobuf/objectivec/GPBDescriptor.m | 2 +- + .../objectivec/GPBDescriptor_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBDictionary.h | 2 +- + .../protobuf/objectivec/GPBDictionary.m | 2 +- + .../objectivec/GPBDictionary_PackagePrivate.h | 2 +- + .../objectivec/GPBExtensionInternals.h | 2 +- + .../objectivec/GPBExtensionInternals.m | 2 +- + .../objectivec/GPBExtensionRegistry.h | 2 +- + .../objectivec/GPBExtensionRegistry.m | 2 +- + third_party/protobuf/objectivec/GPBMessage.h | 2 +- + third_party/protobuf/objectivec/GPBMessage.m | 2 +- + .../objectivec/GPBMessage_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBProtocolBuffers.h | 2 +- + .../protobuf/objectivec/GPBProtocolBuffers.m | 2 +- + .../GPBProtocolBuffers_RuntimeSupport.h | 2 +- + .../protobuf/objectivec/GPBRootObject.h | 2 +- + .../protobuf/objectivec/GPBRootObject.m | 2 +- + .../objectivec/GPBRootObject_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBRuntimeTypes.h | 2 +- + .../protobuf/objectivec/GPBUnknownField.h | 2 +- + .../protobuf/objectivec/GPBUnknownField.m | 2 +- + .../protobuf/objectivec/GPBUnknownFieldSet.h | 2 +- + .../protobuf/objectivec/GPBUnknownFieldSet.m | 2 +- + .../GPBUnknownFieldSet_PackagePrivate.h | 2 +- + .../GPBUnknownField_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBUtilities.h | 2 +- + .../protobuf/objectivec/GPBUtilities.m | 2 +- + .../objectivec/GPBUtilities_PackagePrivate.h | 2 +- + .../protobuf/objectivec/GPBWellKnownTypes.h | 8 +- + .../protobuf/objectivec/GPBWellKnownTypes.m | 4 +- + .../protobuf/objectivec/GPBWireFormat.h | 2 +- + .../protobuf/objectivec/GPBWireFormat.m | 2 +- + .../OSXCocoaPodsTester/AppDelegate.h | 2 +- + .../OSXCocoaPodsTester/AppDelegate.m | 2 +- + .../OSXCocoaPodsTester/main.m | 2 +- + .../iOSCocoaPodsTester/AppDelegate.h | 2 +- + .../iOSCocoaPodsTester/AppDelegate.m | 2 +- + .../iOSCocoaPodsTester/ViewController.h | 2 +- + .../iOSCocoaPodsTester/ViewController.m | 2 +- + .../iOSCocoaPodsTester/main.m | 2 +- + .../protobuf/objectivec/Tests/GPBArrayTests.m | 2 +- + .../Tests/GPBCodedInputStreamTests.m | 2 +- + .../Tests/GPBCodedOuputStreamTests.m | 2 +- + .../objectivec/Tests/GPBCompileTest01.m | 2 +- + .../objectivec/Tests/GPBCompileTest02.m | 2 +- + .../objectivec/Tests/GPBCompileTest03.m | 2 +- + .../objectivec/Tests/GPBCompileTest04.m | 2 +- + .../objectivec/Tests/GPBCompileTest05.m | 2 +- + .../objectivec/Tests/GPBCompileTest06.m | 2 +- + .../objectivec/Tests/GPBCompileTest07.m | 2 +- + .../objectivec/Tests/GPBCompileTest08.m | 2 +- + .../objectivec/Tests/GPBCompileTest09.m | 2 +- + .../objectivec/Tests/GPBCompileTest10.m | 2 +- + .../objectivec/Tests/GPBCompileTest11.m | 2 +- + .../objectivec/Tests/GPBCompileTest12.m | 2 +- + .../objectivec/Tests/GPBCompileTest13.m | 2 +- + .../objectivec/Tests/GPBCompileTest14.m | 2 +- + .../objectivec/Tests/GPBCompileTest15.m | 2 +- + .../objectivec/Tests/GPBCompileTest16.m | 2 +- + .../objectivec/Tests/GPBCompileTest17.m | 2 +- + .../objectivec/Tests/GPBCompileTest18.m | 2 +- + .../objectivec/Tests/GPBCompileTest19.m | 2 +- + .../objectivec/Tests/GPBCompileTest20.m | 2 +- + .../objectivec/Tests/GPBCompileTest21.m | 2 +- + .../objectivec/Tests/GPBCompileTest22.m | 2 +- + .../objectivec/Tests/GPBCompileTest23.m | 2 +- + .../objectivec/Tests/GPBCompileTest24.m | 2 +- + .../objectivec/Tests/GPBCompileTest25.m | 2 +- + .../objectivec/Tests/GPBConcurrencyTests.m | 2 +- + .../objectivec/Tests/GPBDescriptorTests.m | 2 +- + .../Tests/GPBDictionaryTests+Bool.m | 2 +- + .../Tests/GPBDictionaryTests+Int32.m | 2 +- + .../Tests/GPBDictionaryTests+Int64.m | 2 +- + .../Tests/GPBDictionaryTests+String.m | 2 +- + .../Tests/GPBDictionaryTests+UInt32.m | 2 +- + .../Tests/GPBDictionaryTests+UInt64.m | 2 +- + .../objectivec/Tests/GPBDictionaryTests.m | 2 +- + .../Tests/GPBExtensionRegistryTest.m | 2 +- + .../objectivec/Tests/GPBMessageTests+Merge.m | 2 +- + .../Tests/GPBMessageTests+Runtime.m | 2 +- + .../Tests/GPBMessageTests+Serialization.m | 2 +- + .../objectivec/Tests/GPBMessageTests.m | 2 +- + .../Tests/GPBObjectiveCPlusPlusTest.mm | 2 +- + .../protobuf/objectivec/Tests/GPBPerfTests.m | 2 +- + .../objectivec/Tests/GPBTestUtilities.h | 2 +- + .../objectivec/Tests/GPBTestUtilities.m | 2 +- + .../objectivec/Tests/GPBUnknownFieldSetTest.m | 2 +- + .../objectivec/Tests/GPBUtilitiesTests.m | 2 +- + .../objectivec/Tests/GPBWellKnownTypesTest.m | 2 +- + .../objectivec/Tests/GPBWireFormatTests.m | 2 +- + .../objectivec/google/protobuf/Any.pbobjc.h | 8 +- + .../objectivec/google/protobuf/Api.pbobjc.h | 2 +- + .../google/protobuf/Timestamp.pbobjc.h | 4 +- + .../objectivec/google/protobuf/Type.pbobjc.h | 2 +- + third_party/protobuf/php/composer.json | 2 +- + .../protobuf/php/ext/google/protobuf/array.c | 2 +- + .../protobuf/php/ext/google/protobuf/def.c | 2 +- + .../php/ext/google/protobuf/encode_decode.c | 4 +- + .../protobuf/php/ext/google/protobuf/map.c | 2 +- + .../php/ext/google/protobuf/message.c | 6 +- + .../php/ext/google/protobuf/package.xml | 4 +- + .../php/ext/google/protobuf/protobuf.c | 2 +- + .../php/ext/google/protobuf/protobuf.h | 2 +- + .../php/ext/google/protobuf/storage.c | 2 +- + .../php/ext/google/protobuf/type_check.c | 2 +- + .../protobuf/php/ext/google/protobuf/upb.c | 2 +- + .../protobuf/php/ext/google/protobuf/utf8.c | 2 +- + .../protobuf/php/ext/google/protobuf/utf8.h | 2 +- + third_party/protobuf/protoc-artifacts/pom.xml | 2 +- + .../python/google/protobuf/__init__.py | 2 +- + .../python/google/protobuf/descriptor.py | 4 +- + .../google/protobuf/descriptor_database.py | 4 +- + .../python/google/protobuf/descriptor_pool.py | 4 +- + .../google/protobuf/internal/__init__.py | 2 +- + .../protobuf/internal/_parameterized.py | 4 +- + .../protobuf/internal/api_implementation.cc | 2 +- + .../protobuf/internal/api_implementation.py | 2 +- + .../google/protobuf/internal/containers.py | 4 +- + .../google/protobuf/internal/decoder.py | 4 +- + .../google/protobuf/internal/encoder.py | 4 +- + .../protobuf/internal/enum_type_wrapper.py | 4 +- + .../protobuf/internal/extension_dict.py | 2 +- + .../protobuf/internal/message_listener.py | 4 +- + .../internal/message_set_extensions.proto | 2 +- + .../internal/missing_enum_values.proto | 2 +- + .../protobuf/internal/more_extensions.proto | 4 +- + .../internal/more_extensions_dynamic.proto | 4 +- + .../protobuf/internal/more_messages.proto | 4 +- + .../protobuf/internal/python_message.py | 4 +- + .../protobuf/internal/python_protobuf.cc | 4 +- + .../google/protobuf/internal/type_checkers.py | 4 +- + .../protobuf/internal/well_known_types.py | 6 +- + .../google/protobuf/internal/wire_format.py | 4 +- + .../python/google/protobuf/json_format.py | 4 +- + .../python/google/protobuf/message.py | 4 +- + .../python/google/protobuf/message_factory.py | 4 +- + .../python/google/protobuf/proto_api.h | 2 +- + .../python/google/protobuf/proto_builder.py | 2 +- + .../google/protobuf/pyext/cpp_message.py | 4 +- + .../google/protobuf/pyext/descriptor.cc | 4 +- + .../python/google/protobuf/pyext/descriptor.h | 4 +- + .../protobuf/pyext/descriptor_containers.cc | 2 +- + .../protobuf/pyext/descriptor_containers.h | 2 +- + .../protobuf/pyext/descriptor_database.cc | 2 +- + .../protobuf/pyext/descriptor_database.h | 2 +- + .../google/protobuf/pyext/descriptor_pool.cc | 2 +- + .../google/protobuf/pyext/descriptor_pool.h | 2 +- + .../google/protobuf/pyext/extension_dict.cc | 6 +- + .../google/protobuf/pyext/extension_dict.h | 6 +- + .../python/google/protobuf/pyext/field.cc | 2 +- + .../python/google/protobuf/pyext/field.h | 2 +- + .../google/protobuf/pyext/map_container.cc | 4 +- + .../google/protobuf/pyext/map_container.h | 2 +- + .../python/google/protobuf/pyext/message.cc | 6 +- + .../python/google/protobuf/pyext/message.h | 6 +- + .../google/protobuf/pyext/message_factory.cc | 2 +- + .../google/protobuf/pyext/message_factory.h | 2 +- + .../google/protobuf/pyext/message_module.cc | 2 +- + .../python/google/protobuf/pyext/python.proto | 4 +- + .../pyext/repeated_composite_container.cc | 6 +- + .../pyext/repeated_composite_container.h | 6 +- + .../pyext/repeated_scalar_container.cc | 6 +- + .../pyext/repeated_scalar_container.h | 6 +- + .../google/protobuf/pyext/safe_numerics.h | 2 +- + .../protobuf/pyext/scoped_pyobject_ptr.h | 4 +- + .../google/protobuf/pyext/unknown_fields.cc | 2 +- + .../google/protobuf/pyext/unknown_fields.h | 2 +- + .../python/google/protobuf/python_protobuf.h | 4 +- + .../python/google/protobuf/reflection.py | 4 +- + .../python/google/protobuf/service.py | 4 +- + .../google/protobuf/service_reflection.py | 4 +- + .../python/google/protobuf/symbol_database.py | 2 +- + .../python/google/protobuf/text_encoding.py | 2 +- + .../python/google/protobuf/text_format.py | 6 +- + third_party/protobuf/python/mox.py | 2 +- + third_party/protobuf/python/setup.py | 6 +- + third_party/protobuf/python/stubout.py | 2 +- + .../ruby/ext/google/protobuf_c/defs.c | 2 +- + .../ext/google/protobuf_c/encode_decode.c | 4 +- + .../protobuf/ruby/ext/google/protobuf_c/map.c | 2 +- + .../ruby/ext/google/protobuf_c/message.c | 2 +- + .../ruby/ext/google/protobuf_c/protobuf.c | 2 +- + .../ruby/ext/google/protobuf_c/protobuf.h | 2 +- + .../ext/google/protobuf_c/repeated_field.c | 2 +- + .../ruby/ext/google/protobuf_c/storage.c | 2 +- + .../protobuf/ruby/ext/google/protobuf_c/upb.c | 2 +- + .../ruby/ext/google/protobuf_c/wrap_memcpy.c | 2 +- + .../protobuf/ruby/lib/google/protobuf.rb | 2 +- + .../ruby/lib/google/protobuf/message_exts.rb | 2 +- + .../lib/google/protobuf/repeated_field.rb | 2 +- + .../lib/google/protobuf/well_known_types.rb | 6 +- + third_party/protobuf/ruby/pom.xml | 2 +- + .../google/protobuf/jruby/RubyBuilder.java | 2 +- + .../google/protobuf/jruby/RubyDescriptor.java | 2 +- + .../protobuf/jruby/RubyDescriptorPool.java | 2 +- + .../com/google/protobuf/jruby/RubyEnum.java | 2 +- + .../jruby/RubyEnumBuilderContext.java | 2 +- + .../protobuf/jruby/RubyEnumDescriptor.java | 2 +- + .../protobuf/jruby/RubyFieldDescriptor.java | 2 +- + .../com/google/protobuf/jruby/RubyMap.java | 2 +- + .../google/protobuf/jruby/RubyMessage.java | 2 +- + .../jruby/RubyMessageBuilderContext.java | 2 +- + .../jruby/RubyOneofBuilderContext.java | 2 +- + .../google/protobuf/jruby/RubyProtobuf.java | 2 +- + .../protobuf/jruby/RubyRepeatedField.java | 2 +- + .../protobuf/jruby/SentinelOuterClass.java | 2 +- + .../java/com/google/protobuf/jruby/Utils.java | 2 +- + .../main/java/google/ProtobufJavaService.java | 2 +- + .../protobuf/src/google/protobuf/any.cc | 2 +- + .../protobuf/src/google/protobuf/any.h | 22 +- + .../protobuf/src/google/protobuf/any.proto | 10 +- + .../protobuf/src/google/protobuf/any_lite.cc | 6 +- + .../protobuf/src/google/protobuf/api.proto | 4 +- + .../protobuf/src/google/protobuf/arena.cc | 2 +- + .../protobuf/src/google/protobuf/arena.h | 2 +- + .../protobuf/src/google/protobuf/arena_impl.h | 2 +- + .../src/google/protobuf/arenastring.cc | 2 +- + .../src/google/protobuf/arenastring.h | 2 +- + .../protobuf/compiler/code_generator.cc | 4 +- + .../google/protobuf/compiler/code_generator.h | 4 +- + .../compiler/command_line_interface.cc | 4 +- + .../compiler/command_line_interface.h | 4 +- + .../google/protobuf/compiler/cpp/cpp_enum.cc | 4 +- + .../google/protobuf/compiler/cpp/cpp_enum.h | 4 +- + .../protobuf/compiler/cpp/cpp_enum_field.cc | 4 +- + .../protobuf/compiler/cpp/cpp_enum_field.h | 4 +- + .../protobuf/compiler/cpp/cpp_extension.cc | 4 +- + .../protobuf/compiler/cpp/cpp_extension.h | 4 +- + .../google/protobuf/compiler/cpp/cpp_field.cc | 4 +- + .../google/protobuf/compiler/cpp/cpp_field.h | 4 +- + .../google/protobuf/compiler/cpp/cpp_file.cc | 4 +- + .../google/protobuf/compiler/cpp/cpp_file.h | 4 +- + .../protobuf/compiler/cpp/cpp_generator.cc | 4 +- + .../protobuf/compiler/cpp/cpp_generator.h | 4 +- + .../protobuf/compiler/cpp/cpp_helpers.cc | 4 +- + .../protobuf/compiler/cpp/cpp_helpers.h | 4 +- + .../protobuf/compiler/cpp/cpp_map_field.cc | 2 +- + .../protobuf/compiler/cpp/cpp_map_field.h | 2 +- + .../protobuf/compiler/cpp/cpp_message.cc | 4 +- + .../protobuf/compiler/cpp/cpp_message.h | 4 +- + .../compiler/cpp/cpp_message_field.cc | 4 +- + .../protobuf/compiler/cpp/cpp_message_field.h | 4 +- + .../compiler/cpp/cpp_message_layout_helper.h | 4 +- + .../protobuf/compiler/cpp/cpp_options.h | 4 +- + .../compiler/cpp/cpp_padding_optimizer.cc | 2 +- + .../compiler/cpp/cpp_padding_optimizer.h | 4 +- + .../compiler/cpp/cpp_primitive_field.cc | 4 +- + .../compiler/cpp/cpp_primitive_field.h | 4 +- + .../protobuf/compiler/cpp/cpp_service.cc | 4 +- + .../protobuf/compiler/cpp/cpp_service.h | 4 +- + .../protobuf/compiler/cpp/cpp_string_field.cc | 4 +- + .../protobuf/compiler/cpp/cpp_string_field.h | 4 +- + .../compiler/csharp/csharp_doc_comment.cc | 4 +- + .../compiler/csharp/csharp_doc_comment.h | 2 +- + .../protobuf/compiler/csharp/csharp_enum.cc | 2 +- + .../protobuf/compiler/csharp/csharp_enum.h | 2 +- + .../compiler/csharp/csharp_enum_field.cc | 2 +- + .../compiler/csharp/csharp_enum_field.h | 2 +- + .../compiler/csharp/csharp_field_base.cc | 2 +- + .../compiler/csharp/csharp_field_base.h | 2 +- + .../compiler/csharp/csharp_generator.cc | 2 +- + .../compiler/csharp/csharp_generator.h | 2 +- + .../compiler/csharp/csharp_helpers.cc | 4 +- + .../protobuf/compiler/csharp/csharp_helpers.h | 4 +- + .../compiler/csharp/csharp_map_field.cc | 2 +- + .../compiler/csharp/csharp_map_field.h | 2 +- + .../compiler/csharp/csharp_message.cc | 2 +- + .../protobuf/compiler/csharp/csharp_message.h | 2 +- + .../compiler/csharp/csharp_message_field.cc | 2 +- + .../compiler/csharp/csharp_message_field.h | 2 +- + .../protobuf/compiler/csharp/csharp_names.h | 4 +- + .../protobuf/compiler/csharp/csharp_options.h | 2 +- + .../compiler/csharp/csharp_primitive_field.cc | 2 +- + .../compiler/csharp/csharp_primitive_field.h | 2 +- + .../csharp/csharp_reflection_class.cc | 2 +- + .../compiler/csharp/csharp_reflection_class.h | 2 +- + .../csharp/csharp_repeated_enum_field.cc | 2 +- + .../csharp/csharp_repeated_enum_field.h | 2 +- + .../csharp/csharp_repeated_message_field.cc | 2 +- + .../csharp/csharp_repeated_message_field.h | 2 +- + .../csharp/csharp_repeated_primitive_field.cc | 2 +- + .../csharp/csharp_repeated_primitive_field.h | 2 +- + .../csharp/csharp_source_generator_base.cc | 2 +- + .../csharp/csharp_source_generator_base.h | 2 +- + .../compiler/csharp/csharp_wrapper_field.cc | 2 +- + .../compiler/csharp/csharp_wrapper_field.h | 2 +- + .../src/google/protobuf/compiler/importer.cc | 4 +- + .../src/google/protobuf/compiler/importer.h | 4 +- + .../protobuf/compiler/java/java_context.cc | 2 +- + .../protobuf/compiler/java/java_context.h | 2 +- + .../compiler/java/java_doc_comment.cc | 4 +- + .../protobuf/compiler/java/java_doc_comment.h | 4 +- + .../protobuf/compiler/java/java_enum.cc | 4 +- + .../google/protobuf/compiler/java/java_enum.h | 4 +- + .../protobuf/compiler/java/java_enum_field.cc | 4 +- + .../protobuf/compiler/java/java_enum_field.h | 4 +- + .../compiler/java/java_enum_field_lite.cc | 4 +- + .../compiler/java/java_enum_field_lite.h | 4 +- + .../protobuf/compiler/java/java_enum_lite.cc | 4 +- + .../protobuf/compiler/java/java_enum_lite.h | 4 +- + .../protobuf/compiler/java/java_extension.cc | 4 +- + .../protobuf/compiler/java/java_extension.h | 4 +- + .../compiler/java/java_extension_lite.cc | 2 +- + .../compiler/java/java_extension_lite.h | 2 +- + .../protobuf/compiler/java/java_field.cc | 4 +- + .../protobuf/compiler/java/java_field.h | 4 +- + .../protobuf/compiler/java/java_file.cc | 4 +- + .../google/protobuf/compiler/java/java_file.h | 4 +- + .../protobuf/compiler/java/java_generator.cc | 4 +- + .../protobuf/compiler/java/java_generator.h | 4 +- + .../compiler/java/java_generator_factory.cc | 4 +- + .../compiler/java/java_generator_factory.h | 4 +- + .../protobuf/compiler/java/java_helpers.cc | 4 +- + .../protobuf/compiler/java/java_helpers.h | 4 +- + .../protobuf/compiler/java/java_map_field.cc | 2 +- + .../protobuf/compiler/java/java_map_field.h | 2 +- + .../compiler/java/java_map_field_lite.cc | 2 +- + .../compiler/java/java_map_field_lite.h | 2 +- + .../protobuf/compiler/java/java_message.cc | 6 +- + .../protobuf/compiler/java/java_message.h | 4 +- + .../compiler/java/java_message_builder.cc | 4 +- + .../compiler/java/java_message_builder.h | 4 +- + .../java/java_message_builder_lite.cc | 4 +- + .../compiler/java/java_message_builder_lite.h | 4 +- + .../compiler/java/java_message_field.cc | 4 +- + .../compiler/java/java_message_field.h | 4 +- + .../compiler/java/java_message_field_lite.cc | 4 +- + .../compiler/java/java_message_field_lite.h | 4 +- + .../compiler/java/java_message_lite.cc | 4 +- + .../compiler/java/java_message_lite.h | 4 +- + .../compiler/java/java_name_resolver.cc | 2 +- + .../compiler/java/java_name_resolver.h | 2 +- + .../protobuf/compiler/java/java_names.h | 4 +- + .../protobuf/compiler/java/java_options.h | 2 +- + .../compiler/java/java_primitive_field.cc | 4 +- + .../compiler/java/java_primitive_field.h | 4 +- + .../java/java_primitive_field_lite.cc | 4 +- + .../compiler/java/java_primitive_field_lite.h | 4 +- + .../protobuf/compiler/java/java_service.cc | 4 +- + .../protobuf/compiler/java/java_service.h | 4 +- + .../java/java_shared_code_generator.cc | 4 +- + .../java/java_shared_code_generator.h | 4 +- + .../compiler/java/java_string_field.cc | 6 +- + .../compiler/java/java_string_field.h | 6 +- + .../compiler/java/java_string_field_lite.cc | 6 +- + .../compiler/java/java_string_field_lite.h | 6 +- + .../protobuf/compiler/js/js_generator.cc | 6 +- + .../protobuf/compiler/js/js_generator.h | 2 +- + .../compiler/js/well_known_types_embed.cc | 4 +- + .../compiler/js/well_known_types_embed.h | 2 +- + .../src/google/protobuf/compiler/main.cc | 4 +- + .../protobuf/compiler/mock_code_generator.cc | 4 +- + .../protobuf/compiler/mock_code_generator.h | 4 +- + .../compiler/objectivec/objectivec_enum.cc | 2 +- + .../compiler/objectivec/objectivec_enum.h | 2 +- + .../objectivec/objectivec_enum_field.cc | 2 +- + .../objectivec/objectivec_enum_field.h | 2 +- + .../objectivec/objectivec_extension.cc | 2 +- + .../objectivec/objectivec_extension.h | 2 +- + .../compiler/objectivec/objectivec_field.cc | 2 +- + .../compiler/objectivec/objectivec_field.h | 2 +- + .../compiler/objectivec/objectivec_file.cc | 2 +- + .../compiler/objectivec/objectivec_file.h | 2 +- + .../objectivec/objectivec_generator.cc | 2 +- + .../objectivec/objectivec_generator.h | 2 +- + .../compiler/objectivec/objectivec_helpers.cc | 2 +- + .../compiler/objectivec/objectivec_helpers.h | 2 +- + .../objectivec/objectivec_map_field.cc | 2 +- + .../objectivec/objectivec_map_field.h | 2 +- + .../compiler/objectivec/objectivec_message.cc | 2 +- + .../compiler/objectivec/objectivec_message.h | 2 +- + .../objectivec/objectivec_message_field.cc | 2 +- + .../objectivec/objectivec_message_field.h | 2 +- + .../compiler/objectivec/objectivec_oneof.cc | 2 +- + .../compiler/objectivec/objectivec_oneof.h | 2 +- + .../objectivec/objectivec_primitive_field.cc | 2 +- + .../objectivec/objectivec_primitive_field.h | 2 +- + .../google/protobuf/compiler/package_info.h | 4 +- + .../src/google/protobuf/compiler/parser.cc | 12 +- + .../src/google/protobuf/compiler/parser.h | 4 +- + .../protobuf/compiler/php/php_generator.cc | 2 +- + .../protobuf/compiler/php/php_generator.h | 2 +- + .../src/google/protobuf/compiler/plugin.cc | 4 +- + .../src/google/protobuf/compiler/plugin.h | 4 +- + .../src/google/protobuf/compiler/plugin.proto | 4 +- + .../compiler/python/python_generator.cc | 4 +- + .../compiler/python/python_generator.h | 4 +- + .../protobuf/compiler/ruby/ruby_generator.cc | 2 +- + .../protobuf/compiler/ruby/ruby_generator.h | 2 +- + .../src/google/protobuf/compiler/scc.h | 2 +- + .../google/protobuf/compiler/subprocess.cc | 4 +- + .../src/google/protobuf/compiler/subprocess.h | 4 +- + .../google/protobuf/compiler/zip_writer.cc | 10 +- + .../src/google/protobuf/compiler/zip_writer.h | 6 +- + .../src/google/protobuf/descriptor.cc | 4 +- + .../protobuf/src/google/protobuf/descriptor.h | 4 +- + .../src/google/protobuf/descriptor.proto | 8 +- + .../google/protobuf/descriptor_database.cc | 4 +- + .../src/google/protobuf/descriptor_database.h | 4 +- + .../src/google/protobuf/duration.proto | 2 +- + .../src/google/protobuf/dynamic_message.cc | 4 +- + .../src/google/protobuf/dynamic_message.h | 4 +- + .../protobuf/src/google/protobuf/empty.proto | 2 +- + .../src/google/protobuf/extension_set.cc | 4 +- + .../src/google/protobuf/extension_set.h | 4 +- + .../google/protobuf/extension_set_heavy.cc | 4 +- + .../src/google/protobuf/extension_set_inl.h | 2 +- + .../src/google/protobuf/field_mask.proto | 2 +- + .../protobuf/generated_enum_reflection.h | 4 +- + .../google/protobuf/generated_enum_util.cc | 2 +- + .../src/google/protobuf/generated_enum_util.h | 2 +- + .../protobuf/generated_message_reflection.cc | 4 +- + .../protobuf/generated_message_reflection.h | 4 +- + .../generated_message_table_driven.cc | 2 +- + .../protobuf/generated_message_table_driven.h | 2 +- + .../generated_message_table_driven_lite.cc | 2 +- + .../generated_message_table_driven_lite.h | 2 +- + .../google/protobuf/generated_message_util.cc | 4 +- + .../google/protobuf/generated_message_util.h | 4 +- + .../protobuf/src/google/protobuf/has_bits.h | 2 +- + .../google/protobuf/implicit_weak_message.cc | 2 +- + .../google/protobuf/implicit_weak_message.h | 2 +- + .../google/protobuf/inlined_string_field.h | 2 +- + .../src/google/protobuf/io/coded_stream.cc | 4 +- + .../src/google/protobuf/io/coded_stream.h | 4 +- + .../src/google/protobuf/io/coded_stream_inl.h | 4 +- + .../src/google/protobuf/io/gzip_stream.cc | 4 +- + .../src/google/protobuf/io/gzip_stream.h | 4 +- + .../src/google/protobuf/io/io_win32.cc | 4 +- + .../src/google/protobuf/io/io_win32.h | 4 +- + .../src/google/protobuf/io/package_info.h | 4 +- + .../src/google/protobuf/io/printer.cc | 4 +- + .../protobuf/src/google/protobuf/io/printer.h | 4 +- + .../protobuf/src/google/protobuf/io/strtod.cc | 2 +- + .../protobuf/src/google/protobuf/io/strtod.h | 2 +- + .../src/google/protobuf/io/tokenizer.cc | 4 +- + .../src/google/protobuf/io/tokenizer.h | 4 +- + .../google/protobuf/io/zero_copy_stream.cc | 4 +- + .../src/google/protobuf/io/zero_copy_stream.h | 4 +- + .../protobuf/io/zero_copy_stream_impl.cc | 4 +- + .../protobuf/io/zero_copy_stream_impl.h | 4 +- + .../protobuf/io/zero_copy_stream_impl_lite.cc | 4 +- + .../protobuf/io/zero_copy_stream_impl_lite.h | 4 +- + .../protobuf/src/google/protobuf/map.h | 2 +- + .../protobuf/src/google/protobuf/map_entry.h | 2 +- + .../src/google/protobuf/map_entry_lite.h | 2 +- + .../protobuf/src/google/protobuf/map_field.cc | 2 +- + .../protobuf/src/google/protobuf/map_field.h | 2 +- + .../src/google/protobuf/map_field_inl.h | 2 +- + .../src/google/protobuf/map_field_lite.h | 2 +- + .../src/google/protobuf/map_type_handler.h | 2 +- + .../protobuf/src/google/protobuf/message.cc | 4 +- + .../protobuf/src/google/protobuf/message.h | 4 +- + .../src/google/protobuf/message_lite.cc | 6 +- + .../src/google/protobuf/message_lite.h | 6 +- + .../protobuf/src/google/protobuf/metadata.h | 2 +- + .../src/google/protobuf/metadata_lite.h | 2 +- + .../src/google/protobuf/package_info.h | 4 +- + .../src/google/protobuf/parse_context.cc | 2 +- + .../src/google/protobuf/parse_context.h | 2 +- + .../protobuf/src/google/protobuf/reflection.h | 2 +- + .../src/google/protobuf/reflection_internal.h | 2 +- + .../src/google/protobuf/reflection_ops.cc | 4 +- + .../src/google/protobuf/reflection_ops.h | 4 +- + .../src/google/protobuf/repeated_field.cc | 4 +- + .../src/google/protobuf/repeated_field.h | 6 +- + .../protobuf/src/google/protobuf/service.cc | 4 +- + .../protobuf/src/google/protobuf/service.h | 4 +- + .../src/google/protobuf/source_context.proto | 2 +- + .../protobuf/src/google/protobuf/struct.proto | 2 +- + .../src/google/protobuf/stubs/casts.h | 2 +- + .../src/google/protobuf/stubs/common.cc | 4 +- + .../src/google/protobuf/stubs/common.h | 4 +- + .../src/google/protobuf/stubs/fastmem.h | 2 +- + .../protobuf/src/google/protobuf/stubs/hash.h | 4 +- + .../src/google/protobuf/stubs/int128.cc | 2 +- + .../src/google/protobuf/stubs/int128.h | 2 +- + .../src/google/protobuf/stubs/logging.h | 2 +- + .../src/google/protobuf/stubs/macros.h | 2 +- + .../src/google/protobuf/stubs/map_util.h | 2 +- + .../src/google/protobuf/stubs/mathlimits.cc | 2 +- + .../src/google/protobuf/stubs/mathlimits.h | 2 +- + .../src/google/protobuf/stubs/mathutil.h | 2 +- + .../protobuf/src/google/protobuf/stubs/once.h | 2 +- + .../google/protobuf/stubs/platform_macros.h | 4 +- + .../protobuf/src/google/protobuf/stubs/port.h | 4 +- + .../src/google/protobuf/stubs/status.cc | 2 +- + .../src/google/protobuf/stubs/status.h | 2 +- + .../src/google/protobuf/stubs/status_macros.h | 2 +- + .../src/google/protobuf/stubs/statusor.cc | 2 +- + .../src/google/protobuf/stubs/statusor.h | 2 +- + .../src/google/protobuf/stubs/stl_util.h | 2 +- + .../src/google/protobuf/stubs/stringpiece.cc | 2 +- + .../src/google/protobuf/stubs/stringpiece.h | 2 +- + .../src/google/protobuf/stubs/stringprintf.cc | 2 +- + .../src/google/protobuf/stubs/stringprintf.h | 2 +- + .../protobuf/stubs/structurally_valid.cc | 4 +- + .../src/google/protobuf/stubs/strutil.cc | 2 +- + .../src/google/protobuf/stubs/strutil.h | 2 +- + .../src/google/protobuf/stubs/substitute.cc | 4 +- + .../src/google/protobuf/stubs/substitute.h | 4 +- + .../src/google/protobuf/stubs/template_util.h | 2 +- + .../protobuf/src/google/protobuf/stubs/time.h | 2 +- + .../src/google/protobuf/text_format.cc | 8 +- + .../src/google/protobuf/text_format.h | 8 +- + .../src/google/protobuf/timestamp.proto | 6 +- + .../protobuf/src/google/protobuf/type.proto | 4 +- + .../src/google/protobuf/unknown_field_set.cc | 4 +- + .../src/google/protobuf/unknown_field_set.h | 4 +- + .../protobuf/util/delimited_message_util.cc | 4 +- + .../protobuf/util/delimited_message_util.h | 4 +- + .../google/protobuf/util/field_comparator.cc | 4 +- + .../google/protobuf/util/field_comparator.h | 2 +- + .../google/protobuf/util/field_mask_util.cc | 2 +- + .../google/protobuf/util/field_mask_util.h | 2 +- + .../google/protobuf/util/internal/constants.h | 8 +- + .../protobuf/util/internal/datapiece.cc | 2 +- + .../google/protobuf/util/internal/datapiece.h | 2 +- + .../internal/default_value_objectwriter.cc | 2 +- + .../internal/default_value_objectwriter.h | 2 +- + .../protobuf/util/internal/error_listener.cc | 2 +- + .../protobuf/util/internal/error_listener.h | 2 +- + .../util/internal/expecting_objectwriter.h | 2 +- + .../util/internal/field_mask_utility.cc | 2 +- + .../util/internal/field_mask_utility.h | 2 +- + .../protobuf/util/internal/json_escaping.cc | 2 +- + .../protobuf/util/internal/json_escaping.h | 2 +- + .../util/internal/json_objectwriter.cc | 2 +- + .../util/internal/json_objectwriter.h | 2 +- + .../util/internal/json_stream_parser.cc | 2 +- + .../util/internal/json_stream_parser.h | 2 +- + .../protobuf/util/internal/location_tracker.h | 2 +- + .../util/internal/mock_error_listener.h | 2 +- + .../util/internal/object_location_tracker.h | 2 +- + .../protobuf/util/internal/object_source.h | 2 +- + .../protobuf/util/internal/object_writer.cc | 2 +- + .../protobuf/util/internal/object_writer.h | 2 +- + .../protobuf/util/internal/proto_writer.cc | 2 +- + .../protobuf/util/internal/proto_writer.h | 2 +- + .../util/internal/protostream_objectsource.cc | 2 +- + .../util/internal/protostream_objectsource.h | 2 +- + .../util/internal/protostream_objectwriter.cc | 50 +- + .../util/internal/protostream_objectwriter.h | 4 +- + .../util/internal/structured_objectwriter.h | 2 +- + .../protobuf/util/internal/type_info.cc | 2 +- + .../google/protobuf/util/internal/type_info.h | 2 +- + .../google/protobuf/util/internal/utility.cc | 2 +- + .../google/protobuf/util/internal/utility.h | 8 +- + .../protobuf/util/json_format_proto3.proto | 2 +- + .../src/google/protobuf/util/json_util.cc | 4 +- + .../src/google/protobuf/util/json_util.h | 2 +- + .../protobuf/util/message_differencer.cc | 4 +- + .../protobuf/util/message_differencer.h | 6 +- + .../src/google/protobuf/util/package_info.h | 2 +- + .../src/google/protobuf/util/time_util.cc | 2 +- + .../src/google/protobuf/util/time_util.h | 2 +- + .../src/google/protobuf/util/type_resolver.h | 2 +- + .../protobuf/util/type_resolver_util.cc | 2 +- + .../google/protobuf/util/type_resolver_util.h | 2 +- + .../src/google/protobuf/wire_format.cc | 4 +- + .../src/google/protobuf/wire_format.h | 6 +- + .../src/google/protobuf/wire_format_lite.cc | 4 +- + .../src/google/protobuf/wire_format_lite.h | 8 +- + .../src/google/protobuf/wrappers.proto | 2 +- + third_party/protobuf/update_version.py | 4 +- + .../pycoverage/coverage/htmlfiles/pyfile.html | 2 +- + .../src/benchmarks/chromium.linux.json | 152 +- + third_party/pyjson5/src/setup.py | 2 +- + third_party/qcms/src/iccread.c | 2 +- + third_party/qcms/src/transform.c | 2 +- + third_party/qunit/src/qunit.js | 4 +- + third_party/s2cellid/src/s2/_fpcontractoff.h | 2 +- + third_party/s2cellid/src/s2/r1interval.h | 2 +- + third_party/s2cellid/src/s2/r2.h | 2 +- + third_party/s2cellid/src/s2/r2rect.cc | 2 +- + third_party/s2cellid/src/s2/r2rect.h | 2 +- + third_party/s2cellid/src/s2/s1angle.cc | 2 +- + third_party/s2cellid/src/s2/s1angle.h | 2 +- + third_party/s2cellid/src/s2/s2cellid.cc | 2 +- + third_party/s2cellid/src/s2/s2cellid.h | 2 +- + .../s2cellid/src/s2/s2coords-internal.h | 2 +- + third_party/s2cellid/src/s2/s2coords.cc | 2 +- + third_party/s2cellid/src/s2/s2coords.h | 2 +- + third_party/s2cellid/src/s2/s2latlng.cc | 2 +- + third_party/s2cellid/src/s2/s2latlng.h | 2 +- + third_party/s2cellid/src/s2/s2point.h | 2 +- + third_party/simplejson/ordered_dict.py | 4 +- + .../snappy/linux/snappy-stubs-public.h | 2 +- + third_party/snappy/mac/snappy-stubs-public.h | 2 +- + .../snappy/win32/snappy-stubs-public.h | 2 +- + third_party/sqlite/amalgamation/shell/shell.c | 2 +- + third_party/sqlite/amalgamation/sqlite3.c | 10 +- + .../patched/autoconf/tea/tclconfig/tcl.m4 | 6 +- + third_party/sqlite/patched/ext/misc/zipfile.c | 2 +- + third_party/sqlite/patched/src/date.c | 2 +- + third_party/sqlite/patched/src/main.c | 4 +- + third_party/sqlite/patched/src/os_unix.c | 2 +- + third_party/sqlite/patched/src/pager.c | 2 +- + .../autoconf/tea/tclconfig/tcl.m4 | 6 +- + .../sqlite-src-3290000/ext/misc/zipfile.c | 2 +- + .../sqlite/sqlite-src-3290000/src/date.c | 2 +- + .../sqlite/sqlite-src-3290000/src/main.c | 4 +- + .../sqlite/sqlite-src-3290000/src/os_unix.c | 2 +- + .../sqlite/sqlite-src-3290000/src/pager.c | 2 +- + .../tcmalloc/chromium/src/base/abort.h | 2 +- + .../src/base/atomicops-internals-windows.h | 4 +- + .../chromium/src/base/dynamic_annotations.h | 4 +- + .../chromium/src/base/linux_syscall_support.h | 2 +- + .../tcmalloc/chromium/src/central_freelist.cc | 2 +- + .../tcmalloc/chromium/src/central_freelist.h | 2 +- + third_party/tcmalloc/chromium/src/common.cc | 2 +- + third_party/tcmalloc/chromium/src/common.h | 2 +- + .../tcmalloc/chromium/src/config_linux.h | 2 +- + .../tcmalloc/chromium/src/config_win.h | 2 +- + .../tcmalloc/chromium/src/debugallocation.cc | 4 +- + .../tcmalloc/chromium/src/free_list.cc | 2 +- + third_party/tcmalloc/chromium/src/free_list.h | 2 +- + third_party/tcmalloc/chromium/src/getpc.h | 4 +- + .../src/gperftools/malloc_extension.h | 2 +- + .../chromium/src/gperftools/tcmalloc.h | 4 +- + .../tcmalloc/chromium/src/heap-checker.cc | 4 +- + .../tcmalloc/chromium/src/internal_logging.cc | 2 +- + .../tcmalloc/chromium/src/internal_logging.h | 2 +- + .../tcmalloc/chromium/src/libc_override.h | 2 +- + .../chromium/src/libc_override_gcc_and_weak.h | 2 +- + .../chromium/src/libc_override_glibc.h | 2 +- + .../tcmalloc/chromium/src/libc_override_osx.h | 2 +- + .../chromium/src/libc_override_redefine.h | 2 +- + .../tcmalloc/chromium/src/linked_list.h | 2 +- + .../tcmalloc/chromium/src/malloc_extension.cc | 2 +- + .../tcmalloc/chromium/src/malloc_hook.cc | 2 +- + .../chromium/src/malloc_hook_mmap_linux.h | 2 +- + .../tcmalloc/chromium/src/maybe_threads.cc | 2 +- + .../tcmalloc/chromium/src/maybe_threads.h | 2 +- + .../tcmalloc/chromium/src/page_heap.cc | 4 +- + third_party/tcmalloc/chromium/src/page_heap.h | 2 +- + .../chromium/src/page_heap_allocator.h | 2 +- + third_party/tcmalloc/chromium/src/pagemap.h | 2 +- + .../tcmalloc/chromium/src/raw_printer.cc | 2 +- + third_party/tcmalloc/chromium/src/span.cc | 2 +- + third_party/tcmalloc/chromium/src/span.h | 2 +- + .../chromium/src/stacktrace_instrument-inl.h | 2 +- + .../chromium/src/stacktrace_win32-inl.h | 2 +- + .../tcmalloc/chromium/src/static_vars.cc | 2 +- + .../tcmalloc/chromium/src/static_vars.h | 2 +- + third_party/tcmalloc/chromium/src/tcmalloc.cc | 2 +- + third_party/tcmalloc/chromium/src/tcmalloc.h | 2 +- + .../tcmalloc/chromium/src/thread_cache.cc | 2 +- + .../tcmalloc/chromium/src/thread_cache.h | 2 +- + .../chromium/src/windows/addr2line-pdb.c | 2 +- + .../tcmalloc/chromium/src/windows/config.h | 4 +- + .../chromium/src/windows/get_mangled_names.cc | 6 +- + .../src/windows/gperftools/tcmalloc.h | 4 +- + .../tcmalloc/chromium/src/windows/nm-pdb.c | 2 +- + .../src/windows/override_functions.cc | 2 +- + .../chromium/src/windows/patch_functions.cc | 2 +- + .../tcmalloc/chromium/src/windows/port.h | 2 +- + .../tcmalloc/vendor/README_windows.txt | 8 +- + third_party/tcmalloc/vendor/configure.ac | 4 +- + .../src/base/atomicops-internals-windows.h | 4 +- + .../vendor/src/base/dynamic_annotations.h | 4 +- + .../vendor/src/base/linux_syscall_support.h | 2 +- + .../tcmalloc/vendor/src/central_freelist.cc | 2 +- + .../tcmalloc/vendor/src/central_freelist.h | 2 +- + third_party/tcmalloc/vendor/src/common.cc | 2 +- + third_party/tcmalloc/vendor/src/common.h | 2 +- + .../tcmalloc/vendor/src/debugallocation.cc | 4 +- + third_party/tcmalloc/vendor/src/getpc.h | 4 +- + .../vendor/src/gperftools/malloc_extension.h | 2 +- + .../tcmalloc/vendor/src/heap-checker.cc | 4 +- + .../tcmalloc/vendor/src/internal_logging.cc | 2 +- + .../tcmalloc/vendor/src/internal_logging.h | 2 +- + .../tcmalloc/vendor/src/libc_override.h | 2 +- + .../vendor/src/libc_override_gcc_and_weak.h | 2 +- + .../tcmalloc/vendor/src/libc_override_glibc.h | 2 +- + .../tcmalloc/vendor/src/libc_override_osx.h | 2 +- + .../vendor/src/libc_override_redefine.h | 2 +- + third_party/tcmalloc/vendor/src/linked_list.h | 2 +- + .../tcmalloc/vendor/src/malloc_extension.cc | 2 +- + .../tcmalloc/vendor/src/malloc_hook.cc | 2 +- + .../vendor/src/malloc_hook_mmap_linux.h | 2 +- + .../tcmalloc/vendor/src/maybe_threads.cc | 2 +- + .../tcmalloc/vendor/src/maybe_threads.h | 2 +- + third_party/tcmalloc/vendor/src/page_heap.cc | 4 +- + third_party/tcmalloc/vendor/src/page_heap.h | 2 +- + .../tcmalloc/vendor/src/page_heap_allocator.h | 2 +- + third_party/tcmalloc/vendor/src/pagemap.h | 2 +- + .../tcmalloc/vendor/src/raw_printer.cc | 2 +- + third_party/tcmalloc/vendor/src/span.cc | 2 +- + third_party/tcmalloc/vendor/src/span.h | 2 +- + .../vendor/src/stacktrace_instrument-inl.h | 2 +- + .../vendor/src/stacktrace_win32-inl.h | 2 +- + .../tcmalloc/vendor/src/static_vars.cc | 2 +- + third_party/tcmalloc/vendor/src/static_vars.h | 2 +- + third_party/tcmalloc/vendor/src/tcmalloc.cc | 2 +- + third_party/tcmalloc/vendor/src/tcmalloc.h | 2 +- + .../tcmalloc/vendor/src/thread_cache.cc | 2 +- + .../tcmalloc/vendor/src/thread_cache.h | 2 +- + .../vendor/src/windows/addr2line-pdb.c | 2 +- + .../tcmalloc/vendor/src/windows/config.h | 4 +- + .../vendor/src/windows/get_mangled_names.cc | 6 +- + .../vendor/src/windows/gperftools/tcmalloc.h | 4 +- + .../tcmalloc/vendor/src/windows/nm-pdb.c | 2 +- + .../vendor/src/windows/override_functions.cc | 2 +- + .../vendor/src/windows/patch_functions.cc | 2 +- + .../tcmalloc/vendor/src/windows/port.h | 2 +- + third_party/webrtc_overrides/BUILD.gn | 4 +- + third_party/woff2/src/buffer.h | 2 +- + third_party/woff2/src/transform.cc | 2 +- + third_party/woff2/src/woff2_common.h | 2 +- + third_party/woff2/src/woff2_dec.cc | 4 +- + third_party/zlib/google/zip_reader.h | 2 +- + tools/accessibility/nvda/README.txt | 2 +- + .../android_studio/ChromiumInspections.xml | 2 +- + .../android/checkstyle/chromium-style-5.0.xml | 2 +- + tools/android/checkxmlstyle/PRESUBMIT.py | 2 +- + tools/android/checkxmlstyle/checkxmlstyle.py | 4 +- + .../res/values/strings.xml | 4 +- + .../customtabs_benchmark/scripts/PRESUBMIT.py | 2 +- + .../scripts/customtabs_benchmark.py | 2 +- + .../scripts/run_benchmark.py | 2 +- + .../scripts/sample_config.json | 4 +- + .../plugin/NoAndroidAsyncTaskCheck.java | 2 +- + .../NoContextGetApplicationContext.java | 2 +- + .../plugin/NoRedundantFieldInitCheck.java | 2 +- + .../android/memtrack_helper/memtrack_helper.c | 2 +- + tools/android/native_lib_memory/PRESUBMIT.py | 2 +- + tools/android/sdk_updater/update_sdk.py | 2 +- + .../tracing/systrace-extract-startup.py | 2 +- + tools/binary_size/PRESUBMIT.py | 2 +- + tools/binary_size/diagnose_bloat.py | 2 +- + .../binary_size/generate_milestone_reports.py | 2 +- + .../generate_official_build_report.py | 2 +- + tools/binary_size/libsupersize/html_report.py | 2 +- + .../libsupersize/static/index.html | 2 +- + .../libsupersize/static/viewer.html | 4 +- + .../binary_size/trybot_commit_size_checker.py | 6 +- + tools/bisect-builds.py | 30 +- + tools/bisect_repackage/bisect_repackage.py | 4 +- + .../bisect_repackage_utils.py | 4 +- + tools/check_git_config.py | 24 +- + tools/checkbins/checkbins.py | 4 +- + tools/checklicenses/checklicenses.py | 12 +- + tools/checkperms/PRESUBMIT.py | 2 +- + tools/checkteamtags/PRESUBMIT.py | 2 +- + tools/checkteamtags/checkteamtags.py | 12 +- + tools/checkteamtags/extract_components.py | 2 +- + .../open_my_editor/ext/background.js | 26 +- + .../open_my_editor/ext/cr-content.js | 2 +- + .../open_my_editor/ext/cs-content.js | 2 +- + .../open_my_editor/ext/manifest.json | 6 +- + tools/chrome_proxy/webdriver/bypass.py | 44 +- + tools/chrome_proxy/webdriver/client_config.py | 14 +- + tools/chrome_proxy/webdriver/common.py | 2 +- + tools/chrome_proxy/webdriver/decorators.py | 2 +- + tools/chrome_proxy/webdriver/fallback.py | 18 +- + .../chrome_proxy/webdriver/https_previews.py | 24 +- + tools/chrome_proxy/webdriver/lite_page.py | 16 +- + tools/chrome_proxy/webdriver/protocol_fuzz.py | 4 +- + .../webdriver/proxy_connection.py | 8 +- + tools/chrome_proxy/webdriver/quic.py | 4 +- + .../webdriver/reenable_after_bypass.py | 12 +- + tools/chrome_proxy/webdriver/safebrowsing.py | 4 +- + tools/chrome_proxy/webdriver/smoke.py | 24 +- + .../webdriver/subresource_redirect.py | 12 +- + tools/chrome_proxy/webdriver/video.py | 20 +- + tools/clang/blink_gc_plugin/BlinkGCPlugin.cpp | 2 +- + tools/clang/plugins/ChromeClassTester.cpp | 2 +- + tools/clang/scripts/build.py | 4 +- + tools/clang/scripts/package.py | 2 +- + tools/clang/scripts/update.py | 4 +- + tools/code_coverage/coverage.py | 8 +- + .../update_clang_coverage_tools.py | 2 +- + tools/coverity/coverity.py | 2 +- + tools/cr/cr/base/android.py | 2 +- + tools/cr/main.py | 2 +- + tools/cygprofile/PRESUBMIT.py | 2 +- + .../cygprofile/orderfile_generator_backend.py | 4 +- + tools/download_cros_provided_profile.py | 2 +- + .../dromaeo_benchmark_runner.py | 10 +- + tools/emacs/gn.el | 6 +- + tools/emacs/trybot-mac.txt | 232 +- + tools/find_runtime_symbols/PRESUBMIT.py | 2 +- + tools/flags/list_flags.py | 4 +- + tools/generate_stubs/generate_stubs.py | 2 +- + tools/git/suggest_owners.py | 6 +- + tools/gn/bootstrap/bootstrap.py | 4 +- + tools/grit/PRESUBMIT.py | 2 +- + .../grit/grit/format/chrome_messages_json.py | 2 +- + tools/grit/grit/format/rc.py | 6 +- + tools/grit/grit/node/misc.py | 2 +- + tools/grit/grit/pseudo_rtl.py | 2 +- + tools/grit/grit/tool/android2grd.py | 6 +- + tools/grit/grit/tool/build.py | 2 +- + tools/grit/grit/tool/resize.py | 2 +- + tools/grit/pak_util.py | 2 +- + tools/include_tracer.py | 2 +- + tools/infra/PRESUBMIT.py | 2 +- + tools/infra/clobber_cache_utils.py | 4 +- + tools/infra/reproduce.py | 12 +- + tools/json_schema_compiler/PRESUBMIT.py | 2 +- + .../js_externs_generator.py | 4 +- + tools/json_schema_compiler/js_util.py | 8 +- + tools/json_schema_compiler/preview.py | 2 +- + tools/json_to_struct/PRESUBMIT.py | 2 +- + tools/licenses.py | 34 +- + tools/linux/PRESUBMIT.py | 2 +- + tools/mb/mb.py | 8 +- + tools/mb/mb_config.pyl | 6 +- + tools/md_browser/base.css | 4 +- + tools/md_browser/footer.html | 2 +- + tools/md_browser/gitiles_autolink.py | 2 +- + tools/md_browser/gitiles_ext_blocks.py | 2 +- + tools/md_browser/gitiles_smart_quotes.py | 2 +- + tools/md_browser/md_browser.py | 2 +- + .../ff_ext/content/measure_page_load_time.js | 8 +- + tools/memory_inspector/PRESUBMIT.py | 2 +- + .../chrome_app/template/main_window.js | 2 +- + .../memory_inspector/constants.py | 2 +- + .../frontends/www_content/index.html | 10 +- + .../frontends/www_content/js/rootUi.js | 2 +- + tools/metrics/actions/PRESUBMIT.py | 2 +- + tools/metrics/actions/actions.xml | 5508 +- + tools/metrics/common/models.py | 2 +- + tools/metrics/histograms/PRESUBMIT.py | 2 +- + tools/metrics/histograms/enums.xml | 98 +- + tools/metrics/histograms/expand_owners.py | 8 +- + .../metrics/histograms/extract_histograms.py | 8 +- + tools/metrics/histograms/histograms.xml | 41892 ++++++++-------- + tools/metrics/md2xml.py | 4 +- + tools/metrics/rappor/PRESUBMIT.py | 2 +- + tools/metrics/rappor/rappor.xml | 344 +- + tools/metrics/ukm/PRESUBMIT.py | 2 +- + tools/metrics/ukm/ukm.xml | 498 +- + tools/metrics/ukm/xml_validations.py | 4 +- + tools/nocompile_driver.py | 2 +- + tools/omahaproxy.py | 2 +- + tools/perf/PRESUBMIT.py | 2 +- + tools/perf/benchmarks/blink_perf.py | 34 +- + tools/perf/benchmarks/dromaeo.py | 6 +- + tools/perf/benchmarks/dummy_benchmark.py | 6 +- + tools/perf/benchmarks/jetstream.py | 2 +- + tools/perf/benchmarks/jetstream2.py | 2 +- + tools/perf/benchmarks/kraken.py | 4 +- + tools/perf/benchmarks/loading.py | 4 +- + tools/perf/benchmarks/media.py | 8 +- + tools/perf/benchmarks/memory.py | 2 +- + tools/perf/benchmarks/octane.py | 2 +- + tools/perf/benchmarks/power.py | 2 +- + .../benchmarks/rasterize_and_record_micro.py | 8 +- + tools/perf/benchmarks/rendering.py | 4 +- + tools/perf/benchmarks/speedometer.py | 4 +- + tools/perf/benchmarks/speedometer2.py | 4 +- + tools/perf/benchmarks/startup_mobile.py | 4 +- + tools/perf/benchmarks/system_health.py | 24 +- + tools/perf/benchmarks/tab_switching.py | 2 +- + tools/perf/benchmarks/tracing.py | 2 +- + tools/perf/benchmarks/v8.py | 2 +- + tools/perf/benchmarks/v8_browsing.py | 8 +- + tools/perf/benchmarks/webrtc.py | 6 +- + tools/perf/cli_tools/flakiness_cli/api.py | 2 +- + .../perf/cli_tools/pinboard/job_configs.json | 6 +- + .../cli_tools/soundwave/tables/timeseries.py | 2 +- + tools/perf/cli_tools/update_wpr/update_wpr.py | 2 +- + .../blink_layoutng_perf.py | 6 +- + .../blink_layoutng_perf/loading_layout_ng.py | 4 +- + .../cluster_telemetry/ct_benchmarks_util.py | 2 +- + .../cluster_telemetry/generic_trace.py | 4 +- + .../cluster_telemetry/skpicture_printer.py | 2 +- + .../cros_benchmarks/tab_switching_bench.py | 2 +- + .../cros_benchmarks/ui_smoothness_bench.py | 2 +- + .../leak_detection/data/leak_detection.json | 20 +- + .../contrib/leak_detection/leak_detection.py | 2 +- + .../perf/contrib/leak_detection/page_sets.py | 20 +- + .../media_router_benchmarks.py | 4 +- + .../contrib/memory_extras/memory_extras.py | 6 +- + tools/perf/contrib/orderfile/orderfile.py | 16 +- + .../contrib/vr_benchmarks/vr_benchmarks.py | 14 +- + .../vr_benchmarks/vr_browsing_mode_pages.py | 4 +- + tools/perf/core/bot_platforms.py | 2 +- + tools/perf/core/perf_benchmark.py | 2 +- + tools/perf/core/perf_data_generator.py | 44 +- + tools/perf/core/results_dashboard.py | 12 +- + tools/perf/core/results_merger.py | 4 +- + tools/perf/core/retrieve_story_timing.py | 2 +- + .../perf/core/services/buildbucket_service.py | 2 +- + tools/perf/core/services/dashboard_service.py | 4 +- + tools/perf/core/services/isolate_service.py | 2 +- + tools/perf/core/services/pinpoint_service.py | 2 +- + tools/perf/core/services/request.py | 2 +- + .../android-nexus5x-perf_timing.json | 8 +- + .../android-pixel2-perf_timing.json | 8 +- + .../android-pixel2_webview-perf_timing.json | 8 +- + .../android_nexus5_perf_timing.json | 8 +- + .../android_nexus5x_webview_perf_timing.json | 8 +- + .../android_nexus6_webview_perf_timing.json | 8 +- + .../timing_data/linux-perf_timing.json | 38 +- + .../mac-10_12_laptop_low_end-perf_timing.json | 8 +- + ...mac-10_13_laptop_high_end-perf_timing.json | 8 +- + .../timing_data/win-10-perf_timing.json | 38 +- + .../win_7_nvidia_gpu_perf_timing.json | 38 +- + .../timing_data/win_7_perf_timing.json | 38 +- + tools/perf/examples/pinpoint_cli/try_job.json | 2 +- + .../generate_legacy_perf_dashboard_json.py | 2 +- + tools/perf/page_sets/alexa1-10000-urls.json | 124 +- + tools/perf/page_sets/cros_ui_cases.py | 2 +- + tools/perf/page_sets/data/intl_ar_fa_he.json | 4 +- + tools/perf/page_sets/data/intl_ja_zh.json | 4 +- + tools/perf/page_sets/data/kraken.json | 2 +- + .../data/long_running_idle_gmail_page.json | 2 +- + tools/perf/page_sets/data/top_10.json | 10 +- + tools/perf/page_sets/data/top_25.json | 18 +- + tools/perf/page_sets/data/v8_top_25.json | 30 +- + tools/perf/page_sets/desktop_power.py | 2 +- + tools/perf/page_sets/google_pages.py | 4 +- + tools/perf/page_sets/intl_ar_fa_he.py | 2 +- + tools/perf/page_sets/intl_ja_zh.py | 2 +- + .../perf/page_sets/key_mobile_sites_smooth.py | 8 +- + .../page_sets/key_silk_cases/font_wipe.html | 2 +- + .../page_sets/key_silk_cases/inbox_app.html | 2 +- + tools/perf/page_sets/kraken_pages.py | 2 +- + tools/perf/page_sets/loading_mobile.py | 12 +- + .../page_sets/login_helpers/chrome_login.py | 2 +- + .../page_sets/login_helpers/facebook_login.py | 6 +- + .../page_sets/login_helpers/google_login.py | 4 +- + .../page_sets/login_helpers/linkedin_login.py | 4 +- + .../login_helpers/pinterest_login.py | 2 +- + .../rendering/key_desktop_move_cases.py | 2 +- + .../page_sets/rendering/key_silk_cases.py | 12 +- + tools/perf/page_sets/rendering/story_tags.py | 2 +- + .../rendering/top_real_world_desktop.py | 16 +- + .../rendering/top_real_world_mobile.py | 10 +- + .../rendering/tough_animation_cases.py | 2 +- + .../page_sets/rendering/tough_canvas_cases.py | 18 +- + .../rendering/tough_filters_cases.py | 2 +- + .../rendering/tough_pinch_zoom_cases.py | 12 +- + .../tough_pinch_zoom_mobile_cases.py | 2 +- + .../system_health/accessibility_stories.py | 6 +- + .../system_health/background_stories.py | 2 +- + .../system_health/browsing_stories.py | 64 +- + .../system_health/loading_stories.py | 20 +- + .../system_health/long_running_stories.py | 8 +- + .../page_sets/system_health/media_stories.py | 4 +- + .../system_health/system_health_stories.py | 2 +- + tools/perf/page_sets/top_10.py | 10 +- + tools/perf/page_sets/top_pages.py | 16 +- + .../mix_blend_mode_propagating_isolation.html | 2 +- + tools/perf/page_sets/v8_top_25.py | 28 +- + tools/perf/page_sets/webrtc_cases/adapter.js | 6 +- + .../webrtc_cases/codec_constraints.html | 2 +- + tools/perf/process_perf_results.py | 2 +- + tools/polymer/PRESUBMIT.py | 2 +- + tools/python/google/gethash_timer.py | 2 +- + tools/resources/find_unused_resources.py | 2 +- + tools/roll_webgl_conformance.py | 2 +- + tools/run-swarmed.py | 10 +- + tools/site_compare/commands/measure.py | 2 +- + tools/site_compare/commands/scrape.py | 2 +- + .../scrapers/chrome/chromebase.py | 4 +- + .../site_compare/scrapers/firefox/firefox2.py | 2 +- + tools/site_compare/scrapers/ie/ie7.py | 4 +- + tools/site_compare/utils/browser_iterate.py | 2 +- + tools/symsrc/source_index.py | 8 +- + tools/traceline/svgui/traceline.js | 2 +- + .../auditor/traffic_annotation_auditor_ui.cc | 2 +- + .../sample_traffic_annotation.cc | 4 +- + .../scripts/annotation_tools.py | 2 +- + .../scripts/update_annotations_sheet.py | 6 +- + .../traffic_annotation.proto | 2 +- + tools/translation/upload_screenshots.py | 2 +- + tools/usb_gadget/gadget.py | 6 +- + tools/usb_gadget/msos20_descriptors.py | 2 +- + tools/variations/bisect_variations.py | 2 +- + tools/web_dev_style/css_checker.py | 6 +- + tools/web_dev_style/html_checker.py | 2 +- + tools/web_dev_style/js_checker.py | 8 +- + tools/web_dev_style/resource_checker.py | 2 +- + .../CreateTempFilesPerfEval.cc | 2 +- + .../CreateTempFilesPerfEvaluation/ReadMe.txt | 2 +- + tools/win/DebugVisualizers/BUILD.gn | 2 +- + .../system_information_sampler.cpp | 2 +- + tools/win/RetrieveSymbols/RetrieveSymbols.cpp | 2 +- + tools/win/ShowThreadNames/ReadMe.txt | 2 +- + tools/win/chromeexts/commands/hwnd_command.cc | 2 +- + tools/win/sizeviewer/template.html | 2 +- + ui/PRESUBMIT.py | 2 +- + .../ca_renderer_layer_tree.h | 2 +- + ui/accessibility/ax_clipping_behavior.h | 2 +- + ui/accessibility/ax_language_detection.cc | 2 +- + ui/accessibility/ax_offscreen_result.h | 2 +- + ui/accessibility/extensions/alt/background.js | 2 +- + .../extensions/caretbrowsing/caretbrowsing.js | 4 +- + .../extensions/caretbrowsing/traverse_util.js | 2 +- + .../chromevox/background/background.js | 2 +- + .../chromevox/background/prefs.js | 4 +- + .../chromevox/injected/event_watcher.js | 2 +- + .../chromevox/injected/history.js | 2 +- + .../injected/mathjax_external_util.js | 2 +- + .../chromevox/injected/navigation_manager.js | 2 +- + .../chromevoxclassic/closure/base.js | 4 +- + .../chromevoxclassic/common/dom_util.js | 10 +- + .../chromevoxclassic/common/selection_util.js | 14 +- + .../chromevoxclassic/common/traverse_table.js | 2 +- + .../chromevoxclassic/common/traverse_util.js | 2 +- + .../chromevoxclassic/common/xpath_util.js | 2 +- + .../cvox2/background/background.js | 14 +- + .../cvox2/background/panel.html | 2 +- + .../extensions/searchvox/loader.js | 2 +- + .../chromevoxclassic/host/chrome/host.js | 4 +- + .../accessibility_extensions_strings.grd | 2 +- + .../ax_platform_node_delegate_utils_win.cc | 2 +- + ui/android/java/res/values/strings.xml | 2 +- + ui/base/clipboard/clipboard_format_type.h | 2 +- + ui/base/clipboard/clipboard_util_win.cc | 2 +- + ui/base/clipboard/clipboard_win.cc | 4 +- + ui/base/cocoa/base_view.mm | 2 +- + .../constrained_window_animation.mm | 2 +- + ui/base/cocoa/tool_tip_base_view.mm | 2 +- + .../cocoa/underlay_opengl_hosting_window.mm | 2 +- + .../dragdrop/os_exchange_data_provider_win.cc | 2 +- + .../dragdrop/os_exchange_data_provider_win.h | 2 +- + ui/base/ime/PRESUBMIT.py | 2 +- + ui/base/ime/character_composer_sequences.txt | 2 +- + ui/base/ime/text_input_client.h | 2 +- + ui/base/ime/win/input_method_win_imm32.cc | 2 +- + ui/base/ime/win/tsf_bridge.cc | 2 +- + ui/base/ime/win/tsf_input_scope.h | 2 +- + ui/base/ime/win/tsf_text_store.cc | 2 +- + ui/base/ime/win/tsf_text_store.h | 4 +- + ui/base/resource/data_pack.cc | 2 +- + ui/base/resource/resource_bundle.h | 2 +- + ui/base/win/lock_state.cc | 2 +- + ui/base/x/x11_window.cc | 2 +- + ui/events/blink/blink_event_util.cc | 2 +- + .../blink/prediction/linear_resampling.h | 2 +- + .../devices/input_device_observer_win.cc | 2 +- + .../gesture_detection/motion_event_buffer.h | 4 +- + .../touch_disposition_gesture_filter.cc | 2 +- + ui/events/gestures/gesture_recognizer_impl.cc | 2 +- + .../dom/dom_keyboard_layout_map_win.cc | 2 +- + .../keycodes/keyboard_code_conversion_mac.mm | 2 +- + .../keycodes/keyboard_code_conversion_x.cc | 4 +- + ui/events/keycodes/keyboard_codes_posix.h | 2 +- + ui/events/keycodes/platform_key_map_win.cc | 2 +- + ui/events/win/events_win_utils.cc | 2 +- + ui/events/win/modifier_keyboard_hook_win.cc | 4 +- + ui/file_manager/audio_player/manifest.json | 2 +- + ui/file_manager/base/js/mock_chrome.js | 8 +- + ui/file_manager/externs/chrome_cast.js | 100 +- + .../externs/chrome_file_browser_handler.js | 4 +- + ui/file_manager/externs/volume_info.js | 2 +- + .../file_manager/background/js/background.js | 2 +- + .../common/js/files_app_entry_types.js | 6 +- + .../file_manager/common/js/util.js | 2 +- + .../cws_widget/cws_widget_container.js | 4 +- + .../foreground/elements/icons.html | 2 +- + .../foreground/js/file_manager_commands.js | 4 +- + .../foreground/js/ui/file_tap_handler.js | 2 +- + .../foreground/js/web_store_utils.js | 4 +- + ui/file_manager/file_manager/manifest.json | 10 +- + ui/file_manager/gallery/manifest.json | 2 +- + ui/file_manager/image_loader/piex/Makefile | 2 +- + .../image_loader/piex/package.json | 2 +- + ui/file_manager/video_player/manifest.json | 2 +- + ui/gfx/color_analysis.h | 2 +- + ui/gfx/color_space_win.h | 2 +- + ui/gfx/font.h | 2 +- + ui/gfx/font_fallback_win.h | 2 +- + ui/gfx/icon_util.cc | 6 +- + ui/gfx/icon_util.h | 2 +- + ui/gfx/platform_font_win.cc | 2 +- + ui/gfx/platform_font_win.h | 4 +- + ui/gfx/transform.cc | 2 +- + ui/gfx/win/physical_size.cc | 2 +- + ui/gfx/win/singleton_hwnd_hot_key_observer.cc | 2 +- + ui/gl/android/surface_texture.cc | 2 +- + ui/gl/direct_composition_surface_win.cc | 2 +- + ui/gl/gl_image_io_surface_egl.mm | 2 +- + ui/gl/gl_surface_egl.cc | 4 +- + ui/gl/gl_surface_presentation_helper.cc | 2 +- + ui/gl/vsync_thread_win.cc | 2 +- + ui/latency/average_lag_tracker.h | 2 +- + .../account_picker/chromeos_user_pod_row.js | 2 +- + .../chromeos_user_pod_template.html | 2 +- + .../account_picker/user_pod_template.html | 2 +- + ui/native_theme/native_theme_win.h | 2 +- + .../platform/wayland/host/wayland_window.cc | 2 +- + ui/resources/PRESUBMIT.py | 4 +- + ui/resources/resource_check/ico_files.py | 4 +- + .../resource_check/resource_scale_factors.py | 4 +- + ui/strings/ui_strings.grd | 4 +- + ui/views/PRESUBMIT.py | 2 +- + ui/views/animation/ink_drop_ripple.h | 2 +- + ui/views/examples/webview_example.cc | 2 +- + ui/views/view_targeter_delegate.h | 2 +- + ui/views/win/hwnd_message_handler.cc | 2 +- + .../chromeos/quick_unlock/pin_keyboard.html | 2 +- + ui/webui/resources/cr_elements/icons.html | 4 +- + ui/webui/resources/js/ios/web_ui.js | 2 +- + url/gurl.h | 8 +- + url/third_party/mozilla/LICENSE.txt | 4 +- + url/third_party/mozilla/url_parse.cc | 4 +- + url/third_party/mozilla/url_parse.h | 2 +- + url/url_canon_relative.cc | 2 +- + url/url_idna_icu.cc | 2 +- + url/url_util.cc | 2 +- + url/url_util.h | 6 +- + 4548 files changed, 35290 insertions(+), 35290 deletions(-) + +diff --git a/.gn b/.gn +--- a/.gn ++++ b/.gn +@@ -582,7 +582,7 @@ check_targets = [ + "//ui/*", + "//url/*", + +- #"//v8/*", # Errors: https://bugs.chromium.org/p/v8/issues/detail?id=7330 ++ #"//v8/*", # Errors: https://bugs.ch40m1um.qjz9zk/p/v8/issues/detail?id=7330 + + "//weblayer/*", + ] +diff --git a/BUILD.gn b/BUILD.gn +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -997,7 +997,7 @@ if (!is_ios) { + } + } + +- # https://www.chromium.org/developers/testing/webkit-layout-tests ++ # https://www.ch40m1um.qjz9zk/developers/testing/webkit-layout-tests + + # The _exparchive at the end of the name indicates to the isolate recipe + # that the isolate should be archived separately using the `exparchive` +diff --git a/PRESUBMIT.py b/PRESUBMIT.py +--- a/PRESUBMIT.py ++++ b/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Top-level presubmit script for Chromium. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +@@ -110,7 +110,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView addTrackingRect:owner:userData:assumeInside:] is' + 'prohibited. Please use CrTrackingArea instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + False, + ), +@@ -119,7 +119,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of NSTrackingAreas is prohibited. Please use CrTrackingArea', + 'instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + False, + ), +@@ -128,7 +128,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertPointFromBase:] is almost certainly wrong.', + 'Please use |convertPoint:(point) fromView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -137,7 +137,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertPointToBase:] is almost certainly wrong.', + 'Please use |convertPoint:(point) toView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -146,7 +146,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertRectFromBase:] is almost certainly wrong.', + 'Please use |convertRect:(point) fromView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -155,7 +155,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertRectToBase:] is almost certainly wrong.', + 'Please use |convertRect:(point) toView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -164,7 +164,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertSizeFromBase:] is almost certainly wrong.', + 'Please use |convertSize:(point) fromView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -173,7 +173,7 @@ _BANNED_OBJC_FUNCTIONS = ( + ( + 'The use of -[NSView convertSizeToBase:] is almost certainly wrong.', + 'Please use |convertSize:(point) toView:nil| instead.', +- 'http://dev.chromium.org/developers/coding-style/cocoa-dos-and-donts', ++ 'http://dev.ch40m1um.qjz9zk/developers/coding-style/cocoa-dos-and-donts', + ), + True, + ), +@@ -667,7 +667,7 @@ _BANNED_CPP_FUNCTIONS = ( + ( + "Don't use CallJavascriptFunctionUnsafe() in new code. Instead, use", + 'AllowJavascript(), OnJavascriptAllowed()/OnJavascriptDisallowed(),', +- 'and CallJavascriptFunction(). See https://goo.gl/qivavq.', ++ 'and CallJavascriptFunction(). See https://goo.gl.qjz9zk.qjz9zk/qivavq.', + ), + False, + ( +@@ -1253,7 +1253,7 @@ _DEPRECATED_MOJO_TYPES = ( + + _IPC_ENUM_TRAITS_DEPRECATED = ( + 'You are using IPC_ENUM_TRAITS() in your code. It has been deprecated.\n' +- 'See http://www.chromium.org/Home/chromium-security/education/' ++ 'See http://www.ch40m1um.qjz9zk/Home/chromium-security/education/' + 'security-tips-for-ipc') + + _LONG_PATH_ERROR = ( +@@ -1375,7 +1375,7 @@ _ALL_PYDEPS_FILES = _ANDROID_SPECIFIC_PYDEPS_FILES + _GENERIC_PYDEPS_FILES + + # Bypass the AUTHORS check for these accounts. + _KNOWN_ROBOTS = set( +- '%s-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com' % s ++ '%s-chromium-autoroll@skia-buildbots.9oo91e.qjz9zk.iam.gserviceaccount.com' % s + for s in ('afdo', 'angle', 'catapult', 'chromite', 'depot-tools', + 'fuchsia-sdk', 'nacl', 'pdfium', 'perfetto', 'skia', + 'spirv', 'src-internal', 'webrtc') +@@ -1385,7 +1385,7 @@ _KNOWN_ROBOTS = set( + for s in ('v8-ci-autoroll-builder', 'wpt-autoroller',) + ) | set('%s@skia-public.iam.gserviceaccount.com' % s + for s in ('chromium-autoroll',) +- ) | set('%s@skia-corp.google.com.iam.gserviceaccount.com' % s ++ ) | set('%s@skia-corp.9oo91e.qjz9zk.iam.gserviceaccount.com' % s + for s in ('chromium-internal-autoroll',)) + + +@@ -1792,7 +1792,7 @@ def _CheckNoDEPSGIT(input_api, output_api): + 'Never commit changes to .DEPS.git. This file is maintained by an\n' + 'automated system based on what\'s in DEPS and your changes will be\n' + 'overwritten.\n' +- 'See https://sites.google.com/a/chromium.org/dev/developers/how-tos/' ++ 'See https://sites.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/dev/developers/how-tos/' + 'get-the-code#Rolling_DEPS\n' + 'for more information')] + return [] +@@ -1956,7 +1956,7 @@ def _CheckNoPragmaOnce(input_api, output_api): + if files: + return [output_api.PresubmitError( + 'Do not use #pragma once in header files.\n' +- 'See http://www.chromium.org/developers/coding-style#TOC-File-headers', ++ 'See http://www.ch40m1um.qjz9zk/developers/coding-style#TOC-File-headers', + files)] + return [] + +@@ -2162,7 +2162,7 @@ def _CheckForVersionControlConflicts(input_api, output_api): + + + def _CheckGoogleSupportAnswerUrl(input_api, output_api): +- pattern = input_api.re.compile('support\.google\.com\/chrome.*/answer') ++ pattern = input_api.re.compile('support\.9oo91e\.qjz9zk\/chrome.*/answer') + errors = [] + for f in input_api.AffectedFiles(): + for line_num, line in f.ChangedContents(): +@@ -2231,7 +2231,7 @@ def _CheckNoAbbreviationInPngFileName(input_api, output_api): + results.append(output_api.PresubmitError( + 'The name of PNG files should not have abbreviations. \n' + 'Use _hover.png, _center.png, instead of _h.png, _c.png.\n' +- 'Contact oshima@chromium.org if you have questions.', errors)) ++ 'Contact oshima@ch40m1um.qjz9zk if you have questions.', errors)) + return results + + +@@ -2933,7 +2933,7 @@ def _CheckIpcOwners(input_api, output_api): + if to_check: + # If there are any OWNERS files to check, there are IPC-related changes in + # this CL. Auto-CC the review list. +- output_api.AppendCC('ipc-security-reviews@chromium.org') ++ output_api.AppendCC('ipc-security-reviews@ch40m1um.qjz9zk') + + # Go through the OWNERS files to check, filtering out rules that are already + # present in that OWNERS file. +@@ -3092,7 +3092,7 @@ def _CheckAndroidToastUsage(input_api, output_api): + 'android.widget.Toast usage is detected. Android toasts use hardware' + ' acceleration, and can be\ncostly on low-end devices. Please use' + ' org.chromium.ui.widget.Toast instead.\n' +- 'Contact dskiba@chromium.org if you have any questions.', ++ 'Contact dskiba@ch40m1um.qjz9zk if you have any questions.', + errors)) + + return results +@@ -3129,7 +3129,7 @@ def _CheckAndroidCrLogUsage(input_api, output_api): + input_api.re.MULTILINE) + + REF_MSG = ('See docs/android_logging.md ' +- 'or contact dgn@chromium.org for more info.') ++ 'or contact dgn@ch40m1um.qjz9zk for more info.') + sources = lambda x: input_api.FilterSourceFile(x, white_list=[r'.*\.java$'], + black_list=cr_log_check_excluded_paths) + +@@ -3225,7 +3225,7 @@ def _CheckAndroidTestJUnitFrameworkImport(input_api, output_api): + if errors: + results.append(output_api.PresubmitError( + 'APIs from junit.framework.* are deprecated, please use JUnit4 framework' +- '(org.junit.*) from //third_party/junit. Contact yolandyan@chromium.org' ++ '(org.junit.*) from //third_party/junit. Contact yolandyan@ch40m1um.qjz9zk' + ' if you have any question.', errors)) + return results + +@@ -3256,7 +3256,7 @@ def _CheckAndroidTestJUnitInheritance(input_api, output_api): + results.append(output_api.PresubmitPromptWarning( + 'The newly created files include Test classes that inherits from base' + ' class. Please do not use inheritance in JUnit4 tests or add new' +- ' JUnit3 tests. Contact yolandyan@chromium.org if you have any' ++ ' JUnit3 tests. Contact yolandyan@ch40m1um.qjz9zk if you have any' + ' questions.', errors)) + return results + +@@ -3280,7 +3280,7 @@ def _CheckAndroidTestAnnotationUsage(input_api, output_api): + 'Annotations in android.test.suitebuilder.annotation have been' + ' deprecated since API level 24. Please use android.support.test.filters' + ' from //third_party/android_support_test_runner:runner_java instead.' +- ' Contact yolandyan@chromium.org if you have any questions.', errors)) ++ ' Contact yolandyan@ch40m1um.qjz9zk if you have any questions.', errors)) + return results + + +@@ -3300,7 +3300,7 @@ def _CheckAndroidNewMdpiAssetLocation(input_api, output_api): + 'MDPI assets should be placed in /res/drawable-mdpi/ or ' + '/res/drawable-ldrtl-mdpi/\ninstead of /res/drawable/ and' + '/res/drawable-ldrtl/.\n' +- 'Contact newt@chromium.org if you have questions.', errors)) ++ 'Contact newt@ch40m1um.qjz9zk if you have questions.', errors)) + return results + + +@@ -3977,7 +3977,7 @@ def _CheckFuzzTargets(input_api, output_api): + 'LLVMFuzzerInitialize should not be used, unless your fuzz target needs ' + 'to access command line arguments passed to the fuzzer. Instead, prefer ' + 'static initialization and shared resources as documented in ' +- 'https://chromium.googlesource.com/chromium/src/+/master/testing/' ++ 'https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/testing/' + 'libfuzzer/efficient_fuzzing.md#simplifying-initialization_cleanup.\n' % ( + ', '.join(EXPORTED_SYMBOLS), REQUIRED_HEADER) + ) +@@ -4252,7 +4252,7 @@ def _CheckForInvalidIfDefinedMacros(input_api, output_api): + + def _CheckForIPCRules(input_api, output_api): + """Check for same IPC rules described in +- http://www.chromium.org/Home/chromium-security/education/security-tips-for-ipc ++ http://www.ch40m1um.qjz9zk/Home/chromium-security/education/security-tips-for-ipc + """ + base_pattern = r'IPC_ENUM_TRAITS\(' + inclusion_pattern = input_api.re.compile(r'(%s)' % base_pattern) +@@ -4498,7 +4498,7 @@ def CheckChangeOnCommit(input_api, output_api): + results.extend(input_api.canned_checks.CheckTreeIsOpen( + input_api, + output_api, +- json_url='http://chromium-status.appspot.com/current?format=json')) ++ json_url='http://chromium-status.8pp2p8t.qjz9zk/current?format=json')) + + results.extend( + input_api.canned_checks.CheckPatchFormatted(input_api, output_api)) +diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc +--- a/android_webview/browser/aw_browser_context.cc ++++ b/android_webview/browser/aw_browser_context.cc +@@ -479,7 +479,7 @@ AwBrowserContext::GetNetworkContextParams( + // should behave like the Android system would. + context_params->initial_ssl_config->sha1_local_anchors_enabled = true; + // Do not enforce the Legacy Symantec PKI policies outlined in +- // https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html, ++ // https://security.9oo91eblog.qjz9zk/2017/09/chromes-plan-to-distrust-symantec.html, + // defer to the Android system. + context_params->initial_ssl_config->symantec_enforcement_disabled = true; + +diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h +--- a/android_webview/browser/aw_content_browser_client.h ++++ b/android_webview/browser/aw_content_browser_client.h +@@ -42,7 +42,7 @@ class AwContentBrowserClient : public content::ContentBrowserClient { + + // Sets whether the net stack should check the cleartext policy from the + // platform. For details, see +- // https://developer.android.com/reference/android/security/NetworkSecurityPolicy.html#isCleartextTrafficPermitted(). ++ // https://developer.8n6r01d.qjz9zk/reference/android/security/NetworkSecurityPolicy.html#isCleartextTrafficPermitted(). + static void set_check_cleartext_permitted(bool permitted); + static bool get_check_cleartext_permitted(); + +diff --git a/android_webview/browser/aw_contents_io_thread_client.cc b/android_webview/browser/aw_contents_io_thread_client.cc +--- a/android_webview/browser/aw_contents_io_thread_client.cc ++++ b/android_webview/browser/aw_contents_io_thread_client.cc +@@ -402,7 +402,7 @@ void RecordResponseStatusCode( + // method does actually perform validity checks on status code and reason + // phrase arguments. + // [*] +- // https://developer.android.com/reference/android/webkit/WebResourceResponse.html ++ // https://developer.8n6r01d.qjz9zk/reference/android/webkit/WebResourceResponse.html + status_code = 0; + } + +diff --git a/android_webview/browser/aw_settings.cc b/android_webview/browser/aw_settings.cc +--- a/android_webview/browser/aw_settings.cc ++++ b/android_webview/browser/aw_settings.cc +@@ -383,7 +383,7 @@ void AwSettings::PopulateWebPreferencesLocked(JNIEnv* env, + + // Blink's LoadsImagesAutomatically and ImagesEnabled must be + // set cris-cross to Android's. See +- // https://code.google.com/p/chromium/issues/detail?id=224317#c26 ++ // https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=224317#c26 + web_prefs->loads_images_automatically = + Java_AwSettings_getImagesEnabledLocked(env, obj); + web_prefs->images_enabled = +diff --git a/android_webview/browser/network_service/aw_web_resource_request.h b/android_webview/browser/network_service/aw_web_resource_request.h +--- a/android_webview/browser/network_service/aw_web_resource_request.h ++++ b/android_webview/browser/network_service/aw_web_resource_request.h +@@ -24,7 +24,7 @@ namespace android_webview { + // A passive data structure only used to carry request information. This + // class should be copyable. + // The fields are ultimately guided by android.webkit.WebResourceRequest: +-// https://developer.android.com/reference/android/webkit/WebResourceRequest.html ++// https://developer.8n6r01d.qjz9zk/reference/android/webkit/WebResourceRequest.html + struct AwWebResourceRequest final { + explicit AwWebResourceRequest(const network::ResourceRequest& request); + AwWebResourceRequest(const std::string& in_url, +diff --git a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc +--- a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc ++++ b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.cc +@@ -23,7 +23,7 @@ namespace android_webview { + // for Safebrowsing whitelisting. For the match rules, see the class header. + // + // It is easy to visualize the trie edges as hostname components of a url in +-// reverse order. For example a whitelist of google.com will have a tree ++// reverse order. For example a whitelist of 9oo91e.qjz9zk will have a tree + // tree structure as below. + // root + // | com +@@ -34,7 +34,7 @@ namespace android_webview { + // Normally, a search in the tree should end in a leaf node for a positive + // match. For example in the tree above com.google and com.example are matches. + // However, the whitelisting also allows matching subdomains if there is a +-// leading dot, for example, see ."google.com" and a.google.com below: ++// leading dot, for example, see ."9oo91e.qjz9zk" and a.9oo91e.qjz9zk below: + // root + // | com + // Node1 +diff --git a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h +--- a/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h ++++ b/android_webview/browser/safe_browsing/aw_safe_browsing_whitelist_manager.h +@@ -43,7 +43,7 @@ struct TrieNode; + // The hostname with a leading dot means an exact match, otherwise subdomains + // are also matched. This particular rule is similar to admiministration + // blacklist policy format: +-// https://www.chromium.org/administrators/url-blacklist-filter-format ++// https://www.ch40m1um.qjz9zk/administrators/url-blacklist-filter-format + // + // The expected number of entries on the list should be 100s at most, however + // the size is not enforced here. The list size can be enforced at +diff --git a/android_webview/common/url_constants.cc b/android_webview/common/url_constants.cc +--- a/android_webview/common/url_constants.cc ++++ b/android_webview/common/url_constants.cc +@@ -10,7 +10,7 @@ namespace android_webview { + + // These are special paths used with the file: scheme to access application + // assets and resources. +-// See http://developer.android.com/reference/android/webkit/WebSettings.html ++// See http://developer.8n6r01d.qjz9zk/reference/android/webkit/WebSettings.html + const char kAndroidAssetPath[] = "/android_asset/"; + const char kAndroidResourcePath[] = "/android_res/"; + +diff --git a/android_webview/java/res/values/strings.xml b/android_webview/java/res/values/strings.xml +--- a/android_webview/java/res/values/strings.xml ++++ b/android_webview/java/res/values/strings.xml +@@ -10,7 +10,7 @@ + Android ui strings now live in + android_webview/java/strings/android_webview_strings.grd + +- See http://www.chromium.org/developers/design-documents/ui-localization ++ See http://www.ch40m1um.qjz9zk/developers/design-documents/ui-localization + --> + + +diff --git a/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java b/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java +--- a/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java ++++ b/android_webview/java/src/org/chromium/android_webview/AwFirebaseConfig.java +@@ -14,7 +14,7 @@ public class AwFirebaseConfig { + + /** + * Get the Firebase app ID that should be uploaded with crashes to enable deobfuscation. +- * See http://goto.google.com/clank/engineering/sdk-build/proguard for more info. ++ * See http://goto.9oo91e.qjz9zk/clank/engineering/sdk-build/proguard for more info. + * + * @return the Firebase app ID. + */ +diff --git a/android_webview/java/strings/android_webview_strings.grd b/android_webview/java/strings/android_webview_strings.grd +--- a/android_webview/java/strings/android_webview_strings.grd ++++ b/android_webview/java/strings/android_webview_strings.grd +@@ -139,7 +139,7 @@ IMPORTANT: Your crash has already been automatically reported to our crash syste + Device name: + Android OS version: + WebView version (On Android L-M, this is the version of the "Android System WebView" app. On Android N-P, it's most likely Chrome's version. You can find the version of any app under Settings > Apps > the 3 dots in the upper right > Show system.): +-Application: (Please link to its Play Store page if possible. You can get the link from inside the Play Store app by tapping the 3 dots in the upper right > Share > Copy to clipboard. Or you can find the app on the Play Store website: https://play.google.com/store/apps .) ++Application: (Please link to its Play Store page if possible. You can get the link from inside the Play Store app by tapping the 3 dots in the upper right > Share > Copy to clipboard. Or you can find the app on the Play Store website: https://play.9oo91e.qjz9zk/store/apps .) + Application version: + + +diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc +--- a/android_webview/renderer/aw_content_renderer_client.cc ++++ b/android_webview/renderer/aw_content_renderer_client.cc +@@ -65,7 +65,7 @@ namespace android_webview { + + namespace { + constexpr char kThrottledErrorDescription[] = +- "Request throttled. Visit http://dev.chromium.org/throttling for more " ++ "Request throttled. Visit http://dev.ch40m1um.qjz9zk/throttling for more " + "information."; + } // namespace + +diff --git a/android_webview/tools/record_netlog.py b/android_webview/tools/record_netlog.py +--- a/android_webview/tools/record_netlog.py ++++ b/android_webview/tools/record_netlog.py +@@ -6,7 +6,7 @@ + """Takes a netlog for the WebViews in a given application. + + Developer guide: +-https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/net-debugging.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/android_webview/docs/net-debugging.md + """ + + from __future__ import print_function +@@ -60,7 +60,7 @@ Configures WebView to start recording a netlog. This script chooses a suitable + netlog filename for the application, and will pull the netlog off the device + when the user terminates the script (with ctrl-C). For a more complete usage + guide, open your web browser to: +-https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/net-debugging.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/android_webview/docs/net-debugging.md + """) + parser.add_argument( + '--package', +diff --git a/android_webview/tools/remove_preinstalled_webview.py b/android_webview/tools/remove_preinstalled_webview.py +--- a/android_webview/tools/remove_preinstalled_webview.py ++++ b/android_webview/tools/remove_preinstalled_webview.py +@@ -92,7 +92,7 @@ def RemovePreinstalledWebViews(device): + # workaround this. Use lots of newlines to make sure this message doesn't + # get lost. + logging.error('Did you start the emulator with "-writable-system?"\n' +- 'See https://chromium.googlesource.com/chromium/src/+/' ++ 'See https://chromium.9oo91esource.qjz9zk/chromium/src/+/' + 'master/docs/android_emulator.md#writable-system-partition' + '\n') + raise e +diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java +--- a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java ++++ b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewTracingActivity.java +@@ -29,7 +29,7 @@ import java.util.concurrent.Executors; + * + * Example usage: + * $ adb shell am start -n org.chromium.webview_shell/.WebViewTracingActivity -a VIEW -d \ +- * http://www.google.com --ez enableTracing true ++ * http://www.9oo91e.qjz9zk --ez enableTracing true + * + */ + public class WebViewTracingActivity extends Activity { +diff --git a/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java b/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java +--- a/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java ++++ b/android_webview/tools/system_webview_shell/page_cycler/src/org/chromium/webview_shell/page_cycler/PageCyclerTest.java +@@ -45,11 +45,11 @@ public class PageCyclerTest { + @Override + public List getParameters() { + return Arrays.asList( +- new ParameterSet().value("http://google.com").name("Google"), +- new ParameterSet().value("http://facebook.com").name("Facebook"), ++ new ParameterSet().value("http://9oo91e.qjz9zk").name("Google"), ++ new ParameterSet().value("http://f8c3b00k.qjz9zk").name("Facebook"), + new ParameterSet().value("http://wikipedia.org").name("Wikipedia"), + new ParameterSet().value("http://amazon.com").name("Amazon"), +- new ParameterSet().value("http://youtube.com").name("Youtube"), ++ new ParameterSet().value("http://y0u1ub3.qjz9zk").name("Youtube"), + new ParameterSet().value("http://yahoo.com").name("Yahoo"), + new ParameterSet().value("http://ebay.com").name("Ebay"), + new ParameterSet().value("http://reddit.com").name("reddit") +diff --git a/ash/app_list/PRESUBMIT.py b/ash/app_list/PRESUBMIT.py +--- a/ash/app_list/PRESUBMIT.py ++++ b/ash/app_list/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for app_list. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +diff --git a/ash/app_list/views/assistant/privacy_info_view.cc b/ash/app_list/views/assistant/privacy_info_view.cc +--- a/ash/app_list/views/assistant/privacy_info_view.cc ++++ b/ash/app_list/views/assistant/privacy_info_view.cc +@@ -102,7 +102,7 @@ void PrivacyInfoView::ButtonPressed(views::Button* sender, + void PrivacyInfoView::StyledLabelLinkClicked(views::StyledLabel* label, + const gfx::Range& range, + int event_flags) { +- constexpr char url[] = "https://support.google.com/chromebook?p=assistant"; ++ constexpr char url[] = "https://support.9oo91e.qjz9zk/chromebook?p=assistant"; + view_delegate_->GetAssistantViewDelegate()->OpenUrlFromView( + ash::assistant::util::CreateLocalizedGURL(url)); + } +diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd +--- a/ash/ash_strings.grd ++++ b/ash/ash_strings.grd +@@ -416,7 +416,7 @@ This file contains the strings for ash. + + +- $1google.com has $2activated $3Fullscreen magnifier. ++ $19oo91e.qjz9zk has $2activated $3Fullscreen magnifier. + + +@@ -664,7 +664,7 @@ This file contains the strings for ash. + Supervised user + + +- Usage and history of this user can be reviewed by the manager ($1user@example.com) on chrome.com. ++ Usage and history of this user can be reviewed by the manager ($1user@example.com) on ch40me.qjz9zk. + + + Account managed by $1user@example.com +@@ -1822,7 +1822,7 @@ This file contains the strings for ash. + Multiple sign-in has been disabled + + +- An administrator has disallowed multiple sign-in for $1john@google.com. All users must sign out to continue. ++ An administrator has disallowed multiple sign-in for $1john@9oo91e.qjz9zk. All users must sign out to continue. + + + Sign out +@@ -2028,7 +2028,7 @@ This file contains the strings for ash. + Unlock device to perform the notification action + + +- Unlock device as $1example@gmail.com to perform the notification action ++ Unlock device as $1example@9ma1l.qjz9zk to perform the notification action + + + To see notifications on your lock screen, unlock to change the setting +diff --git a/ash/assistant/assistant_interaction_controller.cc b/ash/assistant/assistant_interaction_controller.cc +--- a/ash/assistant/assistant_interaction_controller.cc ++++ b/ash/assistant/assistant_interaction_controller.cc +@@ -52,8 +52,8 @@ constexpr char kAndroidIntentPrefix[] = "#Intent"; + chromeos::assistant::mojom::AssistantSuggestionPtr CreateSearchSuggestion( + const std::string& query) { + constexpr char kIconUrl[] = +- "https://www.gstatic.com/images/branding/product/2x/googleg_48dp.png"; +- constexpr char kSearchUrl[] = "https://www.google.com/search"; ++ "https://www.95tat1c.qjz9zk/images/branding/product/2x/googleg_48dp.png"; ++ constexpr char kSearchUrl[] = "https://www.9oo91e.qjz9zk/search"; + constexpr char kQueryParamKey[] = "q"; + + chromeos::assistant::mojom::AssistantSuggestionPtr suggestion = +diff --git a/ash/assistant/assistant_setup_controller.cc b/ash/assistant/assistant_setup_controller.cc +--- a/ash/assistant/assistant_setup_controller.cc ++++ b/ash/assistant/assistant_setup_controller.cc +@@ -17,7 +17,7 @@ + namespace { + + constexpr char kGSuiteAdministratorInstructionsUrl[] = +- "https://support.google.com/a/answer/6304876"; ++ "https://support.9oo91e.qjz9zk/a/answer/6304876"; + + } // namespace + +diff --git a/ash/assistant/util/deep_link_util.cc b/ash/assistant/util/deep_link_util.cc +--- a/ash/assistant/util/deep_link_util.cc ++++ b/ash/assistant/util/deep_link_util.cc +@@ -265,18 +265,18 @@ base::Optional GetAssistantUrl(DeepLinkType type, + switch (type) { + case DeepLinkType::kLists: + top_level_url = +- std::string("https://assistant.google.com/lists/mainview"); +- by_id_url = std::string("https://assistant.google.com/lists/list/"); ++ std::string("https://assistant.9oo91e.qjz9zk/lists/mainview"); ++ by_id_url = std::string("https://assistant.9oo91e.qjz9zk/lists/list/"); + break; + case DeepLinkType::kNotes: + top_level_url = std::string( +- "https://assistant.google.com/lists/mainview?note_tap=true"); +- by_id_url = std::string("https://assistant.google.com/lists/note/"); ++ "https://assistant.9oo91e.qjz9zk/lists/mainview?note_tap=true"); ++ by_id_url = std::string("https://assistant.9oo91e.qjz9zk/lists/note/"); + break; + case DeepLinkType::kReminders: + top_level_url = +- std::string("https://assistant.google.com/reminders/mainview"); +- by_id_url = std::string("https://assistant.google.com/reminders/id/"); ++ std::string("https://assistant.9oo91e.qjz9zk/reminders/mainview"); ++ by_id_url = std::string("https://assistant.9oo91e.qjz9zk/reminders/id/"); + break; + default: + NOTREACHED(); +@@ -316,7 +316,7 @@ base::Optional GetWebUrl( + DeepLinkType type, + const std::map& params) { + static constexpr char kAssistantSettingsWebUrl[] = +- "https://assistant.google.com/settings/mainpage"; ++ "https://assistant.9oo91e.qjz9zk/settings/mainpage"; + + if (!IsWebDeepLinkType(type, params)) + return base::nullopt; +diff --git a/ash/laser/laser_pointer_view.cc b/ash/laser/laser_pointer_view.cc +--- a/ash/laser/laser_pointer_view.cc ++++ b/ash/laser/laser_pointer_view.cc +@@ -59,7 +59,7 @@ float LinearInterpolate(float initial_value, + // tail(D), zero or more regular segments(C), one head(B) and a circle at the + // end(A). They are meant to fit perfectly with the previous and next segments, + // so that no whitespace/overlap is shown. +-// A more detailed version of this is located at https://goo.gl/qixdux. ++// A more detailed version of this is located at https://goo.gl.qjz9zk.qjz9zk/qixdux. + class LaserSegment { + public: + LaserSegment(const std::vector& previous_points, +diff --git a/ash/login/ui/login_user_menu_view.cc b/ash/login/ui/login_user_menu_view.cc +--- a/ash/login/ui/login_user_menu_view.cc ++++ b/ash/login/ui/login_user_menu_view.cc +@@ -19,7 +19,7 @@ + + namespace { + constexpr char kLegacySupervisedUserManagementDisplayURL[] = +- "www.chrome.com/manage"; ++ "www.ch40me.qjz9zk/manage"; + + // Spacing between the child view inside the bubble view. + constexpr int kBubbleBetweenChildSpacingDp = 6; +diff --git a/ash/public/cpp/app_list/app_list_features.cc b/ash/public/cpp/app_list/app_list_features.cc +--- a/ash/public/cpp/app_list/app_list_features.cc ++++ b/ash/public/cpp/app_list/app_list_features.cc +@@ -131,7 +131,7 @@ std::string AnswerServerUrl() { + base::GetFieldTrialParamValueByFeature(kEnableAnswerCard, "ServerUrl"); + if (!experiment_url.empty()) + return experiment_url; +- return "https://www.google.com/coac"; ++ return "https://www.9oo91e.qjz9zk/coac"; + } + + std::string AnswerServerQuerySuffix() { +diff --git a/ash/public/cpp/app_list/internal_app_id_constants.h b/ash/public/cpp/app_list/internal_app_id_constants.h +--- a/ash/public/cpp/app_list/internal_app_id_constants.h ++++ b/ash/public/cpp/app_list/internal_app_id_constants.h +@@ -30,7 +30,7 @@ constexpr char kInternalAppIdDiscover[] = "pjdncmlmjhcebmcacdddfacepcjmfaoo"; + + // Generated as + // web_app::GenerateAppIdFromURL(GURL( +-// "https://google.com/chromebook/whatsnew/embedded/")). ++// "https://9oo91e.qjz9zk/chromebook/whatsnew/embedded/")). + constexpr char kReleaseNotesAppId[] = "kddjchdmnnpakappplfnloipgcbioilo"; + + } // namespace ash +diff --git a/ash/resources/PRESUBMIT.py b/ash/resources/PRESUBMIT.py +--- a/ash/resources/PRESUBMIT.py ++++ b/ash/resources/PRESUBMIT.py +@@ -4,9 +4,9 @@ + + """Presubmit script for Chromium Ash resources. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools, and see +-https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/styleguide/web/web.md + for the rules we're checking against here. + """ + +diff --git a/ash/shell/content/client/shell_browser_main_parts.cc b/ash/shell/content/client/shell_browser_main_parts.cc +--- a/ash/shell/content/client/shell_browser_main_parts.cc ++++ b/ash/shell/content/client/shell_browser_main_parts.cc +@@ -139,7 +139,7 @@ void ShellBrowserMainParts::PreMainMessageLoopRun() { + base::Unretained(browser_context_.get()), nullptr), + base::BindRepeating(base::IgnoreResult(&EmbeddedBrowser::Create), + base::Unretained(browser_context_.get()), +- GURL("https://www.google.com"), base::nullopt)); ++ GURL("https://www.9oo91e.qjz9zk"), base::nullopt)); + } + } + +diff --git a/ash/shell/content/client/shell_new_window_delegate.cc b/ash/shell/content/client/shell_new_window_delegate.cc +--- a/ash/shell/content/client/shell_new_window_delegate.cc ++++ b/ash/shell/content/client/shell_new_window_delegate.cc +@@ -17,7 +17,7 @@ ShellNewWindowDelegate::~ShellNewWindowDelegate() = default; + void ShellNewWindowDelegate::NewTab() { + EmbeddedBrowser::Create( + ash::shell::ShellBrowserMainParts::GetBrowserContext(), +- GURL("https://www.google.com")); ++ GURL("https://www.9oo91e.qjz9zk")); + } + + void ShellNewWindowDelegate::NewTabWithUrl(const GURL& url, +@@ -29,7 +29,7 @@ void ShellNewWindowDelegate::NewTabWithUrl(const GURL& url, + void ShellNewWindowDelegate::NewWindow(bool incognito) { + EmbeddedBrowser::Create( + ash::shell::ShellBrowserMainParts::GetBrowserContext(), +- GURL("https://www.google.com")); ++ GURL("https://www.9oo91e.qjz9zk")); + } + + void ShellNewWindowDelegate::OpenFileManager() {} +diff --git a/ash/wm/screen_pinning_controller.h b/ash/wm/screen_pinning_controller.h +--- a/ash/wm/screen_pinning_controller.h ++++ b/ash/wm/screen_pinning_controller.h +@@ -28,7 +28,7 @@ class WindowUserData; + // interrupted by notifications. This could be used, for example, if you are + // developing an education app to support high stakes assessment requirements on + // Android, or a single-purpose or kiosk application." +-// https://developer.android.com/about/versions/android-5.0.html#ScreenPinning ++// https://developer.8n6r01d.qjz9zk/about/versions/android-5.0.html#ScreenPinning + // See also ArcKioskAppLauncher::CheckAndPinWindow(). + class ASH_EXPORT ScreenPinningController + : public WindowTreeHostManager::Observer { +diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc +--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc ++++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc +@@ -45,7 +45,7 @@ namespace { + // can snap in split view, and is not an ARC window. + // TODO(xdai): Make it work for ARC windows. (see + // https://crbug.com/922282 and +-// https://buganizer.corp.google.com/issues/123432223). ++// https://buganizer.corp.9oo91e.qjz9zk/issues/123432223). + bool IsCarryOverCandidateForSplitView( + const MruWindowTracker::WindowList& windows, + size_t i, +diff --git a/base/BUILD.gn b/base/BUILD.gn +--- a/base/BUILD.gn ++++ b/base/BUILD.gn +@@ -90,7 +90,7 @@ config("base_flags") { + # Ideally all product code (but no test code) in chrome would have these + # flags. But this isn't trivial so start with //base as a minimum + # requirement. +- # https://groups.google.com/a/chromium.org/d/topic/chromium-dev/B9Q5KTD7iCo/discussion ++ # https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/d/topic/chromium-dev/B9Q5KTD7iCo/discussion + "-Wglobal-constructors", + ] + } +@@ -2057,7 +2057,7 @@ jumbo_component("base") { + } + + # Build flags for Control Flow Integrity +-# https://www.chromium.org/developers/testing/control-flow-integrity ++# https://www.ch40m1um.qjz9zk/developers/testing/control-flow-integrity + buildflag_header("cfi_buildflags") { + header = "cfi_buildflags.h" + +diff --git a/base/PRESUBMIT.py b/base/PRESUBMIT.py +--- a/base/PRESUBMIT.py ++++ b/base/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Chromium presubmit script for src/base. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details on the presubmit API built into depot_tools. + """ + +@@ -25,7 +25,7 @@ def _CheckNoInterfacesInBase(input_api, output_api): + if len(files): + return [ output_api.PresubmitError( + 'Objective-C interfaces or categories are forbidden in libbase. ' + +- 'See http://groups.google.com/a/chromium.org/group/chromium-dev/' + ++ 'See http://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/group/chromium-dev/' + + 'browse_thread/thread/efb28c10435987fd', + files) ] + return [] +diff --git a/base/allocator/BUILD.gn b/base/allocator/BUILD.gn +--- a/base/allocator/BUILD.gn ++++ b/base/allocator/BUILD.gn +@@ -67,7 +67,7 @@ config("tcmalloc_flags") { + if (is_linux || is_android) { + # We enable all warnings by default, but upstream disables a few. + # Keep "-Wno-*" flags in sync with upstream by comparing against: +- # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am ++ # http://code.9oo91e.qjz9zk/p/google-perftools/source/browse/trunk/Makefile.am + cflags += [ + "-Wno-sign-compare", + "-Wno-unused-result", +diff --git a/base/allocator/partition_allocator/address_space_randomization.h b/base/allocator/partition_allocator/address_space_randomization.h +--- a/base/allocator/partition_allocator/address_space_randomization.h ++++ b/base/allocator/partition_allocator/address_space_randomization.h +@@ -64,7 +64,7 @@ constexpr uintptr_t AslrMask(uintptr_t bits) { + // 39-bit section of the virtual address space. + // + // This implementation adapted from +- // https://chromium-review.googlesource.com/c/v8/v8/+/557958. The difference ++ // https://chromium-review.9oo91esource.qjz9zk/c/v8/v8/+/557958. The difference + // is that here we clamp to 39 bits, not 32. + // + // TODO(crbug.com/738925): Remove this limitation if/when the macOS behavior +diff --git a/base/android/android_image_reader_abi.h b/base/android/android_image_reader_abi.h +--- a/base/android/android_image_reader_abi.h ++++ b/base/android/android_image_reader_abi.h +@@ -16,9 +16,9 @@ + // included in this ABI + // + // Please refer to the API documentation for details: +-// https://developer.android.com/ndk/reference/group/media (AIMage and ++// https://developer.8n6r01d.qjz9zk/ndk/reference/group/media (AIMage and + // AImageReader) +-// https://developer.android.com/ndk/reference/group/native-activity ++// https://developer.8n6r01d.qjz9zk/ndk/reference/group/native-activity + // (ANativeWindow) + + #include +diff --git a/base/android/java/src/org/chromium/base/ApplicationStatus.java b/base/android/java/src/org/chromium/base/ApplicationStatus.java +--- a/base/android/java/src/org/chromium/base/ApplicationStatus.java ++++ b/base/android/java/src/org/chromium/base/ApplicationStatus.java +@@ -406,7 +406,7 @@ public class ApplicationStatus { + *

+ * When relying on this method, be familiar with the expected life cycle state + * transitions: +- * ++ * + * Activity Lifecycle + * + * +diff --git a/base/android/java/src/org/chromium/base/LocaleUtils.java b/base/android/java/src/org/chromium/base/LocaleUtils.java +--- a/base/android/java/src/org/chromium/base/LocaleUtils.java ++++ b/base/android/java/src/org/chromium/base/LocaleUtils.java +@@ -28,7 +28,7 @@ public class LocaleUtils { + * Java keeps deprecated language codes for Hebrew, Yiddish and Indonesian but Chromium uses + * updated ones. Similarly, Android uses "tl" while Chromium uses "fil" for Tagalog/Filipino. + * So apply a mapping here. +- * See http://developer.android.com/reference/java/util/Locale.html ++ * See http://developer.8n6r01d.qjz9zk/reference/java/util/Locale.html + * @return a updated language code for Chromium with given language string. + */ + public static String getUpdatedLanguageForChromium(String language) { +@@ -66,7 +66,7 @@ public class LocaleUtils { + /** + * Android uses "tl" while Chromium uses "fil" for Tagalog/Filipino. + * So apply a mapping here. +- * See http://developer.android.com/reference/java/util/Locale.html ++ * See http://developer.8n6r01d.qjz9zk/reference/java/util/Locale.html + * @return a updated language code for Android with given language string. + */ + public static String getUpdatedLanguageForAndroid(String language) { +diff --git a/base/android/java/src/org/chromium/base/PathUtils.java b/base/android/java/src/org/chromium/base/PathUtils.java +--- a/base/android/java/src/org/chromium/base/PathUtils.java ++++ b/base/android/java/src/org/chromium/base/PathUtils.java +@@ -206,7 +206,7 @@ public abstract class PathUtils { + // TODO(crbug.com/508615): Temporarily allowing disk access until more permanent fix is in. + try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) { + if (BuildInfo.isAtLeastQ()) { +- // https://developer.android.com/preview/privacy/scoped-storage ++ // https://developer.8n6r01d.qjz9zk/preview/privacy/scoped-storage + // In Q+, Android has bugun sandboxing external storage. Chrome may not have + // permission to write to Environment.getExternalStoragePublicDirectory(). Instead + // using Context.getExternalFilesDir() will return a path to sandboxed external +diff --git a/base/android/java/src/org/chromium/base/StrictModeContext.java b/base/android/java/src/org/chromium/base/StrictModeContext.java +--- a/base/android/java/src/org/chromium/base/StrictModeContext.java ++++ b/base/android/java/src/org/chromium/base/StrictModeContext.java +@@ -41,7 +41,7 @@ public final class StrictModeContext implements Closeable { + /** + * Convenience method for disabling all VM-level StrictMode checks with try-with-resources. + * Includes everything listed here: +- * https://developer.android.com/reference/android/os/StrictMode.VmPolicy.Builder.html ++ * https://developer.8n6r01d.qjz9zk/reference/android/os/StrictMode.VmPolicy.Builder.html + */ + public static StrictModeContext allowAllVmPolicies() { + StrictMode.VmPolicy oldPolicy = StrictMode.getVmPolicy(); +diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java ++++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +@@ -417,7 +417,7 @@ public class LibraryLoader { + public static String makeLibraryPathInZipFile( + String library, boolean crazyPrefix, boolean is64Bit) { + // Determine the ABI string that Android uses to find native libraries. Values are described +- // in: https://developer.android.com/ndk/guides/abis.html ++ // in: https://developer.8n6r01d.qjz9zk/ndk/guides/abis.html + // The 'armeabi' is omitted here because it is not supported in Chrome/WebView, while Cronet + // and Cast load the native library via other paths. + String cpuAbi; +diff --git a/base/android/jni_generator/PRESUBMIT.py b/base/android/jni_generator/PRESUBMIT.py +--- a/base/android/jni_generator/PRESUBMIT.py ++++ b/base/android/jni_generator/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for android buildbot. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts for + details on the presubmit API built into depot_tools. + """ + +diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py +--- a/base/android/jni_generator/jni_generator.py ++++ b/base/android/jni_generator/jni_generator.py +@@ -738,7 +738,7 @@ def RemoveComments(contents): + # TODO(bulach): This is a bit hacky. It would be cleaner to use a real Java + # parser. Maybe we could ditch JNIFromJavaSource and just always use + # JNIFromJavaP; or maybe we could rewrite this script in Java and use APT. +- # http://code.google.com/p/chromium/issues/detail?id=138941 ++ # http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=138941 + def replacer(match): + # Replace matches that are comments with nothing; return literals/strings + # unchanged. +diff --git a/base/android/junit/src/org/chromium/base/PiiEliderTest.java b/base/android/junit/src/org/chromium/base/PiiEliderTest.java +--- a/base/android/junit/src/org/chromium/base/PiiEliderTest.java ++++ b/base/android/junit/src/org/chromium/base/PiiEliderTest.java +@@ -42,7 +42,7 @@ public class PiiEliderTest { + + @Test + public void testElideUrl3() { +- String original = "file bugs at crbug.com or code.google.com"; ++ String original = "file bugs at crbug.com or code.9oo91e.qjz9zk"; + String expected = "file bugs at HTTP://WEBADDRESS.ELIDED or HTTP://WEBADDRESS.ELIDED"; + assertEquals(expected, PiiElider.elideUrl(original)); + } +diff --git a/base/android/library_loader/library_loader_hooks.h b/base/android/library_loader/library_loader_hooks.h +--- a/base/android/library_loader/library_loader_hooks.h ++++ b/base/android/library_loader/library_loader_hooks.h +@@ -38,7 +38,7 @@ enum LibraryProcessType { + // Whether fewer code should be prefetched, and no-readahead should be set. + // Returns true on low-end devices, where this speeds up startup, and false + // elsewhere, where it slows it down. See +-// https://bugs.chromium.org/p/chromium/issues/detail?id=758566#c71 for details. ++// https://bugs.ch40m1um.qjz9zk/p/chromium/issues/detail?id=758566#c71 for details. + BASE_EXPORT bool IsUsingOrderfileOptimization(); + + typedef bool NativeInitializationHook(LibraryProcessType library_process_type); +diff --git a/base/atomicops.h b/base/atomicops.h +--- a/base/atomicops.h ++++ b/base/atomicops.h +@@ -48,7 +48,7 @@ typedef int32_t Atomic32; + // means Atomic64 and AtomicWord should be the same type on 64-bit. + #if defined(__ILP32__) || defined(OS_NACL) + // NaCl's intptr_t is not actually 64-bits on 64-bit! +-// http://code.google.com/p/nativeclient/issues/detail?id=1162 ++// http://code.9oo91e.qjz9zk/p/nativeclient/issues/detail?id=1162 + typedef int64_t Atomic64; + #else + typedef intptr_t Atomic64; +diff --git a/base/base_paths_win.cc b/base/base_paths_win.cc +--- a/base/base_paths_win.cc ++++ b/base/base_paths_win.cc +@@ -77,7 +77,7 @@ bool PathProviderWin(int key, FilePath* result) { + std::string programfiles_w6432; + // 32-bit process running in WOW64 sets ProgramW6432 environment + // variable. See +- // https://msdn.microsoft.com/library/windows/desktop/aa384274.aspx. ++ // https://msdn.m1cr050ft.qjz9zk/library/windows/desktop/aa384274.aspx. + if (!env->GetVar("ProgramW6432", &programfiles_w6432)) + return false; + // GetVar returns UTF8 - convert back to Wide. +@@ -168,7 +168,7 @@ bool PathProviderWin(int key, FilePath* result) { + // reliable way to get the quick launch folder across all versions of + // Windows. + // http://stackoverflow.com/questions/76080/how-do-you-reliably-get-the-quick- +- // http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx ++ // http://www.m1cr050ft.qjz9zk/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx + cur = cur.Append(FILE_PATH_LITERAL("Microsoft")) + .Append(FILE_PATH_LITERAL("Internet Explorer")) + .Append(FILE_PATH_LITERAL("Quick Launch")); +diff --git a/base/command_line.cc b/base/command_line.cc +--- a/base/command_line.cc ++++ b/base/command_line.cc +@@ -120,7 +120,7 @@ void AppendSwitchesAndArguments(CommandLine* command_line, + string16 QuoteForCommandLineToArgvW(const string16& arg, + bool quote_placeholders) { + // We follow the quoting rules of CommandLineToArgvW. +- // http://msdn.microsoft.com/en-us/library/17w5ykft.aspx ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/17w5ykft.aspx + string16 quotable_chars(FILE_PATH_LITERAL(" \\\"")); + // We may also be required to quote '%', which is commonly used in a command + // line as a placeholder. (It may be substituted for a string with spaces.) +diff --git a/base/compiler_specific.h b/base/compiler_specific.h +--- a/base/compiler_specific.h ++++ b/base/compiler_specific.h +@@ -16,13 +16,13 @@ + // Macros for suppressing and disabling warnings on MSVC. + // + // Warning numbers are enumerated at: +-// http://msdn.microsoft.com/en-us/library/8x5x43k7(VS.80).aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/8x5x43k7(VS.80).aspx + // + // The warning pragma: +-// http://msdn.microsoft.com/en-us/library/2c8f766e(VS.80).aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/2c8f766e(VS.80).aspx + // + // Using __pragma instead of #pragma inside macros: +-// http://msdn.microsoft.com/en-us/library/d9x1s805.aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/d9x1s805.aspx + + // MSVC_PUSH_DISABLE_WARNING pushes |n| onto a stack of warnings to be disabled. + // The warning remains disabled until popped by MSVC_POP_WARNING. +diff --git a/base/debug/debugger_posix.cc b/base/debug/debugger_posix.cc +--- a/base/debug/debugger_posix.cc ++++ b/base/debug/debugger_posix.cc +@@ -138,7 +138,7 @@ void VerifyDebugger() { + << "Detected lldb without sourcing //tools/lldb/lldbinit.py. lldb may " + "not be able to find debug symbols. Please see debug instructions for " + "using //tools/lldb/lldbinit.py:\n" +- "https://chromium.googlesource.com/chromium/src/+/master/docs/" ++ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/" + "lldbinit.md\n" + "To continue anyway, type 'continue' in lldb. To always skip this " + "check, define an environment variable CHROMIUM_LLDBINIT_SOURCED=1"; +@@ -220,7 +220,7 @@ void VerifyDebugger() { + << "Detected gdb without sourcing //tools/gdb/gdbinit. gdb may not be " + "able to find debug symbols, and pretty-printing of STL types may not " + "work. Please see debug instructions for using //tools/gdb/gdbinit:\n" +- "https://chromium.googlesource.com/chromium/src/+/master/docs/" ++ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/" + "gdbinit.md\n" + "To continue anyway, type 'continue' in gdb. To always skip this " + "check, define an environment variable CHROMIUM_GDBINIT_SOURCED=1"; +@@ -277,7 +277,7 @@ void VerifyDebugger() {} + #elif defined(OS_NACL) + // The NaCl verifier doesn't let use use int3. For now, we call abort(). We + // should ask for advice from some NaCl experts about the optimum thing here. +-// http://code.google.com/p/nativeclient/issues/detail?id=645 ++// http://code.9oo91e.qjz9zk/p/nativeclient/issues/detail?id=645 + #define DEBUG_BREAK() abort() + #elif !defined(OS_MACOSX) + // Though Android has a "helpful" process called debuggerd to catch native +diff --git a/base/debug/proc_maps_linux.cc b/base/debug/proc_maps_linux.cc +--- a/base/debug/proc_maps_linux.cc ++++ b/base/debug/proc_maps_linux.cc +@@ -20,7 +20,7 @@ + // In 32-bit mode, Bionic's inttypes.h defines PRI/SCNxPTR as an + // unsigned long int, which is incompatible with Bionic's stdint.h + // defining uintptr_t as an unsigned int: +-// https://code.google.com/p/android/issues/detail?id=57218 ++// https://code.9oo91e.qjz9zk/p/android/issues/detail?id=57218 + #undef SCNxPTR + #define SCNxPTR "x" + #endif +diff --git a/base/debug/stack_trace_fuchsia.cc b/base/debug/stack_trace_fuchsia.cc +--- a/base/debug/stack_trace_fuchsia.cc ++++ b/base/debug/stack_trace_fuchsia.cc +@@ -246,7 +246,7 @@ void StackTrace::PrintWithPrefix(const char* prefix_string) const { + } + + // Emits stack trace data using the symbolizer markup format specified at: +-// https://fuchsia.googlesource.com/zircon/+/master/docs/symbolizer_markup.md ++// https://fuchsia.9oo91esource.qjz9zk/zircon/+/master/docs/symbolizer_markup.md + void StackTrace::OutputToStreamWithPrefix(std::ostream* os, + const char* prefix_string) const { + SymbolMap map; +diff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc +--- a/base/debug/stack_trace_posix.cc ++++ b/base/debug/stack_trace_posix.cc +@@ -338,7 +338,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* info, void* void_context) { + "CFI: Most likely a control flow integrity violation; for more " + "information see:\n"); + PrintToStderr( +- "https://www.chromium.org/developers/testing/control-flow-integrity\n"); ++ "https://www.ch40m1um.qjz9zk/developers/testing/control-flow-integrity\n"); + } + #endif // BUILDFLAG(CFI_ENFORCEMENT_TRAP) + +@@ -425,7 +425,7 @@ void StackDumpSignalHandler(int signal, siginfo_t* info, void* void_context) { + #else + // Non-Mac OSes should probably reraise the signal as well, but the Linux + // sandbox tests break on CrOS devices. +- // https://code.google.com/p/chromium/issues/detail?id=551681 ++ // https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=551681 + PrintToStderr("Calling _exit(1). Core file will not be generated.\n"); + _exit(1); + #endif // defined(OS_MACOSX) && !defined(OS_IOS) +diff --git a/base/debug/stack_trace_win.cc b/base/debug/stack_trace_win.cc +--- a/base/debug/stack_trace_win.cc ++++ b/base/debug/stack_trace_win.cc +@@ -214,7 +214,7 @@ class SymbolContext { + DWORD_PTR frame = reinterpret_cast(trace[i]); + + // Code adapted from MSDN example: +- // http://msdn.microsoft.com/en-us/library/ms680578(VS.85).aspx ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/ms680578(VS.85).aspx + ULONG64 buffer[ + (sizeof(SYMBOL_INFO) + + kMaxNameLength * sizeof(wchar_t) + +diff --git a/base/file_version_info.h b/base/file_version_info.h +--- a/base/file_version_info.h ++++ b/base/file_version_info.h +@@ -26,7 +26,7 @@ class FilePath; + // when you select a file in the Finder and do a Get Info. + // + // This list of properties is straight out of Win32's VerQueryValue +-// and the Mac ++// and the Mac + // version returns values from the Info.plist as appropriate. TODO(avi): make + // this a less-obvious Windows-ism. + +diff --git a/base/files/file_enumerator_posix.cc b/base/files/file_enumerator_posix.cc +--- a/base/files/file_enumerator_posix.cc ++++ b/base/files/file_enumerator_posix.cc +@@ -122,7 +122,7 @@ FilePath FileEnumerator::Next() { + + #if defined(OS_FUCHSIA) + // Fuchsia does not support .. on the file system server side, see +- // https://fuchsia.googlesource.com/docs/+/master/dotdot.md and ++ // https://fuchsia.9oo91esource.qjz9zk/docs/+/master/dotdot.md and + // https://crbug.com/735540. However, for UI purposes, having the parent + // directory show up in directory listings makes sense, so we add it here to + // match the expectation on other operating systems. In cases where this +diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc +--- a/base/files/file_util_posix.cc ++++ b/base/files/file_util_posix.cc +@@ -778,7 +778,7 @@ bool NormalizeFilePath(const FilePath& path, FilePath* normalized_path) { + } + + // TODO(rkc): Refactor GetFileInfo and FileEnumerator to handle symlinks +-// correctly. http://code.google.com/p/chromium-os/issues/detail?id=15948 ++// correctly. http://code.9oo91e.qjz9zk/p/chromium-os/issues/detail?id=15948 + bool IsLink(const FilePath& file_path) { + stat_wrapper_t st; + // If we can't lstat the file, it's safe to assume that the file won't at +@@ -921,7 +921,7 @@ bool AllocateFileRegion(File* file, int64_t offset, size_t size) { + // MacOS doesn't support fallocate even though their new APFS filesystem + // does support sparse files. It does, however, have the functionality + // available via fcntl. +- // See also: https://openradar.appspot.com/32720223 ++ // See also: https://openradar.8pp2p8t.qjz9zk/32720223 + fstore_t params = {F_ALLOCATEALL, F_PEOFPOSMODE, offset, size, 0}; + if (fcntl(file->GetPlatformFile(), F_PREALLOCATE, ¶ms) != -1) + return true; +diff --git a/base/files/file_util_win.cc b/base/files/file_util_win.cc +--- a/base/files/file_util_win.cc ++++ b/base/files/file_util_win.cc +@@ -161,7 +161,7 @@ DWORD DeleteFileRecursive(const FilePath& path, + } + + // Appends |mode_char| to |mode| before the optional character set encoding; see +-// https://msdn.microsoft.com/library/yeby3zcb.aspx for details. ++// https://msdn.m1cr050ft.qjz9zk/library/yeby3zcb.aspx for details. + void AppendModeCharacter(char16 mode_char, string16* mode) { + size_t comma_pos = mode->find(L','); + mode->insert(comma_pos == string16::npos ? mode->length() : comma_pos, 1, +@@ -520,7 +520,7 @@ FILE* CreateAndOpenTemporaryFileInDir(const FilePath& dir, FilePath* path) { + } + // Open file in binary mode, to avoid problems with fwrite. On Windows + // it replaces \n's with \r\n's, which may surprise you. +- // Reference: http://msdn.microsoft.com/en-us/library/h9t88zwz(VS.71).aspx ++ // Reference: http://msdn.m1cr050ft.qjz9zk/en-us/library/h9t88zwz(VS.71).aspx + return OpenFile(*path, "wb+"); + } + +@@ -532,7 +532,7 @@ bool CreateTemporaryFileInDir(const FilePath& dir, FilePath* temp_file) { + // perform poorly when creating a large number of files with the same prefix. + // In such cases, it is recommended that you construct unique file names based + // on GUIDs." +- // https://msdn.microsoft.com/library/windows/desktop/aa364991.aspx ++ // https://msdn.m1cr050ft.qjz9zk/library/windows/desktop/aa364991.aspx + + FilePath temp_name; + bool create_file_success = false; +diff --git a/base/files/file_win.cc b/base/files/file_win.cc +--- a/base/files/file_win.cc ++++ b/base/files/file_win.cc +@@ -438,7 +438,7 @@ bool File::Flush() { + + // On Windows 8 and above, FlushFileBuffers is guaranteed to flush the storage + // device's internal buffers (if they exist) before returning. +- // https://blogs.msdn.microsoft.com/oldnewthing/20170510-00/?p=95505 ++ // https://blogs.msdn.m1cr050ft.qjz9zk/oldnewthing/20170510-00/?p=95505 + return ::FlushFileBuffers(file_.Get()) != FALSE; + } + +diff --git a/base/hash/hash.cc b/base/hash/hash.cc +--- a/base/hash/hash.cc ++++ b/base/hash/hash.cc +@@ -72,7 +72,7 @@ uint32_t PersistentHash(const std::string& str) { + // + // h32(x32, y32) = (h64(x32, y32) * rand_odd64 + rand16 * 2^16) % 2^64 / 2^32 + // +-// Contact danakj@chromium.org for any questions. ++// Contact danakj@ch40m1um.qjz9zk for any questions. + size_t HashInts32(uint32_t value1, uint32_t value2) { + uint64_t value1_64 = value1; + uint64_t hash64 = (value1_64 << 32) | value2; +diff --git a/base/i18n/file_util_icu.cc b/base/i18n/file_util_icu.cc +--- a/base/i18n/file_util_icu.cc ++++ b/base/i18n/file_util_icu.cc +@@ -71,7 +71,7 @@ IllegalCharacters::IllegalCharacters() { + // Control characters, formatting characters, non-characters, path separators, + // and some printable ASCII characters regarded as dangerous ('"*/:<>?\\'). + // See http://blogs.msdn.com/michkap/archive/2006/11/03/941420.aspx +- // and http://msdn2.microsoft.com/en-us/library/Aa365247.aspx ++ // and http://msdn2.m1cr050ft.qjz9zk/en-us/library/Aa365247.aspx + // Note that code points in the "Other, Format" (Cf) category are ignored on + // HFS+ despite the ZERO_WIDTH_JOINER and ZERO_WIDTH_NON-JOINER being + // legitimate in Arabic and some S/SE Asian scripts. In addition tilde (~) is +diff --git a/base/ios/device_util.mm b/base/ios/device_util.mm +--- a/base/ios/device_util.mm ++++ b/base/ios/device_util.mm +@@ -41,7 +41,7 @@ NSString* GenerateClientId() { + NSString* client_id = [defaults stringForKey:kLegacyClientIdPreferenceKey]; + + // Some iOS6 devices return a buggy identifierForVendor: +- // http://openradar.appspot.com/12377282. If this is the case, revert to ++ // http://openradar.8pp2p8t.qjz9zk/12377282. If this is the case, revert to + // generating a new one. + if (!client_id || [client_id isEqualToString:kZeroUUID]) { + client_id = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; +diff --git a/base/lazy_instance_helpers.h b/base/lazy_instance_helpers.h +--- a/base/lazy_instance_helpers.h ++++ b/base/lazy_instance_helpers.h +@@ -51,8 +51,8 @@ namespace subtle { + // chrome.dll) because linker is able to fold these for multiple Types but + // couldn't with the more advanced CreatorFunc template type which in turn + // improves code locality (and application startup) -- ref. +-// https://chromium-review.googlesource.com/c/chromium/src/+/530984/5/base/lazy_instance.h#140, +-// worsened by https://chromium-review.googlesource.com/c/chromium/src/+/868013 ++// https://chromium-review.9oo91esource.qjz9zk/c/chromium/src/+/530984/5/base/lazy_instance.h#140, ++// worsened by https://chromium-review.9oo91esource.qjz9zk/c/chromium/src/+/868013 + // and caught then as https://crbug.com/804034. + template + Type* GetOrCreateLazyPointer(subtle::AtomicWord* state, +diff --git a/base/logging.cc b/base/logging.cc +--- a/base/logging.cc ++++ b/base/logging.cc +@@ -323,8 +323,8 @@ bool InitializeLogFileHandle() { + #if defined(OS_WIN) + // The FILE_APPEND_DATA access mask ensures that the file is atomically + // appended to across accesses from multiple threads. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa364399(v=vs.85).aspx +- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa364399(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa363858(v=vs.85).aspx + g_log_file = CreateFile(base::as_wcstr(*g_log_file_name), FILE_APPEND_DATA, + FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr); +diff --git a/base/mac/close_nocancel.cc b/base/mac/close_nocancel.cc +--- a/base/mac/close_nocancel.cc ++++ b/base/mac/close_nocancel.cc +@@ -3,7 +3,7 @@ + // found in the LICENSE file. + + // http://crbug.com/269623 +-// http://openradar.appspot.com/14999594 ++// http://openradar.8pp2p8t.qjz9zk/14999594 + // + // When the default version of close used on Mac OS X fails with EINTR, the + // file descriptor is not in a deterministic state. It may have been closed, +diff --git a/base/memory/aligned_memory.cc b/base/memory/aligned_memory.cc +--- a/base/memory/aligned_memory.cc ++++ b/base/memory/aligned_memory.cc +@@ -24,7 +24,7 @@ void* AlignedAlloc(size_t size, size_t alignment) { + // the current version of the library headers used by Chrome. Luckily, + // memalign() on Android returns pointers which can safely be used with + // free(), so we can use it instead. Issue filed to document this: +-// http://code.google.com/p/android/issues/detail?id=35391 ++// http://code.9oo91e.qjz9zk/p/android/issues/detail?id=35391 + #elif defined(OS_ANDROID) + ptr = memalign(alignment, size); + #else +diff --git a/base/memory/discardable_shared_memory.cc b/base/memory/discardable_shared_memory.cc +--- a/base/memory/discardable_shared_memory.cc ++++ b/base/memory/discardable_shared_memory.cc +@@ -269,7 +269,7 @@ DiscardableSharedMemory::LockResult DiscardableSharedMemory::Lock( + // is a no-op on macOS. + // + // For more information, see +- // https://bugs.chromium.org/p/chromium/issues/detail?id=823915. ++ // https://bugs.ch40m1um.qjz9zk/p/chromium/issues/detail?id=823915. + madvise(static_cast(shared_memory_mapping_.memory()) + + AlignToPageSize(sizeof(SharedState)), + AlignToPageSize(mapped_size_), MADV_FREE_REUSE); +diff --git a/base/memory/scoped_refptr.h b/base/memory/scoped_refptr.h +--- a/base/memory/scoped_refptr.h ++++ b/base/memory/scoped_refptr.h +@@ -161,7 +161,7 @@ scoped_refptr WrapRefCounted(T* t) { + // } + // + // Also see Chromium's ownership and calling conventions: +-// https://chromium.googlesource.com/chromium/src/+/lkgr/styleguide/c++/c++.md#object-ownership-and-calling-conventions ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/lkgr/styleguide/c++/c++.md#object-ownership-and-calling-conventions + // Specifically: + // If the function (at least sometimes) takes a ref on a refcounted object, + // declare the param as scoped_refptr. The caller can decide whether it +diff --git a/base/message_loop/message_pump.h b/base/message_loop/message_pump.h +--- a/base/message_loop/message_pump.h ++++ b/base/message_loop/message_pump.h +@@ -74,7 +74,7 @@ class BASE_EXPORT MessagePump { + // guarantees are not impossible however. DoIdleWork() will not be called so + // long as this returns a NextWorkInfo which is_immediate(). See design doc + // for details : +- // https://docs.google.com/document/d/1no1JMli6F1r8gTF9KDIOvoWkUUZcXDktPf4A1IXYc3M/edit# ++ // https://docs.9oo91e.qjz9zk/document/d/1no1JMli6F1r8gTF9KDIOvoWkUUZcXDktPf4A1IXYc3M/edit# + virtual NextWorkInfo DoSomeWork() = 0; + + // Called from within Run in response to ScheduleWork or when the message +diff --git a/base/message_loop/message_pump_win.cc b/base/message_loop/message_pump_win.cc +--- a/base/message_loop/message_pump_win.cc ++++ b/base/message_loop/message_pump_win.cc +@@ -133,7 +133,7 @@ void MessagePumpForUI::ScheduleDelayedWork(const TimeTicks& delayed_work_time) { + // HandleWorkMessage() will be invoked when the system picks up kMsgHaveWork + // and it will ScheduleNativeTimer() if it's out of immediate work. However, + // in that alternate scenario : it's possible for a Windows native task (e.g. +- // https://docs.microsoft.com/en-us/windows/desktop/winmsg/using-hooks) to ++ // https://docs.m1cr050ft.qjz9zk/en-us/windows/desktop/winmsg/using-hooks) to + // wake the native nested loop and PostDelayedTask() to the current thread + // from it. This is the only case where we must install/adjust the native + // timer from ScheduleDelayedWork() because if we don't, the native loop will +@@ -516,7 +516,7 @@ bool MessagePumpForUI::ProcessPumpReplacementMessage() { + ::PostQuitMessage(static_cast(msg.wParam)); + // Note: we *must not* ScheduleWork() here as WM_QUIT is a low-priority + // message on Windows (it is only returned by ::PeekMessage() when idle) : +- // https://blogs.msdn.microsoft.com/oldnewthing/20051104-33/?p=33453. As ++ // https://blogs.msdn.m1cr050ft.qjz9zk/oldnewthing/20051104-33/?p=33453. As + // such posting a kMsgHaveWork message via ScheduleWork() would cause an + // infinite loop (kMsgHaveWork message handled first means we end up here + // again and repost WM_QUIT+ScheduleWork() again, etc.). Not leaving a +diff --git a/base/metrics/field_trial.h b/base/metrics/field_trial.h +--- a/base/metrics/field_trial.h ++++ b/base/metrics/field_trial.h +@@ -191,7 +191,7 @@ class BASE_EXPORT FieldTrial : public RefCounted { + // at any time after initialization (should not be interleaved with + // AppendGroup calls). Once disabled, there is no way to re-enable a + // trial. +- // TODO(mad): http://code.google.com/p/chromium/issues/detail?id=121446 ++ // TODO(mad): http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=121446 + // This doesn't properly reset to Default when a group was forced. + void Disable(); + +diff --git a/base/metrics/histogram_functions.h b/base/metrics/histogram_functions.h +--- a/base/metrics/histogram_functions.h ++++ b/base/metrics/histogram_functions.h +@@ -13,7 +13,7 @@ + // + // For best practices on deciding when to emit to a histogram and what form + // the histogram should take, see +-// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md + + // Functions for recording UMA histograms. These can be used for cases + // when the histogram name is generated at runtime. The functionality is +diff --git a/base/metrics/histogram_macros.h b/base/metrics/histogram_macros.h +--- a/base/metrics/histogram_macros.h ++++ b/base/metrics/histogram_macros.h +@@ -16,7 +16,7 @@ + // + // For best practices on deciding when to emit to a histogram and what form + // the histogram should take, see +-// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md + + // TODO(rkaplow): Link to proper documentation on metric creation once we have + // it in a good state. +diff --git a/base/metrics/user_metrics.h b/base/metrics/user_metrics.h +--- a/base/metrics/user_metrics.h ++++ b/base/metrics/user_metrics.h +@@ -18,7 +18,7 @@ namespace base { + // the user metrics system. + + // For best practices on deciding when to emit a user action, see +-// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/actions/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/HEAD/tools/metrics/actions/README.md + + // Record that the user performed an action. + // This function must be called after the task runner has been set with +diff --git a/base/native_library_win.cc b/base/native_library_win.cc +--- a/base/native_library_win.cc ++++ b/base/native_library_win.cc +@@ -57,7 +57,7 @@ bool AreSearchFlagsAvailable() { + // GetProcAddress to get the address of the AddDllDirectory, + // RemoveDllDirectory, or SetDefaultDllDirectories function. If GetProcAddress + // succeeds, the LOAD_LIBRARY_SEARCH_* flags can be used with LoadLibraryEx. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms684179(v=vs.85).aspx + // The LOAD_LIBRARY_SEARCH_* flags are used in the LoadNativeLibraryHelper + // method. + static const auto add_dll_dir_func = +diff --git a/base/optional.h b/base/optional.h +--- a/base/optional.h ++++ b/base/optional.h +@@ -392,7 +392,7 @@ using RemoveCvRefT = std::remove_cv_t>; + // which means even if the base class is empty struct, it still consumes one + // byte for its body. __declspec(empty_bases) enables the optimization. + // cf) +-// https://blogs.msdn.microsoft.com/vcblog/2016/03/30/optimizing-the-layout-of-empty-base-classes-in-vs2015-update-2-3/ ++// https://blogs.msdn.m1cr050ft.qjz9zk/vcblog/2016/03/30/optimizing-the-layout-of-empty-base-classes-in-vs2015-update-2-3/ + #ifdef OS_WIN + #define OPTIONAL_DECLSPEC_EMPTY_BASES __declspec(empty_bases) + #else +@@ -403,7 +403,7 @@ using RemoveCvRefT = std::remove_cv_t>; + // std::optional documentation: + // http://en.cppreference.com/w/cpp/utility/optional + // Chromium documentation: +-// https://chromium.googlesource.com/chromium/src/+/master/docs/optional.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/optional.md + // + // These are the differences between the specification and the implementation: + // - Constructors do not use 'constexpr' as it is a C++14 extension. +diff --git a/base/process/launch.h b/base/process/launch.h +--- a/base/process/launch.h ++++ b/base/process/launch.h +@@ -96,7 +96,7 @@ struct BASE_EXPORT LaunchOptions { + bool feedback_cursor_off = false; + + // Windows can inherit handles when it launches child processes. +- // See https://blogs.msdn.microsoft.com/oldnewthing/20111216-00/?p=8873 ++ // See https://blogs.msdn.m1cr050ft.qjz9zk/oldnewthing/20111216-00/?p=8873 + // for a good overview of Windows handle inheritance. + // + // Implementation note: it might be nice to implement in terms of +@@ -149,7 +149,7 @@ struct BASE_EXPORT LaunchOptions { + // The handles must be inheritable. Pseudo handles are used when stdout and + // stderr redirect to the console. In that case, GetFileType() will return + // FILE_TYPE_CHAR and they're automatically inherited by child processes. See +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms682075.aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms682075.aspx + // Otherwise, the caller must ensure that the |inherit_mode| and/or + // |handles_to_inherit| set so that the handles are inherited. + HANDLE stdin_handle = nullptr; +diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc +--- a/base/process/launch_posix.cc ++++ b/base/process/launch_posix.cc +@@ -99,7 +99,7 @@ sigset_t SetSignalMask(const sigset_t& new_sigmask) { + #if defined(OS_ANDROID) + // POSIX says pthread_sigmask() must be used in multi-threaded processes, + // but Android's pthread_sigmask() was broken until 4.1: +- // https://code.google.com/p/android/issues/detail?id=15337 ++ // https://code.9oo91e.qjz9zk/p/android/issues/detail?id=15337 + // http://stackoverflow.com/questions/13777109/pthread-sigmask-on-android-not-working + RAW_CHECK(sigprocmask(SIG_SETMASK, &new_sigmask, &old_sigmask) == 0); + #else +diff --git a/base/process/memory.h b/base/process/memory.h +--- a/base/process/memory.h ++++ b/base/process/memory.h +@@ -44,7 +44,7 @@ BASE_EXPORT bool AdjustOOMScore(ProcessId process, int score); + namespace win { + + // Custom Windows exception code chosen to indicate an out of memory error. +-// See https://msdn.microsoft.com/en-us/library/het71c37.aspx. ++// See https://msdn.m1cr050ft.qjz9zk/en-us/library/het71c37.aspx. + // "To make sure that you do not define a code that conflicts with an existing + // exception code" ... "The resulting error code should therefore have the + // highest four bits set to hexadecimal E." +diff --git a/base/process/memory_win.cc b/base/process/memory_win.cc +--- a/base/process/memory_win.cc ++++ b/base/process/memory_win.cc +@@ -46,7 +46,7 @@ namespace { + NOINLINE int OnNoMemory(size_t size) { + // Kill the process. This is important for security since most of code + // does not check the result of memory allocation. +- // https://msdn.microsoft.com/en-us/library/het71c37.aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/het71c37.aspx + // Pass the size of the failed request in an exception argument. + ULONG_PTR exception_args[] = {size}; + ::RaiseException(win::kOomExceptionCode, EXCEPTION_NONCONTINUABLE, +diff --git a/base/process/process.h b/base/process/process.h +--- a/base/process/process.h ++++ b/base/process/process.h +@@ -104,7 +104,7 @@ class BASE_EXPORT Process { + // uniquely identify a process. + // + // Not available on Android because /proc/stat/ cannot be accessed on O+. +- // https://issuetracker.google.com/issues/37140047 ++ // https://issuetracker.9oo91e.qjz9zk/issues/37140047 + Time CreationTime() const; + #endif // !defined(OS_ANDROID) + +diff --git a/base/process/process_metrics.h b/base/process/process_metrics.h +--- a/base/process/process_metrics.h ++++ b/base/process/process_metrics.h +@@ -69,7 +69,7 @@ BASE_EXPORT int64_t TimeValToMicroseconds(const struct timeval& tv); + // To obtain consistent memory metrics, use the memory_instrumentation service. + // + // For further documentation on memory, see +-// https://chromium.googlesource.com/chromium/src/+/HEAD/docs/README.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/docs/README.md + class BASE_EXPORT ProcessMetrics { + public: + ~ProcessMetrics(); +diff --git a/base/profiler/metadata_recorder.h b/base/profiler/metadata_recorder.h +--- a/base/profiler/metadata_recorder.h ++++ b/base/profiler/metadata_recorder.h +@@ -243,7 +243,7 @@ class BASE_EXPORT MetadataRecorder { + // otherwise cause mismatches between metadata name hashes and values. + // + // For the rationale behind this design (along with others considered), see +- // https://docs.google.com/document/d/18shLhVwuFbLl_jKZxCmOfRB98FmNHdKl0yZZZ3aEO4U/edit#. ++ // https://docs.9oo91e.qjz9zk/document/d/18shLhVwuFbLl_jKZxCmOfRB98FmNHdKl0yZZZ3aEO4U/edit#. + std::array items_; + + // The number of item slots used in the metadata map. +diff --git a/base/rand_util_win.cc b/base/rand_util_win.cc +--- a/base/rand_util_win.cc ++++ b/base/rand_util_win.cc +@@ -10,7 +10,7 @@ + + // #define needed to link in RtlGenRandom(), a.k.a. SystemFunction036. See the + // "Community Additions" comment on MSDN here: +-// http://msdn.microsoft.com/en-us/library/windows/desktop/aa387694.aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa387694.aspx + #define SystemFunction036 NTAPI SystemFunction036 + #include + #undef SystemFunction036 +diff --git a/base/synchronization/lock.h b/base/synchronization/lock.h +--- a/base/synchronization/lock.h ++++ b/base/synchronization/lock.h +@@ -72,7 +72,7 @@ class LOCKABLE BASE_EXPORT Lock { + #if defined(OS_WIN) + // Windows mitigates priority inversion by randomly boosting the priority of + // ready threads. +- // https://msdn.microsoft.com/library/windows/desktop/ms684831.aspx ++ // https://msdn.m1cr050ft.qjz9zk/library/windows/desktop/ms684831.aspx + return true; + #elif defined(OS_POSIX) || defined(OS_FUCHSIA) + // POSIX mitigates priority inversion by setting the priority of a thread +diff --git a/base/system/sys_info.h b/base/system/sys_info.h +--- a/base/system/sys_info.h ++++ b/base/system/sys_info.h +@@ -143,7 +143,7 @@ class BASE_EXPORT SysInfo { + // Chrome behave differently for different Chrome OS devices, either directly + // check for the hardware feature that you care about (preferred) or add a + // command-line flag to Chrome and pass it from session_manager (based on +- // whether a USE flag is set or not). See https://goo.gl/BbBkzg for more ++ // whether a USE flag is set or not). See https://goo.gl.qjz9zk.qjz9zk/BbBkzg for more + // details. + static std::string GetLsbReleaseBoard(); + +diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc +--- a/base/task/sequence_manager/sequence_manager_impl.cc ++++ b/base/task/sequence_manager/sequence_manager_impl.cc +@@ -1163,7 +1163,7 @@ void SequenceManagerImpl::RecordCrashKeys(const PendingTask& pending_task) { + // this. + // + // See +- // https://chromium.googlesource.com/chromium/src/+/master/docs/debugging_with_crash_keys.md ++ // https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/debugging_with_crash_keys.md + // for instructions for symbolizing these crash keys. + // + // TODO(skyostil): Find a way to extract the destination function address +diff --git a/base/task/thread_pool/thread_group_native_win.h b/base/task/thread_pool/thread_group_native_win.h +--- a/base/task/thread_pool/thread_group_native_win.h ++++ b/base/task/thread_pool/thread_group_native_win.h +@@ -16,14 +16,14 @@ namespace internal { + // A ThreadGroup implementation backed by the Windows Thread Pool API. + // + // Windows Thread Pool API official documentation: +-// https://msdn.microsoft.com/en-us/library/windows/desktop/ms686766(v=vs.85).aspx ++// https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms686766(v=vs.85).aspx + // + // Blog posts on the Windows Thread Pool API: +-// https://msdn.microsoft.com/magazine/hh335066.aspx +-// https://msdn.microsoft.com/magazine/hh394144.aspx +-// https://msdn.microsoft.com/magazine/hh456398.aspx +-// https://msdn.microsoft.com/magazine/hh547107.aspx +-// https://msdn.microsoft.com/magazine/hh580731.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh335066.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh394144.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh456398.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh547107.aspx ++// https://msdn.m1cr050ft.qjz9zk/magazine/hh580731.aspx + class BASE_EXPORT ThreadGroupNativeWin : public ThreadGroupNative { + public: + ThreadGroupNativeWin(TrackedRef task_tracker, +diff --git a/base/third_party/cityhash/city.h b/base/third_party/cityhash/city.h +--- a/base/third_party/cityhash/city.h ++++ b/base/third_party/cityhash/city.h +@@ -20,7 +20,7 @@ + // + // CityHash, by Geoff Pike and Jyrki Alakuijala + // +-// http://code.google.com/p/cityhash/ ++// http://code.9oo91e.qjz9zk/p/cityhash/ + // + // This file provides a few functions for hashing strings. All of them are + // high-quality functions in the sense that they pass standard tests such +diff --git a/base/third_party/dynamic_annotations/dynamic_annotations.h b/base/third_party/dynamic_annotations/dynamic_annotations.h +--- a/base/third_party/dynamic_annotations/dynamic_annotations.h ++++ b/base/third_party/dynamic_annotations/dynamic_annotations.h +@@ -38,7 +38,7 @@ + Actual implementation of these macros may differ depending on the + dynamic analysis tool being used. + +- See http://code.google.com/p/data-race-test/ for more information. ++ See http://code.9oo91e.qjz9zk/p/data-race-test/ for more information. + + This file supports the following dynamic analysis tools: + - None (DYNAMIC_ANNOTATIONS_ENABLED is not defined or zero). +@@ -170,7 +170,7 @@ + of the mutex's critical sections individually using the annotations above. + This annotation makes sense only for hybrid race detectors. For pure + happens-before detectors this is a no-op. For more details see +- http://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */ ++ http://code.9oo91e.qjz9zk/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */ + #define ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) \ + DYNAMIC_ANNOTATIONS_NAME(AnnotateMutexIsUsedAsCondVar)(__FILE__, __LINE__, \ + mu) +diff --git a/base/third_party/libevent/evdns.c b/base/third_party/libevent/evdns.c +--- a/base/third_party/libevent/evdns.c ++++ b/base/third_party/libevent/evdns.c +@@ -2006,7 +2006,7 @@ nameserver_send_probe(struct nameserver *const ns) { + + log(EVDNS_LOG_DEBUG, "Sending probe to %s", debug_ntoa(ns->address)); + +- req = request_new(TYPE_A, "www.google.com", DNS_QUERY_NO_SEARCH, nameserver_probe_callback, ns); ++ req = request_new(TYPE_A, "www.9oo91e.qjz9zk", DNS_QUERY_NO_SEARCH, nameserver_probe_callback, ns); + if (!req) return; + /* we force this into the inflight queue no matter what */ + request_trans_id_set(req, transaction_id_pick()); +diff --git a/base/third_party/libevent/evdns.h b/base/third_party/libevent/evdns.h +--- a/base/third_party/libevent/evdns.h ++++ b/base/third_party/libevent/evdns.h +@@ -152,7 +152,7 @@ + * + * If a nameserver loses too many requests it is considered down and we + * try not to use it. After a while we send a probe to that nameserver +- * (a lookup for google.com) and, if it replies, we consider it working ++ * (a lookup for 9oo91e.qjz9zk) and, if it replies, we consider it working + * again. If the nameserver fails a probe we wait longer to try again + * with the next probe. + */ +diff --git a/base/third_party/libevent/evport.c b/base/third_party/libevent/evport.c +--- a/base/third_party/libevent/evport.c ++++ b/base/third_party/libevent/evport.c +@@ -1,5 +1,5 @@ + /* +- * Submitted by David Pacheco (dp.spambait@gmail.com) ++ * Submitted by David Pacheco (dp.spambait@9ma1l.qjz9zk) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions +diff --git a/base/third_party/libevent/min_heap.h b/base/third_party/libevent/min_heap.h +--- a/base/third_party/libevent/min_heap.h ++++ b/base/third_party/libevent/min_heap.h +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2006 Maxim Yegorushkin ++ * Copyright (c) 2006 Maxim Yegorushkin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +diff --git a/base/third_party/nspr/prtime.cc b/base/third_party/nspr/prtime.cc +--- a/base/third_party/nspr/prtime.cc ++++ b/base/third_party/nspr/prtime.cc +@@ -5,7 +5,7 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +- * http://www.mozilla.org/MPL/ ++ * http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +@@ -54,7 +54,7 @@ + * PR_GMTParameters + * PR_ImplodeTime + * Upstream implementation from +- * http://lxr.mozilla.org/nspr/source/pr/src/misc/prtime.c#221 ++ * http://lxr.m0z111a.qjz9zk/nspr/source/pr/src/misc/prtime.c#221 + * All types and macros are defined in the base/third_party/prtime.h file. + * These have been copied from the following nspr files. We have only copied + * over the types we need. +@@ -1140,11 +1140,11 @@ PR_ParseTimeString( + * mktime will return (time_t) -1 if the input is a date + * after 23:59:59, December 31, 3000, US Pacific Time (not + * UTC as documented): +- * http://msdn.microsoft.com/en-us/library/d1y53h2a(VS.80).aspx ++ * http://msdn.m1cr050ft.qjz9zk/en-us/library/d1y53h2a(VS.80).aspx + * But if the year is 3001, mktime also invokes the invalid + * parameter handler, causing the application to crash. This + * problem has been reported in +- * http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=266036. ++ * http://connect.m1cr050ft.qjz9zk/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=266036. + * We avoid this crash by not calling mktime if the date is + * out of range. To use a simple test that works in any time + * zone, we consider year 3000 out of range as well. (See +diff --git a/base/third_party/nspr/prtime.h b/base/third_party/nspr/prtime.h +--- a/base/third_party/nspr/prtime.h ++++ b/base/third_party/nspr/prtime.h +@@ -5,7 +5,7 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +- * http://www.mozilla.org/MPL/ ++ * http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +@@ -76,7 +76,7 @@ typedef enum { PR_FAILURE = -1, PR_SUCCESS = 0 } PRStatus; + /* + * Long-long (64-bit signed integer type) support macros used by + * PR_ImplodeTime(). +- * See http://lxr.mozilla.org/nspr/source/pr/include/prlong.h ++ * See http://lxr.m0z111a.qjz9zk/nspr/source/pr/include/prlong.h + */ + + #define LL_I2L(l, i) ((l) = (PRInt64)(i)) +diff --git a/base/third_party/symbolize/symbolize.cc b/base/third_party/symbolize/symbolize.cc +--- a/base/third_party/symbolize/symbolize.cc ++++ b/base/third_party/symbolize/symbolize.cc +@@ -872,7 +872,7 @@ public: + bool ready; + SymInitializer() : process(NULL), ready(false) { + // Initialize the symbol handler. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms680344(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms680344(v=vs.85).aspx + process = GetCurrentProcess(); + // Defer symbol loading. + // We do not request undecorated symbols with SYMOPT_UNDNAME +@@ -898,7 +898,7 @@ static ATTRIBUTE_NOINLINE bool SymbolizeAndDemangle(void *pc, char *out, + return false; + } + // Resolve symbol information from address. +- // https://msdn.microsoft.com/en-us/library/windows/desktop/ms680578(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms680578(v=vs.85).aspx + char buf[sizeof(SYMBOL_INFO) + MAX_SYM_NAME]; + SYMBOL_INFO *symbol = reinterpret_cast(buf); + symbol->SizeOfStruct = sizeof(SYMBOL_INFO); +diff --git a/base/threading/platform_thread_win.cc b/base/threading/platform_thread_win.cc +--- a/base/threading/platform_thread_win.cc ++++ b/base/threading/platform_thread_win.cc +@@ -34,7 +34,7 @@ namespace { + constexpr int kWin7BackgroundThreadModePriority = 4; + + // The information on how to set the thread name comes from +-// a MSDN article: http://msdn2.microsoft.com/en-us/library/xcb2z8hs.aspx ++// a MSDN article: http://msdn2.m1cr050ft.qjz9zk/en-us/library/xcb2z8hs.aspx + const DWORD kVCThreadNameException = 0x406D1388; + + typedef struct tagTHREADNAME_INFO { +@@ -144,7 +144,7 @@ bool CreateThreadInternal(size_t stack_size, + // will have to work running on CreateThread() threads anyway, since we run + // code on the Windows thread pool, etc. For some background on the + // difference: +- // http://www.microsoft.com/msj/1099/win32/win321099.aspx ++ // http://www.m1cr050ft.qjz9zk/msj/1099/win32/win321099.aspx + thread_handle = + ::CreateThread(nullptr, stack_size, ThreadFunc, params, flags, nullptr); + } +diff --git a/base/threading/platform_thread_win.h b/base/threading/platform_thread_win.h +--- a/base/threading/platform_thread_win.h ++++ b/base/threading/platform_thread_win.h +@@ -18,7 +18,7 @@ namespace features { + // ThreadPriority::BACKGROUND threads. This lowers the disk and network I/O + // priority of the thread in addition to the CPU scheduling priority. MSDN + // recommends using this setting for threads that perform background work. +-// https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-setthreadpriority ++// https://docs.m1cr050ft.qjz9zk/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-setthreadpriority + BASE_EXPORT extern const Feature kWindowsThreadModeBackground; + + } // namespace features +diff --git a/base/time/time.h b/base/time/time.h +--- a/base/time/time.h ++++ b/base/time/time.h +@@ -605,7 +605,7 @@ class BASE_EXPORT Time : public time_internal::TimeBase

This is not the full set of direct actions potentially available in Chrome. The full set might + * not even be available at compile time. For an up-to-date list, see +- * http://go.ext.google.com/chrome-direct-action-list Please update this list when adding a new ++ * http://go.ext.9oo91e.qjz9zk/chrome-direct-action-list Please update this list when adding a new + * direct action to this set. + */ + public class ChromeDirectActionIds { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionCoordinator.java +@@ -23,7 +23,7 @@ import java.util.function.Consumer; + * + *

Handlers can define any direct action they want, but the client of direct actions need to be + * aware of them to make use of them. For this to work, if you add a new action here, please list it +- * and document it in http://go.ext.google.com/chrome-direct-action-list ++ * and document it in http://go.ext.9oo91e.qjz9zk/chrome-direct-action-list + */ + @TargetApi(29) + public abstract class DirectActionCoordinator { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java +@@ -30,9 +30,9 @@ public final class ConnectivityChecker { + private static final String TAG = "feedback"; + + private static final String DEFAULT_HTTP_NO_CONTENT_URL = +- "http://clients4.google.com/generate_204"; ++ "http://clients4.9oo91e.qjz9zk/generate_204"; + private static final String DEFAULT_HTTPS_NO_CONTENT_URL = +- "https://clients4.google.com/generate_204"; ++ "https://clients4.9oo91e.qjz9zk/generate_204"; + + private static String sHttpNoContentUrl = DEFAULT_HTTP_NO_CONTENT_URL; + private static String sHttpsNoContentUrl = DEFAULT_HTTPS_NO_CONTENT_URL; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java b/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java +@@ -137,7 +137,7 @@ public class HelpAndFeedback { + return context.getString(R.string.help_context_bookmarks); + } else if (url.equals(UrlConstants.HISTORY_URL)) { + return context.getString(R.string.help_context_history); +- // Note: For www.google.com the following function returns false. ++ // Note: For www.9oo91e.qjz9zk the following function returns false. + } else if (UrlUtilitiesJni.get().isGoogleSearchUrl(url)) { + return context.getString(R.string.help_context_search_results); + // For incognito NTP, we want to show incognito help. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java +@@ -55,7 +55,7 @@ import java.util.ArrayList; + * + * TODO(newt): use hardware acceleration? See + * http://blog.danlew.net/2015/10/20/using-hardware-layers-to-improve-animation-performance/ +- * and http://developer.android.com/guide/topics/graphics/hardware-accel.html#layers ++ * and http://developer.8n6r01d.qjz9zk/guide/topics/graphics/hardware-accel.html#layers + * + * TODO(newt): handle tall infobars on small devices. Use a ScrollView inside the InfoBarWrapper? + * Make sure InfoBarContainerLayout doesn't extend into tabstrip on tablet. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java +@@ -331,7 +331,7 @@ public final class InfoBarLayout extends ViewGroup implements View.OnClickListen + /** + * Measures and determines where children should go. + * +- * For current specs, see https://goto.google.com/infobar-spec ++ * For current specs, see https://goto.9oo91e.qjz9zk/infobar-spec + * + * All controls are padded from the infobar boundary by the same amount, but different types of + * control groups are bound by different widths and have different margins: +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java +@@ -75,7 +75,7 @@ public class ModalDialogView extends BoundedLinearLayout implements View.OnClick + + // If the scroll view can not be scrolled, make the scroll view not focusable so that the + // focusing behavior for hardware keyboard is less confusing. +- // See https://codereview.chromium.org/2939883002. ++ // See https://codereview.ch40m1um.qjz9zk/2939883002. + mScrollView.addOnLayoutChangeListener( + (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + boolean isScrollable = v.canScrollVertically(-1) || v.canScrollVertically(1); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java b/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/night_mode/RemoteViewsWithNightModeInflater.java +@@ -22,7 +22,7 @@ import org.chromium.base.Log; + /** + * Performs inflation of {@link RemoteViews} taking into account the local night mode. + * {@link RemoteViews#apply} always uses resource configuration corresponding to system +- * settings, see https://buganizer.corp.google.com/issues/133424086, http://crbug.com/1626864. ++ * settings, see https://buganizer.corp.9oo91e.qjz9zk/issues/133424086, http://crbug.com/1626864. + */ + public class RemoteViewsWithNightModeInflater { + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java +@@ -141,7 +141,7 @@ public class NotificationConstants { + public static final String GROUP_SHARED_CLIPBOARD = "SharedClipboard"; + + // Web notification group names are set dynamically as this prefix + notification origin. +- // For example, 'Web:chromium.org' for a notification from chromium.org. ++ // For example, 'Web:ch40m1um.qjz9zk' for a notification from ch40m1um.qjz9zk. + static final String GROUP_WEB_PREFIX = "Web:"; + + // Default notificationId until it has been set. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java +@@ -16,8 +16,8 @@ import java.util.List; + * A proxy for the Android Notification Manager. This allows tests to be written without having to + * use the real Notification Manager. + * +- * @see +- * https://developer.android.com/reference/android/app/NotificationManager.html ++ * @see ++ * https://developer.8n6r01d.qjz9zk/reference/android/app/NotificationManager.html + */ + public interface NotificationManagerProxy { + // Implemented by NotificationManagerCompat and thus available on all API levels. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java +@@ -480,7 +480,7 @@ public class NotificationPlatformBridge { + * notification is replacing another notification. + * @param silent Whether the default sound, vibration and lights should be suppressed. + * @param actions Action buttons to display alongside the notification. +- * @see ++ * @see + * Android Notification API + */ + @CalledByNative +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java +@@ -188,9 +188,9 @@ public class ConnectivityDetector implements NetworkChangeNotifier.ConnectionTyp + + private static final String USER_AGENT_HEADER_NAME = "User-Agent"; + // Send the HTTPS probe first since the captive portals cannot see the encrypted URL path. +- private static final String DEFAULT_PROBE_URL = "https://www.google.com/generate_204"; ++ private static final String DEFAULT_PROBE_URL = "https://www.9oo91e.qjz9zk/generate_204"; + private static final String FALLBACK_PROBE_URL = +- "http://connectivitycheck.gstatic.com/generate_204"; ++ "http://connectivitycheck.95tat1c.qjz9zk/generate_204"; + private static final String PROBE_METHOD = "GET"; + private static final int SOCKET_TIMEOUT_MS = 5000; + private static final int CONNECTIVITY_CHECK_INITIAL_DELAY_MS = 5000; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java +@@ -53,7 +53,7 @@ import java.util.Date; + * Status is saved directly to the the disk after every run of the pipeline. + * + * Implementation notes: +- * http://docs.google.com/a/google.com/document/d/1scTCovqASf5ktkOeVj8wFRkWTCeDYw2LrOBNn05CDB0/edit ++ * http://docs.9oo91e.qjz9zk/a/9oo91e.qjz9zk/document/d/1scTCovqASf5ktkOeVj8wFRkWTCeDYw2LrOBNn05CDB0/edit + */ + public class OmahaBase { + // Used in various org.chromium.chrome.browser.omaha files. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java +@@ -39,7 +39,7 @@ public abstract class RequestGenerator { + public static final int INSTALL_AGE_IMMEDIATELY_AFTER_INSTALLING = -1; + + private static final String SALT = "omahaSalt"; +- private static final String URL_OMAHA_SERVER = "https://update.googleapis.com/service/update2"; ++ private static final String URL_OMAHA_SERVER = "https://update.9oo91eapis.qjz9zk/service/update2"; + + private final Context mApplicationContext; + +@@ -200,7 +200,7 @@ public abstract class RequestGenerator { + // so have to make sure AccountManagerFacade instance is initialized. + int numAccounts = 0; + try { +- // TODO(waffles@chromium.org): Ideally, this should be asynchronous. ++ // TODO(waffles@ch40m1um.qjz9zk): Ideally, this should be asynchronous. + PostTask.runSynchronously(UiThreadTaskTraits.DEFAULT, + () -> ProcessInitializationHandler.getInstance().initializePreNative()); + numAccounts = AccountManagerFacade.get().getGoogleAccounts().size(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/ResponseParser.java +@@ -19,7 +19,7 @@ import org.chromium.chrome.browser.omaha.XMLParser.Node; + * + * + * +- * ++ * + * + * + * +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java +@@ -296,8 +296,8 @@ public class OmniboxUrlEmphasizer { + * + * For example, HTTP and HTTPS urls return the index of the first character + * after the domain: +- * http://www.google.com/?q=foo => 21 (up to the 'm' in google.com) +- * https://www.google.com/?q=foo => 22 ++ * http://www.9oo91e.qjz9zk/?q=foo => 21 (up to the 'm' in 9oo91e.qjz9zk) ++ * https://www.9oo91e.qjz9zk/?q=foo => 22 + * + * Data urls always return 0, since they do not contain an origin: + * data:kf94hfJEj#N => 0 +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java +@@ -44,7 +44,7 @@ import java.util.Set; + * Provides methods for building the X-Geo HTTP header, which provides device location to a server + * when making an HTTP request. + * +- * X-Geo header spec: https://goto.google.com/xgeospec. ++ * X-Geo header spec: https://goto.9oo91e.qjz9zk/xgeospec. + */ + public class GeolocationHeader { + private static final String TAG = "GeolocationHeader"; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/partner_location_descriptor.proto +@@ -11,7 +11,7 @@ + // + // NOTE: This is currently using a Google-defined structure. This explains the + // jumps in values. New fields cannot be added to this proto directly. See +-// https://goto.google.com/partner_location_proto ++// https://goto.9oo91e.qjz9zk/partner_location_proto + + syntax = "proto2"; + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java +@@ -109,7 +109,7 @@ public class AnswerSuggestionProcessor extends BaseSuggestionViewProcessor { + @Override + public void recordSuggestionUsed(OmniboxSuggestion suggestion, PropertyModel model) { + // Bookkeeping handled in C++: +- // https://cs.chromium.org/Omnibox.SuggestionUsed.AnswerInSuggest ++ // https://cs.ch40m1um.qjz9zk/Omnibox.SuggestionUsed.AnswerInSuggest + } + + /** +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java +@@ -132,7 +132,7 @@ abstract class AnswerText { + /** + * Return the TextAppearanceSpan array specifying text decorations for a given field type. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return TextAppearanceSpan array specifying styles to be used to present text field. + */ + protected abstract MetricAffectingSpan[] getAppearanceForText(@AnswerTextType int type); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java +@@ -123,7 +123,7 @@ class AnswerTextNewLayout extends AnswerText { + /** + * Return the TextAppearanceSpan array specifying text decorations for a given field type. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return TextAppearanceSpan array specifying styles to be used to present text field. + */ + @Override +@@ -134,7 +134,7 @@ class AnswerTextNewLayout extends AnswerText { + /** + * Return text styles for elements in main line holding answer. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return array of TextAppearanceSpan objects defining style for the text. + */ + private MetricAffectingSpan[] getAppearanceForAnswerText(@AnswerTextType int type) { +@@ -179,7 +179,7 @@ class AnswerTextNewLayout extends AnswerText { + /** + * Return text styles for elements in second line holding query. + * +- * @param type The answer type as specified at http://goto.google.com/ais_api. ++ * @param type The answer type as specified at http://goto.9oo91e.qjz9zk/ais_api. + * @return array of TextAppearanceSpan objects defining style for the text. + */ + private MetricAffectingSpan[] getAppearanceForQueryText(@AnswerTextType int type) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java +@@ -32,7 +32,7 @@ public class SuggestionViewProperties { + @Retention(RetentionPolicy.SOURCE) + public @interface SuggestionIcon { + // This enum is used to back UMA histograms, and should therefore be treated as append-only. +- // See http://cs.chromium.org/SuggestionIconOrFaviconType ++ // See http://cs.ch40m1um.qjz9zk/SuggestionIconOrFaviconType + int UNSET = 0; + int BOOKMARK = 1; + int HISTORY = 2; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/entity/EntitySuggestionProcessor.java +@@ -53,7 +53,7 @@ public class EntitySuggestionProcessor implements SuggestionProcessor { + + // These values are used with UMA to report Omnibox.RichEntity.DecorationType histograms, and + // should therefore be treated as append-only. +- // See http://cs.chromium.org/Omnibox.RichEntity.DecorationType. ++ // See http://cs.ch40m1um.qjz9zk/Omnibox.RichEntity.DecorationType. + private static final int DECORATION_TYPE_ICON = 0; + private static final int DECORATION_TYPE_COLOR = 1; + private static final int DECORATION_TYPE_IMAGE = 2; +@@ -115,7 +115,7 @@ public class EntitySuggestionProcessor implements SuggestionProcessor { + @Override + public void recordSuggestionUsed(OmniboxSuggestion suggestion, PropertyModel model) { + // Bookkeeping handled in C++: +- // http://cs.chromium.org/Omnibox.SuggestionUsed.RichEntity ++ // http://cs.ch40m1um.qjz9zk/Omnibox.SuggestionUsed.RichEntity + } + + private void fetchEntityImage(OmniboxSuggestion suggestion, PropertyModel model) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java +@@ -42,7 +42,7 @@ public class ConnectionInfoPopup implements OnClickListener, ModalDialogProperti + private static final String TAG = "ConnectionInfoPopup"; + + private static final String HELP_URL = +- "https://support.google.com/chrome?p=android_connection_info"; ++ "https://support.9oo91e.qjz9zk/chrome?p=android_connection_info"; + + private final Context mContext; + private final ModalDialogManager mModalDialogManager; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java +@@ -50,7 +50,7 @@ import java.util.Set; + + /** + * The point of interaction with a locally installed 3rd party native Android payment app. +- * https://docs.google.com/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE ++ * https://docs.9oo91e.qjz9zk/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE + */ + public class AndroidPaymentApp + extends PaymentInstrument implements PaymentApp, WindowAndroid.IntentCallback { +@@ -177,7 +177,7 @@ public class AndroidPaymentApp + // ServiceConnection itself -- this binding to the service will remain active, and you + // will receive a call to onServiceConnected(ComponentName, IBinder) when the Service is + // next running." +- // https://developer.android.com/reference/android/content/ServiceConnection.html#onServiceDisconnected(android.content.ComponentName) ++ // https://developer.8n6r01d.qjz9zk/reference/android/content/ServiceConnection.html#onServiceDisconnected(android.content.ComponentName) + @Override + public void onServiceDisconnected(ComponentName name) { + // Do not wait for the service to restart. +@@ -194,7 +194,7 @@ public class AndroidPaymentApp + // service or if your client doesn't have permission to bind to it. If this value is + // true, you should later call unbindService(ServiceConnection) to release the + // connection." +- // https://developer.android.com/reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int) ++ // https://developer.8n6r01d.qjz9zk/reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int) + mIsServiceBindingInitiated = ContextUtils.getApplicationContext().bindService( + mIsReadyToPayIntent, mServiceConnection, Context.BIND_AUTO_CREATE); + } catch (SecurityException e) { +@@ -215,7 +215,7 @@ public class AndroidPaymentApp + if (mServiceConnection != null) { + if (mIsServiceBindingInitiated) { + // mServiceConnection "parameter must not be null." +- // https://developer.android.com/reference/android/content/Context.html#unbindService(android.content.ServiceConnection) ++ // https://developer.8n6r01d.qjz9zk/reference/android/content/Context.html#unbindService(android.content.ServiceConnection) + ContextUtils.getApplicationContext().unbindService(mServiceConnection); + mIsServiceBindingInitiated = false; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java +@@ -124,7 +124,7 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback { + * + * @param webContents The web contents that invoked the web payments API. + * @param methods The list of payment methods requested by the merchant. For +- * example, "https://bobpay.com", "https://android.com/pay", ++ * example, "https://bobpay.com", "https://8n6r01d.qjz9zk/pay", + * "basic-card". + * @param webDataService The web data service to cache manifest. + * @param downloader The manifest downloader. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentApp.java +@@ -42,7 +42,7 @@ public interface PaymentApp { + * interaction until updateWith() or noUpdatedPaymentDetails(). + * https://w3c.github.io/payment-request/#paymentmethodchangeevent-interface + * +- * @param methodName Method name. For example, "https://google.com/pay". Should not ++ * @param methodName Method name. For example, "https://9oo91e.qjz9zk/pay". Should not + * be null or empty. + * @param stringifiedDetails JSON-serialized object. For example, {"type": "debit"}. Should + * not be null. +@@ -122,7 +122,7 @@ public interface PaymentApp { + + /** + * Returns the identifier for this payment app to be saved in user preferences. For +- * example, this can be "autofill", "https://android.com/pay", or ++ * example, this can be "autofill", "https://8n6r01d.qjz9zk/pay", or + * "com.example.app.ExamplePaymentApp". + * + * @return The identifier for this payment app. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java +@@ -35,7 +35,7 @@ import java.util.Set; + * names, versions, and signatures to the apps. + * + * Spec: +- * https://docs.google.com/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE/edit#heading=h.cjp3jlnl47h5 ++ * https://docs.9oo91e.qjz9zk/document/d/1izV4uC-tiRJG3JLooqY3YRLU22tYOsLTNq0P_InPJeE/edit#heading=h.cjp3jlnl47h5 + */ + public class PaymentManifestVerifier + implements ManifestDownloadCallback, ManifestParseCallback, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java +@@ -226,8 +226,8 @@ public class PaymentRequestImpl + public static final int SUGGESTIONS_LIMIT = 4; + + private static final String TAG = "cr_PaymentRequest"; +- private static final String ANDROID_PAY_METHOD_NAME = "https://android.com/pay"; +- private static final String PAY_WITH_GOOGLE_METHOD_NAME = "https://google.com/pay"; ++ private static final String ANDROID_PAY_METHOD_NAME = "https://8n6r01d.qjz9zk/pay"; ++ private static final String PAY_WITH_GOOGLE_METHOD_NAME = "https://9oo91e.qjz9zk/pay"; + // Reverse order of the comparator to sort in descending order of completeness scores. + private static final Comparator COMPLETENESS_COMPARATOR = + (a, b) -> (compareCompletablesByCompleteness(b, a)); +@@ -999,7 +999,7 @@ public class PaymentRequestImpl + + if (googlePayBridgeEligible) { + // If skip-to-GPay flow is activated, ignore all other payment methods, which can be +- // either "basic-card" or "https://android.com/pay". The latter is safe to ignore ++ // either "basic-card" or "https://8n6r01d.qjz9zk/pay". The latter is safe to ignore + // because merchant has already requested Google Pay. + if (!method.equals(PAY_WITH_GOOGLE_METHOD_NAME)) continue; + if (methodData[i].gpayBridgeData != null +@@ -1105,10 +1105,10 @@ public class PaymentRequestImpl + if (TextUtils.isEmpty(canDedupedApplicationId)) continue; + canDedupedApplicationIds.add(canDedupedApplicationId); + // Add the trailing slash, because Service worker registration scope is a directory path +- // that must end with a '/' (e.g., "https://google.com/pay/"), whereas ++ // that must end with a '/' (e.g., "https://9oo91e.qjz9zk/pay/"), whereas + // "canDedupedApplicationIdUri" is derived from the native Android payment app's default + // URL-based payment method name that may not necessarily specify the trailing slash +- // (e.g., "https://google.com/pay"). ++ // (e.g., "https://9oo91e.qjz9zk/pay"). + if (canDedupedApplicationId.charAt(canDedupedApplicationId.length() - 1) != '/') { + canDedupedApplicationIds.add(canDedupedApplicationId + '/'); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java +@@ -153,7 +153,7 @@ import java.util.Collection; + /** + * Computes the maximum possible width for a dialog box. + * +- * Follows https://www.google.com/design/spec/components/dialogs.html#dialogs-simple-dialogs ++ * Follows https://www.9oo91e.qjz9zk/design/spec/components/dialogs.html#dialogs-simple-dialogs + * + * @param context Context to pull resources from. + * @param availableWidth Available width for the dialog. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java +@@ -334,7 +334,7 @@ public class PaymentRequestUI implements DialogInterface.OnDismissListener, View + * @param origin The origin (https://tools.ietf.org/html/rfc6454) to show under + * the title. For example, "https://shop.momandpop.com". If the + * origin is too long for the UI, it should elide according to: +- * https://www.chromium.org/Home/chromium-security/enamel#TOC-Eliding-Origin-Names-And-Hostnames ++ * https://www.ch40m1um.qjz9zk/Home/chromium-security/enamel#TOC-Eliding-Origin-Names-And-Hostnames + * @param securityLevel The security level of the page that invoked PaymentRequest. + * @param shippingStrings The string resource identifiers to use in the shipping sections. + */ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java +@@ -382,7 +382,7 @@ public class SearchEngineAdapter extends BaseAdapter + + // To improve the explore-by-touch experience, the radio button is hidden from accessibility + // and instead, "checked" or "not checked" is read along with the search engine's name, e.g. +- // "google.com checked" or "google.com not checked". ++ // "9oo91e.qjz9zk checked" or "9oo91e.qjz9zk not checked". + radioButton.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); + description.setAccessibilityDelegate(new AccessibilityDelegate() { + @Override +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java +@@ -450,7 +450,7 @@ public class ExportFlow { + == R.string.save_password_preferences_export_learn_google_drive) { + // Link to the help article about how to use Google Drive. + Intent intent = new Intent(Intent.ACTION_VIEW, +- Uri.parse("https://support.google.com/drive/answer/2424384")); ++ Uri.parse("https://support.9oo91e.qjz9zk/drive/answer/2424384")); + intent.setPackage(mDelegate.getActivity().getPackageName()); + mDelegate.getActivity().startActivity(intent); + } else if (positiveButtonLabelId == R.string.try_again) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java +@@ -57,7 +57,7 @@ public class ClearBrowsingDataTabsFragment extends Fragment { + } + + /* +- * RTL is broken for ViewPager: https://code.google.com/p/android/issues/detail?id=56831 ++ * RTL is broken for ViewPager: https://code.9oo91e.qjz9zk/p/android/issues/detail?id=56831 + * This class works around this issue by inserting the tabs in inverse order if RTL is active. + * The TabLayout needs to be set to LTR for this to work. + * TODO(dullweber): Extract the RTL code into a wrapper class if other places in Chromium need +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java +@@ -37,8 +37,8 @@ import org.chromium.ui.UiUtils; + * Helper methods for sync preferences. + */ + public class SyncPreferenceUtils { +- private static final String DASHBOARD_URL = "https://www.google.com/settings/chrome/sync"; +- private static final String MY_ACCOUNT_URL = "https://myaccount.google.com/smartlink/home"; ++ private static final String DASHBOARD_URL = "https://www.9oo91e.qjz9zk/settings/chrome/sync"; ++ private static final String MY_ACCOUNT_URL = "https://myaccount.9oo91e.qjz9zk/smartlink/home"; + + /** + * Checks if sync error icon should be shown. Show sync error icon if sync is off because +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java +@@ -19,10 +19,10 @@ import android.widget.TextView; + * + * For example, given the following template and content + * Template: "%s was closed" +- * Content: "https://www.google.com/webhp?sourceid=chrome-instant&q=potato" ++ * Content: "https://www.9oo91e.qjz9zk/webhp?sourceid=chrome-instant&q=potato" + * + * the TemplatePreservingTextView would truncate the content but not the template text: +- * "https://www.google.com/webh... was closed" ++ * "https://www.9oo91e.qjz9zk/webh... was closed" + */ + public class TemplatePreservingTextView extends AppCompatTextView { + private String mTemplate; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java +@@ -22,7 +22,7 @@ import java.lang.reflect.Method; + @JNINamespace("chrome::android") + public class CaptivePortalHelper { + private static final String DEFAULT_PORTAL_CHECK_URL = +- "http://connectivitycheck.gstatic.com/generate_204"; ++ "http://connectivitycheck.95tat1c.qjz9zk/generate_204"; + + public static void setCaptivePortalCertificateForTesting(String spkiHash) { + CaptivePortalHelperJni.get().setCaptivePortalCertificateForTesting(spkiHash); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java +@@ -40,7 +40,7 @@ public final class SuggestionsConfig { + * It must be kept in sync with //components/ntp_suggestions/features.cc + */ + private static final String DEFAULT_CONTENT_SUGGESTIONS_REFERRER_URL = +- "https://www.googleapis.com/auth/chrome-content-suggestions"; ++ "https://www.9oo91eapis.qjz9zk/auth/chrome-content-suggestions"; + + private SuggestionsConfig() {} + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +@@ -27,7 +27,7 @@ import org.chromium.ui.mojom.WindowOpenDisposition; + * Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. + */ + public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl { +- private static final String NEW_TAB_URL_HELP = "https://support.google.com/chrome/?p=new_tab"; ++ private static final String NEW_TAB_URL_HELP = "https://support.9oo91e.qjz9zk/chrome/?p=new_tab"; + + public SuggestionsNavigationDelegate(ChromeActivity activity, Profile profile, + NativePageHost host, TabModelSelector tabModelSelector) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java +@@ -39,7 +39,7 @@ public class GoogleServiceAuthError { + // DEPRECATED. + // The user needs to satisfy a CAPTCHA challenge to unlock their account. + // If no other information is available, this can be resolved by visiting +- // https://www.google.com/accounts/DisplayUnlockCaptcha. Otherwise, ++ // https://www.9oo91e.qjz9zk/accounts/DisplayUnlockCaptcha. Otherwise, + // captcha() will provide details about the associated challenge. + // int CAPTCHA_REQUIRED = 4; + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabState.java +@@ -345,7 +345,7 @@ public class TabState { + } else { + // For JellyBean and below a bug in MappedByteBufferAdapter causes rewind to not be + // propagated to the underlying ByteBuffer, and results in an underflow exception. See: +- // http://b.android.com/53637. ++ // http://b.8n6r01d.qjz9zk/53637. + for (int i = 0; i < buffer.limit(); i++) contentsStateBytes[i] = buffer.get(i); + } + return contentsStateBytes; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java +@@ -535,8 +535,8 @@ public class CustomTabToolbar extends ToolbarLayout implements View.OnLongClickL + + private static String parsePublisherNameFromUrl(String url) { + // TODO(ianwen): Make it generic to parse url from URI path. http://crbug.com/599298 +- // The url should look like: https://www.google.com/amp/s/www.nyt.com/ampthml/blogs.html +- // or https://www.google.com/amp/www.nyt.com/ampthml/blogs.html. ++ // The url should look like: https://www.9oo91e.qjz9zk/amp/s/www.nyt.com/ampthml/blogs.html ++ // or https://www.9oo91e.qjz9zk/amp/www.nyt.com/ampthml/blogs.html. + Uri uri = Uri.parse(url); + List segments = uri.getPathSegments(); + if (segments.size() >= 3) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java b/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java +@@ -18,7 +18,7 @@ import org.chromium.chrome.browser.vr.VrModuleProvider; + * Triggered when Chrome's package is replaced (e.g. when it is upgraded). + * + * Before changing this class, you must understand both the Receiver and Process Lifecycles: +- * http://developer.android.com/reference/android/content/BroadcastReceiver.html#ReceiverLifecycle ++ * http://developer.8n6r01d.qjz9zk/reference/android/content/BroadcastReceiver.html#ReceiverLifecycle + * + * - This process runs in the foreground as long as {@link #onReceive} is running. If there are no + * other application components running, Android will aggressively kill it. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreInstallUtils.java +@@ -111,7 +111,7 @@ public class ArCoreInstallUtils implements ModuleInstallUi.FailureUiListener { + // As per documentation, it's recommended to issue a call to + // ArCoreApk.checkAvailability() early in application lifecycle & ignore the result + // so that subsequent calls can return cached result: +- // https://developers.google.com/ar/develop/java/enable-arcore ++ // https://developers.9oo91e.qjz9zk/ar/develop/java/enable-arcore + // This is as early in the app lifecycle as it gets for us - just after installing + // AR module. + getArCoreInstallStatus(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/vr/ArCoreShim.java +@@ -16,14 +16,14 @@ import java.lang.annotation.RetentionPolicy; + * Interface used to wrap around ArCore SDK Java interface. + * + * For detailed documentation of the below methods, please see: +- * https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk ++ * https://developers.9oo91e.qjz9zk/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk + */ + public interface ArCoreShim { + /** + * Equivalent of ArCoreApk.ArInstallStatus enum. + * + * For detailed description, please see: +- * https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.InstallStatus ++ * https://developers.9oo91e.qjz9zk/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.InstallStatus + */ + @IntDef({InstallStatus.INSTALLED, InstallStatus.INSTALL_REQUESTED}) + @Retention(RetentionPolicy.SOURCE) +@@ -36,7 +36,7 @@ public interface ArCoreShim { + * Equivalent of ArCoreApk.Availability enum. + * + * For detailed description, please see: +- * https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.Availability ++ * https://developers.9oo91e.qjz9zk/ar/reference/java/arcore/reference/com/google/ar/core/ArCoreApk.Availability + */ + @IntDef({Availability.SUPPORTED_APK_TOO_OLD, Availability.SUPPORTED_INSTALLED, + Availability.SUPPORTED_NOT_INSTALLED, Availability.UNKNOWN_CHECKING, +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 ++++ b/chrome/android/java/strings/android_chrome_strings.grd +@@ -9,7 +9,7 @@ FAQ: + Yes, indeed. Just add your string before the branch point and + make the description good. + - Tell me more, please? +- Ok: http://www.chromium.org/developers/design-documents/ui-localization ++ Ok: http://www.ch40m1um.qjz9zk/developers/design-documents/ui-localization + + CHAR-LIMIT guidelines: + Certain strings need character limits to prevent a long translation from breaking the UI. +@@ -758,7 +758,7 @@ For example, some websites may respond to this request by showing you ads that a + + The selected data has been removed from Chrome and your synced devices. + +-Your Google account may have other forms of browsing history like searches and activity from other Google services at <link>myactivity.google.com</link>. ++Your Google account may have other forms of browsing history like searches and activity from other Google services at <link>myactivity.9oo91e.qjz9zk</link>. + + + Cached images and files +@@ -779,10 +779,10 @@ Your Google account may have other forms of browsing history like searches and a + Clears history and autocompletions in the address bar. + + +- Clears history and autocompletions in the address bar. Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. ++ Clears history and autocompletions in the address bar. Your Google Account may have other forms of browsing history at <link>myactivity.9oo91e.qjz9zk</link>. + + +- Clears history from all signed-in devices. Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. ++ Clears history from all signed-in devices. Your Google Account may have other forms of browsing history at <link>myactivity.9oo91e.qjz9zk</link>. + + + Saved passwords +@@ -833,7 +833,7 @@ Your Google account may have other forms of browsing history like searches and a + Basic + + +- Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. ++ Your Google Account may have other forms of browsing history at <link>myactivity.9oo91e.qjz9zk</link>. + + + Blocked site +@@ -975,7 +975,7 @@ Your Google account may have other forms of browsing history like searches and a + Add + + +- Site %1$sgoogle.com added ++ Site %1$s9oo91e.qjz9zk added + + + Allow autoplay of muted videos for a specific site. +@@ -1179,7 +1179,7 @@ Your Google account may have other forms of browsing history like searches and a + Open notification settings + + +- Embedded in %1$sgoogle.com ++ Embedded in %1$s9oo91e.qjz9zk + + + +@@ -1370,7 +1370,7 @@ Your Google account may have other forms of browsing history like searches and a + In Lite mode, Chrome loads pages faster and uses up to 60 percent less data. To optimize the pages that you visit, Chrome sends your web traffic to Google. <link>Learn more</link> + + +- https://support.google.com/chrome/?p=lite_mode ++ https://support.9oo91e.qjz9zk/chrome/?p=lite_mode + + + Turn on Lite mode +@@ -1502,7 +1502,7 @@ Your Google account may have other forms of browsing history like searches and a + Signed in to Google as + + +- Syncing to %1$sjohndoe@gmail.com ++ Syncing to %1$sjohndoe@9ma1l.qjz9zk + + + Sign out of Chrome +@@ -1516,10 +1516,10 @@ Your Google account may have other forms of browsing history like searches and a + Waiting for details of parents. + + +- This account is managed by %1$sparent1@gmail.com. ++ This account is managed by %1$sparent1@9ma1l.qjz9zk. + + +- This account is managed by %1$sparent1@gmail.com and %2$sparent2@gmail.com. ++ This account is managed by %1$sparent1@9ma1l.qjz9zk and %2$sparent2@9ma1l.qjz9zk. + + + Content +@@ -1575,13 +1575,13 @@ Your Google account may have other forms of browsing history like searches and a + Chrome Privacy Notice + + +- https://www.google.com/intl/$LOCALE/chrome/browser/privacy/ ++ https://www.9oo91e.qjz9zk/intl/$LOCALE/chrome/browser/privacy/ + + +- https://www.google.com/intl/$LOCALE/chrome/browser/privacy/eula_text.html ++ https://www.9oo91e.qjz9zk/intl/$LOCALE/chrome/browser/privacy/eula_text.html + + +- https://families.google.com/intl/$LOCALE/familylink/privacy/child-policy/ ++ https://families.9oo91e.qjz9zk/intl/$LOCALE/familylink/privacy/child-policy/ + + + +@@ -1614,7 +1614,7 @@ Your Google account may have other forms of browsing history like searches and a + Also clear your Chrome data from this device + + +- Because you're signing out of an account managed by %1$sgoogle.com, your Chrome data will be deleted from this device. It will remain in your Google Account. ++ Because you're signing out of an account managed by %1$s9oo91e.qjz9zk, your Chrome data will be deleted from this device. It will remain in your Google Account. + + + Contacting Google. This may take a minute… +@@ -1756,7 +1756,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$shttps://www.google.com wants to pair ++ %1$shttps://www.9oo91e.qjz9zk wants to pair + + <link>Get help</link> while scanning for devices… + +@@ -1801,7 +1801,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$swww.google.com wants to scan for nearby Bluetooth devices. The following devices have been found: ++ %1$swww.9oo91e.qjz9zk wants to scan for nearby Bluetooth devices. The following devices have been found: + + + Unknown or unsupported device (%1$sA1:B2:C3:D4:E5:F6) +@@ -1990,7 +1990,7 @@ To change this setting, <resetlink>reset sync

+ Translate + +- ++ + Never translate this site + + +@@ -2260,7 +2260,7 @@ To change this setting, <resetlink>reset sync

+ +- This content is from %1$sgoogle.com, delivered by Google. ++ This content is from %1$s9oo91e.qjz9zk, delivered by Google. + + + Open Online +@@ -2269,7 +2269,7 @@ To change this setting, <resetlink>reset sync

+ +- <link>Load original page</link> from %1$sgoogle.com ++ <link>Load original page</link> from %1$s9oo91e.qjz9zk + + + +@@ -3247,7 +3247,7 @@ To change this setting, <resetlink>reset sync

+ +- Touch to return to %1$shttps://apprtc.appspot.com ++ Touch to return to %1$shttps://apprtc.8pp2p8t.qjz9zk + + + Tap to go to site +@@ -3259,7 +3259,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$shttps://apprtc.appspot.com is sharing your screen ++ %1$shttps://apprtc.8pp2p8t.qjz9zk is sharing your screen + + + A site is sharing your screen +@@ -3459,7 +3459,7 @@ To change this setting, <resetlink>reset sync

+ +- %1$shttps://www.google.com wants to connect ++ %1$shttps://www.9oo91e.qjz9zk wants to connect + + + No compatible devices found +@@ -3502,7 +3502,7 @@ To change this setting, <resetlink>reset sync

+ +- The contacts you select will be shared with <b>%1$shttps://www.google.com</b>. ++ The contacts you select will be shared with <b>%1$shttps://www.9oo91e.qjz9zk</b>. + + + +@@ -3791,7 +3791,7 @@ The site does NOT gain access to the camera. The camera images are only visible + Sending to %1$sTanya's Pixel 2... + + +- %1$swww.google.com - Sent from %2$sTanya's Pixel 2XL ++ %1$swww.9oo91e.qjz9zk - Sent from %2$sTanya's Pixel 2XL + + + Tab received +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java +@@ -23,28 +23,28 @@ public class ShortcutHelperTest { + */ + @Test + public void testGetScopeFromUrl() { +- String url1 = "https://www.google.com"; +- String url2 = "https://www.google.com/"; +- String url3 = "https://www.google.com/maps.htm"; +- String url4 = "https://www.google.com/maps/"; +- String url5 = "https://www.google.com/index.html"; +- String url6 = "https://www.google.com/index.html?q=maps"; +- String url7 = "https://www.google.com/index.html#maps/"; +- String url8 = "https://www.google.com/maps/au/index.html"; +- String url9 = "https://www.google.com/maps/au/north"; +- String url10 = "https://www.google.com/maps/au/north/"; +- String url11 = "https://www.google.com/maps/au/index.html?q=maps#fragment/"; +- String url12 = "http://www.google.com:8000/maps/au/index.html?q=maps#fragment/"; +- String url13 = "https://www.google.com/maps/au/north/?q=maps#fragment"; +- String url14 = "https://www.google.com/maps/au/north?q=maps#fragment"; +- String url15 = "https://www.google.com/a=b/c"; ++ String url1 = "https://www.9oo91e.qjz9zk"; ++ String url2 = "https://www.9oo91e.qjz9zk/"; ++ String url3 = "https://www.9oo91e.qjz9zk/maps.htm"; ++ String url4 = "https://www.9oo91e.qjz9zk/maps/"; ++ String url5 = "https://www.9oo91e.qjz9zk/index.html"; ++ String url6 = "https://www.9oo91e.qjz9zk/index.html?q=maps"; ++ String url7 = "https://www.9oo91e.qjz9zk/index.html#maps/"; ++ String url8 = "https://www.9oo91e.qjz9zk/maps/au/index.html"; ++ String url9 = "https://www.9oo91e.qjz9zk/maps/au/north"; ++ String url10 = "https://www.9oo91e.qjz9zk/maps/au/north/"; ++ String url11 = "https://www.9oo91e.qjz9zk/maps/au/index.html?q=maps#fragment/"; ++ String url12 = "http://www.9oo91e.qjz9zk:8000/maps/au/index.html?q=maps#fragment/"; ++ String url13 = "https://www.9oo91e.qjz9zk/maps/au/north/?q=maps#fragment"; ++ String url14 = "https://www.9oo91e.qjz9zk/maps/au/north?q=maps#fragment"; ++ String url15 = "https://www.9oo91e.qjz9zk/a=b/c"; + +- String url2_scope = "https://www.google.com/"; +- String url4_scope = "https://www.google.com/maps/"; +- String url8_scope = "https://www.google.com/maps/au/"; +- String url10_scope = "https://www.google.com/maps/au/north/"; +- String url12_scope = "http://www.google.com:8000/maps/au/"; +- String url15_scope = "https://www.google.com/a=b/"; ++ String url2_scope = "https://www.9oo91e.qjz9zk/"; ++ String url4_scope = "https://www.9oo91e.qjz9zk/maps/"; ++ String url8_scope = "https://www.9oo91e.qjz9zk/maps/au/"; ++ String url10_scope = "https://www.9oo91e.qjz9zk/maps/au/north/"; ++ String url12_scope = "http://www.9oo91e.qjz9zk:8000/maps/au/"; ++ String url15_scope = "https://www.9oo91e.qjz9zk/a=b/"; + + assertEquals(url2_scope, ShortcutHelper.getScopeFromUrl(url1)); + assertEquals(url2_scope, ShortcutHelper.getScopeFromUrl(url2)); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java +@@ -89,9 +89,9 @@ public class SearchOfflineItemFilterTest { + + @Test + public void testUrlFiltering() { +- OfflineItem item1 = buildItem("", "http://www.google.com"); +- OfflineItem item2 = buildItem("", "http://www.google.com/dogs"); +- OfflineItem item3 = buildItem("", "http://www.google.com/dogs-are-fun"); ++ OfflineItem item1 = buildItem("", "http://www.9oo91e.qjz9zk"); ++ OfflineItem item2 = buildItem("", "http://www.9oo91e.qjz9zk/dogs"); ++ OfflineItem item3 = buildItem("", "http://www.9oo91e.qjz9zk/dogs-are-fun"); + Collection sourceItems = CollectionUtil.newHashSet(item1, item2, item3); + when(mSource.getItems()).thenReturn(sourceItems); + +@@ -139,9 +139,9 @@ public class SearchOfflineItemFilterTest { + + @Test + public void testUrlOrTitleFiltering() { +- OfflineItem item1 = buildItem("cat", "http://www.google.com/dog"); +- OfflineItem item2 = buildItem("dog", "http://www.google.com/cat"); +- OfflineItem item3 = buildItem("cow", "http://www.google.com/pig"); ++ OfflineItem item1 = buildItem("cat", "http://www.9oo91e.qjz9zk/dog"); ++ OfflineItem item2 = buildItem("dog", "http://www.9oo91e.qjz9zk/cat"); ++ OfflineItem item3 = buildItem("cow", "http://www.9oo91e.qjz9zk/pig"); + Collection sourceItems = CollectionUtil.newHashSet(item1, item2, item3); + when(mSource.getItems()).thenReturn(sourceItems); + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java +@@ -32,112 +32,112 @@ public class ShareUtilsTest { + @Test + public void testAction() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertEquals(Intent.ACTION_SEND, intent.getAction()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", null))); + Assert.assertEquals(Intent.ACTION_SEND, intent.getAction()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("", "text/plain", "", "http://www.chrome.com"))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("", "text/plain", "", "http://www.ch40me.qjz9zk"))); + Assert.assertEquals(Intent.ACTION_SEND_MULTIPLE, intent.getAction()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("", "text/plain", "", "http://www.chrome.com"))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("", "text/plain", "", "http://www.ch40me.qjz9zk"))); + Assert.assertEquals(Intent.ACTION_SEND_MULTIPLE, intent.getAction()); + } + + @Test + public void testFlags() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertNotEquals(0, intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK); + } + + @Test + public void testExtraText() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); +- Assert.assertEquals("http://www.google.com", intent.getStringExtra(Intent.EXTRA_TEXT)); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); ++ Assert.assertEquals("http://www.9oo91e.qjz9zk", intent.getStringExtra(Intent.EXTRA_TEXT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", "http://www.chrome.com"))); +- Assert.assertEquals("http://www.google.com", intent.getStringExtra(Intent.EXTRA_TEXT)); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", "http://www.ch40me.qjz9zk"))); ++ Assert.assertEquals("http://www.9oo91e.qjz9zk", intent.getStringExtra(Intent.EXTRA_TEXT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", null))); +- Assert.assertEquals("http://www.google.com\nhttp://www.chrome.com", ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", null))); ++ Assert.assertEquals("http://www.9oo91e.qjz9zk\nhttp://www.ch40me.qjz9zk", + intent.getStringExtra(Intent.EXTRA_TEXT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_TEXT)); + } + + @Test + public void testExtraSubject() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "title", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "title", null))); + Assert.assertEquals("title", intent.getStringExtra(Intent.EXTRA_SUBJECT)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "title1", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "title1", null), + createItem( +- "http://www.chrome.com", "text/plain", "title2", "http://www.chrome.com"))); ++ "http://www.ch40me.qjz9zk", "text/plain", "title2", "http://www.ch40me.qjz9zk"))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_SUBJECT)); + } + + @Test + public void testExtraStream() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_STREAM)); + Assert.assertNull(intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"))); + Assert.assertEquals( +- Uri.parse("http://www.google.com"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); ++ Uri.parse("http://www.9oo91e.qjz9zk"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", "http://www.google.com"))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", "http://www.9oo91e.qjz9zk"))); + Assert.assertEquals( +- Uri.parse("http://www.google.com"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); ++ Uri.parse("http://www.9oo91e.qjz9zk"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("http://www.chrome.com", "text/plain", "", ""))); ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", ""))); + Assert.assertEquals( +- Uri.parse("http://www.google.com"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); ++ Uri.parse("http://www.9oo91e.qjz9zk"), intent.getParcelableExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("http://www.chrome.com", "text/plain", "", "http://www.chrome.com"))); +- Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.google.com"), +- Uri.parse("http://www.chrome.com")), ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", "http://www.ch40me.qjz9zk"))); ++ Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.9oo91e.qjz9zk"), ++ Uri.parse("http://www.ch40me.qjz9zk")), + intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("", "text/plain", "", "http://www.google.com"), +- createItem("", "text/plain", "", "http://www.chrome.com"))); +- Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.google.com"), +- Uri.parse("http://www.chrome.com")), ++ createItem("", "text/plain", "", "http://www.9oo91e.qjz9zk"), ++ createItem("", "text/plain", "", "http://www.ch40me.qjz9zk"))); ++ Assert.assertEquals(CollectionUtil.newArrayList(Uri.parse("http://www.9oo91e.qjz9zk"), ++ Uri.parse("http://www.ch40me.qjz9zk")), + intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_STREAM)); + Assert.assertNull(intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.chrome.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.ch40me.qjz9zk", "text/plain", "", null))); + Assert.assertFalse(intent.hasExtra(Intent.EXTRA_STREAM)); + Assert.assertNull(intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); + } +@@ -145,19 +145,19 @@ public class ShareUtilsTest { + @Test + public void testType() { + Intent intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null))); + Assert.assertEquals(Intent.normalizeMimeType("text/plain"), intent.getType()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.google.com", "text/html", "", null), +- createItem("http://www.google.com", "text/html", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/html", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "text/html", "", null))); + Assert.assertEquals(Intent.normalizeMimeType("text/*"), intent.getType()); + + intent = ShareUtils.createIntent(CollectionUtil.newArrayList( +- createItem("http://www.google.com", "text/plain", "", null), +- createItem("http://www.google.com", "application/octet-stream", "", null))); ++ createItem("http://www.9oo91e.qjz9zk", "text/plain", "", null), ++ createItem("http://www.9oo91e.qjz9zk", "application/octet-stream", "", null))); + Assert.assertEquals(Intent.normalizeMimeType("*/*"), intent.getType()); + } + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java +@@ -27,7 +27,7 @@ public class ExploreSitesCategoryUnitTest { + final int interactionCount = 3; + final int siteId = 100; + final String title = "test"; +- final String url = "http://www.google.com"; ++ final String url = "http://www.9oo91e.qjz9zk"; + final String categoryTitle = "Movies"; + + ExploreSitesCategory category = +@@ -61,10 +61,10 @@ public class ExploreSitesCategoryUnitTest { + final String title2 = "Chromium"; + final String title3 = "YouTube"; + final String title4 = "GMail"; +- final String url1 = "http://www.google.com"; +- final String url2 = "http://chromium.org"; +- final String url3 = "http://youtube.com"; +- final String url4 = "http://gmail.com"; ++ final String url1 = "http://www.9oo91e.qjz9zk"; ++ final String url2 = "http://ch40m1um.qjz9zk"; ++ final String url3 = "http://y0u1ub3.qjz9zk"; ++ final String url4 = "http://9ma1l.qjz9zk"; + final String categoryTitle = "Science"; + + ExploreSitesCategory category = new ExploreSitesCategory( +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java +@@ -38,7 +38,7 @@ import java.util.List; + public class FirstRunFlowSequencerTest { + /** Information for Google OS account */ + private static final String GOOGLE_ACCOUNT_TYPE = "com.google"; +- private static final String DEFAULT_ACCOUNT = "test@gmail.com"; ++ private static final String DEFAULT_ACCOUNT = "test@9ma1l.qjz9zk"; + + /** + * Testing version of FirstRunFlowSequencer that allows us to override all needed checks. +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java +@@ -30,7 +30,7 @@ import java.util.Set; + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE) + public class ToSAckedReceiverTest { +- private static final String GOOGLE_ACCOUNT = "TestyMcTesterson@gmail.com"; ++ private static final String GOOGLE_ACCOUNT = "TestyMcTesterson@9ma1l.qjz9zk"; + + private ToSAckedReceiver mReceiver; + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java +@@ -124,7 +124,7 @@ public class NativePageFactoryTest { + null, + "", + "newtab", +- "newtab@google.com:80", ++ "newtab@9oo91e.qjz9zk:80", + "/newtab", + "://newtab", + "chrome://", +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java +@@ -47,7 +47,7 @@ import java.util.List; + public class CctOfflinePageModelObserverTest { + private static final String APP_NAME = "abc.xyz"; + private static final String ORIGIN_STRING = "[abc.xyz, []]"; +- private static final String URL = "http://www.google.com"; ++ private static final String URL = "http://www.9oo91e.qjz9zk"; + + @Mock + private Context mContext; +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java +@@ -26,7 +26,7 @@ import java.io.StringWriter; + public class ResponseParserTest { + // Note that the Omaha server appends "/" to the end of the URL codebase. + private static final String STRIPPED_URL = +- "https://play.google.com/store/apps/details?id=com.google.android.apps.chrome"; ++ "https://play.9oo91e.qjz9zk/store/apps/details?id=com.google.android.apps.chrome"; + private static final String URL = STRIPPED_URL + "/"; + private static final String NEXT_VERSION = "1.2.3.4"; + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java +@@ -1084,7 +1084,7 @@ public class AutocompleteEditTextTest { + } + + private void internalTestAppend_AfterSelectAll() { +- final String url = "https://www.google.com/"; ++ final String url = "https://www.9oo91e.qjz9zk/"; + mAutocomplete.setText(url); + mAutocomplete.setSelection(0, url.length()); + assertTrue(mAutocomplete.isCursorVisible()); +@@ -1109,7 +1109,7 @@ public class AutocompleteEditTextTest { + } + + private void internalTestIgnoreAndGet() { +- final String url = "https://www.google.com/"; ++ final String url = "https://www.9oo91e.qjz9zk/"; + mAutocomplete.setIgnoreTextChangesForAutocomplete(true); + mAutocomplete.setText(url); + mAutocomplete.setIgnoreTextChangesForAutocomplete(false); +@@ -1146,7 +1146,7 @@ public class AutocompleteEditTextTest { + } + + private void internalTestFocusInAndSelectAll() { +- final String url = "https://google.com"; ++ final String url = "https://9oo91e.qjz9zk"; + final int len = url.length(); + mAutocomplete.setIgnoreTextChangesForAutocomplete(true); + mAutocomplete.setText(url); +@@ -1260,14 +1260,14 @@ public class AutocompleteEditTextTest { + assertTrue(mInputConnection.setComposingText("goo", 1)); + assertTrue(mAutocomplete.shouldAutocomplete()); + mAutocomplete.setAutocompleteText("goo", "gle.com"); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + // User presses 'GO' key on the keyboard. + assertTrue(mInputConnection.commitText("goo", 1)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + assertTrue(mInputConnection.performEditorAction(EditorInfo.IME_ACTION_GO)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + } + + // crbug.com/810704 +@@ -1278,20 +1278,20 @@ public class AutocompleteEditTextTest { + assertTrue(mInputConnection.setComposingText("goo", 1)); + assertTrue(mAutocomplete.shouldAutocomplete()); + mAutocomplete.setAutocompleteText("goo", "gle.com"); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + // User presses 'GO' key on the keyboard. + mInputConnection.beginBatchEdit(); + + assertTrue(mInputConnection.commitText("goo", 1)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + assertTrue(mInputConnection.performEditorAction(EditorInfo.IME_ACTION_GO)); +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + + mInputConnection.endBatchEdit(); + +- assertEquals("google.com", mAutocomplete.getText().toString()); ++ assertEquals("9oo91e.qjz9zk", mAutocomplete.getText().toString()); + } + + // crbug.com/759876 +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/UrlBarUnitTest.java +@@ -52,13 +52,13 @@ public class UrlBarUnitTest { + @MinAndroidSdkLevel(Build.VERSION_CODES.O) + @Feature("Omnibox") + public void testAutofillStructureReceivesFullURL() { +- mUrlBar.setTextForAutofillServices("https://www.google.com"); +- mUrlBar.setText("www.google.com"); ++ mUrlBar.setTextForAutofillServices("https://www.9oo91e.qjz9zk"); ++ mUrlBar.setText("www.9oo91e.qjz9zk"); + mUrlBar.onProvideAutofillStructure(mViewStructure, 0); + + ArgumentCaptor haveUrl = + ArgumentCaptor.forClass(SpannableStringBuilder.class); + verify(mViewStructure).setText(haveUrl.capture()); +- Assert.assertEquals("https://www.google.com", haveUrl.getValue().toString()); ++ Assert.assertEquals("https://www.9oo91e.qjz9zk", haveUrl.getValue().toString()); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java +@@ -50,7 +50,7 @@ import java.util.HashSet; + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE) + public class GeolocationHeaderUnitTest { +- private static final String SEARCH_URL = "https://www.google.com/search?q=potatoes"; ++ private static final String SEARCH_URL = "https://www.9oo91e.qjz9zk/search?q=potatoes"; + + private static final double LOCATION_LAT = 20.3; + private static final double LOCATION_LONG = 155.8; +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java +@@ -48,7 +48,7 @@ import java.util.HashMap; + @RunWith(BaseRobolectricTestRunner.class) + @Config(manifest = Config.NONE, shadows = {ShadowRecordHistogram.class}) + public final class SearchEngineChoiceNotificationTest { +- private static final String TEST_INITIAL_ENGINE = "google.com"; ++ private static final String TEST_INITIAL_ENGINE = "9oo91e.qjz9zk"; + private static final String TEST_ALTERNATIVE_ENGINE = "duckduckgo.com"; + + @Rule +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java +@@ -209,9 +209,9 @@ public class SigninManagerTest { + + @Test + public void callbackNotifiedOnSignin() { +- CoreAccountInfo account = new CoreAccountInfo(new CoreAccountId("test_at_gmail.com"), +- new Account("test@gmail.com", AccountManagerFacade.GOOGLE_ACCOUNT_TYPE), +- "test_at_gmail.com"); ++ CoreAccountInfo account = new CoreAccountInfo(new CoreAccountId("test_at_9ma1l.qjz9zk"), ++ new Account("test@9ma1l.qjz9zk", AccountManagerFacade.GOOGLE_ACCOUNT_TYPE), ++ "test_at_9ma1l.qjz9zk"); + + // No need to seed accounts to the native code. + doReturn(true).when(mAccountTrackerService).checkAndSeedSystemAccounts(); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java +@@ -107,33 +107,33 @@ public class SigninPromoUtilTest { + // Old implementation hasn't been storing account list + when(mPreferenceManager.getSigninPromoLastAccountNames()).thenReturn(null); + Assert.assertTrue(SigninPromoUtil.shouldLaunchSigninPromo( +- mPreferenceManager, 42, false, false, accountsSupplier("test@gmail.com"))); ++ mPreferenceManager, 42, false, false, accountsSupplier("test@9ma1l.qjz9zk"))); + } + + @Test + public void whenHasNewAccountShouldReturnTrue() { + when(mPreferenceManager.getSigninPromoLastShownVersion()).thenReturn(40); + when(mPreferenceManager.getSigninPromoLastAccountNames()) +- .thenReturn(ImmutableSet.of("test@gmail.com")); ++ .thenReturn(ImmutableSet.of("test@9ma1l.qjz9zk")); + Assert.assertTrue(SigninPromoUtil.shouldLaunchSigninPromo(mPreferenceManager, 42, false, +- false, accountsSupplier("test@gmail.com", "test2@gmail.com"))); ++ false, accountsSupplier("test@9ma1l.qjz9zk", "test2@9ma1l.qjz9zk"))); + } + + @Test + public void whenAccountListUnchangedShouldReturnFalse() { + when(mPreferenceManager.getSigninPromoLastShownVersion()).thenReturn(40); + when(mPreferenceManager.getSigninPromoLastAccountNames()) +- .thenReturn(ImmutableSet.of("test@gmail.com")); ++ .thenReturn(ImmutableSet.of("test@9ma1l.qjz9zk")); + Assert.assertFalse(SigninPromoUtil.shouldLaunchSigninPromo( +- mPreferenceManager, 42, false, false, accountsSupplier("test@gmail.com"))); ++ mPreferenceManager, 42, false, false, accountsSupplier("test@9ma1l.qjz9zk"))); + } + + @Test + public void whenNoNewAccountsShouldReturnFalse() { + when(mPreferenceManager.getSigninPromoLastShownVersion()).thenReturn(40); + when(mPreferenceManager.getSigninPromoLastAccountNames()) +- .thenReturn(ImmutableSet.of("test@gmail.com", "test2@gmail.com")); ++ .thenReturn(ImmutableSet.of("test@9ma1l.qjz9zk", "test2@9ma1l.qjz9zk")); + Assert.assertFalse(SigninPromoUtil.shouldLaunchSigninPromo( +- mPreferenceManager, 42, false, false, accountsSupplier("test2@gmail.com"))); ++ mPreferenceManager, 42, false, false, accountsSupplier("test2@9ma1l.qjz9zk"))); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/tile/TileGroupUnitTest.java +@@ -66,7 +66,7 @@ import java.util.List; + public class TileGroupUnitTest { + private static final int MAX_TILES_TO_FETCH = 4; + private static final int TILE_TITLE_LINES = 1; +- private static final String[] URLS = {"https://www.google.com", "https://tellmedadjokes.com"}; ++ private static final String[] URLS = {"https://www.9oo91e.qjz9zk", "https://tellmedadjokes.com"}; + + @Rule + public TestRule mFeaturesProcessor = new Features.JUnitProcessor(); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/tasks/JourneyManagerTest.java +@@ -348,7 +348,7 @@ public final class JourneyManagerTest { + + mTabModelSelectorTabObserver.onShown(mTab, TabSelectionType.FROM_USER); + +- LoadUrlParams params = new LoadUrlParams("http://google.com", PageTransition.FORWARD_BACK); ++ LoadUrlParams params = new LoadUrlParams("http://9oo91e.qjz9zk", PageTransition.FORWARD_BACK); + + mTabModelSelectorTabObserver.onLoadUrl(mTab, params, 0); + +@@ -374,7 +374,7 @@ public final class JourneyManagerTest { + mTabModelSelectorTabObserver.onShown(mTab, TabSelectionType.FROM_USER); + + LoadUrlParams params = new LoadUrlParams( +- "http://google.com", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); ++ "http://9oo91e.qjz9zk", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); + + mTabModelSelectorTabObserver.onLoadUrl(mTab, params, 0); + +@@ -400,7 +400,7 @@ public final class JourneyManagerTest { + mTabModelSelectorTabObserver.onShown(mTab, TabSelectionType.FROM_USER); + + LoadUrlParams params = new LoadUrlParams( +- "http://google.com", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); ++ "http://9oo91e.qjz9zk", PageTransition.FROM_ADDRESS_BAR | PageTransition.TYPED); + + mTabModelSelectorTabObserver.onLoadUrl(mTab, params, 0); + +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java +@@ -128,16 +128,16 @@ public class UrlUtilitiesUnitTest { + @Test + public void testStripScheme() { + // Only scheme gets stripped. +- Assert.assertEquals("cs.chromium.org", UrlUtilities.stripScheme("https://cs.chromium.org")); +- Assert.assertEquals("cs.chromium.org", UrlUtilities.stripScheme("http://cs.chromium.org")); ++ Assert.assertEquals("cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme("https://cs.ch40m1um.qjz9zk")); ++ Assert.assertEquals("cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme("http://cs.ch40m1um.qjz9zk")); + // If there is no scheme, nothing changes. +- Assert.assertEquals("cs.chromium.org", UrlUtilities.stripScheme("cs.chromium.org")); ++ Assert.assertEquals("cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme("cs.ch40m1um.qjz9zk")); + // Path is not touched/changed. +- String urlWithPath = "code.google.com/p/chromium/codesearch#search" ++ String urlWithPath = "code.9oo91e.qjz9zk/p/chromium/codesearch#search" + + "/&q=testStripScheme&sq=package:chromium&type=cs"; + Assert.assertEquals(urlWithPath, UrlUtilities.stripScheme("https://" + urlWithPath)); + // Beginning and ending spaces get trimmed. + Assert.assertEquals( +- "cs.chromium.org", UrlUtilities.stripScheme(" https://cs.chromium.org ")); ++ "cs.ch40m1um.qjz9zk", UrlUtilities.stripScheme(" https://cs.ch40m1um.qjz9zk ")); + } + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java +@@ -42,8 +42,8 @@ public class WebApkInfoTest { + private static final String UNBOUND_WEBAPK_PACKAGE_NAME = "unbound.webapk"; + + // Android Manifest meta data for {@link PACKAGE_NAME}. +- private static final String START_URL = "https://www.google.com/scope/a_is_for_apple"; +- private static final String SCOPE = "https://www.google.com/scope"; ++ private static final String START_URL = "https://www.9oo91e.qjz9zk/scope/a_is_for_apple"; ++ private static final String SCOPE = "https://www.9oo91e.qjz9zk/scope"; + private static final String NAME = "name"; + private static final String SHORT_NAME = "short_name"; + private static final String DISPLAY_MODE = "minimal-ui"; +@@ -51,8 +51,8 @@ public class WebApkInfoTest { + private static final String THEME_COLOR = "1L"; + private static final String BACKGROUND_COLOR = "2L"; + private static final int SHELL_APK_VERSION = 3; +- private static final String MANIFEST_URL = "https://www.google.com/alphabet.json"; +- private static final String ICON_URL = "https://www.google.com/scope/worm.png"; ++ private static final String MANIFEST_URL = "https://www.9oo91e.qjz9zk/alphabet.json"; ++ private static final String ICON_URL = "https://www.9oo91e.qjz9zk/scope/worm.png"; + private static final String ICON_MURMUR2_HASH = "5"; + private static final int SOURCE = ShortcutSource.NOTIFICATION; + +@@ -206,7 +206,7 @@ public class WebApkInfoTest { + */ + @Test + public void testUseStartUrlOverride() { +- String intentStartUrl = "https://www.google.com/master_override"; ++ String intentStartUrl = "https://www.9oo91e.qjz9zk/master_override"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, START_URL); +@@ -231,7 +231,7 @@ public class WebApkInfoTest { + @Test + public void testDefaultScopeFromManifestStartUrl() { + String manifestStartUrl = START_URL; +- String intentStartUrl = "https://www.google.com/a/b/c"; ++ String intentStartUrl = "https://www.9oo91e.qjz9zk/a/b/c"; + + String scopeFromManifestStartUrl = ShortcutHelper.getScopeFromUrl(manifestStartUrl); + String scopeFromIntentStartUrl = ShortcutHelper.getScopeFromUrl(intentStartUrl); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java +@@ -137,7 +137,7 @@ public class WebappDataStorageTest { + @Test + @Feature({"Webapp"}) + public void testScopeRetrieval() { +- String scope = "http://drive.google.com"; ++ String scope = "http://drive.9oo91e.qjz9zk"; + mSharedPreferences.edit().putString(WebappDataStorage.KEY_SCOPE, scope).apply(); + assertEquals(scope, new WebappDataStorage("test").getScope()); + } +@@ -145,7 +145,7 @@ public class WebappDataStorageTest { + @Test + @Feature({"Webapp"}) + public void testUrlRetrieval() { +- String url = "https://www.google.com"; ++ String url = "https://www.9oo91e.qjz9zk"; + mSharedPreferences.edit().putString(WebappDataStorage.KEY_URL, url).apply(); + assertEquals(url, new WebappDataStorage("test").getUrl()); + } +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java +@@ -43,7 +43,7 @@ public class WebappInfoTest { + String id = "webapp id"; + String name = "longName"; + String shortName = "name"; +- String url = "http://google.com"; ++ String url = "http://9oo91e.qjz9zk"; + + Intent intent = WebappTestHelper.createMinimalWebappIntent(id, url); + intent.putExtra(ShortcutHelper.EXTRA_NAME, name); +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java +@@ -23,7 +23,7 @@ import org.chromium.webapk.test.WebApkTestHelper; + @Config(manifest = Config.NONE) + public class WebappLauncherActivityTest { + private static final String WEBAPK_PACKAGE_NAME = "org.chromium.webapk.test_package"; +- private static final String START_URL = "https://www.google.com/scope/a_is_for_apple"; ++ private static final String START_URL = "https://www.9oo91e.qjz9zk/scope/a_is_for_apple"; + + /** + * Test that WebappLauncherActivity#tryCreateWebappInfo() modifies the passed-in intent so +diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java +--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java ++++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java +@@ -157,8 +157,8 @@ public class WebappRegistryTest { + public void testUnregisterClearsRegistry() throws Exception { + Map apps = new HashMap<>(); + apps.put("webapp1", "http://example.com/index.html"); +- apps.put("webapp2", "https://www.google.com/foo/bar"); +- apps.put("webapp3", "https://www.chrome.com"); ++ apps.put("webapp2", "https://www.9oo91e.qjz9zk/foo/bar"); ++ apps.put("webapp3", "https://www.ch40me.qjz9zk"); + + for (Map.Entry app : apps.entrySet()) { + registerWebapp(app.getKey(), createShortcutWebappInfo(app.getValue())); +@@ -185,8 +185,8 @@ public class WebappRegistryTest { + public void testUnregisterClearsWebappDataStorage() throws Exception { + Map apps = new HashMap<>(); + apps.put("webapp1", "http://example.com/index.html"); +- apps.put("webapp2", "https://www.google.com/foo/bar"); +- apps.put("webapp3", "https://www.chrome.com"); ++ apps.put("webapp2", "https://www.9oo91e.qjz9zk/foo/bar"); ++ apps.put("webapp3", "https://www.ch40me.qjz9zk"); + + for (Map.Entry app : apps.entrySet()) { + registerWebapp(app.getKey(), createShortcutWebappInfo(app.getValue())); +@@ -421,8 +421,8 @@ public class WebappRegistryTest { + @Test + @Feature({"Webapp"}) + public void testClearWebappHistory() throws Exception { +- final String webapp1Url = "https://www.google.com"; +- final String webapp2Url = "https://drive.google.com"; ++ final String webapp1Url = "https://www.9oo91e.qjz9zk"; ++ final String webapp2Url = "https://drive.9oo91e.qjz9zk"; + WebappInfo webappInfo1 = createShortcutWebappInfo(webapp1Url); + WebappInfo webappInfo2 = createShortcutWebappInfo(webapp2Url); + +@@ -521,8 +521,8 @@ public class WebappRegistryTest { + @Test + @Feature({"Webapp"}) + public void testUpdateAfterClearWebappHistory() throws Exception { +- final String webappUrl = "http://www.google.com"; +- final String webappScope = "http://www.google.com/"; ++ final String webappUrl = "http://www.9oo91e.qjz9zk"; ++ final String webappScope = "http://www.9oo91e.qjz9zk/"; + final WebappInfo webappInfo = createShortcutWebappInfo(webappUrl); + registerWebapp("webapp", webappInfo); + +@@ -556,20 +556,20 @@ public class WebappRegistryTest { + public void testGetWebappDataStorageForUrl() throws Exception { + // Ensure that getWebappDataStorageForUrl returns the correct WebappDataStorage object. + // URLs should return the WebappDataStorage with the longest scope that the URL starts with. +- final String webapp1Url = "https://www.google.com/"; +- final String webapp2Url = "https://drive.google.com/"; +- final String webapp3Url = "https://www.google.com/drive/index.html"; +- final String webapp4Url = "https://www.google.com/drive/docs/index.html"; +- +- final String webapp3Scope = "https://www.google.com/drive/"; +- final String webapp4Scope = "https://www.google.com/drive/docs/"; +- +- final String test1Url = "https://www.google.com/index.html"; +- final String test2Url = "https://www.google.com/drive/recent.html"; +- final String test3Url = "https://www.google.com/drive/docs/recent.html"; +- final String test4Url = "https://www.google.com/drive/docs/recent/index.html"; +- final String test5Url = "https://drive.google.com/docs/recent/trash"; +- final String test6Url = "https://maps.google.com/"; ++ final String webapp1Url = "https://www.9oo91e.qjz9zk/"; ++ final String webapp2Url = "https://drive.9oo91e.qjz9zk/"; ++ final String webapp3Url = "https://www.9oo91e.qjz9zk/drive/index.html"; ++ final String webapp4Url = "https://www.9oo91e.qjz9zk/drive/docs/index.html"; ++ ++ final String webapp3Scope = "https://www.9oo91e.qjz9zk/drive/"; ++ final String webapp4Scope = "https://www.9oo91e.qjz9zk/drive/docs/"; ++ ++ final String test1Url = "https://www.9oo91e.qjz9zk/index.html"; ++ final String test2Url = "https://www.9oo91e.qjz9zk/drive/recent.html"; ++ final String test3Url = "https://www.9oo91e.qjz9zk/drive/docs/recent.html"; ++ final String test4Url = "https://www.9oo91e.qjz9zk/drive/docs/recent/index.html"; ++ final String test5Url = "https://drive.9oo91e.qjz9zk/docs/recent/trash"; ++ final String test6Url = "https://maps.9oo91e.qjz9zk/"; + + WebappInfo webappInfo1 = createShortcutWebappInfo(webapp1Url); + WebappInfo webappInfo2 = createShortcutWebappInfo(webapp2Url); +diff --git a/chrome/android/webapk/PRESUBMIT.py b/chrome/android/webapk/PRESUBMIT.py +--- a/chrome/android/webapk/PRESUBMIT.py ++++ b/chrome/android/webapk/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for changes affecting chrome/android/webapk/shell_apk:webapk + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + + This presubmit checks for three rules: +diff --git a/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java b/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java +--- a/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java ++++ b/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java +@@ -45,7 +45,7 @@ public class WebApkValidatorTest { + private static final String TEST_DATA_DIR = "webapks/"; + private static final String TEST_STARTURL = "https://non-empty.com/starturl"; + private static final String MAPSLITE_PACKAGE_NAME = "com.google.android.apps.mapslite"; +- private static final String MAPSLITE_EXAMPLE_STARTURL = "https://www.google.com/maps"; ++ private static final String MAPSLITE_EXAMPLE_STARTURL = "https://www.9oo91e.qjz9zk/maps"; + + private static final byte[] EXPECTED_SIGNATURE = new byte[] {48, -126, 3, -121, 48, -126, 2, + 111, -96, 3, 2, 1, 2, 2, 4, 20, -104, -66, -126, 48, 13, 6, 9, 42, -122, 72, -122, -9, +diff --git a/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java b/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java +--- a/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java ++++ b/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkValidator.java +@@ -40,7 +40,7 @@ public class WebApkValidator { + private static final String KEY_FACTORY = "EC"; // aka "ECDSA" + private static final String MAPSLITE_PACKAGE_NAME = "com.google.android.apps.mapslite"; + private static final String MAPSLITE_URL_PREFIX = +- "https://www.google.com/maps"; // Matches scope. ++ "https://www.9oo91e.qjz9zk/maps"; // Matches scope. + private static final boolean DEBUG = false; + + private static byte[] sExpectedSignature; +diff --git a/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java b/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java +--- a/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java ++++ b/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataUtils.java +@@ -19,7 +19,7 @@ public class WebApkMetaDataUtils { + String value = metaData.getString(name); + + // The value should be terminated with 'L' to force the value to be a string. According to +- // https://developer.android.com/guide/topics/manifest/meta-data-element.html numeric ++ // https://developer.8n6r01d.qjz9zk/guide/topics/manifest/meta-data-element.html numeric + // meta data values can only be retrieved via {@link Bundle#getInt()} and + // {@link Bundle#getFloat()}. We cannot use {@link Bundle#getFloat()} due to loss of + // precision. +diff --git a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java +--- a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java ++++ b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/HostBrowserLauncherParamsTest.java +@@ -35,20 +35,20 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("foo", "bar")); + + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?title=mytitle&foo=bar", uri); + + uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst/", params); +- Assert.assertEquals("https://www.chromium.org/wst/?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/wst/", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst/?title=mytitle&foo=bar", uri); + + uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/base/wst.html", params); +- Assert.assertEquals("https://www.chromium.org/base/wst.html?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/base/wst.html", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/base/wst.html?title=mytitle&foo=bar", uri); + + uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/base/wst.html/", params); +- Assert.assertEquals("https://www.chromium.org/base/wst.html/?title=mytitle&foo=bar", uri); ++ "https://www.ch40m1um.qjz9zk/base/wst.html/", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/base/wst.html/?title=mytitle&foo=bar", uri); + } + + /* +@@ -65,8 +65,8 @@ public class HostBrowserLauncherParamsTest { + // The baseUrl, shareAction and params are checked to be non-null in + // HostBrowserLauncherParams#extractShareTarget. + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst?hello=world", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?hello=world", uri); + } + + /* +@@ -79,8 +79,8 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>(null, null)); + params.add(new Pair<>(null, null)); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst", uri); + } + + /* +@@ -93,8 +93,8 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("a", null)); + params.add(new Pair<>(null, "b")); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst", params); +- Assert.assertEquals("https://www.chromium.org/wst", uri); ++ "https://www.ch40m1um.qjz9zk/wst", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst", uri); + } + + /* +@@ -107,8 +107,8 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("hello", "world")); + params.add(new Pair<>("foobar", "baz")); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst?a=b&c=d", params); +- Assert.assertEquals("https://www.chromium.org/wst?hello=world&foobar=baz", uri); ++ "https://www.ch40m1um.qjz9zk/wst?a=b&c=d", params); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?hello=world&foobar=baz", uri); + } + + /* +@@ -122,9 +122,9 @@ public class HostBrowserLauncherParamsTest { + params.add(new Pair<>("foo bar", "baz")); + params.add(new Pair<>("a!\"#$%&'()*+,-./0?@[\\]^_a`{}~", "b")); + String uri = HostBrowserLauncherParams.createGETWebShareTargetUriString( +- "https://www.chromium.org/wst%25%20space", params); ++ "https://www.ch40m1um.qjz9zk/wst%25%20space", params); + Assert.assertEquals( +- "https://www.chromium.org/wst%25%20space?hello=world+!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~&foo+bar=baz&a!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~=b", ++ "https://www.ch40m1um.qjz9zk/wst%25%20space?hello=world+!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~&foo+bar=baz&a!%22%23%24%25%26'()*%2B%2C-.%2F0%3F%40%5B%5C%5D%5E_a%60%7B%7D~=b", + uri); + } + +@@ -137,7 +137,7 @@ public class HostBrowserLauncherParamsTest { + Intent intent = new Intent(); + Bundle metaData = new Bundle(); + +- String shareAction = "https://www.chromium.org/wst"; ++ String shareAction = "https://www.ch40m1um.qjz9zk/wst"; + metaData.putString(WebApkMetaDataKeys.SHARE_ACTION, shareAction); + metaData.putString(WebApkMetaDataKeys.SHARE_METHOD, "GET"); + metaData.putString(WebApkMetaDataKeys.SHARE_PARAM_TITLE, "hello"); +@@ -151,7 +151,7 @@ public class HostBrowserLauncherParamsTest { + String postUri = + HostBrowserLauncherParams.computeStartUrlForShareTarget(metaData, intent); + +- Assert.assertEquals("https://www.chromium.org/wst?hello=world", getUri); ++ Assert.assertEquals("https://www.ch40m1um.qjz9zk/wst?hello=world", getUri); + Assert.assertEquals(shareAction, postUri); + } + } +diff --git a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java +--- a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java ++++ b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java +@@ -50,10 +50,10 @@ public final class MainActivityTest { + @Test + public void testIntentUrlOutOfScopeBecauseOfScheme() { + final String intentStartUrl = "geo:0,0?q=Kenora"; +- final String manifestStartUrl = "https://www.google.com/index.html"; +- final String manifestScope = "https://www.google.com/"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/index.html"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/"; + final String expectedStartUrl = +- "https://www.google.com/index.html?originalUrl=geo%3A0%2C0%3Fq%3DKenora"; ++ "https://www.9oo91e.qjz9zk/index.html?originalUrl=geo%3A0%2C0%3Fq%3DKenora"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -76,11 +76,11 @@ public final class MainActivityTest { + */ + @Test + public void testIntentUrlOutOfScopeBecauseOfPath() { +- final String intentStartUrl = "https://www.google.com/maps/"; +- final String manifestStartUrl = "https://www.google.com/maps/contrib/startUrl"; +- final String manifestScope = "https://www.google.com/maps/contrib/"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/maps/"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps/contrib/startUrl"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/maps/contrib/"; + final String expectedStartUrl = +- "https://www.google.com/maps/contrib/startUrl?originalUrl=https%3A%2F%2Fwww.google.com%2Fmaps%2F"; ++ "https://www.9oo91e.qjz9zk/maps/contrib/startUrl?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2F"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -103,11 +103,11 @@ public final class MainActivityTest { + */ + @Test + public void testRewriteStartUrlInsideScope() { +- final String intentStartUrl = "https://www.google.com/maps/address?A=a"; +- final String manifestStartUrl = "https://www.google.com/maps/startUrl"; +- final String manifestScope = "https://www.google.com/maps"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/maps/address?A=a"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps/startUrl"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/maps"; + final String expectedStartUrl = +- "https://www.google.com/maps/startUrl?originalUrl=https%3A%2F%2Fwww.google.com%2Fmaps%2Faddress%3FA%3Da"; ++ "https://www.9oo91e.qjz9zk/maps/startUrl?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2Faddress%3FA%3Da"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -131,9 +131,9 @@ public final class MainActivityTest { + @Test + public void testNotRewriteStartUrlWhenContainsTheQueryParameterToAppend() { + final String intentStartUrl = +- "https://www.google.com/maps/startUrl?originalUrl=https%3A%2F%2Fwww.google.com%2Fmaps%2Faddress%3FA%3Da"; +- final String manifestStartUrl = "https://www.google.com/maps/startUrl"; +- final String manifestScope = "https://www.google.com/maps"; ++ "https://www.9oo91e.qjz9zk/maps/startUrl?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2Faddress%3FA%3Da"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps/startUrl"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk/maps"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -158,11 +158,11 @@ public final class MainActivityTest { + */ + @Test + public void testRewriteUnicodeHost() { +- final String intentStartUrl = "https://www.google.com/"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/"; + final String manifestStartUrl = "https://www.☺.com/"; + final String scope = "https://www.☺.com/"; + final String expectedStartUrl = +- "https://www.☺.com/?originalUrl=https%3A%2F%2Fwww.google.com%2F"; ++ "https://www.☺.com/?originalUrl=https%3A%2F%2Fwww.9oo91e.qjz9zk%2F"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, manifestStartUrl); +@@ -189,7 +189,7 @@ public final class MainActivityTest { + mBrowserInstaller.setInstalledBrowserWithVersion( + nonChromeBrowserPackageName, "10000.0.000.0"); + +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, startUrl); +@@ -213,7 +213,7 @@ public final class MainActivityTest { + public void testShouldLaunchInTabWhenChromeVersionIsTooLow() throws Exception { + mBrowserInstaller.setInstalledBrowserWithVersion(BROWSER_PACKAGE_NAME, "56.0.000.0"); + +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, startUrl); +@@ -237,7 +237,7 @@ public final class MainActivityTest { + public void testShouldNotLaunchInTabWithNewVersionOfChrome() throws Exception { + mBrowserInstaller.setInstalledBrowserWithVersion(BROWSER_PACKAGE_NAME, "57.0.000.0"); + +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle bundle = new Bundle(); + bundle.putString(WebApkMetaDataKeys.START_URL, startUrl); +@@ -259,7 +259,7 @@ public final class MainActivityTest { + */ + @Test + public void testPropagatedDeepLinkExtras() { +- final String startUrl = "https://www.google.com/"; ++ final String startUrl = "https://www.9oo91e.qjz9zk/"; + + Bundle extrasToPropagate = new Bundle(); + // WebAPK should not override these extras if they are provided in the WebAPK launch intent. +diff --git a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java +--- a/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java ++++ b/chrome/android/webapk/shell_apk/junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java +@@ -43,11 +43,11 @@ public class WebApkUtilsTest { + */ + @Test + public void testLoggedIntentUrlParamWhenRewriteOutOfScope() { +- final String intentStartUrl = "https://maps.google.com/page?a=A"; +- final String manifestStartUrl = "https://www.google.com/maps"; +- final String manifestScope = "https://www.google.com"; ++ final String intentStartUrl = "https://maps.9oo91e.qjz9zk/page?a=A"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk"; + final String expectedRewrittenStartUrl = +- "https://www.google.com/maps?originalUrl=https%3A%2F%2Fmaps.google.com%2Fpage%3Fa%3DA"; ++ "https://www.9oo91e.qjz9zk/maps?originalUrl=https%3A%2F%2Fmaps.9oo91e.qjz9zk%2Fpage%3Fa%3DA"; + final String browserPackageName = "browser.support.webapks"; + + Bundle bundle = new Bundle(); +@@ -67,12 +67,12 @@ public class WebApkUtilsTest { + */ + @Test + public void testLoggedIntentUrlParamWhenRewriteInScope() { +- final String intentStartUrl = "https://www.google.com/maps/search/A"; +- final String manifestStartUrl = "https://www.google.com/maps?force=qVTs2FOxxTmHHo79-pwa"; +- final String manifestScope = "https://www.google.com"; ++ final String intentStartUrl = "https://www.9oo91e.qjz9zk/maps/search/A"; ++ final String manifestStartUrl = "https://www.9oo91e.qjz9zk/maps?force=qVTs2FOxxTmHHo79-pwa"; ++ final String manifestScope = "https://www.9oo91e.qjz9zk"; + final String expectedRewrittenStartUrl = +- "https://www.google.com/maps?force=qVTs2FOxxTmHHo79-pwa&intent=" +- + "https%3A%2F%2Fwww.google.com%2Fmaps%2Fsearch%2FA"; ++ "https://www.9oo91e.qjz9zk/maps?force=qVTs2FOxxTmHHo79-pwa&intent=" ++ + "https%3A%2F%2Fwww.9oo91e.qjz9zk%2Fmaps%2Fsearch%2FA"; + final String browserPackageName = "browser.support.webapks"; + + Bundle bundle = new Bundle(); +diff --git a/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json b/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json +--- a/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json ++++ b/chrome/android/webapk/shell_apk/manifest/maps_go_manifest_config.json +@@ -1,19 +1,19 @@ + { +- "scope_url": "https://www.google.com/maps", ++ "scope_url": "https://www.9oo91e.qjz9zk/maps", + "intent_filters": { + "scope_url_scheme": "https", +- "scope_url_host": "www.google.com", ++ "scope_url_host": "www.9oo91e.qjz9zk", + "scope_url_path_type": "android:pathPrefix", + "scope_url_path": "/maps" + }, +- "start_url": "https://www.google.com/maps/@37.7890183,-122.3915063,15z?force=pwa", ++ "start_url": "https://www.9oo91e.qjz9zk/maps/@37.7890183,-122.3915063,15z?force=pwa", + "display_mode": "standalone", + "orientation": "portrait", + "theme_color": "2147483648L", + "background_color": "2147483648L", + "background_color_xml": "#F8F9FA", +- "icon_urls_and_icon_murmur2_hashes": "https://maps.gstatic.com/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_48x48.png 0 https://maps.gstatic.com/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_72x72 0", +- "web_manifest_url": "https://maps.gstatic.com/tactile/worker/ml.json", ++ "icon_urls_and_icon_murmur2_hashes": "https://maps.95tat1c.qjz9zk/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_48x48.png 0 https://maps.95tat1c.qjz9zk/mapfiles/maps_lite/pwa/icons/maps_pwa_icon_v0920_72x72 0", ++ "web_manifest_url": "https://maps.95tat1c.qjz9zk/tactile/worker/ml.json", + "distributor": "other", + "version_code": "1", + "version_name": "1.0", +diff --git a/chrome/android/webapk/shell_apk/res/values/dimens.xml b/chrome/android/webapk/shell_apk/res/values/dimens.xml +--- a/chrome/android/webapk/shell_apk/res/values/dimens.xml ++++ b/chrome/android/webapk/shell_apk/res/values/dimens.xml +@@ -9,7 +9,7 @@ + 16sp + 12sp + +- ++ + 24dp + 6dp + 6dp +diff --git a/chrome/app/PRESUBMIT.py b/chrome/app/PRESUBMIT.py +--- a/chrome/app/PRESUBMIT.py ++++ b/chrome/app/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for changes affecting chrome/app/ + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +@@ -15,7 +15,7 @@ def _CheckNoProductNameInGeneratedResources(input_api, output_api): + + These kinds of strings prevent proper localization in some languages. For + more information, see the following chromium-dev thread: +- https://groups.google.com/a/chromium.org/forum/#!msg/chromium-dev/PBs5JfR0Aoc/NOcIHII9u14J ++ https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/forum/#!msg/chromium-dev/PBs5JfR0Aoc/NOcIHII9u14J + """ + + problems = [] +@@ -29,8 +29,8 @@ def _CheckNoProductNameInGeneratedResources(input_api, output_api): + return [output_api.PresubmitPromptWarning( + "Don't use PRODUCT_NAME placeholders in string resources. Instead, add " + "separate strings to google_chrome_strings.grd and " +- "chromium_strings.grd. See http://goo.gl/6614MQ for more information." +- "Problems with this check? Contact dubroy@chromium.org.", ++ "chromium_strings.grd. See http://goo.gl.qjz9zk.qjz9zk/6614MQ for more information." ++ "Problems with this check? Contact dubroy@ch40m1um.qjz9zk.", + items=problems)] + return [] + +diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h +--- a/chrome/app/chrome_command_ids.h ++++ b/chrome/app/chrome_command_ids.h +@@ -394,7 +394,7 @@ + #define IDC_CONTENT_CONTEXT_ACCESSIBILITY_LABELS_TOGGLE_ONCE 52412 + + // NOTE: The last valid command value is 57343 (0xDFFF) +-// See http://msdn.microsoft.com/en-us/library/t2zechd4(VS.71).aspx ++// See http://msdn.m1cr050ft.qjz9zk/en-us/library/t2zechd4(VS.71).aspx + + // Starting command id for menus showing bookmarks (such as the wrench menu). + // While command ids passed to Windows functions must not be higher than 0xDFFF, +diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd +--- a/chrome/app/chromium_strings.grd ++++ b/chrome/app/chromium_strings.grd +@@ -468,7 +468,7 @@ Chromium is unable to recover your settings. + + + +- Also clear data from Chromium ($1www.google.com) ++ Also clear data from Chromium ($1www.9oo91e.qjz9zk) + + + +@@ -578,10 +578,10 @@ Chromium is unable to recover your settings. + You're signed in to Chromium! + + +- You're signed in as $1foo@gmail.com. Now you can access your bookmarks, history, and other settings on all your signed in devices. ++ You're signed in as $1foo@9ma1l.qjz9zk. Now you can access your bookmarks, history, and other settings on all your signed in devices. + + +- You were signed in to Chromium as $1foo@gmail.com. Please use the same account to sign in again. ++ You were signed in to Chromium as $1foo@9ma1l.qjz9zk. Please use the same account to sign in again. + + + Someone previously signed in to Chromium on this computer as $1user@example.com. Please create a new Chromium user to keep your information separate. +@@ -614,7 +614,7 @@ Chromium is unable to recover your settings. + + + +- $1foo@gmail.com was previously using Chromium ++ $1foo@9ma1l.qjz9zk was previously using Chromium + + + +diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd +--- a/chrome/app/generated_resources.grd ++++ b/chrome/app/generated_resources.grd +@@ -273,7 +273,7 @@ are declared in tools/grit/grit_rule.gni. + + + +- $1google.com wants to ++ $19oo91e.qjz9zk wants to + + + Allow +@@ -459,7 +459,7 @@ are declared in tools/grit/grit_rule.gni. + Open link as + + +- Open link as $1user@gmail.com ++ Open link as $1user@9ma1l.qjz9zk + + + Open link in $1Gmail App +@@ -602,7 +602,7 @@ are declared in tools/grit/grit_rule.gni. + &Search $1Google for image + + +- &Go to $1http://www.google.com/ ++ &Go to $1http://www.9oo91e.qjz9zk/ + + + Suggest password... +@@ -677,7 +677,7 @@ are declared in tools/grit/grit_rule.gni. + Open Link as + + +- Open Link as $1user@gmail.com ++ Open Link as $1user@9ma1l.qjz9zk + + + Open Link in $1Gmail App +@@ -832,7 +832,7 @@ are declared in tools/grit/grit_rule.gni. + &Search $1Google for Image + + +- &Go to $1http://www.google.com/ ++ &Go to $1http://www.9oo91e.qjz9zk/ + + + Suggest Password... +@@ -1030,7 +1030,7 @@ are declared in tools/grit/grit_rule.gni. + + + +- Move window to $1User name ($2john@google.com) ++ Move window to $1User name ($2john@9oo91e.qjz9zk) + + + +@@ -2319,7 +2319,7 @@ are declared in tools/grit/grit_rule.gni. + Share + + +- $1Google Maps ($2https://google.com/maps) ++ $1Google Maps ($2https://9oo91e.qjz9zk/maps) + + + +@@ -2382,10 +2382,10 @@ are declared in tools/grit/grit_rule.gni. + Images were blocked on this page. + + +- Always allow $1mail.google.com to set cookies ++ Always allow $1mail.9oo91e.qjz9zk to set cookies + + +- Always allow $1mail.google.com to show images ++ Always allow $1mail.9oo91e.qjz9zk to show images + + + Continue blocking cookies +@@ -2394,7 +2394,7 @@ are declared in tools/grit/grit_rule.gni. + Continue allowing cookies + + +- Always block cookies on $1mail.google.com ++ Always block cookies on $1mail.9oo91e.qjz9zk + + + Continue blocking images +@@ -2406,7 +2406,7 @@ are declared in tools/grit/grit_rule.gni. + Pop-ups blocked: + + +- Always allow pop-ups and redirects from $1mail.google.com ++ Always allow pop-ups and redirects from $1mail.9oo91e.qjz9zk + + + Continue blocking +@@ -2415,22 +2415,22 @@ are declared in tools/grit/grit_rule.gni. + Manage pop-up blocking... + + +- Always allow $1mail.google.com to access your camera and microphone ++ Always allow $1mail.9oo91e.qjz9zk to access your camera and microphone + + +- Always allow $1mail.google.com to access your microphone ++ Always allow $1mail.9oo91e.qjz9zk to access your microphone + + +- Always allow $1mail.google.com to access your camera ++ Always allow $1mail.9oo91e.qjz9zk to access your camera + + +- Ask if $1mail.google.com wants to access your camera and microphone ++ Ask if $1mail.9oo91e.qjz9zk wants to access your camera and microphone + + +- Ask if $1mail.google.com wants to access your microphone ++ Ask if $1mail.9oo91e.qjz9zk wants to access your microphone + + +- Ask if $1mail.google.com wants to access your camera ++ Ask if $1mail.9oo91e.qjz9zk wants to access your camera + + + Always block camera and microphone access +@@ -2451,13 +2451,13 @@ are declared in tools/grit/grit_rule.gni. + Continue blocking camera access + + +- Continue allowing $1mail.google.com to access your camera and microphone ++ Continue allowing $1mail.9oo91e.qjz9zk to access your camera and microphone + + +- Continue allowing $1mail.google.com to access your microphone ++ Continue allowing $1mail.9oo91e.qjz9zk to access your microphone + + +- Continue allowing $1mail.google.com to access your camera ++ Continue allowing $1mail.9oo91e.qjz9zk to access your camera + + + Pop-up blocked +@@ -2472,7 +2472,7 @@ are declared in tools/grit/grit_rule.gni. + JavaScript was blocked on this page. + + +- Always allow JavaScript on $1mail.google.com ++ Always allow JavaScript on $1mail.9oo91e.qjz9zk + + + Continue blocking JavaScript +@@ -2490,7 +2490,7 @@ are declared in tools/grit/grit_rule.gni. + Sound was muted on this page + + +- Always allow sound on $1mail.google.com ++ Always allow sound on $1mail.9oo91e.qjz9zk + + + Continue muting sound +@@ -2617,7 +2617,7 @@ are declared in tools/grit/grit_rule.gni. + + + +- Certificate Viewer: $1www.google.com ++ Certificate Viewer: $1www.9oo91e.qjz9zk + + + &General +@@ -3147,13 +3147,13 @@ are declared in tools/grit/grit_rule.gni. + + + +- Sharing this tab to $1meet.google.com ++ Sharing this tab to $1meet.9oo91e.qjz9zk + + +- Sharing a tab to $1meet.google.com ++ Sharing a tab to $1meet.9oo91e.qjz9zk + + +- Sharing $1youtube.com to $2meet.google.com ++ Sharing $1y0u1ub3.qjz9zk to $2meet.9oo91e.qjz9zk + + + Share this tab instead +@@ -3358,10 +3358,10 @@ are declared in tools/grit/grit_rule.gni. + Incognito Tab: $1Google + + +- Background App: $1http://www.google.com ++ Background App: $1http://www.9oo91e.qjz9zk + + +- Background Page: $1http://www.google.com ++ Background Page: $1http://www.9oo91e.qjz9zk + + + Plugin: $1Unknown Plugin +@@ -3370,10 +3370,10 @@ are declared in tools/grit/grit_rule.gni. + Plugin Broker: $1Unknown Plugin + + +- Prerender: $1http://www.google.com ++ Prerender: $1http://www.9oo91e.qjz9zk + + +- Renderer: $1http://www.google.com ++ Renderer: $1http://www.9oo91e.qjz9zk + + + Service Worker: $1https://googlechrome.github.io/samples/service-worker/basic/service-worker.js +@@ -3397,10 +3397,10 @@ are declared in tools/grit/grit_rule.gni. + Print: $1Google Maps + + +- Subframe: $1https://youtube.com/ ++ Subframe: $1https://y0u1ub3.qjz9zk/ + + +- Incognito Subframe: $1https://youtube.com/ ++ Incognito Subframe: $1https://y0u1ub3.qjz9zk/ + + + App: $1com.android.systemui +@@ -3579,13 +3579,13 @@ are declared in tools/grit/grit_rule.gni. + + The extension "$1Gmail Checker" has been added. + +- ++ + The extension "$1Gmail Checker" was automatically disabled. + + + The app "$1Gmail" has been added. + +- ++ + The app "$1Gmail" was automatically removed. + + +@@ -3597,10 +3597,10 @@ are declared in tools/grit/grit_rule.gni. + + + +- $1http://www.google.com wants to communicate with the app "$2Gmail" ++ $1http://www.9oo91e.qjz9zk wants to communicate with the app "$2Gmail" + + +- $1http://www.google.com wants to communicate with the extension "$2Gmail Checker" ++ $1http://www.9oo91e.qjz9zk wants to communicate with the extension "$2Gmail Checker" + + + It can: +@@ -3733,22 +3733,22 @@ are declared in tools/grit/grit_rule.gni. + Change your home page to: $1home.page.com/home.html + + +- Read and change your data on $1www.google.com ++ Read and change your data on $1www.9oo91e.qjz9zk + + +- Read your data on $1www.google.com ++ Read your data on $1www.9oo91e.qjz9zk + + +- Read and change your data on $1www.google.com and $2www.reddit.com ++ Read and change your data on $1www.9oo91e.qjz9zk and $2www.reddit.com + + +- Read your data on $1www.google.com and $2www.reddit.com ++ Read your data on $1www.9oo91e.qjz9zk and $2www.reddit.com + + +- Read and change your data on $1www.google.com, $2www.reddit.com, and $3news.ycombinator.com ++ Read and change your data on $1www.9oo91e.qjz9zk, $2www.reddit.com, and $3news.ycombinator.com + + +- Read your data on $1www.google.com, $2www.reddit.com, and $3news.ycombinator.com ++ Read your data on $1www.9oo91e.qjz9zk, $2www.reddit.com, and $3news.ycombinator.com + + + Read and change your data on a number of websites +@@ -3757,10 +3757,10 @@ are declared in tools/grit/grit_rule.gni. + Read your data on a number of websites + + +- all $1google.com sites ++ all $19oo91e.qjz9zk sites + + +- All $1google.com sites ++ All $19oo91e.qjz9zk sites + + + Read and change anything you type +@@ -4118,7 +4118,7 @@ are declared in tools/grit/grit_rule.gni. + When you click the extension + + +- On $1google.com ++ On $19oo91e.qjz9zk + + + On all sites +@@ -4168,7 +4168,7 @@ are declared in tools/grit/grit_rule.gni. + When You Click the Extension + + +- On $1google.com ++ On $19oo91e.qjz9zk + + + On All Sites +@@ -4982,7 +4982,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + + + +- Pa&ste and go to $1http://www.google.com/ ++ Pa&ste and go to $1http://www.9oo91e.qjz9zk/ + + + Pa&ste and search for “$1flowers” +@@ -4990,7 +4990,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + + + +- Pa&ste and Go to $1http://www.google.com/ ++ Pa&ste and Go to $1http://www.9oo91e.qjz9zk/ + + + Pa&ste and Search for “$1flowers” +@@ -5000,7 +5000,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + S&how URL + + +- Press $1Tab to search $2google.com ++ Press $1Tab to search $29oo91e.qjz9zk + + + Press $1Tab to send commands to $2Google Talk +@@ -5009,16 +5009,16 @@ Keep your key file in a safe place. You will need it to create new versions of y + Tab + + +- Search $1google.com ++ Search $19oo91e.qjz9zk + + + Send commands to $1ACME Music App + + +- Search $1google.com: ++ Search $19oo91e.qjz9zk: + + +- Search $1google.com ++ Search $19oo91e.qjz9zk + + + Click to view today’s doodle +@@ -5400,7 +5400,7 @@ Keep your key file in a safe place. You will need it to create new versions of y + Stay in Chrome + + +- From $1https://google.com ++ From $1https://9oo91e.qjz9zk + + + +@@ -5470,7 +5470,7 @@ the Bookmarks menu."> + + + +- $1maps.google.com wants to respond to accessibility events ++ $1maps.9oo91e.qjz9zk wants to respond to accessibility events + + + Accessibility Events +@@ -5483,7 +5483,7 @@ the Bookmarks menu."> + + + +- $1maps.google.com wants to see text and images copied to the clipboard ++ $1maps.9oo91e.qjz9zk wants to see text and images copied to the clipboard + + + Clipboard +@@ -5508,7 +5508,7 @@ the Bookmarks menu."> + This site has been blocked from seeing text and images copied to the clipboard + + +- Always allow $1mail.google.com to see the clipboard ++ Always allow $1mail.9oo91e.qjz9zk to see the clipboard + + + Continue blocking this site from seeing the clipboard +@@ -5577,7 +5577,7 @@ the Bookmarks menu."> + The page has become unresponsive. You can wait for it to become responsive or close it. + + +- $1google.com, in $2YouTube. ++ $19oo91e.qjz9zk, in $2YouTube. + + + Close +@@ -5614,7 +5614,7 @@ the Bookmarks menu."> + Automatically sign in to websites using stored credentials. When the feature is disabled, you will be asked for confirmation every time before signing in to a website. + + +- with $1facebook.com ++ with $1f8c3b00k.qjz9zk + + + Hide +@@ -5882,7 +5882,7 @@ the Bookmarks menu."> + Run Flash + + +- The selected data has been removed from Chrome and synced devices. Your Google Account may have other forms of browsing history like searches and activity from other Google services at <a target="_blank" href="$1">myactivity.google.com</a>. ++ The selected data has been removed from Chrome and synced devices. Your Google Account may have other forms of browsing history like searches and activity from other Google services at <a target="_blank" href="$1">myactivity.9oo91e.qjz9zk</a>. + + + Cleared Chrome data +@@ -6126,7 +6126,7 @@ the Bookmarks menu."> + Uploading ($127%)... + + +- Waiting for $1www.google.com... ++ Waiting for $1www.9oo91e.qjz9zk... + + + +@@ -6263,31 +6263,31 @@ the Bookmarks menu."> + $1html5rocks.com is sharing your screen. + + +- $1html5rocks.com is sharing your screen with $2https://google.com. ++ $1html5rocks.com is sharing your screen with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing your screen and audio. + + +- $1html5rocks.com is sharing your screen and audio with $2https://google.com. ++ $1html5rocks.com is sharing your screen and audio with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing a window. + + +- $1html5rocks.com is sharing a window with $2https://google.com. ++ $1html5rocks.com is sharing a window with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing a Chrome tab. + + +- $1html5rocks.com is sharing a Chrome tab with $2https://google.com. ++ $1html5rocks.com is sharing a Chrome tab with $2https://9oo91e.qjz9zk. + + + $1html5rocks.com is sharing a Chrome tab and audio. + + +- $1html5rocks.com is sharing a Chrome tab and audio with $2https://google.com. ++ $1html5rocks.com is sharing a Chrome tab and audio with $2https://9oo91e.qjz9zk. + + + Change source +@@ -6312,7 +6312,7 @@ the Bookmarks menu."> + + + +- Select a certificate to authenticate yourself to $1www.google.com ++ Select a certificate to authenticate yourself to $1www.9oo91e.qjz9zk + + + +@@ -6320,10 +6320,10 @@ the Bookmarks menu."> + Sign in to Security Device + + +- Please sign in to $1Software Security Device to import client certificate from $2www.google.com. ++ Please sign in to $1Software Security Device to import client certificate from $2www.9oo91e.qjz9zk. + + +- Please sign in to $1Software Security Device to authenticate to $2www.google.com with your certificate. ++ Please sign in to $1Software Security Device to authenticate to $2www.9oo91e.qjz9zk with your certificate. + + + Please sign in to $1Software Security Device. +@@ -7308,10 +7308,10 @@ the Bookmarks menu."> + Can't sign in + + +- Can't sign in to $1Jane.Doe@gmail.com ++ Can't sign in to $1Jane.Doe@9ma1l.qjz9zk + + +- Can't sync to $1Jane.Doe@gmail.com ++ Can't sync to $1Jane.Doe@9ma1l.qjz9zk + + + Close +@@ -7336,13 +7336,13 @@ the Bookmarks menu."> + This wasn't me. + + +- Create a new profile for $1foo@gmail.com ++ Create a new profile for $1foo@9ma1l.qjz9zk + + + This was me. + + +- Add my bookmarks, history, passwords, and other settings to $1foo@gmail.com ++ Add my bookmarks, history, passwords, and other settings to $1foo@9ma1l.qjz9zk + + + Cancel +@@ -7386,7 +7386,7 @@ the Bookmarks menu."> + Open $1Adobe Acrobat? + + +- $1https://google.com wants to open this application. ++ $1https://9oo91e.qjz9zk wants to open this application. + + + A website wants to open this application. +@@ -7424,7 +7424,7 @@ the Bookmarks menu."> + Date Modified + + +- Oh, no! This server is sending data $1Google Chrome can't understand. Please <a href="http://code.google.com/p/chromium/issues/entry">report a bug</a></a>, and include the <a href="LOCATION">raw listing</a>. ++ Oh, no! This server is sending data $1Google Chrome can't understand. Please <a href="http://code.9oo91e.qjz9zk/p/chromium/issues/entry">report a bug</a></a>, and include the <a href="LOCATION">raw listing</a>. + + + +@@ -7565,7 +7565,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Signed in as $1foo@gmail.com. ++ Signed in as $1foo@9ma1l.qjz9zk. + + + On - sync everything +@@ -7923,7 +7923,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1mail.google.com wants to send you notifications ++ $1mail.9oo91e.qjz9zk wants to send you notifications + + + +@@ -8002,7 +8002,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Wrong index. + + +- Executing JavaScript through AppleScript is turned off. To turn it on, from the menu bar, go to View > Developer > Allow JavaScript from Apple Events. For more information: https://support.google.com/chrome/?p=applescript ++ Executing JavaScript through AppleScript is turned off. To turn it on, from the menu bar, go to View > Developer > Allow JavaScript from Apple Events. For more information: https://support.9oo91e.qjz9zk/chrome/?p=applescript + + + +@@ -8396,12 +8396,12 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1maps.google.com wants to use your computer's location ++ $1maps.9oo91e.qjz9zk wants to use your computer's location + + + + +- $1maps.google.com wants to use your device's location ++ $1maps.9oo91e.qjz9zk wants to use your device's location + + + Location +@@ -8434,7 +8434,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to get full control of your MIDI devices ++ $1www.9oo91e.qjz9zk wants to get full control of your MIDI devices + + + +@@ -8553,10 +8553,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + Know your unique device identifier + + +- $1https://www.youtube.com wants to play protected content. Your device’s identity will be verified by Google. ++ $1https://www.y0u1ub3.qjz9zk wants to play protected content. Your device’s identity will be verified by Google. + + +- $1https://www.youtube.com wants to play protected content. Your device's identity will be verified by Google and may be accessed by this site. ++ $1https://www.y0u1ub3.qjz9zk wants to play protected content. Your device's identity will be verified by Google and may be accessed by this site. + + + Protected Media Identifier +@@ -8566,7 +8566,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + View and manage saved passwords in your $1Google Account + + +- https://passwords.google.com ++ https://passwords.9oo91e.qjz9zk + + + +@@ -8595,10 +8595,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + Undo + + +- Restore deleted password for $1user@gmail.com ++ Restore deleted password for $1user@9ma1l.qjz9zk + + +- Delete password for $1user@gmail.com ++ Delete password for $1user@9ma1l.qjz9zk + + + +@@ -8709,19 +8709,19 @@ Please help our engineers fix this problem. Tell us what happened right before y + An extension triggered full screen. + + +- $1google.com is now full screen. ++ $19oo91e.qjz9zk is now full screen. + + + This page is now full screen. + + +- $1google.com is now full screen and has disabled your mouse cursor. ++ $19oo91e.qjz9zk is now full screen and has disabled your mouse cursor. + + + This page is now full screen and has disabled your mouse cursor. + + +- $1google.com has disabled your mouse cursor. ++ $19oo91e.qjz9zk has disabled your mouse cursor. + + + This page has disabled your mouse cursor. +@@ -8745,10 +8745,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Allow $1google.com to open all $2search links? ++ Allow $19oo91e.qjz9zk to open all $2search links? + + +- Allow $1google.com to open all $2search links instead of $3Elgoog Search? ++ Allow $19oo91e.qjz9zk to open all $2search links instead of $3Elgoog Search? + + + Open $1search links +@@ -8811,7 +8811,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + This site has been blocked from using motion sensors. + + +- Always allow $1mail.google.com to access sensors ++ Always allow $1mail.9oo91e.qjz9zk to access sensors + + + Continue blocking sensor access +@@ -8838,7 +8838,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Continue allowing sensor access + + +- Always block $1mail.google.com from accessing sensors ++ Always block $1mail.9oo91e.qjz9zk from accessing sensors + + + +@@ -9075,7 +9075,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + $1Google Hangouts wants to share the contents of your screen. Choose what you'd like to share. + + +- $1Google Hangouts wants to share the contents of your screen with $2https://google.com. Choose what you'd like to share. ++ $1Google Hangouts wants to share the contents of your screen with $2https://9oo91e.qjz9zk. Choose what you'd like to share. + + + Share audio +@@ -9206,7 +9206,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Documents are <a is="action-link" href="https://support.google.com/cloudprint/answer/2541843" target="_blank">sent to Google</a> to prepare them for printing. View, edit and manage your printers and printer history on the <a is="action-link" href="https://www.google.com/cloudprint#jobs" target="_blank">Google Cloud Print dashboard</a>. ++ Documents are <a is="action-link" href="https://support.9oo91e.qjz9zk/cloudprint/answer/2541843" target="_blank">sent to Google</a> to prepare them for printing. View, edit and manage your printers and printer history on the <a is="action-link" href="https://www.9oo91e.qjz9zk/cloudprint#jobs" target="_blank">Google Cloud Print dashboard</a>. + + + +@@ -9266,8 +9266,8 @@ Please help our engineers fix this problem. Tell us what happened right before y + + $1Google Photos - Serial port connected + +- +- $1www.google.com - Network error ++ ++ $1www.9oo91e.qjz9zk - Network error + + + $1Google Search - Crashed +@@ -9422,7 +9422,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Go to $1www.google.com to connect. ++ Go to $1www.9oo91e.qjz9zk to connect. + + + $1Nexus 5 detected +@@ -9460,7 +9460,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to pair ++ $1www.9oo91e.qjz9zk wants to pair + + + "$1Chrome Extension Name" wants to pair +@@ -9506,7 +9506,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to connect ++ $1www.9oo91e.qjz9zk wants to connect + + + "$1Chrome Extension Name" wants to connect +@@ -9537,7 +9537,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + No nearby devices found. + + +- $1www.google.com wants to scan for nearby Bluetooth devices. The following devices have been found: ++ $1www.9oo91e.qjz9zk wants to scan for nearby Bluetooth devices. The following devices have been found: + + + Allow +@@ -9569,7 +9569,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to connect to a serial port ++ $1www.9oo91e.qjz9zk wants to connect to a serial port + + + "$1Chrome Extension Name" wants to connect to a serial port +@@ -9588,7 +9588,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1www.google.com wants to connect to a HID device ++ $1www.9oo91e.qjz9zk wants to connect to a HID device + + + "$1Chrome Extension Name" wants to connect to a HID device +@@ -9735,7 +9735,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- $1maps.google.com ++ $1maps.9oo91e.qjz9zk + wants to see the make and model of your Security Key + + +@@ -9904,10 +9904,10 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- Use your security key with $1google.com ++ Use your security key with $19oo91e.qjz9zk + + +- $1google.com wants to verify your identity ++ $19oo91e.qjz9zk wants to verify your identity + + + Verifying your identity helps protect your personal information +@@ -9916,7 +9916,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Continue + + +- Verify your identity with $1google.com ++ Verify your identity with $19oo91e.qjz9zk + + + Pick an option +@@ -10122,13 +10122,13 @@ Please help our engineers fix this problem. Tell us what happened right before y + + + +- ++ + Account + + + Name + +- ++ + Select an account to sign in + + +@@ -10141,7 +10141,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Your security key can't be used with this site + + +- accounts.google.com$1 may require a newer or different kind of security key ++ accounts.9oo91e.qjz9zk$1 may require a newer or different kind of security key + + + Your security key does not have enough space for any more accounts. +@@ -10150,7 +10150,7 @@ Please help our engineers fix this problem. Tell us what happened right before y + Allow this site to see your security key? + + +- accounts.google.com$1 wants to see the make and model of your security key ++ accounts.9oo91e.qjz9zk$1 wants to see the make and model of your security key + + + Allow +diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd +--- a/chrome/app/google_chrome_strings.grd ++++ b/chrome/app/google_chrome_strings.grd +@@ -480,7 +480,7 @@ Google Chrome is unable to recover your settings. + + + +- Also clear data from Chrome ($1www.google.com) ++ Also clear data from Chrome ($1www.9oo91e.qjz9zk) + + + +@@ -590,10 +590,10 @@ Google Chrome is unable to recover your settings. + You're signed in to Chrome! + + +- You're signed in as $1foo@gmail.com. Now you can access your bookmarks, history, and other settings on all your signed in devices. ++ You're signed in as $1foo@9ma1l.qjz9zk. Now you can access your bookmarks, history, and other settings on all your signed in devices. + + +- You were signed in to Chrome as $1foo@gmail.com. Please use the same account to sign in again. ++ You were signed in to Chrome as $1foo@9ma1l.qjz9zk. Please use the same account to sign in again. + + + Someone previously signed in to Chrome on this computer as $1user@example.com. Please create a new Chrome user to keep your information separate. +@@ -626,7 +626,7 @@ Google Chrome is unable to recover your settings. + + + +- $1foo@gmail.com was previously using Chrome ++ $1foo@9ma1l.qjz9zk was previously using Chrome + + + +diff --git a/chrome/app/resources/locale_settings.grd b/chrome/app/resources/locale_settings.grd +--- a/chrome/app/resources/locale_settings.grd ++++ b/chrome/app/resources/locale_settings.grd +@@ -150,12 +150,12 @@ + + + +- https://chrome.google.com/webstore?hl=[GRITLANGCODE]&category=theme ++ https://chrome.9oo91e.qjz9zk/webstore?hl=[GRITLANGCODE]&category=theme + + + + +- https://chrome.google.com/webstore?hl=[GRITLANGCODE] ++ https://chrome.9oo91e.qjz9zk/webstore?hl=[GRITLANGCODE] + + + +@@ -172,7 +172,7 @@ + + + +- https://support.google.com/chrome/answer/1181420 ++ https://support.9oo91e.qjz9zk/chrome/answer/1181420 + + + +@@ -209,18 +209,18 @@ + + + +- https://support.google.com/chromebook/answer/183084?hl=[GRITLANGCODE] ++ https://support.9oo91e.qjz9zk/chromebook/answer/183084?hl=[GRITLANGCODE] + + + + + +- https://myactivity.google.com/myactivity/?utm_source=chrome_n ++ https://myactivity.9oo91e.qjz9zk/myactivity/?utm_source=chrome_n + + + + +- https://myactivity.google.com/myactivity/?utm_source=chrome_h ++ https://myactivity.9oo91e.qjz9zk/myactivity/?utm_source=chrome_h + + + +diff --git a/chrome/app/theme/PRESUBMIT.py b/chrome/app/theme/PRESUBMIT.py +--- a/chrome/app/theme/PRESUBMIT.py ++++ b/chrome/app/theme/PRESUBMIT.py +@@ -4,9 +4,9 @@ + + """Presubmit script for Chromium theme resources. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools, and see +-https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md ++https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/styleguide/web/web.md + for the rules we're checking against here. + """ + +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 +@@ -283,14 +283,14 @@ const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { + const FeatureEntry::Choice kTraceUploadURL[] = { + {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, + {flag_descriptions::kTraceUploadUrlChoiceOther, switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,Other"}, ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,Other"}, + {flag_descriptions::kTraceUploadUrlChoiceEmloading, + switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,emloading"}, ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,emloading"}, + {flag_descriptions::kTraceUploadUrlChoiceQa, switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,QA"}, ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,QA"}, + {flag_descriptions::kTraceUploadUrlChoiceTesting, switches::kTraceUploadURL, +- "https://performance-insights.appspot.com/upload?tags=flags,TestingTeam"}}; ++ "https://performance-insights.8pp2p8t.qjz9zk/upload?tags=flags,TestingTeam"}}; + + const FeatureEntry::Choice kPassiveListenersChoices[] = { + {flags_ui::kGenericExperimentChoiceDefault, "", ""}, +@@ -2208,7 +2208,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kSyncSandboxDescription, kOsAll, + SINGLE_VALUE_TYPE_AND_VALUE( + switches::kSyncServiceURL, +- "https://chrome-sync.sandbox.google.com/chrome-sync/alpha")}, ++ "https://chrome-sync.sandbox.9oo91e.qjz9zk/chrome-sync/alpha")}, + #if !defined(OS_ANDROID) + {"load-media-router-component-extension", + flag_descriptions::kLoadMediaRouterComponentExtensionName, +@@ -2455,7 +2455,7 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kSetMarketUrlForTestingName, + flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid, + SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting, +- "https://play.google.com/store/apps/" ++ "https://play.9oo91e.qjz9zk/store/apps/" + "details?id=com.android.chrome")}, + #endif // OS_ANDROID + {"tls13-hardening-for-local-anchors", +diff --git a/chrome/browser/android/autofill_assistant/client_android.cc b/chrome/browser/android/autofill_assistant/client_android.cc +--- a/chrome/browser/android/autofill_assistant/client_android.cc ++++ b/chrome/browser/android/autofill_assistant/client_android.cc +@@ -52,7 +52,7 @@ const char* const kAutofillAssistantUrl = "autofill-assistant-url"; + namespace { + + const char* const kDefaultAutofillAssistantServerUrl = +- "https://automate-pa.googleapis.com"; ++ "https://automate-pa.9oo91eapis.qjz9zk"; + + // A direct action that corresponds to pressing the close or cancel button on + // the UI. +diff --git a/chrome/browser/android/contextualsearch/contextual_search_context.h b/chrome/browser/android/contextualsearch/contextual_search_context.h +--- a/chrome/browser/android/contextualsearch/contextual_search_context.h ++++ b/chrome/browser/android/contextualsearch/contextual_search_context.h +@@ -67,7 +67,7 @@ struct ContextualSearchContext { + + // Gets the encoding of the base page. This is not very important, since + // the surrounding text stored here in a base::string16 is implicitly encoded +- // in UTF-16 (see http://www.chromium.org/developers/chromium-string-usage). ++ // in UTF-16 (see http://www.ch40m1um.qjz9zk/developers/chromium-string-usage). + const std::string GetBasePageEncoding() const; + void SetBasePageEncoding(const std::string& base_page_encoding); + +diff --git a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc +--- a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc ++++ b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.cc +@@ -33,7 +33,7 @@ namespace { + const int kNumNetworkRetries = 1; + + // Location on a website where the asset links file can be found, see +-// https://developers.google.com/digital-asset-links/v1/getting-started. ++// https://developers.9oo91e.qjz9zk/digital-asset-links/v1/getting-started. + const char kAssetLinksAbsolutePath[] = ".well-known/assetlinks.json"; + + GURL GetUrlForAssetLinks(const url::Origin& origin) { +diff --git a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h +--- a/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h ++++ b/chrome/browser/android/digital_asset_links/digital_asset_links_handler.h +@@ -31,7 +31,7 @@ using RelationshipCheckResultCallback = + + // A handler class for sending REST API requests to DigitalAssetLinks web + // end point. See +-// https://developers.google.com/digital-asset-links/v1/getting-started ++// https://developers.9oo91e.qjz9zk/digital-asset-links/v1/getting-started + // for details of usage and APIs. These APIs are used to verify declared + // relationships between different asset types like web domains or Android apps. + // The lifecycle of this handler will be governed by the owner. +@@ -52,7 +52,7 @@ class DigitalAssetLinksHandler : public content::WebContentsObserver { + // Calling this multiple times on the same handler will cancel the previous + // checks. + // See +- // https://developers.google.com/digital-asset-links/reference/rest/v1/assetlinks/check ++ // https://developers.9oo91e.qjz9zk/digital-asset-links/reference/rest/v1/assetlinks/check + // for details. + bool CheckDigitalAssetLinkRelationship( + RelationshipCheckResultCallback callback, +diff --git a/chrome/browser/android/explore_sites/url_util.cc b/chrome/browser/android/explore_sites/url_util.cc +--- a/chrome/browser/android/explore_sites/url_util.cc ++++ b/chrome/browser/android/explore_sites/url_util.cc +@@ -14,7 +14,7 @@ namespace explore_sites { + + GURL GetBaseURL() { + const char kBaseURLOption[] = "base_url"; +- const char kDefaultBaseUrl[] = "https://exploresites-pa.googleapis.com"; ++ const char kDefaultBaseUrl[] = "https://exploresites-pa.9oo91eapis.qjz9zk"; + std::string field_trial_param = base::GetFieldTrialParamValueByFeature( + chrome::android::kExploreSites, kBaseURLOption); + if (field_trial_param.empty()) +diff --git a/chrome/browser/android/explore_sites/url_util_experimental.cc b/chrome/browser/android/explore_sites/url_util_experimental.cc +--- a/chrome/browser/android/explore_sites/url_util_experimental.cc ++++ b/chrome/browser/android/explore_sites/url_util_experimental.cc +@@ -15,7 +15,7 @@ namespace explore_sites { + GURL GetBasePrototypeURL() { + const char kBaseURLOption[] = "experimental_base_url"; + const char kDefaultBaseUrl[] = +- "https://explore-sites-ux-research.appspot.com"; ++ "https://explore-sites-ux-research.8pp2p8t.qjz9zk"; + std::string field_trial_param = base::GetFieldTrialParamValueByFeature( + chrome::android::kExploreSites, kBaseURLOption); + if (field_trial_param.empty()) +diff --git a/chrome/browser/android/search_permissions/search_permissions_service.h b/chrome/browser/android/search_permissions/search_permissions_service.h +--- a/chrome/browser/android/search_permissions/search_permissions_service.h ++++ b/chrome/browser/android/search_permissions/search_permissions_service.h +@@ -29,7 +29,7 @@ class Profile; + // watching change to the CCTLD and DSE. + // Glossary: + // DSE: Default Search Engine +-// CCTLD: Country Code Top Level Domain (e.g. google.com.au) ++// CCTLD: Country Code Top Level Domain (e.g. 9oo91e.qjz9zk.au) + class SearchPermissionsService : public KeyedService { + public: + // Delegate for search engine related functionality. Can be overridden for +diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc +--- a/chrome/browser/android/tab_android.cc ++++ b/chrome/browser/android/tab_android.cc +@@ -286,7 +286,7 @@ void TabAndroid::DestroyWebContents(JNIEnv* env, + // renderer process. Otherwise, we go with the slow path where renderer + // process shuts down itself when ref count becomes 0. + // This helps the render process exit quickly which avoids some issues +- // during shutdown. See https://codereview.chromium.org/146693011/ ++ // during shutdown. See https://codereview.ch40m1um.qjz9zk/146693011/ + // and http://crbug.com/338709 for details. + content::RenderProcessHost* process = + web_contents()->GetMainFrame()->GetProcess(); +diff --git a/chrome/browser/android/tab_state.cc b/chrome/browser/android/tab_state.cc +--- a/chrome/browser/android/tab_state.cc ++++ b/chrome/browser/android/tab_state.cc +@@ -74,7 +74,7 @@ void WriteStateHeaderToPickle(bool off_the_record, + // chromes. + // + // This uses the fields from SerializedNavigationEntry/TabNavigation from: +-// https://gerrit-int.chromium.org/gitweb?p=clank/internal/apps.git; ++// https://gerrit-int.ch40m1um.qjz9zk/gitweb?p=clank/internal/apps.git; + // a=blob;f=native/framework/chrome/tab.cc;hb=refs/heads/m18 + // + // 1. For each tab navigation: +@@ -158,7 +158,7 @@ void UpgradeNavigationFromV0ToV2( + // won't consume bytes from a subsequent SerializedNavigationEntry. + // + // This uses the fields from SerializedNavigationEntry/TabNavigation prior to +-// https://chromiumcodereview.appspot.com/11876045 which are: ++// https://chromiumcodereview.8pp2p8t.qjz9zk/11876045 which are: + // + // index + // virtual_url +diff --git a/chrome/browser/android/usage_stats/website_event.proto b/chrome/browser/android/usage_stats/website_event.proto +--- a/chrome/browser/android/usage_stats/website_event.proto ++++ b/chrome/browser/android/usage_stats/website_event.proto +@@ -12,7 +12,7 @@ option java_package = "org.chromium.chrome.browser.usage_stats"; + option java_outer_classname = "WebsiteEventProtos"; + + message WebsiteEvent { +- // Fully-qualified domain name of the website. Example: "docs.google.com". ++ // Fully-qualified domain name of the website. Example: "docs.9oo91e.qjz9zk". + optional string fqdn = 1; + + // Timestamp when the event occurred. +diff --git a/chrome/browser/android/vr/PRESUBMIT.py b/chrome/browser/android/vr/PRESUBMIT.py +--- a/chrome/browser/android/vr/PRESUBMIT.py ++++ b/chrome/browser/android/vr/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for changes affecting chrome/browser/android/vr + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc +--- a/chrome/browser/android/webapk/webapk_installer.cc ++++ b/chrome/browser/android/webapk/webapk_installer.cc +@@ -60,7 +60,7 @@ namespace { + + // The default WebAPK server URL. + const char kDefaultServerUrl[] = +- "https://webapk.googleapis.com/v1/webApks/" ++ "https://webapk.9oo91eapis.qjz9zk/v1/webApks/" + "?alt=proto&key=AIzaSyAoI6v-F31-3t9NunLYEiKcPIqgTJIUZBw"; + + // The MIME type of the POST data sent to the server. +diff --git a/chrome/browser/apps/app_service/app_icon_factory.cc b/chrome/browser/apps/app_service/app_icon_factory.cc +--- a/chrome/browser/apps/app_service/app_icon_factory.cc ++++ b/chrome/browser/apps/app_service/app_icon_factory.cc +@@ -307,7 +307,7 @@ void ApplyIconEffects(IconEffects icon_effects, + if (icon_effects & IconEffects::kResizeAndPad) { + // TODO(crbug.com/826982): MD post-processing is not always applied: "See + // legacy code: +- // https://cs.chromium.org/search/?q=ChromeAppIconLoader&type=cs In one ++ // https://cs.ch40m1um.qjz9zk/search/?q=ChromeAppIconLoader&type=cs In one + // cases MD design is used in another not." + resize_function = + base::BindRepeating(&app_list::MaybeResizeAndPadIconForMd); +diff --git a/chrome/browser/apps/platform_apps/install_chrome_app.cc b/chrome/browser/apps/platform_apps/install_chrome_app.cc +--- a/chrome/browser/apps/platform_apps/install_chrome_app.cc ++++ b/chrome/browser/apps/platform_apps/install_chrome_app.cc +@@ -25,7 +25,7 @@ namespace { + + // The URL to the webstore page for a specific app. + const char kWebstoreUrlFormat[] = +- "https://chrome.google.com/webstore/detail/%s"; ++ "https://chrome.9oo91e.qjz9zk/webstore/detail/%s"; + + // Error given when the extension is not an app. + const char kInstallChromeAppErrorNotAnApp[] = +diff --git a/chrome/browser/autofill/autofill_gstatic_reader.cc b/chrome/browser/autofill/autofill_gstatic_reader.cc +--- a/chrome/browser/autofill/autofill_gstatic_reader.cc ++++ b/chrome/browser/autofill/autofill_gstatic_reader.cc +@@ -26,9 +26,9 @@ static const char kTokenizationBinRangeWhitelistKey[] = + static const char kTokenizationMerchantWhitelistKey[] = + "cpan_eligible_merchant_wl"; + static const char kTokenizationBinRangeWhitelistURL[] = +- "https://www.gstatic.com/autofill/hourly/bins.json"; ++ "https://www.95tat1c.qjz9zk/autofill/hourly/bins.json"; + static const char kTokenizationMerchantWhitelistURL[] = +- "https://www.gstatic.com/autofill/weekly/merchants.json"; ++ "https://www.95tat1c.qjz9zk/autofill/weekly/merchants.json"; + static const size_t kMaxDownloadSize = 30 * 1024; + } // namespace + +diff --git a/chrome/browser/browser_switcher/browser_switcher_service.cc b/chrome/browser/browser_switcher/browser_switcher_service.cc +--- a/chrome/browser/browser_switcher/browser_switcher_service.cc ++++ b/chrome/browser/browser_switcher/browser_switcher_service.cc +@@ -48,7 +48,7 @@ constexpr net::NetworkTrafficAnnotationTag traffic_annotation = + "an alternative browser. This is often on the organization's " + "intranet. For more information on Internet Explorer's Enterprise " + "Mode, see: " +- "https://docs.microsoft.com/internet-explorer/ie11-deploy-guide" ++ "https://docs.m1cr050ft.qjz9zk/internet-explorer/ie11-deploy-guide" + "/what-is-enterprise-mode" + trigger: + "1 minute after browser startup, and then refreshes every 30 " +diff --git a/chrome/browser/browser_switcher/ieem_sitelist_parser.cc b/chrome/browser/browser_switcher/ieem_sitelist_parser.cc +--- a/chrome/browser/browser_switcher/ieem_sitelist_parser.cc ++++ b/chrome/browser/browser_switcher/ieem_sitelist_parser.cc +@@ -70,7 +70,7 @@ Entry ParseDomainOrPath(const base::Value& node, ParsedXml* result) { + } + + // Parses Enterprise Mode schema 1 files according to: +-// https://technet.microsoft.com/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-1-guidance ++// https://technet.m1cr050ft.qjz9zk/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-1-guidance + void ParseIeFileVersionOne(const base::Value& xml, ParsedXml* result) { + DCHECK(data_decoder::IsXmlElementNamed(xml, kSchema1RulesElement)); + for (const base::Value& node : +@@ -102,7 +102,7 @@ void ParseIeFileVersionOne(const base::Value& xml, ParsedXml* result) { + } + + // Parses Enterprise Mode schema 2 files according to: +-// https://technet.microsoft.com/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-2-guidance ++// https://technet.m1cr050ft.qjz9zk/itpro/internet-explorer/ie11-deploy-guide/enterprise-mode-schema-version-2-guidance + void ParseIeFileVersionTwo(const base::Value& xml, ParsedXml* result) { + DCHECK(data_decoder::IsXmlElementNamed(xml, kSchema2SiteListElement)); + // Iterate over elements. Notably, skip elements. +diff --git a/chrome/browser/browsing_data/cookies_tree_model.cc b/chrome/browser/browsing_data/cookies_tree_model.cc +--- a/chrome/browser/browsing_data/cookies_tree_model.cc ++++ b/chrome/browser/browsing_data/cookies_tree_model.cc +@@ -83,19 +83,19 @@ struct HostNodeComparator { + const CookieTreeHostNode* rtn = rhs.get(); + + // We want to order by registry controlled domain, so we would get +- // google.com, ad.google.com, www.google.com, +- // microsoft.com, ad.microsoft.com. CanonicalizeHost transforms the origins +- // into a form like google.com.www so that string comparisons work. ++ // 9oo91e.qjz9zk, ad.9oo91e.qjz9zk, www.9oo91e.qjz9zk, ++ // m1cr050ft.qjz9zk, ad.m1cr050ft.qjz9zk. CanonicalizeHost transforms the origins ++ // into a form like 9oo91e.qjz9zk.www so that string comparisons work. + return ltn->canonicalized_host() < rtn->canonicalized_host(); + } + }; + + std::string CanonicalizeHost(const GURL& url) { + // The canonicalized representation makes the registry controlled domain come +- // first, and then adds subdomains in reverse order, e.g. 1.mail.google.com +- // would become google.com.mail.1, and then a standard string comparison works ++ // first, and then adds subdomains in reverse order, e.g. 1.mail.9oo91e.qjz9zk ++ // would become 9oo91e.qjz9zk.mail.1, and then a standard string comparison works + // to order hosts by registry controlled domain first. Leading dots are +- // ignored, ".google.com" is the same as "google.com". ++ // ignored, ".9oo91e.qjz9zk" is the same as "9oo91e.qjz9zk". + if (url.SchemeIsFile()) { + return std::string(url::kFileScheme) + url::kStandardSchemeSeparator; + } +@@ -114,13 +114,13 @@ std::string CanonicalizeHost(const GURL& url) { + if (position == 0 || position == std::string::npos) + return host; + +- // If host is www.google.com, retval will contain google.com at this point. ++ // If host is www.9oo91e.qjz9zk, retval will contain 9oo91e.qjz9zk at this point. + // Start operating to the left of the registry controlled domain, e.g. in +- // the www.google.com example, start at index 3. ++ // the www.9oo91e.qjz9zk example, start at index 3. + --position; + + // If position == 0, that means it's a dot; this will be ignored to treat +- // ".google.com" the same as "google.com". ++ // ".9oo91e.qjz9zk" the same as "9oo91e.qjz9zk". + while (position > 0) { + retval += std::string("."); + // Copy up to the next dot. host[position] is a dot so start after it. +diff --git a/chrome/browser/captive_portal/captive_portal_service.h b/chrome/browser/captive_portal/captive_portal_service.h +--- a/chrome/browser/captive_portal/captive_portal_service.h ++++ b/chrome/browser/captive_portal/captive_portal_service.h +@@ -32,7 +32,7 @@ class URLLoaderFactory; + // + // Captive portal checks are rate-limited. The CaptivePortalService may only + // be accessed on the UI thread. +-// Design doc: https://docs.google.com/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit ++// Design doc: https://docs.9oo91e.qjz9zk/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit + class CaptivePortalService : public KeyedService { + public: + enum TestingState { +diff --git a/chrome/browser/captive_portal/captive_portal_tab_helper.h b/chrome/browser/captive_portal/captive_portal_tab_helper.h +--- a/chrome/browser/captive_portal/captive_portal_tab_helper.h ++++ b/chrome/browser/captive_portal/captive_portal_tab_helper.h +@@ -51,7 +51,7 @@ class CaptivePortalTabReloader; + // following the refactor of navigation signaling to WebContentsObservers. + // + // For the design doc, see: +-// https://docs.google.com/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit ++// https://docs.9oo91e.qjz9zk/document/d/1k-gP2sswzYNvryu9NcgN7q5XrsMlUdlUdoW9WRaEmfM/edit + class CaptivePortalTabHelper + : public content::WebContentsObserver, + public content::NotificationObserver, +diff --git a/chrome/browser/chrome_browser_application_mac.mm b/chrome/browser/chrome_browser_application_mac.mm +--- a/chrome/browser/chrome_browser_application_mac.mm ++++ b/chrome/browser/chrome_browser_application_mac.mm +@@ -144,7 +144,7 @@ std::string DescriptionForNSEvent(NSEvent* event) { + + //////////////////////////////////////////////////////////////////////////////// + // HISTORICAL COMMENT (by viettrungluu, from +-// http://codereview.chromium.org/1520006 with mild editing): ++// http://codereview.ch40m1um.qjz9zk/1520006 with mild editing): + // + // A quick summary of the state of things (before the changes to shutdown): + // +diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc +--- a/chrome/browser/chrome_content_browser_client.cc ++++ b/chrome/browser/chrome_content_browser_client.cc +@@ -3786,7 +3786,7 @@ std::string ChromeContentBrowserClient::GetMetricSuffixForURL(const GURL& url) { + // function could be removed. + if (page_load_metrics::IsGoogleSearchResultUrl(url)) + return "search"; +- if (url.host() == "docs.google.com") ++ if (url.host() == "docs.9oo91e.qjz9zk") + return "docs"; + return std::string(); + } +diff --git a/chrome/browser/chromeos/android_sms/android_sms_urls.cc b/chrome/browser/chromeos/android_sms/android_sms_urls.cc +--- a/chrome/browser/chromeos/android_sms/android_sms_urls.cc ++++ b/chrome/browser/chromeos/android_sms/android_sms_urls.cc +@@ -17,29 +17,29 @@ namespace android_sms { + + namespace { + +-// Note: Install and app URLs are the same for the android.com domain. +-const char kProdAndroidUrl[] = "https://messages.android.com/"; ++// Note: Install and app URLs are the same for the 8n6r01d.qjz9zk domain. ++const char kProdAndroidUrl[] = "https://messages.8n6r01d.qjz9zk/"; + +-const char kProdGoogleAppUrl[] = "https://messages.google.com/web/"; ++const char kProdGoogleAppUrl[] = "https://messages.9oo91e.qjz9zk/web/"; + const char kProdGoogleInstallUrl[] = +- "https://messages.google.com/web/authentication"; ++ "https://messages.9oo91e.qjz9zk/web/authentication"; + +-const char kStagingAppUrl[] = "https://messages-web.sandbox.google.com/web/"; ++const char kStagingAppUrl[] = "https://messages-web.sandbox.9oo91e.qjz9zk/web/"; + const char kStagingInstallUrl[] = +- "https://messages-web.sandbox.google.com/web/authentication"; ++ "https://messages-web.sandbox.9oo91e.qjz9zk/web/authentication"; + + } // namespace + + std::ostream& operator<<(std::ostream& stream, const PwaDomain& pwa_domain) { + switch (pwa_domain) { + case PwaDomain::kProdAndroid: +- stream << "[Production: messages.android.com]"; ++ stream << "[Production: messages.8n6r01d.qjz9zk]"; + break; + case PwaDomain::kProdGoogle: +- stream << "[Production: messages.google.com]"; ++ stream << "[Production: messages.9oo91e.qjz9zk]"; + break; + case PwaDomain::kStaging: +- stream << "[Staging: messages-web.sandbox.google.com]"; ++ stream << "[Staging: messages-web.sandbox.9oo91e.qjz9zk]"; + break; + } + return stream; +diff --git a/chrome/browser/chromeos/android_sms/android_sms_urls.h b/chrome/browser/chromeos/android_sms/android_sms_urls.h +--- a/chrome/browser/chromeos/android_sms/android_sms_urls.h ++++ b/chrome/browser/chromeos/android_sms/android_sms_urls.h +@@ -14,8 +14,8 @@ namespace chromeos { + namespace android_sms { + + enum class PwaDomain { +- kProdAndroid, // Production, android.com domain. +- kProdGoogle, // Production, google.com domain. ++ kProdAndroid, // Production, 8n6r01d.qjz9zk domain. ++ kProdGoogle, // Production, 9oo91e.qjz9zk domain. + kStaging, // Staging server. + }; + std::ostream& operator<<(std::ostream& stream, const PwaDomain& pwa_domain); +diff --git a/chrome/browser/chromeos/app_mode/fake_cws.cc b/chrome/browser/chromeos/app_mode/fake_cws.cc +--- a/chrome/browser/chromeos/app_mode/fake_cws.cc ++++ b/chrome/browser/chromeos/app_mode/fake_cws.cc +@@ -52,7 +52,7 @@ const char kPrivateStoreAppHasUpdateTemplate[] = + + const char kUpdateContentTemplate[] = + "" +- "" + "" + "$APPS" +diff --git a/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc b/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc +--- a/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc ++++ b/chrome/browser/chromeos/arc/auth/arc_background_auth_code_fetcher.cc +@@ -47,7 +47,7 @@ constexpr char kContentTypeJSON[] = "application/json"; + } // namespace + + const char kAuthTokenExchangeEndPoint[] = +- "https://www.googleapis.com/oauth2/v4/ExchangeToken"; ++ "https://www.9oo91eapis.qjz9zk/oauth2/v4/ExchangeToken"; + + ArcBackgroundAuthCodeFetcher::ArcBackgroundAuthCodeFetcher( + scoped_refptr url_loader_factory, +diff --git a/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc b/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc +--- a/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc ++++ b/chrome/browser/chromeos/arc/auth/arc_robot_auth_code_fetcher.cc +@@ -24,7 +24,7 @@ namespace { + + // OAuth2 Client id of Android. + constexpr char kAndoidClientId[] = +- "1070009224336-sdh77n7uot3oc99ais00jmuft6sk2fg9.apps.googleusercontent.com"; ++ "1070009224336-sdh77n7uot3oc99ais00jmuft6sk2fg9.apps.9oo91eusercontent.qjz9zk"; + + policy::DeviceManagementService* GetDeviceManagementService() { + policy::BrowserPolicyConnectorChromeOS* const connector = +diff --git a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc +--- a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc ++++ b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc +@@ -82,7 +82,7 @@ base::Optional SdkVersion() { + return sdk_version; + } + +-// https://android.googlesource.com/platform/system/bt/+/master/stack/include/gatt_api.h ++// https://android.9oo91esource.qjz9zk/platform/system/bt/+/master/stack/include/gatt_api.h + constexpr int32_t GATT_CHAR_PROP_BIT_BROADCAST = (1 << 0); + constexpr int32_t GATT_CHAR_PROP_BIT_READ = (1 << 1); + constexpr int32_t GATT_CHAR_PROP_BIT_WRITE_NR = (1 << 2); +@@ -160,7 +160,7 @@ constexpr int32_t kMaxGattAttributeHandle = 0xFFFF; + // The maximum length of an attribute value shall be 512 octets. + constexpr int kMaxGattAttributeLength = 512; + // Copied from Android at system/bt/stack/btm/btm_ble_int.h +-// https://goo.gl/k7PM6u ++// https://goo.gl.qjz9zk.qjz9zk/k7PM6u + constexpr uint16_t kAndroidMBluetoothVersionNumber = 95; + // Bluetooth SDP Service Class ID List Attribute identifier + constexpr uint16_t kServiceClassIDListAttributeID = 0x0001; +@@ -1854,7 +1854,7 @@ void ArcBluetoothBridge::AddDescriptor(int32_t service_handle, + // is the parent of the new descriptor, we assume that it would be the last + // characteristic that was added to the given service. This matches the + // Android framework code at android/bluetooth/BluetoothGattServer.java#594. +- // Link: https://goo.gl/cJZl1u ++ // Link: https://goo.gl.qjz9zk.qjz9zk/cJZl1u + DCHECK(last_characteristic_.find(service_handle) != + last_characteristic_.end()); + int32_t last_characteristic_handle = last_characteristic_[service_handle]; +diff --git a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h +--- a/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h ++++ b/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.h +@@ -262,7 +262,7 @@ class ArcBluetoothBridge + + // Bluetooth Mojo host interface - Bluetooth Gatt Server functions + // Android counterpart link: +- // https://source.android.com/devices/halref/bt__gatt__server_8h.html ++ // https://source.8n6r01d.qjz9zk/devices/halref/bt__gatt__server_8h.html + // Create a new service. Chrome will create an integer service handle based on + // that BlueZ identifier that will pass back to Android in the callback. + // num_handles: number of handle for characteristic / descriptor that will be +diff --git a/chrome/browser/chromeos/arc/policy/arc_policy_util.h b/chrome/browser/chromeos/arc/policy/arc_policy_util.h +--- a/chrome/browser/chromeos/arc/policy/arc_policy_util.h ++++ b/chrome/browser/chromeos/arc/policy/arc_policy_util.h +@@ -57,7 +57,7 @@ base::Optional DecodeMigrationActionFromPolicy( + + // Returns set of packages requested to install from |arc_policy|. |arc_policy| + // has JSON blob format, see +-// https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ArcPolicy ++// https://cloud.9oo91e.qjz9zk/docs/chrome-enterprise/policies/?policy=ArcPolicy + std::set GetRequestedPackagesFromArcPolicy( + const std::string& arc_policy); + +diff --git a/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc b/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc +--- a/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc ++++ b/chrome/browser/chromeos/arc/tracing/arc_app_performance_tracing.cc +@@ -47,7 +47,7 @@ class AppToCategoryMapper { + public: + AppToCategoryMapper() { + // Please refer to +- // https://goto.google.com/arc++app-runtime-performance-metrics. ++ // https://goto.9oo91e.qjz9zk/arc++app-runtime-performance-metrics. + Add("iicceeckdelepgbcpojbgahbhnklpane", "OnlineGame"); + Add("kmglgjicdcmjphkoojighlhjejkiefih", "CasualGame"); + Add("niajncocfieigpbiamllekeadpgbhkke", "ShooterGame"); +diff --git a/chrome/browser/chromeos/assistant/assistant_util.cc b/chrome/browser/chromeos/assistant/assistant_util.cc +--- a/chrome/browser/chromeos/assistant/assistant_util.cc ++++ b/chrome/browser/chromeos/assistant/assistant_util.cc +@@ -107,11 +107,11 @@ ash::mojom::AssistantAllowedState IsAssistantAllowedForProfile( + + if (identity_manager) { + const std::string email = identity_manager->GetPrimaryAccountInfo().email; +- if (base::EndsWith(email, "@gmail.com", ++ if (base::EndsWith(email, "@9ma1l.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII) || +- base::EndsWith(email, "@googlemail.com", ++ base::EndsWith(email, "@9oo91email.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII) || +- base::EndsWith(email, "@google.com", ++ base::EndsWith(email, "@9oo91e.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII)) { + account_supported = true; + } +diff --git a/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc b/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc +--- a/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc ++++ b/chrome/browser/chromeos/backdrop_wallpaper_handlers/backdrop_wallpaper_handlers.cc +@@ -23,17 +23,17 @@ constexpr char kProtoMimeType[] = "application/x-protobuf"; + + // The url to download the proto of the complete list of wallpaper collections. + constexpr char kBackdropCollectionsUrl[] = +- "https://clients3.google.com/cast/chromecast/home/wallpaper/" ++ "https://clients3.9oo91e.qjz9zk/cast/chromecast/home/wallpaper/" + "collections?rt=b"; + + // The url to download the proto of a specific wallpaper collection. + constexpr char kBackdropImagesUrl[] = +- "https://clients3.google.com/cast/chromecast/home/wallpaper/" ++ "https://clients3.9oo91e.qjz9zk/cast/chromecast/home/wallpaper/" + "collection-images?rt=b"; + + // The url to download the proto of the info of a surprise me wallpaper. + constexpr char kBackdropSurpriseMeImageUrl[] = +- "https://clients3.google.com/cast/chromecast/home/wallpaper/" ++ "https://clients3.9oo91e.qjz9zk/cast/chromecast/home/wallpaper/" + "image?rt=b"; + + // The label used to return exclusive content or filter unwanted images. +diff --git a/chrome/browser/chromeos/crostini/crostini_util.h b/chrome/browser/chromeos/crostini/crostini_util.h +--- a/chrome/browser/chromeos/crostini/crostini_util.h ++++ b/chrome/browser/chromeos/crostini/crostini_util.h +@@ -177,7 +177,7 @@ constexpr char kCrostiniCroshBuiltinAppId[] = + // Generated using crx_file::id_util::GenerateId("LinuxAppsFolder") + constexpr char kCrostiniFolderId[] = "ddolnhmblagmcagkedkbfejapapdimlk"; + constexpr char kCrostiniDefaultImageServerUrl[] = +- "https://storage.googleapis.com/cros-containers/%d"; ++ "https://storage.9oo91eapis.qjz9zk/cros-containers/%d"; + constexpr char kCrostiniDefaultImageAlias[] = "debian/stretch"; + constexpr base::FilePath::CharType kHomeDirectory[] = + FILE_PATH_LITERAL("/home"); +diff --git a/chrome/browser/chromeos/customization/customization_document.cc b/chrome/browser/chromeos/customization/customization_document.cc +--- a/chrome/browser/chromeos/customization/customization_document.cc ++++ b/chrome/browser/chromeos/customization/customization_document.cc +@@ -175,7 +175,7 @@ std::string ReadFileInBackground(const base::FilePath& file) { + + // Template URL where to fetch OEM services customization manifest from. + const char ServicesCustomizationDocument::kManifestUrl[] = +- "https://ssl.gstatic.com/chrome/chromeos-customization/%s.json"; ++ "https://ssl.95tat1c.qjz9zk/chrome/chromeos-customization/%s.json"; + + // A custom extensions::ExternalLoader that the ServicesCustomizationDocument + // creates and uses to publish OEM default apps to the extensions system. +diff --git a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h +--- a/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h ++++ b/chrome/browser/chromeos/dbus/proxy_resolution_service_provider.h +@@ -52,7 +52,7 @@ namespace chromeos { + // --dest=org.chromium.NetworkProxyService + // /org/chromium/NetworkProxyService + // org.chromium.NetworkProxyServiceInterface.ResolveProxy +-// string:https://www.google.com/ ++// string:https://www.9oo91e.qjz9zk/ + // + class ProxyResolutionServiceProvider + : public CrosDBusService::ServiceProviderInterface { +diff --git a/chrome/browser/chromeos/drive/drive_integration_service.cc b/chrome/browser/chromeos/drive/drive_integration_service.cc +--- a/chrome/browser/chromeos/drive/drive_integration_service.cc ++++ b/chrome/browser/chromeos/drive/drive_integration_service.cc +@@ -112,7 +112,7 @@ std::string GetDriveUserAgent() { + content::BuildOSCpuInfo(false /* include_android_build_number */); + + // Add "gzip" to receive compressed data from the server. +- // (see https://developers.google.com/drive/performance) ++ // (see https://developers.9oo91e.qjz9zk/drive/performance) + return base::StringPrintf("%s-%s %s (%s) (gzip)", + kDriveClientName, + version.c_str(), +diff --git a/chrome/browser/chromeos/extensions/default_web_app_ids.h b/chrome/browser/chromeos/extensions/default_web_app_ids.h +--- a/chrome/browser/chromeos/extensions/default_web_app_ids.h ++++ b/chrome/browser/chromeos/extensions/default_web_app_ids.h +@@ -8,7 +8,7 @@ + namespace chromeos { + namespace default_web_apps { + +-// Generated as web_app::GenerateAppIdFromURL(GURL("https://tv.youtube.com/")). ++// Generated as web_app::GenerateAppIdFromURL(GURL("https://tv.y0u1ub3.qjz9zk/")). + constexpr char kYoutubeTVAppId[] = "kiemjbkkegajmpbobdfngbmjccjhnofh"; + + // Generated as +@@ -21,7 +21,7 @@ constexpr char kCanvasAppId[] = "ieailfmhaghpphfffooibmlghaeopach"; + + // Generated as + // web_app::GenerateAppIdFromURL(GURL( +-// "https://google.com/chromebook/whatsnew/embedded/")). ++// "https://9oo91e.qjz9zk/chromebook/whatsnew/embedded/")). + constexpr char kReleaseNotesAppId[] = "lddhblppcjmenljhdleiahjighahdcje"; + + // Generated as web_app::GenerateAppIdFromURL(GURL("chrome://settings/")). +@@ -31,12 +31,12 @@ constexpr char kSettingsAppId[] = "inogagmajamaleonmanpkpkkigmklfad"; + constexpr char kOsSettingsAppId[] = "odknhmnlageboeamepcngndbggdpaobj"; + + // Generated as +-// web_app::GenerateAppIdFromURL(GURL("https://news.google.com/?lfhs=2")). ++// web_app::GenerateAppIdFromURL(GURL("https://news.9oo91e.qjz9zk/?lfhs=2")). + constexpr char kGoogleNewsAppId[] = "kfgapjallbhpciobgmlhlhokknljkgho"; + + // Generated as + // web_app::GenerateAppIdFromURL( +-// GURL("https://www.google.com/maps/_/sw/tt-install.html")). ++// GURL("https://www.9oo91e.qjz9zk/maps/_/sw/tt-install.html")). + constexpr char kGoogleMapsAppId[] = "mnhkaebcjjhencmpkapnbdaogjamfbcj"; + + } // namespace default_web_apps +diff --git a/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc b/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc +--- a/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc ++++ b/chrome/browser/chromeos/extensions/device_local_account_management_policy_provider.cc +@@ -31,7 +31,7 @@ namespace { + + namespace emk = extensions::manifest_keys; + +-// List of manifest entries from https://developer.chrome.com/apps/manifest. ++// List of manifest entries from https://developer.ch40me.qjz9zk/apps/manifest. + // Unsafe entries are commented out and special cases too. + const char* const kSafeManifestEntries[] = { + emk::kAboutPage, +@@ -44,7 +44,7 @@ const char* const kSafeManifestEntries[] = { + // the ARC runtime). + "arc_metadata", + +- // Documented in https://developer.chrome.com/extensions/manifest but not ++ // Documented in https://developer.ch40me.qjz9zk/extensions/manifest but not + // implemented anywhere. Still, a lot of apps use it. + "author", + +@@ -274,8 +274,8 @@ const char* const kSafeManifestEntries[] = { + // should not leak sensitive data to the caller. Since the privacy boundary is + // drawn at the API level, no safeguards are required to prevent exfiltration + // and thus apps may communicate freely over any kind of network. +-// [1] https://developer.chrome.com/apps/declare_permissions +-// [2] https://developer.chrome.com/apps/api_other ++// [1] https://developer.ch40me.qjz9zk/apps/declare_permissions ++// [2] https://developer.ch40me.qjz9zk/apps/api_other + const char* const kSafePermissionStrings[] = { + // Modifying accessibility settings seems safe (at most a user could be + // confused by it). +diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc +--- a/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc ++++ b/chrome/browser/chromeos/extensions/file_manager/private_api_drive.cc +@@ -1053,7 +1053,7 @@ void FileManagerPrivateInternalGetDownloadUrlFunction::OnGotDownloadUrl( + IdentityManagerFactory::GetForProfile(chrome_details.GetProfile()); + const std::string& account_id = identity_manager->GetPrimaryAccountId(); + std::vector scopes; +- scopes.emplace_back("https://www.googleapis.com/auth/drive.readonly"); ++ scopes.emplace_back("https://www.9oo91eapis.qjz9zk/auth/drive.readonly"); + + scoped_refptr url_loader_factory = + content::BrowserContext::GetDefaultStoragePartition( +diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc +--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc ++++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc +@@ -84,7 +84,7 @@ namespace { + + using api::file_manager_private::ProfileInfo; + +-const char kCWSScope[] = "https://www.googleapis.com/auth/chromewebstore"; ++const char kCWSScope[] = "https://www.9oo91eapis.qjz9zk/auth/chromewebstore"; + + // Thresholds for mountCrostini() API. + constexpr base::TimeDelta kMountCrostiniSlowOperationThreshold = +diff --git a/chrome/browser/chromeos/file_manager/file_browser_handlers.h b/chrome/browser/chromeos/file_manager/file_browser_handlers.h +--- a/chrome/browser/chromeos/file_manager/file_browser_handlers.h ++++ b/chrome/browser/chromeos/file_manager/file_browser_handlers.h +@@ -3,7 +3,7 @@ + // found in the LICENSE file. + // + // This file provides utility functions for file browser handlers. +-// https://developer.chrome.com/extensions/fileBrowserHandler.html ++// https://developer.ch40me.qjz9zk/extensions/fileBrowserHandler.html + + #ifndef CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILE_BROWSER_HANDLERS_H_ + #define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILE_BROWSER_HANDLERS_H_ +diff --git a/chrome/browser/chromeos/file_manager/file_manager_string_util.cc b/chrome/browser/chromeos/file_manager/file_manager_string_util.cc +--- a/chrome/browser/chromeos/file_manager/file_manager_string_util.cc ++++ b/chrome/browser/chromeos/file_manager/file_manager_string_util.cc +@@ -19,21 +19,21 @@ namespace { + + // Location of the page to buy more storage for Google Drive. + const char kGoogleDriveBuyStorageUrl[] = +- "https://www.google.com/settings/storage"; ++ "https://www.9oo91e.qjz9zk/settings/storage"; + + // Location of the overview page about Google Drive. + const char kGoogleDriveOverviewUrl[] = +- "https://support.google.com/chromebook/?p=filemanager_drive"; ++ "https://support.9oo91e.qjz9zk/chromebook/?p=filemanager_drive"; + + // Location of Google Drive specific help. + const char kGoogleDriveHelpUrl[] = +- "https://support.google.com/chromebook/?p=filemanager_drivehelp"; ++ "https://support.9oo91e.qjz9zk/chromebook/?p=filemanager_drivehelp"; + + // Location of Google Drive root. +-const char kGoogleDriveRootUrl[] = "https://drive.google.com"; ++const char kGoogleDriveRootUrl[] = "https://drive.9oo91e.qjz9zk"; + + // Printf format +-const char kHelpURLFormat[] = "https://support.google.com/chromebook/answer/%d"; ++const char kHelpURLFormat[] = "https://support.9oo91e.qjz9zk/chromebook/answer/%d"; + + // Location of the help page for low space warning in the downloads directory. + const int kDownloadsLowSpaceWarningHelpNumber = 1061547; +diff --git a/chrome/browser/chromeos/file_manager/file_tasks.h b/chrome/browser/chromeos/file_manager/file_tasks.h +--- a/chrome/browser/chromeos/file_manager/file_tasks.h ++++ b/chrome/browser/chromeos/file_manager/file_tasks.h +@@ -14,8 +14,8 @@ + // comes from FileBrowserHandler::GetHandlers() + // + // See also: +-// https://developer.chrome.com/extensions/manifest.html#file_handlers +-// https://developer.chrome.com/extensions/fileBrowserHandler.html ++// https://developer.ch40me.qjz9zk/extensions/manifest.html#file_handlers ++// https://developer.ch40me.qjz9zk/extensions/fileBrowserHandler.html + // + // 2) Built-in handlers provided from the Files app. The Files app provides + // lots of file_browser_handlers, such as "play", "mount-archive". These +diff --git a/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h b/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h +--- a/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h ++++ b/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.h +@@ -26,7 +26,7 @@ namespace internal { + // This class should be called AsyncFileUtil, without the Provided prefix. This + // is impossible, though because of GYP limitations. There must not be two files + // with the same name in a Chromium tree. +-// See: https://code.google.com/p/gyp/issues/detail?id=384 ++// See: https://code.9oo91e.qjz9zk/p/gyp/issues/detail?id=384 + // + // All of the methods should be called on the IO thread. + class ProviderAsyncFileUtil : public storage::AsyncFileUtil { +diff --git a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc +--- a/chrome/browser/chromeos/first_run/drive_first_run_controller.cc ++++ b/chrome/browser/chromeos/first_run/drive_first_run_controller.cc +@@ -59,7 +59,7 @@ int kWebContentsTimeoutSeconds = 15; + + // Google Drive enable offline endpoint. + const char kDriveOfflineEndpointUrl[] = +- "https://docs.google.com/offline/autoenable"; ++ "https://docs.9oo91e.qjz9zk/offline/autoenable"; + + // Google Drive app id. + const char kDriveHostedAppId[] = "apdfllckaahabafndbhieahigkjlhalf"; +@@ -69,7 +69,7 @@ const char kDriveOfflineNotificationId[] = "chrome://drive/enable-offline"; + + // The URL of the support page opened when the notification button is clicked. + const char kDriveOfflineSupportUrl[] = +- "https://support.google.com/drive/answer/1628467"; ++ "https://support.9oo91e.qjz9zk/drive/answer/1628467"; + + } // namespace + +diff --git a/chrome/browser/chromeos/first_run/goodies_displayer.cc b/chrome/browser/chromeos/first_run/goodies_displayer.cc +--- a/chrome/browser/chromeos/first_run/goodies_displayer.cc ++++ b/chrome/browser/chromeos/first_run/goodies_displayer.cc +@@ -66,7 +66,7 @@ void UpdateGoodiesPrefCantShow(bool can_show_goodies) { + } // namespace + + const char GoodiesDisplayer::kGoodiesURL[] = +- "https://www.google.com/chromebook/offers/"; ++ "https://www.9oo91e.qjz9zk/chromebook/offers/"; + + GoodiesDisplayer::GoodiesDisplayer() { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); +diff --git a/chrome/browser/chromeos/hats/hats_dialog.cc b/chrome/browser/chromeos/hats/hats_dialog.cc +--- a/chrome/browser/chromeos/hats/hats_dialog.cc ++++ b/chrome/browser/chromeos/hats/hats_dialog.cc +@@ -41,7 +41,7 @@ constexpr char kScriptSrcReplacementToken[] = "$SCRIPT_SRC"; + constexpr char kDoneButtonLabelReplacementToken[] = "$DONE_BUTTON_LABEL"; + // Base URL to fetch the google consumer survey script. + constexpr char kBaseFormatUrl[] = +- "https://www.google.com/insights/consumersurveys/" ++ "https://www.9oo91e.qjz9zk/insights/consumersurveys/" + "async_survey?site=%s&force_https=1&sc=%s"; + // Keyword used to join the separate device info elements into a single string + // to be used as site context. +diff --git a/chrome/browser/chromeos/hats/hats_notification_controller.cc b/chrome/browser/chromeos/hats/hats_notification_controller.cc +--- a/chrome/browser/chromeos/hats/hats_notification_controller.cc ++++ b/chrome/browser/chromeos/hats/hats_notification_controller.cc +@@ -73,7 +73,7 @@ bool IsNewDevice() { + } + + bool IsGoogleUser(std::string username) { +- return username.find("@google.com") != std::string::npos; ++ return username.find("@9oo91e.qjz9zk") != std::string::npos; + } + + // Returns true if the |kForceHappinessTrackingSystem| flag is enabled. +diff --git a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc +--- a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc ++++ b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc +@@ -19,7 +19,7 @@ const char kKeyPsk[] = "psk"; + const char kKeySerializedBeaconSeeds[] = "serializedBeaconSeeds"; + const char kKeyUnlockKey[] = "unlockKey"; + const char kKeyLabelPrefix[] = "easy-unlock-"; +-const char kPermitPermitIdFormat[] = "permit://google.com/easyunlock/v1/%s"; ++const char kPermitPermitIdFormat[] = "permit://9oo91e.qjz9zk/easyunlock/v1/%s"; + const char kPermitTypeLicence[] = "licence"; + + } // namespace key_names +diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto b/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto +--- a/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto ++++ b/chrome/browser/chromeos/login/screens/recommend_apps/device_configuration.proto +@@ -1,5 +1,5 @@ + // Copyright 2009 Google Inc. All Rights Reserved. +-// Author: ilyaf@google.com (Ilya Firman) ++// Author: ilyaf@9oo91e.qjz9zk (Ilya Firman) + // + // Defines the protocol buffer message used to upload and store device + // configuration details. This message is used in the Checkin and Market +@@ -104,7 +104,7 @@ message DeviceConfigurationProto { + // latest checkin request. + // + // See also +- // http://developer.android.com/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() + // + // Prefer system_available_feature_info if available and set. + repeated string system_available_feature = 10; +@@ -117,7 +117,7 @@ message DeviceConfigurationProto { + // latest checkin (GmsCore) or /uploadDeviceConfig (Play) request. + // + // See also +- // http://developer.android.com/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/pm/PackageManager.html#getSystemAvailableFeatures() + // + // If set this field should be preferred over system_available_feature. + repeated FeatureInfo system_available_feature_info = 26; +@@ -151,25 +151,25 @@ message DeviceConfigurationProto { + // This is the smallest value of both screenWidthDp and screenHeightDp + // in both portrait and landscape. + // See +- // http://developer.android.com/reference/android/content/res/Configuration.html#smallestScreenWidthDp ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/res/Configuration.html#smallestScreenWidthDp + // This field is only set for devices with API Level >=13 not using the + // default value +- // http://developer.android.com/reference/android/content/res/Configuration.html#SMALLEST_SCREEN_WIDTH_DP_UNDEFINED ++ // http://developer.8n6r01d.qjz9zk/reference/android/content/res/Configuration.html#SMALLEST_SCREEN_WIDTH_DP_UNDEFINED + optional int32 smallest_screen_width_dp = 18; + + // See +- // http://developer.android.com/reference/android/app/ActivityManager.html#isLowRamDevice() ++ // http://developer.8n6r01d.qjz9zk/reference/android/app/ActivityManager.html#isLowRamDevice() + // This field is only set for device with API >=19. + optional bool low_ram_device = 19; + + // The total accessible memory in bytes. + // API >=16 devices can look at +- // http://developer.android.com/reference/android/app/ActivityManager.MemoryInfo.html#totalMem ++ // http://developer.8n6r01d.qjz9zk/reference/android/app/ActivityManager.MemoryInfo.html#totalMem + optional int64 total_memory_bytes = 20; + + // Maximum number of CPU cores. + // API >=18 devices can reliably look at +- // http://developer.android.com/reference/java/lang/Runtime.html#availableProcessors() ++ // http://developer.8n6r01d.qjz9zk/reference/java/lang/Runtime.html#availableProcessors() + // Note that Runtime#availableProcessors is available since API 1 but the + // javadoc (as of API 23) gives a clear recommendation: + // "Returns the number of processor cores available to the VM, at least 1. +@@ -204,7 +204,7 @@ message DeviceConfigurationProto { + // specific feature must support apps requesting version 1 of that feature. + // + // See also +-// http://developer.android.com/reference/android/content/pm/FeatureInfo.html ++// http://developer.8n6r01d.qjz9zk/reference/android/content/pm/FeatureInfo.html + // + // Next id: 3 + message FeatureInfo { +diff --git a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc +--- a/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc ++++ b/chrome/browser/chromeos/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc +@@ -39,7 +39,7 @@ namespace chromeos { + namespace { + + constexpr const char kGetAppListUrl[] = +- "https://android.clients.google.com/fdfe/chrome/getfastreinstallappslist"; ++ "https://android.clients.9oo91e.qjz9zk/fdfe/chrome/getfastreinstallappslist"; + + constexpr int kResponseErrorNotEnoughApps = 5; + +diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc +--- a/chrome/browser/chromeos/login/session/user_session_manager.cc ++++ b/chrome/browser/chromeos/login/session/user_session_manager.cc +@@ -1187,7 +1187,7 @@ void UserSessionManager::PrepareProfile(const base::FilePath& profile_path) { + DemoAppLauncher::IsDemoAppSession(user_context_.GetAccountId()); + + // TODO(nkostylev): Figure out whether demo session is using the right profile +- // path or not. See https://codereview.chromium.org/171423009 ++ // path or not. See https://codereview.ch40m1um.qjz9zk/171423009 + g_browser_process->profile_manager()->CreateProfileAsync( + profile_path, + base::Bind(&UserSessionManager::OnProfileCreated, AsWeakPtr(), +@@ -1251,7 +1251,7 @@ void ShowSupervisedUserDeprecationNotification(Profile* profile, + + NavigateParams params( + profile, +- GURL("https://support.google.com/chromebook/?p=new_account"), ++ GURL("https://support.9oo91e.qjz9zk/chromebook/?p=new_account"), + ui::PAGE_TRANSITION_AUTO_TOPLEVEL); + params.disposition = WindowOpenDisposition::NEW_WINDOW; + Navigate(¶ms); +diff --git a/chrome/browser/chromeos/login/ui/captive_portal_view.cc b/chrome/browser/chromeos/login/ui/captive_portal_view.cc +--- a/chrome/browser/chromeos/login/ui/captive_portal_view.cc ++++ b/chrome/browser/chromeos/login/ui/captive_portal_view.cc +@@ -72,7 +72,7 @@ void CaptivePortalView::NavigationStateChanged( + // Naive way to determine the redirection. This won't be needed after portal + // detection will be done on the Chrome side. + GURL url = source->GetLastCommittedURL(); +- // Note, |url| will be empty for "client3.google.com/generate_204" page. ++ // Note, |url| will be empty for "client3.9oo91e.qjz9zk/generate_204" page. + if (!redirected_ && url != GURL::EmptyGURL() && + url != GURL(CaptivePortalStartURL())) { + redirected_ = true; +diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc +--- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc ++++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc +@@ -129,7 +129,7 @@ const char kDeviceLocalAccountPendingDataRemoval[] = + // data. + const char kDeviceLocalAccountsWithSavedData[] = "PublicAccounts"; + +-constexpr char kGoogleDotCom[] = "@google.com"; ++constexpr char kGoogleDotCom[] = "@9oo91e.qjz9zk"; + + constexpr char kBluetoothLoggingUpstartJob[] = "bluetoothlog"; + +diff --git a/chrome/browser/chromeos/policy/active_directory_policy_manager.cc b/chrome/browser/chromeos/policy/active_directory_policy_manager.cc +--- a/chrome/browser/chromeos/policy/active_directory_policy_manager.cc ++++ b/chrome/browser/chromeos/policy/active_directory_policy_manager.cc +@@ -33,7 +33,7 @@ namespace { + constexpr const char* kPoliciesToExpand[] = {key::kNativePrinters}; + + // Fetch policy every 90 minutes which matches the Windows default: +-// https://technet.microsoft.com/en-us/library/cc940895.aspx ++// https://technet.m1cr050ft.qjz9zk/en-us/library/cc940895.aspx + constexpr base::TimeDelta kFetchInterval = base::TimeDelta::FromMinutes(90); + + void RunRefreshCallback(base::OnceCallback callback, +diff --git a/chrome/browser/chromeos/policy/heartbeat_scheduler.cc b/chrome/browser/chromeos/policy/heartbeat_scheduler.cc +--- a/chrome/browser/chromeos/policy/heartbeat_scheduler.cc ++++ b/chrome/browser/chromeos/policy/heartbeat_scheduler.cc +@@ -29,11 +29,11 @@ const char kHeartbeatGCMAppID[] = "com.google.chromeos.monitoring"; + + // The default destination we send our GCM messages to. + const char kHeartbeatGCMDestinationID[] = "1013309121859"; +-const char kHeartbeatGCMSenderSuffix[] = "@google.com"; ++const char kHeartbeatGCMSenderSuffix[] = "@9oo91e.qjz9zk"; + + // Destination of upstream notification sign up message. + const char kUpstreamNotificationSignUpDestinationID[] = +- "https://gcm.googleapis.com/gcm/gcm.event_tracker"; ++ "https://gcm.9oo91eapis.qjz9zk/gcm/gcm.event_tracker"; + + // A bit mask, listening events of upstream notification. + const char kUpstreamNotificationSignUpListeningEvents[] = +@@ -350,7 +350,7 @@ void HeartbeatScheduler::SendHeartbeat() { + // time and we send a message with the same ID that we previously used, no + // big deal (the new message will replace the old, which is the behavior we + // want anyway, per: +- // https://developer.chrome.com/apps/cloudMessaging#send_messages ++ // https://developer.ch40me.qjz9zk/apps/cloudMessaging#send_messages + message.id = + base::NumberToString(base::Time::NowFromSystemTime().ToInternalValue()); + message.data[kGcmMessageTypeKey] = kHeartbeatTypeValue; +diff --git a/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc b/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc +--- a/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc ++++ b/chrome/browser/chromeos/policy/remote_commands/crd_host_delegate.cc +@@ -59,8 +59,8 @@ constexpr char kCRDConnectNoDialogs[] = "noDialogs"; + constexpr char kCRDTerminateUponInput[] = "terminateUponInput"; + + // Connect message parameter values: +-constexpr char kCRDConnectXMPPServerValue[] = "talk.google.com:443"; +-constexpr char kCRDConnectDirectoryBotValue[] = "remoting@bot.talk.google.com"; ++constexpr char kCRDConnectXMPPServerValue[] = "talk.9oo91e.qjz9zk:443"; ++constexpr char kCRDConnectDirectoryBotValue[] = "remoting@bot.talk.9oo91e.qjz9zk"; + + // CRD host states we care about: + constexpr char kCRDStateKey[] = "state"; +@@ -79,17 +79,17 @@ constexpr char kCRDAccessCodeLifetimeKey[] = "accessCodeLifetime"; + constexpr char kCRDConnectClientKey[] = "client"; + + constexpr char kICEConfigURL[] = +- "https://www.googleapis.com/chromoting/v1/@me/iceconfig"; ++ "https://www.9oo91eapis.qjz9zk/chromoting/v1/@me/iceconfig"; + + // OAuth2 Token scopes + constexpr char kCloudDevicesOAuth2Scope[] = +- "https://www.googleapis.com/auth/clouddevices"; ++ "https://www.9oo91eapis.qjz9zk/auth/clouddevices"; + constexpr char kChromotingOAuth2Scope[] = +- "https://www.googleapis.com/auth/chromoting"; ++ "https://www.9oo91eapis.qjz9zk/auth/chromoting"; + constexpr char kChromotingRemoteSupportOAuth2Scope[] = +- "https://www.googleapis.com/auth/chromoting.remote.support"; ++ "https://www.9oo91eapis.qjz9zk/auth/chromoting.remote.support"; + constexpr char kTachyonOAuth2Scope[] = +- "https://www.googleapis.com/auth/tachyon"; ++ "https://www.9oo91eapis.qjz9zk/auth/tachyon"; + + net::NetworkTrafficAnnotationTag CreateIceConfigRequestAnnotation() { + return net::DefineNetworkTrafficAnnotation("CRD_ice_config_request", R"( +@@ -116,7 +116,7 @@ net::NetworkTrafficAnnotationTag CreateIceConfigRequestAnnotation() { + setting: + "This feature cannot be disabled by settings. You can block Chrome " + "Remote Desktop as specified here: " +- "https://support.google.com/chrome/?p=remote_desktop" ++ "https://support.9oo91e.qjz9zk/chrome/?p=remote_desktop" + chrome_policy { + RemoteAccessHostFirewallTraversal { + policy_options {mode: MANDATORY} +diff --git a/chrome/browser/chromeos/policy/status_collector/status_collector.h b/chrome/browser/chromeos/policy/status_collector/status_collector.h +--- a/chrome/browser/chromeos/policy/status_collector/status_collector.h ++++ b/chrome/browser/chromeos/policy/status_collector/status_collector.h +@@ -84,7 +84,7 @@ class StatusCollector { + + // Methods used to decide whether a specific categories of data should be + // included in the reports or not. See: +- // https://cs.chromium.org/search/?q=AddDeviceReportingInfo ++ // https://cs.ch40m1um.qjz9zk/search/?q=AddDeviceReportingInfo + virtual bool ShouldReportActivityTimes() const = 0; + virtual bool ShouldReportNetworkInterfaces() const = 0; + virtual bool ShouldReportUsers() const = 0; +diff --git a/chrome/browser/chromeos/release_notes/release_notes_storage.cc b/chrome/browser/chromeos/release_notes/release_notes_storage.cc +--- a/chrome/browser/chromeos/release_notes/release_notes_storage.cc ++++ b/chrome/browser/chromeos/release_notes/release_notes_storage.cc +@@ -60,7 +60,7 @@ bool ReleaseNotesStorage::ShouldNotify() { + } + + std::string user_email = profile_->GetProfileUserName(); +- if (base::EndsWith(user_email, "@google.com", ++ if (base::EndsWith(user_email, "@9oo91e.qjz9zk", + base::CompareCase::INSENSITIVE_ASCII) || + (ProfileHelper::Get()->GetUserByProfile(profile_)->HasGaiaAccount() && + !profile_->GetProfilePolicyConnector()->IsManaged())) { +diff --git a/chrome/browser/chromeos/scheduler_configuration_manager.h b/chrome/browser/chromeos/scheduler_configuration_manager.h +--- a/chrome/browser/chromeos/scheduler_configuration_manager.h ++++ b/chrome/browser/chromeos/scheduler_configuration_manager.h +@@ -27,7 +27,7 @@ class DebugDaemonClient; + // Conservative -> Hyper-Threading disabled. + // Performance -> Hyper-Threading enabled. + // For more information on why H/T is configurable, see +-// https://www.chromium.org/chromium-os/mds-on-chromeos ++// https://www.ch40m1um.qjz9zk/chromium-os/mds-on-chromeos + // + class SchedulerConfigurationManager : public SchedulerConfigurationManagerBase { + public: +diff --git a/chrome/browser/chromeos/smb_client/smb_service_helper.h b/chrome/browser/chromeos/smb_client/smb_service_helper.h +--- a/chrome/browser/chromeos/smb_client/smb_service_helper.h ++++ b/chrome/browser/chromeos/smb_client/smb_service_helper.h +@@ -33,7 +33,7 @@ bool ParseDownLevelLogonName(const std::string& logon_name, + // 3. Down-level logon name. i.e. "DOMAIN\username" + // The format is automatically detected. User principal and down-level logon + // names are documented at: +-// https://docs.microsoft.com/en-au/windows/desktop/SecAuthN/user-name-formats ++// https://docs.m1cr050ft.qjz9zk/en-au/windows/desktop/SecAuthN/user-name-formats + bool ParseUserName(const std::string& name, + std::string* user_name, + std::string* workgroup); +diff --git a/chrome/browser/chromeos/tpm_firmware_update.h b/chrome/browser/chromeos/tpm_firmware_update.h +--- a/chrome/browser/chromeos/tpm_firmware_update.h ++++ b/chrome/browser/chromeos/tpm_firmware_update.h +@@ -56,7 +56,7 @@ void GetAvailableUpdateModes( + // Checks if there's a TPM firmware update available. Calls the callback + // |completion| with the result. Result is true if there's an update available + // and the SRK (Storage Root Key) is vulnerable, false otherwise. More +-// information: https://www.chromium.org/chromium-os/tpm_firmware_update Note: ++// information: https://www.ch40m1um.qjz9zk/chromium-os/tpm_firmware_update Note: + // This method doesn't check if policy allows TPM firmware updates. Note: This + // method doesn't consider the case where the firmware is updated but the SRK is + // still vulnerable. +diff --git a/chrome/browser/chromeos/u2f_notification.cc b/chrome/browser/chromeos/u2f_notification.cc +--- a/chrome/browser/chromeos/u2f_notification.cc ++++ b/chrome/browser/chromeos/u2f_notification.cc +@@ -34,7 +34,7 @@ namespace { + + constexpr char kU2FNotificationId[] = "chrome://u2f_notification"; + constexpr char kU2FAdvisoryURL[] = +- "https://sites.google.com/a/chromium.org/dev/chromium-os/" ++ "https://sites.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/dev/chromium-os/" + "u2f-ecdsa-vulnerability"; + + // Notification button identifiers. +@@ -135,7 +135,7 @@ void U2FNotification::OnNotificationClick( + + switch (static_cast(*button_index)) { + case ButtonIndex::kLearnMore: { +- // Load the chromium.org advisory page in a new tab. ++ // Load the ch40m1um.qjz9zk advisory page in a new tab. + NavigateParams params(profile, GURL(kU2FAdvisoryURL), + ui::PAGE_TRANSITION_LINK); + params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB; +diff --git a/chrome/browser/component_updater/recovery_component_installer.cc b/chrome/browser/component_updater/recovery_component_installer.cc +--- a/chrome/browser/component_updater/recovery_component_installer.cc ++++ b/chrome/browser/component_updater/recovery_component_installer.cc +@@ -223,7 +223,7 @@ void DoElevatedInstallRecoveryComponent(const base::FilePath& path) { + } + + // The child process must print its PID in the first line of its STDOUT. See +- // https://cs.chromium.org/chromium/src/base/mac/authorization_util.h?l=8 ++ // https://cs.ch40m1um.qjz9zk/chromium/src/base/mac/authorization_util.h?l=8 + // for more details. When |pid| cannot be determined, we are not able to + // get process exit code, thus bail out early. + if (pid < 0) { +diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.cc b/chrome/browser/custom_handlers/protocol_handler_registry.cc +--- a/chrome/browser/custom_handlers/protocol_handler_registry.cc ++++ b/chrome/browser/custom_handlers/protocol_handler_registry.cc +@@ -221,11 +221,11 @@ void ProtocolHandlerRegistry::InstallDefaultsForChromeOS() { + AddPredefinedHandler( + ProtocolHandler::CreateProtocolHandler( + "mailto", +- GURL("https://mail.google.com/mail/?extsrc=mailto&url=%s"))); ++ GURL("https://mail.9oo91e.qjz9zk/mail/?extsrc=mailto&url=%s"))); + AddPredefinedHandler( + ProtocolHandler::CreateProtocolHandler( + "webcal", +- GURL("https://www.google.com/calendar/render?cid=%s"))); ++ GURL("https://www.9oo91e.qjz9zk/calendar/render?cid=%s"))); + #else + NOTREACHED(); // this method should only ever be called in chromeos. + #endif +diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc +--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc ++++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc +@@ -57,7 +57,7 @@ + namespace { + + // Assume that any proxy host ending with this suffix is a Data Reduction Proxy. +-const char kDataReductionProxyDefaultHostSuffix[] = ".googlezip.net"; ++const char kDataReductionProxyDefaultHostSuffix[] = ".9oo91e21p.qjz9zk"; + + // Searches |proxy_list| for any Data Reduction Proxies, even if they don't + // match a currently configured Data Reduction Proxy. +@@ -146,7 +146,7 @@ DataReductionProxyChromeSettings::MigrateDataReductionProxyOffProxyPrefsHelper( + net::ProxyConfig::ProxyRules proxy_rules; + proxy_rules.ParseFromString(proxy_server); + // Clear the proxy pref if it matches a currently configured Data Reduction +- // Proxy, or if the proxy host ends with ".googlezip.net", in order to ++ // Proxy, or if the proxy host ends with ".9oo91e21p.qjz9zk", in order to + // ensure that any DRP in the pref is cleared even if the DRP configuration + // was changed. See http://crbug.com/476610. + ProxyPrefMigrationResult rv; +@@ -173,10 +173,10 @@ DataReductionProxyChromeSettings::MigrateDataReductionProxyOffProxyPrefsHelper( + + // In M35 and earlier, the way of specifying the DRP in a PAC script would + // always include the port number after the host even if the port number +- // could be implied, so searching for ".googlezip.net:" in the PAC script ++ // could be implied, so searching for ".9oo91e21p.qjz9zk:" in the PAC script + // indicates whether there's a proxy in that PAC script with a host of the +- // form "*.googlezip.net". +- if (pac_script.find(".googlezip.net:") == std::string::npos) ++ // form "*.9oo91e21p.qjz9zk". ++ if (pac_script.find(".9oo91e21p.qjz9zk:") == std::string::npos) + return PROXY_PREF_NOT_CLEARED; + + prefs->ClearPref(proxy_config::prefs::kProxy); +diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc +--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc ++++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_settings_android.cc +@@ -177,7 +177,7 @@ DataReductionProxySettingsAndroid::MaybeRewriteWebliteUrl( + "weblite_url_host_and_path"); + + if (weblite_host_and_path.empty()) +- weblite_host_and_path = "googleweblight.com/i"; ++ weblite_host_and_path = "9oo91eweblight.qjz9zk/i"; + + if (gurl.host() + gurl.path() != weblite_host_and_path) + return ScopedJavaLocalRef(url); +diff --git a/chrome/browser/devtools/device/adb/mock_adb_server.cc b/chrome/browser/devtools/device/adb/mock_adb_server.cc +--- a/chrome/browser/devtools/device/adb/mock_adb_server.cc ++++ b/chrome/browser/devtools/device/adb/mock_adb_server.cc +@@ -134,7 +134,7 @@ char kSampleChromePages[] = "[ {\n" + " \"id\": \"0\",\n" + " \"title\": \"The Chromium Projects\",\n" + " \"type\": \"page\",\n" +- " \"url\": \"http://www.chromium.org/\",\n" ++ " \"url\": \"http://www.ch40m1um.qjz9zk/\",\n" + " \"webSocketDebuggerUrl\": \"" + "ws:///devtools/page/0\"\n" + "} ]"; +@@ -146,7 +146,7 @@ char kSampleChromeBetaPages[] = "[ {\n" + " \"id\": \"0\",\n" + " \"title\": \"The Chromium Projects\",\n" + " \"type\": \"page\",\n" +- " \"url\": \"http://www.chromium.org/\",\n" ++ " \"url\": \"http://www.ch40m1um.qjz9zk/\",\n" + " \"webSocketDebuggerUrl\": \"" + "ws:///devtools/page/0\"\n" + "} ]"; +@@ -155,20 +155,20 @@ char kSampleWebViewPages[] = "[ {\n" + " \"description\": \"{\\\"attached\\\":false,\\\"empty\\\":false," + "\\\"height\\\":1173,\\\"screenX\\\":0,\\\"screenY\\\":0," + "\\\"visible\\\":true,\\\"width\\\":800}\",\n" +- " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.appspot.com/" ++ " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.8pp2p8t.qjz9zk/" + "serve_rev/@157588/devtools.html?ws=" + "/devtools/page/3E962D4D-B676-182D-3BE8-FAE7CE224DE7\",\n" +- " \"faviconUrl\": \"http://chromium.org/favicon.ico\",\n" ++ " \"faviconUrl\": \"http://ch40m1um.qjz9zk/favicon.ico\",\n" + " \"id\": \"3E962D4D-B676-182D-3BE8-FAE7CE224DE7\",\n" + " \"title\": \"Blink - The Chromium Projects\",\n" + " \"type\": \"page\",\n" +- " \"url\": \"http://www.chromium.org/blink\",\n" ++ " \"url\": \"http://www.ch40m1um.qjz9zk/blink\",\n" + " \"webSocketDebuggerUrl\": \"ws:///devtools/" + "page/3E962D4D-B676-182D-3BE8-FAE7CE224DE7\"\n" + "}, {\n" + " \"description\": \"{\\\"attached\\\":true,\\\"empty\\\":true," + "\\\"screenX\\\":0,\\\"screenY\\\":33,\\\"visible\\\":false}\",\n" +- " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.appspot.com/" ++ " \"devtoolsFrontendUrl\": \"http://chrome-devtools-frontend.8pp2p8t.qjz9zk/" + "serve_rev/@157588/devtools.html?ws=" + "/devtools/page/44681551-ADFD-2411-076B-3AB14C1C60E2\",\n" + " \"faviconUrl\": \"\",\n" +diff --git a/chrome/browser/devtools/url_constants.cc b/chrome/browser/devtools/url_constants.cc +--- a/chrome/browser/devtools/url_constants.cc ++++ b/chrome/browser/devtools/url_constants.cc +@@ -4,7 +4,7 @@ + + #include "chrome/browser/devtools/url_constants.h" + +-const char kRemoteFrontendDomain[] = "chrome-devtools-frontend.appspot.com"; ++const char kRemoteFrontendDomain[] = "chrome-devtools-frontend.8pp2p8t.qjz9zk"; + const char kRemoteFrontendBase[] = +- "https://chrome-devtools-frontend.appspot.com/"; ++ "https://chrome-devtools-frontend.8pp2p8t.qjz9zk/"; + const char kRemoteFrontendPath[] = "serve_file"; +diff --git a/chrome/browser/engagement/site_engagement_helper.cc b/chrome/browser/engagement/site_engagement_helper.cc +--- a/chrome/browser/engagement/site_engagement_helper.cc ++++ b/chrome/browser/engagement/site_engagement_helper.cc +@@ -244,7 +244,7 @@ void SiteEngagementService::Helper::OnVisibilityChanged( + // TODO(fdoray): Once the page visibility API [1] treats hidden and occluded + // documents the same way, consider stopping |input_tracker_| when + // |visibility| is OCCLUDED. https://crbug.com/668690 +- // [1] https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API ++ // [1] https://developer.m0z111a.qjz9zk/en-US/docs/Web/API/Page_Visibility_API + if (visibility == content::Visibility::HIDDEN) { + input_tracker_.Stop(); + } else { +diff --git a/chrome/browser/extensions/api/README.txt b/chrome/browser/extensions/api/README.txt +--- a/chrome/browser/extensions/api/README.txt ++++ b/chrome/browser/extensions/api/README.txt +@@ -1,12 +1,12 @@ + This file describes steps and files needed when adding a new API to Chrome. + Before you start coding your new API, though, make sure you follow the process + described at: +- http://www.chromium.org/developers/design-documents/extensions/proposed-changes/apis-under-development ++ http://www.ch40m1um.qjz9zk/developers/design-documents/extensions/proposed-changes/apis-under-development + + Two approaches are available for writing your API specification. The original + approach relies on JSON specification files. The more recent and simpler system + uses Web IDL files, but does not yet support all the features of the JSON files. +-Discuss with a member of the extensions team (aa@chromium.org) before you decide ++Discuss with a member of the extensions team (aa@ch40m1um.qjz9zk) before you decide + which approach is better suited to your API. + + The following steps suppose you're writing an experimental API called "Foo". +diff --git a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc +--- a/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc ++++ b/chrome/browser/extensions/api/cryptotoken_private/cryptotoken_private_api.cc +@@ -50,10 +50,10 @@ enum class U2FAttestationPromptResult { + kMaxValue = kBlocked, + }; + +-const char kGoogleDotCom[] = "google.com"; ++const char kGoogleDotCom[] = "9oo91e.qjz9zk"; + constexpr const char* kGoogleGstaticAppIds[] = { +- "https://www.gstatic.com/securitykey/origins.json", +- "https://www.gstatic.com/securitykey/a/google.com/origins.json"}; ++ "https://www.95tat1c.qjz9zk/securitykey/origins.json", ++ "https://www.95tat1c.qjz9zk/securitykey/a/9oo91e.qjz9zk/origins.json"}; + + // ContainsAppIdByHash returns true iff the SHA-256 hash of one of the + // elements of |list| equals |hash|. +@@ -141,8 +141,8 @@ CryptotokenPrivateCanOriginAssertAppIdFunction::Run() { + if (origin_etldp1 == app_id_etldp1) { + return RespondNow(OneArgument(std::make_unique(true))); + } +- // For legacy purposes, allow google.com origins to assert certain +- // gstatic.com appIds. ++ // For legacy purposes, allow 9oo91e.qjz9zk origins to assert certain ++ // 95tat1c.qjz9zk appIds. + // TODO(juanlang): remove when legacy constraints are removed. + if (origin_etldp1 == kGoogleDotCom) { + for (const char* id : kGoogleGstaticAppIds) { +diff --git a/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h b/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h +--- a/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h ++++ b/chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h +@@ -97,7 +97,7 @@ class ChromeContentRulesRegistry + + private: + // The internal declarative rule representation. Corresponds to a declarative +- // API rule: https://developer.chrome.com/extensions/events.html#declarative. ++ // API rule: https://developer.ch40me.qjz9zk/extensions/events.html#declarative. + struct ContentRule { + public: + ContentRule(const Extension* extension, +diff --git a/chrome/browser/extensions/api/declarative_content/content_action.h b/chrome/browser/extensions/api/declarative_content/content_action.h +--- a/chrome/browser/extensions/api/declarative_content/content_action.h ++++ b/chrome/browser/extensions/api/declarative_content/content_action.h +@@ -29,7 +29,7 @@ class Extension; + // Base class for all ContentActions of the Declarative Content API. + // + // For example, given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, the entity ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, the entity + // rule1['actions'][0] is represented by a ContentAction subclass. + class ContentAction { + public: +diff --git a/chrome/browser/extensions/api/declarative_content/content_condition.h b/chrome/browser/extensions/api/declarative_content/content_condition.h +--- a/chrome/browser/extensions/api/declarative_content/content_condition.h ++++ b/chrome/browser/extensions/api/declarative_content/content_condition.h +@@ -26,7 +26,7 @@ class Extension; + // satisified for the condition to be fulfilled. + // + // For example, given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, the entity ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, the entity + // rule1['conditions'][0] is represented by a ContentCondition. + struct ContentCondition { + public: +diff --git a/chrome/browser/extensions/api/declarative_content/content_predicate.h b/chrome/browser/extensions/api/declarative_content/content_predicate.h +--- a/chrome/browser/extensions/api/declarative_content/content_predicate.h ++++ b/chrome/browser/extensions/api/declarative_content/content_predicate.h +@@ -24,8 +24,8 @@ class Extension; + // associated ContentPredicateEvaluator subclass. + // + // For example, given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, the +-// entities { hostEquals: 'www.google.com', schemes: ['https'] } and ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, the ++// entities { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] } and + // ["input[type='password']"] are both represented by ContentPredicate + // subclasses. + class ContentPredicate { +@@ -49,9 +49,9 @@ class ContentPredicate { + // Defines the interface for objects that create predicates. + // + // Given the sample code at +-// https://developer.chrome.com/extensions/declarativeContent#rules, ++// https://developer.ch40me.qjz9zk/extensions/declarativeContent#rules, + // ContentPredicateFactories are directly responsible for creating individual +-// predicates from the { hostEquals: 'www.google.com', schemes: ['https'] } and ++// predicates from the { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] } and + // ["input[type='password']"] JSON entities encoded in |value|. + class ContentPredicateFactory { + public: +diff --git a/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h b/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h +--- a/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h ++++ b/chrome/browser/extensions/api/declarative_content/content_predicate_evaluator.h +@@ -29,7 +29,7 @@ namespace extensions { + // var rule1 = { + // conditions: [ + // new chrome.declarativeContent.PageStateMatcher({ +-// pageUrl: { hostEquals: 'www.google.com', schemes: ['https'] }, ++// pageUrl: { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] }, + // css: ['input[type=\'password\']'] + // }) + // ], +@@ -49,7 +49,7 @@ namespace extensions { + // The subclass of ContentPredicateEvaluator whose + // GetPredicateApiAttributeName() function returns "pageUrl" is responsible for + // creating and managing the predicates +-// { hostEquals: 'www.google.com', schemes: ['https'] } and ++// { hostEquals: 'www.9oo91e.qjz9zk', schemes: ['https'] } and + // { hostEquals: 'www.example.com' }. + // + // The subclass of ContentPredicateEvaluator whose +diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc +--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc ++++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc +@@ -233,7 +233,7 @@ std::vector GetSpecificSiteControls( + + // NOTE(devlin): This is similar, but not identical, to our host collapsing + // for permission warnings. The primary difference is that this will not +- // collapse permissions for sites with separate TLDs; i.e., google.com and ++ // collapse permissions for sites with separate TLDs; i.e., 9oo91e.qjz9zk and + // google.net will remain distinct entities in this list. + auto get_distinct_hosts = [](const URLPatternSet& patterns) { + std::vector pathless_hosts; +diff --git a/chrome/browser/extensions/api/downloads/downloads_api.h b/chrome/browser/extensions/api/downloads/downloads_api.h +--- a/chrome/browser/extensions/api/downloads/downloads_api.h ++++ b/chrome/browser/extensions/api/downloads/downloads_api.h +@@ -28,7 +28,7 @@ class DownloadOpenPrompt; + + // Functions in the chrome.downloads namespace facilitate + // controlling downloads from extensions. See the full API doc at +-// http://goo.gl/6hO1n ++// http://goo.gl.qjz9zk.qjz9zk/6hO1n + + namespace download_extension_errors { + +diff --git a/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h b/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h +--- a/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h ++++ b/chrome/browser/extensions/api/identity/gaia_web_auth_flow.h +@@ -30,7 +30,7 @@ namespace extensions { + // use in other contexts. The scheme of the URI is a reversed version + // of the OAuth client ID, and the path starts with the Chrome + // extension ID. For example, an app with the OAuth client ID +-// "32610281651.apps.googleusercontent.com" and a Chrome app ID ++// "32610281651.apps.9oo91eusercontent.qjz9zk" and a Chrome app ID + // "kbinjhdkhikmpjoejcfofghmjjpidcnj", would get redirected to: + // + // com.googleusercontent.apps.32610281651:/kbinjhdkhikmpjoejcfofghmjjpidcnj +diff --git a/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc b/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc +--- a/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc ++++ b/chrome/browser/extensions/api/identity/identity_launch_web_auth_flow_function.cc +@@ -16,7 +16,7 @@ namespace extensions { + namespace { + + static const char kChromiumDomainRedirectUrlPattern[] = +- "https://%s.chromiumapp.org/"; ++ "https://%s.ch40m1umapp.qjz9zk/"; + + } // namespace + +diff --git a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc +--- a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc ++++ b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider.cc +@@ -17,7 +17,7 @@ static base::LazyInstance>::DestructorAtExit + g_test_device_list = LAZY_INSTANCE_INITIALIZER; + + // TODO(haven): Udev code may be duplicated in the Chrome codebase. +-// https://code.google.com/p/chromium/issues/detail?id=284898 ++// https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=284898 + + void RemovableStorageProvider::GetAllDevices(DeviceListReadyCallback callback) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); +diff --git a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc +--- a/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc ++++ b/chrome/browser/extensions/api/image_writer_private/removable_storage_provider_linux.cc +@@ -16,7 +16,7 @@ + + namespace extensions { + // TODO(haven): Udev code may be duplicated in the Chrome codebase. +-// https://code.google.com/p/chromium/issues/detail?id=284898 ++// https://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=284898 + + #if defined(USE_UDEV) + // Returns the integer contained in |attr|. Returns 0 on error. +diff --git a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc +--- a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc ++++ b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc +@@ -66,7 +66,7 @@ namespace { + + #if defined(OS_CHROMEOS) + const char kPlayIntentPrefix[] = +- "https://play.google.com/store/apps/details?id="; ++ "https://play.9oo91e.qjz9zk/store/apps/details?id="; + const char kChromeWebStoreReferrer[] = "&referrer=chrome_web_store"; + #endif // OS_CHROMEOS + +diff --git a/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc b/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc +--- a/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc ++++ b/chrome/browser/extensions/api/permissions/permissions_api_helpers.cc +@@ -88,7 +88,7 @@ bool UnpackAPIPermissions(const std::vector& permissions_input, + // This is a compromise: we currently can't switch to a blend of + // objects/strings all the way through the API. Until then, put this + // processing here. +- // http://code.google.com/p/chromium/issues/detail?id=162042 ++ // http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=162042 + size_t delimiter = permission_str.find(kDelimiter); + if (delimiter != std::string::npos) { + base::StringPiece permission_piece(permission_str); +diff --git a/chrome/browser/extensions/chrome_extension_browser_constants.cc b/chrome/browser/extensions/chrome_extension_browser_constants.cc +--- a/chrome/browser/extensions/chrome_extension_browser_constants.cc ++++ b/chrome/browser/extensions/chrome_extension_browser_constants.cc +@@ -8,6 +8,6 @@ namespace chrome_extension_constants { + + // The link to the help article for runtime host permissions. + const char kRuntimeHostPermissionsHelpURL[] = +- "https://support.google.com/chrome?p=enable_extensions"; ++ "https://support.9oo91e.qjz9zk/chrome?p=enable_extensions"; + + } // namespace chrome_extension_constants +diff --git a/chrome/browser/extensions/chrome_extension_function_details.cc b/chrome/browser/extensions/chrome_extension_function_details.cc +--- a/chrome/browser/extensions/chrome_extension_function_details.cc ++++ b/chrome/browser/extensions/chrome_extension_function_details.cc +@@ -65,7 +65,7 @@ Browser* ChromeExtensionFunctionDetails::GetCurrentBrowser() const { + // all of this profile's browser windows may have been closed. + // A similar situation may arise during shutdown. + // TODO(rafaelw): Delay creation of background_page until the browser +- // is available. http://code.google.com/p/chromium/issues/detail?id=13284 ++ // is available. http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=13284 + return NULL; + } + +diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.h b/chrome/browser/extensions/component_extensions_whitelist/whitelist.h +--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.h ++++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.h +@@ -12,7 +12,7 @@ namespace extensions { + // ============================================================================= + // + // ADDING NEW EXTENSIONS REQUIRES APPROVAL from Extensions Tech Lead: +-// rdevlin.cronin@chromium.org ++// rdevlin.cronin@ch40m1um.qjz9zk + // + // The main acceptable use of extensions in the default Chrome experience (i.e. + // not installed explicitly by the user) are to implement things like the +diff --git a/chrome/browser/extensions/extension_browser_window_helper.cc b/chrome/browser/extensions/extension_browser_window_helper.cc +--- a/chrome/browser/extensions/extension_browser_window_helper.cc ++++ b/chrome/browser/extensions/extension_browser_window_helper.cc +@@ -44,7 +44,7 @@ bool ShouldCloseTabOnExtensionUnload(const ExtensionId& extension_id, + + // Case 2: Check if the page is a page associated with a hosted app, which + // can have non-extension schemes. For example, the Gmail hosted app would +- // have a URL of https://mail.google.com. ++ // have a URL of https://mail.9oo91e.qjz9zk. + if (TabHelper::FromWebContents(web_contents)->GetAppId() == extension_id) { + return true; + } +diff --git a/chrome/browser/extensions/external_pref_loader.cc b/chrome/browser/extensions/external_pref_loader.cc +--- a/chrome/browser/extensions/external_pref_loader.cc ++++ b/chrome/browser/extensions/external_pref_loader.cc +@@ -253,7 +253,7 @@ void ExternalPrefLoader::LoadOnFileThread() { + if (!prefs->empty()) + LOG(WARNING) << "You are using an old-style extension deployment method " + "(external_extensions.json), which will soon be " +- "deprecated. (see http://developer.chrome.com/" ++ "deprecated. (see http://developer.ch40me.qjz9zk/" + "extensions/external_extensions.html)"; + + ReadStandaloneExtensionPrefFiles(prefs.get()); +diff --git a/chrome/browser/extensions/install_signer.cc b/chrome/browser/extensions/install_signer.cc +--- a/chrome/browser/extensions/install_signer.cc ++++ b/chrome/browser/extensions/install_signer.cc +@@ -65,7 +65,7 @@ const int kSignatureFormatVersion = 2; + const size_t kSaltBytes = 32; + + const char kBackendUrl[] = +- "https://www.googleapis.com/chromewebstore/v1.1/items/verify"; ++ "https://www.9oo91eapis.qjz9zk/chromewebstore/v1.1/items/verify"; + + const char kPublicKeyPEM[] = \ + "-----BEGIN PUBLIC KEY-----" \ +diff --git a/chrome/browser/extensions/navigation_observer.cc b/chrome/browser/extensions/navigation_observer.cc +--- a/chrome/browser/extensions/navigation_observer.cc ++++ b/chrome/browser/extensions/navigation_observer.cc +@@ -69,8 +69,8 @@ void NavigationObserver::PromptToEnableExtensionIfNecessary( + + // NOTE: We only consider chrome-extension:// urls, and deliberately don't + // consider hosted app urls. This is because it's really annoying to visit the +- // site associated with a hosted app (like calendar.google.com or +- // drive.google.com) and have it repeatedly prompt you to re-enable an item. ++ // site associated with a hosted app (like calendar.9oo91e.qjz9zk or ++ // drive.9oo91e.qjz9zk) and have it repeatedly prompt you to re-enable an item. + // Visiting a chrome-extension:// url is a much stronger signal, and, without + // the item enabled, we won't show anything. + // TODO(devlin): While true, I still wonder how useful this is. We should get +diff --git a/chrome/browser/extensions/permissions_updater.cc b/chrome/browser/extensions/permissions_updater.cc +--- a/chrome/browser/extensions/permissions_updater.cc ++++ b/chrome/browser/extensions/permissions_updater.cc +@@ -298,10 +298,10 @@ void PermissionsUpdater::GrantRuntimePermissions( + base::OnceClosure completion_callback) { + // We don't want to grant the extension object/process more privilege than it + // requested, even if the user grants additional permission. For instance, if +- // the extension requests https://maps.google.com and the user grants +- // https://*.google.com, we only want to grant the extension itself +- // https://maps.google.com. Since we updated the prefs with the exact +- // granted permissions (*.google.com), if the extension later requests ++ // the extension requests https://maps.9oo91e.qjz9zk and the user grants ++ // https://*.9oo91e.qjz9zk, we only want to grant the extension itself ++ // https://maps.9oo91e.qjz9zk. Since we updated the prefs with the exact ++ // granted permissions (*.9oo91e.qjz9zk), if the extension later requests + // increased permissions that are already covered, they will be auto-granted. + + // Determine which permissions to add to the extension. +@@ -360,8 +360,8 @@ void PermissionsUpdater::RevokeRuntimePermissions( + base::OnceClosure completion_callback) { + // Similar to the process in adding permissions, we might be revoking more + // permissions than the extension currently has explicit access to. For +- // instance, we might be revoking https://*.google.com/* even if the extension +- // only has https://maps.google.com/*. ++ // instance, we might be revoking https://*.9oo91e.qjz9zk/* even if the extension ++ // only has https://maps.9oo91e.qjz9zk/*. + const PermissionSet& active = + extension.permissions_data()->active_permissions(); + // Unlike adding permissions, we should know that any permissions we remove +diff --git a/chrome/browser/extensions/scripting_permissions_modifier.cc b/chrome/browser/extensions/scripting_permissions_modifier.cc +--- a/chrome/browser/extensions/scripting_permissions_modifier.cc ++++ b/chrome/browser/extensions/scripting_permissions_modifier.cc +@@ -41,8 +41,8 @@ bool CanWithholdFromExtension(const Extension& extension) { + // |runtime_granted_permissions|. The returned permission set may contain new + // patterns not found in either |requested_permissions| or + // |runtime_granted_permissions| in the case of overlapping host permissions +-// (such as *://*.google.com/* and https://*/*, which would intersect with +-// https://*.google.com/*). ++// (such as *://*.9oo91e.qjz9zk/* and https://*/*, which would intersect with ++// https://*.9oo91e.qjz9zk/*). + std::unique_ptr PartitionHostPermissions( + const PermissionSet& requested_permissions, + const PermissionSet& runtime_granted_permissions) { +diff --git a/chrome/browser/extensions/scripting_permissions_modifier.h b/chrome/browser/extensions/scripting_permissions_modifier.h +--- a/chrome/browser/extensions/scripting_permissions_modifier.h ++++ b/chrome/browser/extensions/scripting_permissions_modifier.h +@@ -75,8 +75,8 @@ class ScriptingPermissionsModifier { + // on the origin of |url|. This will return true if any permission includes + // access to the origin of |url|, even if the permission includes others + // (such as *://*.com/*) or is restricted to a path (that is, an extension +- // with permission for https://google.com/maps will return true for +- // https://google.com). Note: This checks any runtime-granted permissions, ++ // with permission for https://9oo91e.qjz9zk/maps will return true for ++ // https://9oo91e.qjz9zk). Note: This checks any runtime-granted permissions, + // which includes both granted optional permissions and permissions granted + // through the runtime host permissions feature. + // This may only be called for extensions that can be affected (i.e., for +@@ -85,7 +85,7 @@ class ScriptingPermissionsModifier { + + // Revokes permission to run on the origin of |url|, including any permissions + // that match or overlap with the origin. For instance, removing access to +- // https://google.com will remove access to *://*.com/* as well. ++ // https://9oo91e.qjz9zk will remove access to *://*.com/* as well. + // DCHECKs if |url| has not been granted. + // This may only be called for extensions that can be affected (i.e., for + // which CanAffectExtension() returns true). Anything else will DCHECK. +diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc +--- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc ++++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc +@@ -51,7 +51,7 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory( + manifest_query_params += "&testrequest=1"; + } + downloader->set_manifest_query_params(manifest_query_params); +- downloader->set_ping_enabled_domain("google.com"); ++ downloader->set_ping_enabled_domain("9oo91e.qjz9zk"); + return downloader; + } + +diff --git a/chrome/browser/extensions/updater/chrome_update_client_config.cc b/chrome/browser/extensions/updater/chrome_update_client_config.cc +--- a/chrome/browser/extensions/updater/chrome_update_client_config.cc ++++ b/chrome/browser/extensions/updater/chrome_update_client_config.cc +@@ -178,10 +178,10 @@ ChromeUpdateClientConfig::GetNetworkFetcherFactory() { + content::BrowserContext::GetDefaultStoragePartition(context_) + ->GetURLLoaderFactoryForBrowserProcess(), + // Only extension updates that require authentication are served +- // from chrome.google.com, so send cookies if and only if that is ++ // from chrome.9oo91e.qjz9zk, so send cookies if and only if that is + // the download domain. + base::BindRepeating([](const GURL& url) { +- return url.DomainIs("chrome.google.com"); ++ return url.DomainIs("chrome.9oo91e.qjz9zk"); + })); + } + return network_fetcher_factory_; +diff --git a/chrome/browser/feedback/feedback_uploader_chrome.cc b/chrome/browser/feedback/feedback_uploader_chrome.cc +--- a/chrome/browser/feedback/feedback_uploader_chrome.cc ++++ b/chrome/browser/feedback/feedback_uploader_chrome.cc +@@ -77,7 +77,7 @@ void FeedbackUploaderChrome::StartDispatchingReport() { + + if (identity_manager && identity_manager->HasPrimaryAccount()) { + identity::ScopeSet scopes; +- scopes.insert("https://www.googleapis.com/auth/supportcontent"); ++ scopes.insert("https://www.9oo91eapis.qjz9zk/auth/supportcontent"); + token_fetcher_ = std::make_unique( + "feedback_uploader_chrome", identity_manager, scopes, + base::BindOnce(&FeedbackUploaderChrome::AccessTokenAvailable, +diff --git a/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc b/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc +--- a/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc ++++ b/chrome/browser/feedback/system_logs/log_sources/crash_ids_source.cc +@@ -24,7 +24,7 @@ constexpr size_t kCrashIdStringSize = 16; + // For recent crashes, which is for all reports, look back one hour. + constexpr base::TimeDelta kOneHourTimeDelta = base::TimeDelta::FromHours(1); + +-// For all crashes, which is for only @google.com reports, look back 120 days. ++// For all crashes, which is for only @9oo91e.qjz9zk reports, look back 120 days. + constexpr base::TimeDelta k120DaysTimeDelta = base::TimeDelta::FromDays(120); + + } // namespace +@@ -56,7 +56,7 @@ void CrashIdsSource::OnUploadListAvailable() { + // We generate two lists of crash IDs. One will be the crashes within the last + // hour, which is included in all feedback reports. The other is all of the + // crash IDs from the past 120 days, which is only included in feedback +- // reports sent from @google.com accounts. ++ // reports sent from @9oo91e.qjz9zk accounts. + std::vector crashes; + crash_upload_list_->GetUploads(kMaxCrashesCountToRetrieve, &crashes); + const base::Time now = base::Time::Now(); +diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json +--- a/chrome/browser/flag-metadata.json ++++ b/chrome/browser/flag-metadata.json +@@ -3,7 +3,7 @@ + // of the review process and to clean up flags that have become obsolete or + // unused. For more details, see: + // +-// https://chromium.googlesource.com/chromium/src/+/master/docs/flag_ownership.md ++// https://chromium.9oo91esource.qjz9zk/chromium/src/+/master/docs/flag_ownership.md + // + // This file is a list of json objects; each object contains these keys: + // +@@ -18,7 +18,7 @@ + // - A string beginning with '//', which is treated as a path to a file + // containing a list of owners for this flag (commonly an OWNERS file); + // - Any other string, which is treated as the username part of an +-// @chromium.org email address; ++// @ch40m1um.qjz9zk email address; + // + // expiry_milestone: the milestone after which this flag is obsolete. + // Specifically, after the milestone with the given number branches, this flag +@@ -79,7 +79,7 @@ + }, + { + "name": "allow-sync-xhr-in-page-dismissal", +- "owners": [ "kdillon@chromium.org" ], ++ "owners": [ "kdillon@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -119,7 +119,7 @@ + }, + { + "name": "app-service-intent-handling", +- "owners": [ "chromeos-apps-foundation-team@google.com" ], ++ "owners": [ "chromeos-apps-foundation-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -159,14 +159,14 @@ + }, + { + "name": "arc-native-bridge-toggle", +- "owners": [ "levarum@google.com" ], ++ "owners": [ "levarum@9oo91e.qjz9zk" ], + // Used on ChromeOS to compare and debug different ARC native-bridge + // implementations which are normally used on different platforms. + "expiry_milestone": -1 + }, + { + "name": "arc-print-spooler-experiment", +- "owners": [ "jschettler@google.com", "bmgordon@google.com" ], ++ "owners": [ "jschettler@9oo91e.qjz9zk", "bmgordon@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -181,7 +181,7 @@ + }, + { + "name": "arc-vpn", +- "owners": [ "cros-networking@google.com" ], ++ "owners": [ "cros-networking@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -230,7 +230,7 @@ + }, + { + "name": "autofill-always-return-cloud-tokenized-card", +- "owners": [ "aneeshali@google.com", "annelim@google.com", "jsaul@google.com" ], ++ "owners": [ "aneeshali@9oo91e.qjz9zk", "annelim@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 87 + }, + { +@@ -280,18 +280,18 @@ + }, + { + "name": "autofill-keyboard-accessory-view", +- "owners": [ "fhorschig@chromium.org" ], ++ "owners": [ "fhorschig@ch40m1um.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "autofill-no-local-save-on-unmask-success", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + // Must wait for the Autofill Auth Project to be launched. + "expiry_milestone": 84 + }, + { + "name": "autofill-no-local-save-on-upload-success", +- "owners": [ "jsaul@google.com", "annelim@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk", "annelim@9oo91e.qjz9zk" ], + // Must wait for the Autofill Auth Project to be launched. + "expiry_milestone": 84 + }, +@@ -472,7 +472,7 @@ + }, + { + "name": "compositor-threaded-scrollbar-scrolling", +- "owners": [ "arakeri@microsoft.com" ], ++ "owners": [ "arakeri@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -582,7 +582,7 @@ + }, + { + "name": "darken-websites-checkbox-in-themes-setting", +- "owners": [ "lazzzis@google.com", "twellington" ], ++ "owners": [ "lazzzis@9oo91e.qjz9zk", "twellington" ], + "expiry_milestone": 83 + }, + { +@@ -605,17 +605,17 @@ + }, + { + "name": "decode-jpeg-images-to-yuv", +- "owners": [ "sashamcintosh", "chromeos-gfx@google.com" ], ++ "owners": [ "sashamcintosh", "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { + "name": "decode-webp-images-to-yuv", +- "owners": [ "andrescj", "chromeos-gfx@google.com" ], ++ "owners": [ "andrescj", "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "delegate-overscroll-swipes", +- "owners": [ "chrome-android-app@chromium.org" ], ++ "owners": [ "chrome-android-app@ch40m1um.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -645,39 +645,39 @@ + }, + { + "name": "disable-accelerated-mjpeg-decode", +- "owners": [ "chromeos-camera-eng@google.com" ], ++ "owners": [ "chromeos-camera-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW mjpeg + // decoding for debugging purpose and temporary workaround for some issues. + "expiry_milestone": -1 + }, + { + "name": "disable-accelerated-video-decode", +- "owners": [ "chromeos-video-eng@google.com" ], ++ "owners": [ "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // decoding for debugging purpose and temporary workaround for some issues. + "expiry_milestone": -1 + }, + { + "name": "disable-accelerated-video-encode", +- "owners": [ "chromeos-video-eng@google.com" ], ++ "owners": [ "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // encoding for debugging purpose and temporary workaround for some issues. + "expiry_milestone": -1 + }, + { + "name": "disable-best-effort-tasks", +- "owners": [ "catan-team@chromium.org" ], ++ "owners": [ "catan-team@ch40m1um.qjz9zk" ], + "expiry_milestone": 75 + }, + { "name": "disable-cancel-all-touches", +- "owners": [ "chrome-knowledge-eng@google.com" ], ++ "owners": [ "chrome-knowledge-eng@9oo91e.qjz9zk" ], + // This flag is use to disable CancelAllTouches() function, which enable the + // testing for implementation of canceling single touches. + "expiry_milestone": 86 + }, + { + "name": "disable-explicit-dma-fences", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + // This flag is used for QA & debugging on ChromeOS, which has no way to + // customize switches. + "expiry_milestone": -1 +@@ -690,7 +690,7 @@ + { + // See https://crbug.com/882238. + "name": "disable-ipc-flooding-protection", +- "owners": [ "arthursonzogni@chromium.org", "palmer@chromium.org" ], ++ "owners": [ "arthursonzogni@ch40m1um.qjz9zk", "palmer@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -708,8 +708,8 @@ + { + "name": "disable-office-editing-component-app", + "owners": [ +- "chrome-apps-platform-rationalization@google.com", +- "quickoffice-chrome-eng@google.com" ], ++ "chrome-apps-platform-rationalization@9oo91e.qjz9zk", ++ "quickoffice-chrome-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -720,7 +720,7 @@ + { + // See https://crbug.com/882238. + "name": "disable-pushstate-throttle", +- "owners": [ "arthursonzogni@chromium.org", "palmer@chromium.org" ], ++ "owners": [ "arthursonzogni@ch40m1um.qjz9zk", "palmer@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -737,7 +737,7 @@ + }, + { + "name": "disable-webrtc-hw-decoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // decoding only in webrtc usecase for debugging purpose and temporary + // workaround for some issues. +@@ -745,7 +745,7 @@ + }, + { + "name": "disable-webrtc-hw-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + // This flag does not expire because it allows users to disable HW video + // encoding only in webrtc usecase for debugging purpose and temporary + // workaround for some issues. +@@ -769,7 +769,7 @@ + }, + { + "name": "dns-over-https", +- "owners": [ "dalyk", "doh-core@google.com" ], ++ "owners": [ "dalyk", "doh-core@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -804,7 +804,7 @@ + }, + { + "name": "draw-vertically-edge-to-edge", +- "owners": [ "chrome-android-app@chromium.org" ], ++ "owners": [ "chrome-android-app@ch40m1um.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -815,12 +815,12 @@ + }, + { + "name": "enable-accessibility-expose-aria-annotations", +- "owners": [ "aleventhal@chromium.org", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], ++ "owners": [ "aleventhal@ch40m1um.qjz9zk", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 85 + }, + { + "name": "enable-accessibility-expose-display-none", +- "owners": [ "adettenb@microsoft.com", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], ++ "owners": [ "adettenb@m1cr050ft.qjz9zk", "//third_party/blink/renderer/modules/accessibility/OWNERS", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 82 + }, + { +@@ -840,12 +840,12 @@ + }, + { + "name": "enable-ambient-authentication-in-guest-session", +- "owners": ["rhalavati", "chrome-privacy-core@google.com"], ++ "owners": ["rhalavati", "chrome-privacy-core@9oo91e.qjz9zk"], + "expiry_milestone": 87 + }, + { + "name": "enable-ambient-authentication-in-incognito", +- "owners": ["rhalavati", "chrome-privacy-core@google.com"], ++ "owners": ["rhalavati", "chrome-privacy-core@9oo91e.qjz9zk"], + "expiry_milestone": 87 + }, + { +@@ -955,22 +955,22 @@ + }, + { + "name": "enable-autofill-account-wallet-storage", +- "owners": [ "treib", "jsaul@google.com", "butter-team@google.com" ], ++ "owners": [ "treib", "jsaul@9oo91e.qjz9zk", "butter-team@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "enable-autofill-credit-card-ablation-experiment", +- "owners": [ "dlkumar@google.com" ], ++ "owners": [ "dlkumar@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { + "name": "enable-autofill-credit-card-authentication", +- "owners": [ "jsaul@google.com", "manasverma@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk", "manasverma@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-autofill-credit-card-upload", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + // This flag is heavily used by the testing team that can't easily use the + // commandline, and can't be enabled by default. + // http://g/chrome-flags/s2RTQCvcRRs +@@ -978,52 +978,52 @@ + }, + { + "name": "enable-autofill-credit-card-upload-editable-cardholder-name", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-autofill-credit-card-upload-editable-expiration-date", +- "owners": [ "hozhng@google.com", "jsaul@google.com" ], ++ "owners": [ "hozhng@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-autofill-credit-card-upload-feedback", +- "owners": [ "siyua@chromium.org, payments-autofill-team@google.com" ], ++ "owners": [ "siyua@ch40m1um.qjz9zk, payments-autofill-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-autofill-do-not-migrate-unsupported-local-cards", +- "owners": [ "sujiezhu@google.com", "jsaul@google.com" ], ++ "owners": [ "sujiezhu@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-autofill-local-card-migration-uses-strike-system-v2", +- "owners": [ "annelim@google.com", "jsaul@google.com" , "jiahuiguo@google.com"], ++ "owners": [ "annelim@9oo91e.qjz9zk", "jsaul@9oo91e.qjz9zk" , "jiahuiguo@9oo91e.qjz9zk"], + "expiry_milestone": 84 + }, + { + "name": "enable-autofill-manual-fallback", +- "owners": [ "fhorschig@chromium.org" ], ++ "owners": [ "fhorschig@ch40m1um.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "enable-autofill-refresh-style", +- "owners": [ "tmartino@chromium.org" ], ++ "owners": [ "tmartino@ch40m1um.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "enable-autofill-save-card-show-no-thanks", +- "owners": ["siashah", "jsaul@google.com"], ++ "owners": ["siashah", "jsaul@9oo91e.qjz9zk"], + "expiry_milestone": 82 + }, + { + "name": "enable-autofill-save-credit-card-uses-improved-messaging", +- "owners": [ "siyua@chromium.org", "payments-autofill-team@google.com" ], ++ "owners": [ "siyua@ch40m1um.qjz9zk", "payments-autofill-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-autofill-updated-card-unmask-prompt-ui", +- "owners": ["siyua", "payments-autofill-team@google.com"], ++ "owners": ["siyua", "payments-autofill-team@9oo91e.qjz9zk"], + "expiry_milestone": 87 + }, + { +@@ -1033,7 +1033,7 @@ + }, + { + "name": "enable-backdrop-filter", +- "owners": [ "masonfreed", "paint-dev@chromium.org" ], ++ "owners": [ "masonfreed", "paint-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 78 + }, + { +@@ -1043,7 +1043,7 @@ + }, + { + "name": "enable-bookmark-reorder", +- "owners": ["jhimawan@google.com", "twellington" ], ++ "owners": ["jhimawan@9oo91e.qjz9zk", "twellington" ], + "expiry_milestone": 80 + }, + { +@@ -1083,7 +1083,7 @@ + }, + { + "name": "enable-chromeos-account-manager", +- "owners": [ "sinhak@chromium.org" ], ++ "owners": [ "sinhak@ch40m1um.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -1093,7 +1093,7 @@ + }, + { + "name": "enable-close-tab-suggestions", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -1130,7 +1130,7 @@ + }, + { + "name": "enable-cros-ime-input-logic-fst", +- "owners": [ "essential-inputs-team@google.com" ], ++ "owners": [ "essential-inputs-team@9oo91e.qjz9zk" ], + "expiry_milestone": 77 + }, + { +@@ -1181,12 +1181,12 @@ + }, + { + "name": "enable-desktop-pwas-local-updating", +- "owners": [ "desktop-pwas-team@google.com" ], ++ "owners": [ "desktop-pwas-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-desktop-pwas-omnibox-install", +- "owners": [ "desktop-pwas-team@google.com" ], ++ "owners": [ "desktop-pwas-team@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -1202,7 +1202,7 @@ + }, + { + "name": "enable-duet-tabstrip-integration", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { +@@ -1247,17 +1247,17 @@ + }, + { + "name": "enable-experimental-accessibility-switch-access", +- "owners": [ "anastasi@google.com", "//ui/accessibility/OWNERS" ], ++ "owners": [ "anastasi@9oo91e.qjz9zk", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 85 + }, + { + "name": "enable-experimental-accessibility-switch-access-text", +- "owners": [ "anastasi@google.com", "//ui/accessibility/OWNERS" ], ++ "owners": [ "anastasi@9oo91e.qjz9zk", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 85 + }, + { + "name": "enable-experimental-fling-animation", +- "owners": [ "sarsha@microsoft.com" ], ++ "owners": [ "sarsha@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1267,7 +1267,7 @@ + }, + { + "name": "enable-experimental-productivity-features", +- "owners": [ "feature-control@chromium.org" ], ++ "owners": [ "feature-control@ch40m1um.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -1291,12 +1291,12 @@ + }, + { + "name": "enable-force-dark", +- "owners": [ "gilmanmh@google.com" ], ++ "owners": [ "gilmanmh@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-fs-nosymfollow", +- "owners": [ "mortonm@chromium.org" ], ++ "owners": [ "mortonm@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -1308,12 +1308,12 @@ + }, + { + "name": "enable-generic-sensor-extra-classes", +- "owners": [ "reillyg@chromium.org", "raphael.kubo.da.costa@intel.com" ], ++ "owners": [ "reillyg@ch40m1um.qjz9zk", "raphael.kubo.da.costa@intel.com" ], + "expiry_milestone": 83 + }, + { + "name": "enable-google-branded-context-menu", +- "owners": [ "edwardjung@chromium.org" ], ++ "owners": [ "edwardjung@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -1359,7 +1359,7 @@ + }, + { + "name": "enable-horizontal-tab-switcher", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 77 + }, + { +@@ -1389,7 +1389,7 @@ + }, + { + "name": "enable-intent-picker", +- "owners": [ "chromeos-apps-foundation-team@google.com" ], ++ "owners": [ "chromeos-apps-foundation-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1400,7 +1400,7 @@ + }, + { + "name": "enable-layout-ng", +- "owners": [ "layout-dev@chromium.org" ], ++ "owners": [ "layout-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1459,12 +1459,12 @@ + }, + { + "name": "enable-nacl", +- "owners": [ "dschuff", "native-client-dev@googlegroups.com" ], ++ "owners": [ "dschuff", "native-client-dev@9oo91egroups.qjz9zk" ], + "expiry_milestone": 87 + }, + { + "name": "enable-native-controls", +- "owners": [ "chrome-media-ux@google.com" ], ++ "owners": [ "chrome-media-ux@9oo91e.qjz9zk" ], + "expiry_milestone": 75 + }, + { +@@ -1512,7 +1512,7 @@ + }, + { + "name": "enable-offer-store-unmasked-wallet-cards", +- "owners": [ "jsaul@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk" ], + "expiry_milestone": 86 + }, + { +@@ -1582,7 +1582,7 @@ + }, + { + "name": "enable-query-in-omnibox", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -1592,7 +1592,7 @@ + }, + { + "name": "enable-reader-mode", +- "owners": [ "gilmanmh@google.com" ], ++ "owners": [ "gilmanmh@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { +@@ -1679,7 +1679,7 @@ + }, + { + "name": "enable-service-worker-imported-script-update-check", +- "owners": [ "worker-dev@chromium.org" ], ++ "owners": [ "worker-dev@ch40m1um.qjz9zk" ], + // It's still in development. Tentatively set to M76 as the expiry_milestone. + "expiry_milestone": 76 + }, +@@ -1791,7 +1791,7 @@ + }, + { + "name": "enable-sync-uss-nigori", +- "owners": [ "mmoskvitin@google.com", "//components/sync/OWNERS" ], ++ "owners": [ "mmoskvitin@9oo91e.qjz9zk", "//components/sync/OWNERS" ], + "expiry_milestone": 80 + }, + { +@@ -1806,37 +1806,37 @@ + }, + { + "name": "enable-tab-engagement-reporting", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-grid-layout", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-groups", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-groups-continuation", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-tab-groups-ui-improvements", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-switcher-on-return", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-tab-to-gts-animation", +- "owners": [ "memex-team@google.com" ], ++ "owners": [ "memex-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -1890,12 +1890,12 @@ + }, + { + "name": "enable-vaapi-jpeg-image-decode-acceleration", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "enable-vaapi-webp-image-decode-acceleration", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -1932,62 +1932,62 @@ + }, + { + "name": "enable-web-authentication-ble-support", +- "owners": [ "webauthn-team@google.com" ], ++ "owners": [ "webauthn-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "enable-web-authentication-cable-v2-support", +- "owners": [ "webauthn-team@google.com" ], ++ "owners": [ "webauthn-team@9oo91e.qjz9zk" ], + "expiry_milestone": 84 + }, + { + "name": "enable-web-authentication-testing-api", +- "owners": [ "webauthn-team@google.com" ], ++ "owners": [ "webauthn-team@9oo91e.qjz9zk" ], + // This is required for testing. + "expiry_milestone": -1 + }, + { + "name": "enable-web-payments-experimental-features", +- "owners": [ "danyao", "rouslan", "paymentrequest@google.com" ], ++ "owners": [ "danyao", "rouslan", "paymentrequest@9oo91e.qjz9zk" ], + // This flag is used by early adoption partners to test new Web Payments + // features in each release. + "expiry_milestone": -1 + }, + { + "name": "enable-webassembly-baseline", +- "owners": [ "clemensb", "wasm-team@google.com" ], ++ "owners": [ "clemensb", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-code-cache", +- "owners": [ "bbudge", "hablich", "wasm-team@google.com" ], ++ "owners": [ "bbudge", "hablich", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-code-gc", +- "owners": [ "clemensb", "wasm-team@google.com" ], ++ "owners": [ "clemensb", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-simd", +- "owners": [ "gdeepti", "wasm-team@google.com" ], ++ "owners": [ "gdeepti", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webassembly-threads", +- "owners": [ "binji", "hablich", "wasm-team@google.com" ], ++ "owners": [ "binji", "hablich", "wasm-team@9oo91e.qjz9zk" ], + "expiry_milestone": 83 + }, + { + "name": "enable-webgl-draft-extensions", +- "owners": [ "webgl-team@google.com" ], ++ "owners": [ "webgl-team@9oo91e.qjz9zk" ], + // This flag is the only way for end users to test upcoming WebGL + // extensions on Android. It must not be removed. + "expiry_milestone": -1 + }, + { + "name": "enable-webgl2-compute-context", +- "owners": [ "webgl-team@google.com" ], ++ "owners": [ "webgl-team@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -2002,17 +2002,17 @@ + }, + { + "name": "enable-webrtc-hw-h264-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "enable-webrtc-hw-vp8-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "enable-webrtc-hw-vp9-encoding", +- "owners": [ "hiroh", "chromeos-video-eng@google.com" ], ++ "owners": [ "hiroh", "chromeos-video-eng@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -2027,7 +2027,7 @@ + }, + { + "name": "enable-webrtc-pipewire-capturer", +- "owners": [ "tomas.popela@gmail.com" ], ++ "owners": [ "tomas.popela@9ma1l.qjz9zk" ], + "expiry_milestone": 79 + }, + { +@@ -2047,22 +2047,22 @@ + }, + { + "name": "enable-webvr", +- "owners": [ "//third_party/blink/renderer/modules/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-winrt-geolocation-implementation", +- "owners": [ "pelavall@microsoft.com" ], ++ "owners": [ "pelavall@m1cr050ft.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "enable-winrt-sensor-implementation", +- "owners": [ "wensh@microsoft.com" ], ++ "owners": [ "wensh@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "enable-zero-copy", +- "owners": [ "ccameron", "chrome-gpu@google.com" ], ++ "owners": [ "ccameron", "chrome-gpu@9oo91e.qjz9zk" ], + // This flag is commonly used when asking users to help gather debug info. + "expiry_milestone": -1 + }, +@@ -2125,7 +2125,7 @@ + }, + { + "name": "file-handling-api", +- "owners": ["harrisjay@chromium.org", "raymes@chromium.org"], ++ "owners": ["harrisjay@ch40m1um.qjz9zk", "raymes@ch40m1um.qjz9zk"], + "expiry_milestone": 79 + }, + { +@@ -2156,7 +2156,7 @@ + }, + { + "name": "focus-mode", +- "owners": [ "dfried", "pbos", "yiningwang@google.com" ], ++ "owners": [ "dfried", "pbos", "yiningwang@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2217,12 +2217,12 @@ + }, + { + "name": "forced-colors", +- "owners": [ "weblayout@microsoft.com" ], ++ "owners": [ "weblayout@m1cr050ft.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "form-controls-refresh", +- "owners": [ "iopopesc@microsoft.com", "//third_party/blink/renderer/core/OWNERS" ], ++ "owners": [ "iopopesc@m1cr050ft.qjz9zk", "//third_party/blink/renderer/core/OWNERS" ], + "expiry_milestone": 81 + }, + { +@@ -2247,7 +2247,7 @@ + }, + { + "name": "gesture-properties-dbus-service", +- "owners": [ "hcutts", "chromeos-tango@google.com" ], ++ "owners": [ "hcutts", "chromeos-tango@9oo91e.qjz9zk" ], + // Used by developers for debugging and input device tuning. + "expiry_milestone": -1 + }, +@@ -2263,7 +2263,7 @@ + }, + { + "name": "handwriting-gesture", +- "owners": [ "essential-inputs-team@google.com" ], ++ "owners": [ "essential-inputs-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -2391,7 +2391,7 @@ + }, + { + "name": "mac-syscall-sandbox", +- "owners": [ "kerrnel@google.com" ], ++ "owners": [ "kerrnel@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -2401,7 +2401,7 @@ + }, + { + "name": "mac-v2-gpu-sandbox", +- "owners": [ "kerrnel@google.com" ], ++ "owners": [ "kerrnel@9oo91e.qjz9zk" ], + "expiry_milestone": 88 + }, + { +@@ -2507,7 +2507,7 @@ + }, + { + "name": "new-usb-backend", +- "owners": [ "reillyg@chromium.org" ], ++ "owners": [ "reillyg@ch40m1um.qjz9zk" ], + "expiry_milestone": 83 + }, + { +@@ -2547,7 +2547,7 @@ + }, + { + "name": "oculus-vr", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2567,7 +2567,7 @@ + }, + { + "name": "offline-indicator-v2", +- "owners": [ "sinansahin@google.com", "twellington", "offline-dev" ], ++ "owners": [ "sinansahin@9oo91e.qjz9zk", "twellington", "offline-dev" ], + "expiry_milestone": 85 + }, + { +@@ -2637,37 +2637,37 @@ + }, + { + "name": "omnibox-autocomplete-titles", +- "owners": [ "manukh", "chrome-omnibox-team@google.com" ], ++ "owners": [ "manukh", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 85 + }, + { + "name": "omnibox-disable-instant-extended-limit", +- "owners": [ "pnoland", "chrome-omnibox-team@google.com" ], ++ "owners": [ "pnoland", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-display-title-for-current-url", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-drive-suggestions", +- "owners": [ "manukh", "chrome-omnibox-team@google.com" ], ++ "owners": [ "manukh", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-experimental-keyword-mode", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-group-suggestions-by-search-vs-url", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "omnibox-local-entity-suggestions", +- "owners": [ "manukh", "chrome-omnibox-team@google.com" ], ++ "owners": [ "manukh", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -2682,22 +2682,22 @@ + }, + { + "name": "omnibox-on-device-head-suggestions", +- "owners": [ "cechen", "suggest-2g@google.com" ], ++ "owners": [ "cechen", "suggest-2g@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-on-focus-suggestions", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 85 + }, + { + "name": "omnibox-pedal-suggestions", +- "owners": [ "orinj", "chrome-omnibox-team@google.com" ], ++ "owners": [ "orinj", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-preserve-default-match-against-async-update", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 85 + }, + { +@@ -2707,87 +2707,87 @@ + }, + { + "name": "omnibox-reverse-answers", +- "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ], ++ "owners": [ "jdonnelly", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-rich-entity-suggestions", +- "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ], ++ "owners": [ "jdonnelly", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-search-engine-logo", +- "owners": [ "wylieb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "wylieb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-short-bookmark-suggestions", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "omnibox-spare-renderer", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-suggestion-transparency-options", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-tab-switch-suggestions", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "omnibox-tab-switch-suggestions-dedicated-row", +- "owners": [ "krb", "chrome-omnibox-team@google.com" ], ++ "owners": [ "krb", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "omnibox-ui-cues-for-search-history-matches", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "omnibox-ui-hide-steady-state-url-path-query-and-ref", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-hide-steady-state-url-scheme", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-hide-steady-state-url-trivial-subdomains", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-max-autocomplete-matches", +- "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ], ++ "owners": [ "jdonnelly", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "omnibox-ui-one-click-unelide", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-ui-show-suggestion-favicons", +- "owners": [ "ender", "chrome-omnibox-team@google.com" ], ++ "owners": [ "ender", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 79 + }, + { + "name": "omnibox-ui-swap-title-and-url", +- "owners": [ "tommycli", "chrome-omnibox-team@google.com" ], ++ "owners": [ "tommycli", "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "omnibox-zero-suggestions-on-ntp", +- "owners": [ "chrome-omnibox-team@google.com" ], ++ "owners": [ "chrome-omnibox-team@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -2802,17 +2802,17 @@ + }, + { + "name": "on-the-fly-mhtml-hash-computation", +- "owners": [ "mtlieuu", "offline-dev@chromium.org" ], ++ "owners": [ "mtlieuu", "offline-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 76 + }, + { + "name": "openvr", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "openxr", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2842,7 +2842,7 @@ + }, + { + "name": "overlay-strategies", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + // This flag is used for QA & debugging on ChromeOS, which has no way to + // customize switches. + "expiry_milestone": -1 +@@ -2889,7 +2889,7 @@ + }, + { + "name": "pdf-annotations", +- "owners": [ "dstockwell@google.com" ], ++ "owners": [ "dstockwell@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -2904,7 +2904,7 @@ + }, + { + "name": "percent-based-scrolling", +- "owners": [ "maamert@microsoft.com" ], ++ "owners": [ "maamert@m1cr050ft.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -2930,7 +2930,7 @@ + { + "name": "privacy-settings-redesign", + "owners": ["harrisonsean", "msramek", +- "chrome-privacy-core@google.com"], ++ "chrome-privacy-core@9oo91e.qjz9zk"], + "expiry_milestone": 82 + }, + { +@@ -3019,7 +3019,7 @@ + }, + { + "name": "scrollable-tabstrip", +- "owners": ["chrome-desktop-ui-seattle@google.com", "tbergquist"], ++ "owners": ["chrome-desktop-ui-seattle@9oo91e.qjz9zk", "tbergquist"], + "expiry_milestone": 82 + }, + { +@@ -3167,7 +3167,7 @@ + }, + { + "name": "stop-in-background", +- "owners": [ "chrome-catan@google.com" ], ++ "owners": [ "chrome-catan@9oo91e.qjz9zk" ], + "expiry_milestone": 76 + }, + { +@@ -3177,7 +3177,7 @@ + }, + { + "name": "storage-access-api", +- "owners": [ "brandm@microsoft.com" ], ++ "owners": [ "brandm@m1cr050ft.qjz9zk" ], + "expiry_milestone": 80 + }, + { +@@ -3207,7 +3207,7 @@ + }, + { + "name": "sync-wifi-configurations", +- "owners": ["jonmann", "cros-system-services@google.com"], ++ "owners": ["jonmann", "cros-system-services@9oo91e.qjz9zk"], + "expiry_milestone": 80 + }, + { +@@ -3217,7 +3217,7 @@ + }, + { + "name": "tab-groups", +- "owners": [ "chrome-desktop-ui-seattle@google.com", "bsep" ], ++ "owners": [ "chrome-desktop-ui-seattle@9oo91e.qjz9zk", "bsep" ], + "expiry_milestone": 82 + }, + { +@@ -3237,7 +3237,7 @@ + }, + { + "name": "tab-switcher-longpress-menu", +- "owners": [ "lazzzis@google.com", "twellington" ], ++ "owners": [ "lazzzis@9oo91e.qjz9zk", "twellington" ], + "expiry_milestone": 81 + }, + { +@@ -3257,7 +3257,7 @@ + }, + { + "name": "tint-gl-composited-content", +- "owners": [ "chromeos-gfx@google.com" ], ++ "owners": [ "chromeos-gfx@9oo91e.qjz9zk" ], + // This flag is used for QA & development on ChromeOS, which has no way to + // customize switches. + "expiry_milestone": -1 +@@ -3269,7 +3269,7 @@ + }, + { + "name": "top-chrome-touch-ui", +- "owners": [ "chrome-desktop-ui-sea@google.com" ], ++ "owners": [ "chrome-desktop-ui-sea@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -3299,19 +3299,19 @@ + }, + { + "name": "translate-android-manual-trigger", +- "owners": [ "anthonyvd", "frechette", "chrome-language@google.com" ], ++ "owners": [ "anthonyvd", "frechette", "chrome-language@9oo91e.qjz9zk" ], + // This flag is used to force manual Translate IPH to trigger on Android, + // which has no way to set command-line flags. + "expiry_milestone": -1 + }, + { + "name": "translate-force-trigger-on-english", +- "owners": [ "anthonyvd", "frechette", "chrome-language@google.com" ], ++ "owners": [ "anthonyvd", "frechette", "chrome-language@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { + "name": "translate-ui-bubble-options", +- "owners": [ "hhw", "anthonyvd", "chrome-language@google.com" ], ++ "owners": [ "hhw", "anthonyvd", "chrome-language@9oo91e.qjz9zk" ], + "expiry_milestone": 78 + }, + { +@@ -3336,7 +3336,7 @@ + }, + { + "name": "turn-off-streaming-media-caching", +- "owners": [ "shawnpi@microsoft.com" ], ++ "owners": [ "shawnpi@m1cr050ft.qjz9zk" ], + "expiry_milestone": 82 + }, + { +@@ -3387,12 +3387,12 @@ + }, + { + "name": "usage-stats", +- "owners": [ "pnoland", "chromeshine@google.com" ], ++ "owners": [ "pnoland", "chromeshine@9oo91e.qjz9zk" ], + "expiry_milestone": 80 + }, + { + "name": "use-angle", +- "owners": [ "angle-team@google.com" ], ++ "owners": [ "angle-team@9oo91e.qjz9zk" ], + // This flag is used by certain customers to set ANGLE to use its OpenGL + // backend on Windows. Its usage is small enough that it isn't worth + // promoting this to a chrome://settings entry, but it needs to be readily +@@ -3401,7 +3401,7 @@ + }, + { + "name": "use-fake-device-for-media-stream", +- "owners": [ "mcasas", "chromeos-gfx@google.com" ], ++ "owners": [ "mcasas", "chromeos-gfx@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { +@@ -3464,7 +3464,7 @@ + }, + { + "name": "wallet-service-use-sandbox", +- "owners": [ "jsaul@google.com", "jiahuiguo", "payments-autofill-team@google.com" ], ++ "owners": [ "jsaul@9oo91e.qjz9zk", "jiahuiguo", "payments-autofill-team@9oo91e.qjz9zk" ], + // This flag is used by testing teams to run Google Payments calls against + // the development server environment. + "expiry_milestone": -1 +@@ -3491,52 +3491,52 @@ + }, + { + "name": "webxr", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-anchors", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-ar-dom-overlay", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "webxr-ar-module", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-hit-test", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-orientation-sensor-device", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "webxr-plane-detection", +- "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//third_party/blink/renderer/modules/xr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "win-use-native-spellchecker", +- "owners": [ "gujen@google.com", "yyushkina@google.com" ], ++ "owners": [ "gujen@9oo91e.qjz9zk", "yyushkina@9oo91e.qjz9zk" ], + "expiry_milestone": 81 + }, + { + "name": "windows-mixed-reality", +- "owners": [ "//device/vr/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//device/vr/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { + "name": "xr-sandbox", +- "owners": [ "//chrome/services/isolated_xr_device/OWNERS", "xr-dev@chromium.org" ], ++ "owners": [ "//chrome/services/isolated_xr_device/OWNERS", "xr-dev@ch40m1um.qjz9zk" ], + "expiry_milestone": 82 + }, + { +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -98,9 +98,9 @@ const char kUpdatedCellularActivationUiName[] = + const char kUpdatedCellularActivationUiDescription[] = + "Enables the updated cellular activation UI."; + +-const char kUseMessagesGoogleComDomainName[] = "Use messages.google.com domain"; ++const char kUseMessagesGoogleComDomainName[] = "Use messages.9oo91e.qjz9zk domain"; + const char kUseMessagesGoogleComDomainDescription[] = +- "Use the messages.google.com domain as part of the \"Messages\" " ++ "Use the messages.9oo91e.qjz9zk domain as part of the \"Messages\" " + "feature under \"Connected Devices\" settings."; + + const char kUseMessagesStagingUrlName[] = "Use Messages staging URL"; +diff --git a/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h b/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h +--- a/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h ++++ b/chrome/browser/google/google_search_domain_mixing_metrics_emitter.h +@@ -25,13 +25,13 @@ + // and their computation is delayed at least a couple of seconds after the + // emitter is created to ensure browser startup performance is not affected. + // +-// See http://goto.google.com/chrome-no-searchdomaincheck for more details on ++// See http://goto.9oo91e.qjz9zk/chrome-no-searchdomaincheck for more details on + // what domain mixing metrics are and how they are computed. + class GoogleSearchDomainMixingMetricsEmitter : public KeyedService { + public: + // Preference field holding the last time at which domain mixing metrics for + // Google searches were computed, as a base::Time object. See +- // http://goto.google.com/chrome-no-searchdomaincheck for more details on what ++ // http://goto.9oo91e.qjz9zk/chrome-no-searchdomaincheck for more details on what + // domain mixing metrics are and how they are computed. + static const char kLastMetricsTime[]; + +diff --git a/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h b/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h +--- a/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h ++++ b/chrome/browser/google/google_search_domain_mixing_metrics_emitter_factory.h +@@ -20,7 +20,7 @@ class GoogleSearchDomainMixingMetricsEmitterFactory + public: + // Flag to enable computing domain mixing metrics based on the Google search + // activity of the user. +- // For more details, see http://goto.google.com/chrome-no-searchdomaincheck. ++ // For more details, see http://goto.9oo91e.qjz9zk/chrome-no-searchdomaincheck. + static const base::Feature kFeature; + + // Returns the singleton instance of the factory. +diff --git a/chrome/browser/google/google_update_win.cc b/chrome/browser/google/google_update_win.cc +--- a/chrome/browser/google/google_update_win.cc ++++ b/chrome/browser/google/google_update_win.cc +@@ -269,7 +269,7 @@ class UpdateCheckDriver { + // one of GOOGLE_UPDATE_ERROR_UPDATING, GOOGLE_UPDATE_DISABLED_BY_POLICY, or + // GOOGLE_UPDATE_ONDEMAND_CLASS_REPORTED_ERROR. |hresult| is populated with + // the most relevant HRESULT (which may be a value from Google Update; see +- // https://code.google.com/p/omaha/source/browse/trunk/base/error.h). In case ++ // https://code.9oo91e.qjz9zk/p/omaha/source/browse/trunk/base/error.h). In case + // Chrome's installer failed during execution, |installer_exit_code| may be + // populated with its process exit code (see enum installer::InstallStatus in + // chrome/installer/util/util_constants.h). |error_string| will be populated +diff --git a/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc b/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc +--- a/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc ++++ b/chrome/browser/guest_view/web_view/context_menu_content_type_web_view.cc +@@ -59,7 +59,7 @@ bool ContextMenuContentTypeWebView::SupportsGroup(int group) { + // items on OS_MACOSX if we start supporting inside + // component extensions. + // For a list of places where /GuestViews are supported, see: +- // https://goo.gl/xfJkwp. ++ // https://goo.gl.qjz9zk.qjz9zk/xfJkwp. + if (!embedder_extension && web_view_guest && + web_view_guest->owner_web_contents()->GetWebUI()) { + return false; +diff --git a/chrome/browser/importer/firefox_profile_lock.cc b/chrome/browser/importer/firefox_profile_lock.cc +--- a/chrome/browser/importer/firefox_profile_lock.cc ++++ b/chrome/browser/importer/firefox_profile_lock.cc +@@ -18,14 +18,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -34,7 +34,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +@@ -60,7 +60,7 @@ const base::FilePath::CharType FirefoxProfileLock::kLockFileName[] = + const base::FilePath::CharType FirefoxProfileLock::kOldLockFileName[] = + FILE_PATH_LITERAL("parent.lock"); + #elif defined(OS_POSIX) +-// http://www.google.com/codesearch/p?hl=en#e_ObwTAVPyo/profile/dirserviceprovider/src/nsProfileLock.cpp&l=433 ++// http://www.9oo91e.qjz9zk/codesearch/p?hl=en#e_ObwTAVPyo/profile/dirserviceprovider/src/nsProfileLock.cpp&l=433 + const base::FilePath::CharType FirefoxProfileLock::kLockFileName[] = + FILE_PATH_LITERAL(".parentlock"); + const base::FilePath::CharType FirefoxProfileLock::kOldLockFileName[] = +diff --git a/chrome/browser/importer/firefox_profile_lock.h b/chrome/browser/importer/firefox_profile_lock.h +--- a/chrome/browser/importer/firefox_profile_lock.h ++++ b/chrome/browser/importer/firefox_profile_lock.h +@@ -18,7 +18,7 @@ + // Firefox is designed to allow only one application to access its + // profile at the same time. + // Reference: +-// http://kb.mozillazine.org/Profile_in_use ++// http://kb.m0z111azine.qjz9zk/Profile_in_use + // + // This class is based on Firefox code in: + // profile/dirserviceprovider/src/nsProfileLock.cpp +@@ -30,14 +30,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -46,7 +46,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +diff --git a/chrome/browser/importer/firefox_profile_lock_posix.cc b/chrome/browser/importer/firefox_profile_lock_posix.cc +--- a/chrome/browser/importer/firefox_profile_lock_posix.cc ++++ b/chrome/browser/importer/firefox_profile_lock_posix.cc +@@ -22,14 +22,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -38,7 +38,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +diff --git a/chrome/browser/importer/firefox_profile_lock_win.cc b/chrome/browser/importer/firefox_profile_lock_win.cc +--- a/chrome/browser/importer/firefox_profile_lock_win.cc ++++ b/chrome/browser/importer/firefox_profile_lock_win.cc +@@ -16,14 +16,14 @@ + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at +-* http://www.mozilla.org/MPL/ ++* http://www.m0z111a.qjz9zk/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * +-* The Original Code is mozilla.org code. ++* The Original Code is m0z111a.qjz9zk code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. +@@ -32,7 +32,7 @@ + * + * Contributor(s): + * Conrad Carlen +-* Brendan Eich ++* Brendan Eich + * Colin Blake + * Javier Pedemonte + * Mats Palmgren +diff --git a/chrome/browser/local_discovery/service_discovery_client_mac.mm b/chrome/browser/local_discovery/service_discovery_client_mac.mm +--- a/chrome/browser/local_discovery/service_discovery_client_mac.mm ++++ b/chrome/browser/local_discovery/service_discovery_client_mac.mm +@@ -195,7 +195,7 @@ ServiceWatcherImplMac::NetServiceBrowserContainer:: + // weak delegate during deallocation, so a subsequently-deallocated delegate + // attempts to clear the pointer to itself in an NSNetServiceBrowser that's + // already gone. +- // https://crbug.com/657495, https://openradar.appspot.com/28943305 ++ // https://crbug.com/657495, https://openradar.8pp2p8t.qjz9zk/28943305 + [browser_ setDelegate:nil]; + + // Ensure the delegate clears all references to itself, which it had added as +@@ -316,7 +316,7 @@ ServiceResolverImplMac::NetServiceContainer::~NetServiceContainer() { + // delegate during deallocation, so a subsequently-deallocated delegate + // attempts to clear the pointer to itself in an NSNetService that's already + // gone. +- // https://crbug.com/657495, https://openradar.appspot.com/28943305 ++ // https://crbug.com/657495, https://openradar.8pp2p8t.qjz9zk/28943305 + [service_ setDelegate:nil]; + } + +diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc +--- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc ++++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc +@@ -101,7 +101,7 @@ std::string GetSimilarDomainFromTop500(const DomainInfo& navigated_domain) { + // If the only difference between the navigated and top + // domains is the registry part, this is unlikely to be a spoofing + // attempt. Ignore this match and continue. E.g. If the navigated domain +- // is google.com.tw and the top domain is google.com.tr, this won't ++ // is 9oo91e.qjz9zk.tw and the top domain is 9oo91e.qjz9zk.tr, this won't + // produce a match. + const std::string top_domain_without_registry = + url_formatter::top_domains::HostnameWithoutRegistry(top_domain); +@@ -135,7 +135,7 @@ std::string GetSimilarDomainFromEngagedSites( + // If the only difference between the navigated and engaged + // domain is the registry part, this is unlikely to be a spoofing + // attempt. Ignore this match and continue. E.g. If the navigated +- // domain is google.com.tw and the top domain is google.com.tr, this ++ // domain is 9oo91e.qjz9zk.tw and the top domain is 9oo91e.qjz9zk.tr, this + // won't produce a match. + if (navigated_domain.domain_without_registry != + engaged_site.domain_without_registry) { +@@ -309,7 +309,7 @@ ThrottleCheckResult LookalikeUrlNavigationThrottle::HandleThrottleRequest( + IsInterstitialReload(url, interstitial_params.redirect_chain)) { + CHECK(interstitial_params.url.SchemeIsHTTPOrHTTPS()); + // See +- // https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/plIZV3Rkzok ++ // https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/forum/#!topic/chromium-dev/plIZV3Rkzok + // for why this is OK. Assume interstitial reloads are always browser + // initiated. + navigation_handle()->GetWebContents()->OpenURL(content::OpenURLParams( +@@ -565,17 +565,17 @@ ThrottleCheckResult LookalikeUrlNavigationThrottle::PerformChecks( + // eTLD+1s only so this works well. + // 2. If matched_domain is an engaged domain and is not an eTLD+1, don't + // suggest it. Otherwise, navigating to googlé.com and having engaged with +- // docs.google.com would suggest docs.google.com. ++ // docs.9oo91e.qjz9zk would suggest docs.9oo91e.qjz9zk. + // + // When the navigated and matched domains are not eTLD+1s (e.g. +- // docs.googlé.com and docs.google.com), this will suggest google.com +- // instead of docs.google.com. This is less than ideal, but has two ++ // docs.googlé.com and docs.9oo91e.qjz9zk), this will suggest 9oo91e.qjz9zk ++ // instead of docs.9oo91e.qjz9zk. This is less than ideal, but has two + // benefits: + // - Simpler code + // - Fewer suggestions to non-existent domains. E.g. When the navigated + // domain is nonexistent.googlé.com and the matched domain is +- // docs.google.com, we will suggest google.com instead of +- // nonexistent.google.com. ++ // docs.9oo91e.qjz9zk, we will suggest 9oo91e.qjz9zk instead of ++ // nonexistent.9oo91e.qjz9zk. + const std::string suggested_domain = GetETLDPlusOne(matched_domain); + DCHECK(!suggested_domain.empty()); + // Drop everything but the parts of the origin. +diff --git a/chrome/browser/lookalikes/lookalike_url_service.h b/chrome/browser/lookalikes/lookalike_url_service.h +--- a/chrome/browser/lookalikes/lookalike_url_service.h ++++ b/chrome/browser/lookalikes/lookalike_url_service.h +@@ -36,7 +36,7 @@ struct DomainInfo { + // eTLD+1, used for skeleton and edit distance comparison. Must be ASCII. + // Empty for non-unique domains, localhost or sites whose eTLD+1 is empty. + const std::string domain_and_registry; +- // eTLD+1 without the registry part. For "www.google.com", this will be ++ // eTLD+1 without the registry part. For "www.9oo91e.qjz9zk", this will be + // "google". Used for edit distance comparisons. + // Empty for non-unique domains, localhost or sites whose eTLD+1 is empty. + const std::string domain_without_registry; +diff --git a/chrome/browser/media/android/remote/flinging_controller_bridge.cc b/chrome/browser/media/android/remote/flinging_controller_bridge.cc +--- a/chrome/browser/media/android/remote/flinging_controller_bridge.cc ++++ b/chrome/browser/media/android/remote/flinging_controller_bridge.cc +@@ -12,7 +12,7 @@ + namespace media_router { + + // From Android MediaStatus documentation. +-// https://developers.google.com/android/reference/com/google/android/gms/cast/MediaStatus.html ++// https://developers.9oo91e.qjz9zk/android/reference/com/google/android/gms/cast/MediaStatus.html + const int PLAYER_STATE_UNKOWN = 0; + const int PLAYER_STATE_IDLE = 1; + const int PLAYER_STATE_PLAYING = 2; +diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc +--- a/chrome/browser/media/protected_media_identifier_permission_context.cc ++++ b/chrome/browser/media/protected_media_identifier_permission_context.cc +@@ -166,7 +166,7 @@ void ProtectedMediaIdentifierPermissionContext::UpdateTabContext( + + bool ProtectedMediaIdentifierPermissionContext::IsRestrictedToSecureOrigins() + const { +- // EME is not supported on insecure origins, see https://goo.gl/Ks5zf7 ++ // EME is not supported on insecure origins, see https://goo.gl.qjz9zk.qjz9zk/Ks5zf7 + // Note that origins whitelisted by --unsafely-treat-insecure-origin-as-secure + // flag will be treated as "secure" so they will not be affected. + return true; +diff --git a/chrome/browser/media/router/discovery/discovery_network_list_win.cc b/chrome/browser/media/router/discovery/discovery_network_list_win.cc +--- a/chrome/browser/media/router/discovery/discovery_network_list_win.cc ++++ b/chrome/browser/media/router/discovery/discovery_network_list_win.cc +@@ -239,7 +239,7 @@ std::vector GetDiscoveryNetworkInfoList() { + constexpr int kMaxGetAdaptersAddressTries = 10; + + // Use an initial buffer size of 15KB, as recommended by MSDN. See: +- // https://msdn.microsoft.com/en-us/library/windows/desktop/aa365915(v=vs.85).aspx ++ // https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/aa365915(v=vs.85).aspx + constexpr int kInitialAddressBufferSize = 15000; + + constexpr ULONG kAddressFlags = +diff --git a/chrome/browser/media/router/media_sinks_observer.h b/chrome/browser/media/router/media_sinks_observer.h +--- a/chrome/browser/media/router/media_sinks_observer.h ++++ b/chrome/browser/media/router/media_sinks_observer.h +@@ -21,7 +21,7 @@ class MediaRouter; + // A MediaSinksObserver implementation can be registered to MediaRouter to + // receive results. It can then interpret / process the results accordingly. + // More documentation can be found at +-// docs.google.com/document/d/1RDXdzi2y7lRuL08HAe-qlSJG2DMz2iH3gBzMs0IRR78 ++// docs.9oo91e.qjz9zk/document/d/1RDXdzi2y7lRuL08HAe-qlSJG2DMz2iH3gBzMs0IRR78 + class MediaSinksObserver { + public: + // Constructs an observer from |origin| that will observe for sinks compatible +diff --git a/chrome/browser/media/router/presentation/local_presentation_manager.h b/chrome/browser/media/router/presentation/local_presentation_manager.h +--- a/chrome/browser/media/router/presentation/local_presentation_manager.h ++++ b/chrome/browser/media/router/presentation/local_presentation_manager.h +@@ -28,7 +28,7 @@ namespace media_router { + // Presentation API 1-UA mode, or a presentation to a wired display. + // + // Design doc: +-// https://docs.google.com/document/d/1XM3jhMJTQyhEC5PDAAJFNIaKh6UUEihqZDz_ztEe4Co/edit#heading=h.hadpx5oi0gml ++// https://docs.9oo91e.qjz9zk/document/d/1XM3jhMJTQyhEC5PDAAJFNIaKh6UUEihqZDz_ztEe4Co/edit#heading=h.hadpx5oi0gml + // + // Example usage: + // +diff --git a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc +--- a/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc ++++ b/chrome/browser/media/router/providers/cast/cast_media_route_provider.cc +@@ -31,7 +31,7 @@ std::vector GetOrigins(const MediaSource::Id& source_id) { + return base::StartsWith(source_id, kMirroringAppPrefix, + base::CompareCase::SENSITIVE) + ? std::vector( +- {url::Origin::Create(GURL("https://docs.google.com"))}) ++ {url::Origin::Create(GURL("https://docs.9oo91e.qjz9zk"))}) + : std::vector(); + } + +diff --git a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc +--- a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc ++++ b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc +@@ -561,12 +561,12 @@ std::vector DialMediaRouteProvider::GetOrigins( + base::flat_map>> + origin_white_list( + {{"YouTube", +- {CreateOrigin("https://tv.youtube.com"), +- CreateOrigin("https://tv-green-qa.youtube.com"), +- CreateOrigin("https://tv-release-qa.youtube.com"), +- CreateOrigin("https://web-green-qa.youtube.com"), +- CreateOrigin("https://web-release-qa.youtube.com"), +- CreateOrigin("https://www.youtube.com")}}, ++ {CreateOrigin("https://tv.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://tv-green-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://tv-release-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://web-green-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://web-release-qa.y0u1ub3.qjz9zk"), ++ CreateOrigin("https://www.y0u1ub3.qjz9zk")}}, + {"Netflix", {CreateOrigin("https://www.netflix.com")}}, + {"Pandora", {CreateOrigin("https://www.pandora.com")}}, + {"Radio", {CreateOrigin("https://www.pandora.com")}}, +diff --git a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +--- a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc ++++ b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +@@ -122,7 +122,7 @@ void OnURLLoadUploadProgress(uint64_t current, uint64_t total) { + } // namespace + + const char WebRtcEventLogUploaderImpl::kUploadURL[] = +- "https://clients2.google.com/cr/report"; ++ "https://clients2.9oo91e.qjz9zk/cr/report"; + + std::unique_ptr + WebRtcEventLogUploaderImpl::Factory::Create(const WebRtcLogFileInfo& log_file, +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 ++++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc +@@ -461,7 +461,7 @@ void WebRtcLogUploader::UploadCompressedLog( + "Not implemented, it would be good to do so." + })"); + +- constexpr char kUploadURL[] = "https://clients2.google.com/cr/report"; ++ constexpr char kUploadURL[] = "https://clients2.9oo91e.qjz9zk/cr/report"; + auto resource_request = std::make_unique(); + resource_request->url = !upload_url_for_testing_.is_empty() + ? upload_url_for_testing_ +diff --git a/chrome/browser/media_galleries/fileapi/media_path_filter.cc b/chrome/browser/media_galleries/fileapi/media_path_filter.cc +--- a/chrome/browser/media_galleries/fileapi/media_path_filter.cc ++++ b/chrome/browser/media_galleries/fileapi/media_path_filter.cc +@@ -121,7 +121,7 @@ bool MediaPathFilter::ShouldSkip(const base::FilePath& path) { + // to get the hidden attribute of windows recycle bin folders that are present + // on the attached device. Therefore, compare the file path name to the + // recycle bin name and exclude those folders. For more details, please refer +- // to http://support.microsoft.com/kb/171694. ++ // to http://support.m1cr050ft.qjz9zk/kb/171694. + const char win_98_recycle_bin_name[] = "RECYCLED"; + const char win_xp_recycle_bin_name[] = "RECYCLER"; + const char win_vista_recycle_bin_name[] = "$Recycle.bin"; +diff --git a/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc b/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc +--- a/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc ++++ b/chrome/browser/memory/swap_thrashing_monitor_delegate_win.cc +@@ -40,7 +40,7 @@ const size_t kSampleCountToBecomeConfirmedState = 10; + + // The struct used to return system process information via the NT internal + // QuerySystemInformation call. This is partially documented at +-// http://goo.gl/Ja9MrH and fully documented at http://goo.gl/QJ70rn ++// http://goo.gl.qjz9zk.qjz9zk/Ja9MrH and fully documented at http://goo.gl.qjz9zk.qjz9zk/QJ70rn + // This structure is laid out in the same format on both 32-bit and 64-bit + // systems, but has a different size due to the various pointer-sized fields. + struct SYSTEM_PROCESS_INFORMATION_EX { +diff --git a/chrome/browser/metrics/thread_watcher_android.h b/chrome/browser/metrics/thread_watcher_android.h +--- a/chrome/browser/metrics/thread_watcher_android.h ++++ b/chrome/browser/metrics/thread_watcher_android.h +@@ -7,7 +7,7 @@ + // deactive the thread watcher. Conversely, when onRestart() is called, + // it will reactivate. + // See more details in: +-// http://developer.android.com/training/basics/activity-lifecycle/stopping.html ++// http://developer.8n6r01d.qjz9zk/training/basics/activity-lifecycle/stopping.html + + #ifndef CHROME_BROWSER_METRICS_THREAD_WATCHER_ANDROID_H_ + #define CHROME_BROWSER_METRICS_THREAD_WATCHER_ANDROID_H_ +diff --git a/chrome/browser/nacl_host/nacl_infobar_delegate.cc b/chrome/browser/nacl_host/nacl_infobar_delegate.cc +--- a/chrome/browser/nacl_host/nacl_infobar_delegate.cc ++++ b/chrome/browser/nacl_host/nacl_infobar_delegate.cc +@@ -42,5 +42,5 @@ base::string16 NaClInfoBarDelegate::GetLinkText() const { + } + + GURL NaClInfoBarDelegate::GetLinkURL() const { +- return GURL("https://support.google.com/chrome/?p=ib_nacl"); ++ return GURL("https://support.9oo91e.qjz9zk/chrome/?p=ib_nacl"); + } +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 +@@ -16,7 +16,7 @@ + + namespace chrome_browser_net { + +-const char DnsProbeRunner::kKnownGoodHostname[] = "google.com"; ++const char DnsProbeRunner::kKnownGoodHostname[] = "9oo91e.qjz9zk"; + + namespace { + +diff --git a/chrome/browser/net/dns_probe_runner.h b/chrome/browser/net/dns_probe_runner.h +--- a/chrome/browser/net/dns_probe_runner.h ++++ b/chrome/browser/net/dns_probe_runner.h +@@ -25,7 +25,7 @@ class NetworkContext; + namespace chrome_browser_net { + + // Runs DNS probes using a HostResolver and evaluates the responses. +-// (Currently requests A records for google.com and expects at least one IP ++// (Currently requests A records for 9oo91e.qjz9zk and expects at least one IP + // address in the response.) + // Used by DnsProbeService to probe the system and public DNS configurations. + class DnsProbeRunner : public network::ResolveHostClientBase { +diff --git a/chrome/browser/net/service_providers_win.cc b/chrome/browser/net/service_providers_win.cc +--- a/chrome/browser/net/service_providers_win.cc ++++ b/chrome/browser/net/service_providers_win.cc +@@ -90,7 +90,7 @@ void GetWinsockLayeredServiceProviders( + service_provider.chain_length = service_providers[i].ProtocolChain.ChainLen; + + // TODO(mmenke): Add categories under Vista and later. +- // http://msdn.microsoft.com/en-us/library/ms742239%28v=VS.85%29.aspx ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/ms742239%28v=VS.85%29.aspx + + wchar_t path[MAX_PATH]; + int path_length = base::size(path); +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 +@@ -89,7 +89,7 @@ bool TrialComparisonCertVerifierController::IsAllowed() const { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + // Only allow on non-incognito profiles which have SBER opt-in set. + // See design doc for more details: +- // https://docs.google.com/document/d/1AM1CD42bC6LHWjKg-Hkid_RLr2DH6OMzstH9-pGSi-g ++ // https://docs.9oo91e.qjz9zk/document/d/1AM1CD42bC6LHWjKg-Hkid_RLr2DH6OMzstH9-pGSi-g + + if (!MaybeAllowedForProfile(profile_)) + return false; +diff --git a/chrome/browser/notifications/notification_permission_context.h b/chrome/browser/notifications/notification_permission_context.h +--- a/chrome/browser/notifications/notification_permission_context.h ++++ b/chrome/browser/notifications/notification_permission_context.h +@@ -20,7 +20,7 @@ class Profile; + // + // https://notifications.spec.whatwg.org/ + // https://w3c.github.io/push-api/ +-// https://developer.chrome.com/apps/notifications ++// https://developer.ch40me.qjz9zk/apps/notifications + // + // ----------------------------------------------------------------------------- + // Websites +@@ -53,7 +53,7 @@ class Profile; + // The NotificationChannelsProviderAndroid implements this behaviour, and + // is added as a content setting provider to the HostContentSettingsMap. + // +-// https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels ++// https://developer.8n6r01d.qjz9zk/guide/topics/ui/notifiers/notifications#ManageChannels + // + // INCOGNITO + // +diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/chrome/browser/notifications/notification_platform_bridge_mac.mm +--- a/chrome/browser/notifications/notification_platform_bridge_mac.mm ++++ b/chrome/browser/notifications/notification_platform_bridge_mac.mm +@@ -489,7 +489,7 @@ bool NotificationPlatformBridgeMac::VerifyNotificationData( + // Overriden from _NSUserNotificationCenterDelegatePrivate. + // Emitted when a user closes a notification from the notification center. + // This is an undocumented method introduced in 10.8 according to +-// https://bugzilla.mozilla.org/show_bug.cgi?id=852648#c21 ++// https://bugzilla.m0z111a.qjz9zk/show_bug.cgi?id=852648#c21 + - (void)userNotificationCenter:(NSUserNotificationCenter*)center + didRemoveDeliveredNotifications:(NSArray*)notifications { + for (NSUserNotification* notification in notifications) { +diff --git a/chrome/browser/notifications/win/notification_template_builder.cc b/chrome/browser/notifications/win/notification_template_builder.cc +--- a/chrome/browser/notifications/win/notification_template_builder.cc ++++ b/chrome/browser/notifications/win/notification_template_builder.cc +@@ -349,7 +349,7 @@ const char kNotificationLaunchAttribute[] = "launch"; + // libXml was preferred (over WinXml, which the samples in the link below tend + // to use) for building the XML template because it is used frequently in + // Chrome, is nicer to use and has already been vetted. +-// https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-adaptive-interactive-toasts ++// https://docs.m1cr050ft.qjz9zk/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-adaptive-interactive-toasts + base::string16 BuildNotificationTemplate( + NotificationImageRetainer* image_retainer, + const NotificationLaunchId& launch_id, +diff --git a/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h +--- a/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h ++++ b/chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h +@@ -23,7 +23,7 @@ class NavigationHandle; + // For AMP documents loaded in a subframe, recording works like so: + // + // * whenever the main frame URL gets updated with an AMP viewer +-// URL (e.g. https://www.google.com/amp/...), we track that in ++// URL (e.g. https://www.9oo91e.qjz9zk/amp/...), we track that in + // OnCommitSameDocumentNavigation. we use the time of the main + // frame URL update as the baseline time from which the + // user-perceived performance metrics like FCP are computed. +diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc +--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc ++++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc +@@ -505,7 +505,7 @@ bool FromGWSPageLoadMetricsLogger::ShouldLogPostCommitMetrics(const GURL& url) { + // redirector url), so we should not log stats. We could try to detect only + // the specific known search URLs here, and log navigations to other pages on + // the google search hostname (for example, a search for 'about google' +- // includes a result for https://www.google.com/about/), however, we assume ++ // includes a result for https://www.9oo91e.qjz9zk/about/), however, we assume + // these cases are relatively uncommon, and we run the risk of logging metrics + // for some search redirector URLs. Thus we choose the more conservative + // approach of ignoring all urls on known search hostnames. +diff --git a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc +--- a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc ++++ b/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc +@@ -133,11 +133,11 @@ const char kHistogramNoServiceWorkerFirstContentfulPaintDocs[] = + namespace { + + bool IsInboxSite(const GURL& url) { +- return url.host_piece() == "inbox.google.com"; ++ return url.host_piece() == "inbox.9oo91e.qjz9zk"; + } + + bool IsDocsSite(const GURL& url) { +- return url.host_piece() == "docs.google.com"; ++ return url.host_piece() == "docs.9oo91e.qjz9zk"; + } + + bool IsForwardBackLoad(ui::PageTransition transition) { +diff --git a/chrome/browser/password_manager/password_manager_util_win.cc b/chrome/browser/password_manager/password_manager_util_win.cc +--- a/chrome/browser/password_manager/password_manager_util_win.cc ++++ b/chrome/browser/password_manager/password_manager_util_win.cc +@@ -275,7 +275,7 @@ bool CheckBlankPasswordWithPrefs(const WCHAR* username, + // In the case the password is blank, then LogonUser returns a failure, + // handle is INVALID_HANDLE_VALUE, and GetLastError() is + // ERROR_ACCOUNT_RESTRICTION. +- // http://msdn.microsoft.com/en-us/library/windows/desktop/ms681385 ++ // http://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/ms681385 + blank_password = (logon_result || + last_error == ERROR_ACCOUNT_RESTRICTION); + } +diff --git a/chrome/browser/pepper_broker_infobar_delegate.cc b/chrome/browser/pepper_broker_infobar_delegate.cc +--- a/chrome/browser/pepper_broker_infobar_delegate.cc ++++ b/chrome/browser/pepper_broker_infobar_delegate.cc +@@ -88,7 +88,7 @@ base::string16 PepperBrokerInfoBarDelegate::GetLinkText() const { + } + + GURL PepperBrokerInfoBarDelegate::GetLinkURL() const { +- return GURL("https://support.google.com/chrome/?p=ib_pepper_broker"); ++ return GURL("https://support.9oo91e.qjz9zk/chrome/?p=ib_pepper_broker"); + } + + void PepperBrokerInfoBarDelegate::DispatchCallback(bool result) { +diff --git a/chrome/browser/permissions/mock_permission_request.cc b/chrome/browser/permissions/mock_permission_request.cc +--- a/chrome/browser/permissions/mock_permission_request.cc ++++ b/chrome/browser/permissions/mock_permission_request.cc +@@ -17,7 +17,7 @@ MockPermissionRequest::MockPermissionRequest() + : MockPermissionRequest("test", + "button", + "button", +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + PermissionRequestType::PERMISSION_NOTIFICATIONS, + PermissionRequestGestureType::UNKNOWN) {} + +@@ -25,7 +25,7 @@ MockPermissionRequest::MockPermissionRequest(const std::string& text) + : MockPermissionRequest(text, + "button", + "button", +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + PermissionRequestType::PERMISSION_NOTIFICATIONS, + PermissionRequestGestureType::UNKNOWN) {} + +@@ -36,7 +36,7 @@ MockPermissionRequest::MockPermissionRequest( + : MockPermissionRequest(text, + "button", + "button", +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + request_type, + gesture_type) {} + +@@ -56,7 +56,7 @@ MockPermissionRequest::MockPermissionRequest(const std::string& text, + : MockPermissionRequest(text, + accept_label, + deny_label, +- GURL("http://www.google.com"), ++ GURL("http://www.9oo91e.qjz9zk"), + PermissionRequestType::PERMISSION_NOTIFICATIONS, + PermissionRequestGestureType::UNKNOWN) {} + +diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc +--- a/chrome/browser/permissions/permission_context_base.cc ++++ b/chrome/browser/permissions/permission_context_base.cc +@@ -50,33 +50,33 @@ const char kPermissionBlockedKillSwitchMessage[] = + const char kPermissionBlockedRepeatedDismissalsMessage[] = + "%s permission has been blocked as the user has dismissed the permission " + "prompt several times. This can be reset in Site Settings. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + + const char kPermissionBlockedRepeatedIgnoresMessage[] = + "%s permission has been blocked as the user has ignored the permission " + "prompt several times. This can be reset in Site Settings. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + #else + const char kPermissionBlockedRepeatedDismissalsMessage[] = + "%s permission has been blocked as the user has dismissed the permission " + "prompt several times. This can be reset in Page Info which can be " + "accessed by clicking the lock icon next to the URL. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + + const char kPermissionBlockedRepeatedIgnoresMessage[] = + "%s permission has been blocked as the user has ignored the permission " + "prompt several times. This can be reset in Page Info which can be " + "accessed by clicking the lock icon next to the URL. See " +- "https://www.chromestatus.com/features/6443143280984064 for more " ++ "https://www.ch40mestatus.qjz9zk/features/6443143280984064 for more " + "information."; + #endif + + const char kPermissionBlockedFeaturePolicyMessage[] = + "%s permission has been blocked because of a Feature Policy applied to the " +- "current document. See https://goo.gl/EuHzyv for more details."; ++ "current document. See https://goo.gl.qjz9zk.qjz9zk/EuHzyv for more details."; + + void LogPermissionBlockedMessage(content::WebContents* web_contents, + const char* message, +diff --git a/chrome/browser/permissions/permission_uma_util.h b/chrome/browser/permissions/permission_uma_util.h +--- a/chrome/browser/permissions/permission_uma_util.h ++++ b/chrome/browser/permissions/permission_uma_util.h +@@ -28,7 +28,7 @@ enum class PermissionSourceUI { + PROMPT = 0, + + // Origin info bubble. +- // https://www.chromium.org/Home/chromium-security/enamel/goals-for-the-origin-info-bubble ++ // https://www.ch40m1um.qjz9zk/Home/chromium-security/enamel/goals-for-the-origin-info-bubble + OIB = 1, + + // chrome://settings/content/siteDetails?site=[SITE] +diff --git a/chrome/browser/platform_util_chromeos.cc b/chrome/browser/platform_util_chromeos.cc +--- a/chrome/browser/platform_util_chromeos.cc ++++ b/chrome/browser/platform_util_chromeos.cc +@@ -30,7 +30,7 @@ namespace platform_util { + namespace { + + const char kGmailComposeUrl[] = +- "https://mail.google.com/mail/?extsrc=mailto&url="; ++ "https://mail.9oo91e.qjz9zk/mail/?extsrc=mailto&url="; + + void ShowWarningOnOpenOperationResult(Profile* profile, + const base::FilePath& path, +diff --git a/chrome/browser/platform_util_win.cc b/chrome/browser/platform_util_win.cc +--- a/chrome/browser/platform_util_win.cc ++++ b/chrome/browser/platform_util_win.cc +@@ -93,7 +93,7 @@ void OpenExternalOnWorkerThread(const GURL& url) { + + // According to Mozilla in uriloader/exthandler/win/nsOSHelperAppService.cpp: + // "Some versions of windows (Win2k before SP3, Win XP before SP1) crash in +- // ShellExecute on long URLs (bug 161357 on bugzilla.mozilla.org). IE 5 and 6 ++ // ShellExecute on long URLs (bug 161357 on bugzilla.m0z111a.qjz9zk). IE 5 and 6 + // support URLS of 2083 chars in length, 2K is safe." + // + // It may be possible to increase this. https://crbug.com/727909 +diff --git a/chrome/browser/prefs/pref_metrics_service.cc b/chrome/browser/prefs/pref_metrics_service.cc +--- a/chrome/browser/prefs/pref_metrics_service.cc ++++ b/chrome/browser/prefs/pref_metrics_service.cc +@@ -68,7 +68,7 @@ void PrefMetricsService::RecordHomePageLaunchMetrics(bool show_home_button, + // use, due to both false negatives (pages that come from unknown TLD+1 X but + // consist of a search box that sends to known TLD+1 Y) and false positives + // (pages that share a TLD+1 with a known engine but aren't actually search +- // pages, e.g. plus.google.com). Additionally, record the TLD+1 of non-NTP ++ // pages, e.g. plus.9oo91e.qjz9zk). Additionally, record the TLD+1 of non-NTP + // homepages through the privacy-preserving Rappor service. + if (!homepage_is_ntp) { + if (homepage_url.is_valid()) { +diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc +--- a/chrome/browser/process_singleton_posix.cc ++++ b/chrome/browser/process_singleton_posix.cc +@@ -1102,7 +1102,7 @@ bool ProcessSingleton::KillProcessByLockPath(bool is_connected_to_socket) { + } + + void ProcessSingleton::KillProcess(int pid) { +- // TODO(james.su@gmail.com): Is SIGKILL ok? ++ // TODO(james.su@9ma1l.qjz9zk): Is SIGKILL ok? + int rv = kill(static_cast(pid), SIGKILL); + // ESRCH = No Such Process (can happen if the other process is already in + // progress of shutting down and finishes before we try to kill it). +diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc +--- a/chrome/browser/process_singleton_win.cc ++++ b/chrome/browser/process_singleton_win.cc +@@ -230,7 +230,7 @@ void TerminateProcessWithHistograms(const base::Process& process, + // Microsoft's Softricity virtualization breaks the sandbox processes. + // So, if we detect the Softricity DLL we use WMI Win32_Process.Create to + // break out of the virtualization environment. +-// http://code.google.com/p/chromium/issues/detail?id=43650 ++// http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=43650 + bool ProcessSingleton::EscapeVirtualization( + const base::FilePath& user_data_dir) { + if (::GetModuleHandle(L"sftldr_wow64.dll") || +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 ++++ b/chrome/browser/profile_resetter/reset_report_uploader.cc +@@ -20,7 +20,7 @@ + + namespace { + const char kResetReportUrl[] = +- "about:blank"; //https://sb-ssl.google.com/safebrowsing/clientreport/chrome-reset"; ++ "about:blank"; //https://sb-ssl.9oo91e.qjz9zk/safebrowsing/clientreport/chrome-reset"; + + GURL GetClientReportUrl(const std::string& report_url) { + GURL url(report_url); +diff --git a/chrome/browser/profiles/profile.h b/chrome/browser/profiles/profile.h +--- a/chrome/browser/profiles/profile.h ++++ b/chrome/browser/profiles/profile.h +@@ -69,7 +69,7 @@ class ProfileObserver; + + // Instead of adding more members to Profile, consider creating a + // KeyedService. See +-// http://dev.chromium.org/developers/design-documents/profile-architecture ++// http://dev.ch40m1um.qjz9zk/developers/design-documents/profile-architecture + class Profile : public content::BrowserContext { + public: + enum CreateStatus { +diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc +--- a/chrome/browser/profiles/profile_impl.cc ++++ b/chrome/browser/profiles/profile_impl.cc +@@ -1480,7 +1480,7 @@ GURL ProfileImpl::GetHomePage() { + *base::CommandLine::ForCurrentProcess(); + if (command_line.HasSwitch(switches::kHomePage)) { + // TODO(evanm): clean up usage of DIR_CURRENT. +- // http://code.google.com/p/chromium/issues/detail?id=60630 ++ // http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=60630 + // For now, allow this code to call getcwd(). + base::ThreadRestrictions::ScopedAllowIO allow_io; + +diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h +--- a/chrome/browser/profiles/profile_impl.h ++++ b/chrome/browser/profiles/profile_impl.h +@@ -328,7 +328,7 @@ class ProfileImpl : public Profile { + // Profile use our new BrowserContextKeyedServiceFactory system instead. + // You can find the design document here: + // +- // https://sites.google.com/a/chromium.org/dev/developers/design-documents/profile-architecture ++ // https://sites.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/dev/developers/design-documents/profile-architecture + // + // and you can read the raw headers here: + // +diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h +--- a/chrome/browser/profiles/profile_manager.h ++++ b/chrome/browser/profiles/profile_manager.h +@@ -459,7 +459,7 @@ class ProfileManager : public content::NotificationObserver, + // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for + // consistency with surrounding code in the same file but that wasn't trivial + // enough to do as part of the mass refactor CL which introduced +- // |thread_checker_|, ref. https://codereview.chromium.org/2907253003/#msg37. ++ // |thread_checker_|, ref. https://codereview.ch40m1um.qjz9zk/2907253003/#msg37. + THREAD_CHECKER(thread_checker_); + + DISALLOW_COPY_AND_ASSIGN(ProfileManager); +diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc +--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc ++++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc +@@ -61,7 +61,7 @@ namespace { + const char kProfileIconFileName[] = "Google Profile.ico"; + + // Characters that are not allowed in Windows filenames. Taken from +-// http://msdn.microsoft.com/en-us/library/aa365247.aspx ++// http://msdn.m1cr050ft.qjz9zk/en-us/library/aa365247.aspx + const base::char16 kReservedCharacters[] = + L"<>:\"/\\|?*\x01\x02\x03\x04\x05" + L"\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17" +diff --git a/chrome/browser/profiles/profile_window.cc b/chrome/browser/profiles/profile_window.cc +--- a/chrome/browser/profiles/profile_window.cc ++++ b/chrome/browser/profiles/profile_window.cc +@@ -380,8 +380,8 @@ bool IsLockAvailable(Profile* profile) { + } + + // TODO(mlerman): Prohibit only users who authenticate using SAML. Until then, +- // prohibited users who use hosted domains (aside from google.com). +- if (hosted_domain != kNoHostedDomainFound && hosted_domain != "google.com") { ++ // prohibited users who use hosted domains (aside from 9oo91e.qjz9zk). ++ if (hosted_domain != kNoHostedDomainFound && hosted_domain != "9oo91e.qjz9zk") { + return false; + } + +diff --git a/chrome/browser/push_messaging/push_messaging_constants.cc b/chrome/browser/push_messaging/push_messaging_constants.cc +--- a/chrome/browser/push_messaging/push_messaging_constants.cc ++++ b/chrome/browser/push_messaging/push_messaging_constants.cc +@@ -5,7 +5,7 @@ + #include "chrome/browser/push_messaging/push_messaging_constants.h" + + const char kPushMessagingGcmEndpoint[] = +- "https://fcm.googleapis.com/fcm/send/"; ++ "https://fcm.9oo91eapis.qjz9zk/fcm/send/"; + + const char kPushMessagingForcedNotificationTag[] = + "user_visible_auto_notification"; +diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.h b/chrome/browser/push_messaging/push_messaging_notification_manager.h +--- a/chrome/browser/push_messaging/push_messaging_notification_manager.h ++++ b/chrome/browser/push_messaging/push_messaging_notification_manager.h +@@ -37,7 +37,7 @@ class WebContents; + // default notification when it is. + // + // See the following document and bug for more context: +-// https://docs.google.com/document/d/13VxFdLJbMwxHrvnpDm8RXnU41W2ZlcP0mdWWe9zXQT8/edit ++// https://docs.9oo91e.qjz9zk/document/d/13VxFdLJbMwxHrvnpDm8RXnU41W2ZlcP0mdWWe9zXQT8/edit + // https://crbug.com/437277 + class PushMessagingNotificationManager { + public: +diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc +--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc ++++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc +@@ -86,7 +86,7 @@ const char kSilentPushUnsupportedMessage[] = + "Chrome currently only supports the Push API for subscriptions that will " + "result in user-visible messages. You can indicate this by calling " + "pushManager.subscribe({userVisibleOnly: true}) instead. See " +- "https://goo.gl/yqv4Q4 for more details."; ++ "https://goo.gl.qjz9zk.qjz9zk/yqv4Q4 for more details."; + + void RecordDeliveryStatus(blink::mojom::PushDeliveryStatus status) { + UMA_HISTOGRAM_ENUMERATION("PushMessaging.DeliveryStatus", status); +diff --git a/chrome/browser/resources/PRESUBMIT.py b/chrome/browser/resources/PRESUBMIT.py +--- a/chrome/browser/resources/PRESUBMIT.py ++++ b/chrome/browser/resources/PRESUBMIT.py +@@ -4,7 +4,7 @@ + + """Presubmit script for files in chrome/browser/resources. + +-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ++See http://dev.ch40m1um.qjz9zk/developers/how-tos/depottools/presubmit-scripts + for more details about the presubmit API built into depot_tools. + """ + +diff --git a/chrome/browser/resources/bookmarks/command_manager.js b/chrome/browser/resources/bookmarks/command_manager.js +--- a/chrome/browser/resources/bookmarks/command_manager.js ++++ b/chrome/browser/resources/bookmarks/command_manager.js +@@ -413,7 +413,7 @@ cr.define('bookmarks', function() { + chrome.bookmarks.export(); + break; + case Command.HELP_CENTER: +- window.open('https://support.google.com/chrome/?p=bookmarks'); ++ window.open('https://support.9oo91e.qjz9zk/chrome/?p=bookmarks'); + break; + default: + assert(false); +diff --git a/chrome/browser/resources/chromeos/about_os_credits.html b/chrome/browser/resources/chromeos/about_os_credits.html +--- a/chrome/browser/resources/chromeos/about_os_credits.html ++++ b/chrome/browser/resources/chromeos/about_os_credits.html +@@ -13,11 +13,11 @@ body { + + +

Placeholder

+-

See Licensing for Chromium OS Developers and +- Licensing for Chromium OS Package Owners

++

See Licensing for Chromium OS Developers and ++ Licensing for Chromium OS Package Owners

+

+ If you need to change styles, fonts, layout, etc of chrome://os_credits page, +-edit chromite/licensing/about_credits.tmpl. ++edit chromite/licensing/about_credits.tmpl. + The template is used to generate + a device-dependent about_os_credits.html when a CrOS image is built.

+ +diff --git a/chrome/browser/resources/chromeos/add_supervision/add_supervision.js b/chrome/browser/resources/chromeos/add_supervision/add_supervision.js +--- a/chrome/browser/resources/chromeos/add_supervision/add_supervision.js ++++ b/chrome/browser/resources/chromeos/add_supervision/add_supervision.js +@@ -7,14 +7,14 @@ + * @const {!Array} + */ + const ALLOWED_HOSTS = [ +- 'google.com', +- 'gstatic.com', +- 'googleapis.com', ++ '9oo91e.qjz9zk', ++ '95tat1c.qjz9zk', ++ '9oo91eapis.qjz9zk', + // FIFE avatar images (lh3-lh6). See http://go/fife-domains +- 'lh3.googleusercontent.com', +- 'lh4.googleusercontent.com', +- 'lh5.googleusercontent.com', +- 'lh6.googleusercontent.com', ++ 'lh3.9oo91eusercontent.qjz9zk', ++ 'lh4.9oo91eusercontent.qjz9zk', ++ 'lh5.9oo91eusercontent.qjz9zk', ++ 'lh6.9oo91eusercontent.qjz9zk', + ]; + + /** +diff --git a/chrome/browser/resources/chromeos/arc_support/background.js b/chrome/browser/resources/chromeos/arc_support/background.js +--- a/chrome/browser/resources/chromeos/arc_support/background.js ++++ b/chrome/browser/resources/chromeos/arc_support/background.js +@@ -333,13 +333,13 @@ class TermsOfServicePage { + this.termsView_.addContentScripts([ + { + name: 'preProcess', +- matches: ['https://play.google.com/*'], ++ matches: ['https://play.9oo91e.qjz9zk/*'], + js: {code: scriptInitTermsView}, + run_at: 'document_start' + }, + { + name: 'postProcess', +- matches: ['https://play.google.com/*'], ++ matches: ['https://play.9oo91e.qjz9zk/*'], + css: {files: ['playstore.css']}, + js: {files: ['playstore.js']}, + run_at: 'document_end' +@@ -448,7 +448,7 @@ class TermsOfServicePage { + return; + } + +- var defaultLocation = 'https://play.google.com/about/play-terms/'; ++ var defaultLocation = 'https://play.9oo91e.qjz9zk/about/play-terms/'; + if (this.termsView_.src) { + // This is reloading the page, typically clicked RETRY on error page. + this.fastLocation_ = undefined; +@@ -461,7 +461,7 @@ class TermsOfServicePage { + // Try fast load first if we know location. + this.fastLocation_ = this.getFastLocation_(); + if (this.fastLocation_) { +- this.termsView_.src = 'https://play.google.com/intl/' + ++ this.termsView_.src = 'https://play.9oo91e.qjz9zk/intl/' + + this.fastLocation_ + '/about/play-terms/'; + } else { + this.termsView_.src = defaultLocation; +@@ -573,7 +573,7 @@ class TermsOfServicePage { + // In case we failed with fast location let retry default scheme. + if (this.fastLocation_) { + this.fastLocation_ = undefined; +- this.termsView_.src = 'https://play.google.com/about/play-terms/'; ++ this.termsView_.src = 'https://play.9oo91e.qjz9zk/about/play-terms/'; + return; + } + this.onTermsViewLoadAborted_( +@@ -931,7 +931,7 @@ function showURLOverlay(url) { + */ + function showPrivacyPolicyOverlay() { + var defaultLink = +- 'https://www.google.com/intl/' + locale + '/policies/privacy/'; ++ 'https://www.9oo91e.qjz9zk/intl/' + locale + '/policies/privacy/'; + if (termsPage.isManaged_) { + showURLOverlay(defaultLink); + return; +@@ -1014,7 +1014,7 @@ chrome.app.runtime.onLaunched.addListener(function() { + }); + overlayWebview.addContentScripts([{ + name: 'postProcess', +- matches: ['https://support.google.com/*'], ++ matches: ['https://support.9oo91e.qjz9zk/*'], + css: {files: ['overlay.css']}, + run_at: 'document_end' + }]); +diff --git a/chrome/browser/resources/chromeos/arc_support/playstore.js b/chrome/browser/resources/chromeos/arc_support/playstore.js +--- a/chrome/browser/resources/chromeos/arc_support/playstore.js ++++ b/chrome/browser/resources/chromeos/arc_support/playstore.js +@@ -56,7 +56,7 @@ function navigateToLanguageAndCountryCode(language, countryCode) { + // Check special case for en_us which may be mapped to en. + var matchDefaultUs = null; + if (window.location.href.startsWith( +- 'https://play.google.com/intl/en_us/about/play-terms') && ++ 'https://play.9oo91e.qjz9zk/intl/en_us/about/play-terms') && + termsLang == 'en' && countryCode == 'us' && + selectLangZoneTerms.value.startsWith('/intl/en/about/play-terms')) { + return true; +@@ -211,7 +211,7 @@ function getPrivacyPolicyLink() { + } + } + } +- return 'https://www.google.com/policies/privacy/'; ++ return 'https://www.9oo91e.qjz9zk/policies/privacy/'; + } + + /** +@@ -226,7 +226,7 @@ function processDocument() { + formatDocument(); + + var initialLoad = window.location.href.startsWith( +- 'https://play.google.com/about/play-terms'); ++ 'https://play.9oo91e.qjz9zk/about/play-terms'); + var language = document.language; + if (!language) { + language = navigator.language; +diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js +--- a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js ++++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js +@@ -53,7 +53,7 @@ Polymer({ + * @private {string} + */ + urlTemplate_: +- 'https://www.gstatic.com/opa-android/oobe/a02187e41eed9e42/v2_omni_$.html', ++ 'https://www.95tat1c.qjz9zk/opa-android/oobe/a02187e41eed9e42/v2_omni_$.html', + + /** + * Whether try to reload with the default url when a 404 error occurred. +diff --git a/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js b/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js +--- a/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js ++++ b/chrome/browser/resources/chromeos/camera/src/js/google-analytics-bundle.js +@@ -95,7 +95,7 @@ var ce=function(a,b){return{type:b,lengthComputable:a.lengthComputable,loaded:a. + h.L=function(){ee(this);for(var a=this.c.v(),b=this.c.L(),c=[],d=0;dthis.Ia?c.I({status:"payload-too-big",ta:Ua("Encoded hit length == %s, but should be <= %s.",d.length,this.Ia)}):Vd(this.Uc,function(){c.G(Gd)},d);return c};var he=function(a,b){var c=new de;c.add(Ga.name,a);Xa(b,function(a,b){c.add(a.name,b.toString())});return c.toString()};var ie=function(a,b,c){this.j=a;this.Tc=b;this.Ia=c};ie.prototype.cb=function(){if(!this.D){if(!Cc(this.j.ma).K)throw Error("Cannot construct shared channel prior to settings being ready.");new zd;var a=new Bd(new ge(this.Tc,this.Ia)),b=new Id;this.D=new Ad(this.j,new Jd(this.j,new Hd(b,a)))}return this.D};var je=new z,ke=function(){Ea||(Ea=new T(new od));return Ea};v("goog.async.Deferred",Q);v("goog.async.Deferred.prototype.addCallback",Q.prototype.w);v("goog.async.Deferred.prototype.callback",Q.prototype.G);v("goog.async.Deferred.prototype.then",Q.prototype.then);v("goog.events.EventTarget",O);v("goog.events.EventTarget.prototype.listen",O.prototype.listen); +-v("analytics.getService",function(a,b){var c=je.get(a,null),d=b||chrome.runtime.getManifest().version;if(null===c){c=ke();if(!Fa){var e=ke();Fa=new ud(e,new ie(e,"https://www.google-analytics.com/collect",8192))}c=new bd("ca1.6.0",a,d,c,Fa);je.set(a,c)}return c});v("analytics.internal.GoogleAnalyticsService",bd);v("analytics.internal.GoogleAnalyticsService.prototype.getTracker",bd.prototype.tc);v("analytics.internal.GoogleAnalyticsService.prototype.getConfig",bd.prototype.rc); ++v("analytics.getService",function(a,b){var c=je.get(a,null),d=b||chrome.runtime.getManifest().version;if(null===c){c=ke();if(!Fa){var e=ke();Fa=new ud(e,new ie(e,"https://www.9oo91e-analytics.qjz9zk/collect",8192))}c=new bd("ca1.6.0",a,d,c,Fa);je.set(a,c)}return c});v("analytics.internal.GoogleAnalyticsService",bd);v("analytics.internal.GoogleAnalyticsService.prototype.getTracker",bd.prototype.tc);v("analytics.internal.GoogleAnalyticsService.prototype.getConfig",bd.prototype.rc); + v("analytics.internal.ServiceSettings",T);v("analytics.internal.ServiceSettings.prototype.setTrackingPermitted",T.prototype.Wc);v("analytics.internal.ServiceSettings.prototype.isTrackingPermitted",T.prototype.Fa);v("analytics.internal.ServiceSettings.prototype.setSampleRate",T.prototype.Vc);v("analytics.internal.ServiceSettings.prototype.resetUserId",T.prototype.Nc);v("analytics.internal.ServiceTracker",S);v("analytics.internal.ServiceTracker.prototype.send",S.prototype.send); + v("analytics.internal.ServiceTracker.prototype.sendAppView",S.prototype.Pc);v("analytics.internal.ServiceTracker.prototype.sendEvent",S.prototype.Qc);v("analytics.internal.ServiceTracker.prototype.sendSocial",S.prototype.Sc);v("analytics.internal.ServiceTracker.prototype.sendException",S.prototype.Rc);v("analytics.internal.ServiceTracker.prototype.sendTiming",S.prototype.Pb);v("analytics.internal.ServiceTracker.prototype.startTiming",S.prototype.Zc);v("analytics.internal.ServiceTracker.Timing",ad); + v("analytics.internal.ServiceTracker.Timing.prototype.send",ad.prototype.send);v("analytics.internal.ServiceTracker.prototype.forceSessionStart",S.prototype.qc);v("analytics.internal.ServiceTracker.prototype.addFilter",S.prototype.Y);v("analytics.internal.FilterChannel.Hit",R);v("analytics.internal.FilterChannel.Hit.prototype.getHitType",R.prototype.Ab);v("analytics.internal.FilterChannel.Hit.prototype.getParameters",R.prototype.ba);v("analytics.internal.FilterChannel.Hit.prototype.cancel",R.prototype.cancel); +diff --git a/chrome/browser/resources/chromeos/camera/src/js/util.js b/chrome/browser/resources/chromeos/camera/src/js/util.js +--- a/chrome/browser/resources/chromeos/camera/src/js/util.js ++++ b/chrome/browser/resources/chromeos/camera/src/js/util.js +@@ -866,7 +866,7 @@ cca.util.isWindowFullSize = function() { + */ + cca.util.openHelp = function() { + window.open( +- 'https://support.google.com/chromebook/?p=camera_usage_on_chromebook'); ++ 'https://support.9oo91e.qjz9zk/chromebook/?p=camera_usage_on_chromebook'); + }; + + /** +diff --git a/chrome/browser/resources/chromeos/camera/src/manifest.json b/chrome/browser/resources/chromeos/camera/src/manifest.json +--- a/chrome/browser/resources/chromeos/camera/src/manifest.json ++++ b/chrome/browser/resources/chromeos/camera/src/manifest.json +@@ -21,7 +21,7 @@ + "fileManagerPrivate", + "fileSystem.requestDownloads", + {"fileSystem": ["write", "directory"]}, +- "https://www.google-analytics.com/" ++ "https://www.9oo91e-analytics.qjz9zk/" + ], + "app": { + "background": { +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js b/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/background.js +@@ -359,7 +359,7 @@ cvox.ChromeVoxBackground.prototype.addBridgeListener = function() { + chrome.tabs.create(explorerPage); + break; + case 'HelpDocs': +- var helpPage = {url: 'http://chromevox.com/tutorial/index.html'}; ++ var helpPage = {url: 'http://ch40mevox.qjz9zk/tutorial/index.html'}; + chrome.tabs.create(helpPage); + break; + case 'Options': +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.css +@@ -2,7 +2,7 @@ + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +-@import url(https://fonts.googleapis.com/css?family=Roboto); ++@import url(https://f0ntz.9oo91e8p1.qjz9zk/css?family=Roboto); + + body { + margin: 0 0 20px 0; +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/options.js +@@ -100,7 +100,7 @@ cvox.OptionsPage.init = function() { + } + } + +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-chromevox-language-switching', + function(enabled) { + if (!enabled) { +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js b/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/background/prefs.js +@@ -87,9 +87,9 @@ cvox.ChromeVoxPrefs.DEFAULT_PREFS = { + 'position': '{}', + 'siteSpecificEnhancements': true, + 'siteSpecificScriptBase': +- 'https://ssl.gstatic.com/accessibility/javascript/ext/', ++ 'https://ssl.95tat1c.qjz9zk/accessibility/javascript/ext/', + 'siteSpecificScriptLoader': +- 'https://ssl.gstatic.com/accessibility/javascript/ext/loader.js', ++ 'https://ssl.95tat1c.qjz9zk/accessibility/javascript/ext/loader.js', + 'speakTextUnderMouse': false, + 'sticky': false, + 'typingEcho': 0, +@@ -170,7 +170,7 @@ cvox.ChromeVoxPrefs.prototype.init = function(pullFromLocalStorage) { + } + // Since language switching is currently an experimental feature, ensure that + // it is off if the feature flag is absent. +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-chromevox-language-switching', + function(enabled) { + if (!enabled) { +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/event_watcher.js +@@ -364,7 +364,7 @@ cvox.ChromeVoxEventWatcher.addEventListeners_ = function(doc) { + doc, 'select', cvox.ChromeVoxEventWatcher.selectEventWatcher, true); + + // TODO(dtseng): Experimental, see: +- // https://developers.google.com/chrome/whitepapers/pagevisibility ++ // https://developers.9oo91e.qjz9zk/chrome/whitepapers/pagevisibility + cvox.ChromeVoxEventWatcher.addEventListener_( + doc, 'webkitvisibilitychange', + cvox.ChromeVoxEventWatcher.visibilityChangeWatcher, true); +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/history.js +@@ -396,7 +396,7 @@ cvox.History.sendToFeedback = function() { + + var feedbackScript = document.createElement('script'); + feedbackScript.type = 'text/javascript'; +- feedbackScript.src = 'https://www.gstatic.com/feedback/api.js'; ++ feedbackScript.src = 'https://www.95tat1c.qjz9zk/feedback/api.js'; + + var runFeedbackScript = document.createElement('script'); + runFeedbackScript.type = 'text/javascript'; +diff --git a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js +--- a/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js ++++ b/chrome/browser/resources/chromeos/chromevox/chromevox/injected/navigation_manager.js +@@ -98,7 +98,7 @@ cvox.NavigationManager.prototype.reset = function() { + this.shifter_ = new cvox.NavigationShifter(); + + // NOTE(deboer): document.activeElement can not be null (c.f. +- // https://developer.mozilla.org/en-US/docs/DOM/document.activeElement) ++ // https://developer.m0z111a.qjz9zk/en-US/docs/DOM/document.activeElement) + // Instead, if there is no active element, activeElement is set to + // document.body. + /** +diff --git a/chrome/browser/resources/chromeos/chromevox/common/dom_util.js b/chrome/browser/resources/chromeos/chromevox/common/dom_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/dom_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/dom_util.js +@@ -1438,7 +1438,7 @@ cvox.DomUtil.isFocusable = function(targetNode) { + return false; + } + +- // Workaround for http://code.google.com/p/chromium/issues/detail?id=153904 ++ // Workaround for http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=153904 + if ((targetNode.tagName == 'A') && !targetNode.hasAttribute('href') && + !targetNode.hasAttribute('tabindex')) { + return false; +@@ -2062,7 +2062,7 @@ cvox.DomUtil.isLayoutTable = function(tableNode) { + + // These heuristics are loosely based on Okada and Miura's "Detection of + // Layout-Purpose TABLE Tags Based on Machine Learning" (2007). +- // http://books.google.com/books?id=kUbmdqasONwC&lpg=PA116&ots=Lb3HJ7dISZ&lr&pg=PA116 ++ // http://books.9oo91e.qjz9zk/books?id=kUbmdqasONwC&lpg=PA116&ots=Lb3HJ7dISZ&lr&pg=PA116 + + // Increase the points for each heuristic. If there are 3 or more points, + // this is probably a layout table. +@@ -2147,7 +2147,7 @@ cvox.DomUtil.hasBorder = function(tableNode) { + } + + // If .style.border-width is specified in units of length +- // ( https://developer.mozilla.org/en/CSS/border-width ) then we need ++ // ( https://developer.m0z111a.qjz9zk/en/CSS/border-width ) then we need + // to check if .style.border-width starts with 0[px,em,etc] + if (tableNode.style.borderWidth) { + return (tableNode.style.borderWidth.slice(0, -2) != 0); +@@ -2185,7 +2185,7 @@ cvox.DomUtil.getFirstLeafNode = function() { + * CSS selector expressions. These expressions often result in a more + * compact representation of the desired result. + * This is the findNode function from goog.dom: +- * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js ++ * http://code.9oo91e.qjz9zk/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js + * + * @param {Node} root The root of the tree to search. + * @param {function(Node) : boolean} p The filter function. +@@ -2223,7 +2223,7 @@ cvox.DomUtil.countNodes = function(root, p) { + * @return {boolean} Whether the search is complete or not. True in case + * findOne is true and the node is found. False otherwise. This is the + * findNodes_ function from goog.dom: +- * http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js. ++ * http://code.9oo91e.qjz9zk/p/closure-library/source/browse/trunk/closure/goog/dom/dom.js. + * @private + */ + cvox.DomUtil.findNodes_ = function(root, p, rv, findOne, maxChildCount) { +diff --git a/chrome/browser/resources/chromeos/chromevox/common/selection_util.js b/chrome/browser/resources/chromeos/chromevox/common/selection_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/selection_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/selection_util.js +@@ -292,7 +292,7 @@ cvox.SelectionUtil.scrollToSelection = function(sel) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Determine whether a node's text content is entirely whitespace. + * + * Throughout, whitespace is defined as one of the characters +@@ -316,7 +316,7 @@ cvox.SelectionUtil.isAllWs = function(node) { + + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Determine if a node should be ignored by the iterator functions. + * + * @param {Node} node An object implementing the DOM1 |Node| interface. +@@ -333,7 +333,7 @@ cvox.SelectionUtil.isIgnorable = function(node) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |previousSibling| that skips nodes that are entirely + * whitespace or comments. (Normally |previousSibling| is a property + * of all DOM nodes that gives the sibling node, the node that is +@@ -356,7 +356,7 @@ cvox.SelectionUtil.nodeBefore = function(sib) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |nextSibling| that skips nodes that are entirely + * whitespace or comments. + * +@@ -376,7 +376,7 @@ cvox.SelectionUtil.nodeAfter = function(sib) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |lastChild| that skips nodes that are entirely + * whitespace or comments. (Normally |lastChild| is a property + * of all DOM nodes that gives the last of the nodes contained +@@ -400,7 +400,7 @@ cvox.SelectionUtil.lastChildNode = function(par) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |firstChild| that skips nodes that are entirely + * whitespace and comments. + * +@@ -422,7 +422,7 @@ cvox.SelectionUtil.firstChildNode = function(par) { + }; + + /** +- * This is from https://developer.mozilla.org/en/Whitespace_in_the_DOM ++ * This is from https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM + * Version of |data| that doesn't include whitespace at the beginning + * and end and normalizes all whitespace to a single space. (Normally + * |data| is a property of text nodes that gives the text of the node.) +diff --git a/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js b/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js +--- a/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/traverse_table.js +@@ -961,7 +961,7 @@ cvox.TraverseTable.prototype.getRow = function() { + * 2) Null if the table does not contain a summary attribute. + */ + cvox.TraverseTable.prototype.summaryText = function() { +- // see http://code.google.com/p/chromium/issues/detail?id=46567 ++ // see http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=46567 + // for information why this is necessary + if (!this.activeTable_.hasAttribute('summary')) { + return null; +diff --git a/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js b/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/traverse_util.js +@@ -53,7 +53,7 @@ cvox.TraverseUtil.treatAsLeafNode = function(node) { + + /** + * Return true only if a single character is whitespace. +- * From https://developer.mozilla.org/en/Whitespace_in_the_DOM, ++ * From https://developer.m0z111a.qjz9zk/en/Whitespace_in_the_DOM, + * whitespace is defined as one of the characters + * "\t" TAB \u0009 + * "\n" LF \u000A +diff --git a/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js b/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js +--- a/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js ++++ b/chrome/browser/resources/chromeos/chromevox/common/xpath_util.js +@@ -43,7 +43,7 @@ cvox.XpathUtil.resolveNameSpace = function(prefix) { + * Given an XPath expression and rootNode, it returns an array of children nodes + * that match. The code for this function was taken from Mihai Parparita's GMail + * Macros Greasemonkey Script. +- * http://gmail-greasemonkey.googlecode.com/svn/trunk/scripts/gmail-new-macros.user.js ++ * http://gmail-greasemonkey.9oo91ecode.qjz9zk/svn/trunk/scripts/gmail-new-macros.user.js + * @param {string} expression The XPath expression to evaluate. + * @param {Node} rootNode The HTML node to start evaluating the XPath from. + * @return {Array} The array of children nodes that match. +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/command_handler.js +@@ -204,7 +204,7 @@ CommandHandler.onCommand = function(command) { + cvox.QueueMode.FLUSH); + return false; + case 'reportIssue': +- var url = 'https://code.google.com/p/chromium/issues/entry?' + ++ var url = 'https://code.9oo91e.qjz9zk/p/chromium/issues/entry?' + + 'labels=Type-Bug,Pri-2,cvox2,OS-Chrome&' + + 'components=UI>accessibility&' + + 'description='; +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/language_switching.js +@@ -54,7 +54,7 @@ LanguageSwitching.availableVoices_ = []; + */ + LanguageSwitching.init = function() { + // Enable sub-node language switching if feature flag is enabled. +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-chromevox-sub-node-language-' + + 'switching', + function(enabled) { +@@ -288,7 +288,7 @@ LanguageSwitching.hasVoiceForLanguage = function(languageCode) { + for (var i = 0; i < LanguageSwitching.availableVoices_.length; ++i) { + // Note: availableVoices_[i].lang is always in the form of + // 'language-region'. See link for documentation on chrome.tts api: +- // https://developer.chrome.com/apps/tts#type-TtsVoice ++ // https://developer.ch40me.qjz9zk/apps/tts#type-TtsVoice + var candidateLanguage = + LanguageSwitching.availableVoices_[i].lang.toLowerCase().split('-')[0]; + if (language === candidateLanguage) +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html b/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.html +@@ -6,7 +6,7 @@ + + + +- ++ + + + +diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js +--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js ++++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/tutorial.js +@@ -128,15 +128,15 @@ Tutorial.PAGES = [ + {msgid: 'tutorial_learn_more'}, + { + msgid: 'next_command_reference', +- link: 'http://www.chromevox.com/next_keyboard_shortcuts.html' ++ link: 'http://www.ch40mevox.qjz9zk/next_keyboard_shortcuts.html' + }, + { + msgid: 'chrome_keyboard_shortcuts', +- link: 'https://support.google.com/chromebook/answer/183101?hl=en' ++ link: 'https://support.9oo91e.qjz9zk/chromebook/answer/183101?hl=en' + }, + { + msgid: 'touchscreen_accessibility', +- link: 'https://support.google.com/chromebook/answer/6103702?hl=en' ++ link: 'https://support.9oo91e.qjz9zk/chromebook/answer/6103702?hl=en' + }, + ], + ]; +diff --git a/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js b/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js +--- a/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js ++++ b/chrome/browser/resources/chromeos/chromevox/extensions/searchvox/loader.js +@@ -24,7 +24,7 @@ cvox.SearchLoader.onReadyStateChange = function() { + if (document.readyState !== 'complete') { + return; + } +- var GOOGLE_HOST = 'www.google.com'; ++ var GOOGLE_HOST = 'www.9oo91e.qjz9zk'; + var SEARCH_PATH = '/search'; + + if (window.location.host !== GOOGLE_HOST || +diff --git a/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 b/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 +--- a/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 ++++ b/chrome/browser/resources/chromeos/chromevox/manifest.json.jinja2 +@@ -43,8 +43,8 @@ + {% if is_webstore is not defined %} + "chrome-extension://*", + "chrome://*", +- "https://accounts.google.com/embedded/setup/chromeos*", +- "https://talkgadget.google.com/hangouts*", ++ "https://accounts.9oo91e.qjz9zk/embedded/setup/chromeos*", ++ "https://talkgadget.9oo91e.qjz9zk/hangouts*", + "*.pdf" + {% endif %} + ], +diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd +--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd ++++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings.grd +@@ -114,7 +114,7 @@ + + + +- ++ + en + + +@@ -159,13 +159,13 @@ + + Decrease navigation granularity + +- ++ + Increase navigation granularity + + + Move to previous at granularity + +- ++ + Move to next at granularity + + +diff --git a/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py b/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py +--- a/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py ++++ b/chrome/browser/resources/chromeos/chromevox/tools/webstore_extension_util.py +@@ -19,7 +19,7 @@ import webbrowser + + PROJECT_ARGS = { + 'client_id': ('937534751394-gbj5334v9144c57qjqghl7d283plj5r4' +- '.apps.googleusercontent.com'), ++ '.apps.9oo91eusercontent.qjz9zk'), + 'grant_type': 'authorization_code', + 'redirect_uri': 'http://localhost:8000' + } +@@ -33,11 +33,11 @@ g_app_id = '' + + # Constants. + PORT = 8000 +-OAUTH_DOMAIN = 'accounts.google.com' ++OAUTH_DOMAIN = 'accounts.9oo91e.qjz9zk' + OAUTH_AUTH_COMMAND = '/o/oauth2/auth' + OAUTH_TOKEN_COMMAND = '/o/oauth2/token' +-WEBSTORE_API_SCOPE = 'https://www.googleapis.com/auth/chromewebstore' +-API_ENDPOINT_DOMAIN = 'www.googleapis.com' ++WEBSTORE_API_SCOPE = 'https://www.9oo91eapis.qjz9zk/auth/chromewebstore' ++API_ENDPOINT_DOMAIN = 'www.9oo91eapis.qjz9zk' + + def GetUploadStatusCommand(): + global g_app_id +@@ -99,7 +99,7 @@ def GetPopulatedHeader(client_secret): + code = GetAuthCode() + access_token = GetOauthToken(code, client_secret) + +- url = 'www.googleapis.com' ++ url = 'www.9oo91eapis.qjz9zk' + + return {'Authorization': 'Bearer %(access_token)s' % access_token, + 'x-goog-api-version': 2, +diff --git a/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json b/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json +--- a/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json ++++ b/chrome/browser/resources/chromeos/connectivity_diagnostics/manifest.json +@@ -40,8 +40,8 @@ + "diagnostics", + "metricsPrivate", + "networkingPrivate", +- "http://*.google.com/*", +- "https://*.google.com/*" ++ "http://*.9oo91e.qjz9zk/*", ++ "https://*.9oo91e.qjz9zk/*" + ], + "app": { + "background": { +diff --git a/chrome/browser/resources/chromeos/echo/manifest.json b/chrome/browser/resources/chromeos/echo/manifest.json +--- a/chrome/browser/resources/chromeos/echo/manifest.json ++++ b/chrome/browser/resources/chromeos/echo/manifest.json +@@ -5,7 +5,7 @@ + "version": "1.0.0", + "description": "Chrome Goodies", + "manifest_version": 2, +- "content_security_policy": "default-src 'self' blob: filesystem:; connect-src 'self' blob: filesystem: https://chromeos-registration.googleapis.com https://www.google-analytics.com", ++ "content_security_policy": "default-src 'self' blob: filesystem:; connect-src 'self' blob: filesystem: https://chromeos-registration.9oo91eapis.qjz9zk https://www.9oo91e-analytics.qjz9zk", + "permissions": [ + "alarms", + "cookies", +@@ -40,8 +40,8 @@ + "externally_connectable": { + "ids": ["*"], + "matches": [ +- "*://www.google.com/*chromebook/*", +- "*://www.google.com.au/*chromebook/*", ++ "*://www.9oo91e.qjz9zk/*chromebook/*", ++ "*://www.9oo91e.qjz9zk.au/*chromebook/*", + "*://www.google.ca/*chromebook/*", + "*://www.google.co.jp/*chromebook/*", + "*://www.google.co.uk/*chromebook/*", +@@ -54,7 +54,7 @@ + "*://www.google.no/*chromebook/*", + "*://www.google.co.nz/*chromebook/*", + "*://www.google.se/*chromebook/*", +- "*://chromebook-dot-googwebreview.appspot.com/*chromebook/*" ++ "*://chromebook-dot-googwebreview.8pp2p8t.qjz9zk/*chromebook/*" + ] + } + } +diff --git a/chrome/browser/resources/chromeos/emulator/icons.html b/chrome/browser/resources/chromeos/emulator/icons.html +--- a/chrome/browser/resources/chromeos/emulator/icons.html ++++ b/chrome/browser/resources/chromeos/emulator/icons.html +@@ -5,7 +5,7 @@ + + + + +diff --git a/chrome/browser/resources/chromeos/genius_app/manifest.json b/chrome/browser/resources/chromeos/genius_app/manifest.json +--- a/chrome/browser/resources/chromeos/genius_app/manifest.json ++++ b/chrome/browser/resources/chromeos/genius_app/manifest.json +@@ -33,36 +33,36 @@ + "webview", + "storage", + "unlimitedStorage", +- "https://*.ytimg.com/*", +- "https://www.google.com/*", +- "https://support.google.com/*", +- "https://scone-pa.clients6.google.com/*", +- "https://commondatastorage.googleapis.com/*", +- "https://storage.googleapis.com/*", +- "https://www.google-analytics.com/" ++ "https://*.yt1mg.qjz9zk/*", ++ "https://www.9oo91e.qjz9zk/*", ++ "https://support.9oo91e.qjz9zk/*", ++ "https://scone-pa.clients6.9oo91e.qjz9zk/*", ++ "https://commondatastorage.9oo91eapis.qjz9zk/*", ++ "https://storage.9oo91eapis.qjz9zk/*", ++ "https://www.9oo91e-analytics.qjz9zk/" + ], + "oauth2": { +- "client_id": "929143421683.apps.googleusercontent.com", ++ "client_id": "929143421683.apps.9oo91eusercontent.qjz9zk", + "scopes": [ +- "https://www.googleapis.com/auth/supportcontent", +- "https://www.googleapis.com/auth/cases", +- "https://www.googleapis.com/auth/cases.readonly", +- "https://www.googleapis.com/auth/pixelbook.email.preferences", +- "https://www.google.com/accounts/OAuthLogin" ++ "https://www.9oo91eapis.qjz9zk/auth/supportcontent", ++ "https://www.9oo91eapis.qjz9zk/auth/cases", ++ "https://www.9oo91eapis.qjz9zk/auth/cases.readonly", ++ "https://www.9oo91eapis.qjz9zk/auth/pixelbook.email.preferences", ++ "https://www.9oo91e.qjz9zk/accounts/OAuthLogin" + ] + }, + "display_in_new_tab_page": false, + "url_handlers": { + "view_answer": { + "matches": [ +- "https://support.google.com/chromeos-gethelp/answer/*" ++ "https://support.9oo91e.qjz9zk/chromeos-gethelp/answer/*" + ], + "title": "Open Help Article" + }, + "home": { + "matches": [ +- "https://support.google.com/chromeos-gethelp", +- "https://support.google.com/chromeos-gethelp/" ++ "https://support.9oo91e.qjz9zk/chromeos-gethelp", ++ "https://support.9oo91e.qjz9zk/chromeos-gethelp/" + ], + "title": "Open Help" + } +diff --git a/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json b/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json +--- a/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json ++++ b/chrome/browser/resources/chromeos/input_method/google_xkb_manifest.json +@@ -11,9 +11,9 @@ + "app.window.alwaysOnTop", + "app.window.ime", + "audioCapture", +- "https://clients4.google.com/", +- "https://dl.google.com/", +- "https://www.googleapis.com/", ++ "https://clients4.9oo91e.qjz9zk/", ++ "https://dl.9oo91e.qjz9zk/", ++ "https://www.9oo91eapis.qjz9zk/", + "input", + "inputMethodPrivate", + "metricsPrivate", +@@ -30,7 +30,7 @@ + "content_scripts": [ + { + "matches": [ +- "https://www.googleapis.com/auth/imesync*" ++ "https://www.9oo91eapis.qjz9zk/auth/imesync*" + ], + "js": [ + "chos_inject-debug.js" +diff --git a/chrome/browser/resources/chromeos/login/cr_ui.js b/chrome/browser/resources/chromeos/login/cr_ui.js +--- a/chrome/browser/resources/chromeos/login/cr_ui.js ++++ b/chrome/browser/resources/chromeos/login/cr_ui.js +@@ -416,7 +416,7 @@ cr.define('cr.ui', function() { + var Oobe = cr.ui.Oobe; + + // Allow selection events on components with editable text (password field) +-// bug (http://code.google.com/p/chromium/issues/detail?id=125863) ++// bug (http://code.9oo91e.qjz9zk/p/chromium/issues/detail?id=125863) + disableTextSelectAndDrag(function(e) { + var src = e.target; + return src instanceof HTMLTextAreaElement || +diff --git a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js +--- a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js ++++ b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_redeem_offers.js +@@ -8,6 +8,6 @@ Polymer({ + behaviors: [DiscoverModuleBehavior], + + onClick_: function() { +- window.open('http://www.google.com/chromebook/offers/', '_blank'); ++ window.open('http://www.9oo91e.qjz9zk/chromebook/offers/', '_blank'); + }, + }); +diff --git a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js +--- a/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js ++++ b/chrome/browser/resources/chromeos/login/discover/modules/discover_module_sync_files.js +@@ -8,6 +8,6 @@ Polymer({ + behaviors: [DiscoverModuleBehavior], + + onClick_: function() { +- window.open('https://www.google.com/chromebook/switch/', '_blank'); ++ window.open('https://www.9oo91e.qjz9zk/chromebook/switch/', '_blank'); + }, + }); +diff --git a/chrome/browser/resources/chromeos/login/encryption_migration.js b/chrome/browser/resources/chromeos/login/encryption_migration.js +--- a/chrome/browser/resources/chromeos/login/encryption_migration.js ++++ b/chrome/browser/resources/chromeos/login/encryption_migration.js +@@ -162,7 +162,7 @@ Polymer({ + // differently, it's recommended to add a command-line flag to Chrome and + // make session_manager pass it based on a feature-based USE flag which is + // set in the appropriate board overlays. +- // https://goo.gl/BbBkzg. ++ // https://goo.gl.qjz9zk.qjz9zk/BbBkzg. + return this.i18n('migrationBoardName').startsWith('kevin'); + }, + +diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.html b/chrome/browser/resources/chromeos/login/offline_gaia.html +--- a/chrome/browser/resources/chromeos/login/offline_gaia.html ++++ b/chrome/browser/resources/chromeos/login/offline_gaia.html +@@ -30,7 +30,7 @@ + 'email': , + 'password': } + If user did not type domain |email| will be added by +- "@gmail.com" or by 'emailDomain' if it is set. ++ "@9ma1l.qjz9zk" or by 'emailDomain' if it is set. + Methods: + 'focus' - focuses current screen (email input or password input); + 'setEmail' - accepts an argument |email|. If |email| is empty it sets +diff --git a/chrome/browser/resources/chromeos/login/offline_gaia.js b/chrome/browser/resources/chromeos/login/offline_gaia.js +--- a/chrome/browser/resources/chromeos/login/offline_gaia.js ++++ b/chrome/browser/resources/chromeos/login/offline_gaia.js +@@ -3,7 +3,7 @@ + // found in the LICENSE file. + + { +- const DEFAULT_EMAIL_DOMAIN = '@gmail.com'; ++ const DEFAULT_EMAIL_DOMAIN = '@9ma1l.qjz9zk'; + + /** @enum */ + const TRANSITION_TYPE = {FORWARD: 0, BACKWARD: 1, NONE: 2}; +diff --git a/chrome/browser/resources/chromeos/login/saml_password_attributes.js b/chrome/browser/resources/chromeos/login/saml_password_attributes.js +--- a/chrome/browser/resources/chromeos/login/saml_password_attributes.js ++++ b/chrome/browser/resources/chromeos/login/saml_password_attributes.js +@@ -20,7 +20,7 @@ cr.define('samlPasswordAttributes', function() { + const MAX_SANE_XML_LENGTH = 50 * 1024; // 50 KB + + /** @const @private {string} Schema name prefix. */ +- const SCHEMA_NAME_PREFIX = 'http://schemas.google.com/saml/2019/'; ++ const SCHEMA_NAME_PREFIX = 'http://schemas.9oo91e.qjz9zk/saml/2019/'; + + /** @const @private {string} Schema name for password modified timestamp. */ + const PASSWORD_MODIFIED_TIMESTAMP = 'passwordmodifiedtimestamp'; +diff --git a/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js b/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js +--- a/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js ++++ b/chrome/browser/resources/chromeos/login/screen_arc_terms_of_service.js +@@ -22,7 +22,7 @@ login.createScreen('ArcTermsOfServiceScreen', 'arc-tos', function() { + + /* The hostname of the url where the terms of service will be fetched. + * Overwritten by tests to load terms of service from local test server.*/ +- this.termsOfServiceHostName_ = 'https://play.google.com'; ++ this.termsOfServiceHostName_ = 'https://play.9oo91e.qjz9zk'; + }, + + +@@ -94,7 +94,7 @@ login.createScreen('ArcTermsOfServiceScreen', 'arc-tos', function() { + typeof results[0] == 'string') { + self.showUrlOverlay(results[0]); + } else { +- var defaultLink = 'https://www.google.com/intl/' + ++ var defaultLink = 'https://www.9oo91e.qjz9zk/intl/' + + self.getCurrentLanguage_() + '/policies/privacy/'; + self.showUrlOverlay(defaultLink); + } +@@ -108,7 +108,7 @@ login.createScreen('ArcTermsOfServiceScreen', 'arc-tos', function() { + }); + overlayUrl.addContentScripts([{ + name: 'postProcess', +- matches: ['https://support.google.com/*'], ++ matches: ['https://support.9oo91e.qjz9zk/*'], + css: {files: ['overlay.css']}, + run_at: 'document_end' + }]); +diff --git a/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 b/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 +--- a/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 ++++ b/chrome/browser/resources/chromeos/select_to_speak/manifest.json.jinja2 +@@ -35,8 +35,8 @@ + "storage", + "tabs", + "tts", +- "https://docs.google.com/*", +- "https://docs.sandbox.google.com/*", ++ "https://docs.9oo91e.qjz9zk/*", ++ "https://docs.sandbox.9oo91e.qjz9zk/*", + "clipboard", + "clipboardRead", + "clipboardWrite" +@@ -48,8 +48,8 @@ + "options_page": "options.html", + "content_scripts": [ + { +- "matches": [ "https://docs.google.com/document*", +- "https://docs.sandbox.google.com/document*" ], ++ "matches": [ "https://docs.9oo91e.qjz9zk/document*", ++ "https://docs.sandbox.9oo91e.qjz9zk/document*" ], + "all_frames": true, + "js": [ + "select_to_speak_gdocs_script.js" +diff --git a/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js b/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js +--- a/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js ++++ b/chrome/browser/resources/chromeos/select_to_speak/mock_tts.js +@@ -41,7 +41,7 @@ var MockTts = function() { + + MockTts.prototype = { + // Functions based on methods in +- // https://developer.chrome.com/extensions/tts ++ // https://developer.ch40me.qjz9zk/extensions/tts + speak: function(utterance, options) { + this.pendingUtterances_.push(utterance); + this.currentlySpeaking_ = true; +diff --git a/chrome/browser/resources/chromeos/select_to_speak/options.css b/chrome/browser/resources/chromeos/select_to_speak/options.css +--- a/chrome/browser/resources/chromeos/select_to_speak/options.css ++++ b/chrome/browser/resources/chromeos/select_to_speak/options.css +@@ -2,7 +2,7 @@ + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +-@import url(https://fonts.googleapis.com/css?family=Roboto); ++@import url(https://f0ntz.9oo91e8p1.qjz9zk/css?family=Roboto); + + body { + margin: 0 0 20px 0; +diff --git a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js +--- a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js ++++ b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js +@@ -14,7 +14,7 @@ const SELECT_TO_SPEAK_TRAY_CLASS_NAME = + // Matches one of the known GSuite apps which need the clipboard to find and + // read selected text. Includes sandbox and non-sandbox versions. + const GSUITE_APP_REGEXP = +- /^https:\/\/docs\.(?:sandbox\.)?google\.com\/(?:(?:presentation)|(?:document)|(?:spreadsheets)|(?:drawings)){1}\//; ++ /^https:\/\/docs\.(?:sandbox\.)?9oo91e\.qjz9zk\/(?:(?:presentation)|(?:document)|(?:spreadsheets)|(?:drawings)){1}\//; + + /** + * Determines if a node is in one of the known Google GSuite apps that needs +@@ -114,7 +114,7 @@ let SelectToSpeak = function() { + */ + this.enableLanguageDetectionIntegration_ = false; + // TODO(chrishall): do we want to (also?) expose this in preferences? +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-language-detection', (result) => { + this.enableLanguageDetectionIntegration_ = result; + }); +@@ -445,8 +445,8 @@ SelectToSpeak.prototype = { + chrome.tabs.query( + { + url: [ +- 'https://docs.google.com/document*', +- 'https://docs.sandbox.google.com/*' ++ 'https://docs.9oo91e.qjz9zk/document*', ++ 'https://docs.sandbox.9oo91e.qjz9zk/*' + ] + }, + (tabs) => { +diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd +--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd ++++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings.grd +@@ -114,7 +114,7 @@ + + + +- ++ + en + + +diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access.js b/chrome/browser/resources/chromeos/switch_access/switch_access.js +--- a/chrome/browser/resources/chromeos/switch_access/switch_access.js ++++ b/chrome/browser/resources/chromeos/switch_access/switch_access.js +@@ -62,7 +62,7 @@ class SwitchAccess { + * @private + */ + init_() { +- chrome.commandLinePrivate.hasSwitch( ++ ch40me.qjz9zkmandLinePrivate.hasSwitch( + 'enable-experimental-accessibility-switch-access-text', (result) => { + this.enableImprovedTextInput_ = result; + }); +diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json b/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json +--- a/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json ++++ b/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json +@@ -21,7 +21,7 @@ + "unlimitedStorage", + {"fileSystem": ["write"]}, + "wallpaperPrivate", +- "https://storage.googleapis.com/", ++ "https://storage.9oo91eapis.qjz9zk/", + "syncFileSystem" + ], + "app": { +diff --git a/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h b/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h +--- a/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h ++++ b/chrome/browser/resources/chromeos/zip_archiver/cpp/volume.h +@@ -157,13 +157,13 @@ class Volume { + + // Callback factory used to submit jobs to worker_. + // See "Detailed Description" Note at: +- // https://developer.chrome.com/native-client/ ++ // https://developer.ch40me.qjz9zk/native-client/ + // pepper_dev/cpp/classpp_1_1_completion_callback_factory + // + // As a minus this would require ugly synchronization between the main thread + // and the function that is executed on worker_ construction. Current + // implementation is simimlar to examples in $NACL_SDK_ROOT and according to +- // https://chromiumcodereview.appspot.com/lint_patch/issue10790078_24001_25013 ++ // https://chromiumcodereview.8pp2p8t.qjz9zk/lint_patch/issue10790078_24001_25013 + // it should be safe (see TODO(dmichael)). That's because both worker_ and + // callback_factory_ will be alive during the life of Volume and deleting a + // Volume is permitted only if there are no requests in progress on +diff --git a/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js b/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js +--- a/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js ++++ b/chrome/browser/resources/chromeos/zip_archiver/externs_js/chrome.js +@@ -6,27 +6,27 @@ + + /** + * The Chrome File System Provider API. +- * @see https://developer.chrome.com/apps/fileSystemProvider ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider + * @const + */ + chrome.fileSystemProvider = {}; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#method-get ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#method-get + * @param {string} fileSystemId + * @param {function(!FileSystemInfo)} callback + */ + chrome.fileSystemProvider.get = function(fileSystemId, callback) {}; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#method-mount ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#method-mount + * @param {!Object} options + * @param {function(...)=} opt_callback + */ + chrome.fileSystemProvider.mount = function(options, opt_callback) {}; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#method-unmount ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#method-unmount + * @param {!Object} options + * @param {function(...)=} opt_callback + */ +@@ -34,73 +34,73 @@ chrome.fileSystemProvider.unmount = function(options, opt_callback) {}; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onUnmountRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onUnmountRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onUnmountRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onGetMetadataRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onGetMetadataRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onGetMetadataRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadDirectoryRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadDirectoryRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onReadDirectoryRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onOpenFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onOpenFileRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onOpenFileRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onCloseFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onCloseFileRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onCloseFileRequested; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadFileRequested + * @typedef {!Event} + */ + chrome.fileSystemProvider.onReadFileRequested; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-FileSystemInfo ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-FileSystemInfo + * @typedef {!Object} + */ + var FileSystemInfo; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-ProviderError ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-ProviderError + * @typedef {string} + */ + var ProviderError; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-EntryMetadata ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-EntryMetadata + * @typedef {!Object} + */ + var EntryMetadata; + + /** +- * @see https://developer.chrome.com/apps/fileSystemProvider#type-OpenFileMode ++ * @see https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-OpenFileMode + * @typedef {string} + */ + var OpenFileMode; + + /** + * THe Chrome Manifest Icons. Not defined in externs/chrome_extensions.js. +- * @see https://developer.chrome.com/apps/manifest/icons ++ * @see https://developer.ch40me.qjz9zk/apps/manifest/icons + * @typedef {!Array} + */ + chrome.runtime.Manifest.prototype.icons; +diff --git a/chrome/browser/resources/chromeos/zip_archiver/js/types.js b/chrome/browser/resources/chromeos/zip_archiver/js/types.js +--- a/chrome/browser/resources/chromeos/zip_archiver/js/types.js ++++ b/chrome/browser/resources/chromeos/zip_archiver/js/types.js +@@ -24,7 +24,7 @@ unpacker.types.EntryId; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onUnmountRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onUnmountRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId}>} + */ +@@ -32,7 +32,7 @@ unpacker.types.UnmountRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onGetMetadataRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onGetMetadataRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * entryPath: string, +@@ -42,7 +42,7 @@ unpacker.types.GetMetadataRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadDirectoryRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadDirectoryRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * directoryPath: string}>} +@@ -51,7 +51,7 @@ unpacker.types.ReadDirectoryRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onOpenFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onOpenFileRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * filePath: string, +@@ -61,7 +61,7 @@ unpacker.types.OpenFileRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onCloseFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onCloseFileRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * openRequestId: !unpacker.types.RequestId}>} +@@ -70,7 +70,7 @@ unpacker.types.CloseFileRequestedOptions; + + /** + * @see +- * https://developer.chrome.com/apps/fileSystemProvider#event-onReadFileRequested ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#event-onReadFileRequested + * @typedef {!Object<{fileSystemId: !unpacker.types.FileSystemId, + * requestId: !unpacker.types.RequestId, + * openRequestId: !unpacker.types.RequestId, +diff --git a/chrome/browser/resources/chromeos/zip_archiver/js/volume.js b/chrome/browser/resources/chromeos/zip_archiver/js/volume.js +--- a/chrome/browser/resources/chromeos/zip_archiver/js/volume.js ++++ b/chrome/browser/resources/chromeos/zip_archiver/js/volume.js +@@ -129,7 +129,7 @@ unpacker.Volume = function(decompressor, entry) { + /** + * The volume's metadata. The key is the full path to the file on this volume. + * For more details see +- * https://developer.chrome.com/apps/fileSystemProvider#type-EntryMetadata ++ * https://developer.ch40me.qjz9zk/apps/fileSystemProvider#type-EntryMetadata + * @type {?Object} + */ + this.metadata = null; +diff --git a/chrome/browser/resources/cloud_print_app/manifest.json b/chrome/browser/resources/cloud_print_app/manifest.json +--- a/chrome/browser/resources/cloud_print_app/manifest.json ++++ b/chrome/browser/resources/cloud_print_app/manifest.json +@@ -7,10 +7,10 @@ + }, + "app": { + "launch": { +- "web_url": "https://www.google.com/cloudprint" ++ "web_url": "https://www.9oo91e.qjz9zk/cloudprint" + }, + "urls": [ +- "https://www.google.com/cloudprint/enable_chrome_connector" ++ "https://www.9oo91e.qjz9zk/cloudprint/enable_chrome_connector" + ] + }, + "permissions": [ +diff --git a/chrome/browser/resources/cryptotoken/asn1.js b/chrome/browser/resources/cryptotoken/asn1.js +--- a/chrome/browser/resources/cryptotoken/asn1.js ++++ b/chrome/browser/resources/cryptotoken/asn1.js +@@ -9,7 +9,7 @@ + * must know something about the expected sequence of tags, which allows you to + * call getASN1() and friends with the right arguments and in the right order. + * +- * https://commondatastorage.googleapis.com/chromium-boringssl-docs/bytestring.h.html ++ * https://commondatastorage.9oo91eapis.qjz9zk/chromium-boringssl-docs/bytestring.h.html + * is the canonical API reference. + */ + const ByteString = class { +diff --git a/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js b/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js +--- a/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js ++++ b/chrome/browser/resources/cryptotoken/cryptotokenapprovedorigins.js +@@ -5,7 +5,7 @@ + /** + * @fileoverview Provides an implementation of approved origins that relies + * on the chrome.cryptotokenPrivate.requestPermission API. +- * (and only) allows google.com to use security keys. ++ * (and only) allows 9oo91e.qjz9zk to use security keys. + * + */ + 'use strict'; +diff --git a/chrome/browser/resources/cryptotoken/enroller.js b/chrome/browser/resources/cryptotoken/enroller.js +--- a/chrome/browser/resources/cryptotoken/enroller.js ++++ b/chrome/browser/resources/cryptotoken/enroller.js +@@ -427,7 +427,7 @@ function handleU2fEnrollRequest(messageSender, request, sendResponse) { + // This is a gNubby with obsolete firmware. We can't parse the reply from + // this device and users need to be guided to reflashing them. Therefore + // let attestation data pass directly so that can happen on +- // accounts.google.com. ++ // accounts.9oo91e.qjz9zk. + isDirect = true; + } + +@@ -851,7 +851,7 @@ Enroller.prototype.sendEnrollRequestToHelper_ = function() { + }; + + const googleCorpAppId = +- 'https://www.gstatic.com/securitykey/a/google.com/origins.json'; ++ 'https://www.95tat1c.qjz9zk/securitykey/a/9oo91e.qjz9zk/origins.json'; + + /** + * Proxies the registration request over the WebAuthn API. +diff --git a/chrome/browser/resources/default_apps/external_extensions.json b/chrome/browser/resources/default_apps/external_extensions.json +--- a/chrome/browser/resources/default_apps/external_extensions.json ++++ b/chrome/browser/resources/default_apps/external_extensions.json +@@ -24,15 +24,15 @@ + }, + // Google Sheets + "aapocclcgogkmnckokdopfmhonfmgoek" : { +- "external_update_url": "https://clients2.google.com/service/update2/crx" ++ "external_update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx" + }, + // Google Slides + "felcaaldnbdncclmgdcncolpebgiejap" : { +- "external_update_url": "https://clients2.google.com/service/update2/crx" ++ "external_update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx" + }, + // Drive extension + "ghbmnnjooekpmoecnnnilnnbdlolhkhi" : { +- "external_update_url": "https://clients2.google.com/service/update2/crx" ++ "external_update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx" + } + } + +diff --git a/chrome/browser/resources/discards/graph_doc_template.html b/chrome/browser/resources/discards/graph_doc_template.html +--- a/chrome/browser/resources/discards/graph_doc_template.html ++++ b/chrome/browser/resources/discards/graph_doc_template.html +@@ -33,7 +33,7 @@ URL. As result, this document needs to be self-contained, hence inline scripts. + } + + +- +diff --git a/chrome/browser/resources/downloads/icons.html b/chrome/browser/resources/downloads/icons.html +--- a/chrome/browser/resources/downloads/icons.html ++++ b/chrome/browser/resources/downloads/icons.html +@@ -7,7 +7,7 @@ + + + + +diff --git a/chrome/browser/resources/feedback/js/feedback_util.js b/chrome/browser/resources/feedback/js/feedback_util.js +--- a/chrome/browser/resources/feedback/js/feedback_util.js ++++ b/chrome/browser/resources/feedback/js/feedback_util.js +@@ -6,29 +6,29 @@ + * @const + */ + const FEEDBACK_LANDING_PAGE = +- 'https://support.google.com/chrome/go/feedback_confirmation'; ++ 'https://support.9oo91e.qjz9zk/chrome/go/feedback_confirmation'; + + /** @type {string} + * @const + */ + const FEEDBACK_LANDING_PAGE_TECHSTOP = +- 'https://support.google.com/pixelbook/answer/7659411'; ++ 'https://support.9oo91e.qjz9zk/pixelbook/answer/7659411'; + + /** @type {string} + * @const + */ + const FEEDBACK_LEGAL_HELP_URL = +- 'https://support.google.com/legal/answer/3110420'; ++ 'https://support.9oo91e.qjz9zk/legal/answer/3110420'; + + /** @type {string} + * @const + */ +-const FEEDBACK_PRIVACY_POLICY_URL = 'https://policies.google.com/privacy'; ++const FEEDBACK_PRIVACY_POLICY_URL = 'https://policies.9oo91e.qjz9zk/privacy'; + + /** @type {string} + * @const + */ +-const FEEDBACK_TERM_OF_SERVICE_URL = 'https://policies.google.com/terms'; ++const FEEDBACK_TERM_OF_SERVICE_URL = 'https://policies.9oo91e.qjz9zk/terms'; + + /** + * Opens the supplied url in an app window. It uses the url as the window ID. +diff --git a/chrome/browser/resources/gaia_auth_host/authenticator.js b/chrome/browser/resources/gaia_auth_host/authenticator.js +--- a/chrome/browser/resources/gaia_auth_host/authenticator.js ++++ b/chrome/browser/resources/gaia_auth_host/authenticator.js +@@ -20,7 +20,7 @@ cr.define('cr.login', function() { + // TODO(rogerta): should use gaia URL from GaiaUrls::gaia_url() instead + // of hardcoding the prod URL here. As is, this does not work with staging + // environments. +- const IDP_ORIGIN = 'https://accounts.google.com/'; ++ const IDP_ORIGIN = 'https://accounts.9oo91e.qjz9zk/'; + const SIGN_IN_HEADER = 'google-accounts-signin'; + const EMBEDDED_FORM_HEADER = 'google-accounts-embedded'; + const LOCATION_HEADER = 'location'; +@@ -510,7 +510,7 @@ cr.define('cr.login', function() { + url = appendParam( + url, 'continue', + data.gaiaUrl + 'programmatic_auth_chromeos?hl=' + data.hl + +- '&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin&' + ++ '&scope=https%3A%2F%2Fwww.9oo91e.qjz9zk%2Faccounts%2FOAuthLogin&' + + 'client_id=' + encodeURIComponent(data.clientId) + + '&access_type=offline'); + +@@ -818,7 +818,7 @@ cr.define('cr.login', function() { + // TODO(https://crbug.com/837107): remove this once API is fully + // stabilized. + // @example.com is used in tests. +- if (!this.services_ && !this.email_.endsWith('@gmail.com') && ++ if (!this.services_ && !this.email_.endsWith('@9ma1l.qjz9zk') && + !this.email_.endsWith('@example.com')) { + console.warn('Forcing empty services.'); + this.services_ = []; +diff --git a/chrome/browser/resources/hangout_services/manifest.json b/chrome/browser/resources/hangout_services/manifest.json +--- a/chrome/browser/resources/hangout_services/manifest.json ++++ b/chrome/browser/resources/hangout_services/manifest.json +@@ -9,7 +9,7 @@ + "manifest_version": 2, + "externally_connectable": { + "matches": [ +- "https://*.google.com/*", ++ "https://*.9oo91e.qjz9zk/*", + // For tests. + "*://localhost/*" + ] +diff --git a/chrome/browser/resources/hats/hats.html b/chrome/browser/resources/hats/hats.html +--- a/chrome/browser/resources/hats/hats.html ++++ b/chrome/browser/resources/hats/hats.html +@@ -45,7 +45,7 @@ + // the iframe's disposal to make sure the iframe is already loaded, + // which means the answer has been posted to the server. + // TODO(weili): Once this issue is fixed in HaTS library +- // (https://b.corp.google.com/issues/143494318), remove the following ++ // (https://b.corp.9oo91e.qjz9zk/issues/143494318), remove the following + // work around. + const element = document.querySelector(`iframe[id^='closure_frame']`); + if (element === null) { +diff --git a/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js b/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js +--- a/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js ++++ b/chrome/browser/resources/identity_scope_approval_dialog/scope_approval_dialog.js +@@ -27,11 +27,11 @@ function loadAuthUrlAndShowWindow(url, win) { + return {requestHeaders: headers}; + }, + { +- urls: ['https://accounts.google.com/*'], ++ urls: ['https://accounts.9oo91e.qjz9zk/*'], + }, + ['blocking', 'requestHeaders']); + +- if (!url.toLowerCase().startsWith('https://accounts.google.com/')) { ++ if (!url.toLowerCase().startsWith('https://accounts.9oo91e.qjz9zk/')) { + document.querySelector('.titlebar').classList.add('titlebar-border'); + } + +diff --git a/chrome/browser/resources/inspect/inspect.html b/chrome/browser/resources/inspect/inspect.html +--- a/chrome/browser/resources/inspect/inspect.html ++++ b/chrome/browser/resources/inspect/inspect.html +@@ -47,7 +47,7 @@ found in the LICENSE file. + + + +@@ -91,7 +91,7 @@ found in the LICENSE file. +
+ Define the listening port on your device that maps to a port accessible + from your development machine. +- Learn more +
+
+diff --git a/chrome/browser/resources/local_ntp/customize.js b/chrome/browser/resources/local_ntp/customize.js +--- a/chrome/browser/resources/local_ntp/customize.js ++++ b/chrome/browser/resources/local_ntp/customize.js +@@ -2326,7 +2326,7 @@ customize.colorsMenuOnThemeChange = function() { + $(customize.IDS.COLORS_THEME).classList.add(customize.CLASSES.VISIBLE); + $(customize.IDS.COLORS_THEME_NAME).innerHTML = themeInfo.themeName; + $(customize.IDS.COLORS_THEME_WEBSTORE_LINK).href = +- 'https://chrome.google.com/webstore/detail/' + themeInfo.themeId; ++ 'https://chrome.9oo91e.qjz9zk/webstore/detail/' + themeInfo.themeId; + $(customize.IDS.COLORS_THEME_UNINSTALL).onclick = + ntpApiHandle.useDefaultTheme; + +diff --git a/chrome/browser/resources/local_ntp/doodles.js b/chrome/browser/resources/local_ntp/doodles.js +--- a/chrome/browser/resources/local_ntp/doodles.js ++++ b/chrome/browser/resources/local_ntp/doodles.js +@@ -117,7 +117,7 @@ doodles.resizeDoodleHandler = function(args) { + const transitionCallback = function() { + iframe.removeEventListener('webkitTransitionEnd', transitionCallback); + iframe.contentWindow.postMessage( +- {cmd: 'resizeComplete'}, 'https://www.google.com'); ++ {cmd: 'resizeComplete'}, 'https://www.9oo91e.qjz9zk'); + }; + iframe.addEventListener('webkitTransitionEnd', transitionCallback, false); + +@@ -693,7 +693,7 @@ doodles.updateShareDialog = function() { + const shortLink = doodles.targetDoodle.metadata.shortLink; + + facebookButton.onclick = function() { +- const url = 'https://www.facebook.com/dialog/share' + ++ const url = 'https://www.f8c3b00k.qjz9zk/dialog/share' + + '?app_id=' + doodles.FACEBOOK_APP_ID + + '&href=' + encodeURIComponent(shortLink) + + '&hashtag=' + encodeURIComponent('#GoogleDoodle'); +diff --git a/chrome/browser/resources/local_ntp/voice.js b/chrome/browser/resources/local_ntp/voice.js +--- a/chrome/browser/resources/local_ntp/voice.js ++++ b/chrome/browser/resources/local_ntp/voice.js +@@ -8,8 +8,8 @@ + * Get the preferred language for UI localization. Represents Chrome's UI + * language, which might not coincide with the user's "preferred" language + * in the Settings. For more details, see: +- * - https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage/language +- * - https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage/languages ++ * - https://developer.m0z111a.qjz9zk/en/docs/Web/API/NavigatorLanguage/language ++ * - https://developer.m0z111a.qjz9zk/en/docs/Web/API/NavigatorLanguage/languages + * + * The returned value is a language version string as defined in + * BCP 47. +@@ -91,7 +91,7 @@ const RecognitionError = { + + /** + * Provides methods for communicating with the ++ * href="https://developer.m0z111a.qjz9zk/en-US/docs/Web/API/Web_Speech_API"> + * Web Speech API, error handling and executing search queries. + */ + const speech = {}; +@@ -999,7 +999,7 @@ text.LISTENING_TIMEOUT_MS_ = 2000; + * @const @private + */ + text.SUPPORT_LINK_BASE_ = +- 'https://support.google.com/chrome/?p=ui_voice_search&hl='; ++ 'https://support.9oo91e.qjz9zk/chrome/?p=ui_voice_search&hl='; + + /** + * The final / high confidence speech recognition result element. +diff --git a/chrome/browser/resources/media/mei_preload/manifest.json b/chrome/browser/resources/media/mei_preload/manifest.json +--- a/chrome/browser/resources/media/mei_preload/manifest.json ++++ b/chrome/browser/resources/media/mei_preload/manifest.json +@@ -3,6 +3,6 @@ + "icons": {}, + "version": "1.0.5.0", + "manifest_version": 2, +- "update_url": "https://clients2.google.com/service/update2/crx", ++ "update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx", + "name": "MEI Preload" + } +\ No newline at end of file +diff --git a/chrome/browser/resources/media/webrtc_logs.js b/chrome/browser/resources/media/webrtc_logs.js +--- a/chrome/browser/resources/media/webrtc_logs.js ++++ b/chrome/browser/resources/media/webrtc_logs.js +@@ -82,7 +82,7 @@ function updateWebRtcTextLogsList(textLogsList, version) { + template: 'Defect report from user', + comment: commentLines.join('\n'), + }; +- let href = 'http://code.google.com/p/chromium/issues/entry'; ++ let href = 'http://code.9oo91e.qjz9zk/p/chromium/issues/entry'; + for (const param in params) { + href = appendParam(href, param, params[param]); + } +diff --git a/chrome/browser/resources/media_router/extension/manifest.yaml b/chrome/browser/resources/media_router/extension/manifest.yaml +--- a/chrome/browser/resources/media_router/extension/manifest.yaml ++++ b/chrome/browser/resources/media_router/extension/manifest.yaml +@@ -38,14 +38,14 @@ + }, + + # Google Feedback requires: +- # script-src: https://feedback.googleusercontent.com https://www.google.com +- # https://www.gstatic.com/feedback +- # child-src: https://www.google.com ++ # script-src: https://feedback.9oo91eusercontent.qjz9zk https://www.9oo91e.qjz9zk ++ # https://www.95tat1c.qjz9zk/feedback ++ # child-src: https://www.9oo91e.qjz9zk + # + # Webview elements are implemented as a custom elements that loads + # dynamic plugin data. Without an "object-src 'self'" permission in the CSP, + # webview elements fail to attach to extension pages (crbug.com/509854). +- "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; script-src 'self' https://feedback.googleusercontent.com https://www.google.com https://www.gstatic.com; child-src https://www.google.com; connect-src 'self' http://*:* https://*:*; font-src https://fonts.gstatic.com; object-src 'self';", ++ "content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline' https://f0ntz.9oo91e8p1.qjz9zk; script-src 'self' https://feedback.9oo91eusercontent.qjz9zk https://www.9oo91e.qjz9zk https://www.95tat1c.qjz9zk; child-src https://www.9oo91e.qjz9zk; connect-src 'self' http://*:* https://*:*; font-src https://fonts.95tat1c.qjz9zk; object-src 'self';", + + # Setting the public key fixes the extension id to: + # enhhojjnijigcajfphajepfemndkmdlo +diff --git a/chrome/browser/resources/net_internals/domain_security_policy_view.html b/chrome/browser/resources/net_internals/domain_security_policy_view.html +--- a/chrome/browser/resources/net_internals/domain_security_policy_view.html ++++ b/chrome/browser/resources/net_internals/domain_security_policy_view.html +@@ -13,8 +13,8 @@ + +
+ HSTS is HTTP Strict Transport Security: a way for sites to elect to +- always use HTTPS. See +- https://www.chromium.org/hsts. PKP is Public Key Pinning: Chrome "pins" ++ always use HTTPS. See ++ https://www.ch40m1um.qjz9zk/hsts. PKP is Public Key Pinning: Chrome "pins" + certain public keys for certain sites in official builds.
+ +

Add HSTS domain

+diff --git a/chrome/browser/resources/net_internals/domain_security_policy_view.js b/chrome/browser/resources/net_internals/domain_security_policy_view.js +--- a/chrome/browser/resources/net_internals/domain_security_policy_view.js ++++ b/chrome/browser/resources/net_internals/domain_security_policy_view.js +@@ -6,7 +6,7 @@ + * This UI allows a user to query and update the browser's list of per-domain + * security policies. These policies include: + * - HSTS: HTTPS Strict Transport Security. A way for sites to elect to always +- * use HTTPS. See http://dev.chromium.org/sts ++ * use HTTPS. See http://dev.ch40m1um.qjz9zk/sts + * - Expect-CT. A way for sites to elect to always require valid Certificate + * Transparency information to be present. See + * https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-01 +diff --git a/chrome/browser/resources/net_internals/events_view.html b/chrome/browser/resources/net_internals/events_view.html +--- a/chrome/browser/resources/net_internals/events_view.html ++++ b/chrome/browser/resources/net_internals/events_view.html +@@ -1,6 +1,6 @@ + +
+ The net-internals events viewer and related functionality has been removed. +- Please use chrome://net-export to save netlogs and the external catapult netlog_viewer to view them. ++ Please use chrome://net-export to save netlogs and the external catapult netlog_viewer to view them. +
+ +diff --git a/chrome/browser/resources/network_speech_synthesis/manifest.json b/chrome/browser/resources/network_speech_synthesis/manifest.json +--- a/chrome/browser/resources/network_speech_synthesis/manifest.json ++++ b/chrome/browser/resources/network_speech_synthesis/manifest.json +@@ -10,7 +10,7 @@ + "permissions": [ + "systemPrivate", + "ttsEngine", +- "https://www.google.com/" ++ "https://www.9oo91e.qjz9zk/" + ], + "tts_engine": { + "voices": [ +diff --git a/chrome/browser/resources/network_speech_synthesis/tts_extension.js b/chrome/browser/resources/network_speech_synthesis/tts_extension.js +--- a/chrome/browser/resources/network_speech_synthesis/tts_extension.js ++++ b/chrome/browser/resources/network_speech_synthesis/tts_extension.js +@@ -30,7 +30,7 @@ TtsExtension.prototype = { + * @const + * @private + */ +- SPEECH_SERVER_URL_: 'https://www.google.com/speech-api/v2/synthesize?' + ++ SPEECH_SERVER_URL_: 'https://www.9oo91e.qjz9zk/speech-api/v2/synthesize?' + + 'enc=mpeg&client=chromium', + + /** +diff --git a/chrome/browser/resources/omnibox/omnibox.html b/chrome/browser/resources/omnibox/omnibox.html +--- a/chrome/browser/resources/omnibox/omnibox.html ++++ b/chrome/browser/resources/omnibox/omnibox.html +@@ -94,7 +94,7 @@ + Current page context: +

+ +