From beafaa8bb7bfc78d9325fe623201dcdb5d8aff39 Mon Sep 17 00:00:00 2001 From: althafvly Date: Mon, 11 Sep 2023 22:14:47 +0530 Subject: [PATCH] Browser: Bump to 116.0.5845.163 --- bromite/build/bromite_patches_list.txt | 16 +- .../AImageReader-CFI-crash-mitigations.patch | 60 +- .../Add-AllowUserCertificates-flag.patch | 114 +- ...dd-Alt-D-hotkey-to-focus-address-bar.patch | 11 +- .../Add-DuckDuckGo-Lite-search-engine.patch | 220 +- .../Add-English-only-search-engine.patch | 82 +- .../Add-IsCleartextPermitted-flag.patch | 40 +- .../Add-a-proxy-configuration-page.patch | 286 +- .../Add-an-always-incognito-mode.patch | 630 +- .../Add-bookmark-import-export-actions.patch | 553 +- ...dd-custom-tab-intents-privacy-option.patch | 109 +- .../build/patches/Add-exit-menu-item.patch | 32 +- ...g-for-omnibox-autocomplete-filtering.patch | 50 +- .../Add-flag-for-save-data-header.patch | 56 +- ...nfigure-maximum-connections-per-host.patch | 36 +- ...ontrol-video-playback-resume-feature.patch | 44 +- .../Add-flag-to-disable-IPv6-probes.patch | 169 +- ...-to-disable-external-intent-requests.patch | 33 +- .../Add-flag-to-disable-vibration.patch | 50 +- ...Add-lifetime-options-for-permissions.patch | 582 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 261 +- .../Add-menu-item-to-view-source.patch | 43 +- .../Add-option-to-force-tablet-UI.patch | 101 +- ...-to-not-persist-tabs-across-sessions.patch | 56 +- .../Add-option-to-use-home-page-as-NTP.patch | 47 +- .../patches/Add-site-engagement-flag.patch | 41 +- ...-support-for-ISupportHelpAndFeedback.patch | 36 +- .../Add-support-for-writing-URIs.patch | 11 +- .../patches/Add-webGL-site-setting.patch | 393 +- .../patches/Add-webRTC-site-settings.patch | 400 +- ...ow-building-without-enable_reporting.patch | 163 +- ...ow-building-without-supervised-users.patch | 153 +- .../Allow-playing-audio-in-background.patch | 33 +- ...e-new-tab-page-for-default-home-page.patch | 11 +- ...ioBuffer-AnalyserNode-fp-mitigations.patch | 282 +- .../Automated-domain-substitution.patch | 42721 ---------------- .../patches/Battery-API-return-nothing.patch | 11 +- ...Block-gateway-attacks-via-websockets.patch | 67 +- .../Block-qjz9zk-or-trk-requests.patch | 50 +- .../Bookmarks-select-all-menu-entry.patch | 98 +- .../build/patches/Bromite-auto-updater.patch | 253 +- .../build/patches/Bromite-package-name.patch | 31 +- .../Bromite-subresource-adblocker.patch | 351 +- .../build/patches/Chromium-package-name.patch | 23 - ...-resolution-in-requestAnimationFrame.patch | 40 - .../patches/Client-hints-overrides.patch | 75 +- .../Content-settings-infrastructure.patch | 1897 +- ...ctionary-suggestions-for-the-Omnibox.patch | 13 +- .../patches/Disable-AGSA-by-default.patch | 319 - ...ble-Accessibility-service-by-default.patch | 20 +- .../patches/Disable-AsyncDNS-by-default.patch | 20 +- ...DRM-media-origin-IDs-preprovisioning.patch | 11 +- .../Disable-FLoC-and-privacy-sandbox.patch | 290 +- ...le-NTP-remote-suggestions-by-default.patch | 43 +- .../build/patches/Disable-PrivacyGuide.patch | 27 +- .../Disable-StartSurface-feature.patch | 31 +- .../patches/Disable-TLS-resumption.patch | 69 +- .../patches/Disable-UA-full-version.patch | 9 +- .../Disable-add-to-home-screen-prompt.patch | 9 +- .../patches/Disable-all-predictors-code.patch | 245 +- .../patches/Disable-all-promo-dialogs.patch | 66 +- .../Disable-conversion-measurement-api.patch | 605 +- .../patches/Disable-crash-reporting.patch | 31 +- .../Disable-feeds-support-by-default.patch | 76 +- ...Disable-fetching-of-all-field-trials.patch | 199 +- .../patches/Disable-idle-detection.patch | 34 +- ...-lock-icon-in-address-bar-by-default.patch | 11 +- ...media-router-and-remoting-by-default.patch | 77 +- .../Disable-minidump-upload-scheduling.patch | 14 +- .../Disable-offline-pages-in-CCT.patch | 15 +- ...-omission-of-URL-elements-in-Omnibox.patch | 12 +- .../patches/Disable-plugins-enumeration.patch | 11 +- ...e-references-to-fonts.googleapis.com.patch | 14 +- ...sts-for-single-word-Omnibar-searches.patch | 11 +- .../build/patches/Disable-safe-browsing.patch | 3128 -- .../build/patches/Disable-safety-check.patch | 150 +- .../Disable-smart-selection-by-default.patch | 56 +- ...isable-some-signed-exchange-features.patch | 15 +- ...ble-support-for-RAR-files-inspection.patch | 153 +- .../Disable-text-fragments-by-default.patch | 63 +- ...Disable-the-DIAL-repeating-discovery.patch | 13 +- .../Disable-third-party-origin-trials.patch | 69 +- .../patches/Disable-update-scheduler.patch | 39 +- .../patches/Disable-various-metrics.patch | 40 +- .../Do-not-build-API-keys-infobar.patch | 11 +- .../Do-not-compile-QR-code-sharing.patch | 349 +- .../Do-not-hide-component-extensions.patch | 33 +- ...ore-download-location-prompt-setting.patch | 9 +- .../patches/Do-not-link-with-libatomic.patch | 11 +- .../Do-not-store-passwords-by-default.patch | 27 +- bromite/build/patches/DoH-improvements.patch | 21 +- .../Enable-Certificate-Transparency.patch | 66 +- .../build/patches/Enable-ECH-by-default.patch | 25 +- .../patches/Enable-HEVC-by-default.patch | 15 +- ...able-PermuteTLSExtensions-by-default.patch | 17 +- ...-SPPI-for-devices-with-enough-memory.patch | 44 - ...ctOriginIsolation-and-SitePerProcess.patch | 66 +- ...e-darken-websites-checkbox-in-themes.patch | 18 +- ...fwrapv-in-Clang-for-non-UBSan-builds.patch | 11 +- .../Enable-native-Android-autofill.patch | 459 +- .../Enable-network-isolation-features.patch | 88 +- ...-prefetch-privacy-changes-by-default.patch | 15 +- .../build/patches/Enable-share-intent.patch | 200 +- ...ble-third-party-storage-partitioning.patch | 17 +- .../Experimental-user-scripts-support.patch | 526 +- .../Follow-only-system-dark-mode.patch | 9 +- .../Guard-for-user-agent-reduction.patch | 68 +- ...ing-against-incognito-mode-detection.patch | 9 +- ...story-number-of-days-privacy-setting.patch | 125 +- ...e-enterprise-policies-for-secure-DNS.patch | 9 +- ...prove-plain-text-rendering-on-mobile.patch | 22 +- ...number-of-autocomplete-matches-to-10.patch | 36 +- ...ripts-for-AMP-tracking-ads-and-video.patch | 31 +- .../Invalidate-components-public-key.patch | 11 +- bromite/build/patches/JIT-site-settings.patch | 491 +- .../Keep-empty-tabs-between-sessions.patch | 16 +- ...-allow-screenshots-in-Incognito-mode.patch | 17 +- .../patches/Logcat-crash-reports-UI.patch | 283 +- .../patches/Modify-default-preferences.patch | 138 +- .../Move-navigation-bar-to-bottom.patch | 1132 +- ...nt-settings-back-to-privacy-settings.patch | 56 +- .../Multiple-fingerprinting-mitigations.patch | 244 +- .../patches/Never-fetch-popular-sites.patch | 21 +- ...HTTP-probes-for-connection-detection.patch | 11 +- ...uiltin-autocomplete-for-chrome-flags.patch | 13 +- .../patches/OpenSearch-miscellaneous.patch | 50 +- .../patches/Override-Navigator-Language.patch | 33 +- .../Partition-Blink-memory-cache.patch | 112 +- .../Partition-blobs-by-top-frame-URL.patch | 54 +- .../patches/Re-introduce-kWebAuthCable.patch | 147 - ...-modal-dialog-flag-to-close-all-tabs.patch | 104 +- ...e-introduce-override_build_timestamp.patch | 14 +- ...ders-in-DoH-requests-to-bare-minimum.patch | 26 +- ...Reintroduce-override_build_timestamp.patch | 50 - .../patches/Remove-EV-certificates.patch | 45 +- ...referrals-in-cross-origin-navigation.patch | 520 +- .../patches/Remove-SMS-integration.patch | 30 +- .../Remove-binary-blob-integrations.patch | 1362 +- ...cklisted-URLs-upon-bookmark-creation.patch | 33 +- .../Remove-contextual-search-manager.patch | 1427 - .../build/patches/Remove-help-menu-item.patch | 31 +- ...-mremap-from-seccomp-baseline-policy.patch | 26 - .../Remove-navigator.connection-info.patch | 21 +- ...load-of-com.google.android.gms.fonts.patch | 14 +- ...price-shopping-commerce-integrations.patch | 2268 - .../Remove-segmentation-platform.patch | 16 +- .../Remove-signin-and-sync-integrations.patch | 5689 -- ...Remove-voice-recognition-integration.patch | 494 +- ...weblayer-dependency-on-Play-Services.patch | 22 - ...ndow-name-on-cross-origin-navigation.patch | 13 +- ...ce-DoH-probe-domain-with-RIPE-domain.patch | 10 +- .../Restore-LastTabStandingTracker.patch | 429 + .../Restore-Search-Ready-Omnibox-flag.patch | 88 +- .../Restore-Simplified-NTP-launch.patch | 123 +- ...-button-in-top-toolbar-customization.patch | 59 +- .../Restore-classic-new-tab-page.patch | 63 +- .../Restore-offline-indicator-v2-flag.patch | 107 +- ...Delete-block-external-form-redirects.patch | 124 +- ...evert-Permit-blocking-of-view-source.patch | 152 +- ...emove-disable-pull-to-refresh-effect.patch | 28 +- ...vert-flags-remove-num-raster-threads.patch | 42 +- ...l-of-execution-context-address-space.patch | 187 +- ...moval-of-an-option-to-block-autoplay.patch | 613 - ...-Note-9-SDK27-crazylinker-workaround.patch | 73 +- ...tings-for-cookies-javascript-and-ads.patch | 26 +- .../patches/Site-setting-for-images.patch | 518 +- .../Switch-to-fstack-protector-strong.patch | 43 +- .../patches/Timezone-customization.patch | 933 +- .../patches/Unexpire-tab-groups-flags.patch | 72 - .../patches/Update-i18n-zh_CN-support.patch | 203 - .../Use-4-tile-rows-never-show-logo.patch | 22 +- .../Use-64-bit-WebView-processes.patch | 21 +- .../patches/Use-dummy-DFM-installer.patch | 52 +- .../patches/User-agent-customization.patch | 186 +- bromite/build/patches/Welcome-screen.patch | 1367 +- .../patches/autofill-miscellaneous.patch | 182 +- .../build/patches/bromite-build-utils.patch | 535 + ...build-remove-calling-untrusted-hooks.patch | 27 +- .../patches/disable-AdsBlockedInfoBar.patch | 9 +- .../disable-WebView-variations-support.patch | 28 +- .../disable-appending-variations-header.patch | 9 +- .../disable-battery-status-updater.patch | 9 +- ...IPv6-connectivity-probes-to-RIPE-DNS.patch | 11 +- .../do-not-add-suffix-to-package-name.patch | 29 +- .../patches/do-not-hide-.orig-files.patch | 11 +- .../enable-ftrivial-auto-var-init-zero.patch | 11 +- .../exit-on-failure-of-inclusion.patch | 11 +- ...t_run-deactivate-autoupdate-globally.patch | 11 +- bromite/build/patches/kill-Auth.patch | 19 +- .../kill-Location-fall-back-to-system.patch | 12 +- bromite/build/patches/kill-Vision.patch | 42 +- ...rce-text-x-suse-ymp-to-be-downloaded.patch | 11 +- ...net-cert-increase-default-key-length.patch | 11 +- ...nH264-enable-ARM-ARM64-optimizations.patch | 12 +- ...always-prompt-for-download-directory.patch | 11 +- ...ofile-resetter-disable-send-settings.patch | 9 +- .../sharing-hub-always-use-visible-URL.patch | 13 +- ...le-fetching-of-languages-from-server.patch | 13 +- .../ungoogled-chromium-Disable-Gaia.patch | 15 +- ...hromium-Disable-Network-Time-Tracker.patch | 11 +- ...d-chromium-Disable-intranet-detector.patch | 11 +- ...gled-chromium-Disable-profile-avatar.patch | 14 +- ...romium-Disable-translate-integration.patch | 34 +- ...ed-chromium-Disable-untraceable-URLs.patch | 14 +- ...chromium-Disable-webRTC-log-uploader.patch | 56 +- ...ed-chromium-no-special-hosts-domains.patch | 1214 +- .../updater-disable-updater-pings.patch | 17 +- ...RTC-do-not-expose-local-IP-addresses.patch | 14 +- ...iew-Hard-no-to-persistent-histograms.patch | 27 +- build.sh | 2 +- 210 files changed, 15719 insertions(+), 66487 deletions(-) delete mode 100644 bromite/build/patches/Automated-domain-substitution.patch delete mode 100644 bromite/build/patches/Chromium-package-name.patch delete mode 100644 bromite/build/patches/Clamp-time-resolution-in-requestAnimationFrame.patch delete mode 100644 bromite/build/patches/Disable-AGSA-by-default.patch delete mode 100644 bromite/build/patches/Disable-safe-browsing.patch delete mode 100644 bromite/build/patches/Enable-SPPI-for-devices-with-enough-memory.patch delete mode 100644 bromite/build/patches/Re-introduce-kWebAuthCable.patch delete mode 100644 bromite/build/patches/Reintroduce-override_build_timestamp.patch delete mode 100644 bromite/build/patches/Remove-contextual-search-manager.patch delete mode 100644 bromite/build/patches/Remove-mremap-from-seccomp-baseline-policy.patch delete mode 100644 bromite/build/patches/Remove-price-shopping-commerce-integrations.patch delete mode 100644 bromite/build/patches/Remove-signin-and-sync-integrations.patch delete mode 100644 bromite/build/patches/Remove-weblayer-dependency-on-Play-Services.patch create mode 100644 bromite/build/patches/Restore-LastTabStandingTracker.patch delete mode 100644 bromite/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch delete mode 100644 bromite/build/patches/Unexpire-tab-groups-flags.patch delete mode 100644 bromite/build/patches/Update-i18n-zh_CN-support.patch create mode 100644 bromite/build/patches/bromite-build-utils.patch diff --git a/bromite/build/bromite_patches_list.txt b/bromite/build/bromite_patches_list.txt index 95deb1ec..e3595216 100644 --- a/bromite/build/bromite_patches_list.txt +++ b/bromite/build/bromite_patches_list.txt @@ -3,20 +3,15 @@ do-not-hide-.orig-files.patch Do-not-link-with-libatomic.patch do-not-add-suffix-to-package-name.patch exit-on-failure-of-inclusion.patch -Disable-safe-browsing.patch -Remove-signin-and-sync-integrations.patch Move-some-account-settings-back-to-privacy-settings.patch -Remove-contextual-search-manager.patch kill-Vision.patch kill-Location-fall-back-to-system.patch kill-Auth.patch Remove-binary-blob-integrations.patch Remove-SMS-integration.patch -Remove-price-shopping-commerce-integrations.patch Remove-voice-recognition-integration.patch Do-not-compile-QR-code-sharing.patch Timezone-customization.patch -Revert-the-removal-of-an-option-to-block-autoplay.patch Add-support-for-ISupportHelpAndFeedback.patch JIT-site-settings.patch Site-setting-for-images.patch @@ -86,7 +81,6 @@ translate-disable-fetching-of-languages-from-server.patch Offer-builtin-autocomplete-for-chrome-flags.patch Use-4-tile-rows-never-show-logo.patch Disable-various-metrics.patch -Enable-SPPI-for-devices-with-enough-memory.patch Enable-StrictOriginIsolation-and-SitePerProcess.patch Use-64-bit-WebView-processes.patch prefs-always-prompt-for-download-directory.patch @@ -120,7 +114,6 @@ Remove-blocklisted-URLs-upon-bookmark-creation.patch Disable-the-DIAL-repeating-discovery.patch Block-qjz9zk-or-trk-requests.patch Hardening-against-incognito-mode-detection.patch -Remove-weblayer-dependency-on-Play-Services.patch Restore-Simplified-NTP-launch.patch Add-option-to-use-home-page-as-NTP.patch Disable-text-fragments-by-default.patch @@ -136,7 +129,6 @@ Add-Alt-D-hotkey-to-focus-address-bar.patch User-agent-customization.patch Add-AllowUserCertificates-flag.patch Add-IsCleartextPermitted-flag.patch -Unexpire-tab-groups-flags.patch Add-flag-for-omnibox-autocomplete-filtering.patch Revert-Delete-block-external-form-redirects.patch Add-flag-to-disable-external-intent-requests.patch @@ -145,7 +137,6 @@ Logcat-crash-reports-UI.patch Add-flag-to-disable-vibration.patch mime_util-force-text-x-suse-ymp-to-be-downloaded.patch Client-hints-overrides.patch -Disable-AGSA-by-default.patch Allow-building-without-enable_reporting.patch Disable-lock-icon-in-address-bar-by-default.patch Experimental-user-scripts-support.patch @@ -165,16 +156,15 @@ Revert-Permit-blocking-of-view-source.patch Disable-safety-check.patch Disable-all-predictors-code.patch OpenSearch-miscellaneous.patch -Update-i18n-zh_CN-support.patch Add-flag-for-save-data-header.patch Disable-UA-full-version.patch Dictionary-suggestions-for-the-Omnibox.patch Disable-AsyncDNS-by-default.patch +Restore-LastTabStandingTracker.patch Add-lifetime-options-for-permissions.patch Disable-crash-reporting.patch Samsung-Note-9-SDK27-crazylinker-workaround.patch Disable-TLS-resumption.patch -Remove-mremap-from-seccomp-baseline-policy.patch Move-navigation-bar-to-bottom.patch Welcome-screen.patch Add-site-engagement-flag.patch @@ -189,7 +179,6 @@ Partition-Blink-memory-cache.patch Remove-navigator.connection-info.patch Disable-PrivacyGuide.patch sharing-hub-always-use-visible-URL.patch -Re-introduce-kWebAuthCable.patch Enable-HEVC-by-default.patch Partition-blobs-by-top-frame-URL.patch Override-Navigator-Language.patch @@ -197,8 +186,7 @@ Disable-add-to-home-screen-prompt.patch Remove-HTTP-referrals-in-cross-origin-navigation.patch Enable-ECH-by-default.patch Disable-StartSurface-feature.patch -Clamp-time-resolution-in-requestAnimationFrame.patch Enable-PermuteTLSExtensions-by-default.patch Enable-third-party-storage-partitioning.patch Restore-adaptive-button-in-top-toolbar-customization.patch -Automated-domain-substitution.patch +bromite-build-utils.patch diff --git a/bromite/build/patches/AImageReader-CFI-crash-mitigations.patch b/bromite/build/patches/AImageReader-CFI-crash-mitigations.patch index e60d7ba1..a660f1ff 100644 --- a/bromite/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/bromite/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -1,6 +1,7 @@ +From 5d0142f62b1968bee7a6ffd114d07380e4ca15ca Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 5 May 2020 07:22:20 +0200 -Subject: AImageReader CFI crash mitigations +Subject: [PATCH 106/192] AImageReader CFI crash mitigations Revert "gpu/android: Remove setup for disabling AImageReader." This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f. @@ -35,6 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 12 files changed, 66 insertions(+), 5 deletions(-) diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc +index d26f7e8a19517..a20f33f114b91 100644 --- a/base/android/android_image_reader_compat.cc +++ b/base/android/android_image_reader_compat.cc @@ -23,6 +23,8 @@ @@ -61,6 +63,7 @@ diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_ AndroidImageReader::AndroidImageReader() : is_supported_(LoadFunctions()) {} diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h +index bef2ae103235c..b44886946d565 100644 --- a/base/android/android_image_reader_compat.h +++ b/base/android/android_image_reader_compat.h @@ -24,6 +24,9 @@ class BASE_EXPORT AndroidImageReader { @@ -82,15 +85,16 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i AndroidImageReader(); diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json +index d936cee457710..949773a2c7ff2 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2501,9 +2501,9 @@ - "expiry_milestone": 115 +@@ -2798,9 +2798,9 @@ + "expiry_milestone": 125 }, { - "name": "enable-image-reader", - "owners": [ "vikassoni", "liberato" ], -- "expiry_milestone": 115 +- "expiry_milestone": 125 + "name": "enable-image-reader", // Bromite: do not expire + "owners": [ "vikassoni", "liberato" ], // flag + "expiry_milestone": -1 @@ -98,10 +102,11 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js { "name": "enable-immersive-fullscreen-toolbar", diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json +index 4e7fd14c5231f..827576124460a 100644 --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -3199,6 +3199,22 @@ - "dont_delete_source_texture_for_egl_image" +@@ -3698,6 +3698,22 @@ + "no_downscaled_overlay_promotion" ] }, + { @@ -121,12 +126,13 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis + ] + }, { - "id": 336, - "cr_bugs": [625785], + "id": 381, + "cr_bugs": [ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc +index eb8057834e27f..a949cb3623385 100644 --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -64,6 +64,11 @@ BASE_FEATURE(kUseGles2ForOopR, +@@ -65,6 +65,11 @@ BASE_FEATURE(kUseGles2ForOopR, #endif ); @@ -139,6 +145,7 @@ 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. Also used by webview to disable surface diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h +index 785791599ecce..824d0dbb18dfe 100644 --- a/gpu/config/gpu_finch_features.h +++ b/gpu/config/gpu_finch_features.h @@ -17,6 +17,7 @@ namespace features { @@ -150,9 +157,10 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h #if BUILDFLAG(IS_ANDROID) GPU_EXPORT BASE_DECLARE_FEATURE(kAndroidSurfaceControl); diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc +index 82528e1b97ab6..572ea0893e45e 100644 --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc -@@ -121,6 +121,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( +@@ -122,6 +122,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; #else @@ -162,7 +170,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc if (!gpu_preferences.enable_android_surface_control) return kGpuFeatureStatusDisabled; -@@ -344,6 +347,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { +@@ -351,6 +354,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) { gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] = kGpuFeatureStatusBlocklisted; } @@ -175,6 +183,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc // Estimates roughly user total disk space by counting in the drives where diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt +index 5530042f3a807..e897fc62cb449 100644 --- a/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt @@ -15,6 +15,7 @@ decode_encode_srgb_for_generatemipmap @@ -183,12 +192,13 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list disable_accelerated_av1_decode +disable_aimagereader disable_accelerated_av1_encode + disable_accelerated_h264_decode disable_accelerated_h264_encode - disable_accelerated_hevc_decode diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc +index e122255a4e94c..cd535f6040c17 100644 --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -626,6 +626,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -616,6 +616,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) @@ -201,6 +211,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc kGpuFeatureStatusEnabled || !InitializeVulkan()) { diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc +index 5dcfbd4be3fdc..1adbf4683ad8c 100644 --- a/gpu/ipc/service/stream_texture_android.cc +++ b/gpu/ipc/service/stream_texture_android.cc @@ -6,6 +6,7 @@ @@ -209,9 +220,9 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_ +#include "base/android/android_image_reader_compat.h" #include "base/android/scoped_hardware_buffer_fence_sync.h" - #include "base/bind.h" #include "base/feature_list.h" -@@ -51,7 +52,15 @@ std::unique_ptr MakeCurrent( + #include "base/functional/bind.h" +@@ -50,7 +51,15 @@ std::unique_ptr MakeCurrent( } TextureOwner::Mode GetTextureOwnerMode() { @@ -229,9 +240,10 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_ : TextureOwner::Mode::kSurfaceTextureInsecure; } diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 3352c21226ff9..a2a99a11eb82f 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -750,6 +750,11 @@ BASE_FEATURE(kHardwareSecureDecryptionExperiment, +@@ -946,6 +946,11 @@ BASE_FEATURE(kHardwareSecureDecryptionExperiment, // Allows automatically disabling hardware secure Content Decryption Module // (CDM) after failures or crashes to fallback to software secure CDMs. If this // feature is disabled, the fallback will never happen and users could be stuck @@ -244,15 +256,17 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc BASE_FEATURE(kHardwareSecureDecryptionFallback, "HardwareSecureDecryptionFallback", diff --git a/media/base/media_switches.h b/media/base/media_switches.h +index 81f2f07bef7f5..d9259debfdffa 100644 --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -232,6 +232,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp8TemporalLayerHWEncoding); - MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9kSVCHWEncoding); - #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS) - MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy); +@@ -327,6 +327,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy); + MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoToolboxVideoDecoder); + #endif // BUILDFLAG(IS_APPLE) + MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebRTCColorAccuracy); +MEDIA_EXPORT BASE_DECLARE_FEATURE(kAImageReaderVideoOutput); MEDIA_EXPORT BASE_DECLARE_FEATURE(kVp9kSVCHWDecoding); - MEDIA_EXPORT BASE_DECLARE_FEATURE(kWakeLockOptimisationHiddenMuted); MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebContentsCaptureHiDpi); --- -2.25.1 + MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebrtcMediaCapabilitiesParameters); +-- +2.34.1 + diff --git a/bromite/build/patches/Add-AllowUserCertificates-flag.patch b/bromite/build/patches/Add-AllowUserCertificates-flag.patch index 92a873d2..65ade661 100644 --- a/bromite/build/patches/Add-AllowUserCertificates-flag.patch +++ b/bromite/build/patches/Add-AllowUserCertificates-flag.patch @@ -1,26 +1,26 @@ +From 24643d42b1e735d4b77c238d385ee956e777f197 Mon Sep 17 00:00:00 2001 From: uazo Date: Mon, 26 Apr 2021 13:28:24 +0000 -Subject: Add AllowUserCertificates flag +Subject: [PATCH 130/192] Add AllowUserCertificates flag Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 3 +++ - .../chromium/chrome/browser/app/flags/ChromeCachedFlags.java | 1 + chrome/browser/about_flags.cc | 4 ++++ chrome/browser/flag_descriptions.cc | 5 +++++ chrome/browser/flag_descriptions.h | 3 +++ chrome/browser/flags/android/chrome_feature_list.cc | 5 +++++ chrome/browser/flags/android/chrome_feature_list.h | 1 + - .../chromium/chrome/browser/flags/CachedFeatureFlags.java | 1 + - .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 3 +++ + .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 4 ++++ net/android/java/src/org/chromium/net/X509Util.java | 5 +++++ - 10 files changed, 31 insertions(+) + 8 files changed, 30 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +index b055fe5329377..29470425403e0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -226,6 +226,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -231,6 +231,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,32 +28,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -951,6 +952,8 @@ public abstract class ChromeActivity - UpdateMenuItemHelper.getInstance().onStart(); +@@ -973,6 +974,8 @@ public abstract class ChromeActivity + super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(); ChromeCachedFlags.getInstance().cacheNativeFlags(); + X509Util.AllowUserCertificates = ChromeFeatureList.isEnabled( + ChromeFeatureList.ALLOW_USER_CERTIFICATES); - OfflineIndicatorController.initialize(); // postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(), -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java -@@ -78,6 +78,7 @@ public class ChromeCachedFlags { - add(ChromeFeatureList.sAndroidAuxiliarySearch); - add(ChromeFeatureList.sAnonymousUpdateChecks); - add(ChromeFeatureList.sAppMenuMobileSiteOption); -+ add(ChromeFeatureList.sAllowUserCertificates); - add(ChromeFeatureList.sBackGestureRefactorAndroid); - add(ChromeFeatureList.sCctBrandTransparency); - add(ChromeFeatureList.sCctIncognito); + // #onPageLoadFinished() and #onCrash(). If we are not actively loading a tab (e.g. diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index c0a1b31295fdb..4a0b8ff904c15 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8830,6 +8830,10 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(features::kWin10TabSearchCaptionButton)}, - #endif // BUILDFLAG(IS_WIN) +@@ -9188,6 +9188,10 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kHttpsUpgradesDescription, kOsDesktop | kOsAndroid, + FEATURE_VALUE_TYPE(features::kHttpsUpgrades)}, + {"allow-user-certificates", + flag_descriptions::kAllowUserCertificatesName, @@ -63,9 +53,10 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsName, flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsDescription, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 425a6ddaa75ed..9961b08c2e5a8 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -13,6 +13,11 @@ +@@ -16,6 +16,11 @@ namespace flag_descriptions { @@ -78,9 +69,10 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kAccelerated2dCanvasDescription[] = "Enables the use of the GPU to perform 2d canvas rendering instead of " diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 9625553e578fb..992e8dcc0d6c4 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -40,6 +40,9 @@ namespace flag_descriptions { +@@ -42,6 +42,9 @@ namespace flag_descriptions { // Cross-platform ------------------------------------------------------------- @@ -91,19 +83,20 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kAccelerated2dCanvasDescription[]; diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc +index 68ec6f5c77d55..b7c3b47e7fab2 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -148,6 +148,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &feed::kFeedNoViewCache, - &feed::kFeedReplaceAll, +@@ -142,6 +142,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &feed::kFeedBoCSigninInterstitial, + &feed::kFeedUserInteractionReliabilityReport, &feed::kInterestFeedContentSuggestions, + &kAllowUserCertificates, - &feed::kInterestFeedV1ClicksAndViewsConditionalUpload, &feed::kInterestFeedV2, &feed::kInterestFeedV2Autoplay, -@@ -468,6 +469,10 @@ BASE_FEATURE(kAllowNewIncognitoTabIntents, - "AllowNewIncognitoTabIntents", - base::FEATURE_ENABLED_BY_DEFAULT); + &feed::kInterestFeedV2Hearts, +@@ -458,6 +459,10 @@ BASE_FEATURE(kSearchReadyOmniboxFeature, + "SearchReadyOmnibox", + base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kAllowUserCertificates, + "AllowUserCertificates", @@ -113,52 +106,52 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse "FocusOmniboxInIncognitoTabIntents", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h +index b4d994655a6bd..d37e3e41ba30a 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -17,6 +17,7 @@ BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbar); - BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2); +@@ -20,6 +20,7 @@ BASE_DECLARE_FEATURE(kAdaptiveButtonInTopToolbarCustomizationV2); BASE_DECLARE_FEATURE(kAddToHomescreenIPH); BASE_DECLARE_FEATURE(kAllowNewIncognitoTabIntents); + BASE_DECLARE_FEATURE(kAndroidAppIntegration); +BASE_DECLARE_FEATURE(kAllowUserCertificates); - BASE_DECLARE_FEATURE(kAndroidScrollOptimizations); + BASE_DECLARE_FEATURE(kAndroidAppIntegrationSafeSearch); BASE_DECLARE_FEATURE(kAndroidSearchEngineChoiceNotification); - BASE_DECLARE_FEATURE(kAssistantConsentModal); -diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java ---- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java -+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java -@@ -50,6 +50,7 @@ public class CachedFeatureFlags { - ImmutableMap.builder() - .put(ChromeFeatureList.ANONYMOUS_UPDATE_CHECKS, true) - .put(ChromeFeatureList.APP_MENU_MOBILE_SITE_OPTION, false) -+ .put(ChromeFeatureList.ALLOW_USER_CERTIFICATES, false) - .put(ChromeFeatureList.BACK_GESTURE_REFACTOR, false) - .put(ChromeFeatureList.CCT_BRAND_TRANSPARENCY, false) - .put(ChromeFeatureList.CCT_INCOGNITO, true) + BASE_DECLARE_FEATURE(kAndroidImprovedBookmarks); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +index b748aa6f4d7b6..5e9a79513b9a6 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -193,6 +193,7 @@ public abstract class ChromeFeatureList { +@@ -98,6 +98,7 @@ public abstract class ChromeFeatureList { } /* Alphabetical: */ + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; - public static final String ABOUT_THIS_SITE_BANNER = "AboutThisSiteBanner"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar"; - public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = -@@ -648,6 +649,8 @@ public abstract class ChromeFeatureList { - public static final String FEED_REPLACE_ALL = "FeedReplaceAll"; + public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = + "AdaptiveButtonInTopToolbarTranslate"; +@@ -499,6 +500,8 @@ public abstract class ChromeFeatureList { + public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting"; /* Alphabetical: */ + public static final CachedFlag sAllowUserCertificates = + new CachedFlag(ALLOW_USER_CERTIFICATES, false); - public static final CachedFlag sAndroidAuxiliarySearch = - new CachedFlag(OMNIBOX_ANDROID_AUXILIARY_SEARCH, false); - public static final CachedFlag sAnonymousUpdateChecks = + public static final CachedFlag sAppMenuMobileSiteOption = + new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false); + public static final CachedFlag sBackGestureActivityTabProvider = +@@ -622,6 +625,7 @@ public abstract class ChromeFeatureList { + + public static final List sFlagsCachedFullBrowser = List.of( + // clang-format off ++ sAllowUserCertificates, + sAppMenuMobileSiteOption, + sBackGestureActivityTabProvider, + sBackGestureRefactorActivityAndroid, diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java +index 2d1340a43c36e..7b6ce578c3eef 100644 --- a/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java -@@ -437,6 +437,8 @@ public class X509Util { - return false; +@@ -545,6 +545,8 @@ public class X509Util { + return userRootBytes.toArray(new byte[0][]); } + public static boolean AllowUserCertificates = false; @@ -166,7 +159,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain, String authType, String host) -@@ -517,6 +519,9 @@ public class X509Util { +@@ -631,6 +633,9 @@ public class X509Util { isIssuedByKnownRoot = isKnownRoot(root); } @@ -176,5 +169,6 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK, isIssuedByKnownRoot, verifiedChain); } --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/bromite/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index 34e2dfec..9c12f1ce 100644 --- a/bromite/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch +++ b/bromite/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch @@ -1,6 +1,7 @@ +From 5580c3b75933c9ac62c21f19fe63b579b587be5e Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 9 Mar 2021 19:43:00 +0100 -Subject: Add Alt+D hotkey to focus address bar +Subject: [PATCH 128/192] Add Alt+D hotkey to focus address bar License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -8,9 +9,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 1 file changed, 2 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +index 73aec26a909ab..c970a8f286c5f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -155,6 +155,8 @@ public class KeyboardShortcuts { +@@ -151,6 +151,8 @@ public class KeyboardShortcuts { KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON); addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar, KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON); @@ -19,5 +21,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu shortcutGroups.add(chromeFeatureShortcutGroup); KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup( --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-DuckDuckGo-Lite-search-engine.patch b/bromite/build/patches/Add-DuckDuckGo-Lite-search-engine.patch index ccfef6ed..6747839b 100644 --- a/bromite/build/patches/Add-DuckDuckGo-Lite-search-engine.patch +++ b/bromite/build/patches/Add-DuckDuckGo-Lite-search-engine.patch @@ -1,15 +1,17 @@ +From cf7f684447e3944efb1c65e65144d62c94d5f589 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Thu, 12 Oct 2017 11:06:18 +0200 -Subject: Add DuckDuckGo Lite search engine +Subject: [PATCH 048/192] Add DuckDuckGo Lite search engine License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../search_engines/prepopulated_engines.json | 10 + .../search_engines/search_engine_type.h | 1 + - .../template_url_prepopulate_data.cc | 202 +++++++++--------- - 3 files changed, 112 insertions(+), 101 deletions(-) + .../template_url_prepopulate_data.cc | 184 +++++++++--------- + 3 files changed, 103 insertions(+), 92 deletions(-) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json +index 31042adbe1137..474c5cf13eac3 100644 --- a/components/search_engines/prepopulated_engines.json +++ b/components/search_engines/prepopulated_engines.json @@ -102,6 +102,16 @@ @@ -30,6 +32,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "name": "Ecosia", "keyword": "ecosia.org", diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h +index b77ce20c6b13c..4942bba7c6e8c 100644 --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h @@ -79,6 +79,7 @@ enum SearchEngineType { @@ -41,6 +44,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ 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 +index 565245bfe88b6..4120aa5f41550 100644 --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc @@ -42,7 +42,7 @@ const PrepopulatedEngine* const engines_AE[] = { @@ -49,16 +53,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &ecosia, - }; - -@@ -51,7 +51,7 @@ const PrepopulatedEngine* const engines_AL[] = { - &googleen, &google, - &bing, - &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &yandex_com, + &yandex_ru, }; @@ -60,7 +60,7 @@ const PrepopulatedEngine* const engines_AR[] = { @@ -74,9 +69,9 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon const PrepopulatedEngine* const engines_AT[] = { &googleen, &google, &bing, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &yahoo_at, +- &yahoo_at, ++ &yahoo_at, &duckduckgo_light, + &duckduckgo, &ecosia, }; @@ -78,7 +78,7 @@ const PrepopulatedEngine* const engines_AU[] = { @@ -121,7 +116,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &yandex_com, + &ecosia, }; @@ -123,7 +123,7 @@ const PrepopulatedEngine* const engines_BI[] = { @@ -157,7 +152,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo_br, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &ecosia, + &yandex_com, }; @@ -160,7 +160,7 @@ const PrepopulatedEngine* const engines_BY[] = { @@ -169,15 +164,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Belize -@@ -168,7 +168,7 @@ const PrepopulatedEngine* const engines_BZ[] = { - &googleen, &google, - &bing, - &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &ecosia, - }; - @@ -177,7 +177,7 @@ const PrepopulatedEngine* const engines_CA[] = { &googleen, &google, &bing, @@ -193,8 +179,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &bing, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &ecosia, &yahoo_ch, + &ecosia, }; @@ -195,7 +195,7 @@ const PrepopulatedEngine* const engines_CL[] = { &googleen, &google, @@ -208,9 +194,9 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon @@ -214,7 +214,7 @@ const PrepopulatedEngine* const engines_CO[] = { &bing, &yahoo_co, - &ecosia, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, +- &ecosia, ++ &ecosia, &duckduckgo_light, }; // Costa Rica @@ -235,10 +221,10 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon @@ -240,7 +240,7 @@ const PrepopulatedEngine* const engines_DE[] = { &googleen, &google, &bing, - &ecosia, + &yahoo_de, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &yahoo_de, + &ecosia, }; @@ -249,7 +249,7 @@ const PrepopulatedEngine* const engines_DK[] = { @@ -268,24 +254,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; // Ecuador -@@ -277,7 +277,7 @@ const PrepopulatedEngine* const engines_EC[] = { - &bing, - &yahoo, - &ecosia, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - }; - - // Estonia -@@ -285,7 +285,7 @@ const PrepopulatedEngine* const engines_EE[] = { - &googleen, &google, - &bing, - &yandex_ru, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &yahoo, - }; - @@ -295,7 +295,7 @@ const PrepopulatedEngine* const engines_EG[] = { &bing, &yahoo, @@ -313,15 +281,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yandex_ru, }; -@@ -321,7 +321,7 @@ const PrepopulatedEngine* const engines_FO[] = { - &googleen, &google, - &bing, - &yahoo_dk, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &ecosia, - }; - @@ -339,7 +339,7 @@ const PrepopulatedEngine* const engines_GB[] = { &googleen, &google, &bing, @@ -350,11 +309,11 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; @@ -367,7 +367,7 @@ const PrepopulatedEngine* const engines_HK[] = { - &yahoo_hk, &bing, + &yahoo_hk, &baidu, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, +- &so_360, ++ &so_360, &duckduckgo_light, }; // Honduras @@ -367,15 +326,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &ecosia, }; -@@ -384,7 +384,7 @@ const PrepopulatedEngine* const engines_HR[] = { - &googleen, &google, - &bing, - &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &ecosia, - }; - @@ -393,7 +393,7 @@ const PrepopulatedEngine* const engines_HU[] = { &googleen, &google, &bing, @@ -385,15 +335,15 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yandex_com, }; -@@ -403,7 +403,7 @@ const PrepopulatedEngine* const engines_ID[] = { - &yahoo_id, +@@ -402,7 +402,7 @@ const PrepopulatedEngine* const engines_ID[] = { + &googleen, &google, &bing, - &yandex_com, + &yahoo_id, - &duckduckgo, + &duckduckgo, &duckduckgo_light, + &yandex_com, }; - // Ireland @@ -411,7 +411,7 @@ const PrepopulatedEngine* const engines_IE[] = { &googleen, &google, &bing, @@ -425,17 +375,17 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &bing, &yahoo, &yandex_tr, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, +- &petal_search, ++ &petal_search, &duckduckgo_light, }; // Iran @@ -448,14 +448,14 @@ const PrepopulatedEngine* const engines_IR[] = { &bing, &yahoo, - &ask, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, + &duckduckgo, +- &ask, ++ &ask, &duckduckgo_light, }; // Iceland @@ -465,19 +415,10 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &ecosia, }; -@@ -483,7 +483,7 @@ const PrepopulatedEngine* const engines_JO[] = { - &googleen, &google, - &bing, - &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &yandex_com, - }; - @@ -492,7 +492,7 @@ const PrepopulatedEngine* const engines_JP[] = { &googleen, &google, - &yahoo_jp, &bing, + &yahoo_jp, - &duckduckgo, + &duckduckgo, &duckduckgo_light, &baidu, @@ -488,15 +429,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &bing, &yahoo, - &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &ecosia, - }; - -@@ -519,7 +519,7 @@ const PrepopulatedEngine* const engines_KW[] = { - &googleen, &google, - &bing, - &yahoo, -- &duckduckgo, + &duckduckgo, &duckduckgo_light, &yandex_com, }; @@ -531,10 +463,10 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon @@ -555,7 +555,7 @@ const PrepopulatedEngine* const engines_LT[] = { &googleen, &google, &bing, - &yahoo, + &yandex_ru, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &yandex_ru, + &yahoo, }; @@ -563,7 +563,7 @@ const PrepopulatedEngine* const engines_LT[] = { @@ -558,7 +490,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon @@ -583,7 +583,7 @@ const PrepopulatedEngine* const engines_LY[] = { &bing, &yahoo, - &yandex_com, + &yandex_tr, - &duckduckgo, + &duckduckgo, &duckduckgo_light, }; @@ -576,15 +508,15 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon const PrepopulatedEngine* const engines_MC[] = { &googleen, &google, &bing, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &yahoo_fr, - &ecosia, +- &yahoo_fr, ++ &yahoo_fr, &duckduckgo_light, + &duckduckgo, + &qwant, }; @@ -619,7 +619,7 @@ const PrepopulatedEngine* const engines_ME[] = { &bing, - &yahoo, &yandex_ru, + &yahoo, - &duckduckgo, + &duckduckgo, &duckduckgo_light, }; @@ -596,7 +528,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &yandex_ru, + &yandex_com, }; @@ -636,7 +636,7 @@ const PrepopulatedEngine* const engines_MX[] = { @@ -632,7 +564,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo_nl, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &ecosia, + &yandex_ru, }; @@ -672,7 +672,7 @@ const PrepopulatedEngine* const engines_NO[] = { @@ -653,15 +585,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &ecosia, }; -@@ -690,7 +690,7 @@ const PrepopulatedEngine* const engines_OM[] = { - &googleen, &google, - &bing, - &yahoo, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &petal_search, - }; - @@ -699,7 +699,7 @@ const PrepopulatedEngine* const engines_PA[] = { &googleen, &google, &bing, @@ -682,7 +605,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Philippines @@ -718,7 +718,7 @@ const PrepopulatedEngine* const engines_PH[] = { &bing, - &yahoo, + &yahoo_ph, &ecosia, - &duckduckgo, + &duckduckgo, &duckduckgo_light, @@ -762,11 +685,11 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon }; @@ -799,7 +799,7 @@ const PrepopulatedEngine* const engines_RU[] = { - &yandex_ru, - &mail_ru, + &google, + &duckduckgo, &bing, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, +- &mail_ru, ++ &mail_ru, &duckduckgo_light, }; // Rwanda @@ -794,16 +717,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo_se, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &ecosia, + &yandex_ru, }; @@ -834,7 +834,7 @@ const PrepopulatedEngine* const engines_SG[] = { &googleen, &google, &bing, &yahoo_sg, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &baidu, +- &baidu, ++ &baidu, &duckduckgo_light, + &duckduckgo, }; @@ -842,7 +842,7 @@ const PrepopulatedEngine* const engines_SG[] = { @@ -822,7 +745,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &duckduckgo, + &duckduckgo, &duckduckgo_light, &yahoo, - &yandex_com, + &yandex_ru, }; @@ -861,7 +861,7 @@ const PrepopulatedEngine* const engines_SV[] = { &googleen, &google, @@ -835,8 +758,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon @@ -871,7 +871,7 @@ const PrepopulatedEngine* const engines_SY[] = { &bing, + &yandex_ru, &yahoo, - &yandex_com, - &duckduckgo, + &duckduckgo, &duckduckgo_light, }; @@ -866,14 +789,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &ecosia, + &yandex_com, }; -@@ -916,7 +916,7 @@ const PrepopulatedEngine* const engines_TW[] = { +@@ -915,8 +915,8 @@ const PrepopulatedEngine* const engines_TW[] = { + &googleen, &google, &yahoo_tw, &bing, - &baidu, +- &baidu, - &duckduckgo, ++ &baidu, &duckduckgo_light, + &duckduckgo, &duckduckgo_light, }; @@ -884,16 +809,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &yahoo, - &duckduckgo, + &duckduckgo, &duckduckgo_light, - &baidu, - }; - -@@ -933,7 +933,7 @@ const PrepopulatedEngine* const engines_UA[] = { - &googleen, &google, - &yandex_ua, - &bing, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &yahoo, + &ecosia, }; @@ -942,7 +942,7 @@ const PrepopulatedEngine* const engines_US[] = { @@ -914,21 +830,14 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &ecosia, }; -@@ -960,7 +960,7 @@ const PrepopulatedEngine* const engines_VE[] = { +@@ -978,8 +978,8 @@ const PrepopulatedEngine* const engines_YE[] = { &googleen, &google, - &bing, - &yahoo_es, -- &duckduckgo, -+ &duckduckgo, &duckduckgo_light, - &ecosia, - }; - -@@ -979,7 +979,7 @@ const PrepopulatedEngine* const engines_YE[] = { &bing, &yahoo, - &yandex_com, - &duckduckgo, +- &yandex_com, + &duckduckgo, &duckduckgo_light, ++ &yandex_com, &duckduckgo_light, }; // South Africa @@ -950,5 +859,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &ecosia, }; --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-English-only-search-engine.patch b/bromite/build/patches/Add-English-only-search-engine.patch index 178432f1..ab66279f 100644 --- a/bromite/build/patches/Add-English-only-search-engine.patch +++ b/bromite/build/patches/Add-English-only-search-engine.patch @@ -1,6 +1,7 @@ +From ef9990665f73acb206e2b14d1f41e5d69f841013 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 11 Dec 2017 22:42:11 +0100 -Subject: Add English-only search engine +Subject: [PATCH 047/192] 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. @@ -13,9 +14,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 3 files changed, 130 insertions(+), 108 deletions(-) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json +index cdfa06094cfcd..31042adbe1137 100644 --- a/components/search_engines/prepopulated_engines.json +++ b/components/search_engines/prepopulated_engines.json -@@ -137,6 +137,27 @@ +@@ -141,6 +141,27 @@ "id": 1 }, @@ -44,6 +46,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "name": "@MAIL.RU", "keyword": "mail.ru", diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h +index ab078967ce677..b77ce20c6b13c 100644 --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h @@ -78,6 +78,7 @@ enum SearchEngineType { @@ -55,6 +58,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ 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 +index fb459bc4dfedb..565245bfe88b6 100644 --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc @@ -29,7 +29,7 @@ namespace { @@ -100,8 +104,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &duckduckgo, &yahoo_at, + &duckduckgo, @@ -75,7 +75,7 @@ const PrepopulatedEngine* const engines_AT[] = { // Australia @@ -218,7 +222,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &duckduckgo, - &ecosia, + &yahoo_ch, @@ -192,7 +192,7 @@ const PrepopulatedEngine* const engines_CH[] = { // Chile @@ -228,13 +232,14 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &bing, &yahoo_cl, &duckduckgo, -@@ -204,13 +204,13 @@ const PrepopulatedEngine* const engines_CN[] = { - &sogou, +@@ -203,14 +203,14 @@ const PrepopulatedEngine* const engines_CL[] = { + const PrepopulatedEngine* const engines_CN[] = { &baidu, &bing, -- &google, -+ &googleen, &google, +- &sogou, ++ &googleen, &sogou, &so_360, + &google, }; // Colombia @@ -243,7 +248,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo_co, - &ecosia, + &duckduckgo, @@ -219,7 +219,7 @@ const PrepopulatedEngine* const engines_CO[] = { // Costa Rica @@ -269,7 +274,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &ecosia, + &yahoo_de, &duckduckgo, @@ -246,7 +246,7 @@ const PrepopulatedEngine* const engines_DE[] = { @@ -305,7 +310,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &yahoo, + &yahoo_es, &ecosia, @@ -282,7 +282,7 @@ const PrepopulatedEngine* const engines_EC[] = { @@ -350,7 +355,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &yahoo_dk, + &yahoo_uk, &duckduckgo, @@ -327,7 +327,7 @@ const PrepopulatedEngine* const engines_FO[] = { @@ -394,8 +399,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon const PrepopulatedEngine* const engines_HK[] = { - &google, + &googleen, &google, - &yahoo_hk, &bing, + &yahoo_hk, &baidu, @@ -372,7 +372,7 @@ const PrepopulatedEngine* const engines_HK[] = { @@ -413,8 +418,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &yahoo, &duckduckgo, + &yahoo, @@ -390,7 +390,7 @@ const PrepopulatedEngine* const engines_HR[] = { // Hungary @@ -430,9 +435,9 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon const PrepopulatedEngine* const engines_ID[] = { - &google, + &googleen, &google, - &yahoo_id, &bing, - &yandex_com, + &yahoo_id, + &duckduckgo, @@ -408,7 +408,7 @@ const PrepopulatedEngine* const engines_ID[] = { // Ireland @@ -477,7 +482,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo, - &ask, + &duckduckgo, @@ -453,7 +453,7 @@ const PrepopulatedEngine* const engines_IR[] = { // Iceland @@ -513,15 +518,15 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo, - &duckduckgo, + &petal_search, @@ -489,7 +489,7 @@ const PrepopulatedEngine* const engines_JO[] = { // Japan const PrepopulatedEngine* const engines_JP[] = { - &google, + &googleen, &google, - &yahoo_jp, &bing, + &yahoo_jp, &duckduckgo, @@ -498,7 +498,7 @@ const PrepopulatedEngine* const engines_JP[] = { @@ -539,8 +544,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &naver, - &daum, &bing, + &daum, @@ -516,7 +516,7 @@ const PrepopulatedEngine* const engines_KR[] = { // Kuwait @@ -584,7 +589,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &yahoo, + &yandex_ru, &duckduckgo, @@ -561,7 +561,7 @@ const PrepopulatedEngine* const engines_LT[] = { @@ -612,7 +617,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo, - &yandex_com, + &yandex_tr, @@ -588,7 +588,7 @@ const PrepopulatedEngine* const engines_LY[] = { // Morocco @@ -629,8 +634,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &duckduckgo, &yahoo_fr, + &duckduckgo, @@ -606,7 +606,7 @@ const PrepopulatedEngine* const engines_MC[] = { // Moldova @@ -647,8 +652,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &yahoo, &yandex_ru, + &yahoo, @@ -624,7 +624,7 @@ const PrepopulatedEngine* const engines_ME[] = { // Macedonia @@ -720,7 +725,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo, - &duckduckgo, + &petal_search, @@ -696,7 +696,7 @@ const PrepopulatedEngine* const engines_OM[] = { // Panama @@ -746,7 +751,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, - &yahoo, + &yahoo_ph, &ecosia, @@ -723,7 +723,7 @@ const PrepopulatedEngine* const engines_PH[] = { @@ -824,10 +829,10 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon // Russia const PrepopulatedEngine* const engines_RU[] = { -- &google, -+ &googleen, &google, - &yandex_ru, - &mail_ru, +- &yandex_ru, ++ &googleen, &yandex_ru, + &google, + &duckduckgo, &bing, @@ -804,7 +804,7 @@ const PrepopulatedEngine* const engines_RU[] = { @@ -864,7 +869,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo_sg, - &duckduckgo, + &baidu, @@ -840,7 +840,7 @@ const PrepopulatedEngine* const engines_SG[] = { // Slovenia @@ -899,8 +904,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &bing, + &yandex_ru, &yahoo, - &yandex_com, @@ -876,7 +876,7 @@ const PrepopulatedEngine* const engines_SY[] = { // Thailand @@ -909,7 +914,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo_th, - &yandex_ru, + &naver, @@ -885,7 +885,7 @@ const PrepopulatedEngine* const engines_TH[] = { // Tunisia @@ -961,7 +966,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon const PrepopulatedEngine* const engines_UA[] = { - &google, + &googleen, &google, - &yandex_ua, + &yandex_ru, &bing, &duckduckgo, @@ -939,7 +939,7 @@ const PrepopulatedEngine* const engines_UA[] = { @@ -998,8 +1003,8 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon - &google, + &googleen, &google, &coccoc, - &yahoo, &bing, + &yahoo, @@ -975,7 +975,7 @@ const PrepopulatedEngine* const engines_VN[] = { // Yemen @@ -1008,7 +1013,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon + &googleen, &google, &bing, &yahoo, - &yandex_com, + &duckduckgo, @@ -984,7 +984,7 @@ const PrepopulatedEngine* const engines_YE[] = { // South Africa @@ -1027,5 +1032,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon &bing, &yahoo, &duckduckgo, --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-IsCleartextPermitted-flag.patch b/bromite/build/patches/Add-IsCleartextPermitted-flag.patch index 105ca155..3320722a 100644 --- a/bromite/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/bromite/build/patches/Add-IsCleartextPermitted-flag.patch @@ -1,6 +1,7 @@ +From 52f0e8af61f63f1ab36426800e85c76845c5c4f8 Mon Sep 17 00:00:00 2001 From: uazo Date: Mon, 26 Apr 2021 15:04:11 +0000 -Subject: Add IsCleartextPermitted flag +Subject: [PATCH 131/192] Add IsCleartextPermitted flag Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html @@ -14,9 +15,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 6 files changed, 21 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 4a0b8ff904c15..ff9e6524fee9e 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9070,6 +9070,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9399,6 +9399,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kRequestDesktopSiteExceptionsName, flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)}, @@ -28,11 +30,12 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc {"export-bookmarks-use-saf", diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 9961b08c2e5a8..ee6d74cab2cc6 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1710,6 +1710,10 @@ const char kHttpsOnlyModeDescription[] = - "Adds a setting under chrome://settings/security to opt-in to HTTPS-First " - "Mode."; +@@ -1915,6 +1915,10 @@ const char kHttpsUpgradesDescription[] = + "Enable automatically upgrading all top-level navigations to HTTPS with " + "fast fallback to HTTP."; +const char kIsCleartextPermittedName[] = "Allow cleartext traffic"; +const char kIsCleartextPermittedDescription[] = @@ -42,36 +45,39 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kIgnoreGpuBlocklistDescription[] = "Overrides the built-in software rendering list and enables " diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 992e8dcc0d6c4..9b1c41abe4d4f 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -960,6 +960,9 @@ extern const char kHideShelfControlsInTabletModeDescription[]; +@@ -1062,6 +1062,9 @@ extern const char kHiddenNetworkMigrationDescription[]; extern const char kHttpsOnlyModeName[]; extern const char kHttpsOnlyModeDescription[]; +extern const char kIsCleartextPermittedName[]; +extern const char kIsCleartextPermittedDescription[]; + - extern const char kIgnoreGpuBlocklistName[]; - extern const char kIgnoreGpuBlocklistDescription[]; + extern const char kHttpsFirstModeV2Name[]; + extern const char kHttpsFirstModeV2Description[]; diff --git a/net/base/features.cc b/net/base/features.cc +index 0de0f37320976..9626014381d5c 100644 --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -113,6 +113,10 @@ BASE_FEATURE(kPartitionNelAndReportingByNetworkIsolationKey, - "PartitionNelAndReportingByNetworkIsolationKey", // must be enabled - base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite +@@ -131,6 +131,10 @@ BASE_FEATURE(kEnableCrossSiteFlagNetworkIsolationKey, // must be + "EnableCrossSiteFlagNetworkIsolationKey", // disabled + base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite +BASE_FEATURE(kIsCleartextPermitted, + "IsCleartextPermitted", + base::FEATURE_ENABLED_BY_DEFAULT); + - BASE_FEATURE(kEnableDoubleKeyNetworkAnonymizationKey, - "EnableDoubleKeyNetworkAnonymizationKey", + BASE_FEATURE(kTLS13KeyUpdate, + "TLS13KeyUpdate", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/net/base/features.h b/net/base/features.h +index 388abda779470..f59980eae8f21 100644 --- a/net/base/features.h +++ b/net/base/features.h -@@ -29,6 +29,8 @@ NET_EXPORT BASE_DECLARE_FEATURE(kAvoidH2Reprioritization); +@@ -30,6 +30,8 @@ NET_EXPORT BASE_DECLARE_FEATURE(kAvoidH2Reprioritization); // origin requests are restricted to contain at most the source origin. NET_EXPORT BASE_DECLARE_FEATURE(kCapReferrerToOriginOnCrossOrigin); @@ -81,6 +87,7 @@ diff --git a/net/base/features.h b/net/base/features.h // ResolveContext::SecureTransactionTimeout(). NET_EXPORT BASE_DECLARE_FEATURE(kDnsTransactionDynamicTimeouts); diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc +index 0506d5e087b9c..7d226fddb4fd9 100644 --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc @@ -212,6 +212,10 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { @@ -94,5 +101,6 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque // Check whether the app allows cleartext traffic to this host, and return // ERR_CLEARTEXT_NOT_PERMITTED if not. if (request->context()->check_cleartext_permitted() && --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-a-proxy-configuration-page.patch b/bromite/build/patches/Add-a-proxy-configuration-page.patch index 9469d8f9..4425033d 100644 --- a/bromite/build/patches/Add-a-proxy-configuration-page.patch +++ b/bromite/build/patches/Add-a-proxy-configuration-page.patch @@ -1,6 +1,7 @@ +From c13cac36689b652e9f976d6489306ac4c37e4558 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Thu, 29 Mar 2018 00:43:32 +0200 -Subject: Add a proxy configuration page +Subject: [PATCH 066/192] Add a proxy configuration page Accessible from proxy settings and chrome://proxy Allows to use a PAC script URL, automatic configuration and explicit proxy settings. @@ -19,27 +20,27 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/privacy_preferences.xml | 4 + .../privacy/settings/PrivacySettings.java | 1 + .../chrome_autocomplete_provider_client.cc | 2 + - chrome/browser/browser_resources.grd | 6 + + chrome/browser/browser_resources.grd | 6 +- chrome/browser/net/proxy_service_factory.cc | 24 +- chrome/browser/net/proxy_service_factory.h | 3 + chrome/browser/prefs/browser_prefs.cc | 4 + .../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 | 267 +++++++++++ + chrome/browser/resources/proxy_config.html | 77 ++++ + chrome/browser/resources/proxy_config.js | 278 +++++++++++++ chrome/browser/ui/BUILD.gn | 2 + .../webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 418 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.cc | 393 ++++++++++++++++++ chrome/browser/ui/webui/proxy_config_ui.h | 31 ++ chrome/common/webui_url_constants.cc | 4 + chrome/common/webui_url_constants.h | 2 + - .../pref_proxy_config_tracker_impl.cc | 1 + + .../pref_proxy_config_tracker_impl.cc | 5 +- .../proxy_config/proxy_config_dictionary.cc | 30 +- .../proxy_config/proxy_config_dictionary.h | 7 +- .../proxy_config/proxy_policy_handler.cc | 2 +- net/proxy_resolution/proxy_config.cc | 52 ++- net/proxy_resolution/proxy_config.h | 3 + - 24 files changed, 996 insertions(+), 14 deletions(-) + 24 files changed, 982 insertions(+), 17 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 @@ -47,6 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html create mode 100644 chrome/browser/ui/webui/proxy_config_ui.h diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml +index ce68e038c7d31..9a30818faacaa 100644 --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml @@ -27,6 +27,9 @@ found in the LICENSE file. @@ -60,9 +62,10 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res 1200 200 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml +index 4c71a1e2ba2ab..68b5042d47935 100644 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -8,6 +8,10 @@ found in the LICENSE file. +@@ -9,6 +9,10 @@ found in the LICENSE file. @@ -74,20 +77,22 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi android:key="clear_browsing_data" android:title="@string/clear_browsing_data_title" diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +index 7ef15d2b6602e..bf1d9e1d63677 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -59,6 +59,7 @@ public class PrivacySettings - private static final String PREF_DO_NOT_TRACK = "do_not_track"; - private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; +@@ -82,6 +82,7 @@ public class PrivacySettings extends PreferenceFragmentCompat + private static final String PREF_SAFE_BROWSING = "safe_browsing"; + private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; + private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; - + private static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +index ed307f6c1c9f7..1437a1741f3a4 100644 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -284,6 +284,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -304,6 +304,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back( base::ASCIIToUTF16(chrome::kChromeUISettingsURL)); #endif @@ -97,22 +102,28 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc base::ASCIIToUTF16(chrome::kChromeUIVersionURL)); return builtins_to_provide; diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd +index 3b93dd29ebca0..431bba1dc42d6 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -81,6 +81,12 @@ - +@@ -284,11 +284,15 @@ + + - + + + + + -+ + + + +- + diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/proxy_service_factory.cc +index 281a393f03936..5dedebc3a9f16 100644 --- a/chrome/browser/net/proxy_service_factory.cc +++ b/chrome/browser/net/proxy_service_factory.cc @@ -6,6 +6,7 @@ @@ -120,7 +131,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr #include +#include "base/logging.h" - #include "base/threading/thread_task_runner_handle.h" + #include "base/task/single_thread_task_runner.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" @@ -13,6 +14,9 @@ @@ -165,6 +176,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr + registry->RegisterBooleanPref("proxy_migrated", false); +} diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/proxy_service_factory.h +index a5074896c5ebd..9d2060d09fca2 100644 --- a/chrome/browser/net/proxy_service_factory.h +++ b/chrome/browser/net/proxy_service_factory.h @@ -6,6 +6,7 @@ @@ -185,9 +197,10 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro // should be used for the system request context and the signin screen // (ChromeOS only). diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc +index a3de4152dfd4c..14d123fe4bc47 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -165,6 +165,8 @@ +@@ -175,6 +175,8 @@ #include "rlz/buildflags/buildflags.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -196,9 +209,9 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1013,6 +1015,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { - chrome::enterprise_util::RegisterLocalStatePrefs(registry); +@@ -1315,6 +1317,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); + domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); + ProxyServiceFactory::RegisterPrefs(registry); + @@ -206,9 +219,10 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse ExternalProtocolHandler::RegisterPrefs(registry); flags_ui::PrefServiceFlagsStorage::RegisterPrefs(registry); diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc +index dd4824764ecf6..03019827319af 100644 --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -159,7 +159,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { command_line()->GetSwitchValueASCII(switches::kProxyBypassList); SetValue(proxy_config::prefs::kProxy, base::Value(ProxyConfigDictionary::CreateFixedServers( @@ -219,6 +233,7 @@ diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/bro } diff --git a/chrome/browser/resources/proxy_config.css b/chrome/browser/resources/proxy_config.css new file mode 100644 +index 0000000000000..0ce4fc031fa12 --- /dev/null +++ b/chrome/browser/resources/proxy_config.css @@ -0,0 +1,61 @@ @@ -285,9 +300,10 @@ new file mode 100644 +} diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resources/proxy_config.html new file mode 100644 +index 0000000000000..71df46a98a601 --- /dev/null +++ b/chrome/browser/resources/proxy_config.html -@@ -0,0 +1,78 @@ +@@ -0,0 +1,77 @@ + + + @@ -301,7 +317,6 @@ new file mode 100644 + + + -+ + + + @@ -368,9 +383,10 @@ new file mode 100644 + diff --git a/chrome/browser/resources/proxy_config.js b/chrome/browser/resources/proxy_config.js new file mode 100644 +index 0000000000000..7f92b18dfff49 --- /dev/null +++ b/chrome/browser/resources/proxy_config.js -@@ -0,0 +1,267 @@ +@@ -0,0 +1,278 @@ +/* + This file is part of Bromite. + @@ -388,8 +404,7 @@ new file mode 100644 + along with Bromite. If not, see . +*/ + -+import {$} from 'chrome://resources/js/util.js'; -+import {addSingletonGetter} from 'chrome://resources/js/cr.m.js'; ++import {$} from 'chrome://resources/js/util_ts.js'; + +/** + * Main entry point called once the page has loaded. @@ -434,6 +449,18 @@ new file mode 100644 + var kIdFallbackProxies = 'fallback-proxies'; + + /** ++ * Adds a {@code getInstance} static method that always return the same ++ * instance object. ++ * @param {!Function} ctor The constructor for the class to add the static ++ * method to. ++ */ ++ function addSingletonGetter(ctor) { ++ ctor.getInstance = function() { ++ return ctor.instance_ || (ctor.instance_ = new ctor()); ++ }; ++ } ++ ++ /** + * @constructor + */ + function ProxyConfigView() { @@ -639,9 +666,10 @@ new file mode 100644 + return ProxyConfigView; +})(); diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn +index be74e41618d74..c8ef769387df2 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -285,6 +285,8 @@ static_library("ui") { +@@ -397,6 +397,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -651,9 +679,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/net_internals/net_internals_ui.h", "webui/ntp_tiles_internals_ui.cc", diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +index df4841449a99b..a3bca2f687432 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -60,6 +60,7 @@ +@@ -59,6 +59,7 @@ #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" @@ -661,7 +690,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/predictors/predictors_ui.h" #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h" #include "chrome/browser/ui/webui/signin_internals_ui.h" -@@ -795,6 +796,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -489,6 +490,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -672,9 +701,10 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom if (url.host_piece() == chrome::kChromeUINTPTilesInternalsHost) diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webui/proxy_config_ui.cc new file mode 100644 +index 0000000000000..e0269904b6dfe --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,418 @@ +@@ -0,0 +1,393 @@ +/* + This file is part of Bromite. + @@ -700,7 +730,6 @@ new file mode 100644 +#include +#include + -+#include "base/bind.h" +#include "base/command_line.h" +#include "base/lazy_instance.h" +#include "base/memory/ref_counted.h" @@ -732,16 +761,6 @@ new file mode 100644 + +namespace { + -+content::WebUIDataSource* CreateProxyConfigHTMLSource() { -+ content::WebUIDataSource* source = -+ content::WebUIDataSource::Create(chrome::kChromeUIProxyConfigHost); -+ -+ source->UseStringsJs(); -+ source->AddResourcePath("proxy_config.js", IDR_PROXY_CONFIG_JS); -+ source->SetDefaultResource(IDR_PROXY_CONFIG_HTML); -+ return source; -+} -+ +// This class receives javascript messages from the renderer. +// Note that the WebUI infrastructure runs on the UI thread, therefore all of +// this class's public methods are expected to run on the UI thread. @@ -775,13 +794,13 @@ new file mode 100644 + + private: + // Not owned. -+ PrefService *pref_service_; ++ raw_ptr pref_service_; + std::unique_ptr proxy_config_service_; + // Monitors global and Profile prefs related to proxy configuration. + std::unique_ptr pref_proxy_config_tracker_; + bool is_observing_; + -+ void encodeConfig(const net::ProxyConfig& config, base::DictionaryValue& state); ++ void encodeConfig(const net::ProxyConfig& config, base::Value::Dict& state); + + void apply(const net::ProxyConfig& config); + @@ -823,25 +842,25 @@ new file mode 100644 + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || + !BrowserThread::IsThreadInitialized(BrowserThread::UI)); + -+ base::DictionaryValue state; ++ base::Value::Dict state; + bool pending = false; + switch (availability) { + case net::ProxyConfigService::CONFIG_VALID: + encodeConfig(config.value(), state); + break; + case net::ProxyConfigService::CONFIG_UNSET: -+ state.SetPath({"config", "rules", "type"}, base::Value("none")); ++ state.SetByDottedPath("config.rules.type", base::Value("none")); + break; + case net::ProxyConfigService::CONFIG_PENDING: + //NOTE: this can only happen when triggered manually first time + pending = true; + break; + } -+ state.SetKey("pending", base::Value(pending)); ++ state.Set("pending", base::Value(pending)); + + // call Javascript function + web_ui()->CallJavascriptFunctionUnsafe("ProxyConfigView.getInstance().onProxyConfigChanged", -+ *state.CreateDeepCopy()); ++ state.Clone()); +} + +const std::string omitDirect(const std::string pacString) { @@ -851,19 +870,19 @@ new file mode 100644 + return pacString; +} + -+void ProxyConfigMessageHandler::encodeConfig(const net::ProxyConfig& config, base::DictionaryValue& state) { ++void ProxyConfigMessageHandler::encodeConfig(const net::ProxyConfig& config, base::Value::Dict& state) { + // when automatic settings are enabled they take precedence over manual settings + // automatic settings are either the "auto-detect" flag or the existance of a PAC URL + -+ state.SetPath({"config", "auto_detect"}, base::Value(config.auto_detect())); ++ state.SetByDottedPath("config.auto_detect", base::Value(config.auto_detect())); + + auto rules = config.proxy_rules(); + if (config.has_pac_url()) { -+ state.SetPath({"config", "pac_url"}, base::Value(config.pac_url().spec())); -+ state.SetPath({"config", "pac_mandatory"}, base::Value(config.pac_mandatory())); -+ state.SetPath({"config", "rules", "type"}, base::Value("none")); -+ state.SetPath({"config", "rules", "bypass_rules"}, base::Value(rules.bypass_rules.ToString())); -+ state.SetPath({"config", "rules", "reverse_bypass"}, base::Value(rules.reverse_bypass)); ++ state.SetByDottedPath("config.pac_url", base::Value(config.pac_url().spec())); ++ state.SetByDottedPath("config.pac_mandatory", base::Value(config.pac_mandatory())); ++ state.SetByDottedPath("config.rules.type", base::Value("none")); ++ state.SetByDottedPath("config.rules.bypass_rules", base::Value(rules.bypass_rules.ToString())); ++ state.SetByDottedPath("config.rules.reverse_bypass", base::Value(rules.reverse_bypass)); + return; + } + @@ -875,23 +894,23 @@ new file mode 100644 + case net::ProxyConfig::ProxyRules::Type::PROXY_LIST: + type = "list"; + -+ state.SetPath({"config", "rules", "single_proxies"}, base::Value(omitDirect(rules.single_proxies.ToPacString()))); ++ state.SetByDottedPath("config.rules.single_proxies", base::Value(omitDirect(rules.single_proxies.ToPacString()))); + break; + case net::ProxyConfig::ProxyRules::Type::PROXY_LIST_PER_SCHEME: + type = "list_per_scheme"; + -+ state.SetPath({"config", "rules", "proxies_for_http"}, base::Value(omitDirect(rules.proxies_for_http.ToPacString()))); -+ state.SetPath({"config", "rules", "proxies_for_https"}, base::Value(omitDirect(rules.proxies_for_https.ToPacString()))); -+ state.SetPath({"config", "rules", "proxies_for_ftp"}, base::Value(omitDirect(rules.proxies_for_ftp.ToPacString()))); -+ state.SetPath({"config", "rules", "fallback_proxies"}, base::Value(omitDirect(rules.fallback_proxies.ToPacString()))); ++ state.SetByDottedPath("config.rules.proxies_for_http", base::Value(omitDirect(rules.proxies_for_http.ToPacString()))); ++ state.SetByDottedPath("config.rules.proxies_for_https", base::Value(omitDirect(rules.proxies_for_https.ToPacString()))); ++ state.SetByDottedPath("config.rules.proxies_for_ftp", base::Value(omitDirect(rules.proxies_for_ftp.ToPacString()))); ++ state.SetByDottedPath("config.rules.fallback_proxies", base::Value(omitDirect(rules.fallback_proxies.ToPacString()))); + break; + default: + NOTREACHED(); + break; + } -+ state.SetPath({"config", "rules", "type"}, base::Value(type)); -+ state.SetPath({"config", "rules", "bypass_rules"}, base::Value(rules.bypass_rules.ToString())); -+ state.SetPath({"config", "rules", "reverse_bypass"}, base::Value(rules.reverse_bypass)); ++ state.SetByDottedPath("config.rules.type", base::Value(type)); ++ state.SetByDottedPath("config.rules.bypass_rules", base::Value(rules.bypass_rules.ToString())); ++ state.SetByDottedPath("config.rules.reverse_bypass", base::Value(rules.reverse_bypass)); +} + +ProxyConfigMessageHandler::~ProxyConfigMessageHandler() { @@ -961,77 +980,59 @@ new file mode 100644 + return; + } + -+ const base::DictionaryValue* config = nullptr; -+ if (!list[0].GetAsDictionary(&config)) -+ return; -+ -+ const base::Value *autoDetect = config->FindKeyOfType("auto_detect", base::Value::Type::BOOLEAN); -+ if (autoDetect == nullptr) -+ return; ++ const base::Value::Dict& config = list[0].GetDict(); + -+ if (autoDetect->GetBool()) { ++ if (config.FindBool("auto_detect").value_or(false)) { + apply(net::ProxyConfig::CreateAutoDetect()); + return; + } + -+ const base::Value *pacURL = config->FindKeyOfType("pac_url", base::Value::Type::STRING); -+ if (pacURL != nullptr) { -+ const base::Value *pacMandatory = config->FindKeyOfType("pac_mandatory", base::Value::Type::BOOLEAN); -+ if (pacMandatory == nullptr) -+ return; -+ auto proxyConfig = net::ProxyConfig::CreateFromCustomPacURL(GURL(pacURL->GetString())); -+ proxyConfig.set_pac_mandatory(pacMandatory->GetBool()); -+ ++ if (const std::string* pacURL = config.FindString("pac_url")) { ++ absl::optional pacMandatory = config.FindBool("pac_mandatory"); ++ auto proxyConfig = net::ProxyConfig::CreateFromCustomPacURL( ++ GURL(*pacURL)); ++ proxyConfig.set_pac_mandatory(pacMandatory.value_or(false)); + apply(proxyConfig); + return; + } + -+ const base::Value *rules = config->FindKeyOfType("rules", base::Value::Type::DICTIONARY); ++ const base::Value::Dict* rules = config.FindDict("rules"); + if (rules == nullptr) + return; + -+ const base::Value *type = rules->FindKeyOfType("type", base::Value::Type::STRING); -+ if (type == nullptr) -+ return; -+ + net::ProxyConfig proxyConfig; -+ + bool readBypass = false; + -+ auto t = type->GetString(); -+ if (t == "list") { -+ const base::Value *single_proxies = rules->FindKeyOfType("single_proxies", base::Value::Type::STRING); ++ const std::string* type = rules->FindString("type"); ++ if (type == nullptr) ++ return; ++ ++ if (*type == "list") { ++ const std::string* single_proxies = rules->FindString("single_proxies"); + if (single_proxies == nullptr) + return; + proxyConfig.proxy_rules().type = net::ProxyConfig::ProxyRules::Type::PROXY_LIST; -+ proxyConfig.proxy_rules().single_proxies.SetFromPacString(single_proxies->GetString()); ++ proxyConfig.proxy_rules().single_proxies.SetFromPacString(*single_proxies); + readBypass = true; -+ } else if (t == "list_per_scheme") { -+ const base::Value *http = rules->FindKeyOfType("proxies_for_http", base::Value::Type::STRING); -+ if (http == nullptr) -+ return; -+ -+ const base::Value *https = rules->FindKeyOfType("proxies_for_https", base::Value::Type::STRING); -+ if (https == nullptr) -+ return; -+ -+ const base::Value *ftp = rules->FindKeyOfType("proxies_for_ftp", base::Value::Type::STRING); -+ if (ftp == nullptr) -+ return; -+ -+ const base::Value *fallback = rules->FindKeyOfType("fallback_proxies", base::Value::Type::STRING); -+ if (fallback == nullptr) -+ return; ++ } else if (*type == "list_per_scheme") { ++ const std::string* http = rules->FindString("proxies_for_http"); ++ const std::string* https = rules->FindString("proxies_for_https"); ++ const std::string* ftp = rules->FindString("proxies_for_ftp"); ++ const std::string* fallback = rules->FindString("fallback_proxies"); + + proxyConfig.proxy_rules().type = net::ProxyConfig::ProxyRules::Type::PROXY_LIST_PER_SCHEME; -+ proxyConfig.proxy_rules().proxies_for_http.SetFromPacString(http->GetString()); -+ proxyConfig.proxy_rules().proxies_for_https.SetFromPacString(https->GetString()); -+ proxyConfig.proxy_rules().proxies_for_ftp.SetFromPacString(ftp->GetString()); -+ proxyConfig.proxy_rules().fallback_proxies.SetFromPacString(fallback->GetString()); ++ if (http) ++ proxyConfig.proxy_rules().proxies_for_http.SetFromPacString(*http); ++ if (https) ++ proxyConfig.proxy_rules().proxies_for_https.SetFromPacString(*https); ++ if (ftp) ++ proxyConfig.proxy_rules().proxies_for_ftp.SetFromPacString(*ftp); ++ if (fallback) ++ proxyConfig.proxy_rules().fallback_proxies.SetFromPacString(*fallback); + readBypass = true; -+ } else if (t == "direct") { ++ } else if (*type == "direct") { + proxyConfig.proxy_rules().type = net::ProxyConfig::ProxyRules::Type::EMPTY; -+ } else if (t == "none") { ++ } else if (*type == "none") { + base::Value::List empty; + OnClear(empty); + return; @@ -1043,16 +1044,14 @@ new file mode 100644 + + // bypass rules and reverse flag are common to both list types of proxy rules + if (readBypass) { -+ const base::Value *bypass_rules = rules->FindKeyOfType("bypass_rules", base::Value::Type::STRING); ++ const std::string* bypass_rules = rules->FindString("bypass_rules"); + if (bypass_rules == nullptr) + return; + -+ const base::Value *reverse_bypass = rules->FindKeyOfType("reverse_bypass", base::Value::Type::BOOLEAN); -+ if (reverse_bypass == nullptr) -+ return; ++ absl::optional reverse_bypass = rules->FindBool("reverse_bypass"); + -+ proxyConfig.proxy_rules().bypass_rules.ParseFromString(bypass_rules->GetString()); -+ proxyConfig.proxy_rules().reverse_bypass = reverse_bypass->GetBool(); ++ proxyConfig.proxy_rules().bypass_rules.ParseFromString(*bypass_rules); ++ proxyConfig.proxy_rules().reverse_bypass = reverse_bypass.value_or(false); + } + + apply(proxyConfig); @@ -1091,10 +1090,17 @@ new file mode 100644 + web_ui->AddMessageHandler(std::make_unique(profile)); + + // Set up the chrome://proxy/ source. -+ content::WebUIDataSource::Add(profile, CreateProxyConfigHTMLSource()); ++ content::WebUIDataSource* source = ++ content::WebUIDataSource::CreateAndAdd(web_ui->GetWebContents()->GetBrowserContext(), ++ chrome::kChromeUIProxyConfigHost); ++ ++ source->UseStringsJs(); ++ source->AddResourcePath("proxy_config.js", IDR_PROXY_CONFIG_JS); ++ source->SetDefaultResource(IDR_PROXY_CONFIG_HTML); +} diff --git a/chrome/browser/ui/webui/proxy_config_ui.h b/chrome/browser/ui/webui/proxy_config_ui.h new file mode 100644 +index 0000000000000..04ef3f7c1fb6d --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.h @@ -0,0 +1,31 @@ @@ -1130,9 +1136,10 @@ new file mode 100644 + +#endif // CHROME_BROWSER_UI_WEBUI_PROXY_CONFIG_UI_H_ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc +index 84a868b10b7c4..fc0cd0df24b9b 100644 --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -47,6 +47,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert"; +@@ -50,6 +50,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert"; const char kChromeUICertificateViewerURL[] = "chrome://view-cert/"; const char kChromeUIChromeSigninHost[] = "chrome-signin"; const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/"; @@ -1141,7 +1148,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUIChromeURLsHost[] = "chrome-urls"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIComponentsHost[] = "components"; -@@ -439,6 +441,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { +@@ -431,6 +433,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1149,7 +1156,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -704,6 +707,7 @@ const char* const kChromeHostURLs[] = { +@@ -730,6 +733,7 @@ const char* const kChromeHostURLs[] = { #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS_ASH) kChromeUIAppLauncherPageHost, @@ -1158,21 +1165,40 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIBookmarksHost, kChromeUIDownloadsHost, diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h +index 66248d78221a7..3d07abca616fd 100644 --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -134,6 +134,8 @@ extern const char kChromeUIMetricsInternalsHost[]; - extern const char kChromeUINTPTilesInternalsHost[]; +@@ -136,6 +136,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; + extern const char kChromeUINetExportURL[]; +extern const char kChromeUIProxyConfigHost[]; +extern const char kChromeUIProxyConfigURL[]; extern const char kChromeUINetInternalsHost[]; extern const char kChromeUINetInternalsURL[]; extern const char kChromeUINewTabHost[]; diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc +index 6fb7e5f3ae652..9eb0e3fcdfe31 100644 --- a/components/proxy_config/pref_proxy_config_tracker_impl.cc +++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc -@@ -380,6 +380,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( +@@ -244,14 +244,14 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig( + // static + void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { + registry->RegisterDictionaryPref(proxy_config::prefs::kProxy, +- ProxyConfigDictionary::CreateSystem()); ++ ProxyConfigDictionary::CreateDirect()); + } + + // static + void PrefProxyConfigTrackerImpl::RegisterProfilePrefs( + PrefRegistrySimple* registry) { + registry->RegisterDictionaryPref(proxy_config::prefs::kProxy, +- ProxyConfigDictionary::CreateSystem()); ++ ProxyConfigDictionary::CreateDirect()); + registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false); + } + +@@ -384,6 +384,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( if (proxy_dict.GetBypassList(&proxy_bypass)) { proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass); } @@ -1181,6 +1207,7 @@ diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/compone proxy_config, kSettingsProxyConfigTrafficAnnotation); return true; diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/proxy_config/proxy_config_dictionary.cc +index e2c6ce30f8e6e..ba6d314afeca6 100644 --- a/components/proxy_config/proxy_config_dictionary.cc +++ b/components/proxy_config/proxy_config_dictionary.cc @@ -30,6 +30,8 @@ const char kProxyPacMandatory[] = "pac_mandatory"; @@ -1276,6 +1303,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro } diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/proxy_config/proxy_config_dictionary.h +index 6f65a50e97f1f..76a439905877d 100644 --- a/components/proxy_config/proxy_config_dictionary.h +++ b/components/proxy_config/proxy_config_dictionary.h @@ -42,6 +42,7 @@ class PROXY_CONFIG_EXPORT ProxyConfigDictionary { @@ -1307,9 +1335,10 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox base::Value::Dict dict_; }; diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc +index 5976751880f5d..4f8eeacc93347 100644 --- a/components/proxy_config/proxy_policy_handler.cc +++ b/components/proxy_config/proxy_policy_handler.cc -@@ -263,7 +263,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, +@@ -262,7 +262,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers( server->GetString(), bypass_list && bypass_list->is_string() ? bypass_list->GetString() @@ -1319,6 +1348,7 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_ break; } diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc +index 58f501167035c..6ecd5f47e8900 100644 --- a/net/proxy_resolution/proxy_config.cc +++ b/net/proxy_resolution/proxy_config.cc @@ -109,7 +109,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) { @@ -1388,6 +1418,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c const std::string& url_scheme) const { const ProxyList* proxy_server_list = const_cast(this)-> diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_config.h +index d041b912eea32..1e7310be9afd4 100644 --- a/net/proxy_resolution/proxy_config.h +++ b/net/proxy_resolution/proxy_config.h @@ -103,6 +103,9 @@ class NET_EXPORT ProxyConfig { @@ -1400,5 +1431,6 @@ 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.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-an-always-incognito-mode.patch b/bromite/build/patches/Add-an-always-incognito-mode.patch index b2dd4d11..360e3223 100644 --- a/bromite/build/patches/Add-an-always-incognito-mode.patch +++ b/bromite/build/patches/Add-an-always-incognito-mode.patch @@ -1,6 +1,7 @@ +From 41010f31247e2a982a6313ce0d9ffb81617d40d3 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 2 Oct 2021 13:20:36 +0200 -Subject: Add an always-incognito mode +Subject: [PATCH 063/192] Add an always-incognito mode Add a preference that causes all new tabs and all clicked links to launch in incognito. Make sure initial incognito status is correctly recognized. @@ -24,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/incognito_preferences.xml | 37 ++++ .../java/res/xml/privacy_preferences.xml | 5 + .../AlwaysIncognitoLinkInterceptor.java | 53 ++++++ - .../chrome/browser/ChromeTabbedActivity.java | 9 +- + .../chrome/browser/ChromeTabbedActivity.java | 20 ++- .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 26 ++- .../ChromeContextMenuPopulator.java | 7 +- @@ -32,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../CustomTabAppMenuPropertiesDelegate.java | 4 + .../CustomTabIntentDataProvider.java | 5 +- .../browser/download/DownloadUtils.java | 16 +- - .../browser/history/HistoryManager.java | 18 +- + .../browser/history/HistoryManager.java | 28 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ .../native_page/NativePageFactory.java | 4 +- .../chrome/browser/ntp/RecentTabsManager.java | 28 ++- @@ -49,31 +50,34 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../webapps/WebappIntentDataProvider.java | 14 ++ chrome/browser/about_flags.cc | 4 + .../browser/android/historical_tab_saver.cc | 22 ++- - .../chrome_autocomplete_provider_client.cc | 7 + + .../chrome_autocomplete_provider_client.cc | 9 + .../chrome_autocomplete_provider_client.h | 1 + - .../host_content_settings_map_factory.cc | 20 ++- + .../remote_suggestions_service_factory.cc | 5 + + .../host_content_settings_map_factory.cc | 22 ++- chrome/browser/flag_descriptions.cc | 6 + chrome/browser/flag_descriptions.h | 3 + .../flags/android/chrome_feature_list.cc | 4 +- - chrome/browser/history/history_tab_helper.cc | 18 ++ + chrome/browser/history/history_tab_helper.cc | 20 +++ chrome/browser/history/history_tab_helper.h | 10 +- .../android/offline_page_bridge.cc | 11 +- .../android/offline_page_model_factory.cc | 20 ++- - .../android/request_coordinator_factory.cc | 27 ++- + .../android/request_coordinator_factory.cc | 34 +++- .../offline_page_model_factory.h | 1 + .../offline_pages/recent_tab_helper.cc | 19 ++- .../browser/offline_pages/recent_tab_helper.h | 3 + .../request_coordinator_factory.h | 4 +- chrome/browser/prefs/browser_prefs.cc | 5 + + chrome/browser/profiles/profile_selections.cc | 10 ++ + chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + - .../browser/ui/native_page/NativePage.java | 12 +- + .../browser/ui/native_page/NativePage.java | 16 +- .../strings/android_chrome_strings.grd | 31 ++++ - .../browser/toolbar/LocationBarModel.java | 7 +- + .../browser/toolbar/LocationBarModel.java | 5 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + .../snackbar/INeedSnackbarManager.java | 27 +++ chrome/common/pref_names.cc | 6 + chrome/common/pref_names.h | 6 + - .../browser/content_settings_pref_provider.cc | 6 +- + .../browser/content_settings_pref_provider.cc | 8 +- .../browser/content_settings_pref_provider.h | 2 + .../core/browser/host_content_settings_map.cc | 4 +- .../core/browser/host_content_settings_map.h | 3 + @@ -84,24 +88,26 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../omnibox/browser/base_search_provider.cc | 2 +- components/omnibox/browser/search_provider.cc | 4 +- .../host_content_settings_map_factory.cc | 1 + - 65 files changed, 719 insertions(+), 77 deletions(-) + 68 files changed, 765 insertions(+), 91 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java create mode 100644 chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/INeedSnackbarManager.java diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni +index 2fd89a4f9216e..91c235e19f312 100644 --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -652,6 +652,7 @@ chrome_java_resources = [ +@@ -663,6 +663,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/phone_as_a_security_key_accessory_filter.xml", + "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", + "java/res/xml/privacy_preferences_v2.xml", "java/res/xml/search_widget_info.xml", - "java/res/xml/tracing_preferences.xml", diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni +index 0237ed0f02e9e..85f9499374984 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni @@ -3,6 +3,7 @@ @@ -112,7 +118,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -914,6 +915,7 @@ chrome_java_sources = [ +@@ -944,6 +945,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", @@ -122,6 +128,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProviderImpl.java", diff --git a/chrome/android/java/res/xml/incognito_preferences.xml b/chrome/android/java/res/xml/incognito_preferences.xml new file mode 100644 +index 0000000000000..d52ffe9170b94 --- /dev/null +++ b/chrome/android/java/res/xml/incognito_preferences.xml @@ -0,0 +1,37 @@ @@ -163,9 +170,10 @@ new file mode 100644 + android:defaultValue="false" /> + diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml +index 7dea487f76b53..31168cba63391 100644 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -40,6 +40,11 @@ found in the LICENSE file. +@@ -50,6 +50,11 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/> @@ -179,6 +187,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi android:key="do_not_track" diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java new file mode 100644 +index 0000000000000..8a547aabb561b --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java @@ -0,0 +1,53 @@ @@ -236,28 +245,39 @@ new file mode 100644 + } +} diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +index ec3ebe0f435c9..7009d56e8a8f7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -58,6 +58,7 @@ import org.chromium.base.task.PostTask; +@@ -56,6 +56,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; ++import org.chromium.components.prefs.PrefService; ++import org.chromium.components.user_prefs.UserPrefs; ++import org.chromium.chrome.browser.preferences.Pref; +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; -@@ -578,8 +579,9 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -1880,6 +1881,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -291,9 +312,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +index a9ce692b607c1..eca5da511984e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -34,6 +34,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -35,6 +35,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -301,9 +323,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.banners.AppMenuVerbiage; import org.chromium.chrome.browser.bookmarks.BookmarkFeatures; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -99,6 +100,10 @@ import java.util.ArrayList; +@@ -103,6 +104,10 @@ import java.lang.annotation.RetentionPolicy; + import java.util.ArrayList; import java.util.List; - import java.util.Map; +import org.chromium.components.prefs.PrefService; +import org.chromium.components.user_prefs.UserPrefs; @@ -312,7 +334,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -560,6 +565,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -559,6 +564,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -326,7 +348,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // We have to iterate all menu items since same menu item ID may be associated with more // than one menu items. boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU; -@@ -636,7 +648,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -619,7 +631,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -341,9 +363,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App + else + item.setVisible(!isIncognito); } - if (item.getItemId() == R.id.menu_group_tabs) { - item.setVisible(isMenuGroupTabsVisible); -@@ -876,7 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate + if (item.getItemId() == R.id.menu_select_tabs) { + item.setVisible(isMenuSelectTabsVisible); +@@ -823,7 +843,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate // is not persisted when adding to the homescreen. // * If creating shortcuts it not supported by the current home screen. return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme @@ -355,18 +377,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +index 82360f40547fa..38b19e0cd8f0e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -30,6 +30,7 @@ import org.chromium.base.ContextUtils; - import org.chromium.base.metrics.RecordHistogram; +@@ -28,6 +28,7 @@ import org.chromium.base.Callback; + import org.chromium.base.ContextUtils; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; -@@ -364,6 +365,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - boolean hasSaveImage = false; +@@ -232,6 +233,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; + boolean always_incognito = @@ -375,7 +398,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -382,6 +386,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -250,6 +254,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); } } @@ -383,7 +406,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); } -@@ -406,7 +411,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -274,7 +279,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -393,9 +416,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr linkGroup.add(createListItem(Item.SAVE_LINK_AS)); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +index 003e598bfd9c6..264b4c24c334a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -68,31 +68,6 @@ public class CustomTabActivityLifecycleUmaTracker +@@ -50,31 +50,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { @@ -428,6 +452,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust private void recordUserAction() { 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 +index 522b209f8373d..899532e20c892 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java @@ -21,6 +21,7 @@ import org.chromium.base.ContextUtils; @@ -438,7 +463,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder; -@@ -176,6 +177,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -178,6 +179,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat downloadItemVisible = false; openInChromeItemVisible = false; } @@ -449,9 +474,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust boolean isChromeScheme = url.getScheme().equals(UrlConstants.CHROME_SCHEME) || url.getScheme().equals(UrlConstants.CHROME_NATIVE_SCHEME); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +index 0bcaa921757a1..666a144f7351c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -49,6 +49,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -57,6 +57,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.version_info.VersionInfo; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -461,7 +487,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -855,7 +858,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1223,7 +1226,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public boolean isIncognito() { @@ -471,9 +497,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust @Nullable diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +index ac7a72d174311..0b93ad2be69dd 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -34,6 +34,7 @@ import org.chromium.base.annotations.NativeMethods; +@@ -33,6 +33,7 @@ import org.chromium.base.annotations.NativeMethods; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; @@ -481,7 +508,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.download.home.DownloadActivity; -@@ -74,6 +75,10 @@ import org.chromium.url.GURL; +@@ -73,6 +74,10 @@ import org.chromium.url.GURL; import java.io.File; @@ -492,7 +519,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** * A class containing some utility static methods. */ -@@ -318,7 +323,16 @@ public class DownloadUtils { +@@ -317,7 +322,16 @@ public class DownloadUtils { // Offline pages isn't supported in Incognito. This should be checked before calling // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found // for incognito profile. @@ -511,6 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo // Check if the page url is supported for saving. Only HTTP and HTTPS pages are allowed. if (!OfflinePageBridge.canSavePage(tab.getUrl())) return false; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +index 2814b028f6f95..6b0d7be997d3a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java @@ -35,6 +35,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener; @@ -521,7 +549,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; -@@ -77,6 +78,12 @@ import java.io.Serializable; +@@ -78,6 +79,12 @@ import java.io.Serializable; import java.util.List; import java.util.concurrent.atomic.AtomicReference; @@ -534,11 +562,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** * Combines and manages the different UI components of browsing history. */ -@@ -551,7 +558,16 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve - return mRootView; +@@ -159,7 +166,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve + + recordUserAction("Show"); + // If incognito placeholder is shown, we don't need to create History UI elements. +- if (mIsIncognito) { ++ if (shouldShowIncognitoPlaceholder()) { + mSelectableListLayout = null; + mRootView = getIncognitoHistoryPlaceholderView(); + return; +@@ -596,7 +603,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve + + private void swapContentView() { + boolean toHistoryClusters; +- if (mIsIncognito) { ++ if (shouldShowIncognitoPlaceholder()) { + return; + } else if (isHistoryClustersUIShowing()) { + toHistoryClusters = false; +@@ -659,11 +666,24 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve + && mContentView == mHistoryClustersCoordinator.getActivityContentView(); } -- private boolean shouldShowIncognitoPlaceholder() { + public boolean isIncognito() { return mIsIncognito; } + + public boolean shouldShowIncognitoPlaceholder() { @@ -549,10 +594,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History + prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); + if (historyEnabledInIncognito) return false; + } - return mIsIncognito - && ChromeFeatureList.isEnabled( - ChromeFeatureList.UPDATE_HISTORY_ENTRY_POINTS_IN_INCOGNITO); ++ return mIsIncognito; ++ } ++ + /** + * Called when the activity/native page is destroyed. + */ + public void onDestroyed() { +- if (mIsIncognito) { ++ if (shouldShowIncognitoPlaceholder()) { + // If Incognito placeholder is shown no need to call any destroy method. + return; + } +@@ -683,7 +703,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve + * @return True if manager handles this event, false if it decides to ignore. + */ + public boolean onBackPressed() { +- if (mIsIncognito || mSelectableListLayout == null) { ++ if (shouldShowIncognitoPlaceholder() || mSelectableListLayout == null) { + // If Incognito placeholder is shown, the back press should handled by HistoryActivity. + return false; + } else if (isHistoryClustersUIShowing()) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java +index 86ab2996afbf7..5a65353125ae6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java @@ -11,6 +11,7 @@ import androidx.annotation.VisibleForTesting; @@ -593,17 +657,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History assert uri.getHost().equals(UrlConstants.HISTORY_HOST); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +index 65e3337a58713..9e8d0f3d67f93 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -15,6 +15,7 @@ import org.chromium.base.jank_tracker.JankTracker; - import org.chromium.base.supplier.BooleanSupplier; +@@ -14,6 +14,7 @@ import androidx.annotation.VisibleForTesting; + import org.chromium.base.supplier.DestroyableObservableSupplier; import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -251,7 +252,8 @@ public class NativePageFactory { +@@ -216,7 +217,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito) { NativePage page; @@ -614,10 +679,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat return null; case NativePageType.CANDIDATE: diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +index cb3e351453c6e..d0bc5a6f8532a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -21,6 +21,15 @@ import org.chromium.chrome.browser.ui.favicon.FaviconHelper; - import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; +@@ -36,6 +36,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; + import org.chromium.components.sync.SyncService; import org.chromium.url.GURL; +import android.content.Intent; @@ -632,7 +698,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import java.util.HashMap; import java.util.List; import java.util.Map; -@@ -78,7 +87,8 @@ public class RecentTabsManager { +@@ -100,7 +109,8 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, */ public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile, Context context, Runnable showHistoryManager) { @@ -642,7 +708,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -210,6 +220,22 @@ public class RecentTabsManager { +@@ -252,6 +262,22 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener, */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -667,6 +733,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM // Window disposition will select which tab to open. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java new file mode 100644 +index 0000000000000..b60a5b0951bb9 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -0,0 +1,160 @@ @@ -831,27 +898,29 @@ new file mode 100644 + } +} diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +index 6da3d952ac100..909d31f55dc64 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.profiles.ProfileManagerUtils; - import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings; +@@ -70,6 +70,7 @@ import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings; + import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate; + import org.chromium.chrome.browser.sync.SyncServiceFactory; +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; -@@ -254,6 +255,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity - if (fragment instanceof AdPersonalizationRemovedFragment) { - ((AdPersonalizationRemovedFragment) fragment).setSnackbarManager(getSnackbarManager()); +@@ -320,6 +321,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + ((PrivacySandboxSettingsBaseFragment) fragment) + .setSnackbarManager(getSnackbarManager()); } + if (fragment instanceof INeedSnackbarManager) { + ((INeedSnackbarManager)fragment).setSnackbarManager(mSnackbarManager); + } + initBackPressHandler(); } - @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +index 6cfc9f42401db..505e63ae4db07 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java @@ -14,6 +14,8 @@ import java.util.ArrayList; @@ -882,6 +951,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java +index 0b9241a7f8741..d413e81a8dda5 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java @@ -16,7 +16,7 @@ public interface HistoricalTabSaver { @@ -894,6 +964,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** * Creates a Group or Tab entry in TabRestoreService. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +index 0192d8da2681f..975a7850f3f74 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java @@ -27,6 +27,8 @@ import java.util.Arrays; @@ -961,9 +1032,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore ByteBuffer[] byteBuffers, int[] savedStationsVersions); void createHistoricalBulkClosure(TabModel model, int[] groupIds, String[] titles, diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +index cec87d49f1b0b..e33bbe5c925ec 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -122,6 +122,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto +@@ -125,6 +125,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -972,19 +1044,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -482,7 +484,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler(); - mEmptyBackgroundViewWrapper = - new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(), -- mTabCreatorManagerSupplier.get().getTabCreator(false), mActivity, -+ mTabCreatorManagerSupplier.get().getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()), mActivity, - appMenuHandler, mSnackbarManagerSupplier.get(), mLayoutManagerSupplier); - mEmptyBackgroundViewWrapper.initialize(); - } +@@ -797,7 +799,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { + mAppMenuCoordinator.getAppMenuHandler(), mActivityTabProvider, + mToolbarManager.getMenuButtonView(), () -> { + mTabCreatorManagerSupplier.get() +- .getTabCreator(/*incognito=*/false) ++ .getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) + .launchUrl(NewTabPageUtils.encodeNtpUrl( + NewTabPageLaunchOrigin.WEB_FEED), + TabLaunchType.FROM_CHROME_UI); 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 +index 18b403cfc342e..4300ad0894ab0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -41,6 +41,10 @@ import org.chromium.ui.base.PageTransition; +@@ -53,6 +53,10 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -995,7 +1068,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** * This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ -@@ -312,7 +316,6 @@ public class ChromeTabCreator extends TabCreator { +@@ -487,7 +491,6 @@ public class ChromeTabCreator extends TabCreator { // TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1004,6 +1077,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome // relied on for anything security sensitive. boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java +index f1b7de7661547..8699f2c04c42d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; @@ -1024,10 +1098,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod (ChromeTabCreator) getTabCreatorManager().getTabCreator(false); ChromeTabCreator incognitoTabCreator = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +index afaaaaca29400..7f9962ab40489 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -58,6 +58,8 @@ import org.chromium.content_public.browser.LoadUrlParams; - import org.chromium.content_public.browser.UiThreadTaskTraits; +@@ -55,6 +55,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities; + import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.url.GURL; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; @@ -1035,7 +1110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@@ -757,6 +759,13 @@ public class TabPersistentStore { +@@ -747,6 +749,13 @@ public class TabPersistentStore { } } } @@ -1050,9 +1125,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer if (model.isIncognito() != isIncognito) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +index 902a3b9944a3b..c587bef89e22e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -38,6 +38,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -37,6 +37,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1060,7 +1136,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -@@ -523,7 +524,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -500,7 +501,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return ret; } }, @@ -1071,6 +1147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar assert mControlContainer != null; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +index 9ad008813a848..a112de1c83fee 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java @@ -32,6 +32,9 @@ import org.chromium.chrome.browser.flags.ActivityType; @@ -1103,7 +1180,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI } @Override -@@ -155,6 +164,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -147,6 +156,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider return mWebApkExtras; } @@ -1116,9 +1193,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI public @ScreenOrientationLockType.EnumType int getDefaultOrientation() { return mWebappExtras.orientation; diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index b18dc95f4c872..b8d9445c360b7 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4837,6 +4837,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5077,6 +5077,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOfflinePagesLivePageSharingName, flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid, FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)}, @@ -1130,6 +1208,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc flag_descriptions::kQueryTilesDescription, kOsAndroid, FEATURE_WITH_PARAMS_VALUE_TYPE(query_tiles::features::kQueryTiles, diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc +index 8757668fa8e58..a46771f1bd970 100644 --- a/chrome/browser/android/historical_tab_saver.cc +++ b/chrome/browser/android/historical_tab_saver.cc @@ -26,6 +26,11 @@ @@ -1190,16 +1269,19 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and // static diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +index 75eed5bb0ef6a..ed307f6c1c9f7 100644 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -310,6 +310,13 @@ signin::IdentityManager* ChromeAutocompleteProviderClient::GetIdentityManager() - return IdentityManagerFactory::GetForProfile(profile_); +@@ -350,6 +350,15 @@ ChromeAutocompleteProviderClient::GetOnDeviceTailModelService() const { + #endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB) } +bool ChromeAutocompleteProviderClient::IsAlwaysIncognitoEnabled() const { ++#if BUILDFLAG(IS_ANDROID) + if (profile_->GetPrefs()->GetBoolean(prefs::kAlwaysIncognitoEnabled)) { + return true; + } ++#endif + return false; +} + @@ -1207,17 +1289,43 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc return profile_->IsOffTheRecord(); } diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h +index 538915c691f8b..cc7145f2cf241 100644 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h -@@ -80,6 +80,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { +@@ -86,6 +86,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { const override; - signin::IdentityManager* GetIdentityManager() const override; + OnDeviceTailModelService* GetOnDeviceTailModelService() const override; bool IsOffTheRecord() const override; + bool IsAlwaysIncognitoEnabled() const override; + bool IsIncognitoProfile() const override; + bool IsGuestSession() const override; bool SearchSuggestEnabled() const override; - bool AllowDeletingBrowserHistory() const override; - bool IsPersonalizedUrlDataCollectionActive() const override; +diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b/chrome/browser/autocomplete/remote_suggestions_service_factory.cc +index 596ea79bf268d..06a912dd6d877 100644 +--- a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc ++++ b/chrome/browser/autocomplete/remote_suggestions_service_factory.cc +@@ -4,6 +4,7 @@ + + #include "chrome/browser/autocomplete/remote_suggestions_service_factory.h" + ++#include "build/build_config.h" + #include "base/no_destructor.h" + #include "chrome/browser/profiles/profile.h" + #include "components/omnibox/browser/remote_suggestions_service.h" +@@ -36,7 +37,11 @@ RemoteSuggestionsServiceFactory::RemoteSuggestionsServiceFactory() + : ProfileKeyedServiceFactory( + "RemoteSuggestionsService", + ProfileSelections::Builder() ++#if BUILDFLAG(IS_ANDROID) ++ .WithRegular(ProfileSelection::kOriginalOnlyAndAlwaysIncognito) ++#else + .WithRegular(ProfileSelection::kOriginalOnly) ++#endif + // TODO(crbug.com/1418376): Check if this service is needed in + // Guest mode. + .WithGuest(ProfileSelection::kOriginalOnly) diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.cc b/chrome/browser/content_settings/host_content_settings_map_factory.cc +index a07ea61672f8d..cf0b755fdf2a7 100644 --- a/chrome/browser/content_settings/host_content_settings_map_factory.cc +++ b/chrome/browser/content_settings/host_content_settings_map_factory.cc @@ -15,6 +15,7 @@ @@ -1228,13 +1336,14 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c #include "components/content_settings/core/browser/content_settings_pref_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/permissions/features.h" -@@ -95,9 +96,23 @@ scoped_refptr - if (profile->IsOffTheRecord() && !profile->IsGuestSession()) - GetForProfile(original_profile); +@@ -119,9 +120,25 @@ scoped_refptr + should_record_metrics && ash::ProfileHelper::IsUserProfile(profile); + #endif // BUILDFLAG(IS_CHROMEOS_ASH) + bool always_incognito_enabled = false; + bool force_save_site_settings = false; + ++#if BUILDFLAG(IS_ANDROID) + PrefService* prefService = original_profile->GetPrefs(); + if (prefService->GetBoolean(prefs::kAlwaysIncognitoEnabled)) { + always_incognito_enabled = true; @@ -1244,29 +1353,31 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c + profile = original_profile; + force_save_site_settings = true; + } ++#endif + scoped_refptr settings_map(new HostContentSettingsMap( profile->GetPrefs(), - profile->IsOffTheRecord() || profile->IsGuestSession(), + !force_save_site_settings && (profile->IsOffTheRecord() || profile->IsGuestSession()), + force_save_site_settings, - /*store_last_modified=*/true, - profile->ShouldRestoreOldSessionCookies())); + /*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(), + should_record_metrics)); -@@ -107,6 +122,9 @@ scoped_refptr +@@ -131,6 +148,9 @@ scoped_refptr HostContentSettingsMap::WEBUI_ALLOWLIST_PROVIDER, std::move(allowlist_provider)); + if (always_incognito_enabled) + return settings_map; + - if (base::FeatureList::IsEnabled( - permissions::features::kOneTimeGeolocationPermission)) { - auto one_time_geolocation_provider = + #if BUILDFLAG(ENABLE_EXTENSIONS) + // These must be registered before before the HostSettings are passed over to + // the IOThread. Simplest to do this on construction. diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index f3551638c554b..85d34f30750d8 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3907,6 +3907,12 @@ const char kOfflinePagesLivePageSharingDescription[] = +@@ -4052,6 +4052,12 @@ const char kOfflinePagesLivePageSharingDescription[] = "Enables to share current loaded page as offline page by saving as MHTML " "first."; @@ -1280,11 +1391,12 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kPageInfoHistoryDescription[] = "Enable a history sub page to the page info menu, and a button to forget " diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 05ae52fbdc275..27f306494c02e 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2227,6 +2227,9 @@ extern const char kNotificationPermissionRationaleDescription[]; - extern const char kOfflinePagesLivePageSharingName[]; - extern const char kOfflinePagesLivePageSharingDescription[]; +@@ -2361,6 +2361,9 @@ extern const char kOmahaMinSdkVersionAndroidDescription[]; + extern const char kOmahaMinSdkVersionAndroidMinSdk1Description[]; + extern const char kOmahaMinSdkVersionAndroidMinSdk1000Description[]; +extern const char kOfflinePagesAutoSaveFeatureName[]; +extern const char kOfflinePagesAutoSaveFeatureDescription[]; @@ -1293,9 +1405,10 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kPageInfoHistoryDescription[]; diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc +index f4f245e8efa7e..0502f21346f0e 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -561,8 +561,8 @@ BASE_FEATURE(kCCTNewDownloadTab, +@@ -537,8 +537,8 @@ BASE_FEATURE(kCCTFeatureUsage, BASE_FEATURE(kCCTIncognito, "CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, @@ -1304,9 +1417,10 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse + "CCTIncognitoAvailableToThirdParty", // must be enabled + base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite - BASE_FEATURE(kCCTPackageNameRecording, - "CCTPackageNameRecording", + BASE_FEATURE(kCCTIntentFeatureOverrides, + "CCTIntentFeatureOverrides", diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc +index 2fdde2cc46426..90a94d21c19a4 100644 --- a/chrome/browser/history/history_tab_helper.cc +++ b/chrome/browser/history/history_tab_helper.cc @@ -38,6 +38,9 @@ @@ -1319,7 +1433,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -459,6 +462,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -474,6 +477,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1333,34 +1447,37 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -466,6 +476,14 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -481,6 +491,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } +// static +void HistoryTabHelper::RegisterProfilePrefs(PrefRegistrySimple* registry) { ++#if BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref(prefs::kIncognitoTabHistoryEnabled, + /*default_value=*/false); + registry->RegisterBooleanPref(prefs::kIncognitoSaveSiteSettingEnabled, + /*default_value=*/false); ++#endif +} + void HistoryTabHelper::WebContentsDestroyed() { translate_observation_.Reset(); diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/history/history_tab_helper.h +index 859f9067ee50c..df6f3c06285b6 100644 --- a/chrome/browser/history/history_tab_helper.h +++ b/chrome/browser/history/history_tab_helper.h -@@ -12,6 +12,8 @@ - #include "components/translate/core/browser/translate_driver.h" +@@ -14,6 +14,8 @@ #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" + #include "third_party/abseil-cpp/absl/types/optional.h" +#include "components/prefs/pref_registry_simple.h" +#include "components/prefs/pref_service.h" namespace history { struct HistoryAddPageArgs; -@@ -51,6 +53,11 @@ class HistoryTabHelper +@@ -53,6 +55,11 @@ class HistoryTabHelper force_eligible_tab_for_testing_ = force; } @@ -1372,7 +1489,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor private: explicit HistoryTabHelper(content::WebContents* web_contents); friend class content::WebContentsUserData; -@@ -83,9 +90,6 @@ class HistoryTabHelper +@@ -85,9 +92,6 @@ class HistoryTabHelper void OnLanguageDetermined( const translate::LanguageDetectionDetails& details) override; @@ -1383,6 +1500,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor bool IsEligibleTab(const history::HistoryAddPageArgs& add_page_args) const; diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrome/browser/offline_pages/android/offline_page_bridge.cc +index e567a53a881eb..7de1a718b7044 100644 --- a/chrome/browser/offline_pages/android/offline_page_bridge.cc +++ b/chrome/browser/offline_pages/android/offline_page_bridge.cc @@ -47,6 +47,9 @@ @@ -1395,7 +1513,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom using base::android::ConvertJavaStringToUTF8; using base::android::ConvertUTF16ToJavaString; -@@ -785,9 +788,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( +@@ -782,9 +785,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( } if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) { @@ -1413,6 +1531,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom } diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc +index 3c0f1cd75db59..de4c670b29b80 100644 --- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc +++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc @@ -24,6 +24,9 @@ @@ -1425,7 +1544,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc namespace offline_pages { -@@ -54,13 +57,15 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( +@@ -55,13 +58,15 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( scoped_refptr background_task_runner = base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}); @@ -1443,7 +1562,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc // If base::PathService::Get returns false, the temporary_archives_dir will be // empty, and no temporary pages will be saved during this chrome lifecycle. base::FilePath temporary_archives_dir; -@@ -69,7 +74,6 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( +@@ -70,7 +75,6 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( temporary_archives_dir.Append(chrome::kOfflinePageArchivesDirname); } @@ -1451,7 +1570,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc auto archive_manager = std::make_unique( temporary_archives_dir, persistent_archives_dir, DownloadPrefs::GetDefaultDownloadDirectory(), background_task_runner, -@@ -87,4 +91,14 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( +@@ -88,4 +92,14 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( return model; } @@ -1467,6 +1586,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc + } // namespace offline_pages diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc b/chrome/browser/offline_pages/android/request_coordinator_factory.cc +index 10cf16f6d57c3..f13b974706496 100644 --- a/chrome/browser/offline_pages/android/request_coordinator_factory.cc +++ b/chrome/browser/offline_pages/android/request_coordinator_factory.cc @@ -19,6 +19,7 @@ @@ -1489,17 +1609,24 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc namespace network { class NetworkQualityTracker; } -@@ -61,7 +67,8 @@ class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo { - }; +@@ -65,14 +71,8 @@ class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo { + } // namespace RequestCoordinatorFactory::RequestCoordinatorFactory() -- : ProfileKeyedServiceFactory("OfflineRequestCoordinator") { +- : ProfileKeyedServiceFactory( +- "OfflineRequestCoordinator", +- ProfileSelections::Builder() +- .WithRegular(ProfileSelection::kOriginalOnly) +- // TODO(crbug.com/1418376): Check if this service is needed in +- // Guest mode. +- .WithGuest(ProfileSelection::kOriginalOnly) +- .Build()) { + : BrowserContextKeyedServiceFactory("OfflineRequestCoordinator", + BrowserContextDependencyManager::GetInstance()) { // Depends on OfflinePageModelFactory in SimpleDependencyManager. } -@@ -79,6 +86,12 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext( +@@ -91,6 +91,12 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext( KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { @@ -1512,7 +1639,7 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc std::unique_ptr policy(new OfflinerPolicy()); std::unique_ptr offliner; OfflinePageModel* model = -@@ -111,4 +124,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor( +@@ -123,4 +129,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor( return request_coordinator; } @@ -1530,6 +1657,7 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc + } // namespace offline_pages diff --git a/chrome/browser/offline_pages/offline_page_model_factory.h b/chrome/browser/offline_pages/offline_page_model_factory.h +index 98e1a42f20b36..86d76f9a3e7d8 100644 --- a/chrome/browser/offline_pages/offline_page_model_factory.h +++ b/chrome/browser/offline_pages/offline_page_model_factory.h @@ -48,6 +48,7 @@ class OfflinePageModelFactory : public SimpleKeyedServiceFactory { @@ -1541,6 +1669,7 @@ diff --git a/chrome/browser/offline_pages/offline_page_model_factory.h b/chrome/ } // namespace offline_pages diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/offline_pages/recent_tab_helper.cc +index 4fec7898e108e..251e8917b22fc 100644 --- a/chrome/browser/offline_pages/recent_tab_helper.cc +++ b/chrome/browser/offline_pages/recent_tab_helper.cc @@ -28,6 +28,11 @@ @@ -1584,9 +1713,10 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ return; } diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/offline_pages/recent_tab_helper.h +index 9567d334d86f1..697aed8a8a4c2 100644 --- a/chrome/browser/offline_pages/recent_tab_helper.h +++ b/chrome/browser/offline_pages/recent_tab_helper.h -@@ -145,6 +145,9 @@ class RecentTabHelper +@@ -146,6 +146,9 @@ class RecentTabHelper // Not page-specific. bool snapshots_enabled_ = false; @@ -1597,6 +1727,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/o // downloads. Null if there's no ongoing request. std::unique_ptr downloads_ongoing_snapshot_info_; diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome/browser/offline_pages/request_coordinator_factory.h +index 7d68579a86760..be37d7fa33442 100644 --- a/chrome/browser/offline_pages/request_coordinator_factory.h +++ b/chrome/browser/offline_pages/request_coordinator_factory.h @@ -18,7 +18,7 @@ namespace offline_pages { @@ -1618,28 +1749,83 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome } // namespace offline_pages diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc +index af2d036f0b354..a3de4152dfd4c 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -229,6 +229,7 @@ +@@ -232,6 +232,7 @@ #include "components/feed/core/shared_prefs/pref_names.h" #if BUILDFLAG(IS_ANDROID) +#include "chrome/browser/history/history_tab_helper.h" #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" - #include "chrome/browser/android/explore_sites/history_statistics_reporter.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" -@@ -1390,6 +1391,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, + #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" +@@ -1698,6 +1699,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); - video_tutorials::RegisterPrefs(registry); + webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); + // register incognito pref + registry->RegisterBooleanPref(prefs::kAlwaysIncognitoEnabled, + /*default_value=*/false); + HistoryTabHelper::RegisterProfilePrefs(registry); #else // BUILDFLAG(IS_ANDROID) - AppShortcutManager::RegisterProfilePrefs(registry); + bookmarks_webui::RegisterProfilePrefs(registry); browser_sync::ForeignSessionHandler::RegisterProfilePrefs(registry); +diff --git a/chrome/browser/profiles/profile_selections.cc b/chrome/browser/profiles/profile_selections.cc +index 7ecd897db8830..4ad14b1003942 100644 +--- a/chrome/browser/profiles/profile_selections.cc ++++ b/chrome/browser/profiles/profile_selections.cc +@@ -5,6 +5,9 @@ + #include "chrome/browser/profiles/profile_selections.h" + + #include "base/memory/ptr_util.h" ++#include "components/prefs/pref_registry_simple.h" ++#include "components/prefs/pref_service.h" ++#include "chrome/common/pref_names.h" + #include "chrome/browser/profiles/profile.h" + #include "chrome/browser/profiles/profile_types_ash.h" + #include "components/profile_metrics/browser_profile_type.h" +@@ -110,6 +113,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const { + return nullptr; + case ProfileSelection::kOriginalOnly: + return profile->IsOffTheRecord() ? nullptr : profile; ++#if BUILDFLAG(IS_ANDROID) ++ case ProfileSelection::kOriginalOnlyAndAlwaysIncognito: ++ return profile->IsOffTheRecord() && ++ !(profile->GetOriginalProfile() ++ ->GetPrefs() ++ ->GetBoolean(prefs::kAlwaysIncognitoEnabled)) ? nullptr : profile; ++#endif + case ProfileSelection::kOwnInstance: + return profile; + case ProfileSelection::kRedirectedToOriginal: +diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profiles/profile_selections.h +index 8eb83625919ce..df626e2ebf430 100644 +--- a/chrome/browser/profiles/profile_selections.h ++++ b/chrome/browser/profiles/profile_selections.h +@@ -6,7 +6,7 @@ + #define CHROME_BROWSER_PROFILES_PROFILE_SELECTIONS_H_ + + #include "base/feature_list.h" +- ++#include "build/build_config.h" + #include "third_party/abseil-cpp/absl/types/optional.h" + + class Profile; +@@ -27,6 +27,11 @@ bool AreKeyedServicesDisabledForProfileByDefault(const Profile* profile); + enum class ProfileSelection { + kNone, // Original: No Profile -- OTR: No Profile + kOriginalOnly, // Original: Self -- OTR: No Profile ++#if BUILDFLAG(IS_ANDROID) ++ kOriginalOnlyAndAlwaysIncognito, ++ // Original: Self -- OTR: Self (with AlwaysIncognito ON) ++ // -- OTR: No Profile (with AlwaysIncognito OFF) ++#endif + kOwnInstance, // Original: Self -- OTR: Self + kRedirectedToOriginal, // Original: Self -- OTR: Original + kOffTheRecordOnly // Original: No Profile -- OTR: Self diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn +index 259376bfd3214..777c799e0910d 100644 --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn @@ -28,7 +28,9 @@ robolectric_library("junit") { @@ -1653,6 +1839,7 @@ diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/ ] } diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java +index d81c018376715..3e61a38b7ab5c 100644 --- a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java +++ b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java @@ -16,6 +16,8 @@ import org.chromium.url.GURL; @@ -1664,31 +1851,45 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ /** * An interface for pages that will be using Android views instead of html/rendered Web content. */ -@@ -130,12 +132,12 @@ public interface NativePage { +@@ -120,12 +122,12 @@ public interface NativePage { */ @Deprecated // Use GURL-variant instead. - public static boolean isNativePageUrl(String url, boolean isIncognito) { + static boolean isNativePageUrl(String url, boolean isIncognito) { - return nativePageType(url, null, isIncognito) != NativePageType.NONE; + return nativePageType(url, null, isIncognito, false) != NativePageType.NONE; } - public static boolean isNativePageUrl(GURL url, boolean isIncognito) { + static boolean isNativePageUrl(GURL url, boolean isIncognito) { return url != null -- && nativePageType(url.getSpec(), null, isIncognito) != NativePageType.NONE; -+ && nativePageType(url.getSpec(), null, isIncognito, false) != NativePageType.NONE; +- && nativePageType(url.getHost(), url.getScheme(), null, isIncognito) ++ && nativePageType(url.getHost(), url.getScheme(), null, isIncognito, false) + != NativePageType.NONE; } - /** -@@ -146,7 +148,8 @@ public interface NativePage { +@@ -137,11 +139,12 @@ public interface NativePage { */ // TODO(crbug/783819) - Convert to using GURL. - public static @NativePageType int nativePageType( + static @NativePageType int nativePageType( - String url, NativePage candidatePage, boolean isIncognito) { + String url, NativePage candidatePage, boolean isIncognito, + boolean isAlwaysIncognito) { if (url == null) return NativePageType.NONE; Uri uri = Uri.parse(url); +- return nativePageType(uri.getHost(), uri.getScheme(), candidatePage, isIncognito); ++ return nativePageType(uri.getHost(), uri.getScheme(), candidatePage, isIncognito, isAlwaysIncognito); + } + + /** +@@ -150,7 +153,7 @@ public interface NativePage { + * @return Type of the native page defined in {@link NativePageType}. + */ + private static @NativePageType int nativePageType( +- String host, String scheme, NativePage candidatePage, boolean isIncognito) { ++ String host, String scheme, NativePage candidatePage, boolean isIncognito, boolean isAlwaysIncognito) { + if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) + && !UrlConstants.CHROME_SCHEME.equals(scheme)) { + return NativePageType.NONE; @@ -168,7 +171,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { @@ -1700,9 +1901,10 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } else if (UrlConstants.EXPLORE_HOST.equals(host)) { return NativePageType.EXPLORE; diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index 40c52e274ec50..064a416ffc4d3 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1151,6 +1151,37 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1384,6 +1384,37 @@ Your Google account may have other forms of browsing history like searches and a Clears history from all synced devices. @@ -1741,48 +1943,34 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro <link1>Search history</link1> and <link2>other forms of activity</link2> may be saved in your Google Account when you’re signed in. You can delete them anytime. diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +index a69aa244f5507..e4feba7ddebe9 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -178,6 +178,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro - protected GURL mVisibleGurl = GURL.emptyGURL(); +@@ -179,6 +179,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected String mFormattedFullUrl; protected String mUrlForDisplay; + private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled; + private boolean mIsAlwaysIncognito; - /** - * Default constructor for this class. -@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro + // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same + // document navigation. The first call is usually necessary, which updates the UrlBar to reflect +@@ -204,7 +205,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro public LocationBarModel(Context context, NewTabPageDelegate newTabPageDelegate, @NonNull UrlFormatter urlFormatter, @NonNull ProfileProvider profileProvider, @NonNull OfflineStatus offlineStatus, - @NonNull SearchEngineLogoUtils searchEngineLogoUtils) { + @NonNull SearchEngineLogoUtils searchEngineLogoUtils, + boolean isAlwaysIncognito) { ++ mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check mContext = context; mNtpDelegate = newTabPageDelegate; mUrlFormatter = urlFormatter; -@@ -200,6 +202,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro - mOfflineStatus = offlineStatus; - mPrimaryColor = ChromeColors.getDefaultThemeColor(context, false); - mSearchEngineLogoUtils = searchEngineLogoUtils; -+ mIsAlwaysIncognito = isAlwaysIncognito; - } - - /** -@@ -207,7 +210,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro - */ - public void initializeWithNative() { - mOptimizationsEnabled = -- ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_SCROLL_OPTIMIZATIONS); -+ ChromeFeatureList.isEnabled(ChromeFeatureList.ANDROID_SCROLL_OPTIMIZATIONS) && !mIsAlwaysIncognito; - mLastUsedNonOTRProfile = Profile.getLastUsedRegularProfile(); - mNativeLocationBarModelAndroid = LocationBarModelJni.get().init(LocationBarModel.this); - diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn +index 665d1e058b79c..c20348c91b813 100644 --- a/chrome/browser/ui/messages/android/BUILD.gn +++ b/chrome/browser/ui/messages/android/BUILD.gn -@@ -24,6 +24,7 @@ android_resources("java_resources") { - android_library("java") { +@@ -24,6 +24,7 @@ android_library("java") { + srcjar_deps = [ ":jni_headers" ] sources = [ "java/src/org/chromium/chrome/browser/ui/messages/infobar/SimpleConfirmInfoBarBuilder.java", + "java/src/org/chromium/chrome/browser/ui/messages/snackbar/INeedSnackbarManager.java", @@ -1791,6 +1979,7 @@ diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/mes "java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java", diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/INeedSnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/INeedSnackbarManager.java new file mode 100644 +index 0000000000000..18703fa8bf83a --- /dev/null +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/INeedSnackbarManager.java @@ -0,0 +1,27 @@ @@ -1822,10 +2011,11 @@ new file mode 100644 + void setSnackbarManager(SnackbarManager manager); +} diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc +index 9d4833ae39910..66fb91dfe465a 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -3458,6 +3458,12 @@ const char kShowCaretBrowsingDialog[] = - const char kLacrosLaunchSwitch[] = "lacros_launch_switch"; +@@ -3460,6 +3460,12 @@ const char kLacrosLaunchSwitch[] = "lacros_launch_switch"; + const char kLacrosSelection[] = "lacros_selection"; #endif +#if BUILDFLAG(IS_ANDROID) @@ -1838,9 +2028,10 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc // String enum pref determining what should happen when a user who authenticates // via a security token is removing this token. "IGNORE" - nothing happens diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h +index e84d35c8c43e7..af04c2c14defc 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1219,6 +1219,8 @@ extern const char kDiscountConsentShowInterestIn[]; +@@ -1214,6 +1214,8 @@ extern const char kDiscountConsentShowInterestIn[]; #if BUILDFLAG(IS_ANDROID) extern const char kWebXRImmersiveArEnabled[]; @@ -1849,7 +2040,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h #endif #if !BUILDFLAG(IS_ANDROID) -@@ -1256,6 +1258,10 @@ extern const char kPrivacyGuideViewed[]; +@@ -1255,6 +1257,10 @@ extern const char kPrivacyGuideViewed[]; extern const char kCorsNonWildcardRequestHeadersSupport[]; @@ -1861,9 +2052,10 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h extern const char kForceMajorVersionToMinorPositionInUserAgent[]; diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc +index b33921091ccd5..95cd768bcd4d1 100644 --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -122,10 +122,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -88,10 +88,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -1876,18 +2068,24 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -159,7 +161,9 @@ PrefProvider::PrefProvider(PrefService* prefs, - content_settings_prefs_.insert(std::make_pair( - info->type(), std::make_unique( - info->type(), prefs_, &pref_change_registrar_, -- info->pref_name(), off_the_record_, restore_session, -+ info->pref_name(), -+ off_the_record_ || (!content_type_info && force_save_site_settings_), -+ restore_session, - base::BindRepeating(&PrefProvider::Notify, - base::Unretained(this))))); - } +@@ -114,10 +116,14 @@ PrefProvider::PrefProvider(PrefService* prefs, + WebsiteSettingsRegistry* website_settings = + WebsiteSettingsRegistry::GetInstance(); + for (const WebsiteSettingsInfo* info : *website_settings) { ++ bool save_site_settings = force_save_site_settings_ && ++ info->incognito_behavior() == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO; + content_settings_prefs_.insert(std::make_pair( + info->type(), std::make_unique( + info->type(), prefs_, &pref_change_registrar_, +- info->pref_name(), off_the_record_, restore_session, ++ info->pref_name(), ++ off_the_record_ && !save_site_settings, ++ restore_session, + base::BindRepeating(&PrefProvider::Notify, + base::Unretained(this))))); + } diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h +index 2c56ebec122eb..0dba0bd1c2bba 100644 --- a/components/content_settings/core/browser/content_settings_pref_provider.h +++ b/components/content_settings/core/browser/content_settings_pref_provider.h @@ -37,6 +37,7 @@ class PrefProvider : public UserModifiableProvider { @@ -1898,7 +2096,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov bool store_last_modified, bool restore_session); -@@ -88,6 +89,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -96,6 +97,7 @@ class PrefProvider : public UserModifiableProvider { raw_ptr prefs_; const bool off_the_record_; @@ -1907,25 +2105,26 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov bool store_last_modified_; diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc +index ae8099def223e..87a45881a5b71 100644 --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -243,6 +243,7 @@ const char* ContentSettingToString(ContentSetting setting) { - HostContentSettingsMap::HostContentSettingsMap( - PrefService* prefs, - bool is_off_the_record, -+ bool force_save_site_settings, - bool store_last_modified, - bool restore_session) - : RefcountedKeyedService(base::ThreadTaskRunnerHandle::Get()), -@@ -251,6 +252,7 @@ HostContentSettingsMap::HostContentSettingsMap( +@@ -276,6 +276,7 @@ struct ContentSettingEntry { + + HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, + bool is_off_the_record, ++ bool force_save_site_settings, + bool store_last_modified, + bool restore_session, + bool should_record_metrics) +@@ -285,6 +286,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), + force_save_site_settings_(force_save_site_settings), store_last_modified_(store_last_modified), - allow_invalid_secondary_pattern_for_testing_(false) { - TRACE_EVENT0("startup", "HostContentSettingsMap::HostContentSettingsMap"); -@@ -262,7 +264,7 @@ HostContentSettingsMap::HostContentSettingsMap( + allow_invalid_secondary_pattern_for_testing_(false), + clock_(base::DefaultClock::GetInstance()) { +@@ -297,7 +299,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -1935,17 +2134,18 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. content_settings_providers_[PREF_PROVIDER] = std::move(pref_provider_ptr); user_modifiable_providers_.push_back(pref_provider_); diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h +index 41cb4901744cb..22c2cc62f4d9c 100644 --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -81,6 +81,7 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -103,6 +103,7 @@ class HostContentSettingsMap : public content_settings::Observer, // profile or a guest session. HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, + bool force_save_site_settings, bool store_last_modified, - bool restore_session); - -@@ -442,6 +443,8 @@ class HostContentSettingsMap : public content_settings::Observer, + bool restore_session, + bool should_record_metrics); +@@ -510,6 +511,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -1955,9 +2155,10 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. // timestamp. bool store_last_modified_; diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc +index 0fd9e4f89e427..9f0a6a7792016 100644 --- a/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc -@@ -52,6 +52,9 @@ BASE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown, +@@ -44,6 +44,9 @@ BASE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown, "OfflinePagesNetworkStateLikelyUnknown", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1968,10 +2169,11 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/ bool IsOfflinePagesCTEnabled() { diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h +index d9715f87577a1..3603a438e11fe 100644 --- a/components/offline_pages/core/offline_page_feature.h +++ b/components/offline_pages/core/offline_page_feature.h -@@ -21,6 +21,7 @@ BASE_DECLARE_FEATURE(kOfflinePagesDescriptiveFailStatusFeature); - BASE_DECLARE_FEATURE(kOfflineIndicatorFeature); +@@ -19,6 +19,7 @@ BASE_DECLARE_FEATURE(kOfflinePagesInDownloadHomeOpenInCctFeature); + BASE_DECLARE_FEATURE(kOfflinePagesDescriptiveFailStatusFeature); BASE_DECLARE_FEATURE(kOnTheFlyMhtmlHashComputationFeature); BASE_DECLARE_FEATURE(kOfflinePagesNetworkStateLikelyUnknown); +extern const base::Feature kOfflinePagesAutoSaveFeature; @@ -1979,6 +2181,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o // The parameter name used to find the experiment tag for prefetching offline // pages. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc +index 5682ca1c935bb..4757f1dd91791 100644 --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc @@ -29,3 +29,7 @@ base::WeakPtr @@ -1990,20 +2193,22 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon + return false; +} diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h +index 4905749ded9f6..2bae2b76c58de 100644 --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h -@@ -128,6 +128,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { - virtual signin::IdentityManager* GetIdentityManager() const = 0; - +@@ -139,6 +139,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; + virtual bool IsIncognitoProfile() const = 0; + virtual bool IsGuestSession() const = 0; + virtual bool IsAlwaysIncognitoEnabled() const = 0; + virtual bool SearchSuggestEnabled() const = 0; - // True for almost all users except ones with a specific enterprise policy. diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc +index 5b61f3d824371..f4a3f48ae354a 100644 --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -273,7 +273,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest( +@@ -346,7 +346,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest( } // Don't make a suggest request if in incognito mode. @@ -2013,9 +2218,10 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn } diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc +index 5bbe838b2455e..ad5b20a85aa3d 100644 --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -832,7 +832,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { +@@ -780,7 +780,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const { // keyword input to a keyword suggest server, if any.) const TemplateURL* default_url = providers_.GetDefaultProviderURL(); const TemplateURL* keyword_url = providers_.GetKeywordProviderURL(); @@ -2027,6 +2233,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ !*query_is_private) || (keyword_url && !keyword_url->suggestions_url().empty())); diff --git a/weblayer/browser/host_content_settings_map_factory.cc b/weblayer/browser/host_content_settings_map_factory.cc +index d9e57d3974f97..320462af3751f 100644 --- a/weblayer/browser/host_content_settings_map_factory.cc +++ b/weblayer/browser/host_content_settings_map_factory.cc @@ -45,6 +45,7 @@ HostContentSettingsMapFactory::BuildServiceInstanceFor( @@ -2035,7 +2242,8 @@ diff --git a/weblayer/browser/host_content_settings_map_factory.cc b/weblayer/br user_prefs::UserPrefs::Get(context), context->IsOffTheRecord(), + /*force_save_site_settings*/false, /*store_last_modified=*/true, - /*restore_session=*/false); - --- -2.25.1 + /*restore_session=*/false, + /*should_record_metrics=*/!context->IsOffTheRecord()); +-- +2.34.1 + diff --git a/bromite/build/patches/Add-bookmark-import-export-actions.patch b/bromite/build/patches/Add-bookmark-import-export-actions.patch index 540aa606..0056e24d 100644 --- a/bromite/build/patches/Add-bookmark-import-export-actions.patch +++ b/bromite/build/patches/Add-bookmark-import-export-actions.patch @@ -1,6 +1,7 @@ +From bf4db17002050bdd12800ffd8798994d82d4654e Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Wed, 1 Aug 2018 09:19:40 +0200 -Subject: Add bookmark import/export actions +Subject: [PATCH 061/192] Add bookmark import/export actions Add bookmark import/export actions in bookmarks activity and page Reduce permissions needed for bookmarks import/export @@ -11,14 +12,18 @@ Requires patch: Adds-support-for-writing-URIs.patch License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/AndroidManifest.xml | 1 - - .../res/menu/bookmark_action_bar_menu.xml | 14 + + .../java/res/menu/bookmark_toolbar_menu.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- - .../app/bookmarks/BookmarkActivity.java | 31 ++ - .../browser/bookmarks/BookmarkActionBar.java | 12 + + .../app/bookmarks/BookmarkActivity.java | 32 ++ .../browser/bookmarks/BookmarkBridge.java | 278 +++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + - .../browser/bookmarks/BookmarkManager.java | 22 ++ + .../bookmarks/BookmarkManagerCoordinator.java | 9 + + .../bookmarks/BookmarkManagerMediator.java | 23 ++ .../browser/bookmarks/BookmarkPage.java | 8 +- + .../browser/bookmarks/BookmarkToolbar.java | 23 ++ + .../bookmarks/BookmarkToolbarMediator.java | 4 + + .../bookmarks/BookmarkToolbarProperties.java | 7 +- + .../bookmarks/BookmarkToolbarViewBinder.java | 6 + .../native_page/NativePageFactory.java | 11 +- chrome/browser/BUILD.gn | 11 +- chrome/browser/about_flags.cc | 6 + @@ -45,12 +50,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog.h | 2 + .../select_file_dialog_android.cc | 6 + ui/shell_dialogs/select_file_dialog_android.h | 2 + - 35 files changed, 848 insertions(+), 29 deletions(-) + 39 files changed, 886 insertions(+), 30 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml +index 9d00f0c5aa74a..6c87b503d89bb 100644 --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -61,7 +61,6 @@ by a child template that "extends" this file. +@@ -62,7 +62,6 @@ by a child template that "extends" this file. @@ -58,9 +64,10 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml ---- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml -+++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml +diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml +index d57102c6877d1..bb414a0d4069d 100644 +--- a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml ++++ b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml @@ -23,6 +23,20 @@ found in the LICENSE file. android:visible="false" app:showAsAction="ifRoom" @@ -83,11 +90,12 @@ diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/ android:id="@+id/close_menu_id" android:icon="@drawable/btn_close" diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +index cd1eda60375bc..7bbf57d1a412d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java @@ -9,6 +9,7 @@ import android.app.Activity; - import org.chromium.base.jank_tracker.JankTracker; - import org.chromium.base.supplier.BooleanSupplier; + import androidx.annotation.Nullable; + import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; @@ -102,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; -@@ -74,7 +75,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -71,7 +72,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private NativePageFactory mNativePageFactory; @@ -112,10 +120,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe Supplier shareDelegateSupplier, Supplier ephemeralTabCoordinatorSupplier, diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +index f1c645990fbce..e21745babe837 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java -@@ -18,6 +18,11 @@ import org.chromium.chrome.browser.bookmarks.BookmarkManager; - import org.chromium.chrome.browser.bookmarks.BookmarkPage; +@@ -21,6 +21,11 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; + import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.embedder_support.util.UrlConstants; +import org.chromium.ui.base.ActivityWindowAndroid; @@ -125,26 +134,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B +import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; /** - * The activity that displays the bookmark UI on the phone. It keeps a {@link BookmarkManager} -@@ -29,6 +34,8 @@ public class BookmarkActivity extends SnackbarActivity { + * The activity that displays the bookmark UI on the phone. It keeps a {@link +@@ -33,6 +38,9 @@ public class BookmarkActivity extends SnackbarActivity { public static final int EDIT_BOOKMARK_REQUEST_CODE = 14; public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId"; + private ActivityWindowAndroid mWindowAndroid; ++ private IntentRequestTracker mIntentRequestTracker; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -@@ -43,8 +50,23 @@ public class BookmarkActivity extends SnackbarActivity { - mBookmarkManager.updateForUrl(url); - setContentView(mBookmarkManager.getView()); - BackPressHelper.create(this, getOnBackPressedDispatcher(), mBookmarkManager::onBackPressed); +@@ -54,8 +62,23 @@ public class BookmarkActivity extends SnackbarActivity { + BackPressHelper.create(this, getOnBackPressedDispatcher(), + mBookmarkManagerCoordinator::onBackPressed, SecondaryActivity.BOOKMARK); + } + + final boolean listenToActivityState = true; -+ IntentRequestTracker intentRequestTracker = IntentRequestTracker.createFromActivity(this); -+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, intentRequestTracker); ++ mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); ++ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, mIntentRequestTracker); + mWindowAndroid.getIntentRequestTracker().restoreInstanceState(savedInstanceState); -+ mBookmarkManager.setWindow(mWindowAndroid, ++ mBookmarkManagerCoordinator.setWindow(mWindowAndroid, + new ModalDialogManager( + new AppModalPresenter(this), ModalDialogManager.ModalDialogType.APP)); } @@ -159,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onDestroy() { super.onDestroy(); -@@ -54,6 +76,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -65,6 +88,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -167,7 +177,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString( data.getStringExtra(INTENT_VISIT_BOOKMARK_ID)); -@@ -61,6 +84,14 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -72,6 +96,14 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -180,52 +190,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B + } + /** - * @return The {@link BookmarkManager} for testing purposes. + * @return The {@link BookmarkManagerCoordinator} for testing purposes. */ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java -@@ -84,6 +84,12 @@ public class BookmarkActionBar extends SelectableListToolbar - } else if (menuItem.getItemId() == R.id.search_menu_id) { - mDelegate.openSearchUI(); - return true; -+ } else if (menuItem.getItemId() == R.id.import_menu_id) { -+ mDelegate.importBookmarks(); -+ return true; -+ } else if (menuItem.getItemId() == R.id.export_menu_id) { -+ mDelegate.exportBookmarks(); -+ return true; - } - - SelectionDelegate selectionDelegate = mDelegate.getSelectionDelegate(); -@@ -135,6 +141,8 @@ public class BookmarkActionBar extends SelectableListToolbar - void showLoadingUi() { - setTitle(null); - setNavigationButton(NAVIGATION_BUTTON_NONE); -+ getMenu().findItem(R.id.import_menu_id).setVisible(false); -+ getMenu().findItem(R.id.export_menu_id).setVisible(false); - getMenu().findItem(R.id.search_menu_id).setVisible(false); - getMenu().findItem(R.id.edit_menu_id).setVisible(false); - } -@@ -144,6 +152,8 @@ public class BookmarkActionBar extends SelectableListToolbar - super.showNormalView(); - - if (mDelegate == null) { -+ getMenu().findItem(R.id.import_menu_id).setVisible(false); -+ getMenu().findItem(R.id.export_menu_id).setVisible(false); - getMenu().findItem(R.id.search_menu_id).setVisible(false); - getMenu().findItem(R.id.edit_menu_id).setVisible(false); - } -@@ -173,6 +183,8 @@ public class BookmarkActionBar extends SelectableListToolbar - @Override - public void onFolderStateSet(BookmarkId folder) { - mCurrentFolder = mDelegate.getModel().getBookmarkById(folder); -+ getMenu().findItem(R.id.import_menu_id).setVisible(true); -+ getMenu().findItem(R.id.export_menu_id).setVisible(true); - getMenu().findItem(R.id.search_menu_id).setVisible(true); - getMenu().findItem(R.id.edit_menu_id).setVisible(mCurrentFolder.isEditable()); - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +index d86f25d04a506..488c2c8a5afbf 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java @@ -4,7 +4,20 @@ @@ -249,8 +217,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import android.text.TextUtils; import android.util.Pair; -@@ -42,6 +55,32 @@ import java.util.HashMap; - import java.util.HashSet; +@@ -38,6 +51,32 @@ import org.chromium.url.GURL; + import java.util.ArrayList; import java.util.List; +import org.chromium.base.ContentUriUtils; @@ -282,7 +250,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the * bookmark model stored in native. -@@ -442,6 +481,209 @@ class BookmarkBridge { +@@ -435,6 +474,209 @@ class BookmarkBridge { mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } @@ -492,7 +460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * @param query Keyword used for searching bookmarks. -@@ -990,6 +1232,39 @@ class BookmarkBridge { +@@ -919,6 +1161,39 @@ class BookmarkBridge { depthList.add(depth); } @@ -530,11 +498,11 @@ 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>(); + List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -1061,6 +1336,9 @@ class BookmarkBridge { +@@ -954,6 +1229,9 @@ class BookmarkBridge { int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); - void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, + void getChildIds(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, List bookmarksList); + void importBookmarks(long nativeBookmarkBridge, BookmarkBridge caller, WindowAndroid window); + void exportBookmarks(long nativeBookmarkBridge, BookmarkBridge caller, WindowAndroid window, @@ -543,11 +511,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, int index); int getTotalBookmarkCount( 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 +index 473c4a65a54d4..20582e2552642 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java -@@ -79,6 +79,16 @@ public interface BookmarkDelegate { +@@ -60,6 +60,16 @@ public interface BookmarkDelegate { */ - void openSearchUI(); + void openBookmarksInNewTabs(List bookmark, boolean incognito); + /** + * Imports bookmarks from user-selected file. @@ -560,30 +529,59 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + void exportBookmarks(); + /** - * Dismisses the search UI. + * Shows the search UI. + */ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +index b2afb6cb450e6..bbd7cb16c3fca 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +@@ -47,6 +47,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; + import org.chromium.components.image_fetcher.ImageFetcherConfig; + import org.chromium.components.image_fetcher.ImageFetcherFactory; + import org.chromium.ui.KeyboardVisibilityDelegate; ++import org.chromium.ui.base.ActivityWindowAndroid; ++import org.chromium.ui.modaldialog.ModalDialogManager; + import org.chromium.ui.modaldialog.ModalDialogManager; + import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; + import org.chromium.ui.modelutil.MVCListAdapter.ModelList; +@@ -225,6 +227,13 @@ public class BookmarkManagerCoordinator + + // Public API implementation. + ++ /** ++ * Sets the Android window that is used by further intents created by the bookmark activity. ++ */ ++ public void setWindow(ActivityWindowAndroid window, ModalDialogManager modalDialogManager) { ++ mMediator.setWindow(window, modalDialogManager); ++ } ++ + /** + * Destroys and cleans up itself. This must be called after done using this class. */ -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 -@@ -36,6 +36,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils; - import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; - import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout; - import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +index f52453574f2f7..b31f49fecd9f7 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +@@ -56,6 +56,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega + import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver; + import org.chromium.components.commerce.core.CommerceSubscription; + import org.chromium.components.commerce.core.ShoppingService; +import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.modaldialog.ModalDialogManager; - import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.components.favicon.LargeIconBridge; - import org.chromium.url.GURL; -@@ -59,6 +61,8 @@ public class BookmarkManager - private ComponentName mOpenBookmarkComponentName; - private ViewGroup mMainView; - private BookmarkModel mBookmarkModel; + import org.chromium.components.feature_engagement.EventConstants; + import org.chromium.components.power_bookmarks.PowerBookmarkMeta; +@@ -80,6 +82,9 @@ class BookmarkManagerMediator + + private static boolean sPreventLoadingForTesting; + + private ActivityWindowAndroid mWindowAndroid; + private ModalDialogManager mModalDialogManager; - private BookmarkUndoController mUndoController; - private final ObserverList mUIObservers = new ObserverList<>(); - private BasicNativePage mNativePage; -@@ -344,6 +348,14 @@ public class BookmarkManager ++ + /** + * Keeps track of whether drag is enabled / active for bookmark lists. + */ +@@ -453,6 +458,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -596,9 +594,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + } + /** - * @return Current URL representing the UI state of bookmark manager. If no state has been shown - * yet in this session, on phone return last used state stored in preference; on tablet -@@ -540,6 +552,16 @@ public class BookmarkManager + * See BookmarkManager(Coordinator)#updateForUrl + */ +@@ -628,6 +641,16 @@ class BookmarkManagerMediator } } @@ -613,12 +611,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + } + @Override - public void openSearchUI() { - setState(BookmarkUIState.createSearchState()); + public void openSearchUi() { + setState(BookmarkUiState.createSearchState()); 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 +index f7fe72dbbc14f..459b087fd19bb 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -@@ -13,6 +13,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -15,6 +15,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.native_page.BasicNativePage; import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.components.embedder_support.util.UrlConstants; @@ -627,8 +626,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm +import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; /** - * A native page holding a {@link BookmarkManager} on _tablet_. -@@ -29,12 +32,15 @@ public class BookmarkPage extends BasicNativePage { + * A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. +@@ -31,7 +34,7 @@ public class BookmarkPage extends BasicNativePage { * @param host A NativePageHost to load urls. */ public BookmarkPage(ComponentName componentName, SnackbarManager snackbarManager, @@ -636,27 +635,138 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + boolean isIncognito, NativePageHost host, ChromeActivity activity) { super(host); - mManager = new BookmarkManager( - host.getContext(), componentName, false, isIncognito, snackbarManager); - mManager.setBasicNativePage(this); -+ mManager.setWindow(activity.getWindowAndroid(), + mBookmarkManagerCoordinator = +@@ -39,6 +42,9 @@ public class BookmarkPage extends BasicNativePage { + snackbarManager, Profile.getLastUsedRegularProfile(), + new BookmarkUiPrefs(SharedPreferencesManager.getInstance())); + mBookmarkManagerCoordinator.setBasicNativePage(this); ++ mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( + new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP)); mTitle = host.getContext().getResources().getString(R.string.bookmarks); - initWithView(mManager.getView()); + initWithView(mBookmarkManagerCoordinator.getView()); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +index f7ddee75399ec..f4cacc323bad7 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +@@ -116,6 +116,17 @@ public class BookmarkToolbar extends SelectableListToolbar + setOnMenuItemClickListener(dragEnabled ? null : this); + } + ++ private Runnable mImportBookmarkRunnable; ++ private Runnable mExportBookmarkRunnable; ++ ++ void setImportBookmarkRunnable(Runnable runnable) { ++ mImportBookmarkRunnable = runnable; ++ } ++ ++ void setExportBookmarkRunnable(Runnable runnable) { ++ mExportBookmarkRunnable = runnable; ++ } ++ + void setSearchButtonVisible(boolean visible) { + // The improved bookmarks experience embeds search in the list. + if (BookmarkFeatures.isAndroidImprovedBookmarksEnabled()) return; +@@ -147,6 +158,8 @@ public class BookmarkToolbar extends SelectableListToolbar + + void setCurrentFolder(BookmarkId folder) { + mCurrentFolder = mBookmarkModel.getBookmarkById(folder); ++ getMenu().findItem(R.id.import_menu_id).setVisible(true); ++ getMenu().findItem(R.id.export_menu_id).setVisible(true); + } + + void setOpenFolderCallback(Callback openFolderCallback) { +@@ -166,6 +179,13 @@ public class BookmarkToolbar extends SelectableListToolbar + @Override + public boolean onMenuItemClick(MenuItem menuItem) { + hideOverflowMenu(); ++ if (menuItem.getItemId() == R.id.import_menu_id) { ++ mImportBookmarkRunnable.run(); ++ return true; ++ } else if (menuItem.getItemId() == R.id.export_menu_id) { ++ mExportBookmarkRunnable.run(); ++ return true; ++ } + return mMenuIdClickedFunction.apply(menuItem.getItemId()); + } + +@@ -186,6 +206,9 @@ public class BookmarkToolbar extends SelectableListToolbar + protected void showNormalView() { + super.showNormalView(); + ++ getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); ++ getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); ++ + // SelectableListToolbar will show/hide the entire group. + setSearchButtonVisible(mSearchButtonVisible); + setEditButtonVisible(mEditButtonVisible); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +index 09a98cf2bf9ef..571549cbeb3cf 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +@@ -81,6 +81,10 @@ class BookmarkToolbarMediator implements BookmarkUiObserver, DragListener, + mBookmarkDelegate = bookmarkDelegate; + mModel.set( + BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK, mBookmarkDelegate::openFolder); ++ mModel.set( ++ BookmarkToolbarProperties.IMPORT_BOOKMARK_RUNNABLE, mBookmarkDelegate::importBookmarks); ++ mModel.set( ++ BookmarkToolbarProperties.EXPORT_BOOKMARK_RUNNABLE, mBookmarkDelegate::exportBookmarks); + mBookmarkDelegate.addUiObserver(this); + mBookmarkDelegate.notifyStateChange(this); + }); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +index 354562e1e532e..9aec8b19b0841 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +@@ -60,10 +60,15 @@ class BookmarkToolbarProperties { + new WritableObjectPropertyKey<>(); + static final WritableObjectPropertyKey> OPEN_FOLDER_CALLBACK = + new WritableObjectPropertyKey<>(); ++ static final WritableObjectPropertyKey IMPORT_BOOKMARK_RUNNABLE = ++ new WritableObjectPropertyKey<>(); ++ static final WritableObjectPropertyKey EXPORT_BOOKMARK_RUNNABLE = ++ new WritableObjectPropertyKey<>(); + + static final PropertyKey[] ALL_KEYS = {BOOKMARK_MODEL, BOOKMARK_OPENER, SELECTION_DELEGATE, + TITLE, BOOKMARK_UI_MODE, SOFT_KEYBOARD_VISIBLE, IS_DIALOG_UI, DRAG_ENABLED, + SEARCH_BUTTON_VISIBLE, EDIT_BUTTON_VISIBLE, NEW_FOLDER_BUTTON_VISIBLE, + NAVIGATION_BUTTON_STATE, CURRENT_FOLDER, CHECKED_SORT_MENU_ID, CHECKED_VIEW_MENU_ID, +- MENU_ID_CLICKED_FUNCTION, OPEN_FOLDER_CALLBACK, FAKE_SELECTION_STATE_CHANGE}; ++ MENU_ID_CLICKED_FUNCTION, OPEN_FOLDER_CALLBACK, FAKE_SELECTION_STATE_CHANGE, ++ IMPORT_BOOKMARK_RUNNABLE, EXPORT_BOOKMARK_RUNNABLE}; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +index 1c0e057e465d3..de9704128e0fa 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +@@ -53,6 +53,12 @@ class BookmarkToolbarViewBinder { + model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); + } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) { + bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER)); ++ } else if (key == BookmarkToolbarProperties.IMPORT_BOOKMARK_RUNNABLE) { ++ bookmarkToolbar.setImportBookmarkRunnable( ++ model.get(BookmarkToolbarProperties.IMPORT_BOOKMARK_RUNNABLE)); ++ } else if (key == BookmarkToolbarProperties.EXPORT_BOOKMARK_RUNNABLE) { ++ bookmarkToolbar.setExportBookmarkRunnable( ++ model.get(BookmarkToolbarProperties.EXPORT_BOOKMARK_RUNNABLE)); + } else if (key == BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK) { + bookmarkToolbar.setOpenFolderCallback( + model.get(BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK)); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +index 40584998503a6..65e3337a58713 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -15,6 +15,7 @@ import org.chromium.base.jank_tracker.JankTracker; - import org.chromium.base.supplier.BooleanSupplier; +@@ -14,6 +14,7 @@ import androidx.annotation.VisibleForTesting; + import org.chromium.base.supplier.DestroyableObservableSupplier; import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -55,7 +56,7 @@ import org.chromium.ui.util.ColorUtils; +@@ -51,7 +52,7 @@ import org.chromium.ui.util.ColorUtils; * Creates NativePage objects to show chrome-native:// URLs using the native Android view system. */ public class NativePageFactory { @@ -665,7 +775,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier mCurrentTabSupplier; -@@ -73,7 +74,7 @@ public class NativePageFactory { +@@ -66,7 +67,7 @@ public class NativePageFactory { private NativePageBuilder mNativePageBuilder; @@ -674,7 +784,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat @NonNull BottomSheetController sheetController, @NonNull BrowserControlsManager browserControlsManager, @NonNull Supplier currentTabSupplier, -@@ -124,7 +125,7 @@ public class NativePageFactory { +@@ -109,7 +110,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -683,16 +793,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mUma; private final BrowserControlsManager mBrowserControlsManager; -@@ -138,7 +139,7 @@ public class NativePageFactory { +@@ -122,7 +123,7 @@ public class NativePageFactory { private final Supplier mToolbarSupplier; - private final CrowButtonDelegate mCrowButtonDelegate; + private final HomeSurfaceTracker mHomeSurfaceTracker; - public NativePageBuilder(Activity activity, Supplier uma, + public NativePageBuilder(ChromeActivity activity, Supplier uma, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, Supplier currentTabSupplier, Supplier snackbarManagerSupplier, -@@ -177,7 +178,7 @@ public class NativePageFactory { +@@ -159,7 +160,7 @@ public class NativePageFactory { protected NativePage buildBookmarksPage(Tab tab) { return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(), mTabModelSelector.isIncognitoSelected(), @@ -702,11 +812,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat protected NativePage buildDownloadsPage(Tab tab) { diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn +index caaa787094af2..48d31e421412b 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1887,6 +1887,13 @@ static_library("browser") { - ] - } +@@ -204,6 +204,8 @@ static_library("browser") { + "bluetooth/chrome_bluetooth_delegate_impl_client.h", + "bookmarks/bookmark_model_factory.cc", + "bookmarks/bookmark_model_factory.h", ++ "bookmarks/bookmark_html_writer.cc", ++ "bookmarks/bookmark_html_writer.h", + "bookmarks/chrome_bookmark_client.cc", + "bookmarks/chrome_bookmark_client.h", + "bookmarks/managed_bookmark_service_factory.cc", +@@ -1873,6 +1875,13 @@ static_library("browser") { + "webid/federated_identity_permission_context_factory.h", + ] + if (is_android) { + sources += [ @@ -718,16 +838,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -2904,6 +2911,8 @@ static_library("browser") { - "autofill/manual_filling_controller.h", - "autofill/manual_filling_controller_impl.cc", - "autofill/manual_filling_controller_impl.h", -+ "bookmarks/bookmark_html_writer.cc", -+ "bookmarks/bookmark_html_writer.h", - "autofill/manual_filling_utils.cc", - "autofill/manual_filling_utils.h", - "autofill/manual_filling_view_interface.h", -@@ -3583,8 +3592,6 @@ static_library("browser") { +@@ -3498,8 +3507,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -737,9 +848,10 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "cart/cart_db.cc", "cart/cart_db.h", diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 09aff791060a2..b18dc95f4c872 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9039,6 +9039,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9365,6 +9365,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)}, #endif @@ -750,12 +862,13 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc + chrome::android::kBookmarksExportUseSaf)}, + #if BUILDFLAG(IS_CHROMEOS_ASH) - {"snooping-protection", flag_descriptions::kSnoopingProtectionName, - flag_descriptions::kSnoopingProtectionDescription, kOsCrOS, + {"video-conference", flag_descriptions::kVideoConferenceName, + flag_descriptions::kVideoConferenceDescription, kOsCrOS, diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc +index 251b078ebdff5..a1b28027dfc9d 100644 --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -60,6 +60,25 @@ +@@ -58,6 +58,25 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" @@ -781,7 +894,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse using base::android::AttachCurrentThread; using base::android::ConvertUTF16ToJavaString; using base::android::ConvertUTF8ToJavaString; -@@ -77,8 +96,92 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -75,8 +94,92 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -867,14 +980,14 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + + private: + const ScopedJavaGlobalRef obj_; -+ ui::WindowAndroid* window_; ++ raw_ptr window_; + const std::string export_path_; +}; + class BookmarkTitleComparer { public: explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -164,6 +267,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -198,6 +301,10 @@ BookmarkBridge::~BookmarkBridge() { if (partner_bookmarks_shim_) partner_bookmarks_shim_->RemoveObserver(this); reading_list_manager_->RemoveObserver(this); @@ -885,7 +998,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef&) { -@@ -574,6 +681,182 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -619,6 +726,182 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1069,12 +1182,13 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse const JavaParamRef& obj, jlong id, diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h +index 44388de31493e..f194fe45a09f5 100644 --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -18,6 +18,7 @@ - #include "base/scoped_observation.h" - #include "base/strings/utf_string_conversions.h" +@@ -19,6 +19,7 @@ + #include "base/supports_user_data.h" #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" + #include "chrome/browser/image_service/image_service_factory.h" +#include "chrome/browser/bookmarks/bookmark_html_writer.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_observer.h" @@ -1089,17 +1203,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser namespace bookmarks { class BookmarkModel; class ManagedBookmarkService; -@@ -42,7 +46,8 @@ class Profile; - class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -44,7 +48,8 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, public PartnerBookmarksShim::Observer, public ReadingListManager::Observer, -- public ProfileObserver { -+ public ProfileObserver, + public ProfileObserver, +- public base::SupportsUserData::Data { ++ public base::SupportsUserData::Data, + public ui::SelectFileDialog::Listener { public: - BookmarkBridge(JNIEnv* env, - const base::android::JavaRef& obj, -@@ -62,6 +67,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, + BookmarkBridge(Profile* profile, + bookmarks::BookmarkModel* model, +@@ -74,6 +79,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, bool IsDoingExtensiveChanges(JNIEnv* env, const base::android::JavaParamRef& obj); @@ -1112,7 +1226,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting( -@@ -159,6 +170,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -171,6 +182,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, jlong id, jint type); @@ -1128,14 +1242,14 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void SetBookmarkTitle(JNIEnv* env, const base::android::JavaParamRef& obj, jlong id, -@@ -372,12 +392,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -363,12 +383,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, void DestroyJavaObject(); raw_ptr profile_; + base::FilePath export_path_; -+ BookmarksExportObserver* observer_; // weak ++ raw_ptr observer_; // weak + - JavaObjectWeakGlobalRef weak_java_ref_; + base::android::ScopedJavaGlobalRef java_bookmark_model_; raw_ptr bookmark_model_; // weak raw_ptr managed_bookmark_service_; // weak std::unique_ptr @@ -1145,7 +1259,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -389,6 +413,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -382,6 +406,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, // Observes the profile destruction and creation. base::ScopedObservation profile_observation_{this}; @@ -1153,10 +1267,11 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + void FileSelectedImplOnUIThread(const base::FilePath& path, + const std::string& contents); + - // A means of accessing metadata about bookmarks. - raw_ptr opt_guide_; - + // Weak pointers for creating callbacks that won't call into a destroyed + // object. + base::WeakPtrFactory weak_ptr_factory_; diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc +index 7451b2923dcb6..425e94c42b1d4 100644 --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc @@ -27,6 +27,7 @@ @@ -1167,7 +1282,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/profiles/profile.h" -@@ -234,7 +235,12 @@ class Writer : public base::RefCountedThreadSafe { +@@ -229,7 +230,12 @@ class Writer : public base::RefCountedThreadSafe { // Opens the file, returning true on success. bool OpenFile() { int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE; @@ -1182,6 +1297,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b PLOG(ERROR) << "Could not create " << path_; return false; diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +index 46b03763a17f8..c6c56e5bf5063 100644 --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java @@ -49,7 +49,7 @@ public class DownloadLocationCustomView @@ -1221,6 +1337,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse DirectoryOption selected = (DirectoryOption) mFileLocation.getSelectedItem(); return selected; diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java +index 32c96b9119073..5cb127a6b02b4 100644 --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java @@ -36,12 +36,12 @@ import java.util.ArrayList; @@ -1249,10 +1366,11 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse if (mDialogModel != null) return; diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 795d5afd40e6b..f3551638c554b 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6836,6 +6836,11 @@ const char kVcControlsUiDescription[] = - +@@ -7351,6 +7351,11 @@ const char kEnableAudioFocusEnforcementDescription[] = + "any one time. Requires #enable-media-session-service to be enabled too."; #endif // BUILDFLAG(IS_CHROMEOS_ASH) +const char kBookmarksExportUseSafName[] = "Use saf for bookmarks export"; @@ -1264,11 +1382,12 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti // Don't just add flags to the end, put them in the right section in // alphabetical order just like the header file. diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 0cfc2a7d06e69..05ae52fbdc275 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3942,6 +3942,9 @@ extern const char kDisableLacrosTtsSupportDescription[]; - extern const char kVcControlsUiName[]; - extern const char kVcControlsUiDescription[]; +@@ -4249,6 +4249,9 @@ extern const char kEnableAudioFocusEnforcementName[]; + extern const char kEnableAudioFocusEnforcementDescription[]; + #endif // BUILDFLAG(IS_CHROMEOS_ASH) +extern const char kBookmarksExportUseSafName[]; +extern const char kBookmarksExportUseSafDescription[]; @@ -1277,17 +1396,18 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio // Don't just add flags to the end, put them in the right section in // alphabetical order. See top instructions for more. diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc +index fc901e41521ab..f4f245e8efa7e 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kCastDeviceFilter, +@@ -176,6 +176,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kClearOmniboxFocusAfterNavigation, &kCloseTabSuggestions, + &kCloseTabSaveTabList, + &kBookmarksExportUseSaf, &kCriticalPersistedTabData, - &kCommerceCoupons, + &kCreateNewTabInitializeRenderer, &kCCTBackgroundTab, -@@ -1114,6 +1115,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent, +@@ -1155,5 +1156,10 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent, "WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1296,32 +1416,34 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse + "BookmarksExportUseSaf", + base::FEATURE_DISABLED_BY_DEFAULT); + - static jboolean JNI_ChromeFeatureList_IsEnabled( - JNIEnv* env, - const JavaParamRef& jfeature_name) { + } // namespace android + } // namespace chrome diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h +index d67f4850e046e..5c40332affe56 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -161,6 +161,7 @@ BASE_DECLARE_FEATURE(kDiscoverFeedMultiColumn); - BASE_DECLARE_FEATURE(kTabStripRedesign); - BASE_DECLARE_FEATURE(kTabSwitcherOnReturn); +@@ -177,6 +177,7 @@ BASE_DECLARE_FEATURE(kTabStripRedesign); + BASE_DECLARE_FEATURE(kTabletToolbarReordering); + BASE_DECLARE_FEATURE(kTabStripStartupRefactoring); BASE_DECLARE_FEATURE(kTabToGTSAnimation); +BASE_DECLARE_FEATURE(kBookmarksExportUseSaf); BASE_DECLARE_FEATURE(kTestDefaultDisabled); BASE_DECLARE_FEATURE(kTestDefaultEnabled); - BASE_DECLARE_FEATURE(kToolbarMicIphAndroid); + BASE_DECLARE_FEATURE(kThumbnailPlaceholder); diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +index ded32decebb05..07777d549bb86 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -620,6 +620,7 @@ public abstract class ChromeFeatureList { +@@ -472,6 +472,7 @@ public abstract class ChromeFeatureList { + public static final String USE_CHIME_ANDROID_SDK = "UseChimeAndroidSdk"; public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; - public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; public static final String VOICE_BUTTON_IN_TOP_TOOLBAR = "VoiceButtonInTopToolbar"; - public static final String VR_BROWSING_FEEDBACK = "VrBrowsingFeedback"; - public static final String WEB_FEED = "WebFeed"; + public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; + public static final String WEBNOTES_STYLIZE = "WebNotesStylize"; diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc +index 8196f333154dc..7904c2e93ff63 100644 --- a/chrome/browser/importer/profile_writer.cc +++ b/chrome/browser/importer/profile_writer.cc @@ -106,12 +106,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page, @@ -1357,6 +1479,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer // If the bookmark bar is currently empty, we should import directly to it. diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/profile_writer.h +index fd2612fcc9e3f..febf804edc41f 100644 --- a/chrome/browser/importer/profile_writer.h +++ b/chrome/browser/importer/profile_writer.h @@ -11,6 +11,7 @@ @@ -1380,29 +1503,31 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ // Adds the TemplateURLs in |template_urls| to the local store. diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +index 9a5d215cfed32..1054c3130d4d8 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -113,6 +113,8 @@ public final class ChromePreferenceKeys { - public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url"; - public static final String BOOKMARKS_LAST_USED_PARENT = +@@ -108,6 +108,8 @@ public final class ChromePreferenceKeys { "enhanced_bookmark_last_used_parent_folder"; + public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder"; + public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay"; + public static final String BOOKMARKS_LAST_EXPORT_URI = + "Chrome.Bookmarks.Last_Export_Uri"; /** * Whether Chrome is set as the default browser. -@@ -1049,6 +1051,7 @@ public final class ChromePreferenceKeys { +@@ -984,6 +986,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, + BOOKMARKS_LAST_EXPORT_URI, APPLICATION_OVERRIDE_LANGUAGE, BLUETOOTH_NOTIFICATION_IDS, - CHROME_SURVEY_DOWNLOAD_ATTEMPTS.pattern(), + BOOKMARKS_SORT_ORDER, diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index c6422f111c7bd..61cc0218605bf 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -243,6 +243,24 @@ CHAR_LIMIT guidelines: +@@ -240,6 +240,24 @@ CHAR_LIMIT guidelines: Sites @@ -1428,9 +1553,10 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Virtual Reality diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn +index f7488a246dd07..2b8ffab51e83e 100644 --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -401,6 +401,9 @@ static_library("common_lib") { +@@ -414,6 +414,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1441,6 +1567,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn } else { # Non-Android. diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn +index fc868ad0b5299..e0533add9cf1e 100644 --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn @@ -89,8 +89,6 @@ static_library("utility") { @@ -1452,7 +1579,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/external_process_importer_bridge.cc", -@@ -215,6 +213,11 @@ static_library("utility") { +@@ -220,6 +218,11 @@ static_library("utility") { ] } @@ -1461,10 +1588,11 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn + "importer/bookmark_html_reader.h", + ] + - if (use_nss_certs) { + # NSS decryptor is not needed on ChromeOS. + if (!is_chromeos && use_nss_certs) { sources += [ - "importer/nss_decryptor_system_nss.cc", diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/importer/bookmark_html_reader.cc +index 81985a8417569..d819074feffdf 100644 --- a/chrome/utility/importer/bookmark_html_reader.cc +++ b/chrome/utility/importer/bookmark_html_reader.cc @@ -17,7 +17,9 @@ @@ -1547,6 +1675,7 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/im continue; } diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/importer/bookmark_html_reader.h +index cc2532b6e0c46..8f29e4b2fc6d0 100644 --- a/chrome/utility/importer/bookmark_html_reader.h +++ b/chrome/utility/importer/bookmark_html_reader.h @@ -50,6 +50,14 @@ void ImportBookmarksFile( @@ -1565,9 +1694,10 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp // has replacement terms. Chrome treats such bookmarks as search engines rather // than true bookmarks. diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +index 61807a75045a0..087170f9b6940 100644 --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -41,6 +41,7 @@ import org.chromium.base.task.AsyncTask; +@@ -44,6 +44,7 @@ import org.chromium.base.task.AsyncTask; import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.ui.R; @@ -1575,7 +1705,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui import org.chromium.ui.UiUtils; import org.chromium.ui.permissions.PermissionConstants; -@@ -64,6 +65,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -67,6 +68,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private static final String TAG = "SelectFileDialog"; private static final String IMAGE_TYPE = "image"; private static final String VIDEO_TYPE = "video"; @@ -1583,7 +1713,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui private static final String AUDIO_TYPE = "audio"; private static final String ALL_TYPES = "*/*"; -@@ -258,6 +260,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -263,6 +265,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mFileTypes = fileTypes; } @@ -1595,16 +1725,16 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui /** * Creates and starts an intent based on the passed fileTypes and capture value. * @param fileTypes MIME types requested (i.e. "image/*") -@@ -284,7 +291,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -289,7 +296,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); - if (shouldUsePhotoPicker) { + if (shouldUsePhotoPicker || shouldShowHtmlTypes()) { - if (BuildInfo.isAtLeastT()) { - if (!window.hasPermission(PermissionConstants.READ_MEDIA_IMAGES) - && shouldShowImageTypes()) { -@@ -325,7 +332,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick + // The permission scenario for accessing media has evolved a bit over the years: + // Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was + // later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and +@@ -338,7 +345,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } // TODO(finnur): Remove once we figure out the cause of crbug.com/950024. @@ -1613,7 +1743,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", -@@ -339,7 +346,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -352,7 +359,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1622,7 +1752,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui if (permissions[i].equals(storagePermission) || permissions[i].equals(PermissionConstants.READ_MEDIA_IMAGES) || permissions[i].equals( -@@ -544,6 +551,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -629,6 +636,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType); } @@ -1630,7 +1760,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -872,6 +880,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -957,6 +965,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mFileTypes.size(); } @@ -1642,22 +1772,24 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui * Checks whether the list of accepted types effectively describes only a single * type, which might be wildcard. For example: diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/strings/android_ui_strings.grd +index 57c783e27d97f..a1c563158daa6 100644 --- a/ui/android/java/strings/android_ui_strings.grd +++ b/ui/android/java/strings/android_ui_strings.grd -@@ -181,6 +181,9 @@ - - Unable to open the photo picker +@@ -184,6 +184,9 @@ + + Unable to select media due to denied permissions + + Failed to save selected file + - - + + diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h +index 3f1db1a9c6fd3..44616f1dd4121 100644 --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -210,6 +210,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog +@@ -211,6 +211,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog const GURL* caller = nullptr); bool HasMultipleFileTypeChoices(); @@ -1667,6 +1799,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil friend class base::RefCountedThreadSafe; diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc +index f6384f36a7436..1ac2e911cea8b 100644 --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc @@ -142,6 +142,12 @@ void SelectFileDialogImpl::SelectFileImpl( @@ -1680,9 +1813,10 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/s +} + SelectFileDialogImpl::~SelectFileDialogImpl() { - } - + JNIEnv* env = base::android::AttachCurrentThread(); + Java_SelectFileDialog_nativeDestroyed(env, java_object_); diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/select_file_dialog_android.h +index c5bc6ac23f582..fe6acdfdcbd15 100644 --- a/ui/shell_dialogs/select_file_dialog_android.h +++ b/ui/shell_dialogs/select_file_dialog_android.h @@ -58,6 +58,8 @@ class SelectFileDialogImpl : public SelectFileDialog { @@ -1694,5 +1828,6 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/se protected: ~SelectFileDialogImpl() override; --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-custom-tab-intents-privacy-option.patch b/bromite/build/patches/Add-custom-tab-intents-privacy-option.patch index c188fbaf..90899105 100644 --- a/bromite/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/bromite/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -1,6 +1,7 @@ +From c8c4f5a914f6842a28571624908dd24274d1172d Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Wed, 29 Aug 2018 11:03:44 +0200 -Subject: Add custom tab intents privacy option +Subject: [PATCH 067/192] Add custom tab intents privacy option Add custom tab intents privacy option and force open external links in incognito flag. @@ -12,17 +13,20 @@ See also: https://github.com/bromite/bromite/issues/1474 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../java/res/xml/privacy_preferences.xml | 10 ++++++++ - .../browser/LaunchIntentDispatcher.java | 22 +++++++++++++++++ + .../browser/LaunchIntentDispatcher.java | 21 ++++++++++++++++ .../IncognitoCustomTabIntentDataProvider.java | 6 +++++ .../privacy/settings/PrivacySettings.java | 24 +++++++++++++++++++ + .../flags/android/chrome_feature_list.cc | 6 ++--- .../chrome/browser/tab/TabAssociatedApp.java | 6 ++++- - .../strings/android_chrome_strings.grd | 15 ++++++++++++ - 6 files changed, 82 insertions(+), 1 deletion(-) + .../strings/android_chrome_strings.grd | 14 +++++++++++ + .../core/common/language_experiments.cc | 4 ++-- + 8 files changed, 85 insertions(+), 6 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml +index 68b5042d47935..bb0c084bca718 100644 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -58,6 +58,16 @@ found in the LICENSE file. +@@ -68,6 +68,16 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" android:key="do_not_track" android:title="@string/do_not_track_title"/> @@ -40,18 +44,19 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi android:key="privacy_sandbox" android:title="@string/prefs_privacy_sandbox" diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +index 394815849855a..8be68f2d60ad4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -45,6 +45,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; +@@ -42,6 +42,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.searchwidget.SearchActivity; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.translate.TranslateIntentHandler; import org.chromium.chrome.browser.util.AndroidTaskUtils; - import org.chromium.chrome.browser.vr.VrModuleProvider; -@@ -58,6 +59,8 @@ import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; + import org.chromium.chrome.browser.webapps.WebappLauncherActivity; +@@ -56,6 +57,8 @@ import java.lang.reflect.InvocationTargetException; + import java.lang.reflect.Method; import java.util.Set; +import org.chromium.chrome.browser.privacy.settings.PrivacySettings; @@ -80,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -433,6 +443,18 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega +@@ -447,6 +457,17 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -95,14 +100,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis + IntentHandler.setTabLaunchType(newIntent, TabLaunchType.FROM_EXTERNAL_APP); + newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } -+ - long time = SystemClock.elapsedRealtime(); if (!chromeTabbedTaskExists()) { newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true); + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +index 3256626b839f9..ce64a932a4da0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java -@@ -35,6 +35,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -38,6 +38,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import java.util.ArrayList; import java.util.List; @@ -112,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito Custom Tabs specific customization * data. -@@ -108,6 +111,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -113,6 +116,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -123,11 +128,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +index bf1d9e1d63677..c77adbfd1896e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -76,6 +76,9 @@ public class PrivacySettings - private ManagedPreferenceDelegate mManagedPreferenceDelegate; - private IncognitoLockSettings mIncognitoLockSettings; +@@ -103,6 +103,9 @@ public class PrivacySettings extends PreferenceFragmentCompat + private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; + private Profile mProfile; + private ChromeSwitchPreference allowCustomTabIntentsPref; + private ChromeSwitchPreference openExternalLinksPref; @@ -135,8 +141,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { PrivacyPreferencesManagerImpl privacyPrefManager = -@@ -135,6 +138,9 @@ public class PrivacySettings - updatePreferences(); +@@ -250,6 +253,9 @@ public class PrivacySettings extends PreferenceFragmentCompat + new SpanApplier.SpanInfo("", "", servicesLink)); } + public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; @@ -145,7 +151,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -151,6 +157,14 @@ public class PrivacySettings +@@ -264,6 +270,14 @@ public class PrivacySettings extends PreferenceFragmentCompat } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -160,8 +166,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -173,6 +187,16 @@ public class PrivacySettings - canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); +@@ -287,6 +301,16 @@ public class PrivacySettings extends PreferenceFragmentCompat + UserPrefs.get(mProfile).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } + allowCustomTabIntentsPref = @@ -176,8 +182,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK); if (doNotTrackPref != null) { - doNotTrackPref.setSummary(prefService.getBoolean(Pref.ENABLE_DO_NOT_TRACK) + doNotTrackPref.setSummary(UserPrefs.get(mProfile).getBoolean(Pref.ENABLE_DO_NOT_TRACK) +diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc +index 0502f21346f0e..0fbc930ab5547 100644 +--- a/chrome/browser/flags/android/chrome_feature_list.cc ++++ b/chrome/browser/flags/android/chrome_feature_list.cc +@@ -541,8 +541,8 @@ BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, + base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite + + BASE_FEATURE(kCCTIntentFeatureOverrides, +- "CCTIntentFeatureOverrides", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "CCTIntentFeatureOverrides", // must be disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + + BASE_FEATURE(kCCTPageInsightsHub, + "CCTPageInsightsHub", +@@ -550,7 +550,7 @@ BASE_FEATURE(kCCTPageInsightsHub, + + BASE_FEATURE(kCCTPostMessageAPI, + "CCTPostMessageAPI", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kCCTPrefetchDelayShowOnStart, + "CCTPrefetchDelayShowOnStart", diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +index 9ea6ff6d6d85f..16c6a1fd44976 100644 --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java @@ -84,7 +84,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im @@ -194,11 +225,12 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso return tab.getLaunchType() == TabLaunchType.FROM_EXTERNAL_APP && !TextUtils.equals(app.getAppId(), packageName); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index 078c15abf9349..6c840e3b415fd 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4788,6 +4788,21 @@ To change this setting, <resetlink>reset sync

- Show original +@@ -5015,6 +5015,20 @@ To change this setting, <resetlink>reset sync

+ Resume + + @@ -207,7 +239,6 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro + + Allow applications to open custom tab intents, similar to webview. + -+ + + + Open external links in incognito @@ -215,8 +246,24 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro + + Force the opening of all external links in incognito mode + + + + Show your Chrome activity in Digital Wellbeing? +diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc +index eddc4487ff15f..482bedca4a1f5 100644 +--- a/components/language/core/common/language_experiments.cc ++++ b/components/language/core/common/language_experiments.cc +@@ -39,8 +39,8 @@ BASE_FEATURE(kContentLanguagesInLanguagePicker, + "ContentLanguagesInLanguagePicker", + base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kCctAutoTranslate, +- "CCTAutoTranslate", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "CCTAutoTranslate", // Always disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - - --- -2.25.1 + // Params: + const char kContentLanguagesDisableObserversParam[] = "disable_observers"; +-- +2.34.1 + diff --git a/bromite/build/patches/Add-exit-menu-item.patch b/bromite/build/patches/Add-exit-menu-item.patch index 1454b425..f11e634b 100644 --- a/bromite/build/patches/Add-exit-menu-item.patch +++ b/bromite/build/patches/Add-exit-menu-item.patch @@ -1,6 +1,7 @@ +From 3f2c8b831810ddb73058bab1a1bb4132b8d2e9c1 Mon Sep 17 00:00:00 2001 From: Serg Date: Tue, 31 Jan 2017 22:12:27 -0500 -Subject: Add exit menu item +Subject: [PATCH 054/192] Add exit menu item Corrected Exit functionality @@ -15,9 +16,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml +index ffd01526b4ba6..7029425878958 100644 --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -161,6 +161,9 @@ found in the LICENSE file. +@@ -158,6 +158,9 @@ found in the LICENSE file. @@ -27,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -190,6 +193,9 @@ found in the LICENSE file. +@@ -184,6 +187,9 @@ found in the LICENSE file. @@ -38,6 +40,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/ApplicationLifetime.java b/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java +index 38987c86b46d9..7ba324967588f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLifetime.java @@ -6,6 +6,7 @@ package org.chromium.chrome.browser; @@ -57,18 +60,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife observer.onTerminate(restart); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +index 9ab3f3042c8a2..ec3ebe0f435c9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -224,6 +224,8 @@ import java.util.HashSet; - import java.util.List; - import java.util.Locale; +@@ -230,6 +230,8 @@ import java.util.Locale; + import java.util.Set; + import java.util.concurrent.atomic.AtomicBoolean; +import org.chromium.chrome.browser.ApplicationLifetime; + /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs * are accessible via a chrome specific tab switching UI. -@@ -2188,6 +2190,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2397,6 +2398,11 @@ public abstract class ChromeActivity return true; } @@ -101,6 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv UpdateMenuItemHelper.getInstance().onMenuItemClicked(this); return true; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java +index 85548428958f9..93379024a0d94 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java @@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer, @@ -117,9 +123,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife @Override diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index 2a8451dcd2e5d..c6422f111c7bd 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3470,6 +3470,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Dark theme @@ -129,5 +136,6 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Appearance --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/bromite/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 9ea09477..6a282ef6 100644 --- a/bromite/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/bromite/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -1,6 +1,7 @@ +From 9afbcdd5cd2538ea4b4995410a87be56c1fb24ae Mon Sep 17 00:00:00 2001 From: Blaise Date: Sat, 22 Aug 2020 08:52:40 -0500 -Subject: Add flag for omnibox autocomplete filtering +Subject: [PATCH 132/192] Add flag for omnibox autocomplete filtering Adds a flag that restricts whether search history, clipboard, bookmarks and internal chrome:// pages will be used for the autocomplete results. @@ -8,16 +9,17 @@ and internal chrome:// pages will be used for the autocomplete results. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/about_flags.cc | 22 ++++++++++++++++++- - .../browser/autocomplete_controller.cc | 11 ++++++++++ + .../browser/autocomplete_controller.cc | 10 +++++++++ .../omnibox/browser/history_url_provider.cc | 3 +++ components/omnibox/browser/search_provider.cc | 4 ++++ components/url_formatter/url_fixer.cc | 4 ++++ - 5 files changed, 43 insertions(+), 1 deletion(-) + 5 files changed, 42 insertions(+), 1 deletion(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index ff9e6524fee9e..b25742e709388 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -525,6 +525,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = { +@@ -582,6 +582,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = { #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID) @@ -40,7 +42,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = { {"mode", "always-none"}}; const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = { -@@ -4371,7 +4387,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4630,7 +4646,11 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsLinux | kOsWin, FEATURE_VALUE_TYPE(features::kSystemNotifications)}, #endif // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH) @@ -54,21 +56,21 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc flag_descriptions::kAdaptiveButtonInTopToolbarName, flag_descriptions::kAdaptiveButtonInTopToolbarDescription, kOsAndroid, diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc +index 0352c0916353b..86c0d7429ffac 100644 --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -15,6 +15,8 @@ - - #include "base/bind.h" +@@ -18,6 +18,7 @@ + #include "base/barrier_callback.h" #include "base/check_op.h" -+#include "base/containers/contains.h" + #include "base/containers/contains.h" +#include "base/command_line.h" #include "base/feature_list.h" #include "base/format_macros.h" - #include "base/metrics/histogram_functions.h" -@@ -338,6 +340,15 @@ AutocompleteController::AutocompleteController( - is_cros_launcher_(is_cros_launcher), - search_service_worker_signal_sent_(false), - template_url_service_(provider_client_->GetTemplateURLService()) { + #include "base/functional/bind.h" +@@ -359,6 +360,15 @@ AutocompleteController::AutocompleteController( + template_url_service_(provider_client_->GetTemplateURLService()), + triggered_feature_service_( + provider_client_->GetOmniboxTriggeredFeatureService()) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) { + const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"); + provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH | @@ -80,11 +82,12 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ + } provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes(); - if (OmniboxFieldTrial::kAutocompleteStabilityAsyncProvidersFirst.Get()) { + // Providers run in the order they're added. Async providers should run first diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc +index 471a49da4421e..e586f793a2459 100644 --- a/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc -@@ -475,6 +475,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, +@@ -478,6 +478,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY) matches_.push_back(what_you_typed_match); @@ -95,17 +98,18 @@ diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omn history::HistoryService* const history_service = client()->GetHistoryService(); diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc +index ad5b20a85aa3d..8b292c651c2e1 100644 --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc @@ -12,6 +12,7 @@ #include "base/base64.h" - #include "base/bind.h" - #include "base/callback.h" -+#include "base/command_line.h" #include "base/feature_list.h" + #include "base/functional/bind.h" ++#include "base/command_line.h" + #include "base/functional/callback.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -677,6 +678,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -649,6 +650,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { @@ -116,6 +120,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ // we still have the last results and don't need to do anything. if (minimal_changes) diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc +index 3db922698161e..1fa79fc8eef3a 100644 --- a/components/url_formatter/url_fixer.cc +++ b/components/url_formatter/url_fixer.cc @@ -7,6 +7,8 @@ @@ -136,5 +141,6 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur url.append(kChromeUIDefaultHost); FixupPort(trimmed, parts.port, &url); FixupPath(trimmed, parts.path, &url); --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-for-save-data-header.patch b/bromite/build/patches/Add-flag-for-save-data-header.patch index 14aafb4e..1a69bf42 100644 --- a/bromite/build/patches/Add-flag-for-save-data-header.patch +++ b/bromite/build/patches/Add-flag-for-save-data-header.patch @@ -1,6 +1,7 @@ +From 75a6f0cf96491bb325396d82b686716c09fea59b Mon Sep 17 00:00:00 2001 From: Wengling Chen Date: Mon, 1 Feb 2021 19:18:55 +0200 -Subject: Add flag for save-data-header +Subject: [PATCH 159/192] Add flag for save-data-header License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -9,13 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag_descriptions.h | 3 +++ .../browser/loader/browser_initiated_resource_request.cc | 8 ++++++++ services/network/public/cpp/features.cc | 5 +++++ - services/network/public/cpp/features.h | 2 +- - 6 files changed, 25 insertions(+), 2 deletions(-) + services/network/public/cpp/features.h | 2 ++ + 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 4cc426d650764..39918ceecb34f 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4981,7 +4981,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5246,7 +5246,10 @@ const FeatureEntry kFeatureEntries[] = { {"force-text-direction", flag_descriptions::kForceTextDirectionName, flag_descriptions::kForceTextDirectionDescription, kOsAll, MULTI_VALUE_TYPE(kForceTextDirectionChoices)}, @@ -28,9 +30,10 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc flag_descriptions::kUpdateMenuTypeDescription, kOsAndroid, MULTI_VALUE_TYPE(kForceUpdateMenuTypeChoices)}, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index bfcc1bb132ee7..802af883f2789 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1261,6 +1261,10 @@ const char kDeprecateAltBasedSixPackDescription[] = +@@ -1332,6 +1332,10 @@ const char kDeprecateAltBasedSixPackDescription[] = "Show deprecation notifications and disable functionality for Alt based " "six pack deprecations. The Search based versions continue to work."; @@ -38,15 +41,16 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti +const char kEnableSaveDataHeaderDescription[] = + "Enable save-data header without enabling Data Saver."; + - const char kExperimentalAccessibilityLanguageDetectionName[] = - "Experimental accessibility language detection"; - const char kExperimentalAccessibilityLanguageDetectionDescription[] = + const char kDeprecateOldKeyboardShortcutsAcceleratorName[] = + "Enable deprecation notifications for Ctrl+Alt+/ to open Keyboard " + "shortcuts app"; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 37086d3566b64..9b6c6ef4e61ea 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -662,6 +662,9 @@ extern const char kDeprecateAltClickDescription[]; - extern const char kDeprecateAltBasedSixPackName[]; - extern const char kDeprecateAltBasedSixPackDescription[]; +@@ -694,6 +694,9 @@ extern const char kDeprecateAltBasedSixPackDescription[]; + extern const char kDeprecateOldKeyboardShortcutsAcceleratorName[]; + extern const char kDeprecateOldKeyboardShortcutsAcceleratorDescription[]; +extern const char kEnableSaveDataHeaderName[]; +extern const char kEnableSaveDataHeaderDescription[]; @@ -55,6 +59,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kMemlogDescription[]; extern const char kMemlogModeMinimal[]; diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/content/browser/loader/browser_initiated_resource_request.cc +index eccf66c36501d..3a517f4d9f103 100644 --- a/content/browser/loader/browser_initiated_resource_request.cc +++ b/content/browser/loader/browser_initiated_resource_request.cc @@ -4,6 +4,9 @@ @@ -82,11 +87,12 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont headers->RemoveHeader("Save-Data"); } diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc +index 73196507acb55..5698c3a922532 100644 --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -20,6 +20,11 @@ BASE_FEATURE(kExpectCTReporting, - "ExpectCTReporting", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -13,6 +13,11 @@ + + namespace network::features { +// Enable save-data header separately (without enabled data reduction service). +BASE_FEATURE(kEnableSaveDataHeader, @@ -94,19 +100,21 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c + base::FEATURE_DISABLED_BY_DEFAULT); + BASE_FEATURE(kNetworkErrorLogging, - "NetworkErrorLogging", - base::FEATURE_ENABLED_BY_DEFAULT); + "NetworkErrorLogging", // disabled by default + base::FEATURE_DISABLED_BY_DEFAULT); // in bromite diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h +index f493c46d70308..9ec4c43f6b4e8 100644 --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -50,7 +50,7 @@ extern const base::FeatureParam - kTrustTokenOperationsRequiringOriginTrial; +@@ -84,6 +84,8 @@ extern uint32_t GetLoaderChunkSize(); COMPONENT_EXPORT(NETWORK_CPP) - extern const base::FeatureParam kPlatformProvidedTrustTokenIssuance; -- + BASE_DECLARE_FEATURE(kCorsNonWildcardRequestHeadersSupport); + +COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader); - COMPONENT_EXPORT(NETWORK_CPP) - BASE_DECLARE_FEATURE(kWebSocketReassembleShortMessages); ++ + COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kNetworkServiceMemoryCache); --- -2.25.1 + COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kOmitCorsClientCert); +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/bromite/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index cbff4376..ff328d29 100644 --- a/bromite/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/bromite/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -1,6 +1,7 @@ +From 6694f486cd47af33753b01daeeb207ed3c547440 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 8 Jul 2018 22:42:04 +0200 -Subject: Add flag to configure maximum connections per host +Subject: [PATCH 058/192] Add flag to configure maximum connections per host With the introduction of this flag it is possible to increase the maximum allowed connections per host; this can however be detrimental to devices @@ -19,9 +20,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 8 files changed, 44 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 678e2dc13d3ea..09aff791060a2 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1040,6 +1040,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { +@@ -1230,6 +1230,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { switches::kForceDisplayColorProfile, "hdr10"}, }; @@ -33,20 +35,21 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kMemlogModeChoices[] = { {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, {flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode, -@@ -4884,6 +4889,9 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kAndroidPictureInPictureAPIName, - flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid, - FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)}, +@@ -5147,6 +5152,9 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(chrome::android::kShareSheetCustomActionsPolish)}, + + #endif // BUILDFLAG(IS_ANDROID) + {"max-connections-per-host", flag_descriptions::kMaxConnectionsPerHostName, + flag_descriptions::kMaxConnectionsPerHostDescription, kOsAll, + MULTI_VALUE_TYPE(kMaxConnectionsPerHostChoices)}, - {"reengagement-notification", - flag_descriptions::kReengagementNotificationName, - flag_descriptions::kReengagementNotificationDescription, kOsAndroid, + {"disallow-doc-written-script-loads", + flag_descriptions::kDisallowDocWrittenScriptsUiName, + flag_descriptions::kDisallowDocWrittenScriptsUiDescription, kOsAll, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index f7e52a6256d6e..795d5afd40e6b 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1875,6 +1875,10 @@ const char kUnthrottledNestedTimeoutDescription[] = +@@ -2115,6 +2115,10 @@ const char kUnthrottledNestedTimeoutDescription[] = "websites abusing the API will still eventually have their setTimeouts " "clamped."; @@ -58,9 +61,10 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti "Connect to Cast devices on all IP addresses"; const char kMediaRouterCastAllowAllIPsDescription[] = diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index f984806374b68..0cfc2a7d06e69 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1050,6 +1050,9 @@ extern const char kLogJsConsoleMessagesDescription[]; +@@ -1185,6 +1185,9 @@ extern const char kLogJsConsoleMessagesDescription[]; extern const char kUnthrottledNestedTimeoutName[]; extern const char kUnthrottledNestedTimeoutDescription[]; @@ -71,6 +75,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kMediaRouterCastAllowAllIPsDescription[]; diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc +index c1bd42fa99e7b..f6387f1cd9362 100644 --- a/components/network_session_configurator/common/network_features.cc +++ b/components/network_session_configurator/common/network_features.cc @@ -8,4 +8,7 @@ @@ -82,6 +87,7 @@ diff --git a/components/network_session_configurator/common/network_features.cc + } // namespace features diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h +index 84d71f126019d..0cbcd7f5b0d17 100644 --- a/components/network_session_configurator/common/network_features.h +++ b/components/network_session_configurator/common/network_features.h @@ -10,6 +10,10 @@ @@ -96,6 +102,7 @@ diff --git a/components/network_session_configurator/common/network_features.h b #endif // COMPONENTS_NETWORK_SESSION_CONFIGURATOR_COMMON_NETWORK_FEATURES_H_ diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h +index 719e70b660371..709c9d64b0401 100644 --- a/components/network_session_configurator/common/network_switch_list.h +++ b/components/network_session_configurator/common/network_switch_list.h @@ -19,6 +19,10 @@ NETWORK_SWITCH(kEnableUserAlternateProtocolPorts, @@ -110,6 +117,7 @@ diff --git a/components/network_session_configurator/common/network_switch_list. NETWORK_SWITCH(kIgnoreCertificateErrors, "ignore-certificate-errors") diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn +index f51a88044250a..2b1d132cd3c78 100644 --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn @@ -89,6 +89,7 @@ executable("make_top_domain_list_variables") { @@ -121,6 +129,7 @@ diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/compon if (is_ios) { frameworks = [ "UIKit.framework" ] diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc +index 521ebc8f5023e..41692c9212b16 100644 --- a/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc @@ -19,6 +19,10 @@ @@ -154,5 +163,6 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket return g_max_sockets_per_group[pool_type]; } --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/bromite/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index 2910990c..c9320619 100644 --- a/bromite/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/bromite/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -1,6 +1,7 @@ +From 3c073337d859e8ed0b352d80d7d99c9d85079272 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Thu, 25 Oct 2018 23:13:34 +0200 -Subject: Add flag to control video playback resume feature +Subject: [PATCH 053/192] Add flag to control video playback resume feature Disable it by default on Android as it is everywhere else @@ -13,25 +14,27 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 56b04efa90a61..d14fa3430a685 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3661,6 +3661,10 @@ const FeatureEntry kFeatureEntries[] = { - SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)}, - #endif // ENABLE_EXTENSIONS - #if BUILDFLAG(IS_ANDROID) +@@ -3909,6 +3909,10 @@ const FeatureEntry kFeatureEntries[] = { + chrome::android::kContextualSearchSuppressShortView, + kContextualSearchSuppressShortViewVariations, + "ContextualSearchSuppressShortView")}, + {"resume-background-video", + flag_descriptions::kResumeBackgroundVideoName, + flag_descriptions::kResumeBackgroundVideoDescription, kOsAll, + FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)}, - {"osk-resizes-visual-viewport-by-default", - flag_descriptions::kEnableOskResizesVisualViewportByDefaultName, - flag_descriptions::kEnableOskResizesVisualViewportByDefaultDescription, + {"related-searches", flag_descriptions::kRelatedSearchesName, + flag_descriptions::kRelatedSearchesDescription, kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kRelatedSearches, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 693f7e74241d0..0174cbb82392e 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1363,6 +1363,11 @@ const char kEnablePenetratingImageSelectionDescription[] = - "Enables image options to be surfaced in the context menu for nodes " - "covered by transparent overlays."; +@@ -1408,6 +1408,11 @@ const char kEnableManagedConfigurationWebApiDescription[] = + "Allows website to access a managed configuration provided by the device " + "administrator for the origin."; +const char kResumeBackgroundVideoName[] = "Resume background video."; +const char kResumeBackgroundVideoDescription[] = @@ -42,22 +45,24 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kEnablePixelCanvasRecordingDescription[] = "Pixel canvas recording allows the compositor to raster contents aligned " diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 4caa9120f4b66..c32c8724b90dc 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -744,6 +744,9 @@ extern const char kEnablePortalsDescription[]; - extern const char kEnablePortalsCrossOriginName[]; - extern const char kEnablePortalsCrossOriginDescription[]; +@@ -766,6 +766,9 @@ extern const char kEnablePenetratingImageSelectionDescription[]; + extern const char kEnablePerfettoSystemTracingName[]; + extern const char kEnablePerfettoSystemTracingDescription[]; +extern const char kResumeBackgroundVideoName[]; +extern const char kResumeBackgroundVideoDescription[]; + - extern const char kEnablePixelCanvasRecordingName[]; - extern const char kEnablePixelCanvasRecordingDescription[]; + extern const char kEnablePeripheralCustomizationName[]; + extern const char kEnablePeripheralCustomizationDescription[]; diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc +index 7289a56d7454a..14c4fd5fefbd7 100644 --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -302,12 +302,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad, +@@ -353,12 +353,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad, // Let videos be resumed via remote controls (for example, the notification) // when in background. BASE_FEATURE(kResumeBackgroundVideo, @@ -72,5 +77,6 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc ); // When enabled, MediaCapabilities will check with GPU Video Accelerator --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-to-disable-IPv6-probes.patch b/bromite/build/patches/Add-flag-to-disable-IPv6-probes.patch index e0bf9c84..60a63e89 100644 --- a/bromite/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/bromite/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -1,39 +1,43 @@ +From 5c82e2a96e74268aaef415f14a24aa31857aaffd Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 18 Nov 2018 13:06:49 +0100 -Subject: Add flag to disable IPv6 probes +Subject: [PATCH 074/192] Add flag to disable IPv6 probes License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/about_flags.cc | 4 ++++ - 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 | 9 ++++++++- - services/network/public/cpp/features.cc | 5 +++++ - services/network/public/cpp/features.h | 1 + - 8 files changed, 33 insertions(+), 2 deletions(-) + chrome/browser/about_flags.cc | 4 ++++ + chrome/browser/flag_descriptions.cc | 4 ++++ + chrome/browser/flag_descriptions.h | 3 +++ + net/BUILD.gn | 1 + + net/base/features.cc | 4 ++++ + net/base/features.h | 3 +++ + net/dns/host_resolver_manager.cc | 11 +++++++++++ + services/network/public/cpp/features.cc | 5 +++++ + services/network/public/cpp/features.h | 1 + + 9 files changed, 36 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index b8d9445c360b7..cdfb2bbef0c12 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -6036,6 +6036,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6483,6 +6483,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName, flag_descriptions::kReaderModeInCCTDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)}, + {"ipv6-probing", + flag_descriptions::kIPv6ProbingName, + flag_descriptions::kIPv6ProbingDescription, kOsAll, -+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)}, ++ FEATURE_VALUE_TYPE(net::features::kIPv6Probing)}, #endif // BUILDFLAG(IS_ANDROID) {"shopping-list", commerce::flag_descriptions::kShoppingListName, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 85d34f30750d8..f42e5a4d74f10 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3578,6 +3578,10 @@ const char kCCTRealTimeEngagementSignalsDescription[] = - "Enables sending real-time engagement signals (e.g. scroll) through " - "CustomTabsCallback."; +@@ -3829,6 +3829,10 @@ const char kCCTTextFragmentLookupApiEnabledName[] = + const char kCCTTextFragmentLookupApiEnabledDescription[] = + "Enable CCT API to lookup text fragments"; +const char kIPv6ProbingName[] = "Enable IPv6 probing."; +const char kIPv6ProbingDescription[] = @@ -43,10 +47,11 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti "A debug flag to always show Chime notification after receiving a payload."; const char kChimeAlwaysShowNotificationName[] = diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 27f306494c02e..da00583ff205b 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -807,6 +807,9 @@ extern const char kEnableWasmLazyCompilationName[]; - extern const char kEnableWasmLazyCompilationDescription[]; +@@ -846,6 +846,9 @@ extern const char kEnableWasmStringrefName[]; + extern const char kEnableWasmStringrefDescription[]; extern const char kEnableWasmTieringName[]; +extern const char kIPv6ProbingName[]; @@ -55,80 +60,88 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kEnableWasmTieringDescription[]; extern const char kEvDetailsInPageInfoName[]; -diff --git a/components/subresource_filter/tools/BUILD.gn b/components/subresource_filter/tools/BUILD.gn ---- a/components/subresource_filter/tools/BUILD.gn -+++ b/components/subresource_filter/tools/BUILD.gn -@@ -50,6 +50,8 @@ if (!is_ios) { - deps = [ - ":tools_lib", - "//base", -+ "//components/network_session_configurator/common", -+ "//services/network/public/cpp" - ] - } +diff --git a/net/BUILD.gn b/net/BUILD.gn +index ae9b0f4c88c58..6fd71d48ee924 100644 +--- a/net/BUILD.gn ++++ b/net/BUILD.gn +@@ -1085,6 +1085,7 @@ component("net") { + "//build:chromeos_buildflags", + "//net/data/ssl/chrome_root_store:gen_root_store_inc", + "//net/http:transport_security_state_generated_files", ++ "//components/network_session_configurator/common" + ] -@@ -61,6 +63,8 @@ if (!is_ios) { - ":tools_lib", - "../core/common", - "//base", -+ "//components/network_session_configurator/common", -+ "//services/network/public/cpp", - ] - } + public_deps = [ +diff --git a/net/base/features.cc b/net/base/features.cc +index 99bcab2bb9e2e..603a0f0e6b696 100644 +--- a/net/base/features.cc ++++ b/net/base/features.cc +@@ -40,6 +40,10 @@ BASE_FEATURE(kUseDnsHttpsSvcb, + const base::FeatureParam kUseDnsHttpsSvcbEnforceSecureResponse{ + &kUseDnsHttpsSvcb, "UseDnsHttpsSvcbEnforceSecureResponse", false}; -@@ -70,6 +74,8 @@ if (!is_ios) { - "ruleset_converter:support", - "//base", - "//third_party/protobuf:protobuf_lite", -+ "//components/network_session_configurator/common", -+ "//services/network/public/cpp" - ] - } ++BASE_FEATURE(kIPv6Probing, ++ "IPv6Probing", ++ base::FEATURE_ENABLED_BY_DEFAULT); ++ + const base::FeatureParam kUseDnsHttpsSvcbInsecureExtraTimeMax{ + &kUseDnsHttpsSvcb, "UseDnsHttpsSvcbInsecureExtraTimeMax", + base::Milliseconds(50)}; +diff --git a/net/base/features.h b/net/base/features.h +index d9b96b3c9b5ff..388abda779470 100644 +--- a/net/base/features.h ++++ b/net/base/features.h +@@ -52,6 +52,9 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseDnsHttpsSvcb); + NET_EXPORT extern const base::FeatureParam + kUseDnsHttpsSvcbEnforceSecureResponse; -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 -@@ -89,7 +89,8 @@ executable("make_top_domain_list_variables") { - "//base:i18n", - "//components/url_formatter/spoof_checks/common_words:common", - "//third_party/icu", -- "//components/network_session_configurator/common" -+ "//components/network_session_configurator/common", -+ "//services/network/public/cpp", - ] - if (is_ios) { - frameworks = [ "UIKit.framework" ] ++// Enable IPv6 ping probes to RIPE DNS. ++NET_EXPORT BASE_DECLARE_FEATURE(kIPv6Probing); ++ + // If we are still waiting for an HTTPS transaction after all the + // other transactions in an insecure DnsTask have completed, we will compute a + // timeout for the remaining transaction. The timeout will be diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc +index cad453e2ed5eb..793a253da3482 100644 --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -104,6 +104,7 @@ +@@ -110,6 +110,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" +#include "services/network/public/cpp/features.h" #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" - #include "net/socket/datagram_client_socket.h" -@@ -3727,8 +3728,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) { - if (last_ipv6_probe_time_.is_null() || - (tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() > - kIPv6ProbePeriodMs) { -- SetLastIPv6ProbeResult( -+ -+ if (!base::FeatureList::IsEnabled(network::features::kIPv6Probing)) { -+ // pretend IPv6 connectivy probe is successful when probing is disabled -+ SetLastIPv6ProbeResult(true); -+ } else { -+ SetLastIPv6ProbeResult( - IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log)); + #include "net/url_request/url_request_context.h" +@@ -677,6 +678,9 @@ class HostResolverManager::RequestImpl + // request source is LOCAL_ONLY. This is due to LOCAL_ONLY requiring a + // synchronous response, so it cannot wait on an async probe result and + // cannot make assumptions about reachability. ++ if (!base::FeatureList::IsEnabled(features::kIPv6Probing)) { ++ return OK; + } - cached = false; + if (parameters_.source == HostResolverSource::LOCAL_ONLY) { + int rv = resolver_->StartIPv6ReachabilityCheck( + source_net_log_, GetClientSocketFactory(), +@@ -3895,6 +3899,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( + return OK; } - net_log.AddEvent( + ++ if (!base::FeatureList::IsEnabled(net::features::kIPv6Probing)) { ++ probing_ipv6_ = false; ++ last_ipv6_probe_result_ = false; ++ last_ipv6_probe_time_ = base::TimeTicks(); ++ return OK; ++ } ++ + if (probing_ipv6_) { + ipv6_request_callbacks_.push_back(std::move(callback)); + return ERR_IO_PENDING; diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc +index 38a5190dacaba..2ea124300acf1 100644 --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -38,6 +38,11 @@ BASE_FEATURE(kThrottleDelayable, +@@ -31,6 +31,11 @@ BASE_FEATURE(kThrottleDelayable, "ThrottleDelayable", base::FEATURE_ENABLED_BY_DEFAULT); @@ -141,9 +154,10 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c // requests fetched from a SPDY/QUIC/H2 proxies can be delayed by the // ResourceScheduler just as HTTP/1.1 resources are. However, requests from such diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h +index eef1436621c44..f493c46d70308 100644 --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -17,6 +17,7 @@ COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kExpectCTReporting); +@@ -17,6 +17,7 @@ namespace features { COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kNetworkErrorLogging); COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kReporting); COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kThrottleDelayable); @@ -151,5 +165,6 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kDelayRequestsOnMultiplexedConnections); COMPONENT_EXPORT(NETWORK_CPP) --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-to-disable-external-intent-requests.patch b/bromite/build/patches/Add-flag-to-disable-external-intent-requests.patch index 7c29ed67..a10ce628 100644 --- a/bromite/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/bromite/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -1,50 +1,56 @@ +From 4d00571410f73d507d2e7184da103b0125ede742 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Tue, 25 May 2021 19:46:14 +0200 -Subject: Add flag to disable external intent requests +Subject: [PATCH 134/192] Add flag to disable external intent requests Adds a new flag that allows to control the switch with same name; when flag is disabled no external intent will ever be allowed, for any URL. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/about_flags.cc | 3 +++ + chrome/browser/about_flags.cc | 5 +++++ chrome/browser/flag_descriptions.cc | 6 ++++++ chrome/browser/flag_descriptions.h | 3 +++ - 3 files changed, 12 insertions(+) + 3 files changed, 14 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index b7ce396d516fe..d34516bd368ff 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3621,6 +3621,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3849,6 +3849,11 @@ const FeatureEntry kFeatureEntries[] = { {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, -+ {"disable-external-intent-requests", flag_descriptions::kDisableExternalIntentRequestsName, ++#if BUILDFLAG(IS_ANDROID) ++ {"allow-external-intent-requests", flag_descriptions::kDisableExternalIntentRequestsName, + flag_descriptions::kDisableExternalIntentRequestsDescription, kOsAll, + SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")}, ++#endif {"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName, flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)}, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index ae02dee048364..628a323966e5d 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3966,6 +3966,12 @@ const char kPhotoPickerVideoSupportName[] = "Photo Picker Video Support"; - const char kPhotoPickerVideoSupportDescription[] = - "Enables video files to be shown in the Photo Picker dialog"; +@@ -4120,6 +4120,12 @@ const char kPolicyLogsPageAndroidDescription[] = + "Enable the new chrome://policy-logs page containing logs for debugging " + "policy related issues on Android."; +const char kDisableExternalIntentRequestsName[] = -+ "Never forward URL requests to external intents"; ++ "Allow forward URL requests to external intents"; +const char kDisableExternalIntentRequestsDescription[] = -+ "URL requests will never" ++ "If disabled, URL requests will never" + "allow for redirecting to an external intent."; + const char kQueryTilesName[] = "Show query tiles"; const char kQueryTilesDescription[] = "Shows query tiles in Chrome"; const char kQueryTilesNTPName[] = "Show query tiles in NTP"; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index 093c1e2dd43be..e2983aac9ef68 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2274,6 +2274,9 @@ extern const char kQueryTilesNTPDescription[]; +@@ -2414,6 +2414,9 @@ extern const char kQueryTilesNTPDescription[]; extern const char kQueryTilesOnStartName[]; extern const char kQueryTilesOnStartDescription[]; extern const char kQueryTilesSingleTierName[]; @@ -54,5 +60,6 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kQueryTilesSingleTierDescription[]; extern const char kQueryTilesEnableQueryEditingName[]; extern const char kQueryTilesEnableQueryEditingDescription[]; --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-flag-to-disable-vibration.patch b/bromite/build/patches/Add-flag-to-disable-vibration.patch index 5ed4c84b..dda5a2d6 100644 --- a/bromite/build/patches/Add-flag-to-disable-vibration.patch +++ b/bromite/build/patches/Add-flag-to-disable-vibration.patch @@ -1,6 +1,7 @@ +From 7c204bef9f090875b5b79747533cfe6bad0915e4 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 27 Jun 2021 17:35:39 +0200 -Subject: Add flag to disable vibration +Subject: [PATCH 137/192] Add flag to disable vibration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -17,9 +18,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 10 files changed, 29 insertions(+) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 3c37c215ff3a2..6fa09cb90a0fd 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7467,6 +7467,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7951,6 +7951,10 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)}, #endif @@ -28,25 +30,27 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc + FEATURE_VALUE_TYPE(features::kVibration)}, + #if BUILDFLAG(IS_CHROMEOS_ASH) - {"exo-gamepad-vibration", flag_descriptions::kExoGamepadVibrationName, - flag_descriptions::kExoGamepadVibrationDescription, kOsCrOS, + {"exo-consumed-by-ime-by-flag", + flag_descriptions::kExoConsumedByImeByFlagName, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index d7098f8bfcb67..9dbfaabbd6868 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -6463,6 +6463,9 @@ extern const char kLacrosScreenCoordinatesDescription[]; - +@@ -6967,6 +6967,9 @@ const char kLacrosMergeIcuDataFileDescription[] = + "Enables sharing common areas of icudtl.dat between Ash and Lacros."; #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS) +const char kEnableVibrationName[] = "Vibration"; +const char kEnableVibrationDescription[] = "Enable vibration API; an user gesture will still be needed."; + #if BUILDFLAG(IS_CHROMEOS) - const char kAllowDefaultWebAppMigrationForChromeOsManagedUsersName[] = - "Allow default web app migration for ChromeOS managed users"; + const char kCrOSDspBasedAecAllowedName[] = + "Allow CRAS to use a DSP-based AEC if available"; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index d05257e5c29aa..01b5525f35078 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3938,6 +3938,8 @@ extern const char kWebUITabStripTabDragIntegrationName[]; +@@ -4233,6 +4233,8 @@ extern const char kWebUITabStripTabDragIntegrationName[]; extern const char kWebUITabStripTabDragIntegrationDescription[]; #endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH) @@ -56,36 +60,39 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kAutofillCreditCardUploadName[]; diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc +index 513d84aeca0c4..7c76e34e264d3 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc @@ -101,6 +101,7 @@ void SetRuntimeFeatureDefaultsForPlatform( - #if BUILDFLAG(IS_ANDROID) - if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) + if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { WebRuntimeFeatures::EnableMediaSession(false); + } + WebRuntimeFeatures::EnableVibration(base::FeatureList::IsEnabled(features::kVibration)); #endif #if BUILDFLAG(IS_ANDROID) diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc +index c10cfedbca13e..06d02c001b0b6 100644 --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -130,6 +130,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls, +@@ -157,6 +157,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls, #endif ); +// Enables vibration; an user gesture will still be required if enabled. +BASE_FEATURE(kVibration, -+ "Vibration", ++ "VibrationEnabled", + base::FEATURE_DISABLED_BY_DEFAULT); + // When this feature is enabled, private network requests initiated from // non-secure contexts in the `public` address space are blocked. // diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h +index 27c7c2f644553..c47d9a1874ff9 100644 --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -322,6 +322,8 @@ CONTENT_EXPORT extern const base::FeatureParam - kCompositorLockTimeout; +@@ -344,6 +344,8 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWarmUpNetworkProcess); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebNfc); #endif // BUILDFLAG(IS_ANDROID) +CONTENT_EXPORT BASE_DECLARE_FEATURE(kVibration); @@ -94,6 +101,7 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co #if BUILDFLAG(IS_MAC) CONTENT_EXPORT BASE_DECLARE_FEATURE(kDeviceMonitorMac); diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h +index 23e1afbedeb56..141981145abeb 100644 --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h @@ -70,6 +70,7 @@ class BLINK_PLATFORM_EXPORT WebRuntimeFeatures : public WebRuntimeFeaturesBase { @@ -105,6 +113,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa WebRuntimeFeatures() = delete; }; diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc +index f8e6a5495a14d..64e8b9eb0587b 100644 --- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc +++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc @@ -29,6 +29,7 @@ @@ -125,6 +134,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c } diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc +index 69af1a7b9f0be..b3e720a08ea8f 100644 --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc @@ -52,6 +52,10 @@ void WebRuntimeFeatures::EnableTestOnlyFeatures(bool enable) { @@ -139,11 +149,12 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c RuntimeEnabledFeatures::SetOriginTrialControlledFeaturesEnabled(enable); } diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +index eaba99e5b6eec..84eebfd5a2d5e 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1827,6 +1827,10 @@ - name: "OrientationEvent", +@@ -2495,6 +2495,10 @@ status: {"Android": "stable"}, + base_feature: "none", }, + { + name: "Vibration", @@ -152,5 +163,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "OriginIsolationHeader", status: "stable", --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-lifetime-options-for-permissions.patch b/bromite/build/patches/Add-lifetime-options-for-permissions.patch index 7cf564ee..203ee99e 100644 --- a/bromite/build/patches/Add-lifetime-options-for-permissions.patch +++ b/bromite/build/patches/Add-lifetime-options-for-permissions.patch @@ -1,6 +1,7 @@ +From b1278e60b86d4a6de7bfbbe963b66207801ad823 Mon Sep 17 00:00:00 2001 From: uazo Date: Fri, 8 Apr 2022 11:04:04 +0000 -Subject: Add lifetime options for permissions +Subject: [PATCH 164/192] Add lifetime options for permissions Indicate the session mode for content-settings by using the constraint `content_settings::SessionModel` as UserSession when setting the value, and also make use of an expiration time value. @@ -52,18 +53,18 @@ See also: https://github.com/bromite/bromite/issues/1549 Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../permissions/last_tab_standing_tracker.cc | 33 +++++++- - .../permissions/last_tab_standing_tracker.h | 4 +- - .../last_tab_standing_tracker_factory.cc | 2 +- - ...hrome_browser_main_extra_parts_profiles.cc | 5 +- - chrome/browser/ui/tab_helpers.cc | 1 + + .../permissions/last_tab_standing_tracker.cc | 33 ++++++++ + .../one_time_permissions_tracker.cc | 34 +++++++- + .../one_time_permissions_tracker.h | 5 +- + .../one_time_permissions_tracker_factory.cc | 2 +- + .../permission_prompt_bubble_base_view.cc | 2 +- .../site_settings/PermissionInfo.java | 14 +++- .../site_settings/SingleWebsiteSettings.java | 10 +++ .../WebsitePreferenceBridge.java | 6 +- .../android/website_preference_bridge.cc | 7 +- .../strings/android/browser_ui_strings.grd | 5 ++ components/content_settings/android/BUILD.gn | 1 + - .../core/browser/content_settings_utils.cc | 29 +++++++ + .../core/browser/content_settings_utils.cc | 36 +++++++++ .../core/browser/content_settings_utils.h | 6 ++ .../common/content_settings_constraints.h | 11 +++ .../page_info/PageInfoController.java | 4 +- @@ -79,28 +80,28 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../permission_prompt_android.h | 2 + .../android/permissions_android_strings.grd | 17 ++++ .../geolocation_permission_context_android.cc | 35 ++++++-- - .../geolocation_permission_context_android.h | 13 ++- - .../permissions/permission_context_base.cc | 49 ++++++++++- - .../permissions/permission_context_base.h | 24 +++++- + .../geolocation_permission_context_android.h | 14 +++- + .../permissions/permission_context_base.cc | 55 +++++++++++-- + .../permissions/permission_context_base.h | 25 +++++- components/permissions/permission_prompt.h | 3 +- components/permissions/permission_request.cc | 34 +++++++- - components/permissions/permission_request.h | 17 +++- - .../permissions/permission_request_manager.cc | 37 ++++++--- + components/permissions/permission_request.h | 18 ++++- + .../permissions/permission_request_manager.cc | 45 +++++++---- .../permissions/permission_request_manager.h | 11 ++- - 35 files changed, 472 insertions(+), 56 deletions(-) + 35 files changed, 523 insertions(+), 60 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc +index 5df1981731e0e..9cb6e5f10ba66 100644 --- a/chrome/browser/permissions/last_tab_standing_tracker.cc +++ b/chrome/browser/permissions/last_tab_standing_tracker.cc -@@ -7,9 +7,35 @@ +@@ -7,6 +7,33 @@ #include "base/observer_list.h" - #include "chrome/browser/profiles/profile.h" #include "url/gurl.h" + +#include "components/content_settings/core/browser/host_content_settings_map.h" +#include "components/content_settings/core/common/content_settings_utils.h" +#include "components/permissions/permissions_client.h" - --LastTabStandingTracker::LastTabStandingTracker() = default; ++ +namespace { + // Remove all sessions content setting by origin and type + void RemoveSessionSettings(HostContentSettingsMap* content_settings, @@ -110,7 +111,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br + content_settings->GetSettingsForOneType( + type, &session_settings, + content_settings::SessionModel::UserSession); - ++ + GURL url = origin.GetURL(); + for (ContentSettingPatternSource& entry : session_settings) { + if (content_settings::IsConstraintSessionExpiration(entry, @@ -124,15 +125,65 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br + } +} + -+LastTabStandingTracker::LastTabStandingTracker(content::BrowserContext* context) -+ : context_(context) {} - LastTabStandingTracker::~LastTabStandingTracker() = default; + LastTabStandingTracker::LastTabStandingTracker(content::BrowserContext* context) + : context_(context) {} - void LastTabStandingTracker::Shutdown() { -@@ -55,5 +81,10 @@ void LastTabStandingTracker::WebContentsUnloadedOrigin( - tab_counter_.erase(origin); - for (auto& observer : observer_list_) +@@ -56,4 +83,10 @@ void LastTabStandingTracker::WebContentsUnloadedOrigin( + for (auto& observer : observer_list_) { observer.OnLastPageFromOriginClosed(origin); + } ++ HostContentSettingsMap* content_settings = ++ permissions::PermissionsClient::Get()->GetSettingsMap(context_); ++ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION); ++ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_MIC); ++ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_CAMERA); ++ } + } +diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc +index f400a95c022fa..b0cfd5fd67c24 100644 +--- a/chrome/browser/permissions/one_time_permissions_tracker.cc ++++ b/chrome/browser/permissions/one_time_permissions_tracker.cc +@@ -18,8 +18,35 @@ + #include "components/permissions/features.h" + #include "content/public/browser/visibility.h" + #include "url/gurl.h" ++#include "components/content_settings/core/browser/host_content_settings_map.h" ++#include "components/content_settings/core/common/content_settings_utils.h" ++#include "components/permissions/permissions_client.h" ++ ++namespace { ++ // Remove all sessions content setting by origin and type ++ void RemoveSessionSettings(HostContentSettingsMap* content_settings, ++ const url::Origin& origin, ++ ContentSettingsType type) { ++ ContentSettingsForOneType session_settings; ++ content_settings->GetSettingsForOneType( ++ type, &session_settings, ++ content_settings::SessionModel::UserSession); ++ ++ GURL url = origin.GetURL(); ++ for (ContentSettingPatternSource& entry : session_settings) { ++ if (content_settings::IsConstraintSessionExpiration(entry, ++ content_settings::LifetimeMode::UntilOriginClosed) && ++ entry.primary_pattern.Matches(url)) { ++ content_settings->SetWebsiteSettingCustomScope( ++ entry.primary_pattern, entry.secondary_pattern, ++ type, base::Value()); ++ } ++ } ++ } ++} + +-OneTimePermissionsTracker::OneTimePermissionsTracker() = default; ++OneTimePermissionsTracker::OneTimePermissionsTracker(content::BrowserContext* context) ++ : context_(context) {} + OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; + + OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; +@@ -93,6 +120,11 @@ void OneTimePermissionsTracker::WebContentsUnloadedOrigin( + observer.OnLastPageFromOriginClosed(origin); + } + } + HostContentSettingsMap* content_settings = + permissions::PermissionsClient::Get()->GetSettingsMap(context_); + RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION); @@ -140,71 +191,63 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br + RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_CAMERA); } } -diff --git a/chrome/browser/permissions/last_tab_standing_tracker.h b/chrome/browser/permissions/last_tab_standing_tracker.h ---- a/chrome/browser/permissions/last_tab_standing_tracker.h -+++ b/chrome/browser/permissions/last_tab_standing_tracker.h -@@ -9,6 +9,7 @@ - #include "base/observer_list.h" - #include "chrome/browser/permissions/last_tab_standing_tracker_observer.h" +diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/browser/permissions/one_time_permissions_tracker.h +index 168f8e1344c2e..e223b3e6a8244 100644 +--- a/chrome/browser/permissions/one_time_permissions_tracker.h ++++ b/chrome/browser/permissions/one_time_permissions_tracker.h +@@ -12,6 +12,7 @@ + #include "base/timer/timer.h" + #include "chrome/browser/permissions/one_time_permissions_tracker_observer.h" + #include "components/content_settings/core/common/content_settings_pattern.h" +#include "chrome/browser/profiles/profile.h" + #include "components/content_settings/core/common/content_settings_types.h" #include "components/keyed_service/core/keyed_service.h" - #include "url/origin.h" + #include "content/public/browser/visibility.h" +@@ -24,7 +25,7 @@ class OneTimePermissionsTracker : public KeyedService { + void (OneTimePermissionsTracker::*)(const url::Origin&); -@@ -16,7 +17,7 @@ - // all tabs of a particular origin have been closed or navigated away from. - class LastTabStandingTracker : public KeyedService { public: -- LastTabStandingTracker(); -+ explicit LastTabStandingTracker(content::BrowserContext* context); - ~LastTabStandingTracker() override; - - LastTabStandingTracker(const LastTabStandingTracker&) = delete; -@@ -33,6 +34,7 @@ class LastTabStandingTracker : public KeyedService { - base::ObserverList observer_list_; - // Tracks how many tabs of a particular origin are open at any given time. - std::map tab_counter_; +- OneTimePermissionsTracker(); ++ OneTimePermissionsTracker(content::BrowserContext* context); + ~OneTimePermissionsTracker() override; + + OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete; +@@ -127,7 +128,7 @@ class OneTimePermissionsTracker : public KeyedService { + base::ObserverList observer_list_; + + std::map origin_tracker_; +- + raw_ptr context_; + base::WeakPtrFactory weak_factory_{this}; }; - #endif // CHROME_BROWSER_PERMISSIONS_LAST_TAB_STANDING_TRACKER_H_ -diff --git a/chrome/browser/permissions/last_tab_standing_tracker_factory.cc b/chrome/browser/permissions/last_tab_standing_tracker_factory.cc ---- a/chrome/browser/permissions/last_tab_standing_tracker_factory.cc -+++ b/chrome/browser/permissions/last_tab_standing_tracker_factory.cc -@@ -31,5 +31,5 @@ bool LastTabStandingTrackerFactory::ServiceIsCreatedWithBrowserContext() const { +diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc b/chrome/browser/permissions/one_time_permissions_tracker_factory.cc +index cab98b40bf1de..30b1b56f87f75 100644 +--- a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc ++++ b/chrome/browser/permissions/one_time_permissions_tracker_factory.cc +@@ -40,5 +40,5 @@ bool OneTimePermissionsTrackerFactory::ServiceIsCreatedWithBrowserContext() - KeyedService* LastTabStandingTrackerFactory::BuildServiceInstanceFor( + KeyedService* OneTimePermissionsTrackerFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { -- return new LastTabStandingTracker(); -+ return new LastTabStandingTracker(context); +- return new OneTimePermissionsTracker(); ++ return new OneTimePermissionsTracker(context); } -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 -@@ -411,10 +411,7 @@ void ChromeBrowserMainExtraPartsProfiles:: - LacrosFirstRunServiceFactory::GetInstance(); - #endif - LanguageModelManagerFactory::GetInstance(); -- if (base::FeatureList::IsEnabled( -- permissions::features::kOneTimeGeolocationPermission)) { -- LastTabStandingTrackerFactory::GetInstance(); -- } -+ LastTabStandingTrackerFactory::GetInstance(); - login_detection::LoginDetectionKeyedServiceFactory::GetInstance(); - #if !BUILDFLAG(IS_ANDROID) - LoginUIServiceFactory::GetInstance(); -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 -@@ -491,6 +491,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - PolicyAuditorBridge::CreateForWebContents(web_contents); - PluginObserverAndroid::CreateForWebContents(web_contents); - video_tutorials::VideoTutorialTabHelper::CreateForWebContents(web_contents); -+ LastTabStandingTrackerTabHelper::CreateForWebContents(web_contents); - #else - if (accuracy_tips::AccuracyWebContentsObserver::IsEnabled(web_contents)) { - accuracy_tips::AccuracyWebContentsObserver::CreateForWebContents( +diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +index d64456f3a7681..c220b0448f287 100644 +--- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc ++++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +@@ -336,7 +336,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallbacks( + delegate_->Accept(); + return; + case PermissionDialogButton::kAcceptOnce: +- delegate_->AcceptThisTime(); ++ delegate_->AcceptThisTime(content_settings::LifetimeMode::Always); + return; + case PermissionDialogButton::kDeny: + delegate_->Deny(); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java +index b396373609a2b..c9500b68f5678 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java @@ -9,6 +9,7 @@ import androidx.annotation.Nullable; @@ -248,17 +291,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c public @ContentSettingsType int getContentSettingsType() { diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +index 5fade6ed2e8aa..30a67b1b739d0 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -35,6 +35,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; - import org.chromium.components.browser_ui.settings.TextMessagePreference; +@@ -38,6 +38,7 @@ import org.chromium.components.browser_ui.settings.TextMessagePreference; + import org.chromium.components.browsing_data.DeleteBrowsingDataAction; import org.chromium.components.content_settings.ContentSettingValues; import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.content_settings.SessionModel; import org.chromium.components.embedder_support.util.Origin; import org.chromium.content_public.browser.BrowserContextHandle; import org.chromium.content_public.browser.ContentFeatureList; -@@ -539,6 +540,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -545,6 +546,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment } } @@ -270,7 +314,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -963,6 +969,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -974,6 +980,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment if (contentType == mHighlightedPermission) { switchPreference.setBackgroundColor(mHighlightColor); } @@ -282,6 +326,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +index dcc01ad43a1f7..3553559830336 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java @@ -9,6 +9,7 @@ import org.chromium.base.annotations.CalledByNative; @@ -312,9 +357,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @CalledByNative diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc +index d99e98c603cc4..c2d4f6f9972b4 100644 --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -122,7 +122,8 @@ typedef void (*InfoListInsertionFunction)( +@@ -125,7 +125,8 @@ typedef void (*InfoListInsertionFunction)( const base::android::JavaRef&, const base::android::JavaRef&, const base::android::JavaRef&, @@ -324,16 +370,16 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid void GetOrigins(JNIEnv* env, const JavaParamRef& jbrowser_context_handle, -@@ -164,7 +165,7 @@ void GetOrigins(JNIEnv* env, +@@ -167,7 +168,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, - /*is_embargoed=*/false); -+ /*is_embargoed=*/false, static_cast(settings_it.metadata.session_model)); ++ /*is_embargoed=*/false, static_cast(settings_it.metadata.session_model())); } // Add any origins which have a default content setting value (thus skipped -@@ -186,7 +187,7 @@ void GetOrigins(JNIEnv* env, +@@ -189,7 +190,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -343,9 +389,10 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid } } diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd +index d46285041abec..5716534621dfa 100644 --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -608,6 +608,11 @@ +@@ -597,6 +597,11 @@ URL truncated @@ -358,9 +405,10 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp Ad personalization diff --git a/components/content_settings/android/BUILD.gn b/components/content_settings/android/BUILD.gn +index 386f434003d25..56adaea080d9d 100644 --- a/components/content_settings/android/BUILD.gn +++ b/components/content_settings/android/BUILD.gn -@@ -58,6 +58,7 @@ java_cpp_enum("content_settings_enums_javagen") { +@@ -59,6 +59,7 @@ java_cpp_enum("content_settings_enums_javagen") { "../core/common/content_settings_types.h", "../core/common/cookie_controls_enforcement.h", "../core/common/cookie_controls_status.h", @@ -369,48 +417,57 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s visibility = [ ":*" ] # Depend on through :content_settings_enums_java } diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc +index 2e9e9dd690dfe..5876a83688e9b 100644 --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -189,6 +189,35 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration) { - return base::Time::Now() + duration; +@@ -188,6 +188,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { + return constraints.session_model() == SessionModel::Durable; } +ContentSettingConstraints GetConstraintSessionExpiration(LifetimeMode lifetime_mode) { ++ int lifetime; ++ base::Time now; + if (lifetime_mode == LifetimeMode::OnlyThisTime) { + // note: this content settings will be discarded immediately + // 1h is used as a magic constant to identify the one-time lifetime mode -+ return {base::Time() + base::Hours(1), content_settings::SessionModel::UserSession}; ++ lifetime = 1; + } else if (lifetime_mode == LifetimeMode::UntilOriginClosed) { -+ return {base::Time::Now() + base::Hours(24), content_settings::SessionModel::UserSession}; ++ now = base::Time::Now(); ++ lifetime = 24; + } else { -+ return {base::Time(), content_settings::SessionModel::UserSession}; ++ lifetime = 0; + } ++ content_settings::ContentSettingConstraints c(now); ++ c.set_lifetime(base::Hours(lifetime)); ++ c.set_session_model(content_settings::SessionModel::UserSession); ++ return c; +} + +bool IsConstraintSessionExpiration(const ContentSettingPatternSource& source, + LifetimeMode lifetime_mode) { -+ if (source.metadata.session_model != content_settings::SessionModel::UserSession) ++ if (source.metadata.session_model() != content_settings::SessionModel::UserSession) + return false; + + LifetimeMode type; -+ if (source.metadata.expiration == base::Time()) { -+ type = LifetimeMode::UntilBrowserClosed; -+ } else if (source.metadata.expiration == (base::Time() + base::Hours(1))) { ++ if (source.metadata.lifetime() == base::Hours(24)) { ++ type = LifetimeMode::UntilOriginClosed; ++ } else if (source.metadata.expiration() == (base::Time() + base::Hours(1))) { + type = LifetimeMode::OnlyThisTime; + } else { -+ type = LifetimeMode::UntilOriginClosed; ++ type = LifetimeMode::UntilBrowserClosed; + } + + return lifetime_mode == type; +} + bool CanTrackLastVisit(ContentSettingsType type) { - #if BUILDFLAG(IS_ANDROID) - // The notification provider on Android does not support last visit tracking. + // Last visit is not tracked for notification permission as it shouldn't be + // auto-revoked. diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h +index 978fcb1b8f2ff..90db87a40c683 100644 --- a/components/content_settings/core/browser/content_settings_utils.h +++ b/components/content_settings/core/browser/content_settings_utils.h -@@ -76,6 +76,12 @@ base::Time GetConstraintExpiration(const base::TimeDelta duration); +@@ -73,6 +73,12 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints); // Returns whether the given type supports tracking last_visit timestamps. bool CanTrackLastVisit(ContentSettingsType type); @@ -421,13 +478,14 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b + LifetimeMode lifetime_mode); + // Get a timestamp with week-precision. - base::Time GetCoarseTime(base::Time time); + base::Time GetCoarseVisitedTime(base::Time time); diff --git a/components/content_settings/core/common/content_settings_constraints.h b/components/content_settings/core/common/content_settings_constraints.h +index dfb4fdf0f25be..e9b26eb99af07 100644 --- a/components/content_settings/core/common/content_settings_constraints.h +++ b/components/content_settings/core/common/content_settings_constraints.h -@@ -18,6 +18,8 @@ namespace content_settings { - // regardless of expiry date, if set. +@@ -23,6 +23,8 @@ namespace content_settings { + // a crash or update related restart. // OneTime: Settings will persist for the current "tab session", meaning // until the last tab from the origin is closed. +// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.content_settings @@ -435,7 +493,7 @@ diff --git a/components/content_settings/core/common/content_settings_constraint enum class SessionModel { Durable = 0, UserSession = 1, -@@ -25,6 +27,15 @@ enum class SessionModel { +@@ -31,6 +33,15 @@ enum class SessionModel { kMaxValue = OneTime, }; @@ -449,12 +507,13 @@ diff --git a/components/content_settings/core/common/content_settings_constraint +}; + // Constraints to be applied when setting a content setting. - struct ContentSettingConstraints { - // Specification of an |expiration| provides an upper bound on the time a + class ContentSettingConstraints { + public: diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +index 68d8f4c1fed8d..0d62495d2a8e8 100644 --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -360,9 +360,9 @@ public class PageInfoController implements PageInfoMainController, ModalDialogPr +@@ -340,9 +340,9 @@ public class PageInfoController implements PageInfoMainController, ModalDialogPr */ @CalledByNative private void addPermissionSection(String name, String nameMidSentence, int type, @@ -467,6 +526,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ /** diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +index e2c68173872eb..c93058f16d59d 100644 --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java @@ -44,8 +44,9 @@ public class PermissionParamsListBuilder { @@ -510,9 +570,10 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ @Override diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc +index 1271dd5e4a6b1..f8c50a5acec27 100644 --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -171,6 +171,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -163,6 +163,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( std::map user_specified_settings_to_display; @@ -521,7 +582,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -179,6 +181,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -171,6 +173,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( if (setting_to_display) { user_specified_settings_to_display[permission.type] = *setting_to_display; @@ -530,7 +591,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } } -@@ -195,7 +199,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -187,7 +191,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), @@ -540,10 +601,10 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -208,7 +213,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -200,7 +205,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), - static_cast(chosen_object->ui_info.content_settings_type), + static_cast(chosen_object->ui_info->content_settings_type), - static_cast(CONTENT_SETTING_ALLOW)); + static_cast(CONTENT_SETTING_ALLOW), + /* is_user_session */ false); @@ -551,29 +612,32 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp Java_PageInfoController_updatePermissionDisplay(env, controller_jobject_); diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc +index 76bffe277e7db..ebd3f99b8d8db 100644 --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1189,6 +1189,8 @@ void PageInfo::PresentSitePermissions() { - permission_info.source = info.source; - permission_info.is_one_time = (info.metadata.session_model == - content_settings::SessionModel::OneTime); -+ permission_info.is_user_session = -+ (info.metadata.session_model == content_settings::SessionModel::UserSession); - - if (info.primary_pattern == ContentSettingsPattern::Wildcard() && - info.secondary_pattern == ContentSettingsPattern::Wildcard()) { +@@ -1142,6 +1142,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, + permission_info.source = info.source; + permission_info.is_one_time = (info.metadata.session_model() == + content_settings::SessionModel::OneTime); ++ permission_info.is_user_session = ++ (info.metadata.session_model() == content_settings::SessionModel::UserSession); + + if (info.primary_pattern == ContentSettingsPattern::Wildcard() && + info.secondary_pattern == ContentSettingsPattern::Wildcard()) { diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h +index 5486c371069cf..a30f0d305dbb9 100644 --- a/components/page_info/page_info.h +++ b/components/page_info/page_info.h -@@ -180,6 +180,7 @@ class PageInfo : private content_settings::CookieControlsView { - content_settings::SettingSource source = +@@ -197,6 +197,7 @@ class PageInfo : private content_settings::OldCookieControlsObserver { content_settings::SETTING_SOURCE_NONE; + // Whether the permission is a one-time grant. bool is_one_time = false; + bool is_user_session = false; - }; - - // Creates a PageInfo for the passed |url| using the given |ssl| status + // Only set for settings that can have multiple permissions for different + // embedded origins. + absl::optional requesting_origin; diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java +index ad45ed899c63f..b4fc982b5b57d 100644 --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java @@ -8,6 +8,7 @@ import org.chromium.base.annotations.CalledByNative; @@ -611,9 +675,10 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per assert mNativeDelegatePtr != 0; PermissionDialogDelegateJni.get().cancel(mNativeDelegatePtr, PermissionDialogDelegate.this); diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModel.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModel.java +index 9b67228efb01d..ef57c286a5dec 100644 --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModel.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModel.java -@@ -16,6 +16,17 @@ import org.chromium.ui.LayoutInflaterUtils; +@@ -16,6 +16,17 @@ import org.chromium.ui.UiUtils; import org.chromium.ui.modaldialog.ModalDialogProperties; import org.chromium.ui.modelutil.PropertyModel; @@ -640,9 +705,9 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per .with(ModalDialogProperties.CONTROLLER, controller) .with(ModalDialogProperties.CUSTOM_VIEW, customView) .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, delegate.getPrimaryButtonText()) -@@ -43,6 +54,74 @@ class PermissionDialogModel { - .with(ModalDialogProperties.FILTER_TOUCH_FOR_SECURITY, true) - .with(ModalDialogProperties.TOUCH_FILTERED_CALLBACK, touchFilteredCallback) +@@ -45,6 +56,74 @@ class PermissionDialogModel { + .with(ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS, + UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS) .build(); + + int[] types = delegate.getContentSettingsTypes(); @@ -716,6 +781,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per private static View loadDialogView(Context context) { diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +index 6e8491786f6d0..5931748e9bd81 100644 --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc @@ -67,6 +67,11 @@ void PermissionDialogJavaDelegate::DismissDialog() { @@ -758,6 +824,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ } diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.h b/components/permissions/android/permission_prompt/permission_dialog_delegate.h +index d0f1df73b7536..76c5685b7d613 100644 --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.h +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.h @@ -35,6 +35,7 @@ class PermissionDialogJavaDelegate { @@ -769,6 +836,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ private: base::android::ScopedJavaGlobalRef j_delegate_; diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc +index 9d822ae5b0ddd..a8d51a800b791 100644 --- a/components/permissions/android/permission_prompt/permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc @@ -41,6 +41,14 @@ void PermissionPromptAndroid::Accept() { @@ -787,6 +855,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ delegate_->Deny(); } diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h +index 532ede4ffbc64..52c8e30e7d588 100644 --- a/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/permission_prompt_android.h @@ -43,7 +43,9 @@ class PermissionPromptAndroid : public PermissionPrompt { @@ -800,6 +869,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ void SetLearnMoreClicked(); bool ShouldCurrentRequestUseQuietUI(); diff --git a/components/permissions/android/permissions_android_strings.grd b/components/permissions/android/permissions_android_strings.grd +index 32d18773dfb46..1b610345f9f72 100644 --- a/components/permissions/android/permissions_android_strings.grd +++ b/components/permissions/android/permissions_android_strings.grd @@ -264,6 +264,23 @@ @@ -827,17 +897,18 @@ diff --git a/components/permissions/android/permissions_android_strings.grd b/co %1$sitem_name (%2$sitem id) diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc +index 8c92c7f322fe1..02784b2395205 100644 --- a/components/permissions/contexts/geolocation_permission_context_android.cc +++ b/components/permissions/contexts/geolocation_permission_context_android.cc -@@ -153,6 +153,19 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( - ContentSetting content_setting, - bool is_one_time) { +@@ -130,7 +130,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( + bool is_final_decision) { DCHECK(!is_one_time); + DCHECK(is_final_decision); + NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, -+ std::move(callback), persist, content_setting, is_one_time, ++ std::move(callback), persist, content_setting, is_one_time, is_final_decision, + content_settings::LifetimeMode::Always); +} -+ + +void GeolocationPermissionContextAndroid::NotifyPermissionSetWithLifetime( + const PermissionRequestID& id, + const GURL& requesting_origin, @@ -845,31 +916,32 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + BrowserPermissionCallback callback, + bool persist, + ContentSetting content_setting, -+ bool is_one_time, content_settings::LifetimeMode lifetime_option) { ++ bool is_one_time, bool is_final_decision, ++ content_settings::LifetimeMode lifetime_option) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (content_setting == CONTENT_SETTING_ALLOW && !location_settings_->IsSystemLocationSettingEnabled()) { -@@ -165,7 +178,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -143,7 +156,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( if (IsInLocationSettingsBackOff(is_default_search)) { FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, std::move(callback), false /* persist */, - CONTENT_SETTING_BLOCK); + CONTENT_SETTING_BLOCK, + is_one_time, lifetime_option); - LogLocationSettingsMetric( - kLocationSettingsSuppressMetricBase, is_default_search, - LocationSettingsBackOffLevel(is_default_search)); -@@ -190,7 +204,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( + return; + } + +@@ -161,7 +175,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( !location_settings_dialog_callback_.is_null()) { FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, std::move(callback), false /* persist */, - CONTENT_SETTING_BLOCK); + CONTENT_SETTING_BLOCK, + is_one_time, lifetime_option); - // This case should be very rare, so just pretend it was a denied prompt - // for metrics purposes. - LogLocationSettingsMetric( -@@ -207,12 +222,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( + return; + } + +@@ -173,12 +188,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( base::BindOnce( &GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown, weak_factory_.GetWeakPtr(), requesting_origin, embedding_origin, @@ -885,7 +957,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr } PermissionResult -@@ -379,6 +395,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -345,6 +361,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( const GURL& embedding_origin, bool persist, ContentSetting content_setting, @@ -893,7 +965,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (prompt_outcome == GRANTED) { -@@ -402,7 +419,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -362,7 +379,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( FinishNotifyPermissionSet( location_settings_dialog_request_id_, requesting_origin, embedding_origin, @@ -902,8 +974,8 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + is_one_time, lifetime_option); location_settings_dialog_request_id_ = - PermissionRequestID(0, 0, PermissionRequestID::RequestLocalId()); -@@ -414,10 +432,11 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( + PermissionRequestID(content::GlobalRenderFrameHostId(0, 0), +@@ -375,10 +393,11 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( const GURL& embedding_origin, BrowserPermissionCallback callback, bool persist, @@ -913,18 +985,19 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + bool is_one_time, content_settings::LifetimeMode lifetime_option) { + GeolocationPermissionContext::NotifyPermissionSetWithLifetime( id, requesting_origin, embedding_origin, std::move(callback), persist, -- content_setting, /*is_one_time=*/false); -+ content_setting, is_one_time, lifetime_option); +- content_setting, /*is_one_time=*/false, /*is_final_decision=*/true); ++ content_setting, is_one_time, /*is_final_decision=*/true, lifetime_option); } void GeolocationPermissionContextAndroid::SetLocationSettingsForTesting( diff --git a/components/permissions/contexts/geolocation_permission_context_android.h b/components/permissions/contexts/geolocation_permission_context_android.h +index 6be57c4cc8048..2a1d227612818 100644 --- a/components/permissions/contexts/geolocation_permission_context_android.h +++ b/components/permissions/contexts/geolocation_permission_context_android.h -@@ -87,6 +87,14 @@ class GeolocationPermissionContextAndroid - bool persist, +@@ -88,6 +88,15 @@ class GeolocationPermissionContextAndroid ContentSetting content_setting, - bool is_one_time) override; + bool is_one_time, + bool is_final_decision) override; + void NotifyPermissionSetWithLifetime(const PermissionRequestID& id, + const GURL& requesting_origin, + const GURL& embedding_origin, @@ -932,11 +1005,12 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + bool persist, + ContentSetting content_setting, + bool is_one_time, ++ bool is_final_decision, + content_settings::LifetimeMode lifetime_option) override; PermissionResult UpdatePermissionStatusWithDeviceStatus( PermissionResult result, const GURL& requesting_origin, -@@ -129,6 +137,7 @@ class GeolocationPermissionContextAndroid +@@ -130,6 +139,7 @@ class GeolocationPermissionContextAndroid const GURL& embedding_origin, bool persist, ContentSetting content_setting, @@ -944,7 +1018,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome); void FinishNotifyPermissionSet(const PermissionRequestID& id, -@@ -136,7 +145,9 @@ class GeolocationPermissionContextAndroid +@@ -137,7 +147,9 @@ class GeolocationPermissionContextAndroid const GURL& embedding_origin, BrowserPermissionCallback callback, bool persist, @@ -956,9 +1030,10 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr std::unique_ptr location_settings_; diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc +index 445f44d4b5c73..42165f0714582 100644 --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -226,6 +226,20 @@ PermissionContextBase::CreatePermissionRequest( +@@ -250,6 +250,20 @@ PermissionContextBase::CreatePermissionRequest( std::move(delete_callback)); } @@ -979,35 +1054,42 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -405,7 +419,8 @@ void PermissionContextBase::PermissionDecided( - const GURL& embedding_origin, - BrowserPermissionCallback callback, - ContentSetting content_setting, -- bool is_one_time) { -+ bool is_one_time, -+ content_settings::LifetimeMode lifetime_option) { +@@ -429,7 +443,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, + const GURL& embedding_origin, + ContentSetting content_setting, + bool is_one_time, +- bool is_final_decision) { ++ bool is_final_decision, ++ content_settings::LifetimeMode lifetime_option) { DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -413,9 +428,9 @@ void PermissionContextBase::PermissionDecided( - content_setting); - - bool persist = content_setting != CONTENT_SETTING_DEFAULT; -- NotifyPermissionSet(id, requesting_origin, embedding_origin, -+ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, - std::move(callback), persist, content_setting, -- is_one_time); -+ is_one_time, lifetime_option); +@@ -444,13 +459,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, + // missing if a permission prompt was preignored and we already notified an + // origin about it. + if (request->second.second) { +- NotifyPermissionSet(id, requesting_origin, embedding_origin, ++ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, + std::move(request->second.second), persist, +- content_setting, is_one_time, is_final_decision); ++ content_setting, is_one_time, is_final_decision, ++ lifetime_option); + } else { +- NotifyPermissionSet(id, requesting_origin, embedding_origin, ++ NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, + base::DoNothing(), persist, content_setting, +- is_one_time, is_final_decision); ++ is_one_time, is_final_decision, lifetime_option); + } } - content::BrowserContext* PermissionContextBase::browser_context() const { -@@ -465,11 +480,26 @@ void PermissionContextBase::NotifyPermissionSet( - bool persist, +@@ -502,11 +518,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, - bool is_one_time) { + bool is_one_time, + bool is_final_decision) { + DCHECK(is_one_time == false); + NotifyPermissionSetWithLifetime(id, requesting_origin, embedding_origin, std::move(callback), -+ persist, content_setting, is_one_time, ++ persist, content_setting, is_one_time, is_final_decision, + content_settings::LifetimeMode::Always); +} + @@ -1019,6 +1101,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm + bool persist, + ContentSetting content_setting, + bool is_one_time, ++ bool is_final_decision, + content_settings::LifetimeMode lifetime_option) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -1028,8 +1111,8 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm + is_one_time, lifetime_option); } - UpdateTabContext(id, requesting_origin, -@@ -490,6 +520,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, + if (is_final_decision) { +@@ -536,6 +568,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1045,19 +1128,20 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -498,6 +537,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, - content_settings::ContentSettingConstraints constraints = { - base::Time(), is_one_time ? content_settings::SessionModel::OneTime - : content_settings::SessionModel::Durable}; +@@ -545,6 +586,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, + constraints.set_session_model(is_one_time + ? content_settings::SessionModel::OneTime + : content_settings::SessionModel::Durable); + if (is_one_time) + constraints = content_settings::GetConstraintSessionExpiration(lifetime_option); #if !BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled( diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h +index 35971997d12c7..a10e5b6fcebd2 100644 --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -139,6 +139,14 @@ class PermissionContextBase : public content_settings::Observer { +@@ -143,6 +143,15 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1068,11 +1152,12 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi + bool persist, + ContentSetting content_setting, + bool is_one_time, ++ bool is_final_decision, + content_settings::LifetimeMode lifetime_option); virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -159,6 +167,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -164,6 +173,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). @@ -1084,7 +1169,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, -@@ -191,6 +204,14 @@ class PermissionContextBase : public content_settings::Observer { +@@ -196,6 +210,14 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure delete_callback) const; @@ -1099,20 +1184,21 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi ContentSettingsType content_settings_type() const { return content_settings_type_; } -@@ -217,7 +238,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -222,7 +244,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, - BrowserPermissionCallback callback, ContentSetting content_setting, -- bool is_one_time); -+ bool is_one_time, + bool is_one_time, +- bool is_final_decision); ++ bool is_final_decision, + content_settings::LifetimeMode lifetime_option); raw_ptr browser_context_; const ContentSettingsType content_settings_type_; diff --git a/components/permissions/permission_prompt.h b/components/permissions/permission_prompt.h +index 5cd10a941bab7..a99d0ba3e6633 100644 --- a/components/permissions/permission_prompt.h +++ b/components/permissions/permission_prompt.h -@@ -59,8 +59,9 @@ class PermissionPrompt { +@@ -63,8 +63,9 @@ class PermissionPrompt { virtual GURL GetEmbeddingOrigin() const = 0; virtual void Accept() = 0; @@ -1124,9 +1210,10 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions virtual void Ignore() = 0; diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc +index e0ce1017f23b0..c2966cf7522b9 100644 --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc -@@ -31,6 +31,18 @@ PermissionRequest::PermissionRequest( +@@ -28,6 +28,18 @@ PermissionRequest::PermissionRequest( permission_decided_callback_(std::move(permission_decided_callback)), delete_callback_(std::move(delete_callback)) {} @@ -1145,20 +1232,21 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -235,17 +247,35 @@ std::u16string PermissionRequest::GetMessageTextFragment() const { +@@ -263,19 +275,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { + permissions::features::kPermissionStorageAccessAPI); } - #endif -void PermissionRequest::PermissionGranted(bool is_one_time) { +void PermissionRequest::PermissionGranted(bool is_one_time, + content_settings::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_ALLOW, is_one_time, lifetime_option); ++ .Run(CONTENT_SETTING_ALLOW, is_one_time, /*is_final_decision=*/true, lifetime_option); + return; + } std::move(permission_decided_callback_) - .Run(CONTENT_SETTING_ALLOW, is_one_time); + .Run(CONTENT_SETTING_ALLOW, is_one_time, + /*is_final_decision=*/true); } -void PermissionRequest::PermissionDenied() { @@ -1166,38 +1254,41 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio + content_settings::LifetimeMode lifetime_option) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_BLOCK, is_one_time, lifetime_option); ++ .Run(CONTENT_SETTING_BLOCK, is_one_time, /*is_final_decision=*/true, lifetime_option); + return; + } std::move(permission_decided_callback_) - .Run(CONTENT_SETTING_BLOCK, /*is_one_time=*/false); + .Run(CONTENT_SETTING_BLOCK, /*is_one_time=*/false, + /*is_final_decision=*/true); } - void PermissionRequest::Cancelled() { + void PermissionRequest::Cancelled(bool is_final_decision) { + if (permission_decided_callback_withlifetime_) { + std::move(permission_decided_callback_withlifetime_) -+ .Run(CONTENT_SETTING_DEFAULT, false, ++ .Run(CONTENT_SETTING_DEFAULT, false, is_final_decision, + content_settings::LifetimeMode::Always); + return; + } - std::move(permission_decided_callback_) - .Run(CONTENT_SETTING_DEFAULT, /*is_one_time=*/false); + permission_decided_callback_.Run(CONTENT_SETTING_DEFAULT, + /*is_one_time=*/false, is_final_decision); } diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h +index aa585003b8458..e8e6ec6c55ae1 100644 --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -39,6 +39,10 @@ class PermissionRequest { - using PermissionDecidedCallback = - base::OnceCallback; +@@ -43,6 +43,11 @@ class PermissionRequest { + bool /*is_one_time*/, + bool /*is_final_decision*/)>; + using PermissionDecidedCallbackWithLifetime = + base::OnceCallback; + // `permission_decided_callback` is called when the permission request is // resolved by the user (see comment on PermissionDecidedCallback above). // `delete_callback` is called when the permission request is no longer needed -@@ -54,6 +58,12 @@ class PermissionRequest { +@@ -58,6 +63,12 @@ class PermissionRequest { PermissionDecidedCallback permission_decided_callback, base::OnceClosure delete_callback); @@ -1210,7 +1301,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -106,10 +116,10 @@ class PermissionRequest { +@@ -119,10 +130,10 @@ class PermissionRequest { // If |is_one_time| is true the permission will last until all tabs of // |origin| are closed or navigated away from, and then the permission will // automatically expire after 1 day. @@ -1223,7 +1314,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -147,6 +157,9 @@ class PermissionRequest { +@@ -170,6 +181,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1234,9 +1325,10 @@ diff --git a/components/permissions/permission_request.h b/components/permission // caller. base::OnceClosure delete_callback_; diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc +index a37cc86666564..78014eddb6975 100644 --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -148,7 +148,7 @@ void PermissionRequestManager::AddRequest( +@@ -155,7 +155,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1245,7 +1337,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request->RequestFinished(); return; } -@@ -224,7 +224,7 @@ void PermissionRequestManager::AddRequest( +@@ -231,7 +231,7 @@ void PermissionRequestManager::AddRequest( if (auto_approval_origin) { if (url::Origin::Create(request->requesting_origin()) == auto_approval_origin.value()) { @@ -1254,16 +1346,17 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -541,14 +541,15 @@ void PermissionRequestManager::Accept() { +@@ -566,7 +566,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, - /*is_one_time=*/false); + /*is_one_time=*/false, + content_settings::LifetimeMode::Always); - } - NotifyRequestDecided(PermissionAction::GRANTED); + #if !BUILDFLAG(IS_ANDROID) + absl::optional content_settings_type = +@@ -584,7 +585,7 @@ void PermissionRequestManager::Accept() { FinalizeCurrentRequests(PermissionAction::GRANTED); } @@ -1272,7 +1365,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -559,7 +560,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -595,7 +596,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1282,7 +1375,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -567,6 +569,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -603,6 +605,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1298,7 +1391,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -589,7 +600,7 @@ void PermissionRequestManager::Deny() { +@@ -625,7 +636,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1307,39 +1400,50 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -967,25 +978,25 @@ PermissionRequest* PermissionRequestManager::GetExistingRequest( +@@ -1155,32 +1166,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, - bool is_one_time) { + bool is_one_time, content_settings::LifetimeMode lifetime_option) { - DCHECK_EQ(1ul, base::STLCount(requests_, request) + + DCHECK_EQ(1ul, base::ranges::count(requests_, request) + pending_permission_requests_.Count(request)) << "Only requests in [pending_permission_]requests_ can have duplicates"; - request->PermissionGranted(is_one_time); + request->PermissionGranted(is_one_time, lifetime_option); - auto range = duplicate_requests_.equal_range(request); - for (auto it = range.first; it != range.second; ++it) -- it->second->PermissionGranted(is_one_time); -+ it->second->PermissionGranted(is_one_time, lifetime_option); + VisitDuplicateRequests( + base::BindRepeating( +- [](bool is_one_time, ++ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, + const base::WeakPtr& weak_request) { +- weak_request->PermissionGranted(is_one_time); ++ weak_request->PermissionGranted(is_one_time, lifetime_option); + }, +- is_one_time), ++ is_one_time, lifetime_option), + request); } void PermissionRequestManager::PermissionDeniedIncludingDuplicates( - PermissionRequest* request) { + PermissionRequest* request, bool is_one_time, content_settings::LifetimeMode lifetime_option) { - DCHECK_EQ(1ul, base::STLCount(requests_, request) + + DCHECK_EQ(1ul, base::ranges::count(requests_, request) + pending_permission_requests_.Count(request)) << "Only requests in [pending_permission_]requests_ can have duplicates"; - request->PermissionDenied(); + request->PermissionDenied(is_one_time, lifetime_option); - auto range = duplicate_requests_.equal_range(request); - for (auto it = range.first; it != range.second; ++it) -- it->second->PermissionDenied(); -+ it->second->PermissionDenied(is_one_time, lifetime_option); + VisitDuplicateRequests( + base::BindRepeating( +- [](const base::WeakPtr& weak_request) { +- weak_request->PermissionDenied(); +- }), ++ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { ++ weak_request->PermissionDenied(is_one_time, lifetime_option); ++ }, is_one_time, lifetime_option), + request); } - void PermissionRequestManager::CancelledIncludingDuplicates( -@@ -1187,7 +1198,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { +@@ -1429,7 +1440,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { void PermissionRequestManager::DoAutoResponseForTesting() { switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1349,9 +1453,10 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p case ACCEPT_ALL: Accept(); diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h +index 23a06b0cb68e2..61f24f088bf5e 100644 --- a/components/permissions/permission_request_manager.h +++ b/components/permissions/permission_request_manager.h -@@ -141,8 +141,10 @@ class PermissionRequestManager +@@ -157,8 +157,10 @@ class PermissionRequestManager GURL GetRequestingOrigin() const override; GURL GetEmbeddingOrigin() const override; void Accept() override; @@ -1362,8 +1467,8 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe + void DenyThisTime(content_settings::LifetimeMode lifetime_option) override; void Dismiss() override; void Ignore() override; - bool WasCurrentRequestAlreadyDisplayed() override; -@@ -303,9 +305,12 @@ class PermissionRequestManager + void OpenHelpCenterLink(const ui::Event& event) override; +@@ -356,9 +358,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, @@ -1376,7 +1481,8 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe + bool is_one_time, + content_settings::LifetimeMode lifetime_option); // Calls Cancelled on a request and all its duplicates. - void CancelledIncludingDuplicates(PermissionRequest* request); - // Calls RequestFinished on a request and all its duplicates. --- -2.25.1 + void CancelledIncludingDuplicates(PermissionRequest* request, + bool is_final_decision = true); +-- +2.34.1 + diff --git a/bromite/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/bromite/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 6660250a..7ef7cb4c 100644 --- a/bromite/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/bromite/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -1,6 +1,7 @@ +From a7a1013bc8d7206b8bcbbcfc31889f9b9c7210cc Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Thu, 18 Feb 2021 21:22:52 +0100 -Subject: Add menu item to bookmark all tabs +Subject: [PATCH 125/192] Add menu item to bookmark all tabs License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -8,29 +9,30 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ChromeTabbedActivity.java | 24 ++++++++ .../browser/bookmarks/BookmarkBridge.java | 61 +++++++++++++++++++ .../browser/bookmarks/BookmarkUtils.java | 4 ++ - .../bookmarks/android/bookmark_bridge.cc | 17 ++++++ + .../bookmarks/android/bookmark_bridge.cc | 19 +++++- .../bookmarks/android/bookmark_bridge.h | 4 ++ .../browser/bookmarks/bookmark_html_writer.cc | 8 ++- .../bookmarks/chrome_bookmark_client.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 + components/bookmark_bar_strings.grdp | 6 ++ - .../bookmarks/browser/bookmark_codec.cc | 24 ++++++-- + .../bookmarks/browser/bookmark_codec.cc | 22 +++++-- components/bookmarks/browser/bookmark_codec.h | 7 ++- .../browser/bookmark_load_details.cc | 4 ++ - .../bookmarks/browser/bookmark_load_details.h | 2 + + .../bookmarks/browser/bookmark_load_details.h | 3 + .../bookmarks/browser/bookmark_model.cc | 3 +- components/bookmarks/browser/bookmark_model.h | 7 +++ components/bookmarks/browser/bookmark_node.cc | 15 +++++ components/bookmarks/browser/bookmark_node.h | 5 ++ components/bookmarks/browser/model_loader.cc | 3 +- .../bookmark_specifics_conversions.cc | 1 + - 21 files changed, 201 insertions(+), 10 deletions(-) + 21 files changed, 201 insertions(+), 11 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml +index 5fba37b694d93..ce518eb0d1e36 100644 --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -66,6 +66,10 @@ found in the LICENSE file. +@@ -69,6 +69,10 @@ found in the LICENSE file. @@ -41,10 +43,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -184,6 +188,9 @@ found in the LICENSE file. - +@@ -181,6 +185,9 @@ found in the LICENSE file. + + @@ -52,9 +54,10 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re android:title="@string/menu_select_tabs" android:icon="@drawable/ic_select_tabs" /> diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +index 3a4fd6587e003..b21387148dcbb 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -77,6 +77,7 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan +@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -62,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -2203,6 +2204,8 @@ public class ChromeTabbedActivity extends ChromeActivity getTabModelSelector().closeAllTabs(), /*isIncognito=*/false); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -71,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(), -@@ -2255,6 +2258,27 @@ public class ChromeTabbedActivity extends ChromeActivity folderList, List depthList); BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller); @@ -206,9 +210,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkId getOtherFolderId(long nativeBookmarkBridge, BookmarkBridge caller); BookmarkId getDesktopFolderId(long nativeBookmarkBridge, BookmarkBridge caller); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +index c7dd9469a9870..455e16feea767 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -648,6 +648,7 @@ public class BookmarkUtils { +@@ -575,6 +575,7 @@ public class BookmarkUtils { List topLevelFolders = new ArrayList<>(); BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId(); BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId(); @@ -216,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkId othersNodeId = bookmarkModel.getOtherFolderId(); List specialFoldersIds = -@@ -673,6 +674,9 @@ public class BookmarkUtils { +@@ -600,6 +601,9 @@ public class BookmarkUtils { if (bookmarkModel.isFolderVisible(mobileNodeId)) { topLevelFolders.add(mobileNodeId); } @@ -227,9 +232,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm topLevelFolders.add(desktopNodeId); } diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc +index a1b28027dfc9d..bd97e4c8042bc 100644 --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -437,6 +437,11 @@ void BookmarkBridge::GetTopLevelFolderIDs( +@@ -470,12 +470,17 @@ void BookmarkBridge::GetTopLevelFolderIds( + std::size_t special_count = top_level_folders.size(); + + if (get_normal) { +- DCHECK_EQ(4u, bookmark_model_->root_node()->children().size()); ++ DCHECK_EQ(5u, bookmark_model_->root_node()->children().size()); + for (const auto& node : bookmark_model_->mobile_node()->children()) { + if (node->is_folder()) top_level_folders.push_back(node.get()); } @@ -241,7 +254,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse for (const auto& node : bookmark_model_->bookmark_bar_node()->children()) { if (node->is_folder()) top_level_folders.push_back(node.get()); -@@ -484,6 +489,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -523,6 +528,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -249,7 +262,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -536,6 +542,17 @@ ScopedJavaLocalRef BookmarkBridge::GetMobileFolderId( +@@ -575,6 +581,17 @@ ScopedJavaLocalRef BookmarkBridge::GetMobileFolderId( return folder_id_obj; } @@ -268,9 +281,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse JNIEnv* env, const JavaParamRef& obj) { diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h +index f194fe45a09f5..ef6ad825b903f 100644 --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -121,6 +121,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -133,6 +133,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, JNIEnv* env, const base::android::JavaParamRef& obj); @@ -282,29 +296,31 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser JNIEnv* env, const base::android::JavaParamRef& obj); diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc +index 425e94c42b1d4..5b7176318c520 100644 --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc -@@ -190,6 +190,8 @@ class Writer : public base::RefCountedThreadSafe { - roots->FindDictKey(BookmarkCodec::kOtherBookmarkFolderNameKey); - base::Value* mobile_folder_value = - roots->FindDictKey(BookmarkCodec::kMobileBookmarkFolderNameKey); -+ base::Value* tabs_collection_value = -+ roots->FindDictKey(BookmarkCodec::kTabsBookmarkFolderNameKey); +@@ -188,15 +188,19 @@ class Writer : public base::RefCountedThreadSafe { + roots->FindDict(BookmarkCodec::kOtherBookmarkFolderNameKey); + base::Value::Dict* mobile_folder_value = + roots->FindDict(BookmarkCodec::kMobileBookmarkFolderNameKey); ++ base::Value::Dict* tabs_collection_value = ++ roots->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey); DCHECK(root_folder_value); DCHECK(other_folder_value); DCHECK(mobile_folder_value); -@@ -201,7 +203,9 @@ class Writer : public base::RefCountedThreadSafe { - !WriteNode(*static_cast(other_folder_value), - BookmarkNode::OTHER_NODE) || - !WriteNode(*static_cast(mobile_folder_value), -- BookmarkNode::MOBILE)) { -+ BookmarkNode::MOBILE) || -+ !WriteNode(*static_cast(tabs_collection_value), -+ BookmarkNode::TABS_COLLECTION)) { ++ DCHECK(tabs_collection_value); + + IncrementIndent(); + + if (!WriteNode(*root_folder_value, BookmarkNode::BOOKMARK_BAR) || + !WriteNode(*other_folder_value, BookmarkNode::OTHER_NODE) || +- !WriteNode(*mobile_folder_value, BookmarkNode::MOBILE)) { ++ !WriteNode(*mobile_folder_value, BookmarkNode::MOBILE) || ++ !WriteNode(*tabs_collection_value, BookmarkNode::TABS_COLLECTION)) { NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes); return; } -@@ -466,6 +470,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { +@@ -460,6 +464,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { BookmarkModelFactory::GetForBrowserContext(profile_)->other_node()); ExtractUrls( BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node()); @@ -314,9 +330,10 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b FetchNextFavicon(); else diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc +index 247da1056dae1..81c56bacf0ab7 100644 --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc -@@ -144,6 +144,8 @@ bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty( +@@ -106,6 +106,8 @@ bool ChromeBookmarkClient::IsPermanentNodeVisibleWhenEmpty( return !is_mobile; case bookmarks::BookmarkNode::MOBILE: return is_mobile; @@ -326,6 +343,7 @@ diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser return false; diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +index c6c56e5bf5063..a49059193334b 100644 --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java @@ -79,7 +79,7 @@ public class DownloadLocationCustomView @@ -347,11 +365,12 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse } diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index 3aa85fe2c1325..bbf49ca492f06 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3606,6 +3606,9 @@ To change this setting, <resetlink>reset sync

- Track prices +@@ -3817,6 +3817,9 @@ To change this setting, <resetlink>reset sync

+ Select tabs + + Bookmark all tabs @@ -360,6 +379,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Get image descriptions diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp +index 2f737d348e586..c78b9bb5490d2 100644 --- a/components/bookmark_bar_strings.grdp +++ b/components/bookmark_bar_strings.grdp @@ -20,6 +20,9 @@ @@ -383,6 +403,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri Other Bookmarks diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc +index 0476cf90dc273..d420f2bc85a79 100644 --- a/components/bookmarks/browser/bookmark_codec.cc +++ b/components/bookmarks/browser/bookmark_codec.cc @@ -35,6 +35,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; @@ -393,9 +414,9 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar const char BookmarkCodec::kVersionKey[] = "version"; const char BookmarkCodec::kChecksumKey[] = "checksum"; const char BookmarkCodec::kIdKey[] = "id"; -@@ -78,7 +79,8 @@ BookmarkCodec::~BookmarkCodec() = default; - base::Value BookmarkCodec::Encode(BookmarkModel* model, - std::string sync_metadata_str) { +@@ -74,7 +75,8 @@ BookmarkCodec::~BookmarkCodec() = default; + base::Value::Dict BookmarkCodec::Encode(BookmarkModel* model, + std::string sync_metadata_str) { return Encode(model->bookmark_bar_node(), model->other_node(), - model->mobile_node(), model->root_node()->GetMetaInfoMap(), + model->mobile_node(), model->tabs_collection_node(), @@ -403,7 +424,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar model->root_node()->GetUnsyncedMetaInfoMap(), std::move(sync_metadata_str)); } -@@ -87,6 +89,7 @@ base::Value BookmarkCodec::Encode( +@@ -83,6 +85,7 @@ base::Value::Dict BookmarkCodec::Encode( const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -411,15 +432,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar const BookmarkNode::MetaInfoMap* model_meta_info_map, const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map, std::string sync_metadata_str) { -@@ -109,6 +112,7 @@ base::Value BookmarkCodec::Encode( - roots.SetKey(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node)); - roots.SetKey(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); - roots.SetKey(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); -+ roots.SetKey(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); +@@ -104,6 +107,7 @@ base::Value::Dict BookmarkCodec::Encode( + roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node)); + roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); + roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); ++ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); if (model_meta_info_map) - roots.SetKey(kMetaInfo, EncodeMetaInfo(*model_meta_info_map)); + roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map)); if (model_unsynced_meta_info_map) { -@@ -130,6 +134,7 @@ bool BookmarkCodec::Decode(const base::Value& value, +@@ -124,6 +128,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -427,17 +448,17 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar int64_t* max_id, std::string* sync_metadata_str) { ids_.clear(); -@@ -137,7 +142,8 @@ bool BookmarkCodec::Decode(const base::Value& value, - base::GUID::ParseLowercase(BookmarkNode::kBookmarkBarNodeGuid), - base::GUID::ParseLowercase(BookmarkNode::kOtherBookmarksNodeGuid), - base::GUID::ParseLowercase(BookmarkNode::kMobileBookmarksNodeGuid), -- base::GUID::ParseLowercase(BookmarkNode::kManagedNodeGuid)}; -+ base::GUID::ParseLowercase(BookmarkNode::kManagedNodeGuid), -+ base::GUID::ParseLowercase(BookmarkNode::kTabsCollectionBookmarksNodeGuid)}; +@@ -131,7 +136,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + base::Uuid::ParseLowercase(BookmarkNode::kBookmarkBarNodeUuid), + base::Uuid::ParseLowercase(BookmarkNode::kOtherBookmarksNodeUuid), + base::Uuid::ParseLowercase(BookmarkNode::kMobileBookmarksNodeUuid), +- base::Uuid::ParseLowercase(BookmarkNode::kManagedNodeUuid)}; ++ base::Uuid::ParseLowercase(BookmarkNode::kManagedNodeUuid), ++ base::Uuid::ParseLowercase(BookmarkNode::kTabsCollectionBookmarksNodeUuid)}; ids_reassigned_ = false; - guids_reassigned_ = false; + uuids_reassigned_ = false; ids_valid_ = true; -@@ -145,12 +151,13 @@ bool BookmarkCodec::Decode(const base::Value& value, +@@ -139,12 +145,13 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, stored_checksum_.clear(); InitializeChecksum(); bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node, @@ -452,28 +473,33 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar *max_id = maximum_id_ + 1; return success; } -@@ -207,6 +214,7 @@ base::Value BookmarkCodec::EncodeMetaInfo( +@@ -200,6 +207,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, + BookmarkNode* tabs_folder_node, - const base::Value& value, + const base::Value::Dict& value, std::string* sync_metadata_str) { - if (!value.is_dict()) -@@ -238,6 +246,12 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, + absl::optional version = value.FindInt(kVersionKey); +@@ -224,6 +232,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, + roots->FindDict(kOtherBookmarkFolderNameKey); + const base::Value::Dict* mobile_folder_value = + roots->FindDict(kMobileBookmarkFolderNameKey); ++ const base::Value::Dict* tabs_folder_value = ++ roots->FindDict(kTabsBookmarkFolderNameKey); + + if (!bb_value || !other_folder_value || !mobile_folder_value) return false; - +@@ -231,6 +241,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, DecodeNode(*bb_value, nullptr, bb_node); -+ const base::DictionaryValue* tabs_folder_d_value = nullptr; -+ const base::Value* tabs_folder_value = -+ roots->FindDictKey(kTabsBookmarkFolderNameKey); -+ if (tabs_folder_value && tabs_folder_value->GetAsDictionary(&tabs_folder_d_value)) -+ DecodeNode(*tabs_folder_d_value, nullptr, tabs_folder_node); -+ DecodeNode(*other_folder_value, nullptr, other_folder_node); DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node); ++ if (tabs_folder_value) ++ DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node); -@@ -508,11 +522,13 @@ void BookmarkCodec::DecodeMetaInfoHelper( + if (!DecodeMetaInfo(*roots, &model_meta_info_map_)) + return false; +@@ -496,11 +508,13 @@ void BookmarkCodec::DecodeMetaInfoHelper( void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -489,9 +515,10 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar } diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h +index 930d0ad114572..da0e9c24c249c 100644 --- a/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h -@@ -49,6 +49,7 @@ class BookmarkCodec { +@@ -46,6 +46,7 @@ class BookmarkCodec { const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -499,7 +526,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark const BookmarkNode::MetaInfoMap* model_meta_info_map, const BookmarkNode::MetaInfoMap* model_unsynced_meta_info_map, std::string sync_metadata_str); -@@ -62,6 +63,7 @@ class BookmarkCodec { +@@ -59,6 +60,7 @@ class BookmarkCodec { BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -507,7 +534,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark int64_t* max_node_id, std::string* sync_metadata_str); -@@ -113,6 +115,7 @@ class BookmarkCodec { +@@ -110,6 +112,7 @@ class BookmarkCodec { // Allows the BookmarkClient to read and a write a string blob from the JSON // file. That string captures the bookmarks sync metadata. static const char kSyncMetadata[]; @@ -515,15 +542,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark static const char kDateLastUsed[]; // Possible values for kTypeKey. -@@ -130,6 +133,7 @@ class BookmarkCodec { +@@ -128,6 +131,7 @@ class BookmarkCodec { bool DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, + BookmarkNode* tabs_folder_node, - const base::Value& value, + const base::Value::Dict& value, std::string* sync_metadata_str); -@@ -141,7 +145,8 @@ class BookmarkCodec { +@@ -139,7 +143,8 @@ class BookmarkCodec { // Reassigns bookmark IDs for all nodes. void ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -534,6 +561,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark // Helper to recursively reassign IDs. void ReassignIDsHelper(BookmarkNode* node); diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc +index 44bceedb35b0f..1714b13ff1fcf 100644 --- a/components/bookmarks/browser/bookmark_load_details.cc +++ b/components/bookmarks/browser/bookmark_load_details.cc @@ -37,6 +37,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client) @@ -548,6 +576,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/ BookmarkLoadDetails::~BookmarkLoadDetails() = default; diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h +index eed55313469c8..f6145e2f1277e 100644 --- a/components/bookmarks/browser/bookmark_load_details.h +++ b/components/bookmarks/browser/bookmark_load_details.h @@ -47,6 +47,7 @@ class BookmarkLoadDetails { @@ -558,18 +587,20 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b TitledUrlIndex* index() { return index_.get(); } std::unique_ptr owned_index() { return std::move(index_); } -@@ -110,6 +111,7 @@ class BookmarkLoadDetails { - raw_ptr bb_node_ = nullptr; - raw_ptr other_folder_node_ = nullptr; - raw_ptr mobile_folder_node_ = nullptr; -+ BookmarkPermanentNode* tabs_collection_folder_node_ = nullptr; +@@ -112,6 +113,8 @@ class BookmarkLoadDetails { + nullptr; + raw_ptr mobile_folder_node_ = + nullptr; ++ raw_ptr tabs_collection_folder_node_ = ++ nullptr; LoadManagedNodeCallback load_managed_node_callback_; std::unique_ptr index_; BookmarkNode::MetaInfoMap model_meta_info_map_; diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc +index f3aa05efd85a1..dcc57362c1ff7 100644 --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -670,7 +670,7 @@ bool BookmarkModel::HasBookmarks() { +@@ -817,7 +817,7 @@ bool BookmarkModel::HasBookmarks() { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -578,7 +609,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) { -@@ -926,6 +926,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1123,6 +1123,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { bookmark_bar_node_ = details->bb_node(); other_node_ = details->other_folder_node(); mobile_node_ = details->mobile_folder_node(); @@ -587,9 +618,10 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar titled_url_index_->SetNodeSorter( std::make_unique(client_.get())); diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h +index 8258c2b992e8c..b41d8802fd637 100644 --- a/components/bookmarks/browser/bookmark_model.h +++ b/components/bookmarks/browser/bookmark_model.h -@@ -122,6 +122,12 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -131,6 +131,12 @@ class BookmarkModel final : public BookmarkUndoProvider, return mobile_node_; } @@ -602,27 +634,28 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark bool is_root_node(const BookmarkNode* node) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return node == root_; -@@ -445,6 +451,7 @@ class BookmarkModel : public BookmarkUndoProvider, - raw_ptr bookmark_bar_node_ = nullptr; - raw_ptr other_node_ = nullptr; - raw_ptr mobile_node_ = nullptr; +@@ -489,6 +495,7 @@ class BookmarkModel final : public BookmarkUndoProvider, + nullptr; + raw_ptr other_node_ = nullptr; + raw_ptr mobile_node_ = nullptr; + raw_ptr tabs_collection_node_ = nullptr; // The maximum ID assigned to the bookmark nodes in the model. int64_t next_node_id_ = 1; diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc +index 6da992e9a0dec..a1c6262ffb898 100644 --- a/components/bookmarks/browser/bookmark_node.cc +++ b/components/bookmarks/browser/bookmark_node.cc -@@ -60,6 +60,10 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] = - const char BookmarkNode::kMobileBookmarksNodeGuid[] = +@@ -60,6 +60,10 @@ const char BookmarkNode::kOtherBookmarksNodeUuid[] = + const char BookmarkNode::kMobileBookmarksNodeUuid[] = "4cf2e351-0e85-532b-bb37-df045d8f8d0f"; +// static -+const char BookmarkNode::kTabsCollectionBookmarksNodeGuid[] = ++const char BookmarkNode::kTabsCollectionBookmarksNodeUuid[] = + "00000000-0000-4000-a000-000000000006"; + // static - const char BookmarkNode::kManagedNodeGuid[] = + const char BookmarkNode::kManagedNodeUuid[] = "323123f4-9381-5aee-80e6-ea5fca2f7672"; @@ -275,6 +279,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id, visible_when_empty)); @@ -634,15 +667,16 @@ diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmark + bool visible_when_empty) { + // base::WrapUnique() used because the constructor is private. + return base::WrapUnique(new BookmarkPermanentNode( -+ id, TABS_COLLECTION, base::GUID::ParseLowercase(kTabsCollectionBookmarksNodeGuid), ++ id, TABS_COLLECTION, base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid), + l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME), + visible_when_empty)); +} + BookmarkPermanentNode::BookmarkPermanentNode(int64_t id, Type type, - const base::GUID& guid, + const base::Uuid& uuid, diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks/browser/bookmark_node.h +index 13e7d3dfb2bab..a9f150f247125 100644 --- a/components/bookmarks/browser/bookmark_node.h +++ b/components/bookmarks/browser/bookmark_node.h @@ -35,6 +35,7 @@ class BookmarkNode : public ui::TreeNode, public TitledUrlNode { @@ -654,13 +688,13 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks }; @@ -52,6 +53,7 @@ class BookmarkNode : public ui::TreeNode, public TitledUrlNode { - static const char kBookmarkBarNodeGuid[]; - static const char kOtherBookmarksNodeGuid[]; - static const char kMobileBookmarksNodeGuid[]; -+ static const char kTabsCollectionBookmarksNodeGuid[]; - static const char kManagedNodeGuid[]; + static const char kBookmarkBarNodeUuid[]; + static const char kOtherBookmarksNodeUuid[]; + static const char kMobileBookmarksNodeUuid[]; ++ static const char kTabsCollectionBookmarksNodeUuid[]; + static const char kManagedNodeUuid[]; - // A bug in sync caused some problematic GUIDs to be produced. + // A bug in sync caused some problematic UUIDs to be produced. @@ -270,6 +272,9 @@ class BookmarkPermanentNode : public BookmarkNode { static std::unique_ptr CreateMobileBookmarks( int64_t id, @@ -672,12 +706,13 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks // Constructor is private to disallow the construction of permanent nodes // other than the well-known ones, see factory methods. diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc +index 7b19a6617fd89..d81817620b5f0 100644 --- a/components/bookmarks/browser/model_loader.cc +++ b/components/bookmarks/browser/model_loader.cc -@@ -58,7 +58,8 @@ void LoadBookmarks(const base::FilePath& path, +@@ -60,7 +60,8 @@ void LoadBookmarks(const base::FilePath& path, std::string sync_metadata_str; BookmarkCodec codec; - codec.Decode(*root, details->bb_node(), details->other_folder_node(), + codec.Decode(*root_dict, details->bb_node(), details->other_folder_node(), - details->mobile_folder_node(), &max_node_id, + details->mobile_folder_node(), + details->tabs_collection_folder_node(), &max_node_id, @@ -685,6 +720,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks details->set_sync_metadata_str(std::move(sync_metadata_str)); details->set_max_id(std::max(max_node_id, details->max_id())); diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc +index b8b0b4595b959..789b087675dc0 100644 --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc @@ -446,6 +446,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( @@ -695,5 +731,6 @@ diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/compo DCHECK(node->is_folder()); return sync_pb::BookmarkSpecifics::FOLDER; } --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-menu-item-to-view-source.patch b/bromite/build/patches/Add-menu-item-to-view-source.patch index e9acf4b9..878eb362 100644 --- a/bromite/build/patches/Add-menu-item-to-view-source.patch +++ b/bromite/build/patches/Add-menu-item-to-view-source.patch @@ -1,6 +1,7 @@ +From f00bb5d86c6e9abfe4c16f290e04d6a6eecadf98 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 13 Jul 2020 00:37:06 +0200 -Subject: Add menu item to view source +Subject: [PATCH 107/192] Add menu item to view source License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -14,19 +15,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 7 files changed, 36 insertions(+) diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml +index 5cbabcc7c98d2..4a98471bffb07 100644 --- a/chrome/android/java/res/menu/custom_tabs_menu.xml +++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -51,6 +51,9 @@ found in the LICENSE file. +@@ -55,6 +55,9 @@ found in the LICENSE file. + - diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml +index 1e4be071ad5cd..5fba37b694d93 100644 --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml @@ -108,6 +108,9 @@ found in the LICENSE file. @@ -36,13 +39,14 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re + - + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +index b78446b29cd69..3a4fd6587e003 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -2229,6 +2229,8 @@ public class ChromeTabbedActivity extends ChromeActivity - return true; +@@ -2524,6 +2524,11 @@ public abstract class ChromeActivity + return doOpenWebApk(currentTab); } + if (id == R.id.view_source_id) { @@ -67,9 +72,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv boolean usingDesktopUserAgent = currentTab.getWebContents().getNavigationController().getUseDesktopUserAgent(); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +index eca5da511984e..8900958a1ba7a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -543,6 +543,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -544,6 +544,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isChromeScheme, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme); @@ -77,8 +83,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isChromeScheme); -@@ -1242,6 +1243,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - stopPriceTrackingMenuItem.setVisible(false); +@@ -1114,6 +1115,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate + } } + /** @@ -102,9 +108,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App * 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 +index 899532e20c892..8ad1437a7e2a3 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -228,6 +228,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -240,6 +240,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isChromeScheme); @@ -113,9 +120,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust } } diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index 5edb718bdfb2f..d980282f0870e 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -312,6 +312,10 @@ CHAR_LIMIT guidelines: +@@ -309,6 +309,10 @@ CHAR_LIMIT guidelines: USB @@ -126,5 +134,6 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro You and Google --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-option-to-force-tablet-UI.patch b/bromite/build/patches/Add-option-to-force-tablet-UI.patch index 2e86a4a6..11a8bfa6 100644 --- a/bromite/build/patches/Add-option-to-force-tablet-UI.patch +++ b/bromite/build/patches/Add-option-to-force-tablet-UI.patch @@ -1,6 +1,7 @@ +From 4644a00d8fd9f766c944cdb50db1d02a0402ccb6 Mon Sep 17 00:00:00 2001 From: Wengling Chen Date: Mon, 1 Feb 2021 19:18:55 +0200 -Subject: Add option to force tablet UI +Subject: [PATCH 127/192] Add option to force tablet UI License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -9,20 +10,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../LegacyChromePreferenceKeys.java | 1 + .../omnibox/LocationBarCoordinator.java | 2 +- .../strings/android_chrome_strings.grd | 6 ++++++ - .../toolbar/top/ToolbarControlContainer.java | 16 ---------------- + .../toolbar/top/ToolbarControlContainer.java | 5 ++--- components/BUILD.gn | 6 +++--- .../res/xml/accessibility_preferences.xml | 5 +++++ - .../accessibility/AccessibilitySettings.java | 10 ++++++++++ + .../accessibility/AccessibilitySettings.java | 11 +++++++++++ .../AccessibilitySettingsDelegate.java | 2 ++ ui/android/BUILD.gn | 2 ++ .../chromium/ui/base/DeviceFormFactor.java | 5 +++++ - 12 files changed, 55 insertions(+), 20 deletions(-) + 12 files changed, 58 insertions(+), 7 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +index 16adf88cd50f7..7e35ced51b523 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -68,6 +68,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting - return new ReaderForAccessibilityDelegate(); +@@ -77,6 +77,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting + return new ReaderForAccessibilityDelegate(mProfile); } + private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { @@ -48,9 +50,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s public void addExtraPreferences(PreferenceFragmentCompat fragment) { if (ImageDescriptionsController.getInstance().shouldShowImageDescriptionsMenuItem()) { diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +index c789a4c8ee317..72c282a16aa97 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -430,6 +430,7 @@ public final class ChromePreferenceKeys { +@@ -386,6 +386,7 @@ public final class ChromePreferenceKeys { AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM; public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info"; @@ -59,9 +62,10 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** Keys used to save settings related to homepage. */ public static final String HOMEPAGE_CUSTOM_URI = "homepage_custom_uri"; diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +index 3663a9ee67edf..92f7a055d6bac 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -67,6 +67,7 @@ public class LegacyChromePreferenceKeys { +@@ -65,6 +65,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED, ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, @@ -70,21 +74,23 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +index 15cbf67717d30..f16a29455a70a 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -376,7 +376,7 @@ public class LocationBarCoordinator implements LocationBar, NativeInitObserver, - // OmniboxSuggestionsDropdownEmbedder implementation - @Override - public boolean isTablet() { +@@ -669,7 +669,7 @@ public class LocationBarCoordinator + } + + private boolean isTabletWindow() { - return DeviceFormFactor.isWindowOnTablet(mWindowAndroid); + return DeviceFormFactor.isWindowOnTablet(mWindowAndroid) || isTabletLayout(); } - @Override + /* package */ LocationBarMediator getMediatorForTesting() { diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index bbf49ca492f06..74becfe121a1e 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1439,6 +1439,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1675,6 +1675,12 @@ Your Google account may have other forms of browsing history like searches and a Temporarily links this data to your Google Account when you’re signed in, to protect you across Google apps @@ -98,35 +104,26 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +index d4a92457789e1..c42c7556b58ed 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -138,22 +138,6 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con - mToolbarContainer.setPostInitializationDependencies(mToolbar, constraintsSupplier, - tabSupplier, compositorInMotionSupplier, - browserStateBrowserControlsVisibilityDelegate, isVisible); -- -- View toolbarView = findViewById(R.id.toolbar); -- assert toolbarView != null; -- -- if (toolbarView instanceof ToolbarTablet) { -- // On tablet, draw a fake tab strip and toolbar until the compositor is -- // ready to draw the real tab strip. (On phone, the toolbar is made entirely -- // of Android views, which are already initialized.) +@@ -165,9 +165,8 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con + + return backgroundDrawable; + } else { - final Drawable backgroundDrawable = - AppCompatResources.getDrawable(getContext(), R.drawable.toolbar_background) - .mutate(); -- backgroundDrawable.setTint( -- ChromeColors.getDefaultThemeColor(getContext(), isIncognito)); -- backgroundDrawable.setTintMode(PorterDuff.Mode.MULTIPLY); -- setBackground(backgroundDrawable); -- } - } ++ Drawable backgroundDrawable = new ColorDrawable( ++ ChromeColors.getPrimaryBackgroundColor(getContext(), incognito)); + backgroundDrawable.setTint(ChromeColors.getDefaultThemeColor(getContext(), incognito)); + backgroundDrawable.setTintMode(PorterDuff.Mode.MULTIPLY); - @Override diff --git a/components/BUILD.gn b/components/BUILD.gn +index fb3af484189fc..1227c584867d0 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -45,7 +45,7 @@ if (is_ios) { +@@ -68,7 +68,7 @@ if (is_ios) { # Omit Lacros because it allows //components to depend on //chrome, which in # turn depends on //extensions. @@ -135,7 +132,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn disallowed_extension_deps_ = [ # Components should largely not depend on //extensions. Since // extensions # is not a component target and is linked with //chrome, depending on most -@@ -671,7 +671,7 @@ test("components_unittests") { +@@ -730,7 +730,7 @@ test("components_unittests") { # On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -144,7 +141,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn assert_no_deps = [ "//chrome/*" ] assert_no_deps += disallowed_extension_deps_ } -@@ -950,7 +950,7 @@ if (!is_ios) { +@@ -1018,7 +1018,7 @@ if (use_blink) { # dependency. On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -154,6 +151,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn assert_no_deps += disallowed_extension_deps_ } diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +index 04e522c74af48..d3d6c8ec9d436 100644 --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml @@ -36,6 +36,11 @@ found in the LICENSE file. @@ -169,9 +167,18 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil android:key="captions" android:title="@string/accessibility_captions_title"/> diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +index 77f841d447d7e..2cc361badfd1d 100644 --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -30,6 +30,8 @@ public class AccessibilitySettings +@@ -14,6 +14,7 @@ import androidx.preference.PreferenceFragmentCompat; + import org.chromium.base.ContextUtils; + import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate; + import org.chromium.components.browser_ui.accessibility.FontSizePrefs.FontSizePrefsObserver; ++import org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference; + import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; + import org.chromium.components.browser_ui.settings.CustomDividerFragment; + import org.chromium.components.browser_ui.settings.SettingsUtils; +@@ -30,6 +31,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat public static final String PREF_READER_FOR_ACCESSIBILITY = "reader_for_accessibility"; public static final String PREF_CAPTIONS = "captions"; @@ -180,7 +187,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private TextScalePreference mTextScalePref; private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -105,6 +107,12 @@ public class AccessibilitySettings +@@ -109,6 +112,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat getPreferenceScreen().removePreference(readerForAccessibilityPref); } @@ -190,10 +197,10 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c + forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled()); + forceTabletUiPref.setOnPreferenceChangeListener(this); + - ChromeBaseCheckBoxPreference accessibilityTabSwitcherPref = - (ChromeBaseCheckBoxPreference) findPreference( + ChromeSwitchPreference accessibilityTabSwitcherPref = + (ChromeSwitchPreference) findPreference( AccessibilityConstants.ACCESSIBILITY_TAB_SWITCHER); -@@ -153,6 +161,8 @@ public class AccessibilitySettings +@@ -165,6 +174,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat mFontSizePrefs.setUserFontScaleFactor((Float) newValue); } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); @@ -203,6 +210,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c if (mReaderForAccessibilityDelegate != null) { mReaderForAccessibilityDelegate.setEnabled((Boolean) newValue); diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +index f1a4f4a02c056..41a0726e9bad8 100644 --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java @@ -44,6 +44,8 @@ public interface AccessibilitySettingsDelegate { @@ -215,10 +223,11 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c * Allows the embedder to add more preferences to the preference screen. * diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn +index b47847845ca31..c548631abe029 100644 --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn -@@ -374,6 +374,8 @@ android_library("ui_no_recycler_view_java") { - deps = [ +@@ -408,6 +408,8 @@ android_library("ui_no_recycler_view_java") { + ":ui_android_features_java", ":ui_java_resources", ":ui_utils_java", + # dependency for ui_no_recycler_view_java @@ -227,6 +236,7 @@ diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn "//base:jni_java", "//build/android:build_java", diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +index b7efa9f648f31..3df825d11052e 100644 --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java @@ -12,6 +12,8 @@ import androidx.annotation.VisibleForTesting; @@ -248,5 +258,6 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; } --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/bromite/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 29952c8d..6f2ff3c6 100644 --- a/bromite/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/bromite/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -1,6 +1,7 @@ +From db8db6f8a32d3ead4fbe09d36ea4df09fe3c049a Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 7 Sep 2019 15:07:42 +0200 -Subject: Add option to not persist tabs across sessions +Subject: [PATCH 065/192] Add option to not persist tabs across sessions License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -11,9 +12,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml +index 31168cba63391..4c71a1e2ba2ab 100644 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -45,6 +45,11 @@ found in the LICENSE file. +@@ -55,6 +55,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -26,17 +28,18 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" android:key="do_not_track" diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +index 7009d56e8a8f7..b78446b29cd69 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -40,6 +40,7 @@ import androidx.lifecycle.LifecycleRegistry; - import org.chromium.base.BuildInfo; +@@ -38,6 +38,7 @@ import org.chromium.base.BuildInfo; + import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CommandLine; +import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1322,8 +1323,10 @@ public class ChromeTabbedActivity extends ChromeActivity<resetlink>reset sync

<resetlink>reset sync

IMAGE @@ -118,5 +123,6 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro LINK --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-option-to-use-home-page-as-NTP.patch b/bromite/build/patches/Add-option-to-use-home-page-as-NTP.patch index 76c8e8b4..aa7ee458 100644 --- a/bromite/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/bromite/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -1,6 +1,7 @@ +From a6912b49dcec0b9461012a4d307a7f8e141e8142 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 20 Nov 2021 15:36:54 +0000 -Subject: Add option to use home page as NTP +Subject: [PATCH 118/192] Add option to use home page as NTP And allow use about:blank as default homepage @@ -20,6 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 11 files changed, 52 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml +index 3796a71e33826..ad7282896808e 100644 --- a/chrome/android/java/res/xml/homepage_preferences.xml +++ b/chrome/android/java/res/xml/homepage_preferences.xml @@ -14,6 +14,11 @@ found in the LICENSE file. @@ -35,9 +37,10 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro android:key="homepage_radio_group" android:selectable="false" diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +index 289c06aec36c2..1761bc3c7ff5e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -223,6 +223,22 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat +@@ -227,6 +227,22 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat notifyHomepageUpdated(); } @@ -61,6 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa * @return User specified homepage custom URI string. */ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +index aeb3547efb095..a23f78d6cda22 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java @@ -22,6 +22,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; @@ -97,6 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java +index 40f30858f0180..2849b22a08148 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java @@ -103,7 +103,6 @@ public class LaunchMetrics { @@ -108,17 +113,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchM LaunchMetricsJni.get().recordHomePageLaunchMetrics( showHomeButton, homepageIsNtp, homepageUrl); 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 +index 4300ad0894ab0..acf440dfd0a36 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.ServiceTabLauncher; - import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingDelegateFactory; - import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; +@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; import org.chromium.chrome.browser.compositor.CompositorViewHolder; + import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.incognito.IncognitoUtils; +import org.chromium.chrome.browser.homepage.HomepageManager; import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; import org.chromium.chrome.browser.ntp.NewTabPageUtils; - import org.chromium.chrome.browser.tab.RedirectHandlerTabHelper; -@@ -297,6 +298,12 @@ public class ChromeTabCreator extends TabCreator { + import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; +@@ -472,6 +473,12 @@ public class ChromeTabCreator extends TabCreator { * @return the created tab. */ public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) { @@ -132,9 +138,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome loadUrlParams.setIntentReceivedTimestamp(intentTimestamp); return createNewTab(loadUrlParams, type, null, intent); diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +index 1054c3130d4d8..c789a4c8ee317 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -441,6 +441,7 @@ public final class ChromePreferenceKeys { +@@ -397,6 +397,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL = "Chrome.Homepage.PartnerCustomizedDefaultGurl"; @@ -143,20 +150,22 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro * Key used to save homepage location set by enterprise policy */ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +index 8eecb99b97f6f..3663a9ee67edf 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -72,6 +72,7 @@ public class LegacyChromePreferenceKeys { +@@ -70,6 +70,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, + ChromePreferenceKeys.HOMEPAGE_NTP_IS_HOMEPAGE, ChromePreferenceKeys.INCOGNITO_SHORTCUT_ADDED, ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION, - ChromePreferenceKeys.LEGACY_FIRST_RUN_AND_BACKUP_SIGNIN_COMPLETE, + ChromePreferenceKeys.LOCALE_MANAGER_AUTO_SWITCH, diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd +index d980282f0870e..3aa85fe2c1325 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1254,6 +1254,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1487,6 +1487,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -167,6 +176,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Last 24 hours diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc +index a38ee4a2658c1..af11151ec6910 100644 --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc @@ -65,6 +65,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { @@ -179,9 +189,10 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0); bool reset_check_default = false; diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc +index a039d8f2d750b..d0cea466d7d1f 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc -@@ -60,6 +60,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode"; +@@ -82,6 +82,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode"; // A boolean specifying whether the New Tab page is the home page or not. const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage"; @@ -193,15 +204,17 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc const char kHomePage[] = "homepage"; diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h +index 9a2d5d20824ef..86640ba3cc01f 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -388,6 +388,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[]; +@@ -372,6 +372,7 @@ extern const char kRestrictedManagedGuestSessionExtensionCleanupExemptList[]; extern const char kUsedPolicyCertificates[]; #endif // BUILDFLAG(IS_CHROMEOS) extern const char kShowHomeButton[]; +extern const char kNewTabPageIsHomePage[]; extern const char kSpeechRecognitionFilterProfanities[]; - extern const char kAllowDeletingBrowserHistory[]; - extern const char kForceGoogleSafeSearch[]; --- -2.25.1 + extern const char kAllowedDomainsForApps[]; + #if BUILDFLAG(IS_CHROMEOS_LACROS) +-- +2.34.1 + diff --git a/bromite/build/patches/Add-site-engagement-flag.patch b/bromite/build/patches/Add-site-engagement-flag.patch index 704cf6bb..30d6506c 100644 --- a/bromite/build/patches/Add-site-engagement-flag.patch +++ b/bromite/build/patches/Add-site-engagement-flag.patch @@ -1,8 +1,9 @@ +From c798612175e2ac82e318225ecc7b61d64edf47f2 Mon Sep 17 00:00:00 2001 From: uazo Date: Mon, 2 May 2022 11:48:03 +0000 -Subject: Add site engagement flag +Subject: [PATCH 170/192] Add site engagement flag -Enabled by default. +Disabled by default. Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html @@ -19,9 +20,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html create mode 100644 components/site_engagement/core/features.h diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 5e2a1e49ae57f..5ac70d2698356 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -142,6 +142,7 @@ +@@ -146,6 +146,7 @@ #include "components/segmentation_platform/public/features.h" #include "components/send_tab_to_self/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" @@ -29,22 +31,23 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/shared_highlighting/core/common/shared_highlighting_features.h" #include "components/signin/core/browser/dice_account_reconcilor_delegate.h" #include "components/signin/public/base/signin_buildflags.h" -@@ -9174,6 +9175,11 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kSearchReadyOmniboxDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kSearchReadyOmniboxFeature)}, +@@ -9445,6 +9446,11 @@ const FeatureEntry kFeatureEntries[] = { + kLargeFaviconFromGoogleVariations, + "LargeFaviconFromGoogle")}, + {"site-engagement", + flag_descriptions::kSiteEngagementName, + flag_descriptions::kSiteEngagementDescription, kOsAll, + FEATURE_VALUE_TYPE(site_engagement::features::kSiteEngagement)}, + - #if BUILDFLAG(IS_CHROMEOS_ASH) - {"use-multiple-overlays", flag_descriptions::kUseMultipleOverlaysName, - flag_descriptions::kUseMultipleOverlaysDescription, kOsCrOS, + #if BUILDFLAG(IS_ANDROID) + {"force-off-text-autosizing", + flag_descriptions::kForceOffTextAutosizingName, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index b846a68f779ca..67f722d51a426 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3461,6 +3461,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] = +@@ -3699,6 +3699,11 @@ const char kSkipServiceWorkerFetchHandlerDescription[] = "Skips starting the service worker and run the fetch handler if the fetch " "handler is recognized as skippable."; @@ -57,9 +60,10 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti const char kWebSQLAccessDescription[] = "The WebSQL API is enabled by default, but can be disabled here."; diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index aee54e948fb96..8b08d96cda94d 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1975,6 +1975,9 @@ extern const char kReduceUserAgentPlatformOsCpuDescription[]; +@@ -2146,6 +2146,9 @@ extern const char kReduceAcceptLanguageDescription[]; extern const char kSkipServiceWorkerFetchHandlerName[]; extern const char kSkipServiceWorkerFetchHandlerDescription[]; @@ -70,16 +74,17 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kWebSQLAccessDescription[]; diff --git a/components/site_engagement/content/site_engagement_score.cc b/components/site_engagement/content/site_engagement_score.cc +index b5f8f39dca4b8..18b3ba8919005 100644 --- a/components/site_engagement/content/site_engagement_score.cc +++ b/components/site_engagement/content/site_engagement_score.cc -@@ -17,6 +17,7 @@ +@@ -18,6 +18,7 @@ #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_utils.h" +#include "components/site_engagement/core/features.h" #include "components/site_engagement/content/engagement_type.h" #include "components/site_engagement/content/site_engagement_metrics.h" - #include "components/variations/variations_associated_data.h" + #include "third_party/blink/public/mojom/site_engagement/site_engagement.mojom.h" @@ -275,6 +276,10 @@ void SiteEngagementScore::Commit() { if (!UpdateScoreDict(*score_dict_)) return; @@ -92,6 +97,7 @@ diff --git a/components/site_engagement/content/site_engagement_score.cc b/compo origin_, GURL(), ContentSettingsType::SITE_ENGAGEMENT, base::Value(std::move(*score_dict_))); diff --git a/components/site_engagement/core/BUILD.gn b/components/site_engagement/core/BUILD.gn +index 4975a87fc555c..307b7a27c29a0 100644 --- a/components/site_engagement/core/BUILD.gn +++ b/components/site_engagement/core/BUILD.gn @@ -4,8 +4,14 @@ @@ -111,6 +117,7 @@ diff --git a/components/site_engagement/core/BUILD.gn b/components/site_engageme } diff --git a/components/site_engagement/core/features.cc b/components/site_engagement/core/features.cc new file mode 100644 +index 0000000000000..a8c8bed9df7b6 --- /dev/null +++ b/components/site_engagement/core/features.cc @@ -0,0 +1,29 @@ @@ -139,12 +146,13 @@ new file mode 100644 +namespace features { + +const base::Feature kSiteEngagement{"SiteEngagement", -+ base::FEATURE_ENABLED_BY_DEFAULT}; ++ base::FEATURE_DISABLED_BY_DEFAULT}; + +} // namespace features +} // namespace site_engagement diff --git a/components/site_engagement/core/features.h b/components/site_engagement/core/features.h new file mode 100644 +index 0000000000000..2eaf1540dca6b --- /dev/null +++ b/components/site_engagement/core/features.h @@ -0,0 +1,34 @@ @@ -182,5 +190,6 @@ new file mode 100644 +} // namespace site_engagement + +#endif // SITE_ENGAGEMENT_CORE_FEATURES_H_ --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/bromite/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index f984e8ab..c90ab559 100644 --- a/bromite/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/bromite/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -1,43 +1,44 @@ +From 60a4caa91802fe7cbe87624c93de128441a554f4 Mon Sep 17 00:00:00 2001 From: uazo Date: Mon, 17 May 2021 12:30:12 +0000 -Subject: Add support for ISupportHelpAndFeedback +Subject: [PATCH 015/192] Add support for ISupportHelpAndFeedback Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../chrome/browser/settings/SettingsActivity.java | 11 ++++++++--- - .../components/browser_ui/settings/SettingsUtils.java | 4 ++++ - 2 files changed, 12 insertions(+), 3 deletions(-) + .../chrome/browser/settings/SettingsActivity.java | 9 +++++++-- + .../components/browser_ui/settings/SettingsUtils.java | 4 ++++ + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +index 70385ff30431c..6da3d952ac100 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -66,6 +66,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto - import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; +@@ -81,6 +81,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher; + import org.chromium.components.browser_ui.settings.PaddedDividerItemDecoration; import org.chromium.components.browser_ui.settings.SettingsLauncher; +import org.chromium.components.browser_ui.settings.SettingsUtils; + import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment; - import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; - import org.chromium.components.browser_ui.widget.displaystyle.ViewResizer; -@@ -329,9 +330,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; +@@ -396,8 +397,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finish(); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { -- HelpAndFeedbackLauncherImpl.getInstance().show(this, -- getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(), -- null); +- HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show( +- this, getString(R.string.help_context_settings), null); + if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) { + ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed(); + } else { -+ HelpAndFeedbackLauncherImpl.getInstance().show(this, -+ getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(), -+ null); ++ HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show( ++ this, getString(R.string.help_context_settings), null); + } return true; } return super.onOptionsItemSelected(item); diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +index 2c2340191f930..65975f026fa67 100644 --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java @@ -97,4 +97,8 @@ public class SettingsUtils { @@ -49,5 +50,6 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon + void onHelpAndFeebackPressed(); + } } --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-support-for-writing-URIs.patch b/bromite/build/patches/Add-support-for-writing-URIs.patch index a09f9464..d5df6fb3 100644 --- a/bromite/build/patches/Add-support-for-writing-URIs.patch +++ b/bromite/build/patches/Add-support-for-writing-URIs.patch @@ -1,6 +1,7 @@ +From ebd4e8a33463ee160ef37a3aae1748dd86752f95 Mon Sep 17 00:00:00 2001 From: uazo Date: Tue, 12 Apr 2022 15:58:01 +0000 -Subject: Add support for writing URIs +Subject: [PATCH 060/192] Add support for writing URIs Allows native-side URI file writing @@ -13,6 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 3 files changed, 47 insertions(+) diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc +index 2ab50fcc48832..300e79d86d9a8 100644 --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc @@ -30,6 +30,16 @@ File OpenContentUriForRead(const FilePath& content_uri) { @@ -33,6 +35,7 @@ diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils. JNIEnv* env = base::android::AttachCurrentThread(); ScopedJavaLocalRef j_uri = diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h +index 33665f6cf70aa..ce9a6d75ab424 100644 --- a/base/android/content_uri_utils.h +++ b/base/android/content_uri_utils.h @@ -18,6 +18,10 @@ namespace base { @@ -47,6 +50,7 @@ diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h BASE_EXPORT bool ContentUriExists(const FilePath& content_uri); diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java +index 27501317a8206..cfef594067d00 100644 --- a/base/android/java/src/org/chromium/base/ContentUriUtils.java +++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java @@ -23,6 +23,9 @@ import org.chromium.base.annotations.CalledByNative; @@ -96,5 +100,6 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base /** * Check whether a content URI exists. * --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-webGL-site-setting.patch b/bromite/build/patches/Add-webGL-site-setting.patch index e817de2f..7bdeac48 100644 --- a/bromite/build/patches/Add-webGL-site-setting.patch +++ b/bromite/build/patches/Add-webGL-site-setting.patch @@ -1,6 +1,7 @@ +From 94d605389f12260a10d1d270491907c8788b3bd2 Mon Sep 17 00:00:00 2001 From: uazo Date: Tue, 3 May 2022 14:44:11 +0000 -Subject: Add webGL site setting +Subject: [PATCH 019/192] Add webGL site setting Do not provide any device information when serving context creation errors. @@ -9,61 +10,26 @@ Requires patch: Content-settings-infrastructure.patch Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser_ui/site_settings/android/BUILD.gn | 3 + - .../BromiteCustomContentSettingImpl.java | 1 + - .../BromiteWebGLContentSetting.java | 85 +++++++++++++++++++ - .../site_settings/SiteSettingsCategory.java | 5 +- - .../strings/android/browser_ui_strings.grd | 1 + - .../browser_ui/strings/android/webgl.grdp | 18 ++++ - components/components_strings.grd | 1 + - .../core/browser/content_settings_registry.cc | 14 +++ - .../core/browser/content_settings_utils.cc | 2 + - .../core/common/content_settings.cc | 4 +- - .../core/common/content_settings.h | 1 + - .../core/common/content_settings.mojom | 1 + - .../common/content_settings_mojom_traits.cc | 3 +- - .../common/content_settings_mojom_traits.h | 5 ++ - .../core/common/content_settings_types.h | 2 + - .../renderer/content_settings_agent_impl.cc | 9 ++ - .../renderer/content_settings_agent_impl.h | 1 + - .../platform/web_content_settings_client.h | 2 + - .../execution_context/execution_context.cc | 23 +++++ - .../execution_context/execution_context.h | 5 ++ + .../impl/BromiteWebGLContentSetting.java | 92 +++++++++++++++++++ + .../bromite_content_settings/webgl.grdp | 27 ++++++ + .../bromite_content_settings/webgl.inc | 22 +++++ + .../common/bromite_content_settings/WEBGL.inc | 1 + + .../execution_context/execution_context.cc | 7 ++ + .../execution_context/execution_context.h | 2 + .../webgl/webgl_rendering_context_base.cc | 32 +++---- .../webgl/webgl_rendering_context_base.h | 2 + - 22 files changed, 197 insertions(+), 23 deletions(-) - create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java - create mode 100644 components/browser_ui/strings/android/webgl.grdp + 8 files changed, 166 insertions(+), 19 deletions(-) + create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java + create mode 100644 components/browser_ui/strings/bromite_content_settings/webgl.grdp + create mode 100644 components/content_settings/core/browser/bromite_content_settings/webgl.inc + create mode 100644 components/content_settings/core/common/bromite_content_settings/WEBGL.inc -diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn ---- a/components/browser_ui/site_settings/android/BUILD.gn -+++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -92,6 +92,9 @@ android_library("java") { - "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java", - "java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java", - ] -+ sources += [ -+ "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java", -+ ] - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] - resources_package = "org.chromium.components.browser_ui.site_settings" - deps = [ -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java -@@ -43,6 +43,7 @@ public abstract class BromiteCustomContentSettingImpl { - - static { - mItemList = new ArrayList(); -+ mItemList.add(new BromiteWebGLContentSetting()); - } - - public static SiteSettingsCategory createFromType( -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java new file mode 100644 +index 0000000000000..f7bb6433b714d --- /dev/null -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java -@@ -0,0 +1,85 @@ ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java +@@ -0,0 +1,92 @@ +/* + This file is part of Bromite. + @@ -81,8 +47,11 @@ new file mode 100644 + along with Bromite. If not, see . +*/ + -+package org.chromium.components.browser_ui.site_settings; ++package org.chromium.components.browser_ui.site_settings.impl; + ++import org.chromium.components.browser_ui.site_settings.R; ++ ++import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.content_settings.ContentSettingValues; @@ -98,7 +67,6 @@ new file mode 100644 +public class BromiteWebGLContentSetting extends BromiteCustomContentSetting { + public BromiteWebGLContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.WEBGL, -+ /*siteSettingsCategory*/ SiteSettingsCategory.Type.WEBGL, + /*defaultEnabledValue*/ ContentSettingValues.ALLOW, + /*defaultDisabledValue*/ ContentSettingValues.BLOCK, + /*allowException*/ true, @@ -130,6 +98,11 @@ new file mode 100644 + } + + @Override ++ public int getCategoryDescription() { ++ return R.string.settings_site_settings_webgl_description; ++ } ++ ++ @Override + public boolean requiresTriStateContentSetting() { + return false; + } @@ -149,294 +122,110 @@ new file mode 100644 + return value != ContentSettingValues.BLOCK; + } +} -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -44,7 +44,7 @@ public class SiteSettingsCategory { - Type.PROTECTED_MEDIA, Type.SENSORS, Type.SOUND, Type.USB, Type.VIRTUAL_REALITY, - Type.USE_STORAGE, Type.AUTO_DARK_WEB_CONTENT, Type.REQUEST_DESKTOP_SITE, - Type.FEDERATED_IDENTITY_API, Type.TIMEZONE_OVERRIDE, Type.AUTOPLAY, Type.JAVASCRIPT_JIT, -- Type.IMAGES}) -+ Type.IMAGES, Type.WEBGL}) - @Retention(RetentionPolicy.SOURCE) - public @interface Type { - // All updates here must also be reflected in {@link #preferenceKey(int) -@@ -79,10 +79,11 @@ public class SiteSettingsCategory { - int AUTOPLAY = 27; - int JAVASCRIPT_JIT = 28; - int IMAGES = 29; -+ int WEBGL = 30; - /** - * Number of handled categories used for calculating array sizes. - */ -- int NUM_ENTRIES = 30; -+ int NUM_ENTRIES = 31; - } - - private final BrowserContextHandle mBrowserContextHandle; -diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd ---- a/components/browser_ui/strings/android/browser_ui_strings.grd -+++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -174,6 +174,7 @@ - - - -+ - - - Got it -diff --git a/components/browser_ui/strings/android/webgl.grdp b/components/browser_ui/strings/android/webgl.grdp +diff --git a/components/browser_ui/strings/bromite_content_settings/webgl.grdp b/components/browser_ui/strings/bromite_content_settings/webgl.grdp new file mode 100644 +index 0000000000000..53635991ed294 --- /dev/null -+++ b/components/browser_ui/strings/android/webgl.grdp -@@ -0,0 +1,18 @@ ++++ b/components/browser_ui/strings/bromite_content_settings/webgl.grdp +@@ -0,0 +1,27 @@ + + -+ ++ + Webgl + -+ ++ ++ Enable Webgl, a JavaScript API for rendering high-performance interactive 3D and 2D graphics ++ ++ + webgl + -+ ++ + Webgl + -+ ++ + Enabled + -+ ++ + Disabled + ++ ++ Allowed to use webgl ++ ++ ++ Not allowed to use webgl ++ + -diff --git a/components/components_strings.grd b/components/components_strings.grd ---- a/components/components_strings.grd -+++ b/components/components_strings.grd -@@ -338,6 +338,7 @@ - - - -+ - - - -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 -@@ -669,6 +669,20 @@ void ContentSettingsRegistry::Init() { - ContentSettingsInfo::INHERIT_IN_INCOGNITO, - ContentSettingsInfo::PERSISTENT, - ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); -+ +diff --git a/components/content_settings/core/browser/bromite_content_settings/webgl.inc b/components/content_settings/core/browser/bromite_content_settings/webgl.inc +new file mode 100644 +index 0000000000000..3ff01832baef4 +--- /dev/null ++++ b/components/content_settings/core/browser/bromite_content_settings/webgl.inc +@@ -0,0 +1,22 @@ + Register(ContentSettingsType::WEBGL, "webgl", CONTENT_SETTING_BLOCK, + WebsiteSettingsInfo::SYNCABLE, -+ AllowlistedSchemes(), -+ ValidSettings(CONTENT_SETTING_ALLOW, -+ CONTENT_SETTING_BLOCK), ++ /*allowlisted_schemes=*/{}, ++ /*valid_settings=*/{CONTENT_SETTING_ALLOW, ++ CONTENT_SETTING_BLOCK}, + WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, -+ WebsiteSettingsRegistry::PLATFORM_ANDROID, ++ WebsiteSettingsRegistry::ALL_PLATFORMS, + ContentSettingsInfo::INHERIT_IN_INCOGNITO, -+ ContentSettingsInfo::PERSISTENT, -+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS, -+ /*show_into_info_page*/ true, -+ /*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_WEBGL, -+ /*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_WEBGL_MID_SENTENCE); - } - - void ContentSettingsRegistry::Register( -diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc ---- a/components/content_settings/core/browser/content_settings_utils.cc -+++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -156,6 +156,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, - std::string timezone; - map->GetTimezoneOverrideValue(timezone); - rules->timezone_override_value = timezone; -+ map->GetSettingsForOneType(ContentSettingsType::WEBGL, -+ &(rules->webgl_rules)); - } - - bool IsMorePermissive(ContentSetting a, ContentSetting b) { -diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc ---- a/components/content_settings/core/common/content_settings.cc -+++ b/components/content_settings/core/common/content_settings.cc -@@ -206,7 +206,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( - content_type == ContentSettingsType::AUTOPLAY || - content_type == ContentSettingsType::MIXEDSCRIPT || - content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT || -- content_type == ContentSettingsType::TIMEZONE_OVERRIDE; -+ content_type == ContentSettingsType::TIMEZONE_OVERRIDE || -+ content_type == ContentSettingsType::WEBGL; - } - - void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( -@@ -218,6 +219,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( - FilterRulesForType(auto_dark_content_rules, outermost_main_frame_url); - FilterRulesForType(timezone_override_rules, outermost_main_frame_url); - FilterRulesForType(autoplay_rules, outermost_main_frame_url); -+ FilterRulesForType(webgl_rules, outermost_main_frame_url); - } - - RendererContentSettingRules::RendererContentSettingRules() = default; -diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h ---- a/components/content_settings/core/common/content_settings.h -+++ b/components/content_settings/core/common/content_settings.h -@@ -96,6 +96,7 @@ struct RendererContentSettingRules { - ContentSettingsForOneType auto_dark_content_rules; - ContentSettingsForOneType timezone_override_rules; - std::string timezone_override_value; -+ ContentSettingsForOneType webgl_rules; - }; - - namespace content_settings { -diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom ---- a/components/content_settings/core/common/content_settings.mojom -+++ b/components/content_settings/core/common/content_settings.mojom -@@ -81,4 +81,5 @@ struct RendererContentSettingRules { - array auto_dark_content_rules; - array timezone_override_rules; - string timezone_override_value; -+ array webgl_rules; - }; -diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc ---- a/components/content_settings/core/common/content_settings_mojom_traits.cc -+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -105,7 +105,8 @@ bool StructTraitsmixed_content_rules) && - data.ReadAutoDarkContentRules(&out->auto_dark_content_rules) && - data.ReadTimezoneOverrideRules(&out->timezone_override_rules) && -- data.ReadTimezoneOverrideValue(&out->timezone_override_value); -+ data.ReadTimezoneOverrideValue(&out->timezone_override_value) && -+ data.ReadWebglRules(&out->webgl_rules); - } - - } // namespace mojo -diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h ---- a/components/content_settings/core/common/content_settings_mojom_traits.h -+++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -165,6 +165,11 @@ struct StructTraits< - return r.timezone_override_value; - } - -+ static const std::vector& webgl_rules( -+ const RendererContentSettingRules& r) { -+ return r.webgl_rules; -+ } ++ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); + - static bool Read( - content_settings::mojom::RendererContentSettingRulesDataView data, - RendererContentSettingRules* out); -diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h ---- a/components/content_settings/core/common/content_settings_types.h -+++ b/components/content_settings/core/common/content_settings_types.h -@@ -277,6 +277,8 @@ enum class ContentSettingsType : int32_t { - // site instead of the mobile one. - REQUEST_DESKTOP_SITE, - ++ content_settings::WebsiteSettingsRegistry::GetInstance() ++ ->GetMutable(ContentSettingsType::WEBGL) ++ ->set_show_into_info_page() ++ .set_desktop_ui() ++ .set_is_renderer_content_setting() ++ .set_title_ui(IDS_SITE_SETTINGS_TYPE_WEBGL) ++ .set_description_ui(IDS_SETTINGS_SITE_SETTINGS_WEBGL_DESCRIPTION) ++ .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_WEBGL_ENABLED) ++ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_WEBGL_DISABLED) ++ .set_allowed_exceptions_ui(IDS_SETTINGS_SITE_SETTINGS_WEBGL_ALLOWED_EXCEPTIONS) ++ .set_blocked_exceptions_ui(IDS_SETTINGS_SITE_SETTINGS_WEBGL_BLOCKED_EXCEPTIONS) ++ .set_mid_sentence_ui(IDS_SITE_SETTINGS_TYPE_WEBGL); +diff --git a/components/content_settings/core/common/bromite_content_settings/WEBGL.inc b/components/content_settings/core/common/bromite_content_settings/WEBGL.inc +new file mode 100644 +index 0000000000000..30dc2ff2d125f +--- /dev/null ++++ b/components/content_settings/core/common/bromite_content_settings/WEBGL.inc +@@ -0,0 +1 @@ + WEBGL, -+ - // Setting to indicate whether browser should allow signing into a website via - // the browser FedCM API. - FEDERATED_IDENTITY_API, -diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc ---- a/components/content_settings/renderer/content_settings_agent_impl.cc -+++ b/components/content_settings/renderer/content_settings_agent_impl.cc -@@ -449,6 +449,15 @@ void ContentSettingsAgentImpl::ClearBlockedContentSettings() { - cached_script_permissions_.clear(); - } - -+bool ContentSettingsAgentImpl::AllowWebgl(bool enabled_per_settings) { -+ if (!content_setting_rules_) -+ return false; -+ blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); -+ return CONTENT_SETTING_ALLOW == GetContentSettingFromRules( -+ content_setting_rules_->webgl_rules, -+ url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL()); -+} -+ - bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const { - if (should_allowlist_) - return true; -diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h ---- a/components/content_settings/renderer/content_settings_agent_impl.h -+++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -99,6 +99,7 @@ class ContentSettingsAgentImpl - bool AllowAutoplay(bool default_value) override; - bool AllowPopupsAndRedirects(bool default_value) override; - bool ShouldAutoupgradeMixedContent() override; -+ bool AllowWebgl(bool enabled_per_settings) override; - - bool allow_running_insecure_content() const { - return allow_running_insecure_content_; -diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h ---- a/third_party/blink/public/platform/web_content_settings_client.h -+++ b/third_party/blink/public/platform/web_content_settings_client.h -@@ -99,6 +99,8 @@ class WebContentSettingsClient { - return default_value; - } - -+ virtual bool AllowWebgl(bool default_value) { return default_value; } -+ - // Reports that passive mixed content was found at the provided URL. - virtual void PassiveInsecureContentFound(const WebURL&) {} - diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc +index 06b1a5ad0fad4..a5de854f6c5ab 100644 --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -65,6 +65,29 @@ - - namespace blink { +@@ -84,6 +84,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor( + return settings; + } -+blink::WebContentSettingsClient* GetContentSettingsClientFor( -+ ExecutionContext* context) { -+ blink::WebContentSettingsClient* settings = nullptr; -+ if (!context) -+ return settings; -+ if (auto* window = blink::DynamicTo(context)) { -+ auto* frame = window->GetFrame(); -+ if (frame) -+ settings = frame->GetContentSettingsClient(); -+ } else if (context->IsWorkerGlobalScope()) { -+ settings = -+ blink::To(context)->ContentSettingsClient(); -+ } -+ return settings; -+} -+ +bool AllowWebgl(ExecutionContext* context) { + blink::WebContentSettingsClient* settings = GetContentSettingsClientFor(context); + if (settings) -+ return settings->AllowWebgl(false); ++ return settings->AllowContentSetting(ContentSettingsType::WEBGL, false); + return false; +} + - ExecutionContext::ExecutionContext(v8::Isolate* isolate, Agent* agent) - : isolate_(isolate), - security_context_(this), + ExecutionContext::ExecutionContext(v8::Isolate* isolate, + Agent* agent, + bool is_window) diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h +index 31a7d41d1c871..337f2dc94f0ce 100644 --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -96,6 +96,7 @@ class SecurityOrigin; - class ScriptState; - class ScriptWrappable; - class TrustedTypePolicyFactory; -+class WebContentSettingsClient; - - enum ReasonForCallingCanExecuteScripts { - kAboutToExecuteScript, -@@ -104,6 +105,10 @@ enum ReasonForCallingCanExecuteScripts { +@@ -115,6 +115,8 @@ enum ReasonForCallingCanExecuteScripts { enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; +CORE_EXPORT bool AllowWebgl(ExecutionContext* context); -+CORE_EXPORT WebContentSettingsClient* GetContentSettingsClientFor( -+ ExecutionContext* context); + // An environment in which script can execute. This class exposes the common // properties of script execution environments on the web (i.e, common between // script executing in a window and script executing in a worker), such as: diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +index ebe31c7960c7d..73f232662676e 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -246,6 +246,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -248,6 +248,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -450,7 +239,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -492,25 +499,6 @@ static String ExtractWebGLContextCreationError( +@@ -494,25 +501,6 @@ static String ExtractWebGLContextCreationError( const Platform::GraphicsInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); @@ -476,7 +265,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -578,6 +566,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -572,6 +560,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, Platform::ContextType context_type, Platform::GraphicsInfo* graphics_info) { @@ -490,9 +279,10 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba !host->IsWebGL1Enabled()) || (context_type == Platform::kWebGL2ContextType && diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +index 8197135c68051..fc80212074f1d 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h -@@ -1920,6 +1920,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1933,6 +1933,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, DOMArrayBufferView* pixels, int64_t offset); @@ -501,5 +291,6 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba // Record Canvas/OffscreenCanvas.RenderingContextDrawnTo at the first draw // call. void RecordUKMCanvasDrawnToAtFirstDrawCall(); --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Add-webRTC-site-settings.patch b/bromite/build/patches/Add-webRTC-site-settings.patch index 8c7b3246..ce863b2a 100644 --- a/bromite/build/patches/Add-webRTC-site-settings.patch +++ b/bromite/build/patches/Add-webRTC-site-settings.patch @@ -1,64 +1,32 @@ +From cc482d541a006478865fa285b6be24e1cbe9e14d Mon Sep 17 00:00:00 2001 From: uazo Date: Fri, 6 May 2022 14:27:17 +0000 -Subject: Add webRTC site settings +Subject: [PATCH 020/192] Add webRTC site settings Requires patch: Content-settings-infrastructure.patch Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser_ui/site_settings/android/BUILD.gn | 3 + - .../BromiteCustomContentSettingImpl.java | 1 + - .../BromiteWebRTCContentSetting.java | 86 +++++++++++++++++++ - .../site_settings/SiteSettingsCategory.java | 5 +- - .../strings/android/browser_ui_strings.grd | 1 + - .../browser_ui/strings/android/webrtc.grdp | 18 ++++ - components/components_strings.grd | 1 + - .../core/browser/content_settings_registry.cc | 14 +++ - .../core/browser/content_settings_utils.cc | 2 + - .../core/common/content_settings.cc | 4 +- - .../core/common/content_settings.h | 1 + - .../core/common/content_settings.mojom | 1 + - .../common/content_settings_mojom_traits.cc | 3 +- - .../common/content_settings_mojom_traits.h | 5 ++ - .../core/common/content_settings_types.h | 2 + - .../renderer/content_settings_agent_impl.cc | 9 ++ - .../renderer/content_settings_agent_impl.h | 1 + - .../platform/web_content_settings_client.h | 2 + + .../impl/BromiteWebRTCContentSetting.java | 93 +++++++++++++++++++ + .../bromite_content_settings/webrtc.grdp | 27 ++++++ + .../bromite_content_settings/webrtc.inc | 22 +++++ + .../bromite_content_settings/WEBRTC.inc | 1 + .../peer_connection_dependency_factory.cc | 6 ++ - 19 files changed, 161 insertions(+), 4 deletions(-) - create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java - create mode 100644 components/browser_ui/strings/android/webrtc.grdp + .../peerconnection/rtc_rtp_receiver.cc | 10 ++ + .../modules/peerconnection/rtc_rtp_sender.cc | 10 ++ + 7 files changed, 169 insertions(+) + create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java + create mode 100644 components/browser_ui/strings/bromite_content_settings/webrtc.grdp + create mode 100644 components/content_settings/core/browser/bromite_content_settings/webrtc.inc + create mode 100644 components/content_settings/core/common/bromite_content_settings/WEBRTC.inc -diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn ---- a/components/browser_ui/site_settings/android/BUILD.gn -+++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -95,6 +95,9 @@ android_library("java") { - sources += [ - "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebGLContentSetting.java", - ] -+ sources += [ -+ "java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java", -+ ] - annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] - resources_package = "org.chromium.components.browser_ui.site_settings" - deps = [ -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java -@@ -44,6 +44,7 @@ public abstract class BromiteCustomContentSettingImpl { - static { - mItemList = new ArrayList(); - mItemList.add(new BromiteWebGLContentSetting()); -+ mItemList.add(new BromiteWebRTCContentSetting()); - } - - public static SiteSettingsCategory createFromType( -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java +diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java new file mode 100644 +index 0000000000000..90db1c61a577a --- /dev/null -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java -@@ -0,0 +1,86 @@ ++++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java +@@ -0,0 +1,93 @@ +/* + This file is part of Bromite. + @@ -76,8 +44,11 @@ new file mode 100644 + along with Bromite. If not, see . +*/ + -+package org.chromium.components.browser_ui.site_settings; ++package org.chromium.components.browser_ui.site_settings.impl; ++ ++import org.chromium.components.browser_ui.site_settings.R; + ++import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.content_settings.ContentSettingValues; @@ -93,7 +64,6 @@ new file mode 100644 +public class BromiteWebRTCContentSetting extends BromiteCustomContentSetting { + public BromiteWebRTCContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.WEBRTC, -+ /*siteSettingsCategory*/ SiteSettingsCategory.Type.WEBRTC, + /*defaultEnabledValue*/ ContentSettingValues.ALLOW, + /*defaultDisabledValue*/ ContentSettingValues.BLOCK, + /*allowException*/ true, @@ -126,6 +96,11 @@ new file mode 100644 + } + + @Override ++ public int getCategoryDescription() { ++ return R.string.settings_site_settings_webrtc_description; ++ } ++ ++ @Override + public boolean requiresTriStateContentSetting() { + return false; + } @@ -145,239 +120,79 @@ new file mode 100644 + return value != ContentSettingValues.BLOCK; + } +} -diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java ---- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -44,7 +44,7 @@ public class SiteSettingsCategory { - Type.PROTECTED_MEDIA, Type.SENSORS, Type.SOUND, Type.USB, Type.VIRTUAL_REALITY, - Type.USE_STORAGE, Type.AUTO_DARK_WEB_CONTENT, Type.REQUEST_DESKTOP_SITE, - Type.FEDERATED_IDENTITY_API, Type.TIMEZONE_OVERRIDE, Type.AUTOPLAY, Type.JAVASCRIPT_JIT, -- Type.IMAGES, Type.WEBGL}) -+ Type.IMAGES, Type.WEBGL, Type.WEBRTC}) - @Retention(RetentionPolicy.SOURCE) - public @interface Type { - // All updates here must also be reflected in {@link #preferenceKey(int) -@@ -80,10 +80,11 @@ public class SiteSettingsCategory { - int JAVASCRIPT_JIT = 28; - int IMAGES = 29; - int WEBGL = 30; -+ int WEBRTC = 31; - /** - * Number of handled categories used for calculating array sizes. - */ -- int NUM_ENTRIES = 31; -+ int NUM_ENTRIES = 32; - } - - private final BrowserContextHandle mBrowserContextHandle; -diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd ---- a/components/browser_ui/strings/android/browser_ui_strings.grd -+++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -175,6 +175,7 @@ - - - -+ - - - Got it -diff --git a/components/browser_ui/strings/android/webrtc.grdp b/components/browser_ui/strings/android/webrtc.grdp +diff --git a/components/browser_ui/strings/bromite_content_settings/webrtc.grdp b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp new file mode 100644 +index 0000000000000..cf4fd02e990e1 --- /dev/null -+++ b/components/browser_ui/strings/android/webrtc.grdp -@@ -0,0 +1,18 @@ ++++ b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp +@@ -0,0 +1,27 @@ + + -+ ++ + WebRTC + -+ ++ + webRTC + -+ ++ ++ Enable WebRTC, a JavaScript API for real-time communication and direct peer-to-peer communication ++ ++ + WebRTC + -+ ++ + Enabled + -+ ++ + Disabled + ++ ++ Allowed to use WebRTC ++ ++ ++ Not allowed to use WebRTC ++ + -diff --git a/components/components_strings.grd b/components/components_strings.grd ---- a/components/components_strings.grd -+++ b/components/components_strings.grd -@@ -339,6 +339,7 @@ - - - -+ - - - -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 -@@ -683,6 +683,20 @@ void ContentSettingsRegistry::Init() { - /*show_into_info_page*/ true, - /*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_WEBGL, - /*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_WEBGL_MID_SENTENCE); -+ +diff --git a/components/content_settings/core/browser/bromite_content_settings/webrtc.inc b/components/content_settings/core/browser/bromite_content_settings/webrtc.inc +new file mode 100644 +index 0000000000000..69b2de0ff52fa +--- /dev/null ++++ b/components/content_settings/core/browser/bromite_content_settings/webrtc.inc +@@ -0,0 +1,22 @@ + Register(ContentSettingsType::WEBRTC, "webrtc", CONTENT_SETTING_BLOCK, + WebsiteSettingsInfo::SYNCABLE, -+ AllowlistedSchemes(), -+ ValidSettings(CONTENT_SETTING_ALLOW, -+ CONTENT_SETTING_BLOCK), ++ /*allowlisted_schemes=*/{}, ++ /*valid_settings=*/{CONTENT_SETTING_ALLOW, ++ CONTENT_SETTING_BLOCK}, + WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, -+ WebsiteSettingsRegistry::PLATFORM_ANDROID, ++ WebsiteSettingsRegistry::ALL_PLATFORMS, + ContentSettingsInfo::INHERIT_IN_INCOGNITO, -+ ContentSettingsInfo::PERSISTENT, -+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS, -+ /*show_into_info_page*/ true, -+ /*permission_type_ui*/ IDS_SITE_SETTINGS_TYPE_WEBRTC, -+ /*permission_type_ui_mid_sentence*/ IDS_SITE_SETTINGS_TYPE_WEBRTC_MID_SENTENCE); - } - - void ContentSettingsRegistry::Register( -diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc ---- a/components/content_settings/core/browser/content_settings_utils.cc -+++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -158,6 +158,8 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, - rules->timezone_override_value = timezone; - map->GetSettingsForOneType(ContentSettingsType::WEBGL, - &(rules->webgl_rules)); -+ map->GetSettingsForOneType(ContentSettingsType::WEBRTC, -+ &(rules->webrtc_rules)); - } - - bool IsMorePermissive(ContentSetting a, ContentSetting b) { -diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc ---- a/components/content_settings/core/common/content_settings.cc -+++ b/components/content_settings/core/common/content_settings.cc -@@ -207,7 +207,8 @@ bool RendererContentSettingRules::IsRendererContentSetting( - content_type == ContentSettingsType::MIXEDSCRIPT || - content_type == ContentSettingsType::AUTO_DARK_WEB_CONTENT || - content_type == ContentSettingsType::TIMEZONE_OVERRIDE || -- content_type == ContentSettingsType::WEBGL; -+ content_type == ContentSettingsType::WEBGL || -+ content_type == ContentSettingsType::WEBRTC; - } - - void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( -@@ -220,6 +221,7 @@ void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL( - FilterRulesForType(timezone_override_rules, outermost_main_frame_url); - FilterRulesForType(autoplay_rules, outermost_main_frame_url); - FilterRulesForType(webgl_rules, outermost_main_frame_url); -+ FilterRulesForType(webrtc_rules, outermost_main_frame_url); - } - - RendererContentSettingRules::RendererContentSettingRules() = default; -diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h ---- a/components/content_settings/core/common/content_settings.h -+++ b/components/content_settings/core/common/content_settings.h -@@ -97,6 +97,7 @@ struct RendererContentSettingRules { - ContentSettingsForOneType timezone_override_rules; - std::string timezone_override_value; - ContentSettingsForOneType webgl_rules; -+ ContentSettingsForOneType webrtc_rules; - }; - - namespace content_settings { -diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom ---- a/components/content_settings/core/common/content_settings.mojom -+++ b/components/content_settings/core/common/content_settings.mojom -@@ -82,4 +82,5 @@ struct RendererContentSettingRules { - array timezone_override_rules; - string timezone_override_value; - array webgl_rules; -+ array webrtc_rules; - }; -diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc ---- a/components/content_settings/core/common/content_settings_mojom_traits.cc -+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -106,7 +106,8 @@ bool StructTraitsauto_dark_content_rules) && - data.ReadTimezoneOverrideRules(&out->timezone_override_rules) && - data.ReadTimezoneOverrideValue(&out->timezone_override_value) && -- data.ReadWebglRules(&out->webgl_rules); -+ data.ReadWebglRules(&out->webgl_rules) && -+ data.ReadWebrtcRules(&out->webrtc_rules); - } - - } // namespace mojo -diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h ---- a/components/content_settings/core/common/content_settings_mojom_traits.h -+++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -170,6 +170,11 @@ struct StructTraits< - return r.webgl_rules; - } - -+ static const std::vector& webrtc_rules( -+ const RendererContentSettingRules& r) { -+ return r.webrtc_rules; -+ } ++ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); + - static bool Read( - content_settings::mojom::RendererContentSettingRulesDataView data, - RendererContentSettingRules* out); -diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h ---- a/components/content_settings/core/common/content_settings_types.h -+++ b/components/content_settings/core/common/content_settings_types.h -@@ -279,6 +279,8 @@ enum class ContentSettingsType : int32_t { - - WEBGL, - ++ content_settings::WebsiteSettingsRegistry::GetInstance() ++ ->GetMutable(ContentSettingsType::WEBRTC) ++ ->set_show_into_info_page() ++ .set_desktop_ui() ++ .set_is_renderer_content_setting() ++ .set_title_ui(IDS_SITE_SETTINGS_TYPE_WEBRTC) ++ .set_description_ui(IDS_SETTINGS_SITE_SETTINGS_WEBRTC_DESCRIPTION) ++ .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_WEBRTC_ENABLED) ++ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_WEBRTC_DISABLED) ++ .set_allowed_exceptions_ui(IDS_SETTINGS_SITE_SETTINGS_WEBRTC_ALLOWED_EXCEPTIONS) ++ .set_blocked_exceptions_ui(IDS_SETTINGS_SITE_SETTINGS_WEBRTC_BLOCKED_EXCEPTIONS) ++ .set_mid_sentence_ui(IDS_SITE_SETTINGS_TYPE_WEBRTC_MID_SENTENCE); +diff --git a/components/content_settings/core/common/bromite_content_settings/WEBRTC.inc b/components/content_settings/core/common/bromite_content_settings/WEBRTC.inc +new file mode 100644 +index 0000000000000..9af8b04d7949e +--- /dev/null ++++ b/components/content_settings/core/common/bromite_content_settings/WEBRTC.inc +@@ -0,0 +1 @@ + WEBRTC, -+ - // Setting to indicate whether browser should allow signing into a website via - // the browser FedCM API. - FEDERATED_IDENTITY_API, -diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc ---- a/components/content_settings/renderer/content_settings_agent_impl.cc -+++ b/components/content_settings/renderer/content_settings_agent_impl.cc -@@ -458,6 +458,15 @@ bool ContentSettingsAgentImpl::AllowWebgl(bool enabled_per_settings) { - url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL()); - } - -+bool ContentSettingsAgentImpl::AllowWebRTC(bool enabled_per_settings) { -+ if (!content_setting_rules_) -+ return false; -+ blink::WebLocalFrame* frame = render_frame()->GetWebFrame(); -+ return CONTENT_SETTING_ALLOW == GetContentSettingFromRules( -+ content_setting_rules_->webrtc_rules, -+ url::Origin(frame->GetDocument().GetSecurityOrigin()).GetURL()); -+} -+ - bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const { - if (should_allowlist_) - return true; -diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h ---- a/components/content_settings/renderer/content_settings_agent_impl.h -+++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -100,6 +100,7 @@ class ContentSettingsAgentImpl - bool AllowPopupsAndRedirects(bool default_value) override; - bool ShouldAutoupgradeMixedContent() override; - bool AllowWebgl(bool enabled_per_settings) override; -+ bool AllowWebRTC(bool enabled_per_settings) override; - - bool allow_running_insecure_content() const { - return allow_running_insecure_content_; -diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h ---- a/third_party/blink/public/platform/web_content_settings_client.h -+++ b/third_party/blink/public/platform/web_content_settings_client.h -@@ -101,6 +101,8 @@ class WebContentSettingsClient { - - virtual bool AllowWebgl(bool default_value) { return default_value; } - -+ virtual bool AllowWebRTC(bool default_value) { return default_value; } -+ - // Reports that passive mixed content was found at the provided URL. - virtual void PassiveInsecureContentFound(const WebURL&) {} - diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +index 3ed83696b33f3..4912585888b84 100644 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -33,6 +33,7 @@ +@@ -35,6 +35,7 @@ #include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" @@ -385,17 +200,74 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -765,6 +766,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -739,6 +740,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // origin. WebRTCIPHandlingPolicy policy = GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); + blink::WebContentSettingsClient* settings = web_frame->GetContentSettingsClient(); -+ if (settings && settings->AllowWebRTC(false)) { ++ if (settings && settings->AllowContentSetting(ContentSettingsType::WEBRTC, false)) { + policy = kDefault; + } + switch (policy) { // TODO(guoweis): specify the flag of disabling local candidate // collection when webrtc is updated. --- -2.25.1 +diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +index 3a45927ca7f29..aaeda19f06def 100644 +--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc ++++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +@@ -11,6 +11,8 @@ + #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" + #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" + #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" ++#include "third_party/blink/public/platform/web_content_settings_client.h" ++#include "third_party/blink/public/web/web_local_frame.h" + #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" + #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" + #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" +@@ -251,6 +253,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, + if (kind != "audio" && kind != "video") + return nullptr; + ++ LocalDOMWindow* window = To(ExecutionContext::From(state)); ++ auto* web_frame = ++ static_cast(WebFrame::FromCoreFrame(window->GetFrame())); ++ blink::WebContentSettingsClient* settings = web_frame->GetContentSettingsClient(); ++ if (settings && !settings->AllowContentSetting(ContentSettingsType::WEBRTC, false)) { ++ return nullptr; ++ } ++ + RTCRtpCapabilities* capabilities = RTCRtpCapabilities::Create(); + capabilities->setCodecs(HeapVector>()); + capabilities->setHeaderExtensions( +diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +index 78ad8ca1ec44b..2fd33ca315a1c 100644 +--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc ++++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +@@ -16,6 +16,8 @@ + #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" + #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" + #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" ++#include "third_party/blink/public/platform/web_content_settings_client.h" ++#include "third_party/blink/public/web/web_local_frame.h" + #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" + #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" + #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" +@@ -946,6 +948,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, + if (kind != "audio" && kind != "video") + return nullptr; + ++ LocalDOMWindow* window = To(ExecutionContext::From(state)); ++ auto* web_frame = ++ static_cast(WebFrame::FromCoreFrame(window->GetFrame())); ++ blink::WebContentSettingsClient* settings = web_frame->GetContentSettingsClient(); ++ if (settings && !settings->AllowContentSetting(ContentSettingsType::WEBRTC, false)) { ++ return nullptr; ++ } ++ + RTCRtpCapabilities* capabilities = RTCRtpCapabilities::Create(); + capabilities->setCodecs(HeapVector>()); + capabilities->setHeaderExtensions( +-- +2.34.1 + diff --git a/bromite/build/patches/Allow-building-without-enable_reporting.patch b/bromite/build/patches/Allow-building-without-enable_reporting.patch index 140c170a..cf243e99 100644 --- a/bromite/build/patches/Allow-building-without-enable_reporting.patch +++ b/bromite/build/patches/Allow-building-without-enable_reporting.patch @@ -1,9 +1,11 @@ +From bd1df129056610fc8fa0116fe4fb8ca4f77b114f Mon Sep 17 00:00:00 2001 From: Zoraver Kang Date: Fri, 22 May 2020 22:43:27 -0400 -Subject: Allow building without enable_reporting +Subject: [PATCH 140/192] Allow building without enable_reporting License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- + chrome/browser/net/chrome_report_sender.cc | 1 + .../browser/devtools/protocol/network_handler.cc | 2 ++ .../cross_origin_embedder_policy_reporter.cc | 7 +++++-- .../cross_origin_opener_policy_reporter.cc | 16 +++++++--------- @@ -11,29 +13,46 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer_host/render_frame_host_impl.cc | 6 ------ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + + net/base/features.cc | 2 +- net/reporting/reporting_service.cc | 6 ++++++ services/network/network_context.h | 4 ++-- + services/network/public/cpp/features.cc | 6 +++--- services/network/public/mojom/BUILD.gn | 1 - .../network/public/mojom/network_context.mojom | 2 ++ + .../core/frame/csp/content_security_policy.cc | 3 +++ .../blink/renderer/core/frame/local_frame.cc | 3 +++ .../blink/renderer/core/frame/local_frame.h | 6 +++--- .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- - 15 files changed, 50 insertions(+), 25 deletions(-) + .../renderer/core/frame/reporting_observer.cc | 3 +-- + 20 files changed, 59 insertions(+), 31 deletions(-) +diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc +index 44c6864687a21..d914ae08612ec 100644 +--- a/chrome/browser/net/chrome_report_sender.cc ++++ b/chrome/browser/net/chrome_report_sender.cc +@@ -85,6 +85,7 @@ void SendReport( + const std::string& report, + base::OnceClosure success_callback, + ErrorCallback error_callback) { ++ if ((true)) return; + auto resource_request = std::make_unique(); + resource_request->url = report_uri; + resource_request->method = "POST"; diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc +index 042e2a91c5be2..30f6389787c10 100644 --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1291,6 +1291,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1306,6 +1306,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } +#if BUILDFLAG(ENABLE_REPORTING) std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; - base::queue queue; -@@ -1308,6 +1309,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { - } + frame_host->ForEachRenderFrameHostWithAction( +@@ -1319,6 +1320,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { + }); return urls; } +#endif // BUILDFLAG(ENABLE_REPORTING) @@ -41,6 +60,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow } // namespace diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/content/browser/network/cross_origin_embedder_policy_reporter.cc +index c6e0784009602..37e66a4576f9d 100644 --- a/content/browser/network/cross_origin_embedder_policy_reporter.cc +++ b/content/browser/network/cross_origin_embedder_policy_reporter.cc @@ -4,6 +4,7 @@ @@ -79,6 +99,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/ } // namespace content diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/content/browser/network/cross_origin_opener_policy_reporter.cc +index bf2df309fa7c2..46467cfb34885 100644 --- a/content/browser/network/cross_origin_opener_policy_reporter.cc +++ b/content/browser/network/cross_origin_opener_policy_reporter.cc @@ -18,25 +18,17 @@ @@ -156,6 +177,7 @@ diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/co } // namespace content diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browser/network/reporting_service_proxy.cc +index 44a10ccda2cf6..cdabde61cb8ea 100644 --- a/content/browser/network/reporting_service_proxy.cc +++ b/content/browser/network/reporting_service_proxy.cc @@ -11,6 +11,7 @@ @@ -182,9 +204,10 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse const int render_process_id_; diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc +index 23f8f5f1042cb..1686dd8c9dbdb 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -12373,12 +12373,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -13027,12 +13027,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( base::Value::Dict body; if (!reason.empty()) body.Set("reason", reason); @@ -198,28 +221,30 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b void RenderFrameHostImpl::SendCommitNavigation( diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc +index 2da894ca9ccfa..b624edd47d71a 100644 --- a/content/browser/web_package/signed_exchange_reporter.cc +++ b/content/browser/web_package/signed_exchange_reporter.cc -@@ -127,6 +127,7 @@ bool ShouldDowngradeReport(const char* result_string, - void ReportResult(int frame_tree_node_id, - network::mojom::SignedExchangeReportPtr report, - const net::NetworkAnonymizationKey& network_isolation_key) { +@@ -128,6 +128,7 @@ void ReportResult( + int frame_tree_node_id, + network::mojom::SignedExchangeReportPtr report, + const net::NetworkAnonymizationKey& network_anonymization_key) { +#if BUILDFLAG(ENABLE_REPORTING) FrameTreeNode* frame_tree_node = FrameTreeNode::GloballyFindByID(frame_tree_node_id); if (!frame_tree_node) -@@ -141,6 +142,7 @@ void ReportResult(int frame_tree_node_id, +@@ -142,6 +143,7 @@ void ReportResult( DCHECK(partition); partition->GetNetworkContext()->QueueSignedExchangeReport( - std::move(report), network_isolation_key); + std::move(report), network_anonymization_key); +#endif } } // namespace diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc b/content/public/common/content_switch_dependent_feature_overrides.cc +index 9e902dc0bcd92..a38eac855e09a 100644 --- a/content/public/common/content_switch_dependent_feature_overrides.cc +++ b/content/public/common/content_switch_dependent_feature_overrides.cc -@@ -8,6 +8,7 @@ +@@ -7,6 +7,7 @@ #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "net/base/features.h" @@ -227,7 +252,21 @@ diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/network_switches.h" #include "third_party/blink/public/common/features.h" +diff --git a/net/base/features.cc b/net/base/features.cc +index 9626014381d5c..68c4f33cc65a6 100644 +--- a/net/base/features.cc ++++ b/net/base/features.cc +@@ -222,7 +222,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( + #if BUILDFLAG(ENABLE_REPORTING) + BASE_FEATURE(kDocumentReporting, + "DocumentReporting", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(ENABLE_REPORTING) + + #if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc +index 75ec4d24f3b6d..da1ce56867538 100644 --- a/net/reporting/reporting_service.cc +++ b/net/reporting/reporting_service.cc @@ -211,6 +211,12 @@ class ReportingServiceImpl : public ReportingService { @@ -244,9 +283,10 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic context_->cache()->AddReport( reporting_source, network_anonymization_key, sanitized_url, user_agent, diff --git a/services/network/network_context.h b/services/network/network_context.h +index 6fe92667a7641..36490da7bdfde 100644 --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -461,10 +461,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -473,10 +473,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const absl::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, const absl::optional& user_agent, @@ -259,10 +299,29 @@ diff --git a/services/network/network_context.h b/services/network/network_conte void AddDomainReliabilityContextForTesting( const url::Origin& origin, const GURL& upload_url, +diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc +index d4e06defce609..04c71eae29989 100644 +--- a/services/network/public/cpp/features.cc ++++ b/services/network/public/cpp/features.cc +@@ -14,10 +14,10 @@ + namespace network::features { + + BASE_FEATURE(kNetworkErrorLogging, +- "NetworkErrorLogging", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "NetworkErrorLogging", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in bromite + +-BASE_FEATURE(kReporting, "Reporting", base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kReporting, "Reporting", base::FEATURE_DISABLED_BY_DEFAULT); // disabled by default + + // Based on the field trial parameters, this feature will override the value of + // the maximum number of delayable requests allowed in flight. The number of diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn +index c3e0684ba9950..d923c274f87df 100644 --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1120,7 +1120,6 @@ mojom("mojom") { +@@ -1382,7 +1382,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -271,9 +330,10 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo } diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom +index bff25abd86e9d..59dd9b51b8191 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1064,6 +1064,7 @@ interface NetworkContext { +@@ -1118,6 +1118,7 @@ interface NetworkContext { // provided |network_isolation_key|. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -281,7 +341,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1077,6 +1078,7 @@ interface NetworkContext { +@@ -1131,6 +1132,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // |network_isolation_key|. @@ -289,19 +349,48 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueSignedExchangeReport(SignedExchangeReport report, NetworkAnonymizationKey network_anonymization_key); +diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc +index a588d41ff283a..cae080360baf9 100644 +--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc ++++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc +@@ -28,6 +28,7 @@ + #include + #include + ++#include "net/net_buildflags.h" + #include "base/containers/contains.h" + #include "base/debug/dump_without_crashing.h" + #include "services/network/public/cpp/web_sandbox_flags.h" +@@ -1156,6 +1157,7 @@ void ContentSecurityPolicy::ReportViolation( + return; + } + ++#if BUILDFLAG(ENABLE_REPORTING) + PostViolationReport(violation_data, context_frame, report_endpoints, + use_reporting_api); + +@@ -1163,6 +1165,7 @@ void ContentSecurityPolicy::ReportViolation( + // `context_frame` (i.e. we're not processing 'frame-ancestors'). + if (delegate_ && !context_frame) + delegate_->DispatchViolationEvent(*violation_data, element); ++#endif + + AuditsIssue audits_issue = AuditsIssue::CreateContentSecurityPolicyIssue( + *violation_data, header_type == ContentSecurityPolicyType::kReport, diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc +index 0d679c340fff5..13f0204273d80 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -40,6 +40,7 @@ +@@ -42,6 +42,7 @@ #include "build/build_config.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/system/message_pipe.h" +#include "net/net_buildflags.h" - #include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h" #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" -@@ -2307,9 +2308,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const { - return base::UnguessableToken::Null(); + #include "services/network/public/mojom/source_location.mojom-blink.h" +@@ -2510,9 +2511,11 @@ void LocalFrame::MainFrameInteractive() { + } } +#if BUILDFLAG(ENABLE_REPORTING) @@ -313,6 +402,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ // static void LocalFrame::NotifyUserActivation( diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h +index bc24bbc46d829..471352500c236 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h @@ -35,9 +35,9 @@ @@ -324,12 +414,12 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "net/net_buildflags.h" #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h" + #include "services/metrics/public/cpp/ukm_source_id.h" #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" - #include "third_party/blink/public/common/frame/frame_ad_evidence.h" -@@ -593,9 +593,9 @@ class CORE_EXPORT LocalFrame final - } +@@ -630,9 +630,9 @@ class CORE_EXPORT LocalFrame final + void FinishedScrollSequence(); - SmoothScrollSequencer& GetSmoothScrollSequencer(); + SmoothScrollSequencer* GetSmoothScrollSequencer() const; - +#if BUILDFLAG(ENABLE_REPORTING) mojom::blink::ReportingServiceProxy* GetReportingService(); @@ -339,6 +429,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // associated interface with the legacy Chrome IPC channel. mojom::blink::LocalFrameHost& GetLocalFrameHostRemote() const; diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc +index dc32fd90d945a..c06fe44b1b7f1 100644 --- a/third_party/blink/renderer/core/frame/reporting_context.cc +++ b/third_party/blink/renderer/core/frame/reporting_context.cc @@ -4,6 +4,7 @@ @@ -402,6 +493,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ } // namespace blink diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_party/blink/renderer/core/frame/reporting_context.h +index 68e9fc988a2d6..ec033d78813bf 100644 --- a/third_party/blink/renderer/core/frame/reporting_context.h +++ b/third_party/blink/renderer/core/frame/reporting_context.h @@ -5,6 +5,7 @@ @@ -436,5 +528,20 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p HeapMojoReceiver receiver_; }; --- -2.25.1 +diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc +index 89c04a3d0f726..b34c1f85d7694 100644 +--- a/third_party/blink/renderer/core/frame/reporting_observer.cc ++++ b/third_party/blink/renderer/core/frame/reporting_observer.cc +@@ -62,8 +62,7 @@ void ReportingObserver::QueueReport(Report* report) { + } + + bool ReportingObserver::ObservedType(const String& type) { +- return !options_->hasTypesNonNull() || options_->typesNonNull().empty() || +- options_->typesNonNull().Find(type) != kNotFound; ++ return false; + } + + bool ReportingObserver::Buffered() { +-- +2.34.1 + diff --git a/bromite/build/patches/Allow-building-without-supervised-users.patch b/bromite/build/patches/Allow-building-without-supervised-users.patch index f0af2d7d..f4a3fc30 100644 --- a/bromite/build/patches/Allow-building-without-supervised-users.patch +++ b/bromite/build/patches/Allow-building-without-supervised-users.patch @@ -1,53 +1,114 @@ +From 508e5358729c6c6c0b0c869a8b502d6be8a09f44 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Mon, 21 Feb 2022 01:24:11 +0100 -Subject: Allow building without supervised users +Subject: [PATCH 153/192] Allow building without supervised users License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser/supervised_user/ChildAccountService.java | 11 ----------- - .../child_accounts/child_account_service_android.cc | 9 --------- - 2 files changed, 20 deletions(-) + chrome/android/BUILD.gn | 1 - + chrome/android/chrome_java_sources.gni | 1 - + chrome/browser/BUILD.gn | 6 ------ + chrome/browser/about_flags.cc | 4 ++++ + components/supervised_user/buildflags.gni | 6 +----- + 5 files changed, 5 insertions(+), 13 deletions(-) -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java b/chrome/android/java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java -@@ -31,21 +31,10 @@ public class ChildAccountService { - ThreadUtils.assertOnUiThread(); - final Activity activity = windowAndroid.getActivity().get(); - if (activity == null) { -- PostTask.postTask(UiThreadTaskTraits.DEFAULT, () -> { -- ChildAccountServiceJni.get().onReauthenticationFailed(nativeOnFailureCallback); -- }); - return; - } - Account account = AccountUtils.createAccountFromName(accountName); - AccountManagerFacadeProvider.getInstance().updateCredentials(account, activity, success -> { -- if (!success) { -- ChildAccountServiceJni.get().onReauthenticationFailed(nativeOnFailureCallback); -- } - }); - } -- -- @NativeMethods -- interface Natives { -- void onReauthenticationFailed(long onFailureCallbackPtr); -- } +diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn +index e36c8b5fd8a5d..26397ae336444 100644 +--- a/chrome/android/BUILD.gn ++++ b/chrome/android/BUILD.gn +@@ -3420,7 +3420,6 @@ generate_jni("chrome_jni_headers") { + "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java", + "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java", + "java/src/org/chromium/chrome/browser/supervised_user/ChildAccountFeedbackReporter.java", +- "java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java", + "java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java", + "java/src/org/chromium/chrome/browser/tab/TabBrowserControlsConstraintsHelper.java", + "java/src/org/chromium/chrome/browser/tab/TabFavicon.java", +diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni +index 4c88ae68cd6fd..600aa5a6f8bbe 100644 +--- a/chrome/android/chrome_java_sources.gni ++++ b/chrome/android/chrome_java_sources.gni +@@ -1051,7 +1051,6 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java", + "java/src/org/chromium/chrome/browser/supervised_user/ChildAccountFeedbackReporter.java", +- "java/src/org/chromium/chrome/browser/supervised_user/ChildAccountService.java", + "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java", + "java/src/org/chromium/chrome/browser/survey/SurveyController.java", + "java/src/org/chromium/chrome/browser/sync/SyncErrorNotifier.java", +diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn +index f83e383af24a4..32e6a5967e942 100644 +--- a/chrome/browser/BUILD.gn ++++ b/chrome/browser/BUILD.gn +@@ -3003,8 +3003,6 @@ static_library("browser") { + "feed/android/refresh_task_scheduler_impl.cc", + "feed/android/refresh_task_scheduler_impl.h", + "feed/android/web_feed_bridge.cc", +- "feedback/android/family_info_feedback_source.cc", +- "feedback/android/family_info_feedback_source.h", + "file_select_helper_contacts_android.cc", + "file_select_helper_contacts_android.h", + "first_run/android/first_run_prefs.cc", +@@ -3219,10 +3217,6 @@ static_library("browser") { + "ssl/chrome_security_state_model_delegate.h", + "ssl/known_interception_disclosure_infobar.cc", + "ssl/known_interception_disclosure_infobar.h", +- "supervised_user/android/favicon_fetcher.cc", +- "supervised_user/android/favicon_fetcher.h", +- "supervised_user/android/supervised_user_web_content_handler_impl.cc", +- "supervised_user/android/supervised_user_web_content_handler_impl.h", + "sync/glue/synced_tab_delegate_android.cc", + "sync/glue/synced_tab_delegate_android.h", + "sync/glue/synced_window_delegate_android.cc", +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index 2cc9a44c74eac..4cc426d650764 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -1495,6 +1495,7 @@ const FeatureEntry::FeatureVariation kJourneysLabelsVariations[] = { + }; + + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(ENABLE_SUPERVISED_USERS) + const FeatureEntry::FeatureParam kLocalWebApprovalsPreferLocalParams[] = { + {"preferred_button", "local"}}; + const FeatureEntry::FeatureParam kLocalWebApprovalsPreferRemoteParams[] = { +@@ -1506,6 +1507,7 @@ const FeatureEntry::FeatureVariation kLocalWebApprovalsVariations[] = { + std::size(kLocalWebApprovalsPreferRemoteParams), nullptr}, + }; + #endif ++#endif + + const FeatureEntry::FeatureParam kChromeRefresh2023Level1[] = {{"level", "1"}}; + +@@ -7697,11 +7699,13 @@ const FeatureEntry kFeatureEntries[] = { + #endif // BUILDFLAG(IS_CHROMEOS_ASH) + + #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_ANDROID) ++#if BUILDFLAG(ENABLE_SUPERVISED_USERS) + {"enable-local-web-approvals", flag_descriptions::kLocalWebApprovalsName, + flag_descriptions::kLocalWebApprovalsDescription, kOsCrOS | kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE(supervised_user::kLocalWebApprovals, + kLocalWebApprovalsVariations, + "LocalWebApprovals")}, ++#endif + #endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_ANDROID) + + #if BUILDFLAG(ENABLE_SUPERVISED_USERS) +diff --git a/components/supervised_user/buildflags.gni b/components/supervised_user/buildflags.gni +index 7c1d7a2c912e3..77e35248336ec 100644 +--- a/components/supervised_user/buildflags.gni ++++ b/components/supervised_user/buildflags.gni +@@ -4,9 +4,5 @@ + + declare_args() { + # Enables supervision for Family Link users. +- enable_supervised_users = +- # Platforms which fully support supervision features: +- is_android || is_chromeos || +- # Platforms for which support is currently in development: +- is_ios || is_linux || is_mac || is_win ++ enable_supervised_users = false } -diff --git a/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc b/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc ---- a/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc -+++ b/chrome/browser/supervised_user/child_accounts/child_account_service_android.cc -@@ -39,12 +39,3 @@ void ReauthenticateChildAccount( - env, window_android->GetJavaObject(), ConvertUTF8ToJavaString(env, email), - reinterpret_cast(callback_copy.release())); - } -- --void JNI_ChildAccountService_OnReauthenticationFailed(JNIEnv* env, -- jlong jcallbackPtr) { -- // Cast the pointer value back to a Callback and take ownership of it. -- std::unique_ptr> callback( -- reinterpret_cast*>(jcallbackPtr)); -- -- callback->Run(); --} --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Allow-playing-audio-in-background.patch b/bromite/build/patches/Allow-playing-audio-in-background.patch index 3d211b33..7bb4b483 100644 --- a/bromite/build/patches/Allow-playing-audio-in-background.patch +++ b/bromite/build/patches/Allow-playing-audio-in-background.patch @@ -1,17 +1,19 @@ +From 35eb584bd64c6c16502438b53e659854cc966103 Mon Sep 17 00:00:00 2001 From: AlexeyBarabash Date: Thu, 2 Nov 2017 18:21:16 +0200 -Subject: Allow playing audio in background +Subject: [PATCH 052/192] Allow playing audio in background License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../renderer/platform/media/web_media_player_impl.cc | 12 +++++++++++- - .../renderer/platform/media/web_media_player_impl.h | 3 +++ - 2 files changed, 14 insertions(+), 1 deletion(-) + .../renderer/platform/media/web_media_player_impl.cc | 11 ++++++++++- + .../renderer/platform/media/web_media_player_impl.h | 3 +++ + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc +index b64ab0cbbc0ef..b791c32af7d2a 100644 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1226,6 +1226,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1184,6 +1184,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -24,23 +26,23 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3627,7 +3633,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3503,7 +3509,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { + : HasAudio(); + // 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. -- if (!HasVideo()) -+ +- if (!HasVideo() && preserve_audio) + //pipeline_metadata_.has_video is true for MediaPlayerRenderer, + //see media/base/pipeline_metadata.h. This is a workaround to allow audio + //streams be played in background. -+ if (!HasVideoNonEmptySize()) ++ if (!HasVideoNonEmptySize() && preserve_audio) return false; - if (using_media_player_renderer_ && + // MediaPlayer always signals audio and video, so use an empty natural size to diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h +index 0d6c31cb68249..7b11cb471ad41 100644 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -195,6 +195,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -200,6 +200,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; @@ -50,5 +52,6 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b void EnabledAudioTracksChanged( const WebVector& enabledTrackIds) override; void SelectedVideoTrackChanged( --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/bromite/build/patches/Always-use-new-tab-page-for-default-home-page.patch index dd23ca8b..1923646c 100644 --- a/bromite/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/bromite/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -1,6 +1,7 @@ +From ef205cab21935a3083a02954a40e285fe7690845 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Wed, 27 Jun 2018 11:02:38 +0200 -Subject: Always use new tab page for default home page +Subject: [PATCH 025/192] Always use new tab page for default home page Ignore any partner-provided home page. @@ -10,9 +11,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 1 file changed, 4 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +index f0ac1e315ce8a..289c06aec36c2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -147,10 +147,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat +@@ -151,10 +151,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat * if the homepage button is force enabled via flag. */ public static String getDefaultHomepageUri() { @@ -23,5 +25,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa String homepagePartnerDefaultUri; String homepagePartnerDefaultGurlSerialized = SharedPreferencesManager.getInstance().readString( --- -2.25.1 +-- +2.34.1 + diff --git a/bromite/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/bromite/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index c7bdae5a..330900dc 100644 --- a/bromite/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/bromite/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -1,54 +1,150 @@ +From 7037029493665722ecc1bd11c6c9395331af24c4 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 25 Mar 2018 21:49:37 +0200 -Subject: AudioBuffer, AnalyserNode: fp mitigations +Subject: [PATCH 056/192] AudioBuffer, AnalyserNode: fp mitigations Truncate base latency precision to two digits License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++---- - .../blink/renderer/modules/webaudio/audio_buffer.idl | 6 ------ - .../blink/renderer/modules/webaudio/audio_context.cc | 4 +++- - 3 files changed, 7 insertions(+), 11 deletions(-) + chrome/browser/about_flags.cc | 4 ++++ + chrome/browser/flag_descriptions.cc | 5 +++++ + chrome/browser/flag_descriptions.h | 3 +++ + third_party/blink/common/features.cc | 4 ++++ + third_party/blink/public/common/features.h | 2 ++ + .../renderer/modules/webaudio/audio_buffer.cc | 14 ++++++++++++++ + .../blink/renderer/modules/webaudio/audio_buffer.h | 2 ++ + .../renderer/modules/webaudio/audio_context.cc | 5 ++++- + .../modules/webaudio/base_audio_context.cc | 12 ++++++++++++ + .../renderer/modules/webaudio/base_audio_context.h | 2 ++ + .../modules/webaudio/offline_audio_context.cc | 1 + + .../renderer/modules/webaudio/realtime_analyser.cc | 7 +++++++ + 12 files changed, 60 insertions(+), 1 deletion(-) -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 -+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.idl -@@ -40,10 +40,10 @@ - - // Copies the current frequency data into the passed array. - // If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped. -- [HighEntropy, Measure] void getFloatFrequencyData(Float32Array array); -- [HighEntropy, Measure] void getByteFrequencyData(Uint8Array array); -+ //[HighEntropy, Measure] void getFloatFrequencyData(Float32Array array); -+ //[HighEntropy, Measure] void getByteFrequencyData(Uint8Array array); - - // Real-time waveform data -- [HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array); -- [HighEntropy, Measure] void getByteTimeDomainData(Uint8Array array); -+ //[HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array); -+ //[HighEntropy, Measure] void getByteTimeDomainData(Uint8Array array); - }; -diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl ---- a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl -+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl -@@ -37,12 +37,6 @@ - - // Channel access - readonly attribute unsigned long numberOfChannels; -- [HighEntropy=Direct, Measure, RaisesException] Float32Array getChannelData( -- unsigned long channelIndex); -- [HighEntropy, Measure, RaisesException] void copyFromChannel( -- Float32Array destination, -- unsigned long channelNumber, -- optional unsigned long bufferOffset = 0); - [RaisesException] void copyToChannel( - Float32Array source, - unsigned long channelNumber, +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +index d14fa3430a685..133ef52e82e57 100644 +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -3850,6 +3850,10 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kKioskEnableAppServiceDescription, kOsCrOS, + FEATURE_VALUE_TYPE(features::kKioskEnableAppService)}, + #endif // BUILDFLAG(IS_CHROMEOS) ++ {"fingerprinting-audio-context-data-noise", ++ flag_descriptions::kAudioContextShuffleEnabledName, ++ flag_descriptions::kAudioContextShuffleEnabledDescription, kOsAll, ++ FEATURE_VALUE_TYPE(blink::features::kAudioContextShuffleEnabled)}, + #if !BUILDFLAG(IS_ANDROID) + {"enable-webrtc-remote-event-log", + flag_descriptions::kWebRtcRemoteEventLogName, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +index 0174cbb82392e..f7e52a6256d6e 100644 +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3568,6 +3568,11 @@ const char kWebrtcUseMinMaxVEADimensionsDescription[] = + "When enabled, WebRTC will only use the Video Encode Accelerator for " + "video resolutions inside those published as supported."; + ++const char kAudioContextShuffleEnabledName[] = ++ "Enable Audio Context fingerprint deception"; ++const char kAudioContextShuffleEnabledDescription[] = ++ "Scale the output values of rendered data with a randomly selected factor."; ++ + const char kWebUsbDeviceDetectionName[] = + "Automatic detection of WebUSB-compatible devices"; + const char kWebUsbDeviceDetectionDescription[] = +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +index c32c8724b90dc..f984806374b68 100644 +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -2046,6 +2046,9 @@ extern const char kWebRtcRemoteEventLogDescription[]; + extern const char kWebrtcUseMinMaxVEADimensionsName[]; + extern const char kWebrtcUseMinMaxVEADimensionsDescription[]; + ++extern const char kAudioContextShuffleEnabledName[]; ++extern const char kAudioContextShuffleEnabledDescription[]; ++ + extern const char kWebUsbDeviceDetectionName[]; + extern const char kWebUsbDeviceDetectionDescription[]; + +diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc +index 7209e4ebaad97..8d3a0cc7a08b2 100644 +--- a/third_party/blink/common/features.cc ++++ b/third_party/blink/common/features.cc +@@ -234,6 +234,10 @@ BASE_FEATURE(kBiddingAndScoringDebugReportingAPI, + "BiddingAndScoringDebugReportingAPI", + base::FEATURE_DISABLED_BY_DEFAULT); + ++BASE_FEATURE(kAudioContextShuffleEnabled, ++ "AudioContextShuffleEnabled", ++ base::FEATURE_ENABLED_BY_DEFAULT); ++ + // Blink garbage collection. + // Enables compaction of backing stores on Blink's heap. + BASE_FEATURE(kBlinkHeapCompaction, +diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h +index f9bb0a72907eb..0b65cc09007b4 100644 +--- a/third_party/blink/public/common/features.h ++++ b/third_party/blink/public/common/features.h +@@ -142,6 +142,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapConcurrentSweeping); + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapIncrementalMarking); + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapIncrementalMarkingStress); + ++BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAudioContextShuffleEnabled); ++ + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE( + kBlockingDownloadsInAdFrameWithoutUserActivation); + +diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +index 2e032806463bb..e75d55be56435 100644 +--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc ++++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +@@ -196,6 +196,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) + } + } + ++void AudioBuffer::ShuffleAudioData() { ++ for (unsigned i = 0; i < channels_.size(); ++i) { ++ if (NotShared array = getChannelData(i)) { ++ size_t len = array->length(); ++ if (len > 0) { ++ float* destination = array->Data(); ++ for (unsigned j = 0; j < len; ++j) { ++ destination[j] = BaseAudioContext::ShuffleAudioData(destination[j], j); ++ } ++ } ++ } ++ } ++} ++ + NotShared AudioBuffer::getChannelData( + unsigned channel_index, + ExceptionState& exception_state) { +diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h +index ce75d7ab3a290..b4c562a024749 100644 +--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h ++++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h +@@ -115,6 +115,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable { + + std::unique_ptr CreateSharedAudioBuffer(); + ++ void ShuffleAudioData(); ++ + private: + static DOMFloat32Array* CreateFloat32ArrayOrNull( + uint32_t length, diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc +index 1f058580ccbd8..d58bf82b0ee95 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -508,7 +508,9 @@ double AudioContext::baseLatency() const { +@@ -11,6 +11,7 @@ + #include "services/metrics/public/cpp/ukm_recorder.h" + #include "third_party/blink/public/common/browser_interface_broker_proxy.h" + #include "third_party/blink/public/common/mediastream/media_devices.h" ++#include "third_party/blink/public/common/features.h" + #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" + #include "third_party/blink/public/platform/web_audio_latency_hint.h" + #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +@@ -586,7 +587,9 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); @@ -59,5 +155,107 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir } double AudioContext::outputLatency() const { --- -2.25.1 +diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc +index ee8d2b7d7dc46..5f3e493709f07 100644 +--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc ++++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc +@@ -29,6 +29,7 @@ + + #include "base/metrics/histogram_functions.h" + #include "build/build_config.h" ++#include "third_party/blink/public/common/features.h" + #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" + #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" + #include "third_party/blink/public/platform/platform.h" +@@ -721,6 +722,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { + return To(GetExecutionContext()); + } + ++/*static*/ ++float BaseAudioContext::ShuffleAudioData(float data, unsigned index) { ++ if (base::FeatureList::IsEnabled(features::kAudioContextShuffleEnabled)) { ++ float rnd = 1.0f + ++ (base::RandDouble() / 10000.0) * ++ (base::RandInt(0,10) > 5 ? 1.f : -1.f); ++ return data * rnd; ++ } ++ return data; ++} ++ + void BaseAudioContext::NotifySourceNodeStartedProcessing(AudioNode* node) { + DCHECK(IsMainThread()); + GraphAutoLocker locker(this); +diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h +index e6dbfad24b619..fb09e9110e184 100644 +--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h ++++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h +@@ -338,6 +338,8 @@ class MODULES_EXPORT BaseAudioContext + // if the execution context does not exist. + bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&); + ++ static float ShuffleAudioData(float data, unsigned index); ++ + protected: + enum ContextType { kRealtimeContext, kOfflineContext }; + +diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +index f9d05fc50e89d..f7179f5c98dbd 100644 +--- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc ++++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +@@ -368,6 +368,7 @@ void OfflineAudioContext::FireCompletionEvent() { + if (!rendered_buffer) { + return; + } ++ rendered_buffer->ShuffleAudioData(); + + // Call the offline rendering completion event listener and resolve the + // promise too. +diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc +index 256ea358bc701..a0873c1aed599 100644 +--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc ++++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc +@@ -29,6 +29,7 @@ + #include + #include + ++#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h" + #include "third_party/blink/renderer/platform/audio/audio_bus.h" + #include "third_party/blink/renderer/platform/audio/audio_utilities.h" + #include "third_party/blink/renderer/platform/audio/vector_math.h" +@@ -154,6 +155,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( + input_buffer[(i + write_index - fft_size + kInputBufferSize) % + kInputBufferSize]; + ++ value = BaseAudioContext::ShuffleAudioData(value, i); + destination[i] = value; + } + } +@@ -181,6 +183,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { + input_buffer[(i + write_index - fft_size + kInputBufferSize) % + kInputBufferSize]; + ++ value = BaseAudioContext::ShuffleAudioData(value, i); ++ + // Scale from nominal -1 -> +1 to unsigned byte. + double scaled_value = 128 * (value + 1); + +@@ -300,6 +304,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { + double scaled_value = + UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor; + ++ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i); ++ + // Clip to valid range. + destination[i] = + static_cast(ClampTo(scaled_value, 0, UCHAR_MAX)); +@@ -319,6 +325,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { + float linear_value = source[i]; + double db_mag = audio_utilities::LinearToDecibels(linear_value); + destination[i] = static_cast(db_mag); ++ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i); + } + } + } +-- +2.34.1 + diff --git a/bromite/build/patches/Automated-domain-substitution.patch b/bromite/build/patches/Automated-domain-substitution.patch deleted file mode 100644 index 831d52c9..00000000 --- a/bromite/build/patches/Automated-domain-substitution.patch +++ /dev/null @@ -1,42721 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Fri, 21 Aug 2020 13:41:07 +0200 -Subject: Automated domain substitution - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../cts_config/webview_cts_gcs_path.json | 30 +- - android_webview/tools/record_netlog.py | 6 +- - .../tools/remove_preinstalled_webview.py | 2 +- - android_webview/tools/update_cts.py | 6 +- - ash/accelerators/accelerator_notifications.cc | 2 +- - ash/ash_strings.grd | 28 +- - ash/assistant/assistant_setup_controller.cc | 2 +- - ash/assistant/util/deep_link_util.cc | 16 +- - ash/components/phonehub/url_constants.cc | 2 +- - ash/constants/url_constants.cc | 6 +- - .../fake_device_metadata_http_fetcher.cc | 2 +- - .../fast_pair/device_metadata_fetcher.cc | 2 +- - .../fast_pair/footprints_fetcher_impl.cc | 4 +- - .../ui/fast_pair/fast_pair_presenter_impl.cc | 4 +- - .../device_sync/cryptauth_client_impl.cc | 8 +- - ash/services/ime/constants.cc | 2 +- - ash/system/eche/eche_tray.cc | 2 +- - ...pcie_peripheral_notification_controller.cc | 2 +- - .../usb_peripheral_notification_controller.cc | 4 +- - .../test_wallpaper_controller_client.cc | 2 +- - .../camera_app_ui/camera_app_untrusted_ui.cc | 2 +- - .../resources/js/lib/analytics.js | 14 +- - .../resources/strings/camera_strings.grd | 2 +- - .../quick_unlock/pin_keyboard_icons.html | 2 +- - ash/webui/diagnostics_ui/diagnostics_ui.cc | 2 +- - ash/webui/eche_app_ui/eche_alert_generator.cc | 2 +- - .../help_app_kids_magazine_untrusted_ui.cc | 2 +- - ash/webui/media_app_ui/media_app_guest_ui.cc | 2 +- - .../backend/help_content_provider.cc | 4 +- - .../resources/confirmation_page.js | 2 +- - .../os_feedback_ui/resources/fake_data.js | 16 +- - .../resources/feedback_constants.js | 6 +- - .../os_feedback_ui/resources/search_page.js | 2 +- - .../personalization_app_ui.cc | 2 +- - .../projector_app/projector_xhr_sender.cc | 10 +- - .../projector_app/projector_xhr_sender.h | 2 +- - .../projector_app/untrusted_projector_ui.cc | 12 +- - .../scanning/resources/scanning_app.html | 2 +- - ash/webui/scanning/resources/scanning_app.js | 2 +- - ...boarding_enter_rsu_wp_disable_code_page.js | 2 +- - base/android/resource_exclusions.gni | 2 +- - base/debug/debugger_posix.cc | 4 +- - base/debug/stack_trace_posix.cc | 2 +- - base/functional/callback.h | 8 +- - base/ios/device_util.mm | 2 +- - base/memory/raw_ptr.cc | 2 +- - base/memory/raw_ptr_asan_service.cc | 2 +- - build/android/gradle/generate_gradle.py | 2 +- - .../android/gyp/assert_static_initializers.py | 2 +- - build/android/gyp/lint.py | 2 +- - build/android/gyp/proguard.py | 4 +- - build/android/gyp/util/diff_utils.py | 4 +- - build/android/gyp/util/protoresources.py | 2 +- - .../android/incremental_install/installer.py | 2 +- - build/android/resource_sizes.py | 2 +- - build/android/test_wrapper/logdog_wrapper.py | 2 +- - build/apple/tweak_info_plist.py | 6 +- - build/config/android/rules.gni | 2 +- - build/config/chrome_build.gni | 2 +- - build/config/chromeos/args.gni | 4 +- - build/config/chromeos/rules.gni | 6 +- - build/config/compiler/compiler.gni | 4 +- - build/config/locales.gni | 2 +- - build/config/nacl/rules.gni | 2 +- - build/config/ozone.gni | 2 +- - build/config/sanitizers/sanitizers.gni | 2 +- - build/config/win/control_flow_guard.gni | 2 +- - build/fuchsia/binary_size_differ.py | 2 +- - build/fuchsia/binary_sizes.py | 2 +- - build/fuchsia/pkg_repo.py | 2 +- - build/linux/install-chromeos-fonts.py | 2 +- - .../linux/sysroot_scripts/install-sysroot.py | 2 +- - build/mac_toolchain.py | 2 +- - build/nocompile.gni | 2 +- - build/toolchain/cros_toolchain.gni | 2 +- - build/toolchain/gcc_toolchain.gni | 2 +- - .../lib/common/perf_tests_results_helper.py | 2 +- - build/util/lib/results/result_sink.py | 2 +- - build/whitespace_file.txt | 2 +- - buildtools/README.txt | 4 +- - buildtools/clang_format/README.txt | 6 +- - .../javatest_manifest_config_delta.json | 12 +- - .../manifest/maps_go_manifest_config.json | 10 +- - chrome/app/chromium_strings.grd | 24 +- - chrome/app/generated_resources.grd | 304 +-- - chrome/app/google_chrome_strings.grd | 24 +- - chrome/app/resources/locale_settings.grd | 10 +- - chrome/browser/about_flags.cc | 4 +- - .../browser/android/explore_sites/url_util.cc | 2 +- - .../android/webapk/webapk_installer.cc | 4 +- - .../app_service/webapk/webapk_install_task.cc | 2 +- - .../apps/digital_goods/digital_goods_ash.cc | 2 +- - .../digital_goods_factory_impl.cc | 2 +- - .../apps/platform_apps/install_chrome_app.cc | 2 +- - .../ash/android_sms/android_sms_urls.cc | 16 +- - chrome/browser/ash/app_mode/fake_cws.cc | 2 +- - .../auth/arc_background_auth_code_fetcher.cc | 2 +- - .../arc/auth/arc_robot_auth_code_fetcher.cc | 2 +- - .../arc/input_overlay/ui/input_menu_view.cc | 2 +- - .../browser/ash/assistant/assistant_util.cc | 4 +- - .../ash/attestation/attestation_ca_client.cc | 8 +- - chrome/browser/ash/borealis/borealis_util.cc | 2 +- - .../ash/child_accounts/child_user_service.cc | 2 +- - chrome/browser/ash/crostini/crostini_util.cc | 2 +- - .../customization/customization_document.cc | 2 +- - .../enhanced_network_tts_constants.cc | 2 +- - .../file_manager/file_manager_string_util.cc | 14 +- - .../ash/file_manager/open_with_browser.cc | 8 +- - chrome/browser/ash/hats/hats_dialog.cc | 2 +- - .../assistive_suggester_client_filter.cc | 24 +- - .../ash/input_method/ime_rules_config.h | 14 +- - .../easy_unlock/easy_unlock_key_names.cc | 2 +- - .../ash/login/gaia_reauth_token_fetcher.cc | 2 +- - .../ash/login/marketing_backend_connector.cc | 4 +- - .../connectivity/target_fido_controller.cc | 4 +- - .../login/saml/password_sync_token_fetcher.cc | 2 +- - .../recommend_apps_fetcher_impl.cc | 4 +- - .../default_user_image/default_user_images.cc | 2 +- - .../arc_dns_resolution_routine.cc | 6 +- - .../dns_latency_routine.cc | 2 +- - .../dns_resolution_routine.cc | 2 +- - .../network_diagnostics_util.cc | 14 +- - .../video_conferencing_routine.cc | 4 +- - .../ash/plugin_vm/plugin_vm_diagnostics.cc | 4 +- - .../plugin_vm/plugin_vm_license_checker.cc | 4 +- - .../browser/ash/plugin_vm/plugin_vm_util.cc | 6 +- - .../account_status_check_fetcher.cc | 6 +- - .../powerwash_requirements_checker.cc | 2 +- - .../device_command_start_crd_session_job.cc | 6 +- - .../policy/uploading/heartbeat_scheduler.cc | 4 +- - chrome/browser/ash/u2f_notification.cc | 2 +- - .../wallpaper_handlers/wallpaper_handlers.cc | 16 +- - .../ash/web_applications/terminal_source.cc | 4 +- - .../autofill/autofill_gstatic_reader.cc | 4 +- - .../apc_onboarding_coordinator.cc | 2 +- - .../browser_switcher_service.cc | 2 +- - chrome/browser/cart/cart_discount_fetcher.cc | 2 +- - .../cart/cart_discount_link_fetcher.cc | 2 +- - chrome/browser/cart/cart_service.cc | 24 +- - chrome/browser/cart/fetch_discount_worker.cc | 2 +- - .../cart_domain_cart_url_mapping.json | 2 +- - .../resources/cart_domain_name_mapping.json | 2 +- - .../browser/chrome_browser_application_mac.mm | 2 +- - .../browser/chrome_content_browser_client.cc | 4 +- - .../file_manager/private_api_misc.cc | 2 +- - .../dlp/dlp_clipboard_bubble_constants.h | 2 +- - chrome/browser/devtools/url_constants.cc | 4 +- - .../mixed_content_download_blocking.cc | 2 +- - .../commands/mac_key_rotation_command.cc | 2 +- - .../management_service/rotate_util.cc | 2 +- - .../file_system/signin_dialog_delegate.cc | 2 +- - .../connectors/service_provider_config.cc | 4 +- - .../extension_request_notification.cc | 4 +- - .../enterprise/signals/signals_utils.cc | 4 +- - ...e_js_error_report_processor_nonchromeos.cc | 4 +- - .../cryptotoken_private_api.cc | 8 +- - .../enterprise_platform_keys_api.cc | 2 +- - .../identity_launch_web_auth_flow_function.cc | 2 +- - .../chrome_management_api_delegate.cc | 2 +- - .../api/platform_keys/platform_keys_api.cc | 2 +- - .../chrome_extension_browser_constants.cc | 4 +- - .../extensions/external_pref_loader.cc | 2 +- - chrome/browser/extensions/install_signer.cc | 2 +- - .../chrome_extension_downloader_factory.cc | 2 +- - .../updater/chrome_update_client_config.cc | 2 +- - chrome/browser/flag_descriptions.cc | 18 +- - .../k_anonymity_service_urls.h | 4 +- - .../lacros/lacros_startup_infobar_delegate.cc | 4 +- - .../service_discovery_client_mac.mm | 4 +- - .../long_screenshots_tab_service.cc | 2 +- - .../access_code/access_code_cast_constants.cc | 4 +- - .../cast/cast_media_route_provider.cc | 6 +- - .../dial/dial_media_route_provider.cc | 18 +- - .../media/webrtc/webrtc_event_log_uploader.cc | 2 +- - .../media/webrtc/webrtc_log_uploader.cc | 2 +- - .../nacl_host/nacl_infobar_delegate.cc | 2 +- - .../client/nearby_share_client_impl.cc | 4 +- - .../instantmessaging/constants.h | 4 +- - .../network_traversal_ice_config_fetcher.cc | 12 +- - .../tachyon_ice_config_fetcher.cc | 12 +- - .../modules/drive/drive_service.cc | 8 +- - .../modules/photos/photos_service.cc | 8 +- - .../obsolete_system/obsolete_system_linux.cc | 2 +- - ...rvice_worker_page_load_metrics_observer.cc | 2 +- - .../quiet_permission_prompt_model_android.cc | 2 +- - .../extension_key_permissions_service.cc | 2 +- - .../extension_platform_keys_service.cc | 2 +- - .../browser/policy/safe_search_policy_test.h | 2 +- - .../chrome_prefetch_service_delegate.cc | 6 +- - .../prefetch_proxy/prefetch_proxy_params.cc | 6 +- - .../privacy_sandbox_service.cc | 24 +- - .../profiles/profile_avatar_downloader.cc | 2 +- - .../push_messaging_constants.cc | 2 +- - .../push_messaging_service_impl.cc | 2 +- - .../browser/resources/about_sys/about_sys.js | 2 +- - .../browsing_topics_internals.html | 4 +- - .../resources/chromeos/about_os_credits.html | 6 +- - .../dictation/macros/list_commands_macro.js | 2 +- - .../magnifier/magnifier.js | 2 +- - .../chromevox/background/command_handler.js | 8 +- - .../chromevox/options/options.css | 2 +- - .../tools/webstore_extension_util.py | 10 +- - .../chromevox_manifest.json.jinja2 | 8 +- - .../common/tutorial/chromevox_tutorial.js | 6 +- - .../accessibility/select_to_speak/options.css | 2 +- - .../select_to_speak/options.html | 2 +- - .../select_to_speak/select_to_speak.js | 8 +- - .../select_to_speak_manifest.json.jinja2 | 8 +- - .../switch_access/switch_access.js | 2 +- - .../switch_access_manifest.json.jinja2 | 4 +- - .../add_supervision/add_supervision_ui.js | 16 +- - .../chromeos/arc_support/background.js | 12 +- - .../chromeos/arc_support/playstore.js | 6 +- - .../assistant_optin/assistant_related_info.js | 4 +- - .../assistant_optin/assistant_value_prop.js | 2 +- - .../connectivity_diagnostics/manifest.json | 4 +- - .../resources/chromeos/echo/manifest.json | 122 +- - .../edu_coexistence/edu_coexistence_ui.js | 2 +- - .../chromeos/emoji_picker/icons.html | 2 +- - .../resources/chromeos/emulator/icons.html | 2 +- - .../input_method/google_xkb_manifest.json | 8 +- - .../resources/chromeos/login/debug/debug.js | 10 +- - .../screens/common/arc_terms_of_service.js | 4 +- - .../screens/common/consolidated_consent.js | 2 +- - .../screens/common/marketing_opt_in.html | 2 +- - .../login/screens/login/offline_login.html | 2 +- - .../login/screens/login/offline_login.js | 2 +- - .../browser_tabs_metadata_form.js | 2 +- - .../parent_access/parent_access_ui.js | 8 +- - .../browser/resources/cryptotoken/enroller.js | 2 +- - .../default_apps/external_extensions.json | 2 +- - .../discards/graph_doc_template.html | 2 +- - chrome/browser/resources/downloads/icons.html | 2 +- - .../resources/gaia_auth_host/authenticator.js | 4 +- - .../saml_password_attributes.js | 2 +- - .../resources/hangout_services/manifest.json | 2 +- - .../manifest.json | 2 +- - .../scope_approval_dialog.js | 6 +- - chrome/browser/resources/inspect/inspect.html | 4 +- - .../query_tiles/query_tiles_internals.html | 2 +- - .../query_tiles/query_tiles_internals.js | 4 +- - .../resources/media/mei_preload/manifest.json | 2 +- - .../shared/nearby_shared_icons.html | 4 +- - .../nearby_shared_share_type_icons.html | 2 +- - .../resources/net_internals/index.html | 6 +- - .../network_speech_synthesis/manifest.json | 2 +- - .../network_speech_synthesis/tts_extension.js | 2 +- - .../new_tab_page/modules/photos/module.html | 2 +- - chrome/browser/resources/omnibox/omnibox.html | 2 +- - .../resources/omnibox/omnibox_output.js | 4 +- - .../browser/resources/pdf/elements/icons.html | 2 +- - .../resources/print_preview/ui/icons.html | 2 +- - .../settings/about_page/about_page.html | 4 +- - .../crostini_disk_resize_dialog.html | 2 +- - .../keyboard_and_text_input_page.js | 2 +- - .../chromeos/os_a11y_page/manage_a11y_page.js | 4 +- - .../chromeos/os_a11y_page/os_a11y_page.js | 2 +- - .../channel_switcher_dialog.html | 2 +- - .../chromeos/os_about_page/os_about_page.html | 2 +- - .../borealis_page/borealis_detail_view.html | 2 +- - .../resources/settings/chromeos/os_icons.html | 2 +- - .../os_people_page/users_add_user_dialog.js | 2 +- - chrome/browser/resources/settings/icons.html | 2 +- - .../resources/settings/settings_shared.css | 2 +- - .../browser/resources/tools/build_webui.gni | 2 +- - .../resources/webstore_app/manifest.json | 4 +- - .../demos/cr_input/cr_input_demo.html | 2 +- - .../certificate_reporting_service.cc | 2 +- - .../chrome_cleaner/srt_field_trial_win.cc | 2 +- - .../chrome_enterprise_url_lookup_service.cc | 2 +- - .../chrome_password_protection_service.cc | 4 +- - .../cloud_binary_upload_service.cc | 4 +- - .../check_client_download_request_base.cc | 4 +- - .../download_protection/download_feedback.cc | 2 +- - .../ppapi_download_request.cc | 6 +- - .../extension_telemetry_uploader.cc | 2 +- - .../incident_report_uploader_impl.cc | 4 +- - .../default_settings_fetcher.cc | 2 +- - .../background/ntp_background_service.cc | 2 +- - .../search/background/ntp_backgrounds.cc | 10 +- - .../browser/share/default_ranking_android.cc | 8 +- - .../remote_copy_message_handler.cc | 2 +- - .../sharing/web_push/web_push_sender.cc | 4 +- - chrome/browser/signin/signin_ui_util.cc | 2 +- - .../browser/ssl/connection_help_tab_helper.cc | 2 +- - chrome/browser/ssl/sct_reporting_service.cc | 4 +- - .../child_accounts/kids_management_api.cc | 2 +- - .../supervised_user_block_interstitial.html | 2 +- - ...supervised_user_block_interstitial_v2.html | 2 +- - .../supervised_user_service.cc | 2 +- - .../supervised_user_url_filter.cc | 12 +- - .../strings/android_chrome_strings.grd | 54 +- - .../search/arc/recommend_apps_fetcher_impl.cc | 2 +- - .../ui/app_list/search/common/string_util.cc | 2 +- - .../search/files/item_suggest_cache.h | 2 +- - .../ui/app_list/search/omnibox_util.cc | 2 +- - .../ui/ash/ambient/ambient_client_impl.cc | 8 +- - .../ui/ash/calendar/calendar_keyed_service.cc | 2 +- - .../browser/ui/ash/chrome_shell_delegate.cc | 2 +- - .../ui/ash/in_session_auth_dialog_client.cc | 2 +- - .../projector/pending_screencast_manager.cc | 2 +- - .../browser/ui/ash/system_tray_client_impl.cc | 4 +- - .../tab_under_navigation_throttle.h | 2 +- - ...r_content_setting_bubble_model_delegate.cc | 4 +- - chrome/browser/ui/chrome_pages.cc | 2 +- - .../browser/ui/cocoa/share_menu_controller.mm | 2 +- - .../ui/commander/open_url_command_source.cc | 2 +- - .../ui/dialogs/outdated_upgrade_bubble.cc | 2 +- - .../installation_error_infobar_delegate.cc | 2 +- - chrome/browser/ui/managed_ui.cc | 2 +- - .../omnibox/omnibox_pedal_implementations.cc | 24 +- - .../quick_answers_ui_controller.cc | 4 +- - chrome/browser/ui/signin_view_controller.cc | 2 +- - .../toolbar/media_router_contextual_menu.cc | 6 +- - .../app_dialog/app_uninstall_dialog_view.cc | 2 +- - .../ui/views/hats/hats_next_web_dialog.cc | 2 +- - .../lens/lens_side_panel_navigation_helper.cc | 2 +- - .../ui/views/lens/lens_side_panel_view.cc | 2 +- - .../ui/views/network_profile_bubble_view.cc | 2 +- - .../about_this_site_side_panel_view.cc | 2 +- - .../plugin_vm/plugin_vm_installer_view.cc | 2 +- - .../ui/views/session_crashed_bubble_view.cc | 2 +- - .../lens/lens_unified_side_panel_view.cc | 2 +- - .../app_management_page_handler.cc | 6 +- - .../ash/add_supervision/add_supervision_ui.cc | 4 +- - .../ash/cloud_upload/drive_upload_handler.cc | 2 +- - .../internals_ui_handler.cc | 2 +- - .../edu_coexistence_login_handler_chromeos.cc | 2 +- - .../consolidated_consent_screen_handler.h | 4 +- - .../notification_tester_handler.cc | 2 +- - .../parent_access/parent_access_ui.cc | 4 +- - chrome/browser/ui/webui/feed/feed_ui.cc | 2 +- - .../ui/webui/interstitials/interstitial_ui.cc | 6 +- - .../ui/webui/media_router/cast_feedback_ui.cc | 4 +- - .../quick_pair/quick_pair_handler.cc | 4 +- - .../ui/webui/new_tab_page/foo/foo_handler.cc | 8 +- - .../ui/webui/new_tab_page/untrusted_source.cc | 2 +- - chrome/browser/ui/webui/ntp/new_tab_ui.cc | 2 +- - .../ui/webui/ntp/ntp_resource_cache.cc | 8 +- - .../ui/webui/sanitized_image_source.cc | 6 +- - .../settings/ash/parental_controls_handler.cc | 2 +- - .../webui/settings/reset_settings_handler.cc | 2 +- - .../settings_localized_strings_provider.cc | 2 +- - ...nin_restriction_policy_fetcher_chromeos.cc | 2 +- - .../ui/webui/welcome/google_apps_handler.cc | 12 +- - .../webui/welcome/ntp_background_handler.cc | 2 +- - .../ui/webui/whats_new/whats_new_util.cc | 4 +- - .../fetch_manifest_and_install_command.cc | 2 +- - .../externally_managed_app_manager.cc | 4 +- - .../preinstalled_web_apps/gmail.cc | 6 +- - .../preinstalled_web_apps/google_calendar.cc | 6 +- - .../preinstalled_web_apps/google_chat.cc | 2 +- - .../preinstalled_web_apps/google_docs.cc | 6 +- - .../preinstalled_web_apps/google_drive.cc | 6 +- - .../preinstalled_web_apps/google_meet.cc | 2 +- - .../preinstalled_web_apps/google_sheets.cc | 6 +- - .../preinstalled_web_apps/google_slides.cc | 6 +- - .../preinstalled_web_apps/messages_dogfood.cc | 2 +- - .../preinstalled_web_apps.cc | 8 +- - .../preinstalled_web_apps/youtube.cc | 6 +- - .../web_applications/web_app_install_task.cc | 2 +- - .../chrome_authenticator_request_delegate.cc | 8 +- - .../components/recovery_component.cc | 4 +- - .../crash/crashpad_crash_reporter.cc | 2 +- - .../executables/chrome_cleaner_main.cc | 2 +- - .../logging/cleaner_logging_service.cc | 6 +- - .../chrome_cleaner/logging/dummy_api_keys.cc | 4 +- - .../logging/reporter_logging_service.cc | 6 +- - chrome/common/chrome_features.cc | 6 +- - .../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 +- - chrome/common/extensions/api/dom.json | 2 +- - chrome/common/extensions/api/gcm.json | 8 +- - chrome/common/extensions/api/instance_id.json | 2 +- - chrome/common/extensions/api/privacy.json | 2 +- - chrome/common/extensions/api/tabs.json | 4 +- - chrome/common/extensions/api/tts.json | 2 +- - chrome/common/extensions/api/webview_tag.json | 4 +- - chrome/common/extensions/api/windows.json | 2 +- - .../extensions/chrome_extensions_client.cc | 4 +- - chrome/common/google_url_loader_throttle.cc | 4 +- - chrome/common/url_constants.cc | 260 +- - .../gaiacp/associated_user_validator.cc | 2 +- - .../gaiacp/gaia_credential_base.cc | 8 +- - .../credential_provider/gaiacp/gcp_utils.cc | 4 +- - .../gaiacp/gcpw_strings.cc | 2 +- - .../credential_provider/gaiacp/mdm_utils.cc | 2 +- - chrome/docs/devtools-pillar.html | 2 +- - chrome/docs/index.html | 18 +- - chrome/docs/platform-pillar.html | 12 +- - 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/renderer/cart/commerce_hint_agent.cc | 2 +- - chrome/renderer/media/flash_embed_rewrite.cc | 2 +- - ...ip_add_to_cart_request_domain_mapping.json | 2 +- - .../extensions/identity_custom_bindings.js | 2 +- - .../mac_notification_service_ns.mm | 2 +- - chrome/tools/webforms_aggregator_tests.py | 4 +- - chrome/tools/weburl_links.txt | 6 +- - chrome/updater/branding.gni | 12 +- - chrome/updater/mac/setup/ks_tickets.mm | 2 +- - chrome/utility/importer/ie_importer_win.cc | 2 +- - .../shell_devtools_discovery_page.html | 2 +- - chromecast/browser/webui/cast_webui.cc | 4 +- - .../runtime/browser/grpc_webui_controller.cc | 2 +- - chromecast/chromecast.gni | 2 +- - chromecast/crash/linux/minidump_uploader.cc | 2 +- - chromecast/net/connectivity_checker_impl.h | 4 +- - .../components/dbus/rmad/fake_rmad_client.cc | 2 +- - .../device_activity_controller.cc | 2 +- - .../ash/components/drivefs/drivefs_auth.cc | 2 +- - .../simple_geolocation_provider.cc | 2 +- - .../login/auth/recovery/service_constants.cc | 2 +- - .../multidevice/stub_multidevice_util.cc | 2 +- - .../components/timezone/timezone_request.cc | 2 +- - .../trial_group/trial_group_checker.cc | 2 +- - .../assistant_manager_service_impl.cc | 2 +- - chromeos/ash/services/assistant/service.cc | 2 +- - chromeos/chromeos_strings.grd | 6 +- - .../translation_result_loader.cc | 2 +- - chromeos/printing/ppd_provider.h | 2 +- - chromeos/printing/printer_config_cache.cc | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri1.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri10.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri11.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri12.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri13.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri14.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri15.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri18.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri19.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri2.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri24.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri3.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri4.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri49.txt | 2 +- - .../printing/uri_fuzzer_seed_corpus/uri5.txt | 2 +- - .../error_page_populator.cc | 2 +- - .../predictor_config_definitions.cc | 2 +- - .../autofill/content/renderer/form_cache.cc | 2 +- - .../renderer/page_passwords_analyser.cc | 2 +- - .../password_form_conversion_utils.cc | 2 +- - .../core/browser/autofill_download_manager.cc | 2 +- - .../core/browser/autofill_experiments.cc | 6 +- - .../browser/data_model/test_data_creator.cc | 6 +- - .../credit_card_fido_authenticator.cc | 2 +- - .../core/browser/payments/payments_client.cc | 2 +- - .../browser/payments/payments_service_url.cc | 10 +- - ...roid_chrome_autofill_assistant_strings.grd | 2 +- - .../autofill_assistant_onboarding_fetcher.cc | 2 +- - .../browser/headless/client_headless.cc | 2 +- - .../browser/service/server_url_fetcher.cc | 2 +- - .../launched_configs.cc | 4 +- - .../safe_browsing_triggered_popup_blocker.h | 4 +- - .../core/breadcrumb_manager_tab_helper.cc | 2 +- - .../strings/android/browser_ui_strings.grd | 6 +- - .../core/counters/history_counter.cc | 2 +- - .../core/history_notice_utils.cc | 4 +- - .../core/captive_portal_detector.cc | 2 +- - .../data/log_list.json | 22 +- - components/commerce/core/account_checker.cc | 10 +- - .../resources/cart_domain_cart_url_regex.json | 2 +- - .../subscriptions_server_proxy.cc | 4 +- - .../components_google_chrome_strings.grd | 2 +- - .../notes/core/server/notes_repository.cc | 2 +- - .../notes/core/server/notes_server_base.cc | 4 +- - .../notes/core/templates/template_fetcher.h | 2 +- - .../reactions/core/reaction_list_factory.cc | 4 +- - .../crash/core/app/crash_reporter_client.cc | 2 +- - .../crash/core/browser/resources/crashes.js | 4 +- - components/cronet/tools/generate_javadoc.py | 2 +- - .../core/html/dom_distiller_viewer.html | 2 +- - .../core/javascript/dom_distiller_viewer.js | 2 +- - components/dom_distiller/core/viewer.cc | 6 +- - .../domain_reliability/bake_in_configs.py | 286 +- - components/drive/service/drive_api_service.cc | 6 +- - .../error_page/common/localized_error.cc | 2 +- - .../favicon/core/large_icon_service_impl.cc | 2 +- - components/feed/core/v2/feed_network_impl.cc | 8 +- - components/feed/feed_feature_list.cc | 4 +- - components/feedback/feedback_uploader.cc | 2 +- - components/flags_ui/resources/flags.html | 4 +- - components/gcm_driver/gcm_account_mapper.cc | 2 +- - components/gcm_driver/gcm_client_impl.cc | 2 +- - .../core/browser/browsing_history_service.cc | 4 +- - .../history/core/browser/history_service.cc | 4 +- - .../core/browser/web_history_service.cc | 12 +- - .../per_user_topic_subscription_manager.cc | 2 +- - .../tab_modal_dialog_manager.cc | 2 +- - .../core/keyed_service_base_factory.cc | 2 +- - components/lens/lens_features.cc | 2 +- - components/media_router/common/media_source.h | 2 +- - .../metrics/net/net_metrics_log_uploader.cc | 2 +- - components/metrics/url_constants.cc | 6 +- - components/nacl/docs/dev/index.html | 4 +- - components/net_log/resources/net_export.html | 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 +- - .../omnibox/browser/document_provider.cc | 18 +- - .../browser/document_suggestions_service.cc | 4 +- - .../resources/omnibox_pedal_synonyms.grd | 138 +- - .../page_content_annotations_model_manager.cc | 2 +- - .../core/optimization_guide_constants.cc | 4 +- - .../core/page_entities_model_executor_impl.cc | 2 +- - .../core/prediction_manager.cc | 8 +- - .../ads_page_load_metrics_observer.cc | 2 +- - .../core/uma_page_load_metrics_observer.cc | 2 +- - .../use_counter_page_load_metrics_observer.cc | 4 +- - ...password_requirements_spec_fetcher_impl.cc | 2 +- - .../core/browser/hash_password_manager.cc | 2 +- - .../leak_detection/leak_detection_request.h | 2 +- - .../browser/leak_detection_dialog_utils.cc | 2 +- - .../browser/old_google_credentials_cleaner.cc | 8 +- - .../core/browser/password_hash_data.cc | 2 +- - .../browser/password_manager_constants.cc | 10 +- - .../core/browser/password_reuse_detector.cc | 2 +- - .../browser/password_scripts_fetcher_impl.cc | 2 +- - .../core/browser/password_sync_util.cc | 4 +- - .../core/browser/password_ui_utils.cc | 2 +- - .../core/browser/psl_matching_helper.cc | 6 +- - .../hash_affiliation_fetcher.cc | 2 +- - .../password_manager/ios/test_helpers.cc | 4 +- - .../payment_method_manifest_parser_fuzzer.cc | 2 +- - components/payments/core/error_strings.cc | 2 +- - components/payments/core/method_strings.cc | 6 +- - .../android/permissions_android_strings.grd | 4 +- - components/permissions/constants.cc | 2 +- - .../permissions/permission_context_base.cc | 10 +- - .../permissions/permission_request_manager.cc | 8 +- - .../prediction_service/prediction_common.h | 2 +- - .../core/browser/browser_policy_connector.cc | 10 +- - ...cloud_signin_restriction_policy_fetcher.cc | 2 +- - .../core/common/cloud/user_info_fetcher.cc | 4 +- - .../common/default_chrome_apps_migrator.cc | 16 +- - .../core/common/policy_loader_common.cc | 4 +- - .../policy/resources/policy_templates.json | 2414 ++++++++--------- - .../request_handler_for_policy.cc | 2 +- - .../policy/test_support/signature_provider.h | 4 +- - .../template_writers/writers/adm_writer.py | 4 +- - .../writers/doc_atomic_groups_writer.py | 2 +- - .../template_writers/writers/doc_writer.py | 10 +- - .../writers/ios_app_config_writer.py | 2 +- - .../writers/template_writer.py | 2 +- - components/quirks/quirks_client.cc | 2 +- - components/resources/terms/terms_am.html | 4 +- - components/resources/terms/terms_ar.html | 4 +- - components/resources/terms/terms_bg.html | 4 +- - components/resources/terms/terms_bn.html | 4 +- - components/resources/terms/terms_ca.html | 4 +- - components/resources/terms/terms_cs.html | 4 +- - components/resources/terms/terms_da.html | 4 +- - components/resources/terms/terms_de.html | 4 +- - components/resources/terms/terms_el.html | 4 +- - components/resources/terms/terms_en-GB.html | 4 +- - components/resources/terms/terms_en.html | 4 +- - components/resources/terms/terms_es-419.html | 4 +- - components/resources/terms/terms_es.html | 4 +- - components/resources/terms/terms_et.html | 4 +- - components/resources/terms/terms_fa.html | 4 +- - components/resources/terms/terms_fi.html | 4 +- - components/resources/terms/terms_fil.html | 4 +- - components/resources/terms/terms_fr.html | 4 +- - components/resources/terms/terms_gu.html | 4 +- - components/resources/terms/terms_he.html | 4 +- - components/resources/terms/terms_hi.html | 4 +- - components/resources/terms/terms_hr.html | 4 +- - components/resources/terms/terms_hu.html | 4 +- - components/resources/terms/terms_id.html | 4 +- - components/resources/terms/terms_it.html | 4 +- - components/resources/terms/terms_ja.html | 4 +- - components/resources/terms/terms_kn.html | 4 +- - components/resources/terms/terms_ko.html | 4 +- - components/resources/terms/terms_lt.html | 4 +- - components/resources/terms/terms_lv.html | 4 +- - components/resources/terms/terms_ml.html | 4 +- - components/resources/terms/terms_mr.html | 4 +- - components/resources/terms/terms_nb.html | 4 +- - components/resources/terms/terms_nl.html | 4 +- - components/resources/terms/terms_pl.html | 4 +- - components/resources/terms/terms_pt-BR.html | 4 +- - components/resources/terms/terms_pt-PT.html | 4 +- - components/resources/terms/terms_ro.html | 4 +- - components/resources/terms/terms_ru.html | 4 +- - components/resources/terms/terms_sk.html | 4 +- - components/resources/terms/terms_sl.html | 4 +- - components/resources/terms/terms_sr.html | 4 +- - components/resources/terms/terms_sv.html | 4 +- - components/resources/terms/terms_sw.html | 4 +- - components/resources/terms/terms_ta.html | 4 +- - components/resources/terms/terms_te.html | 4 +- - components/resources/terms/terms_th.html | 4 +- - components/resources/terms/terms_tr.html | 4 +- - components/resources/terms/terms_uk.html | 4 +- - components/resources/terms/terms_vi.html | 4 +- - components/resources/terms/terms_zh-CN.html | 4 +- - components/resources/terms/terms_zh-TW.html | 4 +- - .../browser/client_side_detection_service.cc | 2 +- - .../content/browser/triggers/trigger_util.cc | 2 +- - .../browser/db/v4_protocol_manager_util.cc | 4 +- - .../password_protection_service_base.cc | 2 +- - .../browser/realtime/url_lookup_service.cc | 2 +- - .../tailored_security_service.cc | 6 +- - ...tailored_security_service_observer_util.cc | 2 +- - .../safe_search_url_checker_client.cc | 2 +- - .../safe_search_api/stub_url_checker.cc | 2 +- - components/safety_check/url_constants.cc | 2 +- - .../template_url_starter_pack_data.cc | 2 +- - .../content/https_only_mode_blocking_page.cc | 2 +- - .../content/ssl_blocking_page.h | 2 +- - .../core/controller_client.cc | 2 +- - .../core/safe_browsing_loud_error_ui.cc | 4 +- - .../security_interstitials/core/urls.cc | 4 +- - ...ation_guide_segmentation_model_provider.cc | 2 +- - .../services/quarantine/quarantine_mac.mm | 2 +- - .../core/common/disabled_sites.cc | 16 +- - .../ios/shared_highlighting_constants.mm | 2 +- - .../browser/chrome_connected_header_helper.cc | 4 +- - .../browser/account_consistency_service.mm | 12 +- - .../identity_manager/access_token_fetcher.cc | 2 +- - .../browser/spelling_service_client.cc | 2 +- - .../browser/subresource_filter_constants.h | 8 +- - components/sync/base/sync_util.h | 4 +- - .../standalone_trusted_vault_client.cc | 2 +- - ...ted_vault_access_token_fetcher_frontend.cc | 2 +- - .../trusted_vault_server_constants.h | 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 +- - .../top_domains/make_alexa_top_list.py | 2 +- - components/url_matcher/url_util.cc | 4 +- - .../variations/variations_url_constants.cc | 4 +- - .../installable/installable_logging.cc | 2 +- - components/wifi/wifi_service_win.cc | 2 +- - .../render_widget_host_view_cocoa.mm | 2 +- - .../aggregation_service_features.cc | 2 +- - .../indexed_db/indexed_db_backing_store.cc | 2 +- - .../indexed_db/indexed_db_reporting.cc | 2 +- - .../interest_group_update_manager.cc | 2 +- - .../portal/portal_navigation_throttle.cc | 2 +- - .../renderer_host/navigation_request.cc | 6 +- - .../renderer_host/render_frame_host_impl.cc | 2 +- - content/browser/resources/gpu/info_view.js | 2 +- - .../speech/speech_recognition_engine.cc | 2 +- - .../browser/web_contents/web_contents_impl.cc | 2 +- - .../webauth/authenticator_common_impl.cc | 4 +- - content/browser/webauth/client_data_json.cc | 2 +- - .../webauth_request_security_checker.cc | 2 +- - .../webauth_request_security_checker.h | 4 +- - .../zygote_host/zygote_host_impl_linux.cc | 2 +- - .../pepper/pepper_media_device_manager.cc | 2 +- - content/renderer/render_thread_impl.cc | 14 +- - .../shell/browser/shell_browser_main_parts.cc | 2 +- - content/zygote/zygote_main_linux.cc | 2 +- - device/bluetooth/bluetooth_adapter_mac.mm | 2 +- - .../bluetooth/bluetooth_classic_device_mac.mm | 4 +- - device/fido/fido_strings.grd | 2 +- - device/fido/fido_test_data.h | 2 +- - device/gamepad/xbox_controller_mac.mm | 2 +- - docs/enterprise/extension_query.py | 4 +- - docs/enterprise/extension_query_py2.py | 4 +- - .../web_request/web_request_permissions.cc | 4 +- - extensions/browser/suggest_permission_util.cc | 4 +- - .../browser/updater/extension_downloader.cc | 4 +- - .../browser/updater/safe_manifest_parser.cc | 2 +- - extensions/common/api/_api_features.json | 2 +- - .../common/api/extensions_manifest_types.json | 6 +- - extensions/common/api/i18n.json | 2 +- - extensions/common/csp_validator.cc | 2 +- - extensions/common/extension_urls.cc | 12 +- - extensions/common/manifest_constants.cc | 6 +- - extensions/strings/extensions_strings.grd | 4 +- - google_apis/drive/drive_api_url_generator.cc | 2 +- - google_apis/gaia/gaia_auth_fetcher.cc | 4 +- - google_apis/gaia/gaia_auth_util.cc | 8 +- - google_apis/gaia/gaia_constants.cc | 84 +- - google_apis/gaia/gaia_oauth_client.cc | 6 +- - google_apis/gaia/gaia_urls.cc | 10 +- - 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/tools/mcs_probe.cc | 2 +- - google_apis/google_api_keys.cc | 2 +- - .../ANGLE/EGL_ANGLE_sync_control_rate.txt | 2 +- - .../CHROMIUM/EGL_CHROMIUM_sync_control.txt | 2 +- - .../iosurface_image_backing_factory.mm | 2 +- - gpu/config/gpu_control_list_format.txt | 2 +- - .../lib/browser/protocol/headless_handler.cc | 2 +- - ios/build/bots/scripts/result_sink_util.py | 4 +- - ios/build/bots/scripts/test_result_util.py | 6 +- - ios/build/bots/scripts/xcode_util.py | 4 +- - ios/build/chrome_build.gni | 2 +- - .../app/strings/ios_chromium_strings.grd | 18 +- - .../app/strings/ios_google_chrome_strings.grd | 18 +- - ios/chrome/app/strings/ios_strings.grd | 44 +- - ios/chrome/browser/autofill/BUILD.gn | 4 +- - .../autofill/automation/automation_action.mm | 2 +- - ...chrome_browser_state_removal_controller.mm | 2 +- - ios/chrome/browser/flags/about_flags.mm | 4 +- - ios/chrome/browser/omaha/omaha_service.mm | 2 +- - .../search_engine_tab_helper.mm | 8 +- - .../activity_services/activity_type_util.mm | 2 +- - .../ui/bookmarks/bookmark_earl_grey.mm | 2 +- - .../new_tab_page_app_interface.mm | 4 +- - .../content_suggestions/ntp_home_mediator.mm | 8 +- - .../browser/ui/main/scene_controller.mm | 2 +- - .../browser/ui/ntp/discover_feed_constants.mm | 2 +- - ios/chrome/browser/ui/ntp/incognito_view.mm | 2 +- - .../browser/ui/ntp/revamped_incognito_view.mm | 2 +- - .../ui/qr_scanner/qr_scanner_app_interface.mm | 2 +- - .../ui/settings/settings_app_interface.mm | 2 +- - .../table_cell_catalog_view_controller.mm | 8 +- - .../translate_table_view_controller.mm | 2 +- - .../interstitials/interstitial_ui_util.mm | 2 +- - .../browser/url/chrome_url_constants.cc | 40 +- - ..._credential_provider_extension_strings.grd | 8 +- - .../password_spec_fetcher.mm | 2 +- - .../https_only_mode_blocking_page.mm | 2 +- - ios/net/cookies/cookie_store_ios_test_util.mm | 2 +- - ios/net/crn_http_protocol_handler.mm | 2 +- - .../browser/signin/chrome_identity_service.mm | 4 +- - .../browser/signin/fake_chrome_identity.mm | 6 +- - .../signin/fake_chrome_identity_service.mm | 2 +- - .../fake_chrome_identity_service_constants.mm | 2 +- - ios/showcase/alert/sc_alert_coordinator.mm | 8 +- - .../sc_infobar_modal_save_card_coordinator.mm | 2 +- - .../fake_autocomplete_suggestion.mm | 4 +- - ios/web/navigation/navigation_manager_impl.mm | 6 +- - .../web_state/ui/wk_content_rule_list_util.mm | 2 +- - ios/web_view/internal/cwv_flags.mm | 2 +- - ios/web_view/internal/cwv_web_view.mm | 2 +- - media/base/win/mf_initializer.cc | 2 +- - .../native_pixmap_handle_mojom_traits.cc | 12 +- - ...stable_video_decoder_types_mojom_traits.cc | 178 +- - .../src/build_tools/build_paths.py | 2 +- - .../src/build_tools/buildbot_common.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/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 +- - .../security-contest/contest-warning.txt | 4 +- - native_client_sdk/src/doc/conf.py | 2 +- - .../src/doc/doxygen/generate_docs.py | 2 +- - native_client_sdk/src/doc/migration/apps.html | 8 +- - .../src/doc/migration/public.html | 2 +- - .../src/examples/api/socket/index.html | 2 +- - .../src/examples/demo/drive/drive.cc | 4 +- - .../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 | 2 +- - .../gonacl_appengine/static/cube/index.html | 2 +- - .../gonacl_appengine/static/earth/example.js | 2 +- - .../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 +- - native_client_sdk/src/tools/fix_manifest.py | 2 +- - native_client_sdk/src/web/manifest.html | 6 +- - net/base/network_change_notifier_mac.mm | 2 +- - .../http_security_header_047.txt | Bin 166 -> 169 bytes - net/dns/dns_test_util.h | 12 +- - net/dns/dns_transaction.cc | 2 +- - net/dns/public/doh_provider_entry.cc | 4 +- - net/http/http_server_properties.cc | 4 +- - net/http/webfonts_histogram.cc | 6 +- - net/log/file_net_log_observer.cc | 2 +- - net/quic/crypto/proof_verifier_chromium.cc | 2 +- - net/quic/quic_stream_factory.cc | 8 +- - net/spdy/spdy_session.cc | 2 +- - net/tools/print_certificates.py | 2 +- - net/tools/testserver/testserver.py.vpython3 | 4 +- - .../transport_security_state_generator.cc | 2 +- - printing/backend/win_helper.cc | 4 +- - printing/print_settings_initializer_win.cc | 2 +- - remoting/base/breakpad_mac.mm | 2 +- - remoting/base/chromium_url_request.cc | 2 +- - remoting/base/service_urls.cc | 8 +- - .../notification/gstatic_json_fetcher.cc | 2 +- - ...rome.remote_assistance-firefox.json.jinja2 | 2 +- - remoting/host/it2me/it2me_constants.cc | 2 +- - remoting/host/linux/linux_me2me_host.py | 4 +- - 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/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/resources/remoting_strings.grd | 8 +- - remoting/signaling/signaling_id_util.cc | 4 +- - remoting/tools/build/remoting_localize.py | 6 +- - remoting/tools/zip2msi.py | 2 +- - rlz/lib/financial_ping.cc | 2 +- - sandbox/features.gni | 2 +- - sandbox/linux/services/libc_interceptor.cc | 2 +- - .../linux/suid/client/setuid_sandbox_host.cc | 2 +- - sandbox/linux/suid/sandbox.c | 2 +- - sandbox/policy/win/sandbox_win.cc | 2 +- - .../geolocation/network_location_request.cc | 2 +- - .../image_annotation_service.h | 4 +- - .../markdown/extensions/smarty.py | 2 +- - .../Python-Markdown/markdown/pep562.py | 2 +- - .../abseil-cpp/absl/abseil.podspec.gen.py | 2 +- - third_party/abseil-cpp/conanfile.py | 2 +- - third_party/abseil-cpp/generate_def_files.py | 2 +- - third_party/abseil-cpp/roll_abseil.py | 4 +- - third_party/afl/src/Makefile | 4 +- - third_party/afl/src/afl-analyze.c | 2 +- - third_party/afl/src/afl-as.c | 2 +- - third_party/afl/src/afl-fuzz.c | 2 +- - third_party/afl/src/afl-gcc.c | 2 +- - third_party/afl/src/afl-gotcpu.c | 4 +- - third_party/afl/src/afl-showmap.c | 2 +- - third_party/afl/src/afl-tmin.c | 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 +- - third_party/afl/src/libdislocator/Makefile | 2 +- - third_party/afl/src/libtokencap/Makefile | 2 +- - third_party/afl/src/llvm_mode/Makefile | 6 +- - .../afl/src/llvm_mode/afl-clang-fast.c | 4 +- - .../android_build_tools/aapt2/3pp/fetch.py | 4 +- - .../apkanalyzer/3pp/fetch.py | 2 +- - .../apkanalyzer/3pp/install.py | 2 +- - .../android_build_tools/lint/3pp/fetch.py | 2 +- - .../android_build_tools/lint/3pp/install.py | 2 +- - .../manifest_merger/3pp/fetch.py | 2 +- - .../manifest_merger/3pp/install.py | 2 +- - .../android_arch_core_common/3pp/fetch.py | 2 +- - .../android_arch_core_runtime/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../com_android_support_design/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../com_android_support_loader/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../com_android_support_multidex/3pp/fetch.py | 2 +- - .../com_android_support_print/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../com_android_tools_common/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../com_android_tools_sdk_common/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../com_google_android_play_core/3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../3pp/fetch.py | 2 +- - .../Android_SDK_License-December_9_2016.txt | 4 +- - .../runner/src/main/Android.mk | 2 +- - third_party/androidx/fetch_all_androidx.py | 2 +- - .../common/loader/record_load_histograms.cc | 2 +- - .../blink/public/strings/blink_strings.grd | 8 +- - .../renderer/bindings/scripts/utilities.py | 2 +- - .../build/scripts/update_css_ranking.py | 4 +- - .../core/css/remote_font_face_source.cc | 2 +- - .../blink/renderer/core/dom/element.cc | 2 +- - .../renderer/core/dom/events/event_target.cc | 2 +- - .../blink/renderer/core/events/touch_event.cc | 2 +- - .../blink/renderer/core/events/wheel_event.cc | 2 +- - .../blink/renderer/core/frame/local_frame.cc | 4 +- - .../renderer/core/html/html_iframe_element.cc | 2 +- - .../core/html/media/autoplay_policy.cc | 4 +- - .../core/html/media/html_media_element.cc | 4 +- - .../core/html/portal/html_portal_element.cc | 4 +- - .../renderer/core/loader/frame_loader.cc | 4 +- - .../core/loader/mixed_content_checker.cc | 2 +- - .../core/loader/subresource_filter.cc | 2 +- - .../script/document_write_intervention.cc | 6 +- - .../core/xmlhttprequest/xml_http_request.cc | 2 +- - .../modules/bluetooth/bluetooth_error.cc | 16 +- - .../modules/clipboard/clipboard_promise.cc | 2 +- - .../credentials_container.cc | 6 +- - .../encryptedmedia/encrypted_media_utils.h | 2 +- - .../modules/geolocation/geolocation.cc | 2 +- - .../play_app_url_manifest.json | 2 +- - .../modules/payments/payment_request.cc | 6 +- - .../modules/vibration/vibration_controller.cc | 4 +- - .../modules/webaudio/audio_context.cc | 4 +- - .../modules/webmidi/navigator_web_midi.cc | 2 +- - .../platform/fonts/mac/font_cache_mac.mm | 4 +- - .../platform/loader/fetch/resource_error.cc | 2 +- - .../loader/fetch/resource_load_scheduler.cc | 2 +- - .../platform/weborigin/security_origin.cc | 2 +- - .../blink/tools/blinkpy/common/net/git_cl.py | 4 +- - .../blinkpy/common/net/results_fetcher.py | 10 +- - .../blink/tools/blinkpy/common/net/rpc.py | 6 +- - .../blink/tools/blinkpy/common/pretty_diff.py | 2 +- - .../tools/blinkpy/common/system/filesystem.py | 2 +- - .../tools/blinkpy/common/system/profiler.py | 2 +- - .../blink/tools/blinkpy/style/filter.py | 2 +- - .../blinkpy/tool/commands/flaky_tests.py | 6 +- - .../tools/blinkpy/w3c/chromium_commit.py | 2 +- - .../tools/blinkpy/w3c/chromium_commit_mock.py | 2 +- - third_party/blink/tools/blinkpy/w3c/common.py | 4 +- - .../blinkpy/w3c/directory_owners_extractor.py | 2 +- - .../tools/blinkpy/w3c/export_notifier.py | 4 +- - third_party/blink/tools/blinkpy/w3c/gerrit.py | 6 +- - .../tools/blinkpy/w3c/import_notifier.py | 4 +- - .../blink/tools/blinkpy/w3c/monorail.py | 2 +- - .../tools/blinkpy/w3c/pr_cleanup_tool.py | 2 +- - .../blink/tools/blinkpy/w3c/test_exporter.py | 4 +- - .../blink/tools/blinkpy/w3c/test_importer.py | 10 +- - .../blinkpy/w3c/wpt_results_processor.py | 2 +- - .../blink/tools/blinkpy/w3c/wpt_uploader.py | 2 +- - .../blink/tools/commit_stats/org-list.txt | 10 +- - .../print_stale_test_expectations_entries.py | 2 +- - third_party/boringssl/roll_boringssl.py | 2 +- - .../closure/bin/build/depstree.py | 2 +- - .../closure/bin/build/source.py | 2 +- - .../closure/bin/build/treescan.py | 2 +- - .../externs/chrome_extensions.js | 6 +- - .../externs/command_line_private.js | 4 +- - .../crashpad/build/install_linux_sysroot.py | 2 +- - third_party/crashpad/crashpad/package.h | 4 +- - third_party/crashpad/update.py | 2 +- - third_party/dav1d/generate_source.py | 2 +- - .../protoc_plugins/util/plugin_protos.py | 4 +- - .../closure/bin/build/closurebuilder.py | 2 +- - .../closure/bin/build/depstree.py | 2 +- - .../closure/bin/build/depswriter.py | 2 +- - .../closure/bin/build/source.py | 2 +- - .../closure/bin/build/treescan.py | 2 +- - .../closure/css/inlay/g-base.css | 4 +- - .../closure/css/inlay/g-fixed.css | 4 +- - .../closure/css/inlay/g-ratio.css | 4 +- - .../closure/goog/css/bubble.css | 18 +- - .../closure/goog/css/checkbox.css | 4 +- - .../closure/goog/css/colorpalette.css | 2 +- - .../goog/css/colorpicker-simplegrid.css | 2 +- - .../closure/goog/css/combobox.css | 2 +- - .../closure/goog/css/css3menubutton.css | 2 +- - .../closure/goog/css/custombutton.css | 2 +- - .../closure/goog/css/dialog.css | 2 +- - .../closure/goog/css/dragdropdetector.css | 4 +- - .../closure/goog/css/editor/bubble.css | 2 +- - .../goog/css/editor/equationeditor.css | 2 +- - .../closure/goog/css/editortoolbar.css | 2 +- - .../closure/goog/css/flatmenubutton.css | 2 +- - .../closure/goog/css/hsvapalette.css | 8 +- - .../closure/goog/css/hsvpalette.css | 8 +- - .../closure/goog/css/imagelessmenubutton.css | 2 +- - .../closure/goog/css/menubutton.css | 4 +- - .../closure/goog/css/menuitem.css | 2 +- - .../closure/goog/css/toolbar.css | 4 +- - .../closure/goog/css/tree.css | 4 +- - .../closure/goog/css/tristatemenuitem.css | 4 +- - .../goog/demos/autocompleterichremotedata.js | 16 +- - .../demos/autocompleterichremotedata.json | 16 +- - .../closure/goog/demos/css/demo.css | 2 +- - .../closure/goog/demos/css/emojipicker.css | 2 +- - .../closure/goog/demos/dialog.html | 4 +- - .../demos/graphics/advancedcoordinates.html | 2 +- - .../demos/graphics/advancedcoordinates2.html | 2 +- - .../goog/demos/graphics/basicelements.html | 4 +- - .../closure/goog/demos/history1.html | 2 +- - .../closure/goog/demos/history2.html | 2 +- - .../closure/goog/demos/history3.html | 2 +- - .../closure/goog/demos/hovercard.html | 18 +- - .../closure/goog/demos/splitpane.html | 2 +- - .../closure/goog/html/safeurl_test_vectors.js | 8 +- - .../goog/html/sanitizer/html_test_vectors.js | 2 +- - .../goog/labs/net/webchannel/environment.js | 2 +- - .../goog/labs/net/webchannel/netutils.js | 2 +- - .../labs/net/webchannel/webchannelbase.js | 4 +- - .../closure/goog/net/browserchannel.js | 4 +- - .../closure/goog/net/networktester.js | 2 +- - .../closure/goog/net/tmpnetwork.js | 2 +- - .../closure/goog/soy/soy_testhelper.js | 4 +- - .../closure/goog/transpile.js | 46 +- - .../closure/goog/ui/editor/linkdialog.js | 2 +- - .../closure/goog/ui/editor/messages.js | 2 +- - .../closure/goog/ui/media/googlevideo.js | 6 +- - .../closure/goog/ui/media/mp3.js | 2 +- - .../closure/goog/ui/media/picasa.js | 8 +- - .../closure/goog/ui/media/youtube.js | 6 +- - .../closure/goog/ui/serverchart.js | 6 +- - .../doc/_layouts/article.html | 2 +- - .../google-closure-library/doc/js/article.js | 2 +- - .../src/chrome/os/inputview/adapter.js | 4 +- - .../closure/bin/build/closurebuilder.py | 2 +- - .../closure/bin/build/depstree.py | 2 +- - .../closure/bin/build/depswriter.py | 2 +- - .../closure/bin/build/source.py | 2 +- - .../closure/bin/build/treescan.py | 2 +- - .../closure_library/closure/bin/scopify.py | 2 +- - .../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 +- - .../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/testparser.cxx | 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 +- - .../src/be/hyph-be.lic.txt | 6 +- - .../src/hu/hyph-hu.lic.txt | 4 +- - .../src/hy/hyph-hy.lic.txt | 2 +- - third_party/inspector_protocol/roll.py | 4 +- - third_party/jstemplate/compile.py | 2 +- - .../jstemplate/jstemplate_example.html | 2 +- - third_party/jstemplate/jstemplate_jsunit.html | 10 +- - third_party/libaddressinput/BUILD.gn | 2 +- - .../chromium/tools/require_fields.py | 2 +- - third_party/libevent/evdns.c | 2 +- - .../libpng/contrib/oss-fuzz/README.txt | 2 +- - .../libusb/src/libusb/os/windows_usb.c | 4 +- - third_party/libxslt/chromium/roll.py | 2 +- - third_party/maldoca/src/maldoca/base/status.h | 2 +- - .../maldoca/src/maldoca/ole/vba_extract.cc | 2 +- - third_party/mozilla/NSPasteboard+Utils.mm | 2 +- - third_party/mozilla/NSString+Utils.mm | 2 +- - third_party/opus/src/doc/opus_in_isobmff.html | 2 +- - third_party/opus/src/doc/release.txt | 6 +- - third_party/pefile_py3/pefile.py | 4 +- - third_party/protobuf/CHANGES.txt | 12 +- - third_party/protobuf/CONTRIBUTORS.txt | 70 +- - third_party/protobuf/cmake/CMakeLists.txt | 2 +- - third_party/protobuf/composer.json | 2 +- - .../binary_json_conformance_suite.cc | 46 +- - .../protobuf/conformance/conformance_cpp.cc | 2 +- - .../text_format_conformance_suite.cc | 6 +- - .../Tests/GPBObjectiveCPlusPlusTest.mm | 2 +- - third_party/protobuf/php/composer.json | 2 +- - .../php/ext/google/protobuf/convert.c | 2 +- - .../php/ext/google/protobuf/message.c | 4 +- - .../protobuf/python/docs/generate_docs.py | 2 +- - .../python/google/protobuf/descriptor.py | 2 +- - .../google/protobuf/descriptor_database.py | 2 +- - .../python/google/protobuf/descriptor_pool.py | 2 +- - .../protobuf/internal/_parameterized.py | 2 +- - .../google/protobuf/internal/builder.py | 2 +- - .../google/protobuf/internal/decoder.py | 2 +- - .../google/protobuf/internal/encoder.py | 2 +- - .../protobuf/internal/enum_type_wrapper.py | 2 +- - .../protobuf/internal/message_listener.py | 2 +- - .../protobuf/internal/python_message.py | 2 +- - .../google/protobuf/internal/test_util.py | 2 +- - .../google/protobuf/internal/type_checkers.py | 2 +- - .../protobuf/internal/well_known_types.py | 4 +- - .../google/protobuf/internal/wire_format.py | 2 +- - .../python/google/protobuf/json_format.py | 2 +- - .../python/google/protobuf/message.py | 2 +- - .../python/google/protobuf/message_factory.py | 2 +- - .../google/protobuf/pyext/cpp_message.py | 2 +- - .../python/google/protobuf/reflection.py | 2 +- - .../python/google/protobuf/service.py | 2 +- - .../google/protobuf/service_reflection.py | 2 +- - .../python/google/protobuf/text_format.py | 2 +- - .../generate_py_protobufs.py | 2 +- - .../python/protobuf_distutils/setup.py | 6 +- - third_party/protobuf/python/setup.py | 6 +- - .../protobuf/src/google/protobuf/any_lite.cc | 4 +- - .../protobuf/compiler/java/java_message.cc | 2 +- - .../compiler/js/well_known_types_embed.cc | 2 +- - .../src/google/protobuf/compiler/parser.cc | 8 +- - .../google/protobuf/util/internal/constants.h | 6 +- - .../util/internal/protostream_objectwriter.cc | 44 +- - .../src/google/protobuf/util/json_util.cc | 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/r8/3pp/fetch.py | 4 +- - third_party/rust/adler/v1/BUILD.gn | 2 +- - third_party/rust/aho_corasick/v0_7/BUILD.gn | 2 +- - third_party/rust/atty/v0_2/BUILD.gn | 2 +- - third_party/rust/autocfg/v1/BUILD.gn | 2 +- - third_party/rust/autocxx/v0_22/BUILD.gn | 2 +- - .../rust/autocxx_bindgen/v0_60/BUILD.gn | 4 +- - .../rust/autocxx_engine/v0_22/BUILD.gn | 2 +- - third_party/rust/autocxx_gen/v0_22/BUILD.gn | 2 +- - third_party/rust/autocxx_macro/v0_22/BUILD.gn | 2 +- - .../rust/autocxx_parser/v0_22/BUILD.gn | 2 +- - third_party/rust/bindgen/v0_60/BUILD.gn | 4 +- - third_party/rust/camino/v1/BUILD.gn | 2 +- - third_party/rust/cxx/v1/BUILD.gn | 2 +- - third_party/rust/cxx_gen/v0_7/BUILD.gn | 2 +- - third_party/rust/cxxbridge_cmd/v1/BUILD.gn | 4 +- - third_party/rust/cxxbridge_macro/v1/BUILD.gn | 2 +- - third_party/rust/fastrand/v1/BUILD.gn | 2 +- - third_party/rust/hashbrown/v0_11/BUILD.gn | 2 +- - third_party/rust/heck/v0_4/BUILD.gn | 2 +- - third_party/rust/indexmap/v1/BUILD.gn | 2 +- - third_party/rust/indoc/v1/BUILD.gn | 2 +- - third_party/rust/itoa/v0_4/BUILD.gn | 2 +- - third_party/rust/itoa/v1/BUILD.gn | 2 +- - third_party/rust/lazy_static/v1/BUILD.gn | 2 +- - third_party/rust/link_cplusplus/v1/BUILD.gn | 2 +- - third_party/rust/memchr/v2/BUILD.gn | 2 +- - third_party/rust/memoffset/v0_6/BUILD.gn | 2 +- - .../rust/minimal_lexical/v0_2/BUILD.gn | 2 +- - third_party/rust/miniz_oxide/v0_4/BUILD.gn | 2 +- - third_party/rust/moveit/v0_5/BUILD.gn | 2 +- - third_party/rust/once_cell/v1/BUILD.gn | 4 +- - third_party/rust/pathdiff/v0_2/BUILD.gn | 2 +- - .../rust/peeking_take_while/v0_1/BUILD.gn | 2 +- - third_party/rust/prettyplease/v0_1/BUILD.gn | 2 +- - third_party/rust/proc_macro2/v1/BUILD.gn | 2 +- - third_party/rust/quote/v1/BUILD.gn | 2 +- - third_party/rust/remove_dir_all/v0_5/BUILD.gn | 2 +- - third_party/rust/rstest/v0_12/BUILD.gn | 2 +- - .../v0_12/crate/docs/head/COPYRIGHT.txt | 2 +- - third_party/rust/rustc_version/v0_4/BUILD.gn | 2 +- - third_party/rust/rustversion/v1/BUILD.gn | 2 +- - third_party/rust/ryu/v1/BUILD.gn | 2 +- - third_party/rust/semver/v1/BUILD.gn | 4 +- - third_party/rust/serde/v1/BUILD.gn | 2 +- - third_party/rust/serde_derive/v1/BUILD.gn | 2 +- - third_party/rust/serde_json/v1/BUILD.gn | 2 +- - .../rust/serde_json_lenient/v0_1/BUILD.gn | 2 +- - third_party/rust/shlex/v1/BUILD.gn | 2 +- - third_party/rust/strum_macros/v0_24/BUILD.gn | 2 +- - third_party/rust/syn/v1/BUILD.gn | 4 +- - third_party/rust/tempfile/v3/BUILD.gn | 4 +- - third_party/rust/termcolor/v1/BUILD.gn | 2 +- - third_party/rust/thiserror/v1/BUILD.gn | 2 +- - third_party/rust/thiserror_impl/v1/BUILD.gn | 2 +- - third_party/rust/unicode_ident/v1/BUILD.gn | 2 +- - .../rust/unicode_linebreak/v0_1/BUILD.gn | 2 +- - third_party/rust/unicode_width/v0_1/BUILD.gn | 2 +- - third_party/rust/unindent/v0_1/BUILD.gn | 2 +- - third_party/rust/which/v4/BUILD.gn | 2 +- - third_party/rust/winapi/v0_3/BUILD.gn | 2 +- - third_party/rust/winapi_util/v0_1/BUILD.gn | 2 +- - .../tensorflow_text/core/ops/rouge_l_op.cc | 2 +- - .../metrics/text_similarity_metric_ops.py | 2 +- - .../updater/chrome_mac_universal/3pp/fetch.py | 2 +- - .../chrome_mac_universal_prod/3pp/fetch.py | 2 +- - .../updater/chrome_win_x86/3pp/fetch.py | 2 +- - .../updater/chrome_win_x86_64/3pp/fetch.py | 2 +- - .../updater/chromium_mac_amd64/3pp/fetch.py | 6 +- - .../updater/chromium_mac_arm64/3pp/fetch.py | 6 +- - .../updater/chromium_win_x86/3pp/fetch.py | 6 +- - .../updater/chromium_win_x86_64/3pp/fetch.py | 6 +- - third_party/wpt_tools/roll_wpt.py | 8 +- - third_party/wpt_tools/wpt/tools/lint/rules.py | 4 +- - .../tools/third_party/pywebsocket3/setup.py | 2 +- - .../wpt/tools/webdriver/webdriver/client.py | 2 +- - .../wpt_tools/wpt/tools/wpt/android.py | 2 +- - .../wpt_tools/wpt/tools/wpt/browser.py | 32 +- - third_party/wpt_tools/wpt/tools/wpt/run.py | 4 +- - .../wpt/tools/wptrunner/requirements.txt | 2 +- - .../wpt_tools/wpt/tools/wptrunner/setup.py | 2 +- - .../executors/executorcontentshell.py | 2 +- - .../wptrunner/executors/executormarionette.py | 14 +- - .../wptrunner/formatters/chromium.py | 2 +- - third_party/xnnpack/generate_build_gn.py | 2 +- - .../codereview/download_issue.py | 6 +- - tools/accessibility/codereview/mph.py | 2 +- - tools/accessibility/inspect/ax_utils.cc | 2 +- - tools/accessibility/nvda/README.txt | 2 +- - tools/android/checkxmlstyle/checkxmlstyle.py | 8 +- - .../scripts/customtabs_benchmark.py | 2 +- - .../scripts/run_benchmark.py | 2 +- - .../scripts/sample_config.json | 4 +- - .../js/src/class_view.html | 2 +- - .../dependency_analysis/js/src/load_graph.js | 2 +- - .../js/src/package_view.html | 2 +- - .../dependency_analysis/upload_html_viewer.py | 2 +- - .../convenience/touch_resources.py | 2 +- - tools/android/sdk_updater/update_sdk.py | 2 +- - tools/binary_size/diagnose_bloat.py | 4 +- - tools/binary_size/libsupersize/console.py | 2 +- - .../libsupersize/viewer/static/auth-consts.js | 8 +- - .../libsupersize/viewer/static/index.html | 2 +- - .../libsupersize/viewer/static/index.js | 2 +- - .../viewer/static/tree-worker-wasm.js | 4 +- - .../libsupersize/viewer/static/viewer.html | 8 +- - .../libsupersize/viewer/upload_html_viewer.py | 2 +- - tools/binary_size/libsupersize/zip_util.py | 2 +- - .../binary_size/trybot_commit_size_checker.py | 4 +- - tools/bisect-builds.py | 30 +- - tools/bisect_repackage/bisect_repackage.py | 4 +- - .../bisect_repackage_utils.py | 4 +- - tools/boilerplate.py | 2 +- - tools/browserbench-webdriver/browserbench.py | 2 +- - tools/captured_sites/refresh.py | 2 +- - tools/check_git_config.py | 24 +- - tools/checklicenses/checklicenses.py | 2 +- - tools/checkteamtags/checkteamtags.py | 8 +- - tools/checkteamtags/extract_components.py | 2 +- - .../open_my_editor/ext/background.js | 26 +- - .../open_my_editor/ext/manifest.json | 6 +- - .../manual-fields-to-ignore.txt | 2 +- - tools/clang/scripts/build.py | 12 +- - tools/clang/scripts/include-analysis.html | 12 +- - tools/clang/scripts/package.py | 2 +- - tools/clang/scripts/update.py | 2 +- - tools/code_coverage/coverage.py | 8 +- - tools/cr/cr/base/android.py | 2 +- - tools/cr/main.py | 2 +- - tools/crates/gnrt/test_metadata.json | 2 +- - tools/crbug/crbug.js | 8 +- - tools/crbug/pinpoint.js | 4 +- - tools/crbug/user-activity.js | 4 +- - .../cygprofile/orderfile_generator_backend.py | 4 +- - tools/determinism/compare_build_artifacts.py | 2 +- - tools/download_optimization_profile.py | 2 +- - .../dromaeo_benchmark_runner.py | 10 +- - tools/emacs/trybot-mac.txt | 232 +- - tools/flags/list_flags.py | 6 +- - tools/generate_stubs/generate_stubs.py | 2 +- - tools/get_asan_chrome/get_asan_chrome.py | 6 +- - tools/git/suggest_owners.py | 6 +- - tools/gn/bootstrap/bootstrap.py | 2 +- - tools/gn/roll_gn.py | 2 +- - tools/grit/grit/format/rc.py | 2 +- - tools/grit/grit/tool/android2grd.py | 4 +- - tools/grit/grit/tool/resize.py | 2 +- - tools/grit/pak_util.py | 2 +- - tools/grit/setup.py | 4 +- - .../js_externs_generator.py | 4 +- - tools/json_schema_compiler/js_util.py | 2 +- - tools/json_schema_compiler/preview.py | 2 +- - tools/licenses.py | 38 +- - tools/mac/download_symbols.py | 4 +- - tools/mac/power/scenarios.py | 10 +- - tools/mb/mb.py | 6 +- - 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 +- - tools/metrics/common/models.py | 2 +- - tools/metrics/histograms/expand_owners.py | 12 +- - .../metrics/histograms/extract_histograms.py | 8 +- - ...ram_configuration_model_test_histograms.py | 68 +- - tools/metrics/histograms/split_xml.py | 4 +- - tools/metrics/md2xml.py | 4 +- - tools/metrics/structured/model.py | 6 +- - tools/metrics/ukm/xml_validations.py | 4 +- - tools/nocompile_driver.py | 2 +- - tools/omahaproxy.py | 2 +- - tools/perfbot-analysis/builder.js | 4 +- - tools/perfbot-analysis/bulk-download.js | 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/tracing/rename_breakpad.py | 2 +- - .../sample_traffic_annotation.cc | 2 +- - .../scripts/auditor/auditor.py | 2 +- - .../scripts/auditor/util.py | 2 +- - .../scripts/update_annotations_doc.py | 4 +- - .../scripts/update_annotations_sheet.py | 6 +- - tools/usb_gadget/gadget.py | 2 +- - tools/usb_gadget/msos20_descriptors.py | 2 +- - tools/variations/bisect_variations.py | 2 +- - tools/visual_debugger/app.html | 4 +- - 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 +- - tools/win/RetrieveSymbols/RetrieveSymbols.cpp | 2 +- - tools/win/sizeviewer/template.html | 2 +- - .../chromevox/background/background.js | 2 +- - .../chromevox/background/prefs.js | 4 +- - .../chromevox/injected/history.js | 2 +- - .../cvox2/background/background.js | 14 +- - .../cvox2/background/panel.html | 2 +- - .../extensions/searchvox/loader.js | 2 +- - .../chromevoxclassic/manifest.json.jinja2 | 2 +- - .../color_contrast_companion/help.html | 2 +- - .../accessibility_extensions_strings.grd | 2 +- - ui/base/clipboard/clipboard_test_template.h | 10 +- - .../constrained_window_animation.mm | 2 +- - ui/base/cocoa/tool_tip_base_view.mm | 2 +- - .../cocoa/underlay_opengl_hosting_window.mm | 2 +- - ui/base/ime/character_composer_sequences.txt | 2 +- - .../keycodes/keyboard_code_conversion_mac.mm | 2 +- - .../file_manager/common/js/mock_chrome.js | 6 +- - .../foreground/elements/icons.html | 2 +- - .../foreground/js/ui/file_table.js | 2 +- - ui/file_manager/image_loader/piex/Makefile | 2 +- - ui/ozone/ozone.gni | 2 +- - ui/resources/README.txt | 4 +- - ui/resources/resource_check/ico_files.py | 4 +- - .../resource_check/resource_scale_factors.py | 4 +- - ui/strings/ui_strings.grd | 4 +- - ui/views/examples/webview_example.cc | 2 +- - .../cr_components/app_management/icons.html | 2 +- - .../help_bubble/help_bubble_icons.html | 2 +- - ui/webui/resources/cr_elements/icons.html | 4 +- - ...weblayer_security_blocking_page_factory.cc | 2 +- - weblayer/shell/app/shell_main_params.cc | 2 +- - 1456 files changed, 4904 insertions(+), 4904 deletions(-) - -diff --git a/android_webview/tools/cts_config/webview_cts_gcs_path.json b/android_webview/tools/cts_config/webview_cts_gcs_path.json ---- a/android_webview/tools/cts_config/webview_cts_gcs_path.json -+++ b/android_webview/tools/cts_config/webview_cts_gcs_path.json -@@ -6,12 +6,12 @@ - "arch": { - "arm64": { - "filename": "arm64/M/android-cts-arm64-6.0_r32.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-6.0_r32-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-6.0_r32-linux_x86-arm.zip", - "unzip_dir": "arm64/M/6.0_r32/" - }, - "x86": { - "filename": "x86/M/android-cts-x86-6.0_r32.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-6.0_r32-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-6.0_r32-linux_x86-x86.zip", - "unzip_dir": "x86/M/6.0_r32/" - } - }, -@@ -131,12 +131,12 @@ - "arch": { - "arm64": { - "filename": "arm64/N/android-cts-arm64-7.0_r33.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-7.0_r33-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-7.0_r33-linux_x86-arm.zip", - "unzip_dir": "arm64/N/7.0_r33/" - }, - "x86": { - "filename": "x86/N/android-cts-x86-7.0_r33.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-7.0_r33-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-7.0_r33-linux_x86-x86.zip", - "unzip_dir": "x86/N/7.0_r33/" - } - }, -@@ -197,12 +197,12 @@ - "arch": { - "arm64": { - "filename": "arm64/O/android-cts-arm64-8.0_r26.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-8.0_R26-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-8.0_R26-linux_x86-arm.zip", - "unzip_dir": "arm64/O/8.0_r26" - }, - "x86": { - "filename": "x86/O/android-cts-x86-8.0_r26.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-8.0_R26-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-8.0_R26-linux_x86-x86.zip", - "unzip_dir": "x86/O/8.0_r26" - } - }, -@@ -256,12 +256,12 @@ - "arch": { - "arm64": { - "filename": "arm64/P/android-cts-arm64-9.0_r20.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-9.0_r20-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-9.0_r20-linux_x86-arm.zip", - "unzip_dir": "arm64/P/9.0_r20" - }, - "x86": { - "filename": "x86/P/android-cts-x86-9.0_r20.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-9.0_r20-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-9.0_r20-linux_x86-x86.zip", - "unzip_dir": "x86/P/9.0_r20" - } - }, -@@ -326,12 +326,12 @@ - "arch": { - "arm64": { - "filename": "arm64/Q/android-cts-arm64-10_r13.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-10_r13-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-10_r13-linux_x86-arm.zip", - "unzip_dir": "arm64/Q/10_r13" - }, - "x86": { - "filename": "x86/Q/android-cts-x86-10_r13.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-10_r13-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-10_r13-linux_x86-x86.zip", - "unzip_dir": "x86/Q/10_r13" - } - }, -@@ -419,12 +419,12 @@ - "arch": { - "arm64": { - "filename": "arm64/R/android-cts-arm64-11_r9.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-11_r9-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-11_r9-linux_x86-arm.zip", - "unzip_dir": "arm64/R/11_r9/" - }, - "x86": { - "filename": "x86/R/android-cts-x86-11_r9.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-11_r9-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-11_r9-linux_x86-x86.zip", - "unzip_dir": "x86/R/11_r9/" - } - }, -@@ -537,12 +537,12 @@ - "arch": { - "arm64": { - "filename": "arm64/S/android-cts-arm64-12_r5.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-12_r5-linux_x86-arm.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-12_r5-linux_x86-arm.zip", - "unzip_dir": "arm64/S/12_r5/" - }, - "x86": { - "filename": "x86/S/android-cts-x86-12_r5.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-12_r5-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-12_r5-linux_x86-x86.zip", - "unzip_dir": "x86/S/12_r5/" - } - }, -@@ -670,7 +670,7 @@ - "arch": { - "x86": { - "filename": "x86/T/android-cts-x86-13_r1.zip", -- "_origin": "https://dl.google.com/dl/android/cts/android-cts-13_r1-linux_x86-x86.zip", -+ "_origin": "https://dl.9oo91e.qjz9zk/dl/android/cts/android-cts-13_r1-linux_x86-x86.zip", - "unzip_dir": "x86/T/13_r1/" - } - }, -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 -@@ -62,7 +62,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', -@@ -91,7 +91,7 @@ https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/net-d - raise device_errors.MultipleDevicesError(devices) - - if device.build_type == 'user': -- device_setup_url = ('https://chromium.googlesource.com/chromium/src/+/HEAD/' -+ device_setup_url = ('https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/' - 'android_webview/docs/device-setup.md') - raise RuntimeError('It appears your device is a "user" build. We only ' - 'support capturing netlog on userdebug/eng builds. See ' -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 -@@ -93,7 +93,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/+/' - 'main/docs/android_emulator.md#writable-system-partition' - '\n') - raise -diff --git a/android_webview/tools/update_cts.py b/android_webview/tools/update_cts.py ---- a/android_webview/tools/update_cts.py -+++ b/android_webview/tools/update_cts.py -@@ -27,7 +27,7 @@ import cts_utils - - - def _query_git_for_cts_tags(): -- cts_git_url = 'https://android.googlesource.com/platform/cts/' -+ cts_git_url = 'https://android.9oo91esource.qjz9zk/platform/cts/' - - tags = cmd_helper.GetCmdOutput(['git', 'ls-remote', '--tags', - cts_git_url]).splitlines() -@@ -97,7 +97,7 @@ class UpdateCTS: - Prereqs: - - Update the tools/cts_config/webview_cts_gcs_path.json file with origin, - and filenames for each platform. See: -- https://source.android.com/compatibility/cts/downloads for the latest -+ https://source.8n6r01d.qjz9zk/compatibility/cts/downloads for the latest - versions. - - Performs the following tasks to simplify the CTS test update process: -@@ -410,7 +410,7 @@ class UpdateCTS: - - DESC = """Updates the WebView CTS tests to a new version. - --See https://source.android.com/compatibility/cts/downloads for the latest -+See https://source.8n6r01d.qjz9zk/compatibility/cts/downloads for the latest - versions. - - Please create a new branch, then edit the -diff --git a/ash/accelerators/accelerator_notifications.cc b/ash/accelerators/accelerator_notifications.cc ---- a/ash/accelerators/accelerator_notifications.cc -+++ b/ash/accelerators/accelerator_notifications.cc -@@ -162,7 +162,7 @@ void RemoveNotification(const std::string& notification_id) { - - // Shortcut help URL. - const char kKeyboardShortcutHelpPageUrl[] = -- "https://support.google.com/chromebook/answer/183101"; -+ "https://support.9oo91e.qjz9zk/chromebook/answer/183101"; - - // Accessibility notification ids. - const char kDockedMagnifierToggleAccelNotificationId[] = -diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd ---- a/ash/ash_strings.grd -+++ b/ash/ash_strings.grd -@@ -721,7 +721,7 @@ This file contains the strings for ash. - other {Update device within # seconds}} - - -- $1google.com requires you to update your $2Chromebook before the deadline -+ $19oo91e.qjz9zk requires you to update your $2Chromebook before the deadline - - - -@@ -746,7 +746,7 @@ This file contains the strings for ash. - other {Change device to previous version within # seconds}} - - -- $1google.com requires you to roll back your $2Chromebook. Your device will reset and all data will be deleted. -+ $19oo91e.qjz9zk requires you to roll back your $2Chromebook. Your device will reset and all data will be deleted. - - - -@@ -756,10 +756,10 @@ This file contains the strings for ash. - Update overdue - - -- $1google.com recommends that you update your $2Chromebook -+ $19oo91e.qjz9zk recommends that you update your $2Chromebook - - -- $1google.com requires you to update your $2Chromebook immediately -+ $19oo91e.qjz9zk requires you to update your $2Chromebook immediately - - - -@@ -802,10 +802,10 @@ This file contains the strings for ash. - This update requires powerwashing your $1Chromebook. All data will be deleted. Learn more about the latest $2ChromiumOS update. - - -- $1google.com is rolling back your $2Chromebook. Your device will reset and all data will be deleted. -+ $19oo91e.qjz9zk is rolling back your $2Chromebook. Your device will reset and all data will be deleted. - - -- $1google.com requires you to roll back your $2Chromebook. Your device will reset and all data will be deleted. -+ $19oo91e.qjz9zk requires you to roll back your $2Chromebook. Your device will reset and all data will be deleted. - - - $1Learn more about the latest ChromiumOS update. This Chromebook needs to restart to apply an update. This can take up to 1 minute. -@@ -899,7 +899,7 @@ This file contains the strings for ash. - - -- $1google.com has $2activated $3Full-screen magnifier. -+ $19oo91e.qjz9zk has $2activated $3Full-screen magnifier. - - -@@ -1303,7 +1303,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 -@@ -1617,7 +1617,7 @@ This file contains the strings for ash. - Tap to configure - - -- Browser tab $11 of $22. $3Google, $4https://google.com -+ Browser tab $11 of $22. $3Google, $4https://9oo91e.qjz9zk - - - Connected devices settings -@@ -3726,7 +3726,7 @@ Connect your device to power. - Save your $1Pixel Buds - - -- Save your $1Pixel Buds to $2alisha123@gmail.com for faster pairing to your other devices -+ Save your $1Pixel Buds to $2alisha123@9ma1l.qjz9zk for faster pairing to your other devices - - - Settings -@@ -3759,10 +3759,10 @@ Connect your device to power. - Connect $1Pixel Buds to this Chromebook - - -- Your $1Pixel Buds will appear on devices linked with $2alisha123@gmail.com -+ Your $1Pixel Buds will appear on devices linked with $2alisha123@9ma1l.qjz9zk - - -- Connect $1Pixel Buds previously saved to $2alisha123@gmail.com -+ Connect $1Pixel Buds previously saved to $2alisha123@9ma1l.qjz9zk - - - Cancel -@@ -3888,7 +3888,7 @@ Connect your device to power. - 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 -@@ -4436,7 +4436,7 @@ Here are some things you can try to get started. - 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_setup_controller.cc b/ash/assistant/assistant_setup_controller.cc ---- a/ash/assistant/assistant_setup_controller.cc -+++ b/ash/assistant/assistant_setup_controller.cc -@@ -16,7 +16,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 -@@ -386,21 +386,21 @@ absl::optional GetAssistantUrl( - case DeepLinkType::kLists: { - const auto& type_param = GetDeepLinkParam(params, DeepLinkParam::kType); - top_level_url = -- std::string("https://assistant.google.com/lists/mainview"); -+ std::string("https://assistant.9oo91e.qjz9zk/lists/mainview"); - by_id_url = (type_param && type_param.value().compare("shopping") == 0) -- ? std::string("https://shoppinglist.google.com/lists/") -- : std::string("https://assistant.google.com/lists/list/"); -+ ? std::string("https://shoppinglist.9oo91e.qjz9zk/lists/") -+ : 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(); -@@ -451,7 +451,7 @@ absl::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 absl::nullopt; -diff --git a/ash/components/phonehub/url_constants.cc b/ash/components/phonehub/url_constants.cc ---- a/ash/components/phonehub/url_constants.cc -+++ b/ash/components/phonehub/url_constants.cc -@@ -8,7 +8,7 @@ namespace ash { - namespace phonehub { - - const char kPhoneHubLearnMoreLink[] = -- "https://support.google.com/chromebook?p=phone_hub"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=phone_hub"; - - } // namespace phonehub - } // namespace ash -diff --git a/ash/constants/url_constants.cc b/ash/constants/url_constants.cc ---- a/ash/constants/url_constants.cc -+++ b/ash/constants/url_constants.cc -@@ -7,12 +7,12 @@ - namespace chrome { - - const char kAndroidMessagesLearnMoreURL[] = -- "https://support.google.com/chromebook/?p=multi_device_messages"; -+ "https://support.9oo91e.qjz9zk/chromebook/?p=multi_device_messages"; - - const char kLinuxExportImportHelpURL[] = -- "https://support.google.com/chromebook?p=linux_backup_restore"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=linux_backup_restore"; - - const char kMultiDeviceLearnMoreURL[] = -- "https://support.google.com/chromebook/?p=multi_device"; -+ "https://support.9oo91e.qjz9zk/chromebook/?p=multi_device"; - - } // namespace chrome -diff --git a/ash/quick_pair/repository/fake_device_metadata_http_fetcher.cc b/ash/quick_pair/repository/fake_device_metadata_http_fetcher.cc ---- a/ash/quick_pair/repository/fake_device_metadata_http_fetcher.cc -+++ b/ash/quick_pair/repository/fake_device_metadata_http_fetcher.cc -@@ -57,7 +57,7 @@ constexpr char kValidResponseEncoded[] = - "V0IHVwIHlvdXIgR29vZ2xlIEFzc2lzdGFudA=="; - constexpr char kInvalidResponse[] = "404 error"; - constexpr char kValidUrl[] = -- "https://nearbydevices-pa.googleapis.com/v1/device/2748"; -+ "https://nearbydevices-pa.9oo91eapis.qjz9zk/v1/device/2748"; - - } // namespace - -diff --git a/ash/quick_pair/repository/fast_pair/device_metadata_fetcher.cc b/ash/quick_pair/repository/fast_pair/device_metadata_fetcher.cc ---- a/ash/quick_pair/repository/fast_pair/device_metadata_fetcher.cc -+++ b/ash/quick_pair/repository/fast_pair/device_metadata_fetcher.cc -@@ -18,7 +18,7 @@ - namespace { - - const char kGetObservedDeviceUrl[] = -- "https://nearbydevices-pa.googleapis.com/v1/device/" -+ "https://nearbydevices-pa.9oo91eapis.qjz9zk/v1/device/" - "%d?key=%s&mode=MODE_RELEASE&alt=proto"; - - const net::NetworkTrafficAnnotationTag kTrafficAnnotation = -diff --git a/ash/quick_pair/repository/fast_pair/footprints_fetcher_impl.cc b/ash/quick_pair/repository/fast_pair/footprints_fetcher_impl.cc ---- a/ash/quick_pair/repository/fast_pair/footprints_fetcher_impl.cc -+++ b/ash/quick_pair/repository/fast_pair/footprints_fetcher_impl.cc -@@ -24,11 +24,11 @@ namespace quick_pair { - namespace { - - const char kUserDevicesUrl[] = -- "https://nearbydevices-pa.googleapis.com/v1/user/devices" -+ "https://nearbydevices-pa.9oo91eapis.qjz9zk/v1/user/devices" - "?key=%s&alt=proto"; - - const char kUserDeleteDeviceUrl[] = -- "https://nearbydevices-pa.googleapis.com/v1/user/device/%s" -+ "https://nearbydevices-pa.9oo91eapis.qjz9zk/v1/user/device/%s" - "?key=%s&alt=proto"; - - const net::PartialNetworkTrafficAnnotationTag kTrafficAnnotation = -diff --git a/ash/quick_pair/ui/fast_pair/fast_pair_presenter_impl.cc b/ash/quick_pair/ui/fast_pair/fast_pair_presenter_impl.cc ---- a/ash/quick_pair/ui/fast_pair/fast_pair_presenter_impl.cc -+++ b/ash/quick_pair/ui/fast_pair/fast_pair_presenter_impl.cc -@@ -38,9 +38,9 @@ - namespace { - - const char kDiscoveryLearnMoreLink[] = -- "https://support.google.com/chromebook?p=fast_pair_m101"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=fast_pair_m101"; - const char kAssociateAccountLearnMoreLink[] = -- "https://support.google.com/chromebook?p=bluetooth_pairing_m101"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=bluetooth_pairing_m101"; - - bool ShouldShowUserEmail(ash::LoginStatus status) { - switch (status) { -diff --git a/ash/services/device_sync/cryptauth_client_impl.cc b/ash/services/device_sync/cryptauth_client_impl.cc ---- a/ash/services/device_sync/cryptauth_client_impl.cc -+++ b/ash/services/device_sync/cryptauth_client_impl.cc -@@ -29,7 +29,7 @@ namespace { - // -------------------- CryptAuth v1 Endpoints -------------------- - - // Default URL of Google APIs endpoint hosting CryptAuth v1. --const char kDefaultCryptAuthV1HTTPHost[] = "https://www.googleapis.com"; -+const char kDefaultCryptAuthV1HTTPHost[] = "https://www.9oo91eapis.qjz9zk"; - - // URL subpath hosting the CryptAuth v1 service. - const char kCryptAuthV1Path[] = "cryptauth/v1/"; -@@ -49,11 +49,11 @@ const char kFinishEnrollmentPath[] = "enrollment/finish"; - - // Default URL of Google APIs endpoint hosting CryptAuth v2 Enrollment. - const char kDefaultCryptAuthV2EnrollmentHTTPHost[] = -- "https://cryptauthenrollment.googleapis.com"; -+ "https://cryptauthenrollment.9oo91eapis.qjz9zk"; - - // Default URL of Google APIs endpoint hosting CryptAuth v2 DeviceSync. - const char kDefaultCryptAuthV2DeviceSyncHTTPHost[] = -- "https://cryptauthdevicesync.googleapis.com"; -+ "https://cryptauthdevicesync.9oo91eapis.qjz9zk"; - - // URL subpaths for each CryptAuth v2 API endpoint. - // Note: Although "v1" is part of the path names, these are in fact v2 API -@@ -69,7 +69,7 @@ const char kBatchSetFeatureStatusesPath[] = "/v1:batchSetFeatureStatuses"; - const char kGetDevicesActivityStatusPath[] = "/v1:getDevicesActivityStatus"; - - const char kCryptAuthOAuth2Scope[] = -- "https://www.googleapis.com/auth/cryptauth"; -+ "https://www.9oo91eapis.qjz9zk/auth/cryptauth"; - - // Creates the full CryptAuth v1 URL for endpoint to the API with - // |request_path|. -diff --git a/ash/services/ime/constants.cc b/ash/services/ime/constants.cc ---- a/ash/services/ime/constants.cc -+++ b/ash/services/ime/constants.cc -@@ -36,7 +36,7 @@ const base::FilePath::CharType kLanguageDataDirName[] = - FILE_PATH_LITERAL("data"); - #endif - --const char kGoogleKeyboardDownloadDomain[] = "dl.google.com"; -+const char kGoogleKeyboardDownloadDomain[] = "dl.9oo91e.qjz9zk"; - - } // namespace ime - } // namespace ash -diff --git a/ash/system/eche/eche_tray.cc b/ash/system/eche/eche_tray.cc ---- a/ash/system/eche/eche_tray.cc -+++ b/ash/system/eche/eche_tray.cc -@@ -262,7 +262,7 @@ void EcheTray::CloseBubble() { - - void EcheTray::ShowBubble() { - #ifdef FAKE_BUBBLE_FOR_DEBUG -- LoadBubble(GURL("http://google.com"), std::move(gfx::Image()), -+ LoadBubble(GURL("http://9oo91e.qjz9zk"), std::move(gfx::Image()), - u"visible_name"); - return; - #endif -diff --git a/ash/system/pcie_peripheral/pcie_peripheral_notification_controller.cc b/ash/system/pcie_peripheral/pcie_peripheral_notification_controller.cc ---- a/ash/system/pcie_peripheral/pcie_peripheral_notification_controller.cc -+++ b/ash/system/pcie_peripheral/pcie_peripheral_notification_controller.cc -@@ -32,7 +32,7 @@ namespace ash { - namespace { - const char kNotifierPciePeripheral[] = "ash.pcie_peripheral"; - const char kLearnMoreHelpUrl[] = -- "https://www.support.google.com/chromebook?p=connect_thblt_usb4_accy"; -+ "https://www.support.9oo91e.qjz9zk/chromebook?p=connect_thblt_usb4_accy"; - const int kNotificationsClicksThreshold = 3; - - const char kPciePeripheralLimitedPerformanceNotificationId[] = -diff --git a/ash/system/usb_peripheral/usb_peripheral_notification_controller.cc b/ash/system/usb_peripheral/usb_peripheral_notification_controller.cc ---- a/ash/system/usb_peripheral/usb_peripheral_notification_controller.cc -+++ b/ash/system/usb_peripheral/usb_peripheral_notification_controller.cc -@@ -37,9 +37,9 @@ const char kUsbPeripheralInvalidTBTCableNotificationId[] = - const char kUsbPeripheralSpeedLimitingCableNotificationId[] = - "cros_usb_peripheral_speed_limiting_cable_notification_id"; - const char kNotificationDisplayLandingPageUrl[] = -- "https://support.google.com/chromebook?p=cable_notification"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=cable_notification"; - const char kNotificationDeviceLandingPageUrl[] = -- "https://support.google.com/chromebook?p=cable_notification_2"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=cable_notification_2"; - - bool GetCableSpeedNotificationShownPref() { - PrefService* prefs = -diff --git a/ash/wallpaper/test_wallpaper_controller_client.cc b/ash/wallpaper/test_wallpaper_controller_client.cc ---- a/ash/wallpaper/test_wallpaper_controller_client.cc -+++ b/ash/wallpaper/test_wallpaper_controller_client.cc -@@ -111,7 +111,7 @@ void TestWallpaperControllerClient::FetchGooglePhotosPhoto( - std::move(callback).Run( - personalization_app::mojom::GooglePhotosPhoto::New( - id, "dedup_key", "test_name", base::TimeFormatFriendlyDate(time), -- GURL("https://google.com/picture.png"), "home"), -+ GURL("https://9oo91e.qjz9zk/picture.png"), "home"), - /*success=*/true); - } - } -diff --git a/ash/webui/camera_app_ui/camera_app_untrusted_ui.cc b/ash/webui/camera_app_ui/camera_app_untrusted_ui.cc ---- a/ash/webui/camera_app_ui/camera_app_untrusted_ui.cc -+++ b/ash/webui/camera_app_ui/camera_app_untrusted_ui.cc -@@ -27,7 +27,7 @@ content::WebUIDataSource* CreateUntrustedCameraAppUIHTMLSource() { - - untrusted_source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::ConnectSrc, -- std::string("connect-src http://www.google-analytics.com/ 'self';")); -+ std::string("connect-src http://www.9oo91e-analytics.qjz9zk/ 'self';")); - untrusted_source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::WorkerSrc, - std::string("worker-src 'self';")); -diff --git a/ash/webui/camera_app_ui/resources/js/lib/analytics.js b/ash/webui/camera_app_ui/resources/js/lib/analytics.js ---- a/ash/webui/camera_app_ui/resources/js/lib/analytics.js -+++ b/ash/webui/camera_app_ui/resources/js/lib/analytics.js -@@ -27,14 +27,14 @@ - K(b).replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")+"=([^&#]*)"))&&2==a.length?a[1]:""},xa=function(){var a=""+M.location.hostname;return 0==a.indexOf("www.")?a.substring(4):a},de=function(a,b){var c=a.indexOf(b);if(5==c||6==c)if(a=a.charAt(c+b.length),"/"==a||"?"==a||""==a||":"==a)return!0;return!1},ya=function(a,b){var c=M.referrer;if(/^(https?|android-app):\/\//i.test(c)){if(a)return c;a="//"+M.location.hostname;if(!de(c,a))return b&&(b=a.replace(/\./g,"-")+".cdn.ampproject.org",de(c,b))?void 0: - c}},za=function(a,b){if(1==b.length&&null!=b[0]&&"object"===typeof b[0])return b[0];for(var c={},d=Math.min(a.length+1,b.length),e=0;e=b.length)wc(a,b,c);else if(8192>=b.length)x(a,b,c)||wd(a,b,c)||wc(a,b,c);else throw ge("len",b.length),new Da(b.length);},pe=function(a,b,c,d){d=d||ua;wd(a+"?"+b,"",d,c)},wc=function(a,b,c){var d=ta(a+"?"+b);d.onload=d.onerror=function(){d.onload=null;d.onerror=null;c()}},wd=function(a,b,c, -+ c.indexOf("xn--")){c="";break b}(c=c.match(/(.*)\.cdn\.ampproject\.org\/?$/))&&2==c.length&&(d=c[1].replace(/-/g,".").replace(/\.\./g,"-"))}c=d?d.replace(Ue,""):""}(d=b===c)||(c="."+c,d=b.substring(b.length-c.length,b.length)===c);if(d){b=!0;break a}else J(78)}b=!1}return b&&!1!==a};var bd=function(a){return(a?"https:":Ba||"https:"==M.location.protocol?"https:":"http:")+"//www.9oo91e-analytics.qjz9zk"},Da=function(a){this.name="len";this.message=a+"-8192"},ba=function(a,b,c){c=c||ua;if(2036>=b.length)wc(a,b,c);else if(8192>=b.length)x(a,b,c)||wd(a,b,c)||wc(a,b,c);else throw ge("len",b.length),new Da(b.length);},pe=function(a,b,c,d){d=d||ua;wd(a+"?"+b,"",d,c)},wc=function(a,b,c){var d=ta(a+"?"+b);d.onload=d.onerror=function(){d.onload=null;d.onerror=null;c()}},wd=function(a,b,c, - d){var e=O.XMLHttpRequest;if(!e)return!1;var g=new e;if(!("withCredentials"in g))return!1;a=a.replace(/^http:/,"https:");g.open("POST",a,!0);g.withCredentials=!0;g.setRequestHeader("Content-Type","text/plain");g.onreadystatechange=function(){if(4==g.readyState){if(d)try{var ca=g.responseText;if(1>ca.length)ge("xhr","ver","0"),c();else if("1"!=ca.charAt(0))ge("xhr","ver",String(ca.length)),c();else if(3=100*R(a,Ka))throw"abort";}function Ma(a){if(G(P(a,Na)))throw"abort";}function Oa(){var a=M.location.protocol;if("http:"!=a&&"https:"!=a)throw"abort";} - function Pa(a){try{O.navigator.sendBeacon?J(42):O.XMLHttpRequest&&"withCredentials"in new O.XMLHttpRequest&&J(40)}catch(c){}a.set(ld,Td(a),!0);a.set(Ac,R(a,Ac)+1);var b=[];ue.map(function(c,d){d.F&&(c=a.get(c),void 0!=c&&c!=d.defaultValue&&("boolean"==typeof c&&(c*=1),b.push(d.F+"="+K(""+c))))});!1===a.get(xe)&&b.push("npa=1");b.push("z="+Bd());a.set(Ra,b.join("&"),!0)} - function Sa(a){var b=P(a,fa);!b&&a.get(Vd)&&(b="beacon");var c=P(a,gd),d=P(a,oe),e=c||(d?d+"/3":bd(!1)+"/collect");switch(P(a,ad)){case "d":e=c||(d?d+"/32":bd(!1)+"/j/collect");b=a.get(qe)||void 0;pe(e,P(a,Ra),b,a.Z(Ia));break;case "b":e=c||(d?d+"/31":bd(!1)+"/r/collect");default:b?(c=P(a,Ra),d=(d=a.Z(Ia))||ua,"image"==b?wc(e,c,d):"xhr"==b&&wd(e,c,d)||"beacon"==b&&x(e,c,d)||ba(e,c,d)):ba(e,P(a,Ra),a.Z(Ia))}e=P(a,Na);e=h(e);b=e.hitcount;e.hitcount=b?b+1:1;e=P(a,Na);delete h(e).pending_experiments; -@@ -61,9 +61,9 @@ - a[c].split("="),e=d[1];d=d[0];for(var g=b.childNodes||[],ca=!1,l=0;l\x3c/script>')):(e=M.createElement("script"),e.type="text/javascript",e.async=!0,e.src=ca,a&&e.setAttribute("nonce",a),ca=M.getElementsByTagName("script")[0],ca.parentNode.insertBefore(e,ca));$d.set(b,!0)}}}},v=function(a,b){var c=A.get(a)|| -- [];c.push(b);A.set(a,c)},C=function(a,b){Yd.set(a,b);b=A.get(a)||[];for(var c=0;ca.split("/")[0].indexOf(":")&&(a=ca+e[2].substring(0,e[2].lastIndexOf("/"))+"/"+a);c.href=a; - d=b(c);return{protocol:(c.protocol||"").toLowerCase(),host:d[0],port:d[1],path:d[2],query:c.search||"",url:a||""}};var Z={ga:function(){Z.f=[]}};Z.ga();Z.D=function(a){var b=Z.J.apply(Z,arguments);b=Z.f.concat(b);for(Z.f=[];0 - -- Link detected. $1www.google.com -+ Link detected. $1www.9oo91e.qjz9zk - - - Text detected. -diff --git a/ash/webui/common/resources/quick_unlock/pin_keyboard_icons.html b/ash/webui/common/resources/quick_unlock/pin_keyboard_icons.html ---- a/ash/webui/common/resources/quick_unlock/pin_keyboard_icons.html -+++ b/ash/webui/common/resources/quick_unlock/pin_keyboard_icons.html -@@ -3,7 +3,7 @@ - - - - -diff --git a/ash/webui/diagnostics_ui/diagnostics_ui.cc b/ash/webui/diagnostics_ui/diagnostics_ui.cc ---- a/ash/webui/diagnostics_ui/diagnostics_ui.cc -+++ b/ash/webui/diagnostics_ui/diagnostics_ui.cc -@@ -100,7 +100,7 @@ base::Value::Dict GetDataSourceUpdate() { - update.Set( - "keyboardTesterHelpLink", - base::Value(GetLinkLabel(IDS_INPUT_DIAGNOSTICS_KEYBOARD_TESTER_HELP_LINK, -- "https://support.google.com/chromebook/"))); -+ "https://support.9oo91e.qjz9zk/chromebook/"))); - return update; - } - -diff --git a/ash/webui/eche_app_ui/eche_alert_generator.cc b/ash/webui/eche_app_ui/eche_alert_generator.cc ---- a/ash/webui/eche_app_ui/eche_alert_generator.cc -+++ b/ash/webui/eche_app_ui/eche_alert_generator.cc -@@ -35,7 +35,7 @@ const char kEcheAppNetworkSettingNotifierId[] = - - // TODO(crbug.com/1241352): This should probably have a ?p= at - // some point. --const char kEcheAppLearnMoreUrl[] = "https://support.google.com/chromebook"; -+const char kEcheAppLearnMoreUrl[] = "https://support.9oo91e.qjz9zk/chromebook"; - - EcheAlertGenerator::EcheAlertGenerator(LaunchAppHelper* launch_app_helper, - PrefService* pref_service) -diff --git a/ash/webui/help_app_ui/help_app_kids_magazine_untrusted_ui.cc b/ash/webui/help_app_ui/help_app_kids_magazine_untrusted_ui.cc ---- a/ash/webui/help_app_ui/help_app_kids_magazine_untrusted_ui.cc -+++ b/ash/webui/help_app_ui/help_app_kids_magazine_untrusted_ui.cc -@@ -53,7 +53,7 @@ content::WebUIDataSource* CreateHelpAppKidsMagazineUntrustedDataSource() { - network::mojom::CSPDirectiveName::DefaultSrc, ""); - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::ScriptSrc, -- "script-src 'self' https://www.gstatic.com;"); -+ "script-src 'self' https://www.95tat1c.qjz9zk;"); - return source; - } - -diff --git a/ash/webui/media_app_ui/media_app_guest_ui.cc b/ash/webui/media_app_ui/media_app_guest_ui.cc ---- a/ash/webui/media_app_ui/media_app_guest_ui.cc -+++ b/ash/webui/media_app_ui/media_app_guest_ui.cc -@@ -166,7 +166,7 @@ content::WebUIDataSource* CreateMediaAppUntrustedDataSource( - // Allow calls to Maps reverse geocoding API for loading metadata. - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::ConnectSrc, -- "connect-src 'self' https://maps.googleapis.com/maps/api/geocode/json;"); -+ "connect-src 'self' https://maps.9oo91eapis.qjz9zk/maps/api/geocode/json;"); - - // Allow use of SharedArrayBuffer (required by the wasm). - source->OverrideCrossOriginOpenerPolicy("same-origin"); -diff --git a/ash/webui/os_feedback_ui/backend/help_content_provider.cc b/ash/webui/os_feedback_ui/backend/help_content_provider.cc ---- a/ash/webui/os_feedback_ui/backend/help_content_provider.cc -+++ b/ash/webui/os_feedback_ui/backend/help_content_provider.cc -@@ -39,9 +39,9 @@ using ::ash::os_feedback_ui::mojom::SearchResponse; - using ::ash::os_feedback_ui::mojom::SearchResponsePtr; - - constexpr char kHelpContentProviderUrl[] = -- "https://scone-pa.clients6.google.com/v1/search/list?key="; -+ "https://scone-pa.clients6.9oo91e.qjz9zk/v1/search/list?key="; - --constexpr char kGoogleSupportSiteUrl[] = "https://support.google.com"; -+constexpr char kGoogleSupportSiteUrl[] = "https://support.9oo91e.qjz9zk"; - - // Response with 5 items takes ~7KB. A loose upper bound of 64KB is chosen to - // avoid breaking the flow in case the response is longer. -diff --git a/ash/webui/os_feedback_ui/resources/confirmation_page.js b/ash/webui/os_feedback_ui/resources/confirmation_page.js ---- a/ash/webui/os_feedback_ui/resources/confirmation_page.js -+++ b/ash/webui/os_feedback_ui/resources/confirmation_page.js -@@ -147,7 +147,7 @@ export class ConfirmationPageElement extends ConfirmationPageElementBase { - case 'chromebookCommunity': - // If app locale is not available, default to en. - window.open( -- `https://support.google.com/chromebook/?hl=${ -+ `https://support.9oo91e.qjz9zk/chromebook/?hl=${ - this.i18n('language') || 'en'}#topic=3399709`, - '_blank'); - this.handleEmitMetrics_( -diff --git a/ash/webui/os_feedback_ui/resources/fake_data.js b/ash/webui/os_feedback_ui/resources/fake_data.js ---- a/ash/webui/os_feedback_ui/resources/fake_data.js -+++ b/ash/webui/os_feedback_ui/resources/fake_data.js -@@ -14,12 +14,12 @@ import {FeedbackContext, HelpContentList, HelpContentType, SearchRequest, Search - export const fakePopularHelpContentList = [ - { - title: stringToMojoString16('fake article'), -- url: {url: 'https://support.google.com/chromebook/?q=article'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=article'}, - contentType: HelpContentType.kArticle, - }, - { - title: stringToMojoString16('fake forum'), -- url: {url: 'https://support.google.com/chromebook/?q=forum'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=forum'}, - contentType: HelpContentType.kForum, - }, - ]; -@@ -28,29 +28,29 @@ export const fakePopularHelpContentList = [ - export const fakeHelpContentList = [ - { - title: stringToMojoString16('Fix connection problems'), -- url: {url: 'https://support.google.com/chromebook/?q=6318213'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=6318213'}, - contentType: HelpContentType.kArticle, - }, - { - title: stringToMojoString16( - 'Why won\'t my wireless mouse with a USB piece wor...?'), -- url: {url: 'https://support.google.com/chromebook/?q=123920509'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=123920509'}, - contentType: HelpContentType.kForum, - }, - { - title: stringToMojoString16('Wifi Issues - only on Chromebooks'), -- url: {url: 'https://support.google.com/chromebook/?q=114174470'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=114174470'}, - contentType: HelpContentType.kForum, - }, - { - title: stringToMojoString16('Network Connectivity Fault'), -- url: {url: 'https://support.google.com/chromebook/?q=131459420'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=131459420'}, - contentType: HelpContentType.kForum, - }, - { - title: stringToMojoString16( - 'Connected to WiFi but can\'t connect to the internet'), -- url: {url: 'https://support.google.com/chromebook/?q=22864239'}, -+ url: {url: 'https://support.9oo91e.qjz9zk/chromebook/?q=22864239'}, - contentType: HelpContentType.kUnknown, - }, - ]; -@@ -98,7 +98,7 @@ export const fakeEmptyFeedbackContext = { - - /** @type {!FeedbackContext} */ - export const fakeInternalUserFeedbackContext = { -- email: 'test.user@google.com', -+ email: 'test.user@9oo91e.qjz9zk', - pageUrl: {url: 'chrome://tab/'}, - isInternalAccount: true, - fromAssistant: true, -diff --git a/ash/webui/os_feedback_ui/resources/feedback_constants.js b/ash/webui/os_feedback_ui/resources/feedback_constants.js ---- a/ash/webui/os_feedback_ui/resources/feedback_constants.js -+++ b/ash/webui/os_feedback_ui/resources/feedback_constants.js -@@ -3,8 +3,8 @@ - // found in the LICENSE file. - - export const FEEDBACK_LEGAL_HELP_URL = -- 'https://support.google.com/legal/answer/3110420'; -+ 'https://support.9oo91e.qjz9zk/legal/answer/3110420'; - export const FEEDBACK_PRIVACY_POLICY_URL = -- 'https://policies.google.com/privacy'; -+ 'https://policies.9oo91e.qjz9zk/privacy'; - export const FEEDBACK_TERMS_OF_SERVICE_URL = -- 'https://policies.google.com/terms'; -+ 'https://policies.9oo91e.qjz9zk/terms'; -diff --git a/ash/webui/os_feedback_ui/resources/search_page.js b/ash/webui/os_feedback_ui/resources/search_page.js ---- a/ash/webui/os_feedback_ui/resources/search_page.js -+++ b/ash/webui/os_feedback_ui/resources/search_page.js -@@ -319,7 +319,7 @@ export class SearchPageElement extends SearchPageElementBase { - */ - feedbackWritingGuidanceUrl_() { - // TODO(xiangdongkong): append ?hl={the application locale} to the url. -- const url = 'https://support.google.com/chromebook/answer/2982029'; -+ const url = 'https://support.9oo91e.qjz9zk/chromebook/answer/2982029'; - return url; - } - -diff --git a/ash/webui/personalization_app/personalization_app_ui.cc b/ash/webui/personalization_app/personalization_app_ui.cc ---- a/ash/webui/personalization_app/personalization_app_ui.cc -+++ b/ash/webui/personalization_app/personalization_app_ui.cc -@@ -33,7 +33,7 @@ namespace ash::personalization_app { - - namespace { - --inline constexpr char kGooglePhotosURL[] = "https://photos.google.com"; -+inline constexpr char kGooglePhotosURL[] = "https://photos.9oo91e.qjz9zk"; - - GURL GetGooglePhotosURL() { - return GURL(kGooglePhotosURL); -diff --git a/ash/webui/projector_app/projector_xhr_sender.cc b/ash/webui/projector_app/projector_xhr_sender.cc ---- a/ash/webui/projector_app/projector_xhr_sender.cc -+++ b/ash/webui/projector_app/projector_xhr_sender.cc -@@ -42,13 +42,13 @@ constexpr char kApiKeyParam[] = "key"; - - // List of URL prefix supported by `ProjectorXhrSender`. - const char* kUrlAllowlist[] = { -- "https://www.googleapis.com/drive/v3/files/", -- "https://www.googleapis.com/upload/drive/v3/files/", -+ "https://www.9oo91eapis.qjz9zk/drive/v3/files/", -+ "https://www.9oo91eapis.qjz9zk/upload/drive/v3/files/", - // TODO(b/229792620): Remove this URL prefix once web component is updated - // with the base URL that force using primary account credential. -- "https://drive.google.com/get_video_info", -- "https://drive.google.com/u/0/get_video_info", -- "https://translation.googleapis.com/language/translate/v2"}; -+ "https://drive.9oo91e.qjz9zk/get_video_info", -+ "https://drive.9oo91e.qjz9zk/u/0/get_video_info", -+ "https://translation.9oo91eapis.qjz9zk/language/translate/v2"}; - - // Return true if the url matches the allowed URL prefix. - bool IsUrlAllowlisted(const std::string& url) { -diff --git a/ash/webui/projector_app/projector_xhr_sender.h b/ash/webui/projector_app/projector_xhr_sender.h ---- a/ash/webui/projector_app/projector_xhr_sender.h -+++ b/ash/webui/projector_app/projector_xhr_sender.h -@@ -27,7 +27,7 @@ class URLLoaderFactory; - - namespace ash { - --constexpr char kDriveV3BaseUrl[] = "https://www.googleapis.com/drive/v3/files/"; -+constexpr char kDriveV3BaseUrl[] = "https://www.9oo91eapis.qjz9zk/drive/v3/files/"; - constexpr char kRequestMethodPatch[] = "PATCH"; - - /** -diff --git a/ash/webui/projector_app/untrusted_projector_ui.cc b/ash/webui/projector_app/untrusted_projector_ui.cc ---- a/ash/webui/projector_app/untrusted_projector_ui.cc -+++ b/ash/webui/projector_app/untrusted_projector_ui.cc -@@ -50,13 +50,13 @@ content::WebUIDataSource* CreateProjectorHTMLSource( - // Allow fonts. - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::FontSrc, -- "font-src https://fonts.gstatic.com;"); -+ "font-src https://fonts.95tat1c.qjz9zk;"); - // Allow styles to include inline styling needed for Polymer elements. - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::StyleSrc, -- "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;"); -+ "style-src 'self' 'unsafe-inline' https://f0ntz.9oo91e8p1.qjz9zk;"); - std::string mediaCSP = -- std::string("media-src 'self' https://*.drive.google.com ") + -+ std::string("media-src 'self' https://*.drive.9oo91e.qjz9zk ") + - kChromeUIUntrustedProjectorPwaUrl + " blob:;"; - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::MediaSrc, -@@ -65,11 +65,11 @@ content::WebUIDataSource* CreateProjectorHTMLSource( - // Allow images to also handle data urls. - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::ImgSrc, -- "img-src blob: data: 'self' https://*.googleusercontent.com;"); -+ "img-src blob: data: 'self' https://*.9oo91eusercontent.qjz9zk;"); - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::ConnectSrc, -- "connect-src 'self' https://www.googleapis.com " -- "https://drive.google.com;"); -+ "connect-src 'self' https://www.9oo91eapis.qjz9zk " -+ "https://drive.9oo91e.qjz9zk;"); - - source->OverrideContentSecurityPolicy( - network::mojom::CSPDirectiveName::TrustedTypes, -diff --git a/ash/webui/scanning/resources/scanning_app.html b/ash/webui/scanning/resources/scanning_app.html ---- a/ash/webui/scanning/resources/scanning_app.html -+++ b/ash/webui/scanning/resources/scanning_app.html -@@ -268,7 +268,7 @@ - [[i18n(toastMessageKey_)]] -

-diff --git a/ash/webui/scanning/resources/scanning_app.js b/ash/webui/scanning/resources/scanning_app.js ---- a/ash/webui/scanning/resources/scanning_app.js -+++ b/ash/webui/scanning/resources/scanning_app.js -@@ -43,7 +43,7 @@ import {ScanningBrowserProxy, ScanningBrowserProxyImpl, SelectedPath} from './sc - * URL for the Scanning help page. - * @const {string} - */ --const HELP_PAGE_LINK = 'http://support.google.com/chromebook?p=chrome_scanning'; -+const HELP_PAGE_LINK = 'http://support.9oo91e.qjz9zk/chromebook?p=chrome_scanning'; - - /** - * @fileoverview -diff --git a/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.js b/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.js ---- a/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.js -+++ b/ash/webui/shimless_rma/resources/onboarding_enter_rsu_wp_disable_code_page.js -@@ -251,7 +251,7 @@ export class OnboardingEnterRsuWpDisableCodePage extends - */ - computeRsuChallengeLinkText_() { - const unlockPageUrl = -- 'https://chromeos.google.com/partner/console/cr50reset?challenge='; -+ 'https://chromeos.9oo91e.qjz9zk/partner/console/cr50reset?challenge='; - return unlockPageUrl + this.rsuChallenge_ + '&hwid=' + this.rsuHwid_; - } - -diff --git a/base/android/resource_exclusions.gni b/base/android/resource_exclusions.gni ---- a/base/android/resource_exclusions.gni -+++ b/base/android/resource_exclusions.gni -@@ -16,7 +16,7 @@ common_resource_exclusion_exceptions = [ - common_resource_exclusion_regex += "|-watch\b" - - # As of May 2020, 0.2% of devices are ldpi: --# https://developer.android.com/about/dashboards/index.html -+# https://developer.8n6r01d.qjz9zk/about/dashboards/index.html - # Only a single resources is defined in this config: - # ic_arrow_down_24dp - # It saves XXkb to omit the config. -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 -@@ -135,7 +135,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/+/main/docs/" -+ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/" - "lldbinit.md\n" - "To continue anyway, type 'continue' in lldb. To always skip this " - "check, define an environment variable CHROMIUM_LLDBINIT_SOURCED=1"; -@@ -218,7 +218,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/+/main/docs/" -+ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/" - "gdbinit.md\n" - "To continue anyway, type 'continue' in gdb. To always skip this " - "check, define an environment variable CHROMIUM_GDBINIT_SOURCED=1"; -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 -@@ -365,7 +365,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) - -diff --git a/base/functional/callback.h b/base/functional/callback.h ---- a/base/functional/callback.h -+++ b/base/functional/callback.h -@@ -184,7 +184,7 @@ class OnceCallback : public internal::CallbackBase { - static_assert( - AlwaysFalse, - "need to convert a base::OnceCallback to base::FunctionRef? " -- "Please bring up this use case on #cxx (Slack) or cxx@chromium.org."); -+ "Please bring up this use case on #cxx (Slack) or cxx@ch40m1um.qjz9zk."); - } - - template -@@ -194,7 +194,7 @@ class OnceCallback : public internal::CallbackBase { - AlwaysFalse, - "using base::BindOnce() is not necessary with base::FunctionRef; is it " - "possible to use a capturing lambda directly? If not, please bring up " -- "this use case on #cxx (Slack) or cxx@chromium.org."); -+ "this use case on #cxx (Slack) or cxx@ch40m1um.qjz9zk."); - } - }; - -@@ -318,7 +318,7 @@ class RepeatingCallback : public internal::CallbackBaseCopyable { - static_assert( - AlwaysFalse, - "need to convert a base::RepeatingCallback to base::FunctionRef? " -- "Please bring up this use case on #cxx (Slack) or cxx@chromium.org."); -+ "Please bring up this use case on #cxx (Slack) or cxx@ch40m1um.qjz9zk."); - } - - template -@@ -328,7 +328,7 @@ class RepeatingCallback : public internal::CallbackBaseCopyable { - AlwaysFalse, - "using base::BindRepeating() is not necessary with base::FunctionRef; " - "is it possible to use a capturing lambda directly? If not, please " -- "bring up this use case on #cxx (Slack) or cxx@chromium.org."); -+ "bring up this use case on #cxx (Slack) or cxx@ch40m1um.qjz9zk."); - } - }; - -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 -@@ -42,7 +42,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/memory/raw_ptr.cc b/base/memory/raw_ptr.cc ---- a/base/memory/raw_ptr.cc -+++ b/base/memory/raw_ptr.cc -@@ -202,7 +202,7 @@ void AsanBackupRefPtrImpl::AsanCheckIfValidExtraction( - "Otherwise, it is still likely a bug to rely on the address of an " - "already freed allocation.\n" - "Refer to " -- "https://chromium.googlesource.com/chromium/src/+/main/base/memory/" -+ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/base/memory/" - "raw_ptr.md for details.\n" - "================================================================="); - } -diff --git a/base/memory/raw_ptr_asan_service.cc b/base/memory/raw_ptr_asan_service.cc ---- a/base/memory/raw_ptr_asan_service.cc -+++ b/base/memory/raw_ptr_asan_service.cc -@@ -215,7 +215,7 @@ void RawPtrAsanService::ErrorReportCallback(const char* report) { - - Log("\nMiraclePtr Status: %s\n" - "Refer to " -- "https://chromium.googlesource.com/chromium/src/+/main/base/memory/" -+ "https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/base/memory/" - "raw_ptr.md for details.", - status_body); - } -diff --git a/build/android/gradle/generate_gradle.py b/build/android/gradle/generate_gradle.py ---- a/build/android/gradle/generate_gradle.py -+++ b/build/android/gradle/generate_gradle.py -@@ -906,7 +906,7 @@ def main(): - - logging.warning('Generated files will only appear once you\'ve built them.') - logging.warning('Generated projects for Android Studio %s', channel) -- logging.warning('For more tips: https://chromium.googlesource.com/chromium' -+ logging.warning('For more tips: https://chromium.9oo91esource.qjz9zk/chromium' - '/src.git/+/main/docs/android_studio.md') - - -diff --git a/build/android/gyp/assert_static_initializers.py b/build/android/gyp/assert_static_initializers.py ---- a/build/android/gyp/assert_static_initializers.py -+++ b/build/android/gyp/assert_static_initializers.py -@@ -173,7 +173,7 @@ def main(): - print(' //tools/binary_size/diagnose_bloat.py') - print() - print('For more information:') -- print(' https://chromium.googlesource.com/chromium/src/+/main/docs/' -+ print(' https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/' - 'static_initializers.md') - sys.exit(1) - -diff --git a/build/android/gyp/lint.py b/build/android/gyp/lint.py ---- a/build/android/gyp/lint.py -+++ b/build/android/gyp/lint.py -@@ -20,7 +20,7 @@ from util import build_utils - from util import manifest_utils - from util import server_utils - --_LINT_MD_URL = 'https://chromium.googlesource.com/chromium/src/+/main/build/android/docs/lint.md' # pylint: disable=line-too-long -+_LINT_MD_URL = 'https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/build/android/docs/lint.md' # pylint: disable=line-too-long - - # These checks are not useful for chromium. - _DISABLED_ALWAYS = [ -diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py ---- a/build/android/gyp/proguard.py -+++ b/build/android/gyp/proguard.py -@@ -376,7 +376,7 @@ def _OptimizeWithR8(options, - # Python will print the original exception as well. - raise Exception( - 'R8 failed. Please see ' -- 'https://chromium.googlesource.com/chromium/src/+/HEAD/build/' -+ 'https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/build/' - 'android/docs/java_optimization.md#Debugging-common-failures') from e - - base_has_imported_lib = False -@@ -510,7 +510,7 @@ out/Release/apks/YourApk.apk > dex.txt - stderr += """ - You may need to update build configs to run FragmentActivityReplacer for - additional targets. See --https://chromium.googlesource.com/chromium/src.git/+/main/docs/ui/android/bytecode_rewriting.md. -+https://chromium.9oo91esource.qjz9zk/chromium/src.git/+/main/docs/ui/android/bytecode_rewriting.md. - """ - elif had_unfiltered_items: - # Left only with empty headings. All indented items filtered out. -diff --git a/build/android/gyp/util/diff_utils.py b/build/android/gyp/util/diff_utils.py ---- a/build/android/gyp/util/diff_utils.py -+++ b/build/android/gyp/util/diff_utils.py -@@ -108,10 +108,10 @@ def CheckExpectations(actual_data, options, custom_msg=''): - else: - fail_msg = """ - Expectations need updating: --https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/android/expectations/README.md -+https://chromium.9oo91esource.qjz9zk/chromium/src/+/HEAD/chrome/android/expectations/README.md - - LogDog tip: Use "Raw log" or "Switch to lite mode" before copying: --https://bugs.chromium.org/p/chromium/issues/detail?id=984616 -+https://bugs.ch40m1um.qjz9zk/p/chromium/issues/detail?id=984616 - - {} - -diff --git a/build/android/gyp/util/protoresources.py b/build/android/gyp/util/protoresources.py ---- a/build/android/gyp/util/protoresources.py -+++ b/build/android/gyp/util/protoresources.py -@@ -4,7 +4,7 @@ - """Functions that modify resources in protobuf format. - - Format reference: --https://cs.android.com/search?q=f:aapt2.*Resources.proto -+https://cs.8n6r01d.qjz9zk/search?q=f:aapt2.*Resources.proto - """ - - import logging -diff --git a/build/android/incremental_install/installer.py b/build/android/incremental_install/installer.py ---- a/build/android/incremental_install/installer.py -+++ b/build/android/incremental_install/installer.py -@@ -280,7 +280,7 @@ def Install(device, install_json, apk=None, enable_device_cache=False, - if apis_allowed.strip() not in '01': - msg = """\ - Cannot use incremental installs on Android P+ without first enabling access to --non-SDK interfaces (https://developer.android.com/preview/non-sdk-q). -+non-SDK interfaces (https://developer.8n6r01d.qjz9zk/preview/non-sdk-q). - - To enable access: - adb -s {0} shell settings put global {1} 0 -diff --git a/build/android/resource_sizes.py b/build/android/resource_sizes.py ---- a/build/android/resource_sizes.py -+++ b/build/android/resource_sizes.py -@@ -145,7 +145,7 @@ def _ReadZipInfoExtraFieldLength(zip_file, zip_info): - def _MeasureApkSignatureBlock(zip_file): - """Measures the size of the v2 / v3 signing block. - -- Refer to: https://source.android.com/security/apksigning/v2 -+ Refer to: https://source.8n6r01d.qjz9zk/security/apksigning/v2 - """ - # Seek to "end of central directory" struct. - eocd_offset_from_end = -22 - len(zip_file.comment) -diff --git a/build/android/test_wrapper/logdog_wrapper.py b/build/android/test_wrapper/logdog_wrapper.py ---- a/build/android/test_wrapper/logdog_wrapper.py -+++ b/build/android/test_wrapper/logdog_wrapper.py -@@ -27,7 +27,7 @@ from py_utils import tempfile_ext - - PROJECT = 'chromium' - OUTPUT = 'logdog' --COORDINATOR_HOST = 'luci-logdog.appspot.com' -+COORDINATOR_HOST = 'luci-logdog.8pp2p8t.qjz9zk' - LOGDOG_TERMINATION_TIMEOUT = 30 - - -diff --git a/build/apple/tweak_info_plist.py b/build/apple/tweak_info_plist.py ---- a/build/apple/tweak_info_plist.py -+++ b/build/apple/tweak_info_plist.py -@@ -156,9 +156,9 @@ def _AddBreakpadKeys(plist, branding, platform, staging): - plist['BreakpadProduct'] = '%s_%s' % (branding, platform) - plist['BreakpadProductDisplay'] = branding - if staging: -- plist['BreakpadURL'] = 'https://clients2.google.com/cr/staging_report' -+ plist['BreakpadURL'] = 'https://clients2.9oo91e.qjz9zk/cr/staging_report' - else: -- plist['BreakpadURL'] = 'https://clients2.google.com/cr/report' -+ plist['BreakpadURL'] = 'https://clients2.9oo91e.qjz9zk/cr/report' - - # These are both deliberately strings and not boolean. - plist['BreakpadSendAndExit'] = 'YES' -@@ -195,7 +195,7 @@ def _AddKeystoneKeys(plist, bundle_identifier, base_tag): - also requires the |bundle_identifier| argument (com.example.product).""" - plist['KSVersion'] = plist['CFBundleShortVersionString'] - plist['KSProductID'] = bundle_identifier -- plist['KSUpdateURL'] = 'https://tools.google.com/service/update2' -+ plist['KSUpdateURL'] = 'https://tools.9oo91e.qjz9zk/service/update2' - - _RemoveKeys(plist, 'KSChannelID') - if base_tag != '': -diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni ---- a/build/config/android/rules.gni -+++ b/build/config/android/rules.gni -@@ -1893,7 +1893,7 @@ if (enable_java_templates) { - # * public.txt - # * annotations.zip - # * assets/ -- # See: https://developer.android.com/studio/projects/android-library.html#aar-contents -+ # See: https://developer.8n6r01d.qjz9zk/studio/projects/android-library.html#aar-contents - # - # Variables: - # output: Path to the output .aar. -diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni ---- a/build/config/chrome_build.gni -+++ b/build/config/chrome_build.gni -@@ -15,7 +15,7 @@ declare_args() { - # Note: CfT is not intended to be used as a test runner to run tests in this - # repository. - # -- # Design doc: https://goo.gle/chrome-for-testing -+ # Design doc: https://goo.gl.qjz9zke/chrome-for-testing - is_chrome_for_testing_branded = false - - # Set to true to enable settings for high end Android devices, typically -diff --git a/build/config/chromeos/args.gni b/build/config/chromeos/args.gni ---- a/build/config/chromeos/args.gni -+++ b/build/config/chromeos/args.gni -@@ -21,8 +21,8 @@ declare_args() { - # linux-chromeos, so some have compile-time asserts that intentionally fail - # when this build flag is set. Build and run the tests for linux-chromeos - # instead. -- # https://chromium.googlesource.com/chromium/src/+/main/docs/chromeos_build_instructions.md -- # https://chromium.googlesource.com/chromiumos/docs/+/main/simple_chrome_workflow.md -+ # https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/chromeos_build_instructions.md -+ # https://chromium.9oo91esource.qjz9zk/chromiumos/docs/+/main/simple_chrome_workflow.md - is_chromeos_device = false - - # Determines if we run the test in skylab, aka the CrOS labs. -diff --git a/build/config/chromeos/rules.gni b/build/config/chromeos/rules.gni ---- a/build/config/chromeos/rules.gni -+++ b/build/config/chromeos/rules.gni -@@ -248,7 +248,7 @@ template("generate_skylab_deps") { - # tast_vars: A list of "key=value" runtime variable pairs to pass to invoke - # strip_chrome: If true, strips Chrome before deploying it for non-Tast tests. - # the Tast tests. For more details, please see: --# https://chromium.googlesource.com/chromiumos/platform/tast/+/HEAD/docs/writing_tests.md#Runtime-variables -+# https://chromium.9oo91esource.qjz9zk/chromiumos/platform/tast/+/HEAD/docs/writing_tests.md#Runtime-variables - template("generate_runner_script") { - forward_variables_from(invoker, - [ -@@ -509,7 +509,7 @@ template("tast_test") { - if (!defined(tast_attr_expr) && !defined(tast_tests)) { - # The following expression filters out all non-critical tests. See the link - # below for more details: -- # https://chromium.googlesource.com/chromiumos/platform/tast/+/main/docs/test_attributes.md -+ # https://chromium.9oo91esource.qjz9zk/chromiumos/platform/tast/+/main/docs/test_attributes.md - tast_attr_expr = "\"group:mainline\" && \"dep:chrome\"" - - if (defined(enable_tast_informational_tests) && -@@ -630,7 +630,7 @@ template("lacros_tast_tests") { - # use it for testing. To support running lacros tast tests from Chromium CI, - # a Var is added to support pointing the tast tests to use a specified - # pre-deployed lacros-chrome. The location is decided by: -- # https://source.chromium.org/chromium/chromium/src/+/main:third_party/chromite/scripts/deploy_chrome.py;l=80;drc=86f1234a4be8e9574442e076cdc835897f7bea61 -+ # https://source.ch40m1um.qjz9zk/chromium/chromium/src/+/main:third_party/chromite/scripts/deploy_chrome.py;l=80;drc=86f1234a4be8e9574442e076cdc835897f7bea61 - tast_vars = [ "lacros.DeployedBinary=/usr/local/lacros-chrome" ] - - data_deps = _lacros_data_deps -diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni ---- a/build/config/compiler/compiler.gni -+++ b/build/config/compiler/compiler.gni -@@ -130,7 +130,7 @@ declare_args() { - # Technology (CET). If Windows version and hardware supports the feature and - # it's enabled by OS then additional validation of return address will be - # performed as mitigation against Return-oriented programming (ROP). -- # https://chromium.googlesource.com/chromium/src/+/main/docs/design/sandbox.md#cet-shadow-stack -+ # https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/design/sandbox.md#cet-shadow-stack - enable_cet_shadow_stack = target_cpu == "x64" - - # If true, optimize for size. -@@ -244,7 +244,7 @@ declare_args() { - # results independent of the checkout and build directory names, which - # in turn is important for goma compile hit rate. - # Setting this to true may make it harder to debug binaries on Linux, see --# https://chromium.googlesource.com/chromium/src/+/main/docs/linux/debugging.md#Source-level-debug-with-fdebug_compilation_dir -+# https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/linux/debugging.md#Source-level-debug-with-fdebug_compilation_dir - # It's not clear if the crash server will correctly handle dSYMs with relative - # paths, so we disable this feature for official benefit. The main benefit is - # deterministic builds to reduce compile times, so this is less relevant for -diff --git a/build/config/locales.gni b/build/config/locales.gni ---- a/build/config/locales.gni -+++ b/build/config/locales.gni -@@ -158,7 +158,7 @@ extended_locales = [ - # Chrome locales not on Android. - # These locales have not yet been tested yet. Specifically, AOSP has not been - # translated to Welsh at the time of writing (April 2022): --# https://cs.android.com/android/platform/superproject/+/master:build/make/target/product/languages_default.mk -+# https://cs.8n6r01d.qjz9zk/android/platform/superproject/+/master:build/make/target/product/languages_default.mk - # Due to this, the only way a user could see Welsh strings - assuming they were - # built - would be to manually switch their "Chrome language" in Chrome's - # language settings to Welsh, so Welsh usage would probably be very low. -diff --git a/build/config/nacl/rules.gni b/build/config/nacl/rules.gni ---- a/build/config/nacl/rules.gni -+++ b/build/config/nacl/rules.gni -@@ -38,7 +38,7 @@ template("generate_nmf") { - } - - # TODO(phosek): Remove this conditional once -- # https://bugs.chromium.org/p/nativeclient/issues/detail?id=4339 is -+ # https://bugs.ch40m1um.qjz9zk/p/nativeclient/issues/detail?id=4339 is - # resolved. - if (current_cpu == "pnacl") { - objdump = rebase_path("${nacl_toolchain_bindir}/x86_64-nacl-objdump") -diff --git a/build/config/ozone.gni b/build/config/ozone.gni ---- a/build/config/ozone.gni -+++ b/build/config/ozone.gni -@@ -27,7 +27,7 @@ declare_args() { - # Enable explicit apitrace (https://apitrace.github.io) loading. - # This requires apitrace library with additional bindings. - # See ChromeOS package for details: -- # https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2659419 -+ # https://chromium-review.9oo91esource.qjz9zk/c/chromiumos/overlays/chromiumos-overlay/+/2659419 - # Chrome will not start without an apitrace.so library. - # Trace will be saved to /tmp/gltrace.dat file by default. You can - # override it at run time with TRACE_FILE= environment variable. -diff --git a/build/config/sanitizers/sanitizers.gni b/build/config/sanitizers/sanitizers.gni ---- a/build/config/sanitizers/sanitizers.gni -+++ b/build/config/sanitizers/sanitizers.gni -@@ -65,7 +65,7 @@ declare_args() { - use_cfi_recover = false - - # Compile for fuzzing with LLVM LibFuzzer. -- # See http://www.chromium.org/developers/testing/libfuzzer -+ # See http://www.ch40m1um.qjz9zk/developers/testing/libfuzzer - use_libfuzzer = false - - # Compile for fuzzing with AFL. -diff --git a/build/config/win/control_flow_guard.gni b/build/config/win/control_flow_guard.gni ---- a/build/config/win/control_flow_guard.gni -+++ b/build/config/win/control_flow_guard.gni -@@ -12,7 +12,7 @@ declare_args() { - - if (win_enable_cfg_guards) { - # Control Flow Guard (CFG) -- # https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065.aspx -+ # https://msdn.m1cr050ft.qjz9zk/en-us/library/windows/desktop/mt637065.aspx - # /DYNAMICBASE (ASLR) is turned off in debug builds, therefore CFG can't be - # turned on either. - # ASan and CFG leads to slow process startup. Chromium's test runner uses -diff --git a/build/fuchsia/binary_size_differ.py b/build/fuchsia/binary_size_differ.py ---- a/build/fuchsia/binary_size_differ.py -+++ b/build/fuchsia/binary_size_differ.py -@@ -33,7 +33,7 @@ from binary_sizes import PACKAGES_SIZES_FILE - # (solely based on compressed growth). - _FIRST_WARNING_DELTA_BYTES = 12 * 1024 # 12 KiB - _ALWAYS_FAIL_DELTA_BYTES = 100 * 1024 # 100 KiB --_TRYBOT_DOC = 'https://chromium.googlesource.com/chromium/src/+/main/docs/speed/binary_size/fuchsia_binary_size_trybot.md' -+_TRYBOT_DOC = 'https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/speed/binary_size/fuchsia_binary_size_trybot.md' - - SIZE_FAILURE = 1 - ROLLER_SIZE_WARNING = 2 -diff --git a/build/fuchsia/binary_sizes.py b/build/fuchsia/binary_sizes.py ---- a/build/fuchsia/binary_sizes.py -+++ b/build/fuchsia/binary_sizes.py -@@ -96,7 +96,7 @@ def CreateTestResults(test_status, timestamp): - """Create test results data to write to JSON test results file. - - The JSON data format is defined in -- https://chromium.googlesource.com/chromium/src/+/main/docs/testing/json_test_results_format.md -+ https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/testing/json_test_results_format.md - """ - - results = { -diff --git a/build/fuchsia/pkg_repo.py b/build/fuchsia/pkg_repo.py ---- a/build/fuchsia/pkg_repo.py -+++ b/build/fuchsia/pkg_repo.py -@@ -19,7 +19,7 @@ _PM_SERVE_POLL_INTERVAL = 0.1 - - _MANAGED_REPO_NAME = 'chromium-test-package-server' - --_HOSTS = ['fuchsia.com', 'chrome.com', 'chromium.org'] -+_HOSTS = ['fuchsia.com', 'ch40me.qjz9zk', 'ch40m1um.qjz9zk'] - - - class PkgRepo(object): -diff --git a/build/linux/install-chromeos-fonts.py b/build/linux/install-chromeos-fonts.py ---- a/build/linux/install-chromeos-fonts.py -+++ b/build/linux/install-chromeos-fonts.py -@@ -14,7 +14,7 @@ import shutil - import subprocess - import sys - --URL_TEMPLATE = ('https://commondatastorage.googleapis.com/chromeos-localmirror/' -+URL_TEMPLATE = ('https://commondatastorage.9oo91eapis.qjz9zk/chromeos-localmirror/' - 'distfiles/%(name)s-%(version)s.tar.bz2') - - # Taken from the media-fonts/ ebuilds in chromiumos-overlay. -diff --git a/build/linux/sysroot_scripts/install-sysroot.py b/build/linux/sysroot_scripts/install-sysroot.py ---- a/build/linux/sysroot_scripts/install-sysroot.py -+++ b/build/linux/sysroot_scripts/install-sysroot.py -@@ -42,7 +42,7 @@ except ImportError: - - SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) - --URL_PREFIX = 'https://commondatastorage.googleapis.com' -+URL_PREFIX = 'https://commondatastorage.9oo91eapis.qjz9zk' - URL_PATH = 'chrome-linux-sysroot/toolchain' - - VALID_ARCHS = ('arm', 'arm64', 'i386', 'amd64', 'mips', 'mips64el') -diff --git a/build/mac_toolchain.py b/build/mac_toolchain.py ---- a/build/mac_toolchain.py -+++ b/build/mac_toolchain.py -@@ -89,7 +89,7 @@ def RequestCipdAuthentication(): - print() - print('and follow the instructions.') - print() -- print('NOTE: Use your google.com credentials, not chromium.org.') -+ print('NOTE: Use your 9oo91e.qjz9zk credentials, not ch40m1um.qjz9zk.') - print() - print('-----------------------------------------------------------------') - print() -diff --git a/build/nocompile.gni b/build/nocompile.gni ---- a/build/nocompile.gni -+++ b/build/nocompile.gni -@@ -7,7 +7,7 @@ - # a particular construct will not compile. - # - # Also see: --# http://dev.chromium.org/developers/testing/no-compile-tests -+# http://dev.ch40m1um.qjz9zk/developers/testing/no-compile-tests - # - # To use this, create a gyp target with the following form: - # -diff --git a/build/toolchain/cros_toolchain.gni b/build/toolchain/cros_toolchain.gni ---- a/build/toolchain/cros_toolchain.gni -+++ b/build/toolchain/cros_toolchain.gni -@@ -15,7 +15,7 @@ - # target_os = "chromeos" - # - # To perform a board-specific build, first obtain the correct system --# root (http://goo.gl/aFB4XH) for the board. Then configure GN to use it -+# root (http://goo.gl.qjz9zk/aFB4XH) for the board. Then configure GN to use it - # by setting appropriate cross-compilation variables. - # - # For example, to compile a Chrome source tree in /g/src for an -diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni ---- a/build/toolchain/gcc_toolchain.gni -+++ b/build/toolchain/gcc_toolchain.gni -@@ -712,7 +712,7 @@ template("gcc_toolchain") { - rust_sysroot_relative_to_out = rebase_path(rust_sysroot, root_out_dir) - rustc_wrapper = rebase_path("//build/rust/rustc_wrapper.py") - -- # RSP manipulation due to https://bugs.chromium.org/p/gn/issues/detail?id=249 -+ # RSP manipulation due to https://bugs.ch40m1um.qjz9zk/p/gn/issues/detail?id=249 - tool("rust_staticlib") { - rust_outfile = "{{output_dir}}/{{target_output_name}}.a" - depfile = "{{output}}.d" -diff --git a/build/util/lib/common/perf_tests_results_helper.py b/build/util/lib/common/perf_tests_results_helper.py ---- a/build/util/lib/common/perf_tests_results_helper.py -+++ b/build/util/lib/common/perf_tests_results_helper.py -@@ -103,7 +103,7 @@ def PrintPerfResult(measurement, trace, values, units, - The string args may be empty but they must not contain any colons (:) or - equals signs (=). - This is parsed by the buildbot using: -- http://src.chromium.org/viewvc/chrome/trunk/tools/build/scripts/slave/process_log_utils.py -+ http://src.ch40m1um.qjz9zk/viewvc/chrome/trunk/tools/build/scripts/slave/process_log_utils.py - - Args: - measurement: A description of the quantity being measured, e.g. "vm_peak". -diff --git a/build/util/lib/results/result_sink.py b/build/util/lib/results/result_sink.py ---- a/build/util/lib/results/result_sink.py -+++ b/build/util/lib/results/result_sink.py -@@ -139,7 +139,7 @@ class ResultSinkClient(object): - if test_file and str(test_file).startswith('//'): - tr['testMetadata']['location'] = { - 'file_name': test_file, -- 'repo': 'https://chromium.googlesource.com/chromium/src', -+ 'repo': 'https://chromium.9oo91esource.qjz9zk/chromium/src', - } - - res = requests.post(url=self.test_results_url, -diff --git a/build/whitespace_file.txt b/build/whitespace_file.txt ---- a/build/whitespace_file.txt -+++ b/build/whitespace_file.txt -@@ -163,7 +163,7 @@ In the BUILD we trust. - In the masters we don't. - In the tryservers, we don't either. - In the CQ sometimes. --Auto-generated by git-eject-upstream (http://goo.gl/cIHsYR) -+Auto-generated by git-eject-upstream (http://goo.gl.qjz9zk/cIHsYR) - My sandwiches are like my children: I love them all. - No, really, I couldn't eat another bit. - When I hunger I think of you, and a pastrami sandwich. -diff --git a/buildtools/README.txt b/buildtools/README.txt ---- a/buildtools/README.txt -+++ b/buildtools/README.txt -@@ -3,7 +3,7 @@ projects. The actual binaries are pulled from Google Storage, normally as part - of a gclient hook. - - This directory also exists as a stand-alone git mirror at --https://chromium.googlesource.com/chromium/src/buildtools/. -+https://chromium.9oo91esource.qjz9zk/chromium/src/buildtools/. - That mirror exists so that the shared build tools can be shared between - the various Chromium-related projects without each one needing to maintain - their own versionining of each binary. -@@ -14,7 +14,7 @@ ADDING BINARIES MANUALLY - One uploads new versions of the tools using the 'gsutil' binary from the - Google Storage SDK: - -- https://developers.google.com/storage/docs/gsutil -+ https://developers.9oo91e.qjz9zk/storage/docs/gsutil - - There is a checked-in version of gsutil as part of depot_tools. - -diff --git a/buildtools/clang_format/README.txt b/buildtools/clang_format/README.txt ---- a/buildtools/clang_format/README.txt -+++ b/buildtools/clang_format/README.txt -@@ -2,7 +2,7 @@ This folder contains clang-format scripts. The binaries will be automatically - downloaded from Google Storage by gclient runhooks for the current platform. - - For a walkthrough on how to maintain these binaries: -- https://chromium.googlesource.com/chromium/src/+/main/docs/updating_clang_format_binaries.md -+ https://chromium.9oo91esource.qjz9zk/chromium/src/+/main/docs/updating_clang_format_binaries.md - - To upload a file: - python ~/depot_tools/upload_to_google_storage.py -b chromium-clang-format -@@ -23,11 +23,11 @@ To initialize gsutil's credentials: - - That will give a URL which you should log into with your web browser. The - username should be the one that is on the ACL for the "chromium-clang-format" -- bucket (probably your @google.com address). Contact the build team for help -+ bucket (probably your @9oo91e.qjz9zk address). Contact the build team for help - getting access if necessary. - - Copy the code back to the command line util. Ignore the project ID (it's OK - to just leave blank when prompted). - - gsutil documentation: -- https://developers.google.com/storage/docs/gsutil -+ https://developers.9oo91e.qjz9zk/storage/docs/gsutil -diff --git a/chrome/android/webapk/shell_apk/manifest/javatest_manifest_config_delta.json b/chrome/android/webapk/shell_apk/manifest/javatest_manifest_config_delta.json ---- a/chrome/android/webapk/shell_apk/manifest/javatest_manifest_config_delta.json -+++ b/chrome/android/webapk/shell_apk/manifest/javatest_manifest_config_delta.json -@@ -1,21 +1,21 @@ - { -- "scope_url": "https://pwa-directory.appspot.com/", -+ "scope_url": "https://pwa-directory.8pp2p8t.qjz9zk/", - "intent_filters": { - "scope_url_scheme": "https", -- "scope_url_host": "pwa-directory.appspot.com", -+ "scope_url_host": "pwa-directory.8pp2p8t.qjz9zk", - "scope_url_path_type": "android:pathPrefix", - "scope_url_path": "/" - }, -- "start_url": "https://pwa-directory.appspot.com/", -- "icon_urls_and_icon_murmur2_hashes": "https://pwa-directory.appspot.com/icon1.png 0 https://pwa-directory.appspot.com/icon2.png 0", -- "web_manifest_url": "https://pwa-directory.appspot.com/manifest.json", -+ "start_url": "https://pwa-directory.8pp2p8t.qjz9zk/", -+ "icon_urls_and_icon_murmur2_hashes": "https://pwa-directory.8pp2p8t.qjz9zk/icon1.png 0 https://pwa-directory.8pp2p8t.qjz9zk/icon2.png 0", -+ "web_manifest_url": "https://pwa-directory.8pp2p8t.qjz9zk/manifest.json", - "bound_webapk": { - "runtime_host": "org.chromium.chrome.tests" - }, - "share_template": [{ - "index": "0", - "title": "Share Text and Images", -- "action": "https://pwa-directory.appspot.com/echoall", -+ "action": "https://pwa-directory.8pp2p8t.qjz9zk/echoall", - "method": "POST", - "enctype": "application/x-www-form-urlencoded", - "param_title": "title", -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,20 +1,20 @@ - { -- "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", - "android_orientation": "unspecified", - "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/app/chromium_strings.grd b/chrome/app/chromium_strings.grd ---- a/chrome/app/chromium_strings.grd -+++ b/chrome/app/chromium_strings.grd -@@ -444,7 +444,7 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> - To send a number from here to your Android phone, sign in to Chromium on both devices. -
- -- To send a number from $1www.google.com to your Android phone, sign in to Chromium on both devices. -+ To send a number from $1www.9oo91e.qjz9zk to your Android phone, sign in to Chromium on both devices. - - - Make sure you are signed in to Chromium on your $1Pixel XL and then try sending again. -@@ -502,14 +502,14 @@ Chromium is unable to recover your settings. - - - --If you want to use this account one-time only, you can use Guest mode in Chromium browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://google.com/">add a new person</a> to your $2Chromebook. -+If you want to use this account one-time only, you can use Guest mode in Chromium browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://9oo91e.qjz9zk/">add a new person</a> to your $2Chromebook. - --Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://google.com/">Settings</a>. -+Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://9oo91e.qjz9zk/">Settings</a>. - - --If you want to use this account one-time only, you can use <a id="guestModeLink" href="#">Guest mode</a> in Chromium browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://google.com/">add a new person</a> to your $2Chromebook. -+If you want to use this account one-time only, you can use <a id="guestModeLink" href="#">Guest mode</a> in Chromium browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://9oo91e.qjz9zk/">add a new person</a> to your $2Chromebook. - --Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://google.com/">Settings</a>. -+Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://9oo91e.qjz9zk/">Settings</a>. - - - -@@ -733,7 +733,7 @@ Permissions you've already given to websites and apps may apply to this account. - - - -- Also clear data from Chromium ($1www.google.com) -+ Also clear data from Chromium ($1www.9oo91e.qjz9zk) - - - -@@ -835,7 +835,7 @@ Permissions you've already given to websites and apps may apply to this account. - - - -- 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. -@@ -870,7 +870,7 @@ Permissions you've already given to websites and apps may apply to this account. - 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. - - - -@@ -892,7 +892,7 @@ Permissions you've already given to websites and apps may apply to this account. - - - -- $1foo@gmail.com was previously using Chromium -+ $1foo@9ma1l.qjz9zk was previously using Chromium - - - -@@ -911,10 +911,10 @@ Permissions you've already given to websites and apps may apply to this account. - $1Elisa is already signed in to this Chromium profile. To keep your browsing separate, Chromium can create your own profile for you. - - -- $1Elisa is already signed in to this Chromium profile. This will create a new Chromium profile for $2foo@gmail.com -+ $1Elisa is already signed in to this Chromium profile. This will create a new Chromium profile for $2foo@9ma1l.qjz9zk - - -- This will create a new Chromium profile for $1foo@gmail.com -+ This will create a new Chromium profile for $1foo@9ma1l.qjz9zk - - - Another account is already signed in. To keep your browsing separate, Chromium can create your own profile for you. -@@ -1414,7 +1414,7 @@ Permissions you've already given to websites and apps may apply to this account. - Welcome to Chromium - - -- Get your Chromium browser stuff from $1Jane.Doe@gmail.com -+ Get your Chromium browser stuff from $1Jane.Doe@9ma1l.qjz9zk - - - Your account is managed by $1example.com. Your administrator can see and edit this Chromium browser profile and its data like bookmarks, history, and passwords. -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 -@@ -403,16 +403,16 @@ are declared in tools/grit/grit_rule.gni. - Permission request expired - - -- $1google.com wants to -+ $19oo91e.qjz9zk wants to - - -- $1google.com wants to: $2use your microphone -+ $19oo91e.qjz9zk wants to: $2use your microphone - - -- $1google.com wants to: $2use your microphone and $3use your location -+ $19oo91e.qjz9zk wants to: $2use your microphone and $3use your location - - -- $1google.com wants to: $2use your microphone, $3use your location, and more -+ $19oo91e.qjz9zk wants to: $2use your microphone, $3use your location, and more - - - This file -@@ -623,7 +623,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 -@@ -800,7 +800,7 @@ are declared in tools/grit/grit_rule.gni. - Search images with $1Google Lens - - -- &Go to $1http://www.google.com/ -+ &Go to $1http://www.9oo91e.qjz9zk/ - - - Suggest password... -@@ -880,7 +880,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 -@@ -1069,7 +1069,7 @@ are declared in tools/grit/grit_rule.gni. - Search Images with $1Google Lens - - -- &Go to $1http://www.google.com/ -+ &Go to $1http://www.9oo91e.qjz9zk/ - - - Suggest Password... -@@ -1301,7 +1301,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) - - - -@@ -1438,7 +1438,7 @@ are declared in tools/grit/grit_rule.gni. - Review - - -- https://www.google.com/chrome/privacy/eula_text.html -+ https://www.9oo91e.qjz9zk/chrome/privacy/eula_text.html - - - -@@ -2807,7 +2807,7 @@ are declared in tools/grit/grit_rule.gni. - - -- This file contains malware that can compromise your personal or social network accounts, including $1john@google.com -+ This file contains malware that can compromise your personal or social network accounts, including $1john@9oo91e.qjz9zk - - - -@@ -3167,10 +3167,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 -@@ -3179,7 +3179,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 -@@ -3191,28 +3191,28 @@ 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 - - -- 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 -@@ -3233,19 +3233,19 @@ 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 use and move your camera, and use your microphone -+ Continue allowing $1mail.9oo91e.qjz9zk to use and move your camera, and use your 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 - - -- Continue allowing $1mail.google.com to use and move your camera -+ Continue allowing $1mail.9oo91e.qjz9zk to use and move your camera - - - Pop-up blocked -@@ -3257,7 +3257,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 -@@ -3266,7 +3266,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 -@@ -3393,7 +3393,7 @@ are declared in tools/grit/grit_rule.gni. - - - -- Certificate Viewer: $1www.google.com -+ Certificate Viewer: $1www.9oo91e.qjz9zk - - - &General -@@ -3914,13 +3914,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 -@@ -3929,7 +3929,7 @@ are declared in tools/grit/grit_rule.gni. - Stop sharing - - -- View tab: $1meet.google.com -+ View tab: $1meet.9oo91e.qjz9zk - - - Switch to capturing tab -@@ -4135,16 +4135,16 @@ 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 - - -- Back/Forward Cached Page: $1http://www.google.com -+ Back/Forward Cached Page: $1http://www.9oo91e.qjz9zk - - -- Incognito Back/Forward Cached Page: $1http://www.google.com -+ Incognito Back/Forward Cached Page: $1http://www.9oo91e.qjz9zk - - - Plugin: $1Unknown Plugin -@@ -4154,10 +4154,10 @@ are declared in tools/grit/grit_rule.gni. - - - -- Prerender: $1http://www.google.com -+ Prerender: $1http://www.9oo91e.qjz9zk - - -- Prerender: $1http://www.google.com -+ Prerender: $1http://www.9oo91e.qjz9zk - - - Spare Renderer -@@ -4193,28 +4193,28 @@ 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/ - - -- Back/Forward Cached Subframe: $1http://www.google.com -+ Back/Forward Cached Subframe: $1http://www.9oo91e.qjz9zk - - -- Incognito Back/Forward Cached Subframe: $1http://www.google.com -+ Incognito Back/Forward Cached Subframe: $1http://www.9oo91e.qjz9zk - - -- Portal: $1https://youtube.com/ -+ Portal: $1https://y0u1ub3.qjz9zk/ - - -- Incognito Portal: $1https://youtube.com/ -+ Incognito Portal: $1https://y0u1ub3.qjz9zk/ - - -- Fenced Frame: $1https://youtube.com/ -+ Fenced Frame: $1https://y0u1ub3.qjz9zk/ - - -- Incognito Fenced Frame: $1https://youtube.com/ -+ Incognito Fenced Frame: $1https://y0u1ub3.qjz9zk/ - - - App: $1com.android.systemui -@@ -4445,7 +4445,7 @@ are declared in tools/grit/grit_rule.gni. - - "$1Gmail Checker" - -- -+ - The extension "$1Gmail Checker" was blocked by your administrator - - -@@ -4457,10 +4457,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: -@@ -4596,22 +4596,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 -@@ -4620,10 +4620,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 -@@ -5023,16 +5023,16 @@ are declared in tools/grit/grit_rule.gni. - Allow $13? - - -- Click to allow "$1Extension A" on $2google.com: -+ Click to allow "$1Extension A" on $29oo91e.qjz9zk: - - -- Click to allow on $1google.com: -+ Click to allow on $19oo91e.qjz9zk: - - -- Always allow "$1Gmail Checker" to run on $2google.com? -+ Always allow "$1Gmail Checker" to run on $29oo91e.qjz9zk? - - -- Always allow these extensions to run on $1google.com? -+ Always allow these extensions to run on $19oo91e.qjz9zk? - - - Always allow -@@ -5050,16 +5050,16 @@ are declared in tools/grit/grit_rule.gni. - Requested to read & change - - -- All extensions can read & change $1google.com -+ All extensions can read & change $19oo91e.qjz9zk - - -- You blocked all extensions from $1google.com -+ You blocked all extensions from $19oo91e.qjz9zk - - -- This extension can read & change $1google.com -+ This extension can read & change $19oo91e.qjz9zk - - -- Click this extension's icon to read & change $1google.com -+ Click this extension's icon to read & change $19oo91e.qjz9zk - - - Pinned by your administrator -@@ -5073,16 +5073,16 @@ are declared in tools/grit/grit_rule.gni. - This can read and change site data - - -- You previously chose to allow all extensions on $1google.com -+ You previously chose to allow all extensions on $19oo91e.qjz9zk - - -- You previously chose to not allow any extensions on $1google.com -+ You previously chose to not allow any extensions on $19oo91e.qjz9zk - - - When I click the extension - - -- Always on $1google.com -+ Always on $19oo91e.qjz9zk - - - Always on all sites -@@ -5094,7 +5094,7 @@ are declared in tools/grit/grit_rule.gni. - When you click the extension - - -- On $1google.com -+ On $19oo91e.qjz9zk - - - On all sites -@@ -5147,16 +5147,16 @@ are declared in tools/grit/grit_rule.gni. - This Can Read and Change Site Data - - -- You Previously Chose To Allow All Extensions On $1google.com -+ You Previously Chose To Allow All Extensions On $19oo91e.qjz9zk - - -- You Previously Chose To Not Allow Any Extensions On $1google.com -+ You Previously Chose To Not Allow Any Extensions On $19oo91e.qjz9zk - - - When I Click the Extension - - -- Always on $1google.com -+ Always on $19oo91e.qjz9zk - - - Always on All Sites -@@ -5168,7 +5168,7 @@ are declared in tools/grit/grit_rule.gni. - When You Click the Extension - - -- On $1google.com -+ On $19oo91e.qjz9zk - - - On All Sites -@@ -5473,7 +5473,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - Change back to $1DuckDuckGo? - - -- The "$2Some New Search" extension changed search to use $1google.com -+ The "$2Some New Search" extension changed search to use $19oo91e.qjz9zk - - - -@@ -5599,28 +5599,28 @@ Keep your key file in a safe place. You will need it to create new versions of y - Permissions - - -- Allowed to read and change $1google.com -+ Allowed to read and change $19oo91e.qjz9zk - - -- Requesting to read and change $1google.com -+ Requesting to read and change $19oo91e.qjz9zk - - - To allow an extension, change your default setting below. - - -- No extensions have requested to read and change $1google.com -+ No extensions have requested to read and change $19oo91e.qjz9zk - - -- No extensions are allowed to read and change $1google.com -+ No extensions are allowed to read and change $19oo91e.qjz9zk - - - Choose your default setting - - -- Allow all extensions to read and change $1google.com -+ Allow all extensions to read and change $19oo91e.qjz9zk - - -- Don't allow any extensions to read and change $1google.com -+ Don't allow any extensions to read and change $19oo91e.qjz9zk - - - Customize permissions for each extension -@@ -5928,10 +5928,10 @@ Keep your key file in a safe place. You will need it to create new versions of y - Update password for $1example.com? - - -- Save it in your Google Account, $1user@gmail.com -+ Save it in your Google Account, $1user@9ma1l.qjz9zk - - -- Update it in your Google Account, $1user@gmail.com -+ Update it in your Google Account, $1user@9ma1l.qjz9zk - - - Passwords are saved in your Google Account so you can use them on any device -@@ -5940,7 +5940,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - Google Password Manager - - -- You can use saved passwords on any device. They're saved to $1Google Password Manager for $2user@gmail.com. -+ You can use saved passwords on any device. They're saved to $1Google Password Manager for $2user@9ma1l.qjz9zk. - - - Passwords are saved to $1Google Password Manager on this device. -@@ -5949,7 +5949,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - You can view and manage saved passwords in $1Google Password Manager. - - -- You won't need to remember this password. It will be saved to $1Google Password Manager for $2user@gmail.com. -+ You won't need to remember this password. It will be saved to $1Google Password Manager for $2user@9ma1l.qjz9zk. - - - Passwords are saved to $1Google Password Manager. -@@ -5958,10 +5958,10 @@ Keep your key file in a safe place. You will need it to create new versions of y - You can view and manage saved passwords in Google Password Manager - - -- To Google Password Manager for $1user@gmail.com -+ To Google Password Manager for $1user@9ma1l.qjz9zk - - -- In Google Password Manager for $1user@gmail.com -+ In Google Password Manager for $1user@9ma1l.qjz9zk - - - -@@ -6388,7 +6388,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” -@@ -6399,7 +6399,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” -@@ -6409,7 +6409,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - - - -- Press $1Tab to search $2google.com -+ Press $1Tab to search $29oo91e.qjz9zk - - - Press $1Tab to send commands to $2Google Talk -@@ -6418,16 +6418,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 - - - Clear input -@@ -6875,7 +6875,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - memories from Google Photos - - -- You’re seeing photo and video highlights from your Google Photos library. You can control what shows up in your highlights at <a href="https://photos.google.com/settings?referrer=CHROME_NTP" target="_blank">photos.google.com/settings</a>. -+ You’re seeing photo and video highlights from your Google Photos library. You can control what shows up in your highlights at <a href="https://photos.9oo91e.qjz9zk/settings?referrer=CHROME_NTP" target="_blank">photos.9oo91e.qjz9zk/settings</a>. - <br> - <br> - You can manage settings for this card from the card menu or see more options in Customize Chrome. -@@ -6930,10 +6930,10 @@ Keep your key file in a safe place. You will need it to create new versions of y - About this card - - -- You're seeing this item based on your previous activity using Google services. You can see your data, delete it, and change your settings at <a href="https://myactivity.google.com/" target="_blank">myactivity.google.com</a>. -+ You're seeing this item based on your previous activity using Google services. You can see your data, delete it, and change your settings at <a href="https://myactivity.9oo91e.qjz9zk/" target="_blank">myactivity.9oo91e.qjz9zk</a>. - <br> - <br> -- Learn about the data Google collects and why at <a href="https://policies.google.com/" target="_blank">policies.google.com</a>. -+ Learn about the data Google collects and why at <a href="https://policies.9oo91e.qjz9zk/" target="_blank">policies.9oo91e.qjz9zk</a>. - - - Close -@@ -7374,7 +7374,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 - - - Open in app -@@ -7382,7 +7382,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - - - -- -+ - Always use the $1YouTube app to open supported web links? - - -@@ -7536,7 +7536,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - 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 -@@ -7721,7 +7721,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - other {You can wait for them to become responsive or exit the pages.}} - - -- $1google.com, in $2YouTube. -+ $19oo91e.qjz9zk, in $2YouTube. - - - Wait -@@ -7755,7 +7755,7 @@ Keep your key file in a safe place. You will need it to create new versions of y - 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 - - - -@@ -7996,10 +7996,10 @@ Check your passwords anytime in $1Google - Suggest strong password - - -- Password will be saved in your Google Account, $1user@gmail.com. You won’t have to remember it. -+ Password will be saved in your Google Account, $1user@9ma1l.qjz9zk. You won’t have to remember it. - - -- You won’t need to remember this password. It will be saved to Google Password Manager for $1user@gmail.com. -+ You won’t need to remember this password. It will be saved to Google Password Manager for $1user@9ma1l.qjz9zk. - - - Confirm your username -@@ -8195,7 +8195,7 @@ Check your passwords anytime in $1Google - Clear browsing data - - -- 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 -@@ -8205,7 +8205,7 @@ Check your passwords anytime in $1Google - - - -- We were not able to delete all passwords stored in your Google Account. Try again or visit <a target="_blank" href="$1">passwords.google.com</a>. -+ We were not able to delete all passwords stored in your Google Account. Try again or visit <a target="_blank" href="$1">passwords.9oo91e.qjz9zk</a>. - - - Some passwords were not deleted -@@ -8426,7 +8426,7 @@ Check your passwords anytime in $1Google - Uploading ($127%)... - - -- Waiting for $1www.google.com... -+ Waiting for $1www.9oo91e.qjz9zk... - - - -@@ -8847,7 +8847,7 @@ Check your passwords anytime in $1Google - - - -- Select a certificate to authenticate yourself to $1www.google.com -+ Select a certificate to authenticate yourself to $1www.9oo91e.qjz9zk - - - -@@ -8855,10 +8855,10 @@ Check your passwords anytime in $1Google - 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. -@@ -9167,7 +9167,7 @@ Check your passwords anytime in $1Google - Sending link to $1Ted's Pixel2 - - -- $1Your devices$2 · $3foo@gmail.com -+ $1Your devices$2 · $3foo@9ma1l.qjz9zk - - - To send this tab to another device, sign in to Chrome on both devices -@@ -9540,7 +9540,7 @@ Check your passwords anytime in $1Google - - - -- Including sites from the same domain, for example, google.com and mail.google.com. Sites you’re viewing can save data on your device. -+ Including sites from the same domain, for example, 9oo91e.qjz9zk and mail.9oo91e.qjz9zk. Sites you’re viewing can save data on your device. - - - -@@ -10158,16 +10158,16 @@ Check your passwords anytime in $1Google - This will separate your browsing from $1bob@example.com - - -- $2Bob's profile is linked to $1bob@gmail.com -+ $2Bob's profile is linked to $1bob@9ma1l.qjz9zk - - - Separate your browsing? - - -- This new profile will be managed by your organization. <a href="$1" target="_blank">https://help.google.com/articleLinkLearn more</a> -+ This new profile will be managed by your organization. <a href="$1" target="_blank">https://help.9oo91e.qjz9zk/articleLinkLearn more</a> - - -- This new profile will be managed by $1example.com. <a href="$2" target="_blank">https://help.google.com/articleLinkLearn more</a> -+ This new profile will be managed by $1example.com. <a href="$2" target="_blank">https://help.9oo91e.qjz9zk/articleLinkLearn more</a> - - - -@@ -10182,10 +10182,10 @@ Check your passwords anytime in $1Google - 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 -@@ -10210,13 +10210,13 @@ Check your passwords anytime in $1Google - 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 -@@ -10265,7 +10265,7 @@ Check your passwords anytime in $1Google - 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. -@@ -10276,8 +10276,8 @@ Check your passwords anytime in $1Google - - Cancel - -- -- Always allow $1https://google.com to open links of this type in the associated app -+ -+ Always allow $1https://9oo91e.qjz9zk to open links of this type in the associated app - - - -@@ -10881,7 +10881,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 - - - -@@ -11308,7 +11308,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - This site has been blocked from accessing your location. - - -- Always allow $1mail.google.com to access your location -+ Always allow $1mail.9oo91e.qjz9zk to access your location - - - Continue blocking this site from accessing your location -@@ -11351,7 +11351,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - This site has been blocked from having full control of MIDI devices. - - -- Always allow $1mail.google.com to have full control of MIDI devices -+ Always allow $1mail.9oo91e.qjz9zk to have full control of MIDI devices - - - Continue blocking this site from having full control of MIDI devices -@@ -11439,7 +11439,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 - - - -@@ -11471,10 +11471,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 - - - -@@ -11585,19 +11585,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. -@@ -11620,7 +11620,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 -@@ -11647,7 +11647,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 - - - -@@ -11851,7 +11851,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. - - -- $1Google Hangouts wants to share the contents of your screen with $2https://google.com. -+ $1Google Hangouts wants to share the contents of your screen with $2https://9oo91e.qjz9zk. - - - Share system audio -@@ -11980,8 +11980,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 -@@ -12201,7 +12201,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 -@@ -12313,7 +12313,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 -@@ -12353,7 +12353,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 -@@ -12438,7 +12438,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - - - -- $1www.google.com wants to use local fonts -+ $1www.9oo91e.qjz9zk wants to use local fonts - - - No matching font found. -@@ -12569,7 +12569,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 - - -@@ -12778,13 +12778,13 @@ 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 - - - Continue - - -- Verify your identity with $1google.com -+ Verify your identity with $19oo91e.qjz9zk - - - Pick an option -@@ -12900,7 +12900,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - - - -- accounts.google.com$1 sent a notification to your phone. To confirm it's you, follow the steps there. -+ accounts.9oo91e.qjz9zk$1 sent a notification to your phone. To confirm it's you, follow the steps there. - - - Didn't get it? -@@ -12918,7 +12918,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - Security key request - - -- accounts.google.com$1 sent a notification to your phone. To confirm it's you, tap the “Verify with this phone$2” notification and follow the steps. -+ accounts.9oo91e.qjz9zk$1 sent a notification to your phone. To confirm it's you, tap the “Verify with this phone$2” notification and follow the steps. - - - Use phone with a QR code -@@ -13017,7 +13017,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - - - -- -+ - Select an account to sign in - - -@@ -13033,7 +13033,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. -@@ -13042,13 +13042,13 @@ 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 this site to identify your security key? - - -- accounts.google.com$1 issued your security key and wants to learn its ID number. The site will know exactly which security key you're using. -+ accounts.9oo91e.qjz9zk$1 issued your security key and wants to learn its ID number. The site will know exactly which security key you're using. - - - Allow -@@ -13080,10 +13080,10 @@ Please help our engineers fix this problem. Tell us what happened right before y - - This passkey will only be saved on this device. It will remain on this device after you close all Incognito windows. - -- -+ - This passkey will only be saved in Windows Hello - -- -+ - This passkey will be saved only in Windows Hello. It will remain on this device after you close all Incognito windows. - - -@@ -13478,7 +13478,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - - - -- Also clear browsing data ($1www.google.com) which may sign you out of Google.com. $2Learn more -+ Also clear browsing data ($1www.9oo91e.qjz9zk) which may sign you out of Google.com. $2Learn more - - - -@@ -13835,7 +13835,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - - Help us build a more private web - -- -+ - Help us build a better web - - -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 -@@ -472,7 +472,7 @@ chromium_strings.grd. --> - To send a number from here to your Android phone, sign in to Chrome on both devices. - - -- To send a number from $1www.google.com to your Android phone, sign in to Chrome on both devices. -+ To send a number from $1www.9oo91e.qjz9zk to your Android phone, sign in to Chrome on both devices. - - - Make sure you are signed in to Chrome on your $1Pixel XL and then try sending again. -@@ -537,14 +537,14 @@ Google Chrome is unable to recover your settings. - - - --If you want to use this account one-time only, you can use Guest mode in Chrome browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://google.com/">add a new person</a> to your $2Chromebook. -+If you want to use this account one-time only, you can use Guest mode in Chrome browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://9oo91e.qjz9zk/">add a new person</a> to your $2Chromebook. - --Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://google.com/">Settings</a>. -+Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://9oo91e.qjz9zk/">Settings</a>. - - --If you want to use this account one-time only, you can use <a id="guestModeLink" href="#">Guest mode</a> in Chrome browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://google.com/">add a new person</a> to your $2Chromebook. -+If you want to use this account one-time only, you can use <a id="guestModeLink" href="#">Guest mode</a> in Chrome browser. If you want to add an account for someone else, <a target="_blank" id="newPersonLink" href="$1https://9oo91e.qjz9zk/">add a new person</a> to your $2Chromebook. - --Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://google.com/">Settings</a>. -+Permissions you've already given to websites and apps may apply to this account. You can manage your Google Accounts in <a id="osSettingsLink" href="$3https://9oo91e.qjz9zk/">Settings</a>. - - - -@@ -770,7 +770,7 @@ Permissions you've already given to websites and apps may apply to this account. - - - -- Also clear data from Chrome ($1www.google.com) -+ Also clear data from Chrome ($1www.9oo91e.qjz9zk) - - - -@@ -879,7 +879,7 @@ Permissions you've already given to websites and apps may apply to this account. - - - -- 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. -@@ -914,7 +914,7 @@ Permissions you've already given to websites and apps may apply to this account. - 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. - - - -@@ -936,7 +936,7 @@ Permissions you've already given to websites and apps may apply to this account. - - - -- $1foo@gmail.com was previously using Chrome -+ $1foo@9ma1l.qjz9zk was previously using Chrome - - - -@@ -955,10 +955,10 @@ Permissions you've already given to websites and apps may apply to this account. - $1Elisa is already signed in to this Chrome profile. To keep your browsing separate, Chrome can create your own profile for you. - - -- $1Elisa is already signed in to this Chrome profile. This will create a new Chrome profile for $2foo@gmail.com -+ $1Elisa is already signed in to this Chrome profile. This will create a new Chrome profile for $2foo@9ma1l.qjz9zk - - -- This will create a new Chrome profile for $1foo@gmail.com -+ This will create a new Chrome profile for $1foo@9ma1l.qjz9zk - - - Another account is already signed in. To keep your browsing separate, Chrome can create your own profile for you. -@@ -1509,7 +1509,7 @@ Permissions you've already given to websites and apps may apply to this account. - Welcome to Chrome - - -- Get your Chrome browser stuff from $1Jane.Doe@gmail.com -+ Get your Chrome browser stuff from $1Jane.Doe@9ma1l.qjz9zk - - - Your account is managed by $1example.com. Your administrator can see and edit this Chrome browser profile and its data like bookmarks, history, and passwords. -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 -@@ -168,12 +168,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] - - - -@@ -183,18 +183,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/browser/about_flags.cc b/chrome/browser/about_flags.cc ---- a/chrome/browser/about_flags.cc -+++ b/chrome/browser/about_flags.cc -@@ -4711,7 +4711,7 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kSyncSandboxDescription, kOsAll, - SINGLE_VALUE_TYPE_AND_VALUE( - syncer::kSyncServiceURL, -- "https://chrome-sync.sandbox.google.com/chrome-sync/alpha")}, -+ "https://chrome-sync.sandbox.9oo91e.qjz9zk/chrome-sync/alpha")}, - #if !BUILDFLAG(IS_ANDROID) - {"block-migrated-default-chrome-app-sync", - flag_descriptions::kBlockMigratedDefaultChromeAppSyncName, -@@ -4999,7 +4999,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")}, - {"omaha-min-sdk-version-android", - flag_descriptions::kOmahaMinSdkVersionAndroidName, -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/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 -@@ -538,7 +538,7 @@ void WebApkInstaller::OnHaveSufficientSpaceForInstall() { - "apps on Android so that they show up in the user's app drawer and " - "optionally home screen. Web apps installed in this way are called " - "WebAPKs. See " -- "https://developers.google.com/web/fundamentals/integration/webapks " -+ "https://developers.9oo91e.qjz9zk/web/fundamentals/integration/webapks " - "for more details. WebAPKs are created on a Google server on " - "behalf of the Chrome client and the requesting app. In order for " - "the server to create a WebAPK, it first needs to know metadata " -@@ -615,7 +615,7 @@ void WebApkInstaller::OnGotIconMurmur2Hashes( - "Android so that they show up in the user's app drawer and " - "optionally home screen. Web apps installed in this way are called " - "WebAPKs. See " -- "https://developers.google.com/web/fundamentals/integration/webapks " -+ "https://developers.9oo91e.qjz9zk/web/fundamentals/integration/webapks " - "for more details. WebAPKs are created on a Google server on " - "behalf of the Chrome client and the user. In order for the server " - "to create a WebAPK, it first needs to know metadata about the web " -diff --git a/chrome/browser/apps/app_service/webapk/webapk_install_task.cc b/chrome/browser/apps/app_service/webapk/webapk_install_task.cc ---- a/chrome/browser/apps/app_service/webapk/webapk_install_task.cc -+++ b/chrome/browser/apps/app_service/webapk/webapk_install_task.cc -@@ -67,7 +67,7 @@ const uint64_t kMurmur2HashSeed = 0; - constexpr base::TimeDelta kMinterResponseTimeout = base::Seconds(60); - - constexpr char kWebApkServerUrl[] = -- "https://webapk.googleapis.com/v1/webApks?key="; -+ "https://webapk.9oo91eapis.qjz9zk/v1/webApks?key="; - - constexpr net::NetworkTrafficAnnotationTag kWebApksTrafficAnnotation = - net::DefineNetworkTrafficAnnotation("webapk_minter_install_request", -diff --git a/chrome/browser/apps/digital_goods/digital_goods_ash.cc b/chrome/browser/apps/digital_goods/digital_goods_ash.cc ---- a/chrome/browser/apps/digital_goods/digital_goods_ash.cc -+++ b/chrome/browser/apps/digital_goods/digital_goods_ash.cc -@@ -21,7 +21,7 @@ namespace apps { - - namespace { - --constexpr char kSupportedPaymentMethod[] = "https://play.google.com/billing"; -+constexpr char kSupportedPaymentMethod[] = "https://play.9oo91e.qjz9zk/billing"; - - // Gets the package name of the Android app linked to this web app. - absl::optional GetTwaPackageName(const std::string& app_id) { -diff --git a/chrome/browser/apps/digital_goods/digital_goods_factory_impl.cc b/chrome/browser/apps/digital_goods/digital_goods_factory_impl.cc ---- a/chrome/browser/apps/digital_goods/digital_goods_factory_impl.cc -+++ b/chrome/browser/apps/digital_goods/digital_goods_factory_impl.cc -@@ -16,7 +16,7 @@ - - namespace { - --constexpr char kSupportedPaymentMethod[] = "https://play.google.com/billing"; -+constexpr char kSupportedPaymentMethod[] = "https://play.9oo91e.qjz9zk/billing"; - - } // namespace - -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 -@@ -24,7 +24,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/ash/android_sms/android_sms_urls.cc b/chrome/browser/ash/android_sms/android_sms_urls.cc ---- a/chrome/browser/ash/android_sms/android_sms_urls.cc -+++ b/chrome/browser/ash/android_sms/android_sms_urls.cc -@@ -18,15 +18,15 @@ namespace android_sms { - namespace { - - // Note: Install and app URLs are the same for the android.com domain. --const char kProdAndroidUrl[] = "https://messages.android.com/"; -+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"; - - GURL GetCustomDomain(bool use_install_url) { - std::string custom_domain = -@@ -52,13 +52,13 @@ GURL GetCustomDomain(bool use_install_url) { - 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/ash/app_mode/fake_cws.cc b/chrome/browser/ash/app_mode/fake_cws.cc ---- a/chrome/browser/ash/app_mode/fake_cws.cc -+++ b/chrome/browser/ash/app_mode/fake_cws.cc -@@ -55,7 +55,7 @@ const char kPrivateStoreAppHasUpdateTemplate[] = - - const char kUpdateContentTemplate[] = - "" -- "" - "" - "$APPS" -diff --git a/chrome/browser/ash/arc/auth/arc_background_auth_code_fetcher.cc b/chrome/browser/ash/arc/auth/arc_background_auth_code_fetcher.cc ---- a/chrome/browser/ash/arc/auth/arc_background_auth_code_fetcher.cc -+++ b/chrome/browser/ash/arc/auth/arc_background_auth_code_fetcher.cc -@@ -58,7 +58,7 @@ signin::ScopeSet GetAccessTokenScopes() { - } // 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/ash/arc/auth/arc_robot_auth_code_fetcher.cc b/chrome/browser/ash/arc/auth/arc_robot_auth_code_fetcher.cc ---- a/chrome/browser/ash/arc/auth/arc_robot_auth_code_fetcher.cc -+++ b/chrome/browser/ash/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::BrowserPolicyConnectorAsh* const connector = -diff --git a/chrome/browser/ash/arc/input_overlay/ui/input_menu_view.cc b/chrome/browser/ash/arc/input_overlay/ui/input_menu_view.cc ---- a/chrome/browser/ash/arc/input_overlay/ui/input_menu_view.cc -+++ b/chrome/browser/ash/arc/input_overlay/ui/input_menu_view.cc -@@ -84,7 +84,7 @@ constexpr int kAlphaLeftMargin = 8; - constexpr int kAlphaLeftMarginSmall = 4; - - constexpr char kFeedbackUrl[] = -- "https://docs.google.com/forms/d/e/" -+ "https://docs.9oo91e.qjz9zk/forms/d/e/" - "1FAIpQLSfL3ttPmopJj65P4EKr--SA18Sc9bbQVMnd0oueMhJu_42TbA/" - "viewform?usp=pp_url"; - // Entry for the survey form from above link. -diff --git a/chrome/browser/ash/assistant/assistant_util.cc b/chrome/browser/ash/assistant/assistant_util.cc ---- a/chrome/browser/ash/assistant/assistant_util.cc -+++ b/chrome/browser/ash/assistant/assistant_util.cc -@@ -118,8 +118,8 @@ bool IsEmailDomainSupported(const Profile* profile) { - const std::string email = GetUser(profile)->GetAccountId().GetUserEmail(); - DCHECK(!email.empty()); - -- return (gaia::ExtractDomainName(email) == "gmail.com" || -- gaia::ExtractDomainName(email) == "googlemail.com" || -+ return (gaia::ExtractDomainName(email) == "9ma1l.qjz9zk" || -+ gaia::ExtractDomainName(email) == "9oo91email.qjz9zk" || - gaia::IsGoogleInternalAccountEmail(email)); - } - -diff --git a/chrome/browser/ash/attestation/attestation_ca_client.cc b/chrome/browser/ash/attestation/attestation_ca_client.cc ---- a/chrome/browser/ash/attestation/attestation_ca_client.cc -+++ b/chrome/browser/ash/attestation/attestation_ca_client.cc -@@ -33,15 +33,15 @@ const char kAttestationServerTest[] = "test"; - - // Endpoints for the default Google Privacy CA operations. - const char kDefaultEnrollRequestURL[] = -- "https://chromeos-ca.gstatic.com/enroll"; -+ "https://chromeos-ca.95tat1c.qjz9zk/enroll"; - const char kDefaultCertificateRequestURL[] = -- "https://chromeos-ca.gstatic.com/sign"; -+ "https://chromeos-ca.95tat1c.qjz9zk/sign"; - - // Endpoints for the test Google Privacy CA operations. - const char kTestEnrollRequestURL[] = -- "https://asbestos-qa.corp.google.com/enroll"; -+ "https://asbestos-qa.corp.9oo91e.qjz9zk/enroll"; - const char kTestCertificateRequestURL[] = -- "https://asbestos-qa.corp.google.com/sign"; -+ "https://asbestos-qa.corp.9oo91e.qjz9zk/sign"; - - const char kMimeContentType[] = "application/octet-stream"; - -diff --git a/chrome/browser/ash/borealis/borealis_util.cc b/chrome/browser/ash/borealis/borealis_util.cc ---- a/chrome/browser/ash/borealis/borealis_util.cc -+++ b/chrome/browser/ash/borealis/borealis_util.cc -@@ -44,7 +44,7 @@ namespace { - - // Base feedback form URL, without query parameters for prefilling. - static constexpr char kFeedbackUrl[] = -- "https://docs.google.com/forms/d/e/" -+ "https://docs.9oo91e.qjz9zk/forms/d/e/" - "1FAIpQLScGvT2BIwYJe9g15OINX2pvw6TgK8e2ihvSq3hHZudAneRmuA/" - "viewform?usp=pp_url"; - // Query parameter keys for prefilling form data. -diff --git a/chrome/browser/ash/child_accounts/child_user_service.cc b/chrome/browser/ash/child_accounts/child_user_service.cc ---- a/chrome/browser/ash/child_accounts/child_user_service.cc -+++ b/chrome/browser/ash/child_accounts/child_user_service.cc -@@ -61,7 +61,7 @@ const char ChildUserService::kFamilyLinkHelperAppPackageName[] = - "com.google.android.apps.kids.familylinkhelper"; - // static - const char ChildUserService::kFamilyLinkHelperAppPlayStoreURL[] = -- "https://play.google.com/store/apps/" -+ "https://play.9oo91e.qjz9zk/store/apps/" - "details?id=com.google.android.apps.kids.familylinkhelper"; - - ChildUserService::TestApi::TestApi(ChildUserService* service) -diff --git a/chrome/browser/ash/crostini/crostini_util.cc b/chrome/browser/ash/crostini/crostini_util.cc ---- a/chrome/browser/ash/crostini/crostini_util.cc -+++ b/chrome/browser/ash/crostini/crostini_util.cc -@@ -60,7 +60,7 @@ const char kCrostiniDefaultVmName[] = "termina"; - const char kCrostiniDefaultContainerName[] = "penguin"; - const char kCrostiniDefaultUsername[] = "emperor"; - const char kCrostiniDefaultImageServerUrl[] = -- "https://storage.googleapis.com/cros-containers/%d"; -+ "https://storage.9oo91eapis.qjz9zk/cros-containers/%d"; - const char kCrostiniDlcName[] = "termina-dlc"; - - const base::FilePath::CharType kHomeDirectory[] = -diff --git a/chrome/browser/ash/customization/customization_document.cc b/chrome/browser/ash/customization/customization_document.cc ---- a/chrome/browser/ash/customization/customization_document.cc -+++ b/chrome/browser/ash/customization/customization_document.cc -@@ -200,7 +200,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/ash/enhanced_network_tts/enhanced_network_tts_constants.cc b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_constants.cc ---- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_constants.cc -+++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_constants.cc -@@ -10,7 +10,7 @@ namespace enhanced_network_tts { - const char kGoogApiKeyHeader[] = "X-Goog-Api-Key"; - - const char kReadAloudServerUrl[] = -- "https://readaloud.googleapis.com//v1:generateAudioDocStream"; -+ "https://readaloud.9oo91eapis.qjz9zk//v1:generateAudioDocStream"; - - const char kNetworkRequestUploadType[] = "application/json"; - -diff --git a/chrome/browser/ash/file_manager/file_manager_string_util.cc b/chrome/browser/ash/file_manager/file_manager_string_util.cc ---- a/chrome/browser/ash/file_manager/file_manager_string_util.cc -+++ b/chrome/browser/ash/file_manager/file_manager_string_util.cc -@@ -32,29 +32,29 @@ 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 page to manage Google Drive storage. - const char kGoogleDriveManageStorageUrl[] = -- "https://drive.google.com/drive/u/0/quota"; -+ "https://drive.9oo91e.qjz9zk/drive/u/0/quota"; - - // 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 the help page about making Google Drive files available offline. - const char kGoogleDriveOfflineHelpUrl[] = -- "http://support.google.com/chromebook/?p=offline_files"; -+ "http://support.9oo91e.qjz9zk/chromebook/?p=offline_files"; - - // 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/ash/file_manager/open_with_browser.cc b/chrome/browser/ash/file_manager/open_with_browser.cc ---- a/chrome/browser/ash/file_manager/open_with_browser.cc -+++ b/chrome/browser/ash/file_manager/open_with_browser.cc -@@ -173,18 +173,18 @@ bool OpenNewTabForHostedOfficeFile(const GURL& url) { - LOG(ERROR) << "Invalid URL"; - return false; - } -- if (url_with_query_param.host() == "drive.google.com") { -+ if (url_with_query_param.host() == "drive.9oo91e.qjz9zk") { - UMA_HISTOGRAM_ENUMERATION( - file_tasks::kDriveErrorMetricName, - file_tasks::OfficeDriveErrors::DRIVE_ALTERNATE_URL); -- LOG(ERROR) << "URL was from drive.google.com"; -+ LOG(ERROR) << "URL was from drive.9oo91e.qjz9zk"; - return false; - } -- if (url_with_query_param.host() != "docs.google.com") { -+ if (url_with_query_param.host() != "docs.9oo91e.qjz9zk") { - UMA_HISTOGRAM_ENUMERATION( - file_tasks::kDriveErrorMetricName, - file_tasks::OfficeDriveErrors::UNEXPECTED_ALTERNATE_URL); -- LOG(ERROR) << "URL was not from docs.google.com"; -+ LOG(ERROR) << "URL was not from docs.9oo91e.qjz9zk"; - return false; - } - -diff --git a/chrome/browser/ash/hats/hats_dialog.cc b/chrome/browser/ash/hats/hats_dialog.cc ---- a/chrome/browser/ash/hats/hats_dialog.cc -+++ b/chrome/browser/ash/hats/hats_dialog.cc -@@ -61,7 +61,7 @@ const char kClientQuestionAnsweredRegex[] = "answer-(\\d+)-((?:\\d+,?)+)"; - const char kClientQuestionAnsweredScoreRegex[] = "(\\d+),?"; - - constexpr char kCrOSHaTSURL[] = -- "https://storage.googleapis.com/chromeos-hats-web-stable/index.html"; -+ "https://storage.9oo91eapis.qjz9zk/chromeos-hats-web-stable/index.html"; - - } // namespace - -diff --git a/chrome/browser/ash/input_method/assistive_suggester_client_filter.cc b/chrome/browser/ash/input_method/assistive_suggester_client_filter.cc ---- a/chrome/browser/ash/input_method/assistive_suggester_client_filter.cc -+++ b/chrome/browser/ash/input_method/assistive_suggester_client_filter.cc -@@ -22,27 +22,27 @@ namespace { - const char* kAllowedDomainAndPathsForPersonalInfoSuggester[][2] = { - {"discord.com", ""}, {"messenger.com", ""}, - {"web.whatsapp.com", ""}, {"web.skype.com", ""}, -- {"duo.google.com", ""}, {"hangouts.google.com", ""}, -- {"messages.google.com", ""}, {"web.telegram.org", ""}, -- {"voice.google.com", ""}, {"mail.google.com", "/chat"}, -+ {"duo.9oo91e.qjz9zk", ""}, {"hangouts.9oo91e.qjz9zk", ""}, -+ {"messages.9oo91e.qjz9zk", ""}, {"web.telegram.org", ""}, -+ {"voice.9oo91e.qjz9zk", ""}, {"mail.9oo91e.qjz9zk", "/chat"}, - }; - - const char* kAllowedDomainAndPathsForEmojiSuggester[][2] = { - {"discord.com", ""}, {"messenger.com", ""}, - {"web.whatsapp.com", ""}, {"web.skype.com", ""}, -- {"duo.google.com", ""}, {"hangouts.google.com", ""}, -- {"messages.google.com", ""}, {"web.telegram.org", ""}, -- {"voice.google.com", ""}, {"mail.google.com", "/chat"}, -+ {"duo.9oo91e.qjz9zk", ""}, {"hangouts.9oo91e.qjz9zk", ""}, -+ {"messages.9oo91e.qjz9zk", ""}, {"web.telegram.org", ""}, -+ {"voice.9oo91e.qjz9zk", ""}, {"mail.9oo91e.qjz9zk", "/chat"}, - }; - - // TODO(b/3339115): Add web.skype.com back to the list after compatibility - // issues are solved. - const char* kAllowedDomainAndPathsForMultiWordSuggester[][2] = { - {"discord.com", ""}, {"messenger.com", ""}, -- {"web.whatsapp.com", ""}, {"duo.google.com", ""}, -- {"hangouts.google.com", ""}, {"messages.google.com", ""}, -- {"web.telegram.org", ""}, {"voice.google.com", ""}, -- {"mail.google.com", "/chat"}, -+ {"web.whatsapp.com", ""}, {"duo.9oo91e.qjz9zk", ""}, -+ {"hangouts.9oo91e.qjz9zk", ""}, {"messages.9oo91e.qjz9zk", ""}, -+ {"web.telegram.org", ""}, {"voice.9oo91e.qjz9zk", ""}, -+ {"mail.9oo91e.qjz9zk", "/chat"}, - }; - - const char* kTestUrls[] = { -@@ -136,9 +136,9 @@ const char* kAllowedAppsForMultiWordSuggester[] = { - - const char* kDeniedDomainAndPathsForDiacritics[][2] = { - // Google Slides: delete on insert does not work -- {"docs.google.com", "/presentation"}, -+ {"docs.9oo91e.qjz9zk", "/presentation"}, - // Google Docs: delete on insert does not work -- {"docs.google.com", "/document"}, -+ {"docs.9oo91e.qjz9zk", "/document"}, - }; - - const char* kDeniedAppsForDiacritics[] = { -diff --git a/chrome/browser/ash/input_method/ime_rules_config.h b/chrome/browser/ash/input_method/ime_rules_config.h ---- a/chrome/browser/ash/input_method/ime_rules_config.h -+++ b/chrome/browser/ash/input_method/ime_rules_config.h -@@ -50,19 +50,19 @@ class ImeRulesConfig { - // The default denylist of domains that will turn off auto_correct feature. - std::vector default_auto_correct_domain_denylist_{ - "amazon.com", -- "b.corp.google.com", -- "buganizer.corp.google.com", -- "cider.corp.google.com", -- "classroom.google.com", -+ "b.corp.9oo91e.qjz9zk", -+ "buganizer.corp.9oo91e.qjz9zk", -+ "cider.corp.9oo91e.qjz9zk", -+ "classroom.9oo91e.qjz9zk", - "desmos.com", -- "docs.google.com", -- "facebook.com", -+ "docs.9oo91e.qjz9zk", -+ "f8c3b00k.qjz9zk", - "instagram.com", - "outlook.live.com", - "outlook.office.com", - "quizlet.com", - "whatsapp.com", -- "youtube.com", -+ "y0u1ub3.qjz9zk", - }; - }; - -diff --git a/chrome/browser/ash/login/easy_unlock/easy_unlock_key_names.cc b/chrome/browser/ash/login/easy_unlock/easy_unlock_key_names.cc ---- a/chrome/browser/ash/login/easy_unlock/easy_unlock_key_names.cc -+++ b/chrome/browser/ash/login/easy_unlock/easy_unlock_key_names.cc -@@ -18,7 +18,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/ash/login/gaia_reauth_token_fetcher.cc b/chrome/browser/ash/login/gaia_reauth_token_fetcher.cc ---- a/chrome/browser/ash/login/gaia_reauth_token_fetcher.cc -+++ b/chrome/browser/ash/login/gaia_reauth_token_fetcher.cc -@@ -30,7 +30,7 @@ namespace { - - // TODO(b/197615068): Temporarily point to staging environment. - const char kGetReauthTokenUrl[] = -- "https://staging-chromeoslogin-pa.sandbox.googleapis.com/v1/rart"; -+ "https://staging-chromeoslogin-pa.sandbox.9oo91eapis.qjz9zk/v1/rart"; - const char kApiKeyParameter[] = "key"; - - constexpr base::TimeDelta kWaitTimeout = base::Seconds(5); -diff --git a/chrome/browser/ash/login/marketing_backend_connector.cc b/chrome/browser/ash/login/marketing_backend_connector.cc ---- a/chrome/browser/ash/login/marketing_backend_connector.cc -+++ b/chrome/browser/ash/login/marketing_backend_connector.cc -@@ -32,10 +32,10 @@ namespace { - - // The scope that will be used to access the ChromebookEmailService API. - const char kChromebookOAuth2Scope[] = -- "https://www.googleapis.com/auth/chromebook.email"; -+ "https://www.9oo91eapis.qjz9zk/auth/chromebook.email"; - - // API Endpoint --const char kAccessPointsApiEndpoint[] = "https://accesspoints.googleapis.com/"; -+const char kAccessPointsApiEndpoint[] = "https://accesspoints.9oo91eapis.qjz9zk/"; - const char kChromebookEmailServicePath[] = "v2/chromebookEmailPreferences"; - constexpr size_t kResponseMaxBodySize = 4 * 1024 * 1024; // 4MiB - -diff --git a/chrome/browser/ash/login/oobe_quick_start/connectivity/target_fido_controller.cc b/chrome/browser/ash/login/oobe_quick_start/connectivity/target_fido_controller.cc ---- a/chrome/browser/ash/login/oobe_quick_start/connectivity/target_fido_controller.cc -+++ b/chrome/browser/ash/login/oobe_quick_start/connectivity/target_fido_controller.cc -@@ -18,8 +18,8 @@ namespace ash::quick_start { - - namespace { - --const char kRelyingPartyId[] = "google.com"; --const char kOrigin[] = "https://accounts.google.com"; -+const char kRelyingPartyId[] = "9oo91e.qjz9zk"; -+const char kOrigin[] = "https://accounts.9oo91e.qjz9zk"; - const char kCtapRequestType[] = "webauthn.get"; - - const uint8_t kAuthenticatorGetAssertionCommand = 0x02; -diff --git a/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc b/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc ---- a/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc -+++ b/chrome/browser/ash/login/saml/password_sync_token_fetcher.cc -@@ -73,7 +73,7 @@ const char kAcceptValue[] = - "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; - - const char kPasswordSyncTokenBaseEndPoint[] = -- "https://chromedevicetoken.googleapis.com/v1/tokens"; -+ "https://chromedevicetoken.9oo91eapis.qjz9zk/v1/tokens"; - - const char kPasswordSyncTokenCreateEndPoint[] = ""; - -diff --git a/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc b/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc ---- a/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc -+++ b/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc -@@ -38,10 +38,10 @@ namespace ash { - namespace { - - constexpr const char kGetAppListUrl[] = -- "https://android.clients.google.com/fdfe/chrome/getfastreinstallappslist"; -+ "https://android.clients.9oo91e.qjz9zk/fdfe/chrome/getfastreinstallappslist"; - - constexpr const char kGetRevisedAppListUrl[] = -- "https://android.clients.google.com/fdfe/chrome/getSetupAppRecommendations"; -+ "https://android.clients.9oo91e.qjz9zk/fdfe/chrome/getSetupAppRecommendations"; - - constexpr int kResponseErrorNotEnoughApps = 5; - -diff --git a/chrome/browser/ash/login/users/default_user_image/default_user_images.cc b/chrome/browser/ash/login/users/default_user_image/default_user_images.cc ---- a/chrome/browser/ash/login/users/default_user_image/default_user_images.cc -+++ b/chrome/browser/ash/login/users/default_user_image/default_user_images.cc -@@ -292,7 +292,7 @@ const char kDefaultUrlPrefix[] = "chrome://theme/IDR_LOGIN_DEFAULT_USER_"; - const char kZeroDefaultUrl[] = "chrome://theme/IDR_LOGIN_DEFAULT_USER"; - // TODO(b/244369871): Support 1x/2x images based on pixel density. - const char kGstaticImagePrefix[] = -- "https://www.gstatic.com/chromecast/home/chromeos/avatars/" -+ "https://www.95tat1c.qjz9zk/chromecast/home/chromeos/avatars/" - "default_200_percent/"; - - } // namespace -diff --git a/chrome/browser/ash/net/network_diagnostics/arc_dns_resolution_routine.cc b/chrome/browser/ash/net/network_diagnostics/arc_dns_resolution_routine.cc ---- a/chrome/browser/ash/net/network_diagnostics/arc_dns_resolution_routine.cc -+++ b/chrome/browser/ash/net/network_diagnostics/arc_dns_resolution_routine.cc -@@ -21,9 +21,9 @@ namespace mojom = ::chromeos::network_diagnostics::mojom; - - // These hostnames were chosen because they need to be resolved for a - // successful ARC provisioning step. --constexpr char kHostname1[] = "www.googleapis.com"; --constexpr char kHostname2[] = "android.clients.google.com"; --constexpr char kHostname3[] = "android.googleapis.com"; -+constexpr char kHostname1[] = "www.9oo91eapis.qjz9zk"; -+constexpr char kHostname2[] = "android.clients.9oo91e.qjz9zk"; -+constexpr char kHostname3[] = "android.9oo91eapis.qjz9zk"; - - } // namespace - -diff --git a/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc b/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc ---- a/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc -+++ b/chrome/browser/ash/net/network_diagnostics/dns_latency_routine.cc -@@ -44,7 +44,7 @@ constexpr base::TimeDelta kBadLatencyMs = - base::Milliseconds(util::kDnsPotentialProblemLatencyMs); - constexpr base::TimeDelta kVeryBadLatencyMs = - base::Milliseconds(util::kDnsProblemLatencyMs); --constexpr char kHostSuffix[] = "-ccd-testing-v4.metric.gstatic.com"; -+constexpr char kHostSuffix[] = "-ccd-testing-v4.metric.95tat1c.qjz9zk"; - - const std::string GetRandomString(int length) { - std::string prefix; -diff --git a/chrome/browser/ash/net/network_diagnostics/dns_resolution_routine.cc b/chrome/browser/ash/net/network_diagnostics/dns_resolution_routine.cc ---- a/chrome/browser/ash/net/network_diagnostics/dns_resolution_routine.cc -+++ b/chrome/browser/ash/net/network_diagnostics/dns_resolution_routine.cc -@@ -27,7 +27,7 @@ namespace { - // TODO(https://crbug.com/1164001): remove when migrated to namespace ash. - namespace mojom = ::chromeos::network_diagnostics::mojom; - --constexpr char kHostname[] = "ccd-testing-v4.gstatic.com"; -+constexpr char kHostname[] = "ccd-testing-v4.95tat1c.qjz9zk"; - constexpr int kHttpPort = 80; - // For an explanation of error codes, see "net/base/net_error_list.h". - constexpr int kRetryResponseCodes[] = {net::ERR_TIMED_OUT, -diff --git a/chrome/browser/ash/net/network_diagnostics/network_diagnostics_util.cc b/chrome/browser/ash/net/network_diagnostics/network_diagnostics_util.cc ---- a/chrome/browser/ash/net/network_diagnostics/network_diagnostics_util.cc -+++ b/chrome/browser/ash/net/network_diagnostics/network_diagnostics_util.cc -@@ -40,14 +40,14 @@ std::vector GetRandomPrefixes(size_t num_prefixes, int length) { - } // namespace - - const char* GetGstaticHostSuffix() { -- static const char* gstatic_host_suffix = "-ccd-testing-v4.metric.gstatic.com"; -+ static const char* gstatic_host_suffix = "-ccd-testing-v4.metric.95tat1c.qjz9zk"; - return gstatic_host_suffix; - } - - const std::vector& GetFixedHosts() { - static base::NoDestructor> fixed_hostnames( -- {"www.google.com", "mail.google.com", "drive.google.com", -- "accounts.google.com", "plus.google.com", "groups.google.com"}); -+ {"www.9oo91e.qjz9zk", "mail.9oo91e.qjz9zk", "drive.9oo91e.qjz9zk", -+ "accounts.9oo91e.qjz9zk", "plus.9oo91e.qjz9zk", "groups.9oo91e.qjz9zk"}); - return *fixed_hostnames; - } - -@@ -199,10 +199,10 @@ std::vector GetTcpPortsForCustomStunServer() { - - std::vector GetDefaultMediaUrls() { - const char* const kHostnames[] = { -- "https://apis.google.com", "https://talkgadget.google.com", -- "https://clients6.google.com", "https://hangouts.google.com", -- "https://client-channel.google.com", "https://googleapis.com", -- "https://accounts.google.com", "https://clients4.google.com"}; -+ "https://apis.9oo91e.qjz9zk", "https://talkgadget.9oo91e.qjz9zk", -+ "https://clients6.9oo91e.qjz9zk", "https://hangouts.9oo91e.qjz9zk", -+ "https://client-channel.9oo91e.qjz9zk", "https://9oo91eapis.qjz9zk", -+ "https://accounts.9oo91e.qjz9zk", "https://clients4.9oo91e.qjz9zk"}; - std::vector hostnames; - for (auto* const& hostname : kHostnames) { - hostnames.push_back(GURL(hostname)); -diff --git a/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc b/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc ---- a/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc -+++ b/chrome/browser/ash/net/network_diagnostics/video_conferencing_routine.cc -@@ -25,12 +25,12 @@ namespace { - // TODO(https://crbug.com/1164001): remove when migrated to namespace ash. - namespace mojom = ::chromeos::network_diagnostics::mojom; - --const char kDefaultStunServer[] = "stun.l.google.com"; -+const char kDefaultStunServer[] = "stun.l.9oo91e.qjz9zk"; - - } // namespace - - // TODO(crbug/1227877): Move support details to the UI. --const char kSupportDetails[] = "https://support.google.com/a/answer/1279090"; -+const char kSupportDetails[] = "https://support.9oo91e.qjz9zk/a/answer/1279090"; - const base::TimeDelta kTimeoutAfterHostResolution = base::Seconds(10); - - VideoConferencingRoutine::VideoConferencingRoutine() -diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc b/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc ---- a/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc -+++ b/chrome/browser/ash/plugin_vm/plugin_vm_diagnostics.cc -@@ -107,7 +107,7 @@ class PluginVmDiagnostics : public base::RefCounted { - entry.SetFail( - IDS_VM_STATUS_PAGE_EPHEMERAL_PROFILE_EXPLANATION, - /*learn_more_link=*/ -- GURL("https://support.google.com/chromebook?p=ephemeral_mode")); -+ GURL("https://support.9oo91e.qjz9zk/chromebook?p=ephemeral_mode")); - break; - case ProfileSupported::kErrorNotSupported: - entry.SetFail(IDS_VM_STATUS_PAGE_UNSUPPORTED_PROFILE_EXPLANATION); -@@ -212,7 +212,7 @@ class PluginVmDiagnostics : public base::RefCounted { - l10n_util::GetStringUTF16(IDS_PLUGIN_VM_APP_NAME)), - /*learn_more_link=*/ - GURL( -- "https://support.google.com/chromebook?p=parallels_setup")); -+ "https://support.9oo91e.qjz9zk/chromebook?p=parallels_setup")); - } else { - // Everything is good. Do nothing. - } -diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_license_checker.cc b/chrome/browser/ash/plugin_vm/plugin_vm_license_checker.cc ---- a/chrome/browser/ash/plugin_vm/plugin_vm_license_checker.cc -+++ b/chrome/browser/ash/plugin_vm/plugin_vm_license_checker.cc -@@ -34,8 +34,8 @@ namespace plugin_vm { - namespace { - - constexpr char kValidationOAuth2Scope[] = -- "https://www.googleapis.com/auth/applicense.bytebot"; --constexpr char kValidationEndpoint[] = "https://bytebot.googleapis.com/"; -+ "https://www.9oo91eapis.qjz9zk/auth/applicense.bytebot"; -+constexpr char kValidationEndpoint[] = "https://bytebot.9oo91eapis.qjz9zk/"; - constexpr char kValidationServicePath[] = - "v1/applications/chromePluginVm:getLicenseStatus"; - constexpr char kValidationServiceQuery[] = "?checkOnly=true&access_token="; -diff --git a/chrome/browser/ash/plugin_vm/plugin_vm_util.cc b/chrome/browser/ash/plugin_vm/plugin_vm_util.cc ---- a/chrome/browser/ash/plugin_vm/plugin_vm_util.cc -+++ b/chrome/browser/ash/plugin_vm/plugin_vm_util.cc -@@ -111,7 +111,7 @@ void RemoveDriveDownloadDirectoryIfExists() { - absl::optional GetIdFromDriveUrl(const GURL& url) { - const std::string& spec = url.spec(); - -- const std::string kOpenUrlBase = "https://drive.google.com/open?"; -+ const std::string kOpenUrlBase = "https://drive.9oo91e.qjz9zk/open?"; - if (base::StartsWith(spec, kOpenUrlBase, - base::CompareCase::INSENSITIVE_ASCII)) { - // e.g. https://drive.google.com/open?id=[ID] -@@ -123,9 +123,9 @@ absl::optional GetIdFromDriveUrl(const GURL& url) { - - // These will match some invalid URLs, which is fine. - const std::string kViewUrlPatternWithDomain = -- "https://drive.google.com/a/*/file/d/*/view*"; -+ "https://drive.9oo91e.qjz9zk/a/*/file/d/*/view*"; - const std::string kViewUrlPatternWithoutDomain = -- "https://drive.google.com/file/d/*/view*"; -+ "https://drive.9oo91e.qjz9zk/file/d/*/view*"; - if (base::MatchPattern(spec, kViewUrlPatternWithDomain) || - base::MatchPattern(spec, kViewUrlPatternWithoutDomain)) { - // e.g. https://drive.google.com/a/example.org/file/d/[ID]/view?usp=sharing -diff --git a/chrome/browser/ash/policy/enrollment/account_status_check_fetcher.cc b/chrome/browser/ash/policy/enrollment/account_status_check_fetcher.cc ---- a/chrome/browser/ash/policy/enrollment/account_status_check_fetcher.cc -+++ b/chrome/browser/ash/policy/enrollment/account_status_check_fetcher.cc -@@ -141,7 +141,7 @@ const char* const kKnownConsumerDomains[] = {"123mail.org", - "execs.com", - "exemail.com.au", - "f-m.fm", -- "facebook.com", -+ "f8c3b00k.qjz9zk", - "fast-email.com", - "fast-mail.org", - "fastem.com", -@@ -180,9 +180,9 @@ const char* const kKnownConsumerDomains[] = {"123mail.org", - "gardener.com", - "geologist.com", - "germanymail.com", -- "gmail.com", -+ "9ma1l.qjz9zk", - "gmx.com", -- "googlemail.com", -+ "9oo91email.qjz9zk", - "graduate.org", - "graphic-designer.com", - "greenmail.net", -diff --git a/chrome/browser/ash/policy/handlers/powerwash_requirements_checker.cc b/chrome/browser/ash/policy/handlers/powerwash_requirements_checker.cc ---- a/chrome/browser/ash/policy/handlers/powerwash_requirements_checker.cc -+++ b/chrome/browser/ash/policy/handlers/powerwash_requirements_checker.cc -@@ -53,7 +53,7 @@ const gfx::VectorIcon& kNotificationIcon = vector_icons::kBusinessIcon; - constexpr mc::SystemNotificationWarningLevel kNotificationLevel = - mc::SystemNotificationWarningLevel::NORMAL; - const char kNotificationLearnMoreLink[] = -- "https://support.google.com/chromebook?p=factory_reset"; -+ "https://support.9oo91e.qjz9zk/chromebook?p=factory_reset"; - - std::u16string GetEnterpriseManager() { - BrowserPolicyConnectorAsh* connector = -diff --git a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc ---- a/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc -+++ b/chrome/browser/ash/policy/remote_commands/device_command_start_crd_session_job.cc -@@ -35,11 +35,11 @@ namespace { - - // OAuth2 Token scopes - constexpr char kCloudDevicesOAuth2Scope[] = -- "https://www.googleapis.com/auth/clouddevices"; -+ "https://www.9oo91eapis.qjz9zk/auth/clouddevices"; - 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"; - - // Job parameters fields: - -diff --git a/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc b/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc ---- a/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc -+++ b/chrome/browser/ash/policy/uploading/heartbeat_scheduler.cc -@@ -30,11 +30,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[] = -diff --git a/chrome/browser/ash/u2f_notification.cc b/chrome/browser/ash/u2f_notification.cc ---- a/chrome/browser/ash/u2f_notification.cc -+++ b/chrome/browser/ash/u2f_notification.cc -@@ -33,7 +33,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. -diff --git a/chrome/browser/ash/wallpaper_handlers/wallpaper_handlers.cc b/chrome/browser/ash/wallpaper_handlers/wallpaper_handlers.cc ---- a/chrome/browser/ash/wallpaper_handlers/wallpaper_handlers.cc -+++ b/chrome/browser/ash/wallpaper_handlers/wallpaper_handlers.cc -@@ -53,17 +53,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. -@@ -74,7 +74,7 @@ constexpr char kGoogleDeviceFilteringLabel[] = "google_branded_chromebook"; - - // The URL to download an album's photos from a user's Google Photos library. - constexpr char kGooglePhotosAlbumUrl[] = -- "https://photosfirstparty-pa.googleapis.com/v1/chromeos/" -+ "https://photosfirstparty-pa.9oo91eapis.qjz9zk/v1/chromeos/" - "collectionById:read"; - - // The collectionById endpoint accepts a "return_order" parameter that -@@ -84,7 +84,7 @@ constexpr char kGooglePhotosAlbumShuffledOrder[] = "2"; - - // The URL to download the albums in a user's Google Photos library. - constexpr char kGooglePhotosAlbumsUrl[] = -- "https://photosfirstparty-pa.googleapis.com/v1/chromeos/" -+ "https://photosfirstparty-pa.9oo91eapis.qjz9zk/v1/chromeos/" - "userCollections:read"; - - constexpr net::NetworkTrafficAnnotationTag -@@ -112,7 +112,7 @@ constexpr net::NetworkTrafficAnnotationTag - - // The URL to download whether the user is allowed to access Google Photos data. - constexpr char kGooglePhotosEnabledUrl[] = -- "https://photosfirstparty-pa.googleapis.com/v1/chromeos/userenabled:read"; -+ "https://photosfirstparty-pa.9oo91eapis.qjz9zk/v1/chromeos/userenabled:read"; - - constexpr net::NetworkTrafficAnnotationTag - kGooglePhotosEnabledTrafficAnnotation = -@@ -138,11 +138,11 @@ constexpr net::NetworkTrafficAnnotationTag - - // The URL to download a photo from a user's Google Photos library. - constexpr char kGooglePhotosPhotoUrl[] = -- "https://photosfirstparty-pa.googleapis.com/v1/chromeos/itemById:read"; -+ "https://photosfirstparty-pa.9oo91eapis.qjz9zk/v1/chromeos/itemById:read"; - - // The URL to download all visible photos in a user's Google Photos library. - constexpr char kGooglePhotosPhotosUrl[] = -- "https://photosfirstparty-pa.googleapis.com/v1/chromeos/userItems:read"; -+ "https://photosfirstparty-pa.9oo91eapis.qjz9zk/v1/chromeos/userItems:read"; - - constexpr net::NetworkTrafficAnnotationTag - kGooglePhotosPhotosTrafficAnnotation = -diff --git a/chrome/browser/ash/web_applications/terminal_source.cc b/chrome/browser/ash/web_applications/terminal_source.cc ---- a/chrome/browser/ash/web_applications/terminal_source.cc -+++ b/chrome/browser/ash/web_applications/terminal_source.cc -@@ -209,8 +209,8 @@ std::string TerminalSource::GetContentSecurityPolicy( - return "connect-src *;"; - } - return "connect-src 'self' " -- "https://*.corp.google.com:* wss://*.corp.google.com:* " -- "https://*.r.ext.google.com:* wss://*.r.ext.google.com:*;"; -+ "https://*.corp.9oo91e.qjz9zk:* wss://*.corp.9oo91e.qjz9zk:* " -+ "https://*.r.ext.9oo91e.qjz9zk:* wss://*.r.ext.9oo91e.qjz9zk:*;"; - case network::mojom::CSPDirectiveName::FrameAncestors: - return "frame-ancestors 'self';"; - case network::mojom::CSPDirectiveName::FrameSrc: -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 -@@ -27,9 +27,9 @@ static const char kTokenizationBinRangeAllowlistKey[] = - static const char kTokenizationMerchantAllowlistKey[] = - "cpan_eligible_merchant_wl"; - static const char kTokenizationBinRangeAllowlistURL[] = -- "https://www.gstatic.com/autofill/hourly/bins.json"; -+ "https://www.95tat1c.qjz9zk/autofill/hourly/bins.json"; - static const char kTokenizationMerchantAllowlistURL[] = -- "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/autofill_assistant/password_change/apc_onboarding_coordinator.cc b/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc ---- a/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc -+++ b/chrome/browser/autofill_assistant/password_change/apc_onboarding_coordinator.cc -@@ -42,7 +42,7 @@ ApcOnboardingCoordinator::CreateOnboardingInformation() { - - // TODO(crbug.com/1322387): Update link so that it also applies to Desktop. - info.learn_more_url = GURL( -- "https://support.google.com/assistant/answer/" -+ "https://support.9oo91e.qjz9zk/assistant/answer/" - "9201753?visit_id=637880404267471228-1286648363&p=password_change&rd=1"); - - return info; -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 -@@ -54,7 +54,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/cart/cart_discount_fetcher.cc b/chrome/browser/cart/cart_discount_fetcher.cc ---- a/chrome/browser/cart/cart_discount_fetcher.cc -+++ b/chrome/browser/cart/cart_discount_fetcher.cc -@@ -32,7 +32,7 @@ const char kAcceptLanguageKey[] = "Accept-Language"; - const char kClientDataHeader[] = "X-Client-Data"; - - const char kFetchDiscountsEndpoint[] = -- "https://memex-pa.googleapis.com/v1/shopping/cart/discounts"; -+ "https://memex-pa.9oo91eapis.qjz9zk/v1/shopping/cart/discounts"; - const int64_t kTimeoutMs = 30000; - - const char kCartDiscountFetcherEndpointParam[] = -diff --git a/chrome/browser/cart/cart_discount_link_fetcher.cc b/chrome/browser/cart/cart_discount_link_fetcher.cc ---- a/chrome/browser/cart/cart_discount_link_fetcher.cc -+++ b/chrome/browser/cart/cart_discount_link_fetcher.cc -@@ -22,7 +22,7 @@ const char kPostMethod[] = "POST"; - const char kContentType[] = "application/json; charset=UTF-8"; - - const char kFetchDiscountLinkEndpoint[] = -- "https://memex-pa.googleapis.com/v1/shopping/cart/discounted"; -+ "https://memex-pa.9oo91eapis.qjz9zk/v1/shopping/cart/discounted"; - const int64_t kTimeoutMs = 30000; - } // namespace - -diff --git a/chrome/browser/cart/cart_service.cc b/chrome/browser/cart/cart_service.cc ---- a/chrome/browser/cart/cart_service.cc -+++ b/chrome/browser/cart/cart_service.cc -@@ -634,17 +634,17 @@ void CartService::AddCartsWithFakeData() { - u"15%")); - dummy_proto1.mutable_discount_info()->set_has_coupons(true); - dummy_proto1.add_product_image_urls( -- "https://encrypted-tbn3.gstatic.com/" -+ "https://encrypted-tbn3.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQpn38jB2_BANnHUFa7kHJsf6SyubcgeU1lNYO_" - "ZxM1Q2ju_ZMjv2EwNh0Zx_zbqYy_mFg_aiIhWYnD5PQ7t-uFzLM5cN77s_2_" - "DFNeumI-LMPJMYjW-BOSaA&usqp=CAY"); - dummy_proto1.add_product_image_urls( -- "https://encrypted-tbn0.gstatic.com/" -+ "https://encrypted-tbn0.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQyMRYWeM2Yq095nOXTL0-" - "EUUnm79kh6hnw8yctJUNrAuse607KEr1CVxEa24r-" - "8XHBuhTwcuC4GXeN94h9Kn19DhdBGsXG0qrD74veYSDJNLrUP-sru0jH&usqp=CAY"); - dummy_proto1.add_product_image_urls( -- "https://encrypted-tbn1.gstatic.com/" -+ "https://encrypted-tbn1.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcT2ew6Aydzu5VzRV756ORGha6fyjKp_On7iTlr_" - "tL9vODnlNtFo_xsxj6_lCop-3J0Vk44lHfk-AxoBJDABVHPVFN-" - "EiWLcZvzkdpHFqcurm7fBVmWtYKo2rg&usqp=CAY"); -@@ -682,12 +682,12 @@ void CartService::AddCartsWithFakeData() { - l10n_util::GetStringFUTF8(IDS_NTP_MODULES_CART_DISCOUNT_CHIP_AMOUNT, - u"20%")); - dummy_proto2.add_product_image_urls( -- "https://encrypted-tbn3.gstatic.com/" -+ "https://encrypted-tbn3.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQpn38jB2_BANnHUFa7kHJsf6SyubcgeU1lNYO_" - "ZxM1Q2ju_ZMjv2EwNh0Zx_zbqYy_mFg_aiIhWYnD5PQ7t-uFzLM5cN77s_2_" - "DFNeumI-LMPJMYjW-BOSaA&usqp=CAY"); - dummy_proto2.add_product_image_urls( -- "https://encrypted-tbn0.gstatic.com/" -+ "https://encrypted-tbn0.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQyMRYWeM2Yq095nOXTL0-" - "EUUnm79kh6hnw8yctJUNrAuse607KEr1CVxEa24r-" - "8XHBuhTwcuC4GXeN94h9Kn19DhdBGsXG0qrD74veYSDJNLrUP-sru0jH&usqp=CAY"); -@@ -705,7 +705,7 @@ void CartService::AddCartsWithFakeData() { - l10n_util::GetStringFUTF8(IDS_NTP_MODULES_CART_DISCOUNT_CHIP_UP_TO_AMOUNT, - u"$50")); - dummy_proto3.add_product_image_urls( -- "https://encrypted-tbn3.gstatic.com/" -+ "https://encrypted-tbn3.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQpn38jB2_BANnHUFa7kHJsf6SyubcgeU1lNYO_" - "ZxM1Q2ju_ZMjv2EwNh0Zx_zbqYy_mFg_aiIhWYnD5PQ7t-uFzLM5cN77s_2_" - "DFNeumI-LMPJMYjW-BOSaA&usqp=CAY"); -@@ -720,12 +720,12 @@ void CartService::AddCartsWithFakeData() { - dummy_proto4.set_merchant_cart_url(dummy_url4.spec()); - dummy_proto4.set_timestamp(time_now + 5); - dummy_proto4.add_product_image_urls( -- "https://encrypted-tbn0.gstatic.com/" -+ "https://encrypted-tbn0.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQyMRYWeM2Yq095nOXTL0-" - "EUUnm79kh6hnw8yctJUNrAuse607KEr1CVxEa24r-" - "8XHBuhTwcuC4GXeN94h9Kn19DhdBGsXG0qrD74veYSDJNLrUP-sru0jH&usqp=CAY"); - dummy_proto4.add_product_image_urls( -- "https://encrypted-tbn1.gstatic.com/" -+ "https://encrypted-tbn1.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcT2ew6Aydzu5VzRV756ORGha6fyjKp_On7iTlr_" - "tL9vODnlNtFo_xsxj6_lCop-3J0Vk44lHfk-AxoBJDABVHPVFN-" - "EiWLcZvzkdpHFqcurm7fBVmWtYKo2rg&usqp=CAY"); -@@ -740,7 +740,7 @@ void CartService::AddCartsWithFakeData() { - dummy_proto5.set_merchant_cart_url(dummy_url5.spec()); - dummy_proto5.set_timestamp(time_now + 2); - dummy_proto5.add_product_image_urls( -- "https://encrypted-tbn3.gstatic.com/" -+ "https://encrypted-tbn3.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQpn38jB2_BANnHUFa7kHJsf6SyubcgeU1lNYO_" - "ZxM1Q2ju_ZMjv2EwNh0Zx_zbqYy_mFg_aiIhWYnD5PQ7t-uFzLM5cN77s_2_" - "DFNeumI-LMPJMYjW-BOSaA&usqp=CAY"); -@@ -755,17 +755,17 @@ void CartService::AddCartsWithFakeData() { - dummy_proto6.set_merchant_cart_url(dummy_url6.spec()); - dummy_proto6.set_timestamp(time_now + 1); - dummy_proto6.add_product_image_urls( -- "https://encrypted-tbn3.gstatic.com/" -+ "https://encrypted-tbn3.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQpn38jB2_BANnHUFa7kHJsf6SyubcgeU1lNYO_" - "ZxM1Q2ju_ZMjv2EwNh0Zx_zbqYy_mFg_aiIhWYnD5PQ7t-uFzLM5cN77s_2_" - "DFNeumI-LMPJMYjW-BOSaA&usqp=CAY"); - dummy_proto6.add_product_image_urls( -- "https://encrypted-tbn0.gstatic.com/" -+ "https://encrypted-tbn0.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcQyMRYWeM2Yq095nOXTL0-" - "EUUnm79kh6hnw8yctJUNrAuse607KEr1CVxEa24r-" - "8XHBuhTwcuC4GXeN94h9Kn19DhdBGsXG0qrD74veYSDJNLrUP-sru0jH&usqp=CAY"); - dummy_proto6.add_product_image_urls( -- "https://encrypted-tbn1.gstatic.com/" -+ "https://encrypted-tbn1.95tat1c.qjz9zk/" - "shopping?q=tbn:ANd9GcT2ew6Aydzu5VzRV756ORGha6fyjKp_On7iTlr_" - "tL9vODnlNtFo_xsxj6_lCop-3J0Vk44lHfk-AxoBJDABVHPVFN-" - "EiWLcZvzkdpHFqcurm7fBVmWtYKo2rg&usqp=CAY"); -diff --git a/chrome/browser/cart/fetch_discount_worker.cc b/chrome/browser/cart/fetch_discount_worker.cc ---- a/chrome/browser/cart/fetch_discount_worker.cc -+++ b/chrome/browser/cart/fetch_discount_worker.cc -@@ -26,7 +26,7 @@ - - namespace { - const char kOauthName[] = "rbd"; --const char kOauthScopes[] = "https://www.googleapis.com/auth/chromememex"; -+const char kOauthScopes[] = "https://www.9oo91eapis.qjz9zk/auth/chromememex"; - const char kEmptyToken[] = ""; - } // namespace - -diff --git a/chrome/browser/cart/resources/cart_domain_cart_url_mapping.json b/chrome/browser/cart/resources/cart_domain_cart_url_mapping.json ---- a/chrome/browser/cart/resources/cart_domain_cart_url_mapping.json -+++ b/chrome/browser/cart/resources/cart_domain_cart_url_mapping.json -@@ -63,7 +63,7 @@ - "lululemon.com": "https://shop.lululemon.com/shop/mybag", - "lulus.com": "https://www.lulus.com/checkout/bag", - "macys.com": "https://www.macys.com/my-bag", --"microsoft.com": "https://www.microsoft.com/en-us/store/cart", -+"m1cr050ft.qjz9zk": "https://www.m1cr050ft.qjz9zk/en-us/store/cart", - "midwayusa.com": "https://www.midwayusa.com/cart", - "neimanmarcus.com": "https://www.neimanmarcus.com/checkout/cart.jsp", - "newegg.com": "https://secure.newegg.com/shop/cart", -diff --git a/chrome/browser/cart/resources/cart_domain_name_mapping.json b/chrome/browser/cart/resources/cart_domain_name_mapping.json ---- a/chrome/browser/cart/resources/cart_domain_name_mapping.json -+++ b/chrome/browser/cart/resources/cart_domain_name_mapping.json -@@ -63,7 +63,7 @@ - "lululemon.com": "lululemon", - "lulus.com": "Lulus", - "macys.com": "Macy's", --"microsoft.com": "Microsoft", -+"m1cr050ft.qjz9zk": "Microsoft", - "midwayusa.com": "MidwayUSA", - "neimanmarcus.com": "Neiman Marcus", - "newegg.com": "Newegg", -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 -@@ -155,7 +155,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 -@@ -1195,7 +1195,7 @@ void LaunchURL(base::WeakPtr client, - "'allow-top-navigation-by-user-activation', " - "'allow-top-navigation', or " - "'allow-popups'. See " -- "https://chromestatus.com/feature/5680742077038592 and " -+ "https://ch40mestatus.qjz9zk/feature/5680742077038592 and " - "https://chromeenterprise.google/policies/" - "#SandboxExternalProtocolBlocked"); - return; -@@ -1211,7 +1211,7 @@ void LaunchURL(base::WeakPtr client, - "'allow-top-navigation-by-user-activation', " - "'allow-top-navigation', or " - "'allow-popups'. See " -- "https://chromestatus.com/feature/5680742077038592 and " -+ "https://ch40mestatus.qjz9zk/feature/5680742077038592 and " - "https://chromeenterprise.google/policies/" - "#SandboxExternalProtocolBlocked"); - } -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 -@@ -93,7 +93,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/policy/dlp/dlp_clipboard_bubble_constants.h b/chrome/browser/chromeos/policy/dlp/dlp_clipboard_bubble_constants.h ---- a/chrome/browser/chromeos/policy/dlp/dlp_clipboard_bubble_constants.h -+++ b/chrome/browser/chromeos/policy/dlp/dlp_clipboard_bubble_constants.h -@@ -35,7 +35,7 @@ constexpr int kClipboardDlpWarnDurationMs = 16000; - - // Link to the Help Center article about Data Leak Prevention. - constexpr char kDlpLearnMoreUrl[] = -- "https://support.google.com/chrome/a/?p=chromeos_datacontrols"; -+ "https://support.9oo91e.qjz9zk/chrome/a/?p=chromeos_datacontrols"; - - } // namespace policy - -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/download/mixed_content_download_blocking.cc b/chrome/browser/download/mixed_content_download_blocking.cc ---- a/chrome/browser/download/mixed_content_download_blocking.cc -+++ b/chrome/browser/download/mixed_content_download_blocking.cc -@@ -317,7 +317,7 @@ void PrintConsoleMessage(const MixedContentDownloadData& data, - "connection, but the file at '%s' was %s an insecure " - "connection. This file should be served over HTTPS. " - "This download %s. See " -- "https://blog.chromium.org/2020/02/" -+ "https://blog.ch40m1um.qjz9zk/2020/02/" - "protecting-users-from-insecure.html" - " for more details.", - data.initiator_->GetURL().spec().c_str(), -diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.cc ---- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.cc -+++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/commands/mac_key_rotation_command.cc -@@ -29,7 +29,7 @@ namespace enterprise_connectors { - - namespace { - --constexpr char kStableChannelHostName[] = "m.google.com"; -+constexpr char kStableChannelHostName[] = "m.9oo91e.qjz9zk"; - - bool ValidRotationCommand(const std::string& host_name) { - return chrome::GetChannel() != version_info::Channel::STABLE || -diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service/rotate_util.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service/rotate_util.cc ---- a/chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service/rotate_util.cc -+++ b/chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service/rotate_util.cc -@@ -24,7 +24,7 @@ namespace enterprise_connectors { - - namespace { - --constexpr char kStableChannelHostName[] = "m.google.com"; -+constexpr char kStableChannelHostName[] = "m.9oo91e.qjz9zk"; - - // Returns decoded value from the base-64 `encoded_value`, or null - // in case of a decoding error. The returned value is an opaque binary -diff --git a/chrome/browser/enterprise/connectors/file_system/signin_dialog_delegate.cc b/chrome/browser/enterprise/connectors/file_system/signin_dialog_delegate.cc ---- a/chrome/browser/enterprise/connectors/file_system/signin_dialog_delegate.cc -+++ b/chrome/browser/enterprise/connectors/file_system/signin_dialog_delegate.cc -@@ -49,7 +49,7 @@ const char kOAuthConsumerName[] = "file_system_signin_dialog"; - // 4/ This URI is used by other native apps for the same purpose. - // 5/ It is controlled by Google. - bool IsOAuth2RedirectURI(const GURL& url) { -- return url.host() == "google.com" && url.path() == "/generate_204"; -+ return url.host() == "9oo91e.qjz9zk" && url.path() == "/generate_204"; - } - - } // namespace -diff --git a/chrome/browser/enterprise/connectors/service_provider_config.cc b/chrome/browser/enterprise/connectors/service_provider_config.cc ---- a/chrome/browser/enterprise/connectors/service_provider_config.cc -+++ b/chrome/browser/enterprise/connectors/service_provider_config.cc -@@ -41,7 +41,7 @@ constexpr std::array kGoogleDlpSupportedTags = {{ - }}; - - constexpr AnalysisConfig kGoogleAnalysisConfig = { -- .url = "https://safebrowsing.google.com/safebrowsing/uploads/scan", -+ .url = "https://safebrowsing.9oo91e.qjz9zk/safebrowsing/uploads/scan", - .supported_tags = base::span(kGoogleDlpSupportedTags), - }; - -@@ -66,7 +66,7 @@ constexpr AnalysisConfig kLocalTestSystemAnalysisConfig = { - }; - - constexpr ReportingConfig kGoogleReportingConfig = { -- .url = "https://chromereporting-pa.googleapis.com/v1/events", -+ .url = "https://chromereporting-pa.9oo91eapis.qjz9zk/v1/events", - }; - - constexpr FileSystemConfig kBoxFileSystemConfig = { -diff --git a/chrome/browser/enterprise/reporting/extension_request/extension_request_notification.cc b/chrome/browser/enterprise/reporting/extension_request/extension_request_notification.cc ---- a/chrome/browser/enterprise/reporting/extension_request/extension_request_notification.cc -+++ b/chrome/browser/enterprise/reporting/extension_request/extension_request_notification.cc -@@ -30,7 +30,7 @@ constexpr char kInstalledNotificationId[] = "extension_installed_notificaiton"; - constexpr char kExtensionRequestNotifierId[] = - "chrome_browser_cloud_management_extension_request"; - constexpr char kChromeWebstoreUrl[] = -- "https://chrome.google.com/webstore/detail/"; -+ "https://chrome.9oo91e.qjz9zk/webstore/detail/"; - - // The elements order of array below must match the order in enum - // ExtensionRequestNotification::NotifyType. -@@ -69,7 +69,7 @@ void ExtensionRequestNotification::Show(NotificationCloseCallback callback) { - kNotificationTitles[notify_type_], extension_ids_.size()); - const std::u16string body = l10n_util::GetPluralStringFUTF16( - kNotificationBodies[notify_type_], extension_ids_.size()); -- GURL original_url("https://chrome.google.com/webstore"); -+ GURL original_url("https://chrome.9oo91e.qjz9zk/webstore"); - auto icon = ui::ImageModel::FromVectorIcon(vector_icons::kBusinessIcon, - ui::kColorIcon, - message_center::kSmallImageSize); -diff --git a/chrome/browser/enterprise/signals/signals_utils.cc b/chrome/browser/enterprise/signals/signals_utils.cc ---- a/chrome/browser/enterprise/signals/signals_utils.cc -+++ b/chrome/browser/enterprise/signals/signals_utils.cc -@@ -85,8 +85,8 @@ absl::optional GetChromeCleanupEnabled(PrefService* local_state) { - - bool GetChromeRemoteDesktopAppBlocked(PolicyBlocklistService* service) { - DCHECK(service); -- return IsURLBlocked(GURL("https://remotedesktop.google.com"), service) || -- IsURLBlocked(GURL("https://remotedesktop.corp.google.com"), service); -+ return IsURLBlocked(GURL("https://remotedesktop.9oo91e.qjz9zk"), service) || -+ IsURLBlocked(GURL("https://remotedesktop.corp.9oo91e.qjz9zk"), service); - } - - } // namespace utils -diff --git a/chrome/browser/error_reporting/chrome_js_error_report_processor_nonchromeos.cc b/chrome/browser/error_reporting/chrome_js_error_report_processor_nonchromeos.cc ---- a/chrome/browser/error_reporting/chrome_js_error_report_processor_nonchromeos.cc -+++ b/chrome/browser/error_reporting/chrome_js_error_report_processor_nonchromeos.cc -@@ -25,9 +25,9 @@ - - namespace { - --constexpr char kCrashEndpointUrl[] = "https://clients2.google.com/cr/report"; -+constexpr char kCrashEndpointUrl[] = "https://clients2.9oo91e.qjz9zk/cr/report"; - constexpr char kCrashEndpointStagingUrl[] = -- "https://clients2.google.com/cr/staging_report"; -+ "https://clients2.9oo91e.qjz9zk/cr/staging_report"; - - } // namespace - -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 @@ namespace api { - - namespace { - --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|. -@@ -312,7 +312,7 @@ CryptotokenPrivateCanMakeU2fApiRequestFunction::Run() { - } - frame->AddMessageToConsole( - blink::mojom::ConsoleMessageLevel::kWarning, -- R"(The U2F Security Key API is deprecated and will be removed soon. If you own this website, please migrate to the Web Authentication API. For more information see https://groups.google.com/a/chromium.org/g/blink-dev/c/xHC3AtU_65A/m/yg20tsVFBAAJ)"); -+ R"(The U2F Security Key API is deprecated and will be removed soon. If you own this website, please migrate to the Web Authentication API. For more information see https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/g/blink-dev/c/xHC3AtU_65A/m/yg20tsVFBAAJ)"); - - blink::TrialTokenValidator validator; - const net::HttpResponseHeaders* response_headers = -diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc ---- a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc -+++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc -@@ -50,7 +50,7 @@ crosapi::mojom::KeystoreService* GetKeystoreService( - // implemented for secondary profiles in Lacros. - CHECK(Profile::FromBrowserContext(browser_context)->IsMainProfile()) - << "Attempted to use an incorrect profile. Please file a bug at " -- "https://bugs.chromium.org/ if this happens."; -+ "https://bugs.ch40m1um.qjz9zk/ if this happens."; - return chromeos::LacrosService::Get()->GetRemote().get(); - #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS) - -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 -@@ -17,7 +17,7 @@ namespace extensions { - namespace { - - static const char kChromiumDomainRedirectUrlPattern[] = -- "https://%s.chromiumapp.org/"; -+ "https://%s.ch40m1umapp.qjz9zk/"; - - } // namespace - -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 -@@ -89,7 +89,7 @@ namespace { - - #if BUILDFLAG(IS_CHROMEOS_ASH) - 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 // BUILDFLAG(IS_CHROMEOS_ASH) - -diff --git a/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc b/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc ---- a/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc -+++ b/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc -@@ -79,7 +79,7 @@ crosapi::mojom::KeystoreService* GetKeystoreService( - // implemented for secondary profiles in Lacros. - CHECK(Profile::FromBrowserContext(browser_context)->IsMainProfile()) - << "Attempted to use an incorrect profile. Please file a bug at " -- "https://bugs.chromium.org/ if this happens."; -+ "https://bugs.ch40m1um.qjz9zk/ if this happens."; - return chromeos::LacrosService::Get()->GetRemote().get(); - #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS) - -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,7 +8,7 @@ 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"; - - // The link to the site permissions settings page. - const char kExtensionsSitePermissionsURL[] = -@@ -20,6 +20,6 @@ const char kExtensionsSitePermissionsURL[] = - // TODO(crbug.com/1353587): This link is likely temporary, and may need to be - // replaced later. - const char kShowAccessRequestsInToolbarHelpURL[] = -- "https://support.google.com/chrome_webstore/answer/2664769"; -+ "https://support.9oo91e.qjz9zk/chrome_webstore/answer/2664769"; - - } // namespace chrome_extension_constants -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 -@@ -292,7 +292,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); -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 -@@ -66,7 +66,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/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 -@@ -49,7 +49,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 -@@ -216,7 +216,7 @@ ChromeUpdateClientConfig::GetNetworkFetcherFactory() { - // from chrome.google.com, 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/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc ---- a/chrome/browser/flag_descriptions.cc -+++ b/chrome/browser/flag_descriptions.cc -@@ -223,7 +223,7 @@ const char kU2FPermissionPromptDescription[] = - "Key API (CryptoToken). The U2F Security " - "Key API has been deprecated and will be removed soon. For more " - "information, refer to the deprecation announcement at " -- "https://groups.google.com/a/chromium.org/g/blink-dev/c/xHC3AtU_65A"; -+ "https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/g/blink-dev/c/xHC3AtU_65A"; - - #if BUILDFLAG(ENABLE_SUPERVISED_USERS) - const char kWebFilterInterstitialRefreshName[] = -@@ -238,7 +238,7 @@ const char kU2FSecurityKeyAPIDescription[] = - "Enable the legacy U2F Security Key API (CryptoToken). The U2F Security " - "Key API has been deprecated and will be removed soon. For more " - "information, refer to the deprecation announcement at " -- "https://groups.google.com/a/chromium.org/g/blink-dev/c/xHC3AtU_65A"; -+ "https://groups.9oo91e.qjz9zk/a/ch40m1um.qjz9zk/g/blink-dev/c/xHC3AtU_65A"; - - const char kLoadCryptoTokenExtensionName[] = - "Load the CryptoToken component extension "; -@@ -1231,7 +1231,7 @@ const char kBlockInsecurePrivateNetworkRequestsName[] = - const char kBlockInsecurePrivateNetworkRequestsDescription[] = - "Prevents non-secure contexts from making subresource requests to " - "more-private IP addresses. See also: " -- "https://developer.chrome.com/blog/private-network-access-update/"; -+ "https://developer.ch40me.qjz9zk/blog/private-network-access-update/"; - - const char kPrivateNetworkAccessSendPreflightsName[] = - "Send Private Network Access preflights"; -@@ -1239,7 +1239,7 @@ const char kPrivateNetworkAccessSendPreflightsDescription[] = - "Enables sending Private Network Access preflights ahead of requests to " - "more-private IP addresses. Failed preflights display warnings in DevTools " - "without failing entire request. See also: " -- "https://developer.chrome.com/blog/private-network-access-preflight/"; -+ "https://developer.ch40me.qjz9zk/blog/private-network-access-preflight/"; - - const char kPrivateNetworkAccessRespectPreflightResultsName[] = - "Respect the result of Private Network Access preflights"; -@@ -1247,7 +1247,7 @@ const char kPrivateNetworkAccessRespectPreflightResultsDescription[] = - "Enables sending Private Network Access preflights ahead of requests to " - "more-private IP addresses. These preflight requests must succeed in order " - "for the request to proceed. See also: " -- "https://developer.chrome.com/blog/private-network-access-preflight/"; -+ "https://developer.ch40me.qjz9zk/blog/private-network-access-preflight/"; - - const char kPrivateNetworkAccessPreflightShortTimeoutName[] = - "Reduce waiting time for Private Network Access preflights response"; -@@ -1255,7 +1255,7 @@ const char kPrivateNetworkAccessPreflightShortTimeoutDescription[] = - "Reduce the waiting time for Private Network Access preflights to 200 " - "milliseconds. The default timeout period for requests is 5 minutes." - "See also: " -- "https://developer.chrome.com/blog/private-network-access-preflight/"; -+ "https://developer.ch40me.qjz9zk/blog/private-network-access-preflight/"; - - const char kDeprecateAltClickName[] = - "Enable Alt+Click deprecation notifications"; -@@ -2584,7 +2584,7 @@ const char kQuickIntensiveWakeUpThrottlingAfterLoadingDescription[] = - "throttling after 10 seconds instead of the default 5 minutes. Intensive " - "throttling will limit wake ups, from setTimeout and setInterval tasks " - "with a high nesting level and delayed scheduler.postTask tasks, to 1 per " -- "minute. See https://chromestatus.com/feature/5580139453743104 for more " -+ "minute. See https://ch40mestatus.qjz9zk/feature/5580139453743104 for more " - "info."; - - const char kSettingsAppNotificationSettingsName[] = -@@ -2610,7 +2610,7 @@ const char kReduceUserAgentName[] = "Reduce User-Agent request header"; - const char kReduceUserAgentDescription[] = - "Reduce (formerly, \"freeze\") the amount of information available in " - "the User-Agent request header. " -- "See https://www.chromium.org/updates/ua-reduction for more info."; -+ "See https://www.ch40m1um.qjz9zk/updates/ua-reduction for more info."; - - const char kRestrictGamepadAccessName[] = "Restrict gamepad access"; - const char kRestrictGamepadAccessDescription[] = -@@ -2666,7 +2666,7 @@ const char kThirdPartyStoragePartitioningName[] = - const char kThirdPartyStoragePartitioningDescription[] = - "Enables partitioning of third-party storage by top-level site. " - "Note: this is under active development and may result in unexpected " -- "behavior. Please file bugs at https://bugs.chromium.org/p/chromium/issues/" -+ "behavior. Please file bugs at https://bugs.ch40m1um.qjz9zk/p/chromium/issues/" - "entry?labels=StoragePartitioning-trial-bugs&components=Blink%3EStorage."; - - const char kScrollableTabStripFlagId[] = "scrollable-tabstrip"; -diff --git a/chrome/browser/k_anonymity_service/k_anonymity_service_urls.h b/chrome/browser/k_anonymity_service/k_anonymity_service_urls.h ---- a/chrome/browser/k_anonymity_service/k_anonymity_service_urls.h -+++ b/chrome/browser/k_anonymity_service/k_anonymity_service_urls.h -@@ -12,14 +12,14 @@ constexpr char kIssueTrustTokenPathFmt[] = - "/v1/%d/issueTrustToken"; // Put the short ID in the path. - - constexpr char kKAnonymityJoinSetServer[] = -- "https://chromekanonymity-pa.googleapis.com"; -+ "https://chromekanonymity-pa.9oo91eapis.qjz9zk"; - constexpr char kJoinSetPath[] = - "/v1/join?key="; // TODO: Set this when we know the correct path. - constexpr char kJoinSetOhttpPath[] = - "/v1/proxy/keys?key="; // TODO: Set this when we know the correct path. - - constexpr char kKAnonymityQuerySetServer[] = -- "https://chromekanonymityquery-pa.googleapis.com"; -+ "https://chromekanonymityquery-pa.9oo91eapis.qjz9zk"; - constexpr char kQuerySetPath[] = - "/v1/query?key="; // TODO: Set this when we know the correct path. - constexpr char kQuerySetOhttpPath[] = -diff --git a/chrome/browser/lacros/lacros_startup_infobar_delegate.cc b/chrome/browser/lacros/lacros_startup_infobar_delegate.cc ---- a/chrome/browser/lacros/lacros_startup_infobar_delegate.cc -+++ b/chrome/browser/lacros/lacros_startup_infobar_delegate.cc -@@ -27,9 +27,9 @@ - namespace { - - constexpr base::StringPiece kLearnMoreURLPublic( -- "https://support.google.com/chromebook?p=chromeos-dev"); -+ "https://support.9oo91e.qjz9zk/chromebook?p=chromeos-dev"); - constexpr base::StringPiece kLearnMoreURLGoogleInternal( -- "https://goto.google.com/lacros-learn-more"); -+ "https://goto.9oo91e.qjz9zk/lacros-learn-more"); - - // Returns the single main profile, or nullptr if none is found. - Profile* GetMainProfile() { -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 -@@ -401,7 +401,7 @@ void ParseNetService(NSNetService* service, ServiceDescription& description) { - // 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 -@@ -515,7 +515,7 @@ void ParseNetService(NSNetService* service, ServiceDescription& description) { - // 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]; - _service.reset(); - } -diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc ---- a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc -+++ b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc -@@ -41,7 +41,7 @@ const char kGoogleAmpCachePathPattern[] = "/[a-z]/(s/)?(.*)"; - // Regex pattern for the path of Google AMP Viewer URLs. - const char kGoogleAmpViewerPathPattern[] = "/amp/(s/)?(.*)"; - --const char kGoogleNewsHost[] = "news.google.com"; -+const char kGoogleNewsHost[] = "news.9oo91e.qjz9zk"; - const char kGoogleNewsPathPattern[] = "/articles/(.*)"; - - } // namespace -diff --git a/chrome/browser/media/router/discovery/access_code/access_code_cast_constants.cc b/chrome/browser/media/router/discovery/access_code/access_code_cast_constants.cc ---- a/chrome/browser/media/router/discovery/access_code/access_code_cast_constants.cc -+++ b/chrome/browser/media/router/discovery/access_code/access_code_cast_constants.cc -@@ -28,10 +28,10 @@ void EnableCommandLineSupportForTesting() { - constexpr char kGetMethod[] = "GET"; - constexpr char kContentType[] = "application/json; charset=UTF-8"; - constexpr char kDiscoveryOAuth2Scope[] = -- "https://www.googleapis.com/auth/cast-edu-messaging"; -+ "https://www.9oo91eapis.qjz9zk/auth/cast-edu-messaging"; - - constexpr char kDefaultDiscoveryEndpoint[] = -- "https://castedumessaging-pa.googleapis.com"; -+ "https://castedumessaging-pa.9oo91eapis.qjz9zk"; - - constexpr char kDiscoveryServicePath[] = "/v1/receivers"; - constexpr char kDiscoveryOAuthConsumerName[] = "access_code_cast_discovery"; -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 -@@ -36,9 +36,9 @@ constexpr char kLoggerComponent[] = "CastMediaRouteProvider"; - - // List of origins allowed to use a PresentationRequest to initiate mirroring. - constexpr std::array kPresentationApiAllowlist = { -- "https://docs.google.com", -- "https://meet.google.com", -- "https://music.youtube.com", -+ "https://docs.9oo91e.qjz9zk", -+ "https://meet.9oo91e.qjz9zk", -+ "https://music.y0u1ub3.qjz9zk", - }; - - // Returns a list of origins that are valid for |source_id|. An empty list -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 -@@ -655,15 +655,15 @@ std::vector DialMediaRouteProvider::GetOrigins( - base::flat_map>> - origin_allowlist( - {{"YouTube", -- {CreateOrigin("https://music.youtube.com/"), -- CreateOrigin("https://music-green-qa.youtube.com/"), -- CreateOrigin("https://music-release-qa.youtube.com/"), -- 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://music.y0u1ub3.qjz9zk/"), -+ CreateOrigin("https://music-green-qa.y0u1ub3.qjz9zk/"), -+ CreateOrigin("https://music-release-qa.y0u1ub3.qjz9zk/"), -+ 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 -@@ -125,7 +125,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"; - - WebRtcEventLogUploaderImpl::Factory::Factory( - scoped_refptr task_runner) -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 -@@ -468,7 +468,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/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 -@@ -33,7 +33,7 @@ std::u16string 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"); - } - - std::u16string NaClInfoBarDelegate::GetMessageText() const { -diff --git a/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc b/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc ---- a/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc -+++ b/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc -@@ -31,7 +31,7 @@ namespace { - // -------------------- Nearby Share Service v1 Endpoints -------------------- - - const char kDefaultNearbyShareV1HTTPHost[] = -- "https://nearbysharing-pa.googleapis.com"; -+ "https://nearbysharing-pa.9oo91eapis.qjz9zk"; - - const char kNearbyShareV1Path[] = "v1/"; - -@@ -43,7 +43,7 @@ const char kPageToken[] = "page_token"; - const char kSecretIds[] = "secret_ids"; - - const char kNearbyShareOAuth2Scope[] = -- "https://www.googleapis.com/auth/nearbysharing-pa"; -+ "https://www.9oo91eapis.qjz9zk/auth/nearbysharing-pa"; - - // Creates the full Nearby Share v1 URL for endpoint to the API with - // |request_path|. -diff --git a/chrome/browser/nearby_sharing/instantmessaging/constants.h b/chrome/browser/nearby_sharing/instantmessaging/constants.h ---- a/chrome/browser/nearby_sharing/instantmessaging/constants.h -+++ b/chrome/browser/nearby_sharing/instantmessaging/constants.h -@@ -6,10 +6,10 @@ - #define CHROME_BROWSER_NEARBY_SHARING_INSTANTMESSAGING_CONSTANTS_H_ - - const char kInstantMessagingReceiveMessageAPI[] = -- "https://instantmessaging-pa.googleapis.com/v1/messages:receiveExpress"; -+ "https://instantmessaging-pa.9oo91eapis.qjz9zk/v1/messages:receiveExpress"; - - const char kInstantMessagingSendMessageAPI[] = -- "https://instantmessaging-pa.googleapis.com/v1/message:sendExpress"; -+ "https://instantmessaging-pa.9oo91eapis.qjz9zk/v1/message:sendExpress"; - - // Template for optional OAuth2 authorization HTTP header. - const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s"; -diff --git a/chrome/browser/nearby_sharing/network_traversal_ice_config_fetcher.cc b/chrome/browser/nearby_sharing/network_traversal_ice_config_fetcher.cc ---- a/chrome/browser/nearby_sharing/network_traversal_ice_config_fetcher.cc -+++ b/chrome/browser/nearby_sharing/network_traversal_ice_config_fetcher.cc -@@ -19,7 +19,7 @@ - namespace { - - const char kNetworkTraversalIceConfigApiUrl[] = -- "https://networktraversal.googleapis.com/v1alpha/iceconfig?key="; -+ "https://networktraversal.9oo91eapis.qjz9zk/v1alpha/iceconfig?key="; - - // Response with 2 ice server configs takes ~1KB. A loose upper bound of 16KB is - // chosen to avoid breaking the flow in case the response has longer URLs in ice -@@ -81,11 +81,11 @@ bool IsLoaderSuccessful(const network::SimpleURLLoader* loader) { - - std::vector GetDefaultIceServers() { - sharing::mojom::IceServerPtr ice_server(sharing::mojom::IceServer::New()); -- ice_server->urls.emplace_back("stun:stun.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun1.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun2.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun3.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun4.l.google.com:19302"); -+ ice_server->urls.emplace_back("stun:stun.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun1.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun2.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun3.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun4.l.9oo91e.qjz9zk:19302"); - - std::vector default_servers; - default_servers.push_back(std::move(ice_server)); -diff --git a/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc b/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc ---- a/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc -+++ b/chrome/browser/nearby_sharing/tachyon_ice_config_fetcher.cc -@@ -33,7 +33,7 @@ namespace { - namespace tachyon_proto = nearbyshare::tachyon_proto; - - const char kIceConfigApiUrl[] = -- "https://instantmessaging-pa.googleapis.com/v1/peertopeer:geticeserver"; -+ "https://instantmessaging-pa.9oo91eapis.qjz9zk/v1/peertopeer:geticeserver"; - - const char kAuthorizationHeaderFormat[] = "Authorization: Bearer %s"; - -@@ -167,11 +167,11 @@ bool IsLoaderSuccessful(const network::SimpleURLLoader* loader, - - std::vector GetDefaultIceServers() { - sharing::mojom::IceServerPtr ice_server(sharing::mojom::IceServer::New()); -- ice_server->urls.emplace_back("stun:stun.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun1.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun2.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun3.l.google.com:19302"); -- ice_server->urls.emplace_back("stun:stun4.l.google.com:19302"); -+ ice_server->urls.emplace_back("stun:stun.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun1.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun2.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun3.l.9oo91e.qjz9zk:19302"); -+ ice_server->urls.emplace_back("stun:stun4.l.9oo91e.qjz9zk:19302"); - - std::vector default_servers; - default_servers.push_back(std::move(ice_server)); -diff --git a/chrome/browser/new_tab_page/modules/drive/drive_service.cc b/chrome/browser/new_tab_page/modules/drive/drive_service.cc ---- a/chrome/browser/new_tab_page/modules/drive/drive_service.cc -+++ b/chrome/browser/new_tab_page/modules/drive/drive_service.cc -@@ -55,7 +55,7 @@ constexpr char kRequestBody[] = R"({ - })"; - // Maximum accepted size of an ItemSuggest response. 1MB. - constexpr int kMaxResponseSize = 1024 * 1024; --const char server_url[] = "https://appsitemsuggest-pa.googleapis.com/v1/items"; -+const char server_url[] = "https://appsitemsuggest-pa.9oo91eapis.qjz9zk/v1/items"; - constexpr net::NetworkTrafficAnnotationTag kTrafficAnnotation = - net::DefineNetworkTrafficAnnotation("drive_service", R"( - semantics { -@@ -97,7 +97,7 @@ constexpr char kFakeData[] = R"({ - "item": [ - { - "itemId": "foo", -- "url": "https://docs.google.com", -+ "url": "https://docs.9oo91e.qjz9zk", - "driveItem": { - "title": "foo doc", - "mimeType": "application/vnd.google-apps.document" -@@ -108,7 +108,7 @@ constexpr char kFakeData[] = R"({ - }, - { - "itemId": "bar", -- "url": "https://sheets.google.com", -+ "url": "https://sheets.9oo91e.qjz9zk", - "driveItem": { - "title": "bar sheet", - "mimeType": "application/vnd.google-apps.spreadsheet" -@@ -119,7 +119,7 @@ constexpr char kFakeData[] = R"({ - }, - { - "itemId": "baz", -- "url": "https://slides.google.com", -+ "url": "https://slides.9oo91e.qjz9zk", - "driveItem": { - "title": "baz slides", - "mimeType": "application/vnd.google-apps.presentation" -diff --git a/chrome/browser/new_tab_page/modules/photos/photos_service.cc b/chrome/browser/new_tab_page/modules/photos/photos_service.cc ---- a/chrome/browser/new_tab_page/modules/photos/photos_service.cc -+++ b/chrome/browser/new_tab_page/modules/photos/photos_service.cc -@@ -36,7 +36,7 @@ namespace { - constexpr int kMaxResponseSize = 1024 * 1024; - const int kMaxPersonalizedMessageLength = 20; - const char server_url[] = -- "https://photosfirstparty-pa.googleapis.com/v1/ntp/memories:read"; -+ "https://photosfirstparty-pa.9oo91eapis.qjz9zk/v1/ntp/memories:read"; - constexpr net::NetworkTrafficAnnotationTag kTrafficAnnotation = - net::DefineNetworkTrafficAnnotation("photos_service", R"( - semantics { -@@ -82,7 +82,7 @@ constexpr char kMemoryTemplate[] = R"( - "subheader": "" - }, - "coverMediaKey": "coverKey%d", -- "coverDatUrl": "https://lh3.googleusercontent.com/proxy/CyeQrfWvSkJ-4wjGmm1zVIP4XZKL4oAjywWcPh8lhrwtizOY4kGsDtVa3nk984qJB5q2-r7aInfG25UFjfwyu7QEraqepTlbsDdKX1yeenhh7EGeAR2Hp1QcbO24C7WyU8bLPx8o_2HA-opm6cqZ8f4ehEXCxMEbR79A44jcWpacTLfYERPGeVrljo2vAl2LyFMHrA" -+ "coverDatUrl": "https://lh3.9oo91eusercontent.qjz9zk/proxy/CyeQrfWvSkJ-4wjGmm1zVIP4XZKL4oAjywWcPh8lhrwtizOY4kGsDtVa3nk984qJB5q2-r7aInfG25UFjfwyu7QEraqepTlbsDdKX1yeenhh7EGeAR2Hp1QcbO24C7WyU8bLPx8o_2HA-opm6cqZ8f4ehEXCxMEbR79A44jcWpacTLfYERPGeVrljo2vAl2LyFMHrA" - })"; - } // namespace - -@@ -454,10 +454,10 @@ void PhotosService::OnJsonParsed( - ntp_features::kNtpPhotosModule, - ntp_features::kNtpPhotosModuleDataParam); - if (fake_data_choice != "") { -- mojo_memory->item_url = GURL("https://photos.google.com"); -+ mojo_memory->item_url = GURL("https://photos.9oo91e.qjz9zk"); - } else { - mojo_memory->item_url = -- GURL("https://photos.google.com/memory/featured/" + *memory_id + -+ GURL("https://photos.9oo91e.qjz9zk/memory/featured/" + *memory_id + - "/photo/" + *cover_id + "?referrer=CHROME_NTP"); - } - -diff --git a/chrome/browser/obsolete_system/obsolete_system_linux.cc b/chrome/browser/obsolete_system/obsolete_system_linux.cc ---- a/chrome/browser/obsolete_system/obsolete_system_linux.cc -+++ b/chrome/browser/obsolete_system/obsolete_system_linux.cc -@@ -10,7 +10,7 @@ - #include "ui/base/l10n/l10n_util.h" - - const char kLinuxObsoleteUrl[] = -- "https://support.google.com/chrome/?p=unsupported_linux"; -+ "https://support.9oo91e.qjz9zk/chrome/?p=unsupported_linux"; - - // This list contains the 2 most recently obsoleted distros according to - // `kLinuxObsoleteUrl`. -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 -@@ -110,7 +110,7 @@ const char kHistogramNoServiceWorkerFirstContentfulPaintDocs[] = - namespace { - - 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/permissions/quiet_permission_prompt_model_android.cc b/chrome/browser/permissions/quiet_permission_prompt_model_android.cc ---- a/chrome/browser/permissions/quiet_permission_prompt_model_android.cc -+++ b/chrome/browser/permissions/quiet_permission_prompt_model_android.cc -@@ -90,5 +90,5 @@ QuietPermissionPromptModelAndroid GetQuietNotificationPermissionPromptModel( - } - - GURL GetNotificationBlockedLearnMoreUrl() { -- return GURL(u"https://support.google.com/chrome/answer/3220216"); -+ return GURL(u"https://support.9oo91e.qjz9zk/chrome/answer/3220216"); - } -diff --git a/chrome/browser/platform_keys/extension_key_permissions_service.cc b/chrome/browser/platform_keys/extension_key_permissions_service.cc ---- a/chrome/browser/platform_keys/extension_key_permissions_service.cc -+++ b/chrome/browser/platform_keys/extension_key_permissions_service.cc -@@ -130,7 +130,7 @@ crosapi::mojom::KeystoreService* GetKeystoreService( - // implemented for secondary profiles in Lacros. - CHECK(Profile::FromBrowserContext(browser_context)->IsMainProfile()) - << "Attempted to use an incorrect profile. Please file a bug at " -- "https://bugs.chromium.org/ if this happens."; -+ "https://bugs.ch40m1um.qjz9zk/ if this happens."; - return chromeos::LacrosService::Get() - ->GetRemote() - .get(); -diff --git a/chrome/browser/platform_keys/extension_platform_keys_service.cc b/chrome/browser/platform_keys/extension_platform_keys_service.cc ---- a/chrome/browser/platform_keys/extension_platform_keys_service.cc -+++ b/chrome/browser/platform_keys/extension_platform_keys_service.cc -@@ -161,7 +161,7 @@ crosapi::mojom::KeystoreService* GetKeystoreService( - // implemented for secondary profiles in Lacros. - CHECK(Profile::FromBrowserContext(browser_context)->IsMainProfile()) - << "Attempted to use an incorrect profile. Please file a bug at " -- "https://bugs.chromium.org/ if this happens."; -+ "https://bugs.ch40m1um.qjz9zk/ if this happens."; - - chromeos::LacrosService* service = chromeos::LacrosService::Get(); - if (!service || !service->IsAvailable()) { -diff --git a/chrome/browser/policy/safe_search_policy_test.h b/chrome/browser/policy/safe_search_policy_test.h ---- a/chrome/browser/policy/safe_search_policy_test.h -+++ b/chrome/browser/policy/safe_search_policy_test.h -@@ -31,7 +31,7 @@ class SafeSearchPolicyTest : public PolicyTest { - - static void CheckSafeSearch(Browser* browser, - bool expect_safe_search, -- const std::string& url = "http://google.com/"); -+ const std::string& url = "http://9oo91e.qjz9zk/"); - }; - - } // namespace policy -diff --git a/chrome/browser/preloading/prefetch/prefetch_proxy/chrome_prefetch_service_delegate.cc b/chrome/browser/preloading/prefetch/prefetch_proxy/chrome_prefetch_service_delegate.cc ---- a/chrome/browser/preloading/prefetch/prefetch_proxy/chrome_prefetch_service_delegate.cc -+++ b/chrome/browser/preloading/prefetch/prefetch_proxy/chrome_prefetch_service_delegate.cc -@@ -37,7 +37,7 @@ std::string ChromePrefetchServiceDelegate::GetAcceptLanguageHeader() { - } - - GURL ChromePrefetchServiceDelegate::GetDefaultPrefetchProxyHost() { -- return GURL("https://tunnel.googlezip.net/"); -+ return GURL("https://tunnel.9oo91e21p.qjz9zk/"); - } - - std::string ChromePrefetchServiceDelegate::GetAPIKey() { -@@ -45,11 +45,11 @@ std::string ChromePrefetchServiceDelegate::GetAPIKey() { - } - - GURL ChromePrefetchServiceDelegate::GetDefaultDNSCanaryCheckURL() { -- return GURL("http://dns-tunnel-check.googlezip.net/connect"); -+ return GURL("http://dns-tunnel-check.9oo91e21p.qjz9zk/connect"); - } - - GURL ChromePrefetchServiceDelegate::GetDefaultTLSCanaryCheckURL() { -- return GURL("http://tls-tunnel-check.googlezip.net/connect"); -+ return GURL("http://tls-tunnel-check.9oo91e21p.qjz9zk/connect"); - } - - void ChromePrefetchServiceDelegate::ReportOriginRetryAfter( -diff --git a/chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_params.cc b/chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_params.cc ---- a/chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_params.cc -+++ b/chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_params.cc -@@ -47,7 +47,7 @@ GURL PrefetchProxyProxyHost() { - if (url.is_valid() && url.SchemeIs(url::kHttpsScheme)) { - return url; - } -- return GURL("https://tunnel.googlezip.net/"); -+ return GURL("https://tunnel.9oo91e21p.qjz9zk/"); - } - - std::string PrefetchProxyProxyHeaderKey() { -@@ -166,7 +166,7 @@ GURL PrefetchProxyTLSCanaryCheckURL() { - if (url.is_valid()) { - return url; - } -- return GURL("http://tls-tunnel-check.googlezip.net/connect"); -+ return GURL("http://tls-tunnel-check.9oo91e21p.qjz9zk/connect"); - } - - GURL PrefetchProxyDNSCanaryCheckURL() { -@@ -175,7 +175,7 @@ GURL PrefetchProxyDNSCanaryCheckURL() { - if (url.is_valid()) { - return url; - } -- return GURL("http://dns-tunnel-check.googlezip.net/connect"); -+ return GURL("http://dns-tunnel-check.9oo91e21p.qjz9zk/connect"); - } - - base::TimeDelta PrefetchProxyCanaryCheckCacheLifetime() { -diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc ---- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc -+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.cc -@@ -642,18 +642,18 @@ base::flat_map - PrivacySandboxService::GetSampleFirstPartySets() const { - if (privacy_sandbox::kPrivacySandboxFirstPartySetsUISampleSets.Get() && - IsFirstPartySetsDataAccessEnabled()) { -- return {{net::SchemefulSite(GURL("https://youtube.com")), -- net::SchemefulSite(GURL("https://google.com"))}, -- {net::SchemefulSite(GURL("https://google.com")), -- net::SchemefulSite(GURL("https://google.com"))}, -- {net::SchemefulSite(GURL("https://google.com.au")), -- net::SchemefulSite(GURL("https://google.com"))}, -+ return {{net::SchemefulSite(GURL("https://y0u1ub3.qjz9zk")), -+ net::SchemefulSite(GURL("https://9oo91e.qjz9zk"))}, -+ {net::SchemefulSite(GURL("https://9oo91e.qjz9zk")), -+ net::SchemefulSite(GURL("https://9oo91e.qjz9zk"))}, -+ {net::SchemefulSite(GURL("https://9oo91e.qjz9zk.au")), -+ net::SchemefulSite(GURL("https://9oo91e.qjz9zk"))}, - {net::SchemefulSite(GURL("https://google.de")), -- net::SchemefulSite(GURL("https://google.com"))}, -- {net::SchemefulSite(GURL("https://chromium.org")), -- net::SchemefulSite(GURL("https://chromium.org"))}, -- {net::SchemefulSite(GURL("https://googlesource.com")), -- net::SchemefulSite(GURL("https://chromium.org"))}}; -+ net::SchemefulSite(GURL("https://9oo91e.qjz9zk"))}, -+ {net::SchemefulSite(GURL("https://ch40m1um.qjz9zk")), -+ net::SchemefulSite(GURL("https://ch40m1um.qjz9zk"))}, -+ {net::SchemefulSite(GURL("https://9oo91esource.qjz9zk")), -+ net::SchemefulSite(GURL("https://ch40m1um.qjz9zk"))}}; - } - - return {}; -@@ -712,7 +712,7 @@ bool PrivacySandboxService::IsPartOfManagedFirstPartySet( - if (privacy_sandbox::kPrivacySandboxFirstPartySetsUISampleSets.Get()) { - return IsFirstPartySetsDataAccessManaged() || - GetSampleFirstPartySets()[site] == -- net::SchemefulSite(GURL("https://chromium.org")); -+ net::SchemefulSite(GURL("https://ch40m1um.qjz9zk")); - } - - return first_party_sets_policy_service_->IsSiteInManagedSet(site); -diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/browser/profiles/profile_avatar_downloader.cc ---- a/chrome/browser/profiles/profile_avatar_downloader.cc -+++ b/chrome/browser/profiles/profile_avatar_downloader.cc -@@ -20,7 +20,7 @@ - - namespace { - const char kHighResAvatarDownloadUrlPrefix[] = -- "https://www.gstatic.com/chrome/profile_avatars/"; -+ "https://www.95tat1c.qjz9zk/chrome/profile_avatars/"; - } - - ProfileAvatarDownloader::ProfileAvatarDownloader(size_t icon_index, -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_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 -@@ -99,7 +99,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/yqv4Q4 for more details."; - - // Message displayed in the console (as an error) when a GCM Sender ID is used - // to create a subscription, which is unsupported. The subscription request will -diff --git a/chrome/browser/resources/about_sys/about_sys.js b/chrome/browser/resources/about_sys/about_sys.js ---- a/chrome/browser/resources/about_sys/about_sys.js -+++ b/chrome/browser/resources/about_sys/about_sys.js -@@ -18,7 +18,7 @@ const MAX_FILE_SIZE = 10485760; - // - // Link to markdown doc with documentation for Chrome OS. - const CROS_MD_DOC_URL = -- 'https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/debugd/docs/log_entries.md'; -+ 'https://chromium.9oo91esource.qjz9zk/chromiumos/platform2/+/HEAD/debugd/docs/log_entries.md'; - // - - function getValueDivForButton(button) { -diff --git a/chrome/browser/resources/browsing_topics/browsing_topics_internals.html b/chrome/browser/resources/browsing_topics/browsing_topics_internals.html ---- a/chrome/browser/resources/browsing_topics/browsing_topics_internals.html -+++ b/chrome/browser/resources/browsing_topics/browsing_topics_internals.html -@@ -47,8 +47,8 @@ found in the LICENSE file. -
- - -
-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,12 +13,12 @@ body { - - -

Placeholder

--

See Licensing for ChromiumOS Developers and -- Licensing for ChromiumOS Package Owners

-+

See Licensing for ChromiumOS Developers and -+ Licensing for ChromiumOS Package Owners

-

- If you need to change styles, fonts, layout, etc of the - 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/accessibility/accessibility_common/dictation/macros/list_commands_macro.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/macros/list_commands_macro.js ---- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/macros/list_commands_macro.js -+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/dictation/macros/list_commands_macro.js -@@ -25,7 +25,7 @@ export class ListCommandsMacro extends Macro { - // Note that this will open a new tab, ending the current Dictation session - // by changing the input focus. - globalThis.open( -- 'https://support.google.com/chromebook?p=text_dictation_m100', -+ 'https://support.9oo91e.qjz9zk/chromebook?p=text_dictation_m100', - '_blank'); - return this.createRunMacroResult_(/*isSuccess=*/ true); - } -diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js ---- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js -+++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js -@@ -140,7 +140,7 @@ export class Magnifier { - this.isInitializing_ = false; - }, Magnifier.IGNORE_FOCUS_UPDATES_INITIALIZATION_MS); - -- chrome.commandLinePrivate.hasSwitch( -+ ch40me.qjz9zkmandLinePrivate.hasSwitch( - 'enable-magnifier-debug-draw-rect', enabled => { - if (enabled) { - this.magnifierDebugDrawRect_ = true; -diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js ---- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js -+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js -@@ -1639,7 +1639,7 @@ export class CommandHandler extends CommandHandlerInterface { - - /** @private */ - reportIssue_() { -- let url = 'https://code.google.com/p/chromium/issues/entry?' + -+ let url = 'https://code.9oo91e.qjz9zk/p/chromium/issues/entry?' + - 'labels=Type-Bug,Pri-2,OS-Chrome&' + - 'components=OS>Accessibility>ChromeVox&' + - 'description='; -@@ -1665,7 +1665,7 @@ export class CommandHandler extends CommandHandlerInterface { - /** @private */ - showTalkBackKeyboardShortcuts_() { - chrome.tabs.create({ -- url: 'https://support.google.com/accessibility/android/answer/6110948', -+ url: 'https://support.9oo91e.qjz9zk/accessibility/android/answer/6110948', - }); - } - -@@ -1840,13 +1840,13 @@ export class CommandHandler extends CommandHandlerInterface { - init() { - ChromeVoxKbHandler.commandHandler = command => this.onCommand(command); - -- chrome.commandLinePrivate.hasSwitch( -+ ch40me.qjz9zkmandLinePrivate.hasSwitch( - 'enable-experimental-accessibility-language-detection', enabled => { - if (enabled) { - this.languageLoggingEnabled_ = true; - } - }); -- chrome.commandLinePrivate.hasSwitch( -+ ch40me.qjz9zkmandLinePrivate.hasSwitch( - 'enable-experimental-accessibility-language-detection-dynamic', - enabled => { - if (enabled) { -diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.css b/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.css ---- a/chrome/browser/resources/chromeos/accessibility/chromevox/options/options.css -+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/options/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/accessibility/chromevox/tools/webstore_extension_util.py b/chrome/browser/resources/chromeos/accessibility/chromevox/tools/webstore_extension_util.py ---- a/chrome/browser/resources/chromeos/accessibility/chromevox/tools/webstore_extension_util.py -+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/tools/webstore_extension_util.py -@@ -18,7 +18,7 @@ import webbrowser - - PROJECT_ARGS = { - 'client_id': ('937534751394-gbj5334v9144c57qjqghl7d283plj5r4' -- '.apps.googleusercontent.com'), -+ '.apps.9oo91eusercontent.qjz9zk'), - 'grant_type': - 'authorization_code', - 'redirect_uri': -@@ -34,11 +34,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(): -@@ -110,7 +110,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, -diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox_manifest.json.jinja2 b/chrome/browser/resources/chromeos/accessibility/chromevox_manifest.json.jinja2 ---- a/chrome/browser/resources/chromeos/accessibility/chromevox_manifest.json.jinja2 -+++ b/chrome/browser/resources/chromeos/accessibility/chromevox_manifest.json.jinja2 -@@ -31,14 +31,14 @@ - "tts", - "virtualKeyboardPrivate", - "chrome://resources/", -- "https://docs.google.com/*", -- "https://docs.sandbox.google.com/*" -+ "https://docs.9oo91e.qjz9zk/*", -+ "https://docs.sandbox.9oo91e.qjz9zk/*" - ], - "content_scripts": [ - { - "matches": [ -- "https://docs.google.com/*", -- "https://docs.sandbox.google.com/*" -+ "https://docs.9oo91e.qjz9zk/*", -+ "https://docs.sandbox.9oo91e.qjz9zk/*" - ], - "all_frames": true, - "js": [ -diff --git a/chrome/browser/resources/chromeos/accessibility/common/tutorial/chromevox_tutorial.js b/chrome/browser/resources/chromeos/accessibility/common/tutorial/chromevox_tutorial.js ---- a/chrome/browser/resources/chromeos/accessibility/common/tutorial/chromevox_tutorial.js -+++ b/chrome/browser/resources/chromeos/accessibility/common/tutorial/chromevox_tutorial.js -@@ -710,15 +710,15 @@ Polymer({ - { - msgId: 'next_command_reference', - link: -- 'https://support.google.com/chromebook/answer/7031755#zippy=%2Cmove-through-a-page-with-keyboard-shortcuts', -+ 'https://support.9oo91e.qjz9zk/chromebook/answer/7031755#zippy=%2Cmove-through-a-page-with-keyboard-shortcuts', - }, - { - 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', - }, - ]; - for (const resource of resources) { -diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/options.css b/chrome/browser/resources/chromeos/accessibility/select_to_speak/options.css ---- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/options.css -+++ b/chrome/browser/resources/chromeos/accessibility/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/accessibility/select_to_speak/options.html b/chrome/browser/resources/chromeos/accessibility/select_to_speak/options.html ---- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/options.html -+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/options.html -@@ -60,7 +60,7 @@ found in the LICENSE file. - - - -+ href="https://support.9oo91e.qjz9zk/chromebook?p=select_to_speak"> - - -diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js ---- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js -+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/select_to_speak.js -@@ -27,7 +27,7 @@ const SelectToSpeakState = chrome.accessibilityPrivate.SelectToSpeakState; - // 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}\//; - - // Settings key for system speech rate setting. - const SPEECH_RATE_KEY = 'settings.tts.speech_rate'; -@@ -179,7 +179,7 @@ export class SelectToSpeak { - 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; - }); -@@ -692,8 +692,8 @@ export class SelectToSpeak { - 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/accessibility/select_to_speak_manifest.json.jinja2 b/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2 ---- a/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2 -+++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2 -@@ -20,8 +20,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" -@@ -33,8 +33,8 @@ - "options_page": "select_to_speak/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": [ - "common/gdocs_script.js" -diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access.js b/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access.js ---- a/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access.js -+++ b/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access.js -@@ -63,7 +63,7 @@ export class SwitchAccess { - */ - this.enableImprovedTextInput_ = false; - -- chrome.commandLinePrivate.hasSwitch( -+ ch40me.qjz9zkmandLinePrivate.hasSwitch( - 'enable-experimental-accessibility-switch-access-text', result => { - this.enableImprovedTextInput_ = result; - }); -diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access_manifest.json.jinja2 b/chrome/browser/resources/chromeos/accessibility/switch_access_manifest.json.jinja2 ---- a/chrome/browser/resources/chromeos/accessibility/switch_access_manifest.json.jinja2 -+++ b/chrome/browser/resources/chromeos/accessibility/switch_access_manifest.json.jinja2 -@@ -28,8 +28,8 @@ - "default_locale": "en", - "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": [ - "common/gdocs_script.js" -diff --git a/chrome/browser/resources/chromeos/add_supervision/add_supervision_ui.js b/chrome/browser/resources/chromeos/add_supervision/add_supervision_ui.js ---- a/chrome/browser/resources/chromeos/add_supervision/add_supervision_ui.js -+++ b/chrome/browser/resources/chromeos/add_supervision/add_supervision_ui.js -@@ -16,15 +16,15 @@ import {AddSupervisionAPIServer} from './add_supervision_api_server.js'; - * @const {!Array} - */ - const ALLOWED_HOSTS = [ -- 'google.com', -- 'gstatic.com', -- 'googleapis.com', -- 'google-analytics.com', -+ '9oo91e.qjz9zk', -+ '95tat1c.qjz9zk', -+ '9oo91eapis.qjz9zk', -+ '9oo91e-analytics.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,7 +333,7 @@ class TermsOfServicePage { - this.termsView_.addContentScripts([ - { - name: 'preProcess', -- matches: ['https://play.google.com/*'], -+ matches: ['https://play.9oo91e.qjz9zk/*'], - js: {code: scriptInitTermsView}, - run_at: 'document_start', - }, -@@ -447,7 +447,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; -@@ -460,7 +460,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; -@@ -574,7 +574,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_( -@@ -948,7 +948,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; -@@ -1037,7 +1037,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_related_info.js b/chrome/browser/resources/chromeos/assistant_optin/assistant_related_info.js ---- a/chrome/browser/resources/chromeos/assistant_optin/assistant_related_info.js -+++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_related_info.js -@@ -90,7 +90,7 @@ class AssistantRelatedInfo extends AssistantRelatedInfoBase { - * @private {string} - */ - this.urlTemplate_ = -- 'https://www.gstatic.com/opa-android/oobe/a02187e41eed9e42/v5_omni_$.html'; -+ 'https://www.95tat1c.qjz9zk/opa-android/oobe/a02187e41eed9e42/v5_omni_$.html'; - - /** - * Whether try to reload with the default url when a 404 error occurred. -@@ -273,7 +273,7 @@ class AssistantRelatedInfo extends AssistantRelatedInfoBase { - 'icon-src', - 'data:text/html;charset=utf-8,' + - encodeURIComponent(this.$.zippy.getWrappedIcon( -- 'https://www.gstatic.com/images/icons/material/system/2x/' + -+ 'https://www.95tat1c.qjz9zk/images/icons/material/system/2x/' + - url, - this.i18n('assistantScreenContextTitle'), - getComputedStyle(document.body) -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 @@ class AssistantValueProp extends AssistantValuePropBase { - */ - urlTemplate_: { - value: -- 'https://www.gstatic.com/opa-android/oobe/a02187e41eed9e42/v5_omni_$.html', -+ 'https://www.95tat1c.qjz9zk/opa-android/oobe/a02187e41eed9e42/v5_omni_$.html', - }, - - /** -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", -@@ -37,40 +37,40 @@ - ], - "persistent": false - }, -- // Allow all domains listed in https://www.google.com/supported_domains -+ // Allow all domains listed in https://www.9oo91e.qjz9zk/supported_domains - "externally_connectable": { - "ids": ["*"], - "matches": [ -- "*://www.google.com/*chromebook/*", -+ "*://www.9oo91e.qjz9zk/*chromebook/*", - "*://www.google.ad/*chromebook/*", - "*://www.google.ae/*chromebook/*", -- "*://www.google.com.af/*chromebook/*", -- "*://www.google.com.ag/*chromebook/*", -- "*://www.google.com.ai/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.af/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ag/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ai/*chromebook/*", - "*://www.google.al/*chromebook/*", - "*://www.google.am/*chromebook/*", - "*://www.google.co.ao/*chromebook/*", -- "*://www.google.com.ar/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ar/*chromebook/*", - "*://www.google.as/*chromebook/*", - "*://www.google.at/*chromebook/*", -- "*://www.google.com.au/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.au/*chromebook/*", - "*://www.google.az/*chromebook/*", - "*://www.google.ba/*chromebook/*", -- "*://www.google.com.bd/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.bd/*chromebook/*", - "*://www.google.be/*chromebook/*", - "*://www.google.bf/*chromebook/*", - "*://www.google.bg/*chromebook/*", -- "*://www.google.com.bh/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.bh/*chromebook/*", - "*://www.google.bi/*chromebook/*", - "*://www.google.bj/*chromebook/*", -- "*://www.google.com.bn/*chromebook/*", -- "*://www.google.com.bo/*chromebook/*", -- "*://www.google.com.br/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.bn/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.bo/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.br/*chromebook/*", - "*://www.google.bs/*chromebook/*", - "*://www.google.bt/*chromebook/*", - "*://www.google.co.bw/*chromebook/*", - "*://www.google.by/*chromebook/*", -- "*://www.google.com.bz/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.bz/*chromebook/*", - "*://www.google.ca/*chromebook/*", - "*://www.google.cd/*chromebook/*", - "*://www.google.cf/*chromebook/*", -@@ -81,38 +81,38 @@ - "*://www.google.cl/*chromebook/*", - "*://www.google.cm/*chromebook/*", - "*://www.google.cn/*chromebook/*", -- "*://www.google.com.co/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.co/*chromebook/*", - "*://www.google.co.cr/*chromebook/*", -- "*://www.google.com.cu/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.cu/*chromebook/*", - "*://www.google.cv/*chromebook/*", -- "*://www.google.com.cy/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.cy/*chromebook/*", - "*://www.google.cz/*chromebook/*", - "*://www.google.de/*chromebook/*", - "*://www.google.dj/*chromebook/*", - "*://www.google.dk/*chromebook/*", - "*://www.google.dm/*chromebook/*", -- "*://www.google.com.do/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.do/*chromebook/*", - "*://www.google.dz/*chromebook/*", -- "*://www.google.com.ec/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ec/*chromebook/*", - "*://www.google.ee/*chromebook/*", -- "*://www.google.com.eg/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.eg/*chromebook/*", - "*://www.google.es/*chromebook/*", -- "*://www.google.com.et/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.et/*chromebook/*", - "*://www.google.fi/*chromebook/*", -- "*://www.google.com.fj/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.fj/*chromebook/*", - "*://www.google.fm/*chromebook/*", - "*://www.google.fr/*chromebook/*", - "*://www.google.ga/*chromebook/*", - "*://www.google.ge/*chromebook/*", - "*://www.google.gg/*chromebook/*", -- "*://www.google.com.gh/*chromebook/*", -- "*://www.google.com.gi/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.gh/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.gi/*chromebook/*", - "*://www.google.gl/*chromebook/*", - "*://www.google.gm/*chromebook/*", - "*://www.google.gr/*chromebook/*", -- "*://www.google.com.gt/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.gt/*chromebook/*", - "*://www.google.gy/*chromebook/*", -- "*://www.google.com.hk/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.hk/*chromebook/*", - "*://www.google.hn/*chromebook/*", - "*://www.google.hr/*chromebook/*", - "*://www.google.ht/*chromebook/*", -@@ -126,104 +126,104 @@ - "*://www.google.is/*chromebook/*", - "*://www.google.it/*chromebook/*", - "*://www.google.je/*chromebook/*", -- "*://www.google.com.jm/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.jm/*chromebook/*", - "*://www.google.jo/*chromebook/*", - "*://www.google.co.jp/*chromebook/*", - "*://www.google.co.ke/*chromebook/*", -- "*://www.google.com.kh/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.kh/*chromebook/*", - "*://www.google.ki/*chromebook/*", - "*://www.google.kg/*chromebook/*", - "*://www.google.co.kr/*chromebook/*", -- "*://www.google.com.kw/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.kw/*chromebook/*", - "*://www.google.kz/*chromebook/*", - "*://www.google.la/*chromebook/*", -- "*://www.google.com.lb/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.lb/*chromebook/*", - "*://www.google.li/*chromebook/*", - "*://www.google.lk/*chromebook/*", - "*://www.google.co.ls/*chromebook/*", - "*://www.google.lt/*chromebook/*", - "*://www.google.lu/*chromebook/*", - "*://www.google.lv/*chromebook/*", -- "*://www.google.com.ly/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ly/*chromebook/*", - "*://www.google.co.ma/*chromebook/*", - "*://www.google.md/*chromebook/*", - "*://www.google.me/*chromebook/*", - "*://www.google.mg/*chromebook/*", - "*://www.google.mk/*chromebook/*", - "*://www.google.ml/*chromebook/*", -- "*://www.google.com.mm/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.mm/*chromebook/*", - "*://www.google.mn/*chromebook/*", - "*://www.google.ms/*chromebook/*", -- "*://www.google.com.mt/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.mt/*chromebook/*", - "*://www.google.mu/*chromebook/*", - "*://www.google.mv/*chromebook/*", - "*://www.google.mw/*chromebook/*", -- "*://www.google.com.mx/*chromebook/*", -- "*://www.google.com.my/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.mx/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.my/*chromebook/*", - "*://www.google.co.mz/*chromebook/*", -- "*://www.google.com.na/*chromebook/*", -- "*://www.google.com.ng/*chromebook/*", -- "*://www.google.com.ni/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.na/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ng/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ni/*chromebook/*", - "*://www.google.ne/*chromebook/*", - "*://www.google.nl/*chromebook/*", - "*://www.google.no/*chromebook/*", -- "*://www.google.com.np/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.np/*chromebook/*", - "*://www.google.nr/*chromebook/*", - "*://www.google.nu/*chromebook/*", - "*://www.google.co.nz/*chromebook/*", -- "*://www.google.com.om/*chromebook/*", -- "*://www.google.com.pa/*chromebook/*", -- "*://www.google.com.pe/*chromebook/*", -- "*://www.google.com.pg/*chromebook/*", -- "*://www.google.com.ph/*chromebook/*", -- "*://www.google.com.pk/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.om/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.pa/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.pe/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.pg/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ph/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.pk/*chromebook/*", - "*://www.google.pl/*chromebook/*", - "*://www.google.pn/*chromebook/*", -- "*://www.google.com.pr/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.pr/*chromebook/*", - "*://www.google.ps/*chromebook/*", - "*://www.google.pt/*chromebook/*", -- "*://www.google.com.py/*chromebook/*", -- "*://www.google.com.qa/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.py/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.qa/*chromebook/*", - "*://www.google.ro/*chromebook/*", - "*://www.google.ru/*chromebook/*", - "*://www.google.rw/*chromebook/*", -- "*://www.google.com.sa/*chromebook/*", -- "*://www.google.com.sb/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.sa/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.sb/*chromebook/*", - "*://www.google.sc/*chromebook/*", - "*://www.google.se/*chromebook/*", -- "*://www.google.com.sg/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.sg/*chromebook/*", - "*://www.google.sh/*chromebook/*", - "*://www.google.si/*chromebook/*", - "*://www.google.sk/*chromebook/*", -- "*://www.google.com.sl/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.sl/*chromebook/*", - "*://www.google.sn/*chromebook/*", - "*://www.google.so/*chromebook/*", - "*://www.google.sm/*chromebook/*", - "*://www.google.sr/*chromebook/*", - "*://www.google.st/*chromebook/*", -- "*://www.google.com.sv/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.sv/*chromebook/*", - "*://www.google.td/*chromebook/*", - "*://www.google.tg/*chromebook/*", - "*://www.google.co.th/*chromebook/*", -- "*://www.google.com.tj/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.tj/*chromebook/*", - "*://www.google.tl/*chromebook/*", - "*://www.google.tm/*chromebook/*", - "*://www.google.tn/*chromebook/*", - "*://www.google.to/*chromebook/*", -- "*://www.google.com.tr/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.tr/*chromebook/*", - "*://www.google.tt/*chromebook/*", -- "*://www.google.com.tw/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.tw/*chromebook/*", - "*://www.google.co.tz/*chromebook/*", -- "*://www.google.com.ua/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.ua/*chromebook/*", - "*://www.google.co.ug/*chromebook/*", - "*://www.google.co.uk/*chromebook/*", -- "*://www.google.com.uy/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.uy/*chromebook/*", - "*://www.google.co.uz/*chromebook/*", -- "*://www.google.com.vc/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.vc/*chromebook/*", - "*://www.google.co.ve/*chromebook/*", - "*://www.google.vg/*chromebook/*", - "*://www.google.co.vi/*chromebook/*", -- "*://www.google.com.vn/*chromebook/*", -+ "*://www.9oo91e.qjz9zk.vn/*chromebook/*", - "*://www.google.vu/*chromebook/*", - "*://www.google.ws/*chromebook/*", - "*://www.google.rs/*chromebook/*", -@@ -231,7 +231,7 @@ - "*://www.google.co.zm/*chromebook/*", - "*://www.google.co.zw/*chromebook/*", - "*://www.google.cat/*chromebook/*", -- "*://chromebook-dot-googwebreview.appspot.com/*chromebook/*" -+ "*://chromebook-dot-googwebreview.8pp2p8t.qjz9zk/*chromebook/*" - ] - } - } -diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_ui.js b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_ui.js ---- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_ui.js -+++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_ui.js -@@ -144,7 +144,7 @@ Polymer({ - - // Don't show the "Next" button if the EDU authentication got forwarded to - // a non-Google SSO page. -- this.showGaiaNextButton_ = currentUrl.hostname.endsWith('.google.com'); -+ this.showGaiaNextButton_ = currentUrl.hostname.endsWith('.9oo91e.qjz9zk'); - } else { - // Hide the GAIA Buttons. - this.showGaiaButtons_ = false; -diff --git a/chrome/browser/resources/chromeos/emoji_picker/icons.html b/chrome/browser/resources/chromeos/emoji_picker/icons.html ---- a/chrome/browser/resources/chromeos/emoji_picker/icons.html -+++ b/chrome/browser/resources/chromeos/emoji_picker/icons.html -@@ -2,7 +2,7 @@ - - - - -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 -@@ -3,7 +3,7 @@ - - - - -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 -@@ -12,10 +12,10 @@ - "app.window.ime", - "audioCapture", - "crashReportPrivate", -- "https://clients4.google.com/", -- "https://dl.google.com/", -- "https://handwriting.googleapis.com/", -- "https://www.googleapis.com/", -+ "https://clients4.9oo91e.qjz9zk/", -+ "https://dl.9oo91e.qjz9zk/", -+ "https://handwriting.9oo91eapis.qjz9zk/", -+ "https://www.9oo91eapis.qjz9zk/", - "input", - "inputMethodPrivate", - "metricsPrivate", -diff --git a/chrome/browser/resources/chromeos/login/debug/debug.js b/chrome/browser/resources/chromeos/login/debug/debug.js ---- a/chrome/browser/resources/chromeos/login/debug/debug.js -+++ b/chrome/browser/resources/chromeos/login/debug/debug.js -@@ -58,18 +58,18 @@ const createAssistantZippy = (type, isMinor, isNativeIcons) => { - if (type === 'WAA') { - if (isMinor) { - zippy['iconUri'] = -- 'https://www.gstatic.com/myactivity/icon/icon_fp_history_blue.svg'; -+ 'https://www.95tat1c.qjz9zk/myactivity/icon/icon_fp_history_blue.svg'; - } else { - zippy['iconUri'] = -- 'https://ssl.gstatic.com/identity/boq/consentflowtexts/icon_web_and_app_activity_grey600_72-fb2e66730dca510849d22bee9f0f29ba.png'; -+ 'https://ssl.95tat1c.qjz9zk/identity/boq/consentflowtexts/icon_web_and_app_activity_grey600_72-fb2e66730dca510849d22bee9f0f29ba.png'; - } - } else if (type === 'DA') { - if (isMinor) { - zippy['iconUri'] = -- 'https://www.gstatic.com/myactivity/icon/icon_fp_chromebook_blue.svg'; -+ 'https://www.95tat1c.qjz9zk/myactivity/icon/icon_fp_chromebook_blue.svg'; - } else { - zippy['iconUri'] = -- 'https://ssl.gstatic.com/identity/boq/consentflowtexts/icon_device_information_vertical_grey600_72-be6f9c8691213019712cfa4106a509e0.png'; -+ 'https://ssl.95tat1c.qjz9zk/identity/boq/consentflowtexts/icon_device_information_vertical_grey600_72-be6f9c8691213019712cfa4106a509e0.png'; - } - } else { - console.error('### Uknown zippy type ' + type); -@@ -709,7 +709,7 @@ cr.define('cr.ui.login.debug', function() { - // Password and email mismatch error message. - id: 'offline-login-password-mismatch', - trigger: (screen) => { -- screen.setEmailForTest('someuser@gmail.com'); -+ screen.setEmailForTest('someuser@9ma1l.qjz9zk'); - screen.proceedToPasswordPage(); - screen.showPasswordMismatchMessage(); - }, -diff --git a/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js b/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js ---- a/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js -+++ b/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js -@@ -235,7 +235,7 @@ class ArcTermsOfService extends ArcTermsOfserviceBase { - * 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'; - - this.termsError = false; - this.usingOfflineTermsForTesting_ = false; -@@ -768,7 +768,7 @@ class ArcTermsOfService extends ArcTermsOfserviceBase { - if (results && results.length == 1 && 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); - } -diff --git a/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js b/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js ---- a/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js -+++ b/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js -@@ -194,7 +194,7 @@ class ConsolidatedConsent extends ConsolidatedConsentScreenElementBase { - * 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.arcTosHostName_ = 'https://play.google.com'; -+ this.arcTosHostName_ = 'https://play.9oo91e.qjz9zk'; - - // Online URLs - this.googleEulaUrl_ = ''; -diff --git a/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.html b/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.html ---- a/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.html -+++ b/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.html -@@ -157,7 +157,7 @@ found in the LICENSE file. -
- Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA -
--
www.google.com
-+
www.9oo91e.qjz9zk
- - - -diff --git a/chrome/browser/resources/chromeos/login/screens/login/offline_login.html b/chrome/browser/resources/chromeos/login/screens/login/offline_login.html ---- a/chrome/browser/resources/chromeos/login/screens/login/offline_login.html -+++ b/chrome/browser/resources/chromeos/login/screens/login/offline_login.html -@@ -25,7 +25,7 @@ found in the LICENSE file. - '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/screens/login/offline_login.js b/chrome/browser/resources/chromeos/login/screens/login/offline_login.js ---- a/chrome/browser/resources/chromeos/login/screens/login/offline_login.js -+++ b/chrome/browser/resources/chromeos/login/screens/login/offline_login.js -@@ -25,7 +25,7 @@ import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_hos - import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js'; - - --const DEFAULT_EMAIL_DOMAIN = '@gmail.com'; -+const DEFAULT_EMAIL_DOMAIN = '@9ma1l.qjz9zk'; - const INPUT_EMAIL_PATTERN = '^[a-zA-Z0-9.!#$%&\'*+=?^_`{|}~-]+(@[^\\s@]+)?$'; - - const LOGIN_SECTION = { -diff --git a/chrome/browser/resources/chromeos/multidevice_internals/browser_tabs_metadata_form.js b/chrome/browser/resources/chromeos/multidevice_internals/browser_tabs_metadata_form.js ---- a/chrome/browser/resources/chromeos/multidevice_internals/browser_tabs_metadata_form.js -+++ b/chrome/browser/resources/chromeos/multidevice_internals/browser_tabs_metadata_form.js -@@ -35,7 +35,7 @@ Polymer({ - /** @private */ - url_: { - type: String, -- value: 'https://www.google.com/', -+ value: 'https://www.9oo91e.qjz9zk/', - }, - - /** @private */ -diff --git a/chrome/browser/resources/chromeos/parent_access/parent_access_ui.js b/chrome/browser/resources/chromeos/parent_access/parent_access_ui.js ---- a/chrome/browser/resources/chromeos/parent_access/parent_access_ui.js -+++ b/chrome/browser/resources/chromeos/parent_access/parent_access_ui.js -@@ -17,10 +17,10 @@ import {WebviewManager} from './webview_manager.js'; - * @const {!Array} - */ - const ALLOWED_HOSTS = [ -- 'googleapis.com', -- 'gstatic.com', -- 'googleusercontent.com', -- 'google.com', -+ '9oo91eapis.qjz9zk', -+ '95tat1c.qjz9zk', -+ '9oo91eusercontent.qjz9zk', -+ '9oo91e.qjz9zk', - ]; - - class ParentAccessUi extends PolymerElement { -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 -@@ -861,7 +861,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 -@@ -3,7 +3,7 @@ - { - // 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 -@@ -78,7 +78,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 -@@ -3,7 +3,7 @@ - - - - -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 -@@ -104,7 +104,7 @@ export let AuthParams; - // 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'; -@@ -717,7 +717,7 @@ export class Authenticator extends EventTarget { - 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'); - -diff --git a/chrome/browser/resources/gaia_auth_host/saml_password_attributes.js b/chrome/browser/resources/gaia_auth_host/saml_password_attributes.js ---- a/chrome/browser/resources/gaia_auth_host/saml_password_attributes.js -+++ b/chrome/browser/resources/gaia_auth_host/saml_password_attributes.js -@@ -17,7 +17,7 @@ import {decodeTimestamp} from './saml_timestamps.js'; - 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/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/*" - ] - }, - "background": { -diff --git a/chrome/browser/resources/identity_scope_approval_dialog/manifest.json b/chrome/browser/resources/identity_scope_approval_dialog/manifest.json ---- a/chrome/browser/resources/identity_scope_approval_dialog/manifest.json -+++ b/chrome/browser/resources/identity_scope_approval_dialog/manifest.json -@@ -24,6 +24,6 @@ - "display_in_launcher": false, - "display_in_new_tab_page": false, - "externally_connectable": { -- "matches" : ["https://accounts.google.com/*"] -+ "matches" : ["https://accounts.9oo91e.qjz9zk/*"] - } - } -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 -@@ -23,7 +23,7 @@ function loadAuthUrlAndShowWindow(url, win, partition) { - - webview.addContentScripts([{ - name: 'injectRule', -- matches: ['https://accounts.google.com/*'], -+ matches: ['https://accounts.9oo91e.qjz9zk/*'], - js: {files: ['inject.js']}, - run_at: 'document_start', - }]); -@@ -36,11 +36,11 @@ function loadAuthUrlAndShowWindow(url, win, partition) { - 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 -@@ -46,7 +46,7 @@ found in the LICENSE file. - - -
-@@ -102,7 +102,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/internals/query_tiles/query_tiles_internals.html b/chrome/browser/resources/internals/query_tiles/query_tiles_internals.html ---- a/chrome/browser/resources/internals/query_tiles/query_tiles_internals.html -+++ b/chrome/browser/resources/internals/query_tiles/query_tiles_internals.html -@@ -24,7 +24,7 @@ -

Server address

-
- -- -+ - - - -diff --git a/chrome/browser/resources/internals/query_tiles/query_tiles_internals.js b/chrome/browser/resources/internals/query_tiles/query_tiles_internals.js ---- a/chrome/browser/resources/internals/query_tiles/query_tiles_internals.js -+++ b/chrome/browser/resources/internals/query_tiles/query_tiles_internals.js -@@ -43,11 +43,11 @@ function initialize() { - - $('prototype-server').onclick = function() { - $('base-url').value = -- 'https://staging-gsaprototype-pa.sandbox.googleapis.com'; -+ 'https://staging-gsaprototype-pa.sandbox.9oo91eapis.qjz9zk'; - }; - - $('prod-server').onclick = function() { -- $('base-url').value = 'https://chromeupboarding-pa.googleapis.com'; -+ $('base-url').value = 'https://chromeupboarding-pa.9oo91eapis.qjz9zk'; - }; - - $('set-url').onclick = function() { -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.7.1652906823", - "manifest_version": 2, -- "update_url": "https://clients2.google.com/service/update2/crx", -+ "update_url": "https://clients2.9oo91e.qjz9zk/service/update2/crx", - "description": "Contains preloaded data for Media Engagement" - } -diff --git a/chrome/browser/resources/nearby_share/shared/nearby_shared_icons.html b/chrome/browser/resources/nearby_share/shared/nearby_shared_icons.html ---- a/chrome/browser/resources/nearby_share/shared/nearby_shared_icons.html -+++ b/chrome/browser/resources/nearby_share/shared/nearby_shared_icons.html -@@ -2,7 +2,7 @@ - - - - - -@@ -43,7 +43,7 @@ - - - - -diff --git a/chrome/browser/resources/nearby_share/shared/nearby_shared_share_type_icons.html b/chrome/browser/resources/nearby_share/shared/nearby_shared_share_type_icons.html ---- a/chrome/browser/resources/nearby_share/shared/nearby_shared_share_type_icons.html -+++ b/chrome/browser/resources/nearby_share/shared/nearby_shared_share_type_icons.html -@@ -2,7 +2,7 @@ - - - - - -diff --git a/chrome/browser/resources/net_internals/index.html b/chrome/browser/resources/net_internals/index.html ---- a/chrome/browser/resources/net_internals/index.html -+++ b/chrome/browser/resources/net_internals/index.html -@@ -21,7 +21,7 @@ found in the LICENSE file. -
-
- The net-internals events viewer and related functionality has been removed. -- Please use chrome://net-export to save netlogs and the external netlog_viewer to view them. -+ Please use chrome://net-export to save netlogs and the external netlog_viewer to view them. -
- -
-@@ -74,8 +74,8 @@ found in the LICENSE file. -
- 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 -+ -+ 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/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/new_tab_page/modules/photos/module.html b/chrome/browser/resources/new_tab_page/modules/photos/module.html ---- a/chrome/browser/resources/new_tab_page/modules/photos/module.html -+++ b/chrome/browser/resources/new_tab_page/modules/photos/module.html -@@ -566,7 +566,7 @@ - - - -