From fe1dc4c82a78970f4cf4019e0a11bc68c98ddb89 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Mon, 3 Apr 2023 16:06:59 +0200 Subject: [PATCH] final patches for v112 --- build/bromite_patches_list.txt | 2 +- build/patches/00AdblockPlus.patch | 26 +- ...00Eyeo-Adblock-Remove-Privacy-Issues.patch | 44 +- .../00WIN-ADDTO-Disable-safe-browsing.patch | 90 +- ...ADDTO-Enable-native-Android-autofill.patch | 58 - ...TO-Experimental-user-scripts-support.patch | 6 +- build/patches/00WIN-ADDTO-Eyeo-Adblock.patch | 2 +- ...-Remove-signin-and-sync-integrations.patch | 4 +- build/patches/00WIN-Fix-windows-build.patch | 45 +- build/patches/00add-browser-policy.patch | 15 +- .../Add-a-proxy-configuration-page.patch | 2 +- .../Add-an-always-incognito-mode.patch | 12 +- .../Add-bookmark-import-export-actions.patch | 8 +- ...dd-custom-tab-intents-privacy-option.patch | 8 +- .../Add-flag-to-disable-vibration.patch | 2 +- ...Add-lifetime-options-for-permissions.patch | 2 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 12 +- ...-to-not-persist-tabs-across-sessions.patch | 6 +- build/patches/Bromite-auto-updater.patch | 18 +- .../Content-settings-infrastructure.patch | 6 +- build/patches/Disable-AGSA-by-default.patch | 10 +- .../Disable-FLoC-and-privacy-sandbox.patch | 6 +- build/patches/Disable-safe-browsing.patch | 199 ++- build/patches/Disable-safety-check.patch | 8 +- .../Enable-native-Android-autofill.patch | 67 +- .../Experimental-user-scripts-support.patch | 8 +- ...story-number-of-days-privacy-setting.patch | 10 +- build/patches/JIT-site-settings.patch | 13 +- .../Move-navigation-bar-to-bottom.patch | 4 +- ...nt-settings-back-to-privacy-settings.patch | 19 +- ...referrals-in-cross-origin-navigation.patch | 4 +- .../Remove-binary-blob-integrations.patch | 32 +- .../Remove-contextual-search-manager.patch | 12 +- ...price-shopping-commerce-integrations.patch | 1078 ++++++++++++++++- .../Remove-signin-and-sync-integrations.patch | 282 ++++- ...Remove-voice-recognition-integration.patch | 34 +- ...-button-in-top-toolbar-customization.patch | 2 +- ...moval-of-an-option-to-block-autoplay.patch | 13 +- build/patches/Site-setting-for-images.patch | 13 +- ...ed-chromium-no-special-hosts-domains.patch | 6 +- 40 files changed, 1806 insertions(+), 382 deletions(-) delete mode 100644 build/patches/00WIN-ADDTO-Enable-native-Android-autofill.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index dbda1397..9a597fd5 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -216,7 +216,7 @@ Add-kill-switch-for-unsupported-clangd-flags.patch 00WIN-ADDTO-Remove-EV-certificates.patch 00WIN-ADDTO-AImageReader-CFI-crash-mitigations.patch 00WIN-ADDTO-Remove-binary-blob-integrations.patch -00WIN-ADDTO-Enable-native-Android-autofill.patch + 00WIN-ADDTO-Remove-signin-and-sync-integrations.patch 00WIN-ADDTO-Add-lifetime-options-for-permissions.patch 00WIN-ADDTO-Disable-various-metrics.patch diff --git a/build/patches/00AdblockPlus.patch b/build/patches/00AdblockPlus.patch index aee3f749..af90b8e2 100644 --- a/build/patches/00AdblockPlus.patch +++ b/build/patches/00AdblockPlus.patch @@ -1186,7 +1186,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java_resources", "//components/autofill/android:autofill_payments_java_resources", "//components/blocked_content/android:java_resources", -@@ -363,6 +368,7 @@ if (current_toolchain == default_toolchain) { +@@ -365,6 +370,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/webapps/android:java", "//chrome/browser/webauthn/android:java", "//chrome/browser/xsurface:java", @@ -1194,7 +1194,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/autofill/android:prefeditor_autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", -@@ -1484,6 +1490,7 @@ if (current_toolchain == default_toolchain) { +@@ -1486,6 +1492,7 @@ if (current_toolchain == default_toolchain) { "//chrome/test/android:chrome_java_integration_test_support", "//chrome/test/android:chrome_java_test_pagecontroller", "//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java", @@ -1202,7 +1202,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/autofill/android:prefeditor_autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", -@@ -1666,6 +1673,7 @@ if (current_toolchain == default_toolchain) { +@@ -1668,6 +1675,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -1210,7 +1210,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3639,6 +3647,7 @@ group("jni_headers") { +@@ -3641,6 +3649,7 @@ group("jni_headers") { "//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -9166,7 +9166,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/android/explore_sites/explore_sites_service_factory.h" #include "chrome/browser/android/reading_list/reading_list_manager_factory.h" #include "chrome/browser/android/reading_list/reading_list_notification_service_factory.h" -@@ -570,9 +584,19 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -569,9 +583,19 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(ENABLE_SESSION_SERVICE) ExitTypeServiceFactory::GetInstance(); #endif @@ -9783,7 +9783,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/browsing_data/core:core", "//components/enterprise:enterprise", "//components/enterprise:test_support", -@@ -1342,6 +1347,7 @@ if (!is_android) { +@@ -1340,6 +1345,7 @@ if (!is_android) { "//chrome/test/data/webui:resources_grit", "//chrome/test/media_router/access_code_cast:access_code_cast_integration_base", "//chrome/test/payments:test_support", @@ -9791,7 +9791,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/browser:risk_proto", "//components/autofill/content/browser:test_support", "//components/autofill/content/common/mojom", -@@ -1644,6 +1650,7 @@ if (!is_android) { +@@ -1642,6 +1648,7 @@ if (!is_android) { "data/", "//ash/components/arc/test/data/icons", "//chrome/browser/page_load_metrics/integration_tests/data/", @@ -9799,7 +9799,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", "//components/test/data/ads_observer/", -@@ -1735,6 +1742,14 @@ if (!is_android) { +@@ -1733,6 +1740,14 @@ if (!is_android) { "../browser/accessibility/image_annotation_browsertest.cc", "../browser/accessibility/interstitial_accessibility_browsertest.cc", "../browser/accessibility/page_colors_browsertest.cc", @@ -9814,7 +9814,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/apps/guest_view/app_view_browsertest.cc", "../browser/apps/guest_view/web_view_browsertest.cc", "../browser/apps/platform_apps/app_browsertest.cc", -@@ -2416,6 +2431,10 @@ if (!is_android) { +@@ -2414,6 +2429,10 @@ if (!is_android) { sources += [ "../browser/chrome_for_testing/chrome_for_testing_info_bar_browsertest.cc" ] } @@ -9825,7 +9825,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (enable_reporting) { sources += [ "../browser/net/reporting_browsertest.cc" ] } -@@ -3204,6 +3223,12 @@ if (!is_android) { +@@ -3202,6 +3221,12 @@ if (!is_android) { "../browser/ui/views/web_apps/web_app_identity_update_confirmation_view_browsertest.cc", ] @@ -9838,7 +9838,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (is_chromeos_ash && enable_extensions) { deps += [ "//chromeos/ash/components/network/portal_detector:test_support" ] -@@ -5337,6 +5362,7 @@ test("unit_tests") { +@@ -5335,6 +5360,7 @@ test("unit_tests") { # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", "../browser/active_use_util_unittest.cc", @@ -9846,7 +9846,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/after_startup_task_utils_unittest.cc", "../browser/apps/user_type_filter_unittest.cc", "../browser/autocomplete/chrome_autocomplete_provider_client_unittest.cc", -@@ -5940,6 +5966,8 @@ test("unit_tests") { +@@ -5938,6 +5964,8 @@ test("unit_tests") { "//chrome/services/qrcode_generator/public/cpp", "//chrome/test/data:chrome_test_resources_grit", "//components/account_id", @@ -9855,7 +9855,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/assist_ranker/proto", "//components/autofill/content/browser:test_support", "//components/background_sync", -@@ -9185,6 +9213,7 @@ if (!is_android) { +@@ -9183,6 +9211,7 @@ if (!is_android) { public_deps = [ "//chrome/browser:test_support_ui", diff --git a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch index 40d91dfe..f770099c 100644 --- a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch +++ b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch @@ -47,13 +47,13 @@ Subject: Eyeo Adblock Remove components/resources/BUILD.gn | 1 - components/resources/adblock_resources.grdp | 3 - components/resources/adblocking/.gitignore | 2 +- - components/resources/adblocking/BUILD.gn | 4 +- + components/resources/adblocking/BUILD.gn | 30 +- .../snippets/dist/isolated-first.jst | 62 + .../snippets/dist/isolated-first.source.jst | 3126 +++++++++++++++++ .../blink/renderer/core/css/style_engine.cc | 8 + .../blink/renderer/core/css/style_engine.h | 1 + .../renderer/core/exported/web_document.cc | 13 +- - 50 files changed, 3279 insertions(+), 1131 deletions(-) + 50 files changed, 3278 insertions(+), 1158 deletions(-) delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (100%) @@ -370,7 +370,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/adblock/resource_classification_runner_factory.h" #include "chrome/browser/adblock/session_stats_factory.h" #include "chrome/browser/adblock/sitekey_storage_factory.h" -@@ -585,7 +584,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -584,7 +583,6 @@ void ChromeBrowserMainExtraPartsProfiles:: ExitTypeServiceFactory::GetInstance(); #endif adblock::AdblockControllerFactory::GetInstance(); @@ -1895,15 +1895,41 @@ diff --git a/components/resources/adblocking/BUILD.gn b/components/resources/adb compiled_action(target_name) { tool = "//components/adblock/core/converter:adblock_flatbuffer_converter" inputs = [ invoker.input ] -@@ -51,7 +51,7 @@ make_preloaded_subscription("make_anticv") { - output = "${target_gen_dir}/anticv.fb" +@@ -31,34 +31,6 @@ template("make_preloaded_subscription") { + } } +-# Note, url is *not* used to download the list during build time, only to +-# identify the subscription. Consider it metadata. +-make_preloaded_subscription("make_easylist") { +- input = "//components/resources/adblocking/easylist.txt.gz" +- url = "https://easylist-downloads.adblockplus.org/easylist.txt" +- output = "${target_gen_dir}/easylist.fb" +-} +- +-make_preloaded_subscription("make_exceptionrules") { +- input = "//components/resources/adblocking/exceptionrules.txt.gz" +- url = "https://easylist-downloads.adblockplus.org/exceptionrules.txt" +- output = "${target_gen_dir}/exceptionrules.fb" +-} +- +-make_preloaded_subscription("make_anticv") { +- input = "//components/resources/adblocking/anticv.txt.gz" +- url = "https://easylist-downloads.adblockplus.org/abp-filters-anti-cv.txt" +- output = "${target_gen_dir}/anticv.fb" +-} +- -group("make_all_preloaded_subscriptions") { -+group("make_all_preloaded_subscriptions_NO") { - deps = [ - ":make_anticv", - ":make_easylist", +- deps = [ +- ":make_anticv", +- ":make_easylist", +- ":make_exceptionrules", +- ] +-} +- + copy("copy_snippets_lib") { + if (is_debug) { + sources = [ "//components/resources/adblocking/snippets/dist/isolated-first.source.jst" ] diff --git a/components/resources/adblocking/snippets/dist/isolated-first.jst b/components/resources/adblocking/snippets/dist/isolated-first.jst new file mode 100755 --- /dev/null diff --git a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch index 2ccc04b4..68da5198 100644 --- a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch +++ b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch @@ -7,7 +7,7 @@ Subject: WIN ADDTO Disable safe browsing .../chrome_browsing_data_remover_delegate.cc | 2 - chrome/browser/chrome_browser_main_win.cc | 6 - .../bubble/download_bubble_controller.cc | 2 + - .../chrome_download_manager_delegate.cc | 4 +- + .../chrome_download_manager_delegate.cc | 16 +- .../browser/download/download_item_model.cc | 93 +--------- .../analysis/content_analysis_delegate.cc | 164 +----------------- .../analysis/content_analysis_delegate.h | 7 - @@ -43,18 +43,18 @@ Subject: WIN ADDTO Disable safe browsing .../ui/views/download/download_item_view.cc | 23 +-- .../webui/downloads/downloads_dom_handler.cc | 21 +-- .../ui/webui/downloads/downloads_ui.cc | 5 +- - chrome/browser/ui/webui/intro/intro_ui.cc | 11 +- + chrome/browser/ui/webui/intro/intro_ui.cc | 33 +--- chrome/browser/webshare/share_service_impl.cc | 4 + chrome/chrome_paks.gni | 2 - .../public/cpp/sandboxed_rar_analyzer.cc | 16 +- .../public/cpp/sandboxed_rar_analyzer.h | 2 - .../public/cpp/sandboxed_zip_analyzer.h | 2 - - chrome/test/BUILD.gn | 5 - + chrome/test/BUILD.gn | 4 - .../browser/mojo_safe_browsing_impl.cc | 1 + .../core/common/safe_browsing_prefs.cc | 2 +- printing/buildflags/buildflags.gni | 2 +- .../tracked_persistent_pref_store_factory.cc | 10 +- - 51 files changed, 73 insertions(+), 795 deletions(-) + 51 files changed, 74 insertions(+), 827 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn @@ -82,7 +82,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/share", "//chrome/browser/sharing:buildflags", "//chrome/browser/sharing/proto", -@@ -3655,18 +3648,12 @@ static_library("browser") { +@@ -3657,18 +3650,12 @@ static_library("browser") { "enterprise/connectors/analysis/analysis_service_settings.h", "enterprise/connectors/analysis/analysis_settings.cc", "enterprise/connectors/analysis/analysis_settings.h", @@ -101,7 +101,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "enterprise/connectors/analysis/request_handler_base.cc", "enterprise/connectors/analysis/request_handler_base.h", "enterprise/connectors/common.cc", -@@ -7918,7 +7905,6 @@ static_library("test_support") { +@@ -7920,7 +7907,6 @@ static_library("test_support") { ":browser", "//chrome/browser/autofill:test_support", "//chrome/browser/profiles:profile", @@ -154,7 +154,38 @@ diff --git a/chrome/browser/download/bubble/download_bubble_controller.cc b/chro diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc --- a/chrome/browser/download/chrome_download_manager_delegate.cc +++ b/chrome/browser/download/chrome_download_manager_delegate.cc -@@ -1706,8 +1706,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( +@@ -880,21 +880,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { + content::DownloadItemUtils::GetWebContents(download); + Browser* browser = + web_contents ? chrome::FindBrowserWithWebContents(web_contents) : nullptr; +- std::unique_ptr browser_displayer; +- if (!browser || +- !browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) { +- browser_displayer = +- std::make_unique(profile_); +- browser = browser_displayer->browser(); +- } + content::OpenURLParams params( + net::FilePathToFileURL(download->GetTargetFilePath()), + content::Referrer(), WindowOpenDisposition::NEW_FOREGROUND_TAB, + ui::PAGE_TRANSITION_LINK, false); + +- if (download->GetMimeType() == "application/x-x509-user-cert") +- chrome::ShowSettingsSubPage(browser, "certificates"); +- else + browser->OpenURL(params); + #endif // BUILDFLAG(IS_ANDROID) + } +@@ -942,7 +932,7 @@ void ChromeDownloadManagerDelegate::ShowDownloadInShell( + + std::string + ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { +- return std::string(chrome::kApplicationClientIDStringForAVScanning); ++ return std::string(); + } + + #if BUILDFLAG(FULL_SAFE_BROWSING) +@@ -1706,8 +1696,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( DCHECK(download_item); DCHECK(download_item->IsSavePackageDownload()); @@ -1701,10 +1732,13 @@ diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui namespace { #if BUILDFLAG(IS_CHROMEOS_LACROS) std::string GetPictureUrl(content::WebUI& web_ui, -@@ -98,9 +103,11 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { - content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd( - profile, chrome::kChromeUIIntroHost); +@@ -95,12 +100,11 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { + DCHECK(base::FeatureList::IsEnabled(kForYouFre)); + auto* profile = Profile::FromWebUI(web_ui); +- content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd( +- profile, chrome::kChromeUIIntroHost); +- +#if BUILDFLAG(ENABLE_DICE_SUPPORT) webui::SetupWebUIDataSource( source, base::make_span(kIntroResources, kIntroResourcesSize), @@ -1713,6 +1747,32 @@ diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui #if BUILDFLAG(ENABLE_DICE_SUPPORT) int title_id = 0; +@@ -126,25 +130,6 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { + } + #endif + +- webui::LocalizedString localized_strings[] = { +-#if BUILDFLAG(ENABLE_DICE_SUPPORT) +- {"pageTitle", title_id}, +- {"pageSubtitle", subtitle_id}, +- {"devicesCardTitle", IDS_FRE_DEVICES_CARD_TITLE}, +- {"devicesCardDescription", IDS_FRE_DEVICES_CARD_DESCRIPTION}, +- {"securityCardTitle", IDS_FRE_SECURITY_CARD_TITLE}, +- {"securityCardDescription", IDS_FRE_SECURITY_CARD_DESCRIPTION}, +- {"backupCardTitle", IDS_FRE_BACKUP_CARD_TITLE}, +- {"backupCardDescription", IDS_FRE_BACKUP_CARD_DESCRIPTION}, +- {"declineSignInButtonTitle", IDS_FRE_DECLINE_SIGN_IN_BUTTON_TITLE}, +- {"acceptSignInButtonTitle", IDS_FRE_ACCEPT_SIGN_IN_BUTTON_TITLE}, +-#endif +-#if BUILDFLAG(IS_CHROMEOS_LACROS) +- {"proceedLabel", IDS_PRIMARY_PROFILE_FIRST_RUN_NEXT_BUTTON_LABEL}, +-#endif +- }; +- source->AddLocalizedStrings(localized_strings); +- + // TODO(crbug.com/1409028): Replace this function by a call to + // chrome::GetDeviceManagerIdentity() + const bool is_device_managed = chrome::ShouldDisplayManagedUi(profile); diff --git a/chrome/browser/webshare/share_service_impl.cc b/chrome/browser/webshare/share_service_impl.cc --- a/chrome/browser/webshare/share_service_impl.cc +++ b/chrome/browser/webshare/share_service_impl.cc @@ -1854,15 +1914,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/browser/sharing/proto", "//chrome/child", "//chrome/common:non_code_constants", -@@ -1326,7 +1325,6 @@ if (!is_android) { - "//chrome/browser/resource_coordinator:mojo_bindings", - "//chrome/browser/resource_coordinator:tab_manager_features", - "//chrome/browser/safe_browsing:advanced_protection", -- "//chrome/browser/safe_browsing:verdict_cache_manager_factory", - "//chrome/browser/segmentation_platform:test_utils", - "//chrome/browser/sharing/proto", - "//chrome/browser/storage_access_api:permissions", -@@ -5935,9 +5933,6 @@ test("unit_tests") { +@@ -5933,9 +5932,6 @@ test("unit_tests") { "//chrome/browser/profile_resetter:profile_reset_report_proto", "//chrome/browser/profiling_host", "//chrome/browser/push_messaging:budget_proto", diff --git a/build/patches/00WIN-ADDTO-Enable-native-Android-autofill.patch b/build/patches/00WIN-ADDTO-Enable-native-Android-autofill.patch deleted file mode 100644 index a0ac3c1e..00000000 --- a/build/patches/00WIN-ADDTO-Enable-native-Android-autofill.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: Your Name -Date: Wed, 12 Oct 2022 11:46:45 +0000 -Subject: WIN ADDTO Enable native Android autofill - ---- - chrome/browser/extensions/extension_view_host.cc | 3 ++- - .../views/media_router/presentation_receiver_window_view.cc | 3 ++- - .../content/browser/content_autofill_driver_factory.cc | 6 ++++++ - 3 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/chrome/browser/extensions/extension_view_host.cc b/chrome/browser/extensions/extension_view_host.cc ---- a/chrome/browser/extensions/extension_view_host.cc -+++ b/chrome/browser/extensions/extension_view_host.cc -@@ -59,7 +59,8 @@ ExtensionViewHost::ExtensionViewHost(const Extension* extension, - base::BindRepeating( - &autofill::BrowserDriverInitHook, - autofill::ChromeAutofillClient::FromWebContents(host_contents()), -- g_browser_process->GetApplicationLocale())); -+ g_browser_process->GetApplicationLocale(), -+ /*enable_secondary_autofill_manager*/ false)); - - // The popup itself cannot be zoomed, but we must specify a zoom level to use. - // Otherwise, if a user zooms a page of the same extension, the popup would -diff --git a/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc b/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc ---- a/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc -+++ b/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc -@@ -174,7 +174,8 @@ void PresentationReceiverWindowView::Init() { - base::BindRepeating( - &autofill::BrowserDriverInitHook, - autofill::ChromeAutofillClient::FromWebContents(web_contents), -- g_browser_process->GetApplicationLocale())); -+ g_browser_process->GetApplicationLocale(), -+ /*enable_secondary_autofill_manager*/ false)); - ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( - web_contents, - autofill::ChromeAutofillClient::FromWebContents(web_contents)); -diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc ---- a/components/autofill/content/browser/content_autofill_driver_factory.cc -+++ b/components/autofill/content/browser/content_autofill_driver_factory.cc -@@ -45,10 +45,16 @@ void BrowserDriverInitHook(AutofillClient* client, - const std::string& app_locale, - bool enable_secondary_autofill_manager, - ContentAutofillDriver* driver) { -+#if BUILDFLAG(IS_ANDROID) - driver->set_autofill_manager( - std::make_unique(driver, client, app_locale)); - enable_secondary_autofill_manager == false ? nullptr : - base::WrapUnique(new AndroidAutofillManager(driver, client))); -+#else -+ driver->set_autofill_manager(std::make_unique( -+ driver, client, app_locale, -+ AutofillManager::EnableDownloadManager(false)), nullptr); -+#endif - if (client && ShouldEnableHeavyFormDataScraping(client->GetChannel())) - driver->GetAutofillAgent()->EnableHeavyFormDataScraping(); - } --- -2.25.1 diff --git a/build/patches/00WIN-ADDTO-Experimental-user-scripts-support.patch b/build/patches/00WIN-ADDTO-Experimental-user-scripts-support.patch index e69a2531..3c00ba30 100644 --- a/build/patches/00WIN-ADDTO-Experimental-user-scripts-support.patch +++ b/build/patches/00WIN-ADDTO-Experimental-user-scripts-support.patch @@ -20,7 +20,7 @@ Subject: WIN ADDTO Experimental user scripts support diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3490,11 +3490,13 @@ static_library("browser") { +@@ -3492,11 +3492,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -87,7 +87,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -406,7 +406,9 @@ +@@ -408,7 +408,9 @@ #include "chrome/browser/user_notes/user_note_service_factory.h" #endif @@ -97,7 +97,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { -@@ -941,7 +943,9 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -933,7 +935,9 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); diff --git a/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch b/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch index d2b1b4b2..15a8cafc 100644 --- a/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch +++ b/build/patches/00WIN-ADDTO-Eyeo-Adblock.patch @@ -9,7 +9,7 @@ Subject: WIN ADDTO Eyeo Adblock diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -2430,10 +2430,6 @@ if (!is_android) { +@@ -2428,10 +2428,6 @@ if (!is_android) { sources += [ "../browser/chrome_for_testing/chrome_for_testing_info_bar_browsertest.cc" ] } diff --git a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch index 6a35b587..92bc5d7b 100644 --- a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch +++ b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch @@ -26,7 +26,7 @@ Subject: WIN ADDTO Remove signin and sync integrations diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -4163,8 +4163,6 @@ static_library("browser") { +@@ -4165,8 +4165,6 @@ static_library("browser") { "sharing_hub/sharing_hub_service_factory.h", "signin/signin_promo.cc", "signin/signin_promo.h", @@ -35,7 +35,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "signin/signin_ui_util.cc", "signin/signin_ui_util.h", "speech/chrome_speech_recognition_service.cc", -@@ -6710,12 +6708,6 @@ static_library("browser") { +@@ -6712,12 +6710,6 @@ static_library("browser") { "signin/signin_ui_delegate_impl_dice.cc", "signin/signin_ui_delegate_impl_dice.h", ] diff --git a/build/patches/00WIN-Fix-windows-build.patch b/build/patches/00WIN-Fix-windows-build.patch index cb603448..d7ad843b 100644 --- a/build/patches/00WIN-Fix-windows-build.patch +++ b/build/patches/00WIN-Fix-windows-build.patch @@ -6,10 +6,10 @@ Subject: WIN Fix windows build .../browser_process_platform_part_win.cc | 3 ++ chrome/browser/devtools/devtools_window.cc | 1 + chrome/browser/ui/profile_picker.cc | 2 +- - .../browser/ui/startup/first_run_service.cc | 13 ++------ + .../browser/ui/startup/first_run_service.cc | 14 +++----- chrome/browser/updater/BUILD.gn | 9 ----- .../browser/updater/browser_updater_client.cc | 33 +------------------ - 6 files changed, 9 insertions(+), 52 deletions(-) + 6 files changed, 10 insertions(+), 52 deletions(-) diff --git a/chrome/browser/browser_process_platform_part_win.cc b/chrome/browser/browser_process_platform_part_win.cc --- a/chrome/browser/browser_process_platform_part_win.cc @@ -56,7 +56,23 @@ diff --git a/chrome/browser/ui/profile_picker.cc b/chrome/browser/ui/profile_pic diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/startup/first_run_service.cc --- a/chrome/browser/ui/startup/first_run_service.cc +++ b/chrome/browser/ui/startup/first_run_service.cc -@@ -164,9 +164,6 @@ enum class FinishedReason { +@@ -47,6 +47,7 @@ + namespace { + + bool IsFirstRunEligibleProfile(Profile* profile) { ++ if ((true)) return false; + if (profile->IsOffTheRecord()) { + return false; + } +@@ -74,6 +75,7 @@ bool IsFirstRunEligibleProfile(Profile* profile) { + } + + bool IsFirstRunEligibleProcess() { ++ if ((true)) return false; + #if !BUILDFLAG(IS_CHROMEOS_LACROS) + // On Lacros we want to run the FRE beyond the strict first run as defined by + // `IsChromeFirstRun()` for a few reasons: +@@ -164,9 +166,6 @@ enum class FinishedReason { }; void SetFirstRunFinished(FinishedReason reason) { @@ -66,7 +82,7 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ #if BUILDFLAG(IS_CHROMEOS_LACROS) absl::optional outcome; switch (reason) { -@@ -193,9 +190,7 @@ void SetFirstRunFinished(FinishedReason reason) { +@@ -193,9 +192,7 @@ void SetFirstRunFinished(FinishedReason reason) { // with it, or if for some other reason (e.g. policy or some other browser // state) we determine that we should not show it. bool IsFirstRunMarkedFinishedInPrefs() { @@ -77,14 +93,23 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ } // Processes the outcome from the FRE and resumes the user's interrupted task. -@@ -234,7 +229,6 @@ void OnFirstRunHasExited(ResumeTaskCallback original_intent_callback, +@@ -234,8 +231,6 @@ void OnFirstRunHasExited(ResumeTaskCallback original_intent_callback, // static void FirstRunService::RegisterLocalStatePrefs(PrefRegistrySimple* registry) { - registry->RegisterBooleanPref(prefs::kFirstRunFinished, false); - registry->RegisterStringPref(prefs::kFirstRunStudyGroup, ""); +- registry->RegisterStringPref(prefs::kFirstRunStudyGroup, ""); } + #if BUILDFLAG(ENABLE_DICE_SUPPORT) +@@ -318,7 +313,6 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( + return; + } + +- auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); + bool has_set_up_profile = + #if BUILDFLAG(IS_CHROMEOS_LACROS) + // Indicates that the profile was likely migrated from pre-Lacros Ash. @@ -328,7 +322,7 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( // the profile already has an account (e.g. the sentinel file was deleted // or `--force-first-run` was passed), this ensures we still skip it and @@ -94,14 +119,6 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ #endif if (has_set_up_profile) { SetFirstRunFinished(FinishedReason::kProfileAlreadySetUp); -@@ -495,6 +489,5 @@ bool FirstRunServiceFactory::ServiceIsCreatedWithBrowserContext() const { - // Helpers --------------------------------------------------------------------- - - bool ShouldOpenFirstRun(Profile* profile) { -- return IsFirstRunEligibleProcess() && IsFirstRunEligibleProfile(profile) && -- !IsFirstRunMarkedFinishedInPrefs(); -+ return false; - } diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn --- a/chrome/browser/updater/BUILD.gn +++ b/chrome/browser/updater/BUILD.gn diff --git a/build/patches/00add-browser-policy.patch b/build/patches/00add-browser-policy.patch index fecc5199..ce0f7e23 100644 --- a/build/patches/00add-browser-policy.patch +++ b/build/patches/00add-browser-policy.patch @@ -11,7 +11,6 @@ Subject: Add browser policy chrome/browser/signin/chrome_signin_client.cc | 6 +- .../ui/webui/policy/policy_ui_handler.cc | 105 ++++++++++++++- .../ui/webui/policy/policy_ui_handler.h | 2 + - .../commerce/core/commerce_feature_list.cc | 2 +- .../core/browser/browser_policy_connector.cc | 3 + .../common/command_line_policy_provider.cc | 3 + components/policy/core/common/features.cc | 4 +- @@ -28,7 +27,7 @@ Subject: Add browser policy components/signin/features.gni | 6 +- .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + - 25 files changed, 296 insertions(+), 36 deletions(-) + 24 files changed, 295 insertions(+), 35 deletions(-) diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc --- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc @@ -323,18 +322,6 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser void HandleListenPoliciesUpdates(const base::Value::List& args); void HandleReloadPolicies(const base::Value::List& args); void HandleCopyPoliciesJson(const base::Value::List& args); -diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc ---- a/components/commerce/core/commerce_feature_list.cc -+++ b/components/commerce/core/commerce_feature_list.cc -@@ -145,7 +145,7 @@ BASE_FEATURE(kCommercePriceTracking, - const base::FeatureParam kDeleteAllMerchantsOnClearBrowsingHistory{ - &kCommerceMerchantViewer, "delete_all_merchants_on_clear_history", false}; - --BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); -+BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); // guard this - #if BUILDFLAG(IS_ANDROID) - BASE_FEATURE(kShoppingListRegionLaunched, - "ShoppingListRegionLaunched", diff --git a/components/policy/core/browser/browser_policy_connector.cc b/components/policy/core/browser/browser_policy_connector.cc --- a/components/policy/core/browser/browser_policy_connector.cc +++ b/components/policy/core/browser/browser_policy_connector.cc diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 10de9c6c..b1953b04 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- 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 -@@ -64,6 +64,7 @@ public class PrivacySettings +@@ -65,6 +65,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"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 099c0d1c..1eb38b7b 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -32,7 +32,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 | 30 +++- + .../browser/history/HistoryManager.java | 28 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ .../native_page/NativePageFactory.java | 4 +- .../chrome/browser/ntp/RecentTabsManager.java | 28 ++- @@ -84,7 +84,7 @@ 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, 739 insertions(+), 82 deletions(-) + 65 files changed, 737 insertions(+), 82 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 @@ -562,7 +562,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History return; } else if (isHistoryClustersUIShowing()) { toHistoryClusters = false; -@@ -653,11 +660,26 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -653,11 +660,24 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve && mContentView == mHistoryClustersCoordinator.getActivityContentView(); } @@ -576,9 +576,7 @@ 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; + } + /** @@ -590,7 +588,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -677,7 +699,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -677,7 +697,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve * @return True if manager handles this event, false if it decides to ignore. */ public boolean onBackPressed() { diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 214effc9..561da127 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -282,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the * bookmark model stored in native. -@@ -434,6 +473,209 @@ class BookmarkBridge { +@@ -425,6 +464,209 @@ class BookmarkBridge { mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); } @@ -492,7 +492,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * @param query Keyword used for searching bookmarks. -@@ -918,6 +1160,39 @@ class BookmarkBridge { +@@ -909,6 +1151,39 @@ class BookmarkBridge { depthList.add(depth); } @@ -532,7 +532,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList>(); for (int i = 0; i < left.length; i++) { -@@ -951,6 +1226,9 @@ class BookmarkBridge { +@@ -942,6 +1217,9 @@ class BookmarkBridge { int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); void getChildIDs(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, List bookmarksList); @@ -727,7 +727,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3475,8 +3484,6 @@ static_library("browser") { +@@ -3477,8 +3486,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 984ab58e..38d63732 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -126,7 +126,7 @@ 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 --- 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 -@@ -82,6 +82,9 @@ public class PrivacySettings +@@ -83,6 +83,9 @@ public class PrivacySettings private ManagedPreferenceDelegate mManagedPreferenceDelegate; private IncognitoLockSettings mIncognitoLockSettings; @@ -136,7 +136,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { PrivacyPreferencesManagerImpl privacyPrefManager = -@@ -173,6 +176,9 @@ public class PrivacySettings +@@ -174,6 +177,9 @@ public class PrivacySettings updatePreferences(); } @@ -146,7 +146,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(); -@@ -189,6 +195,14 @@ public class PrivacySettings +@@ -190,6 +196,14 @@ public class PrivacySettings } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -161,7 +161,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -211,6 +225,16 @@ public class PrivacySettings +@@ -212,6 +226,16 @@ public class PrivacySettings canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index eba3cb43..973802fa 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -75,7 +75,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c +// 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 diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 5cd16941..61652543 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -181,7 +181,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker_factory.cc b/c diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -614,10 +614,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -613,10 +613,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif KAnonymityServiceFactory::GetInstance(); LanguageModelManagerFactory::GetInstance(); diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 8432a220..19c3fa48 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private long mNativeBookmarkBridge; private boolean mIsDestroyed; private boolean mIsDoingExtensiveChanges; -@@ -378,6 +385,16 @@ class BookmarkBridge { +@@ -372,6 +379,16 @@ class BookmarkBridge { mNativeBookmarkBridge, BookmarkBridge.this); } @@ -147,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * @return Id representing the special "other" folder from bookmark model. */ -@@ -1001,6 +1018,49 @@ class BookmarkBridge { +@@ -992,6 +1009,49 @@ class BookmarkBridge { mNativeBookmarkBridge, BookmarkBridge.this, title, url); } @@ -197,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * @param url The URL of the reading list item. * @return The reading list item with the URL, or null if no such reading list item. -@@ -1217,6 +1277,7 @@ class BookmarkBridge { +@@ -1208,6 +1268,7 @@ class BookmarkBridge { void getAllFoldersWithDepths(long nativeBookmarkBridge, BookmarkBridge caller, List folderList, List depthList); BookmarkId getRootFolderId(long nativeBookmarkBridge, BookmarkBridge caller); @@ -416,7 +416,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node)); roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); -+ roots.SetKey(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); ++ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node)); if (model_meta_info_map) roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map)); if (model_unsynced_meta_info_map) { @@ -465,8 +465,8 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar roots->FindDict(kOtherBookmarkFolderNameKey); const base::Value::Dict* mobile_folder_value = roots->FindDict(kMobileBookmarkFolderNameKey); -+ const base::Value* tabs_folder_value = -+ roots->FindDictKey(kTabsBookmarkFolderNameKey); ++ const base::Value::Dict* tabs_folder_value = ++ roots->FindDict(kTabsBookmarkFolderNameKey); if (!bb_value || !other_folder_value || !mobile_folder_value) return false; diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index 7260425d..f0afaed5 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.R; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -73,6 +76,8 @@ public class PrivacySettings +@@ -74,6 +77,8 @@ public class PrivacySettings SharedPreferencesManager.getInstance(); private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile()); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; private IncognitoLockSettings mIncognitoLockSettings; -@@ -170,7 +175,11 @@ public class PrivacySettings +@@ -171,7 +176,11 @@ public class PrivacySettings @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_HTTPS_FIRST_MODE.equals(key)) { -@@ -214,6 +223,11 @@ public class PrivacySettings +@@ -215,6 +224,11 @@ public class PrivacySettings PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext())); } diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index d90414c0..fdd5c45b 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -29,9 +29,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../flags/android/chrome_feature_list.h | 1 + .../browser/flags/ChromeFeatureList.java | 1 + .../strings/android_chrome_strings.grd | 23 +- - .../endpoint_fetcher/endpoint_fetcher.cc | 102 +++++++- - .../endpoint_fetcher/endpoint_fetcher.h | 22 +- - 23 files changed, 897 insertions(+), 53 deletions(-) + .../endpoint_fetcher/endpoint_fetcher.cc | 103 +++++++- + .../endpoint_fetcher/endpoint_fetcher.h | 23 +- + 23 files changed, 899 insertions(+), 53 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java @@ -1481,12 +1481,13 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi } void EndpointFetcher::OnResponseFetched( -@@ -327,3 +383,37 @@ void EndpointFetcher::OnSanitizationResult( +@@ -327,3 +383,38 @@ void EndpointFetcher::OnSanitizationResult( std::string EndpointFetcher::GetUrlForTesting() { return url_.spec(); } + +void EndpointFetcher::OnSimpleLoaderRedirect( ++ const GURL& url_before_redirect, + const net::RedirectInfo& redirect_info, + const network::mojom::URLResponseHead& response_head, + std::vector* removed_headers) { @@ -1555,18 +1556,19 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Used for tests. Can be used if caller constructs their own // url_loader_factory and identity_manager. EndpointFetcher( -@@ -144,6 +156,10 @@ class EndpointFetcher { +@@ -144,6 +156,11 @@ class EndpointFetcher { void OnSanitizationResult(std::unique_ptr response, EndpointFetcherCallback endpoint_fetcher_callback, data_decoder::JsonSanitizer::Result result); + void OnURLLoadComplete(scoped_refptr headers); -+ void OnSimpleLoaderRedirect(const net::RedirectInfo& redirect_info, ++ void OnSimpleLoaderRedirect(const GURL& url_before_redirect, ++ const net::RedirectInfo& redirect_info, + const network::mojom::URLResponseHead& response_head, + std::vector* removed_headers); enum AuthType { CHROME_API_KEY, OAUTH, NO_AUTH }; AuthType auth_type_; -@@ -151,10 +167,11 @@ class EndpointFetcher { +@@ -151,10 +168,11 @@ class EndpointFetcher { // Members set in constructor to be passed to network::ResourceRequest or // network::SimpleURLLoader. const std::string oauth_consumer_name_; @@ -1579,7 +1581,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin const std::string post_data_; const std::vector headers_; const std::vector cors_exempt_headers_; -@@ -172,6 +189,9 @@ class EndpointFetcher { +@@ -172,6 +190,9 @@ class EndpointFetcher { access_token_fetcher_; std::unique_ptr simple_url_loader_; diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 69160991..b3a06145 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -726,7 +726,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); case GlobalToggleLayout.FOUR_STATE_COOKIE_TOGGLE: FourStateCookieSettingsPreference fourStateCookieToggle = -@@ -1249,6 +1265,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -1243,6 +1259,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment screen.removePreference(antiAbuseThingsToConsiderHeader); screen.removePreference(antiAbuseThingsToConsiderSectionOne); } @@ -734,7 +734,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) { screen.removePreference(triStateToggle); -@@ -1408,7 +1425,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -1402,7 +1419,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment getSiteSettingsDelegate().getBrowserContextHandle(), contentType); int[] descriptionIds = ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); @@ -743,7 +743,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private void configureTimeOverrideStateToggle( -@@ -1521,6 +1538,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -1515,6 +1532,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); diff --git a/build/patches/Disable-AGSA-by-default.patch b/build/patches/Disable-AGSA-by-default.patch index a2def2b2..b094a160 100644 --- a/build/patches/Disable-AGSA-by-default.patch +++ b/build/patches/Disable-AGSA-by-default.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -285,7 +285,6 @@ if (current_toolchain == default_toolchain) { +@@ -287,7 +287,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/first_run/android:java", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", @@ -29,7 +29,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/history_clusters:java", "//chrome/browser/history_clusters:java_resources", "//chrome/browser/image_descriptions:java", -@@ -872,7 +871,6 @@ if (current_toolchain == default_toolchain) { +@@ -874,7 +873,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/flags:flags_junit_tests", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", @@ -37,7 +37,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/history_clusters:java", "//chrome/browser/image_descriptions:java", "//chrome/browser/image_editor/public:java", -@@ -1403,7 +1401,6 @@ if (current_toolchain == default_toolchain) { +@@ -1405,7 +1403,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/first_run/android:java", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", @@ -275,7 +275,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -147,7 +147,6 @@ android_library("java") { +@@ -148,7 +148,6 @@ android_library("java") { "//chrome/browser/device:java", "//chrome/browser/feature_engagement:java", "//chrome/browser/flags:java", @@ -283,7 +283,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//chrome/browser/history_clusters:java", "//chrome/browser/language/android:java", "//chrome/browser/lens:java", -@@ -444,7 +443,6 @@ robolectric_library("junit") { +@@ -445,7 +444,6 @@ robolectric_library("junit") { "//chrome/android:base_module_java", "//chrome/browser/device:java", "//chrome/browser/flags:java", diff --git a/build/patches/Disable-FLoC-and-privacy-sandbox.patch b/build/patches/Disable-FLoC-and-privacy-sandbox.patch index a90b43ca..59b6ee82 100644 --- a/build/patches/Disable-FLoC-and-privacy-sandbox.patch +++ b/build/patches/Disable-FLoC-and-privacy-sandbox.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- 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 -@@ -63,8 +63,6 @@ public class PrivacySettings +@@ -64,8 +64,6 @@ public class PrivacySettings private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; @@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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"; -@@ -97,19 +95,6 @@ public class PrivacySettings +@@ -98,19 +96,6 @@ public class PrivacySettings SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); } @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener(preference -> { -@@ -258,13 +243,6 @@ public class PrivacySettings +@@ -259,13 +244,6 @@ public class PrivacySettings secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext())); } diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index c030bac6..b56d234e 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -57,15 +57,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../PrivacyGuidePagerAdapter.java | 2 - .../privacy_guide/PrivacyGuideUtils.java | 6 +- .../privacy_guide/StepDisplayHandlerImpl.java | 2 +- - ...hrome_browser_main_extra_parts_profiles.cc | 4 +- + ...hrome_browser_main_extra_parts_profiles.cc | 10 +- chrome/browser/profiles/profile_impl.cc | 4 +- chrome/browser/safe_browsing/BUILD.gn | 4 +- - chrome/browser/safe_browsing/android/BUILD.gn | 4 - + chrome/browser/safe_browsing/android/BUILD.gn | 5 - .../safe_browsing/SafeBrowsingBridge.java | 91 ------------------- .../android/safe_browsing_bridge.cc | 59 ------------ .../download_protection_service.cc | 2 + .../download_protection_service.h | 3 +- .../url_lookup_service_factory.cc | 4 + + .../ssl/generated_https_first_mode_pref.cc | 26 +----- + .../ssl/generated_https_first_mode_pref.h | 12 +-- + .../ssl/https_first_mode_settings_tracker.cc | 16 ---- + .../ssl/https_first_mode_settings_tracker.h | 10 +- .../ssl/sct_reporting_service_factory.cc | 11 +-- .../browser/ssl/security_state_tab_helper.cc | 9 +- ...urce_filter_web_contents_helper_factory.cc | 4 + @@ -77,7 +81,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/renderer/BUILD.gn | 5 - .../chrome_content_renderer_client.cc | 6 +- .../renderer/chrome_content_renderer_client.h | 3 - - chrome/test/BUILD.gn | 3 - + chrome/test/BUILD.gn | 5 - components/BUILD.gn | 1 - .../installer_policies/BUILD.gn | 2 - .../permissions/permission_request_manager.cc | 5 +- @@ -94,7 +98,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../file_system_access_permission_context.h | 6 -- weblayer/BUILD.gn | 4 - weblayer/test/BUILD.gn | 1 - - 85 files changed, 209 insertions(+), 680 deletions(-) + 89 files changed, 213 insertions(+), 749 deletions(-) diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml --- a/chrome/android/java/res/xml/google_services_preferences.xml @@ -2093,7 +2097,20 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #endif #if BUILDFLAG(ENABLE_SUPERVISED_USERS) ChildAccountServiceFactory::GetInstance(); -@@ -884,7 +882,9 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -830,12 +828,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + safe_browsing::ExtensionTelemetryServiceFactory::GetInstance(); + safe_browsing::HashRealTimeServiceFactory::GetInstance(); + #endif +- safe_browsing::ChromePasswordProtectionServiceFactory::GetInstance(); +- safe_browsing::ClientSideDetectionServiceFactory::GetInstance(); +- safe_browsing::RealTimeUrlLookupServiceFactory::GetInstance(); +- safe_browsing::SafeBrowsingMetricsCollectorFactory::GetInstance(); +- safe_browsing::SafeBrowsingNavigationObserverManagerFactory::GetInstance(); +- safe_browsing::VerdictCacheManagerFactory::GetInstance(); + #if BUILDFLAG(IS_MAC) + if (screentime::IsScreenTimeEnabled()) { + screentime::HistoryBridgeFactory::GetInstance(); +@@ -884,7 +876,9 @@ void ChromeBrowserMainExtraPartsProfiles:: } #endif TabRestoreServiceFactory::GetInstance(); @@ -2169,7 +2186,15 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin diff --git a/chrome/browser/safe_browsing/android/BUILD.gn b/chrome/browser/safe_browsing/android/BUILD.gn --- a/chrome/browser/safe_browsing/android/BUILD.gn +++ b/chrome/browser/safe_browsing/android/BUILD.gn -@@ -41,12 +41,8 @@ source_set("android") { +@@ -17,7 +17,6 @@ source_set("android") { + deps = [ + ":jni_headers", + "//chrome/browser/profiles:profile", +- "//chrome/browser/safe_browsing:advanced_protection", + "//components/password_manager/core/browser/leak_detection", + "//components/password_manager/core/common", + "//components/prefs", +@@ -41,12 +40,8 @@ source_set("android") { android_library("java") { sources = [ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java", @@ -2413,6 +2438,155 @@ diff --git a/chrome/browser/safe_browsing/url_lookup_service_factory.cc b/chrome } } // namespace safe_browsing +diff --git a/chrome/browser/ssl/generated_https_first_mode_pref.cc b/chrome/browser/ssl/generated_https_first_mode_pref.cc +--- a/chrome/browser/ssl/generated_https_first_mode_pref.cc ++++ b/chrome/browser/ssl/generated_https_first_mode_pref.cc +@@ -27,20 +27,6 @@ GeneratedHttpsFirstModePref::GeneratedHttpsFirstModePref(Profile* profile) + base::BindRepeating( + &GeneratedHttpsFirstModePref::OnSourcePreferencesChanged, + base::Unretained(this))); +- +- // Track Advanced Protection status. +- if (base::FeatureList::IsEnabled( +- features::kHttpsFirstModeForAdvancedProtectionUsers)) { +- obs_.Observe( +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( +- profile_)); +- // On startup, AdvancedProtectionStatusManager runs before this class so we +- // don't get called back. Run the callback to get the AP setting. +- OnAdvancedProtectionStatusChanged( +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( +- profile_) +- ->IsUnderAdvancedProtection()); +- } + } + + GeneratedHttpsFirstModePref::~GeneratedHttpsFirstModePref() = default; +@@ -49,13 +35,6 @@ void GeneratedHttpsFirstModePref::OnSourcePreferencesChanged() { + NotifyObservers(kGeneratedHttpsFirstModePref); + } + +-void GeneratedHttpsFirstModePref::OnAdvancedProtectionStatusChanged( +- bool enabled) { +- DCHECK(base::FeatureList::IsEnabled( +- features::kHttpsFirstModeForAdvancedProtectionUsers)); +- NotifyObservers(kGeneratedHttpsFirstModePref); +-} +- + extensions::settings_private::SetPrefResult + GeneratedHttpsFirstModePref::SetPref(const base::Value* value) { + if (!value->is_bool()) { +@@ -74,10 +53,7 @@ GeneratedHttpsFirstModePref::SetPref(const base::Value* value) { + } + + settings_api::PrefObject GeneratedHttpsFirstModePref::GetPrefObject() const { +- bool is_advanced_protection_enabled = +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( +- profile_) +- ->IsUnderAdvancedProtection(); ++ bool is_advanced_protection_enabled = false; + + auto* backing_preference = + profile_->GetPrefs()->FindPreference(prefs::kHttpsOnlyModeEnabled); +diff --git a/chrome/browser/ssl/generated_https_first_mode_pref.h b/chrome/browser/ssl/generated_https_first_mode_pref.h +--- a/chrome/browser/ssl/generated_https_first_mode_pref.h ++++ b/chrome/browser/ssl/generated_https_first_mode_pref.h +@@ -18,9 +18,7 @@ + extern const char kGeneratedHttpsFirstModePref[]; + + class GeneratedHttpsFirstModePref +- : public extensions::settings_private::GeneratedPref, +- public safe_browsing::AdvancedProtectionStatusManager:: +- StatusChangedObserver { ++ : public extensions::settings_private::GeneratedPref { + public: + explicit GeneratedHttpsFirstModePref(Profile* profile); + ~GeneratedHttpsFirstModePref() override; +@@ -33,18 +31,10 @@ class GeneratedHttpsFirstModePref + // Fired when preferences used to generate this preference are changed. + void OnSourcePreferencesChanged(); + +- // safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver: +- void OnAdvancedProtectionStatusChanged(bool enabled) override; +- + private: + // Non-owning pointer to the profile this preference is generated for. + const raw_ptr profile_; + PrefChangeRegistrar user_prefs_registrar_; +- +- base::ScopedObservation< +- safe_browsing::AdvancedProtectionStatusManager, +- safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver> +- obs_{this}; + }; + + #endif // CHROME_BROWSER_SSL_GENERATED_HTTPS_FIRST_MODE_PREF_H_ +diff --git a/chrome/browser/ssl/https_first_mode_settings_tracker.cc b/chrome/browser/ssl/https_first_mode_settings_tracker.cc +--- a/chrome/browser/ssl/https_first_mode_settings_tracker.cc ++++ b/chrome/browser/ssl/https_first_mode_settings_tracker.cc +@@ -38,20 +38,6 @@ HttpsFirstModeService::HttpsFirstModeService(Profile* profile) + base::BindRepeating(&HttpsFirstModeService::OnHttpsFirstModePrefChanged, + base::Unretained(this))); + +- // Track Advanced Protection status. +- if (base::FeatureList::IsEnabled( +- features::kHttpsFirstModeForAdvancedProtectionUsers)) { +- obs_.Observe( +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( +- profile_)); +- // On startup, AdvancedProtectionStatusManager runs before this class so we +- // don't get called back. Run the callback to get the AP setting. +- OnAdvancedProtectionStatusChanged( +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( +- profile_) +- ->IsUnderAdvancedProtection()); +- } +- + // Make sure the pref state is logged and the synthetic field trial state is + // created at startup (as the pref may never change over the session). + bool enabled = profile_->GetPrefs()->GetBoolean(prefs::kHttpsOnlyModeEnabled); +@@ -106,8 +92,6 @@ HttpsFirstModeServiceFactory::HttpsFirstModeServiceFactory() + // Incognito (which uses the settings of the main profile) and Guest + // Mode. + ProfileSelections::BuildForRegularProfile()) { +- DependsOn( +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetInstance()); + } + + HttpsFirstModeServiceFactory::~HttpsFirstModeServiceFactory() = default; +diff --git a/chrome/browser/ssl/https_first_mode_settings_tracker.h b/chrome/browser/ssl/https_first_mode_settings_tracker.h +--- a/chrome/browser/ssl/https_first_mode_settings_tracker.h ++++ b/chrome/browser/ssl/https_first_mode_settings_tracker.h +@@ -21,9 +21,7 @@ class Profile; + // field trial based on that state. + // - Changing the pref based on user's Advanced Protection status. + class HttpsFirstModeService +- : public KeyedService, +- public safe_browsing::AdvancedProtectionStatusManager:: +- StatusChangedObserver { ++ : public KeyedService { + public: + explicit HttpsFirstModeService(Profile* profile); + ~HttpsFirstModeService() override; +@@ -32,17 +30,13 @@ class HttpsFirstModeService + HttpsFirstModeService& operator=(const HttpsFirstModeService&) = delete; + + // safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver: +- void OnAdvancedProtectionStatusChanged(bool enabled) override; ++ void OnAdvancedProtectionStatusChanged(bool enabled); + + private: + void OnHttpsFirstModePrefChanged(); + + raw_ptr profile_; + PrefChangeRegistrar pref_change_registrar_; +- base::ScopedObservation< +- safe_browsing::AdvancedProtectionStatusManager, +- safe_browsing::AdvancedProtectionStatusManager::StatusChangedObserver> +- obs_{this}; + }; + + // Factory boilerplate for creating the `HttpsFirstModeService` for each browser diff --git a/chrome/browser/ssl/sct_reporting_service_factory.cc b/chrome/browser/ssl/sct_reporting_service_factory.cc --- a/chrome/browser/ssl/sct_reporting_service_factory.cc +++ b/chrome/browser/ssl/sct_reporting_service_factory.cc @@ -2755,7 +2929,16 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/safe_browsing/content/common:interfaces", "//components/safe_browsing/content/renderer/phishing_classifier:phishing_classifier", "//components/safe_browsing/core/common/fbs:client_model", -@@ -1466,7 +1465,6 @@ if (!is_android) { +@@ -1322,8 +1321,6 @@ if (!is_android) { + "//chrome/browser/profiling_host:profiling_browsertests", + "//chrome/browser/resource_coordinator:mojo_bindings", + "//chrome/browser/resource_coordinator:tab_manager_features", +- "//chrome/browser/safe_browsing:advanced_protection", +- "//chrome/browser/safe_browsing:verdict_cache_manager_factory", + "//chrome/browser/segmentation_platform:test_utils", + "//chrome/browser/sharing/proto", + "//chrome/browser/storage_access_api:permissions", +@@ -1466,7 +1463,6 @@ if (!is_android) { "//components/resources", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -2763,7 +2946,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/safe_browsing/content/browser:safe_browsing_service", "//components/safe_browsing/content/browser/password_protection", "//components/safe_browsing/content/browser/password_protection:test_support", -@@ -6082,7 +6080,6 @@ test("unit_tests") { +@@ -6082,7 +6078,6 @@ test("unit_tests") { "//components/resources", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index 7ecb22a9..d15bf470 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -320,7 +320,6 @@ if (current_toolchain == default_toolchain) { +@@ -322,7 +322,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/profiles/android:java", "//chrome/browser/quick_delete:java", "//chrome/browser/safe_browsing/android:java", @@ -21,7 +21,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/search_engines/android:java", "//chrome/browser/search_resumption:java", "//chrome/browser/segmentation_platform:factory_java", -@@ -902,8 +901,6 @@ if (current_toolchain == default_toolchain) { +@@ -904,8 +903,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/privacy_guide/android:java", "//chrome/browser/privacy_guide/android:junit", "//chrome/browser/profiles/android:java", @@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/search_engines/android:java", "//chrome/browser/search_resumption:junit", "//chrome/browser/segmentation_platform:factory_java", -@@ -1442,8 +1439,6 @@ if (current_toolchain == default_toolchain) { +@@ -1444,8 +1441,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/profiles/android:java", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safe_browsing/android:javatests", @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3297,7 +3297,6 @@ static_library("browser") { +@@ -3299,7 +3299,6 @@ static_library("browser") { "//chrome/browser/privacy_sandbox/android:jni_headers", "//chrome/browser/reading_list/android", "//chrome/browser/safe_browsing/android:safe_browsing_enums", diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 985d6eb3..b5d95c86 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -24,19 +24,22 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/android/tab_android.cc | 23 ++++++ chrome/browser/android/tab_android.h | 2 + .../tab_web_contents_delegate_android.cc | 3 +- + .../browser/extensions/extension_view_host.cc | 3 +- .../strings/android_chrome_strings.grd | 6 ++ chrome/browser/ui/tab_helpers.cc | 6 +- + .../presentation_receiver_window_view.cc | 3 +- .../browser/android_autofill_manager.cc | 2 +- + .../browser/android_autofill_manager.h | 4 +- .../browser/content_autofill_driver.cc | 30 +++++++ .../content/browser/content_autofill_driver.h | 9 ++- - .../content_autofill_driver_factory.cc | 4 + + .../content_autofill_driver_factory.cc | 11 ++- .../browser/content_autofill_driver_factory.h | 1 + .../renderer/password_autofill_agent.cc | 5 +- .../autofill/core/common/autofill_prefs.cc | 6 ++ .../autofill/core/common/autofill_prefs.h | 2 + .../embedder_support/view/ContentView.java | 46 +++++++++++ .../chromium/ui/base/ViewAndroidDelegate.java | 8 ++ - 21 files changed, 302 insertions(+), 7 deletions(-) + 24 files changed, 314 insertions(+), 12 deletions(-) diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc @@ -54,7 +57,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -338,6 +338,7 @@ if (current_toolchain == default_toolchain) { +@@ -340,6 +340,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/favicon:java", "//chrome/browser/ui/android/layouts:java", "//chrome/browser/ui/android/layouts/glue:java", @@ -392,6 +395,19 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( portal_contents, autofill::ChromeAutofillClient::FromWebContents(portal_contents)); +diff --git a/chrome/browser/extensions/extension_view_host.cc b/chrome/browser/extensions/extension_view_host.cc +--- a/chrome/browser/extensions/extension_view_host.cc ++++ b/chrome/browser/extensions/extension_view_host.cc +@@ -59,7 +59,8 @@ ExtensionViewHost::ExtensionViewHost(const Extension* extension, + base::BindRepeating( + &autofill::BrowserDriverInitHook, + autofill::ChromeAutofillClient::FromWebContents(host_contents()), +- g_browser_process->GetApplicationLocale())); ++ g_browser_process->GetApplicationLocale(), ++ /*enable_secondary_autofill_manager*/ false)); + + // The popup itself cannot be zoomed, but we must specify a zoom level to use. + // Otherwise, if a user zooms a page of the same extension, the popup would diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -431,6 +447,19 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc if (breadcrumbs::IsEnabled()) BreadcrumbManagerTabHelper::CreateForWebContents(web_contents); chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents); +diff --git a/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc b/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc +--- a/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc ++++ b/chrome/browser/ui/views/media_router/presentation_receiver_window_view.cc +@@ -174,7 +174,8 @@ void PresentationReceiverWindowView::Init() { + base::BindRepeating( + &autofill::BrowserDriverInitHook, + autofill::ChromeAutofillClient::FromWebContents(web_contents), +- g_browser_process->GetApplicationLocale())); ++ g_browser_process->GetApplicationLocale(), ++ /*enable_secondary_autofill_manager*/ false)); + ChromePasswordManagerClient::CreateForWebContentsWithAutofillClient( + web_contents, + autofill::ChromeAutofillClient::FromWebContents(web_contents)); diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/components/android_autofill/browser/android_autofill_manager.cc --- a/components/android_autofill/browser/android_autofill_manager.cc +++ b/components/android_autofill/browser/android_autofill_manager.cc @@ -443,6 +472,24 @@ diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/c driver->GetAutofillAgent()->SetUserGestureRequired(false); driver->GetAutofillAgent()->SetSecureContextRequired(true); driver->GetAutofillAgent()->SetFocusRequiresScroll(false); +diff --git a/components/android_autofill/browser/android_autofill_manager.h b/components/android_autofill/browser/android_autofill_manager.h +--- a/components/android_autofill/browser/android_autofill_manager.h ++++ b/components/android_autofill/browser/android_autofill_manager.h +@@ -84,12 +84,12 @@ class AndroidAutofillManager : public AutofillManager { + const FieldTypeGroup field_type_group, + const url::Origin& triggered_origin); + ++ AndroidAutofillManager(AutofillDriver* driver, AutofillClient* client); ++ + protected: + friend void AndroidDriverInitHook(AutofillClient* client, + ContentAutofillDriver* driver); + +- AndroidAutofillManager(AutofillDriver* driver, AutofillClient* client); +- + void OnFormSubmittedImpl(const FormData& form, + bool known_success, + mojom::SubmissionSource source) override; diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc @@ -613,16 +660,22 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory #include "content/public/browser/global_routing_id.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h" -@@ -42,9 +43,12 @@ bool ShouldEnableHeavyFormDataScraping(const version_info::Channel channel) { +@@ -42,9 +43,17 @@ bool ShouldEnableHeavyFormDataScraping(const version_info::Channel channel) { void BrowserDriverInitHook(AutofillClient* client, const std::string& app_locale, + bool enable_secondary_autofill_manager, ContentAutofillDriver* driver) { ++#if BUILDFLAG(IS_ANDROID) driver->set_autofill_manager( - std::make_unique(driver, client, app_locale)); -+ enable_secondary_autofill_manager == false ? nullptr : -+ base::WrapUnique(new AndroidAutofillManager(driver, client))); +- std::make_unique(driver, client, app_locale)); ++ std::make_unique(driver, client, app_locale), ++ enable_secondary_autofill_manager == false ? nullptr : ++ base::WrapUnique(new AndroidAutofillManager(driver, client))); ++#else ++ driver->set_autofill_manager(std::make_unique( ++ driver, client, app_locale), nullptr); ++#endif if (client && ShouldEnableHeavyFormDataScraping(client->GetChannel())) driver->GetAutofillAgent()->EnableHeavyFormDataScraping(); } diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 7da1d7ea..0f961b07 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -235,7 +235,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } if (enable_vr) { -@@ -483,6 +486,7 @@ if (current_toolchain == default_toolchain) { +@@ -485,6 +488,7 @@ if (current_toolchain == default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -321,7 +321,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3455,6 +3455,11 @@ static_library("browser") { +@@ -3457,6 +3457,11 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -416,7 +416,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -393,6 +393,8 @@ +@@ -395,6 +395,8 @@ #include "chrome/browser/user_notes/user_note_service_factory.h" #endif @@ -425,7 +425,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { -@@ -920,6 +922,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -912,6 +914,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index f81c7e29..f468b79c 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -57,9 +57,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; -@@ -52,6 +53,9 @@ import androidx.preference.PreferenceCategory; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -53,6 +54,9 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; + import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; +import java.util.ArrayList; +import java.util.List; @@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** * Fragment to keep track of the all the privacy related preferences. */ -@@ -83,6 +87,8 @@ public class PrivacySettings +@@ -84,6 +88,8 @@ public class PrivacySettings private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { PrivacyPreferencesManagerImpl privacyPrefManager = -@@ -150,6 +156,40 @@ public class PrivacySettings +@@ -151,6 +157,40 @@ public class PrivacySettings Preference secureDnsPref = findPreference(PREF_SECURE_DNS); secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (thirdPartyCookies != null) { thirdPartyCookies.getExtras().putString( -@@ -252,6 +292,29 @@ public class PrivacySettings +@@ -253,6 +293,29 @@ public class PrivacySettings } } diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index ef17d9d3..43ce159e 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../permission_javascript_jit.png | Bin 0 -> 797 bytes .../res/xml/site_settings_preferences.xml | 4 ++++ .../ContentSettingsResources.java | 7 ++++++ - .../site_settings/SingleCategorySettings.java | 11 +++++++++ + .../site_settings/SingleCategorySettings.java | 9 ++++++++ .../site_settings/SingleWebsiteSettings.java | 21 ++++++++++++++++++ .../site_settings/SiteSettingsCategory.java | 9 ++++++-- .../site_settings/SiteSettingsUtil.java | 1 + @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/page_info/page_info.cc | 6 +++++ components/page_info/page_info_ui.cc | 2 ++ components/site_settings_strings.grdp | 6 +++++ - 20 files changed, 99 insertions(+), 3 deletions(-) + 20 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/permission_javascript_jit.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/permission_javascript_jit.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/permission_javascript_jit.png @@ -237,15 +237,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c default: break; } -@@ -1201,6 +1210,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - infoText.setSummary(R.string.website_settings_cookie_info); - } else if (mCategory.getType() == SiteSettingsCategory.Type.AUTOPLAY) { - allowSpecifyingExceptions = true; -+ } else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT_JIT) { -+ allowSpecifyingExceptions = true; - } else if (mCategory.getType() == SiteSettingsCategory.Type.SITE_DATA) { - infoText.setSummary(R.string.website_settings_site_data_page_description); - } else if (mCategory.getType() == SiteSettingsCategory.Type.THIRD_PARTY_COOKIES) { diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 973ddfd9..71d10048 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -152,7 +152,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -100,6 +100,9 @@ import org.chromium.ui.util.ColorUtils; +@@ -99,6 +99,9 @@ import org.chromium.ui.util.ColorUtils; import java.util.List; @@ -162,7 +162,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ /** The mediator implements the logic to interact with the surfaces and caller. */ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View.OnClickListener, StartSurface.OnTabSelectingListener, BackPressHandler, -@@ -1249,6 +1252,8 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. +@@ -1241,6 +1244,8 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. } private void setTopMargin(int topMargin) { diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index 13f46251..8c9ed023 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -7,9 +7,9 @@ Search suggestions, autofill assistant and contextual search License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../java/res/xml/privacy_preferences.xml | 13 ++++++++ - .../privacy/settings/PrivacySettings.java | 32 ++++++++++++++++++- + .../privacy/settings/PrivacySettings.java | 33 ++++++++++++++++++- .../strings/android_chrome_strings.grd | 4 +++ - 3 files changed, 48 insertions(+), 1 deletion(-) + 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml @@ -23,8 +23,8 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + android:title="@string/services_category_title"> + + - @@ -490,8 +490,8 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml @@ -57,10 +57,6 @@ found in the LICENSE file. - android:title="@string/autocomplete_searches_and_urls_title" - android:summary="@string/autocomplete_searches_and_urls_summary" + android:title="@string/improve_search_suggestions_title" + android:summary="@string/improve_search_suggestions_summary" android:persistent="false"/> - + if (id == R.id.info_menu_id) { + ChromePageInfo pageInfo = + new ChromePageInfo(getModalDialogManagerSupplier(), null, OpenedFromSource.MENU, +- mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get, ++ /*mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get*/ null, + mRootUiCoordinator.getEphemeralTabCoordinatorSupplier()); + pageInfo.show(currentTab, ChromePageInfoHighlight.noHighlight()); + return true; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java @@ -1193,6 +1215,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/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 +@@ -195,8 +195,7 @@ public class BookmarkActionBar extends SelectableListToolbar + return; + } + +- if (folder.equals(BookmarkId.SHOPPING_FOLDER)) { +- setTitle(R.string.price_tracking_bookmarks_filter_title); ++ if ((false)) { + } else if (mDelegate.getModel().getTopLevelFolderParentIDs().contains( + mCurrentFolder.getParentId()) + && TextUtils.isEmpty(mCurrentFolder.getTitle())) { 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 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java @@ -1243,7 +1278,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } /** Returns whether the bridge has been destroyed. */ -@@ -432,59 +406,6 @@ class BookmarkBridge { +@@ -233,12 +207,6 @@ class BookmarkBridge { + assert mIsNativeBookmarkModelLoaded; + if (id == null) return null; + +- if (BookmarkId.SHOPPING_FOLDER.equals(id)) { +- return new BookmarkItem(id, /*title=*/null, /*url=*/null, +- /*isFolder=*/true, /*parentId=*/getRootFolderId(), /*isEditable=*/false, +- /*isManaged=*/false, /*dateAdded=*/0L, /*read=*/false); +- } +- + return BookmarkBridgeJni.get().getBookmarkByID( + mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); + } +@@ -423,68 +391,12 @@ class BookmarkBridge { + ThreadUtils.assertOnUiThread(); + if (mNativeBookmarkBridge == 0) return new ArrayList(); + assert mIsNativeBookmarkModelLoaded; +- if (BookmarkId.SHOPPING_FOLDER.equals(id)) { +- return searchBookmarks("", null, PowerBookmarkType.SHOPPING, -1); +- } + List result = new ArrayList(); + BookmarkBridgeJni.get().getChildIDs( + mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType(), result); return result; } @@ -1303,6 +1360,166 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Gets the child of a folder at the specific position. * @param folderId Id of the parent folder +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java +@@ -65,6 +65,7 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter { + if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { + mItemTouchHelper.startDrag(holder); +@@ -225,10 +217,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter mDelegate.openFolder(BookmarkId.SHOPPING_FOLDER)); + } + } + +@@ -245,10 +233,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter selectableList = mMainView.findViewById(R.id.selectable_list); +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 +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +@@ -62,45 +62,21 @@ public class BookmarkManagerCoordinator { + public View createView(@NonNull ViewGroup parent, @ViewType int viewType) { + assert mDelegate != null; + +- // The shopping-specific bookmark row is only shown with the visual refresh. When +- // there's a mismatch, the ViewType is downgraded to ViewType.BOOKMARK. +- if (viewType == ViewType.SHOPPING_POWER_BOOKMARK +- && !BookmarkFeatures.isBookmarksVisualRefreshEnabled()) { +- viewType = ViewType.BOOKMARK; +- } +- + switch (viewType) { +- case ViewType.PERSONALIZED_SIGNIN_PROMO: +- case ViewType.PERSONALIZED_SYNC_PROMO: +- return buildPersonalizedPromoView(parent); +- case ViewType.SYNC_PROMO: +- return buildLegacyPromoView(parent); + case ViewType.SECTION_HEADER: + return buildSectionHeaderView(parent); + case ViewType.FOLDER: + return buildBookmarkFolderView(parent); + case ViewType.BOOKMARK: + return buildBookmarkItemView(parent); +- case ViewType.SHOPPING_POWER_BOOKMARK: +- return buildShoppingItemView(parent); + case ViewType.DIVIDER: + return buildDividerView(parent); +- case ViewType.SHOPPING_FILTER: +- return buildShoppingFilterView(parent); + default: + assert false; + return null; + } + } + +- private View buildPersonalizedPromoView(ViewGroup parent) { +- return mPromoHeaderManager.createPersonalizedSigninAndSyncPromoHolder(parent); +- } +- +- private View buildLegacyPromoView(ViewGroup parent) { +- return mPromoHeaderManager.createSyncPromoHolder(parent); +- } +- + private View buildSectionHeaderView(ViewGroup parent) { + return inflate(parent, org.chromium.chrome.R.layout.bookmark_section_header); + } +@@ -113,13 +89,6 @@ public class BookmarkManagerCoordinator { + return inflateBookmarkRow(parent, org.chromium.chrome.R.layout.bookmark_item_row); + } + +- private View buildShoppingItemView(ViewGroup parent) { +- PowerBookmarkShoppingItemRow row = (PowerBookmarkShoppingItemRow) inflateBookmarkRow( +- parent, org.chromium.chrome.R.layout.power_bookmark_shopping_item_row); +- row.init(mImageFetcher, mDelegate.getModel(), mSnackbarManager); +- return row; +- } +- + private View buildDividerView(ViewGroup parent) { + return inflate(parent, org.chromium.chrome.R.layout.horizontal_divider); + } +@@ -138,4 +107,4 @@ public class BookmarkManagerCoordinator { + (row).onDelegateInitialized(mDelegate); + return row; + } +-} +\ No newline at end of file ++} diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowCoordinator.java @@ -1500,6 +1787,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm - setPriceTrackingToggleVisualsOnly(!subscriptions.contains(mSubscription)); - } } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java +@@ -43,17 +43,8 @@ public class BookmarkUIState { + return state; + } + +- static BookmarkUIState createShoppingFilterState() { +- BookmarkUIState state = new BookmarkUIState(); +- state.mState = STATE_FOLDER; +- state.mUrl = SHOPPING_FILTER_URL; +- state.mFolder = BookmarkId.SHOPPING_FOLDER; +- return state; +- } +- + static BookmarkUIState createFolderState(BookmarkId folder, + BookmarkModel bookmarkModel) { +- if (BookmarkId.SHOPPING_FOLDER.equals(folder)) return createShoppingFilterState(); + return createStateFromUrl(createFolderUrl(folder), bookmarkModel); + } + +@@ -61,7 +52,6 @@ public class BookmarkUIState { + * @see #createStateFromUrl(Uri, BookmarkModel) + */ + static BookmarkUIState createStateFromUrl(String url, BookmarkModel bookmarkModel) { +- if (SHOPPING_FILTER_URL.equals(url)) return createShoppingFilterState(); + return createStateFromUrl(Uri.parse(url), bookmarkModel); + } + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java @@ -1524,6 +1840,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm new UserEducationHelper(activity, new Handler())); bookmarkSaveFlowCoordinator.show( bookmarkId, fromExplicitTrackUi, wasBookmarkMoved, isNewBookmark); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java +@@ -231,7 +231,7 @@ public class CustomTabActivity extends BaseCustomTabActivity { + if (tab == null) return false; + String publisher = TrustedCdn.getContentPublisher(tab); + new ChromePageInfo(getModalDialogManagerSupplier(), publisher, OpenedFromSource.MENU, +- mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get, ++ /*mRootUiCoordinator.getMerchantTrustSignalsCoordinatorSupplier()::get*/ null, + mRootUiCoordinator.getEphemeralTabCoordinatorSupplier()) + .show(tab, ChromePageInfoHighlight.noHighlight()); + return true; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java @@ -1546,6 +1874,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni }); deferredStartupHandler.addDeferredTask(() -> { if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEATURE_NOTIFICATION_GUIDE)) { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java +@@ -246,14 +246,6 @@ public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate + controllers.add(new PageInfoAboutThisSiteController(mainController, + mEphemeralTabCoordinatorSupplier, aboutThisSiteRow, this, mWebContents)); + } +- if (PageInfoFeatures.PAGE_INFO_STORE_INFO.isEnabled() && !isIncognito()) { +- final PageInfoRowView storeInfoRow = new PageInfoRowView(rowWrapper.getContext(), null); +- storeInfoRow.setId(PageInfoStoreInfoController.STORE_INFO_ROW_ID); +- rowWrapper.addView(storeInfoRow); +- controllers.add(new PageInfoStoreInfoController(mainController, storeInfoRow, +- mStoreInfoActionHandlerSupplier, mPageInfoHighlight.shouldHighlightStoreInfo(), +- mWebContents, mProfile)); +- } + return controllers; + } + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java @@ -1715,6 +2061,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; +@@ -645,7 +643,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + postDataType, postData, incognito, startSurfaceParentTabSupplier.get()); + }; + ChromePageInfo toolbarPageInfo = new ChromePageInfo(modalDialogManagerSupplier, null, +- OpenedFromSource.TOOLBAR, merchantTrustSignalsCoordinatorSupplier::get, ++ OpenedFromSource.TOOLBAR, /*merchantTrustSignalsCoordinatorSupplier::get*/ null, + mEphemeralTabCoordinatorSupplier); + // clang-format off + LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( @@ -1987,21 +1985,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve * viewed in the tab switcher grid. */ @@ -1748,7 +2103,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; -@@ -1055,12 +1054,6 @@ public class RootUiCoordinator +@@ -603,7 +602,6 @@ public class RootUiCoordinator + } + + if (mMerchantTrustSignalsCoordinatorSupplier.hasValue()) { +- mMerchantTrustSignalsCoordinatorSupplier.get().destroy(); + mMerchantTrustSignalsCoordinatorSupplier.set(null); + } + +@@ -840,16 +838,6 @@ public class RootUiCoordinator + } + + private void initMerchantTrustSignals() { +- if (ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()) +- .isMerchantViewerEnabled() +- && shouldInitializeMerchantTrustSignals()) { +- MerchantTrustSignalsCoordinator merchantTrustSignalsCoordinator = +- new MerchantTrustSignalsCoordinator(mActivity, mWindowAndroid, +- getBottomSheetController(), mActivity.getWindow().getDecorView(), +- MessageDispatcherProvider.from(mWindowAndroid), mActivityTabProvider, +- mProfileSupplier, new MerchantTrustMetrics(), mIntentRequestTracker); +- mMerchantTrustSignalsCoordinatorSupplier.set(merchantTrustSignalsCoordinator); +- } + } + + private void initScrollCapture() { +@@ -1055,12 +1043,6 @@ public class RootUiCoordinator mIdentityDiscController = new IdentityDiscController( mActivity, mActivityLifecycleDispatcher, mProfileSupplier); @@ -1761,7 +2141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi ReaderModeToolbarButtonController readerModeToolbarButtonController = new ReaderModeToolbarButtonController(mActivity, mActivityTabProvider, mModalDialogManagerSupplier.get(), -@@ -1111,8 +1104,6 @@ public class RootUiCoordinator +@@ -1111,8 +1093,6 @@ public class RootUiCoordinator AdaptiveToolbarButtonVariant.SHARE, shareButtonController); adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.VOICE, voiceToolbarButtonController); @@ -1811,17 +2191,454 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "component_updater/crow_domain_list_component_installer.cc", "component_updater/crow_domain_list_component_installer.h", "content_creation/notes/internal/android/note_service_bridge_factory.cc", -@@ -3257,10 +3255,6 @@ static_library("browser") { - "//chrome/browser/android/webapk:webapk_features", +@@ -3258,8 +3256,6 @@ static_library("browser") { "//chrome/browser/banners/android:jni_headers", "//chrome/browser/bluetooth/android:jni_headers", -- "//chrome/browser/commerce/android:shopping_service_jni", + "//chrome/browser/commerce/android:shopping_service_jni", - "//chrome/browser/commerce/merchant_viewer:merchant_signal_db", - "//chrome/browser/commerce/merchant_viewer:merchant_viewer_data_manager", -- "//chrome/browser/commerce/merchant_viewer/android:jni_headers", + "//chrome/browser/commerce/merchant_viewer/android:jni_headers", "//chrome/browser/consent_auditor/android:jni_headers", "//chrome/browser/content_creation/notes/internal/android:jni_headers", - "//chrome/browser/creator/android:jni_headers", +diff --git a/chrome/browser/browsing_data/browsing_data_history_observer_service.cc b/chrome/browser/browsing_data/browsing_data_history_observer_service.cc +--- a/chrome/browser/browsing_data/browsing_data_history_observer_service.cc ++++ b/chrome/browser/browsing_data/browsing_data_history_observer_service.cc +@@ -93,20 +93,6 @@ void DeleteTemplateUrlsForDeletedOrigins(TemplateURLService* keywords_model, + #if BUILDFLAG(IS_ANDROID) + void ClearCommerceData(Profile* profile, + const history::DeletionInfo& deletion_info) { +- MerchantViewerDataManager* merchant_viewer_data_manager = +- MerchantViewerDataManagerFactory::GetForProfile(profile); +- if (!merchant_viewer_data_manager) +- return; +- if (deletion_info.time_range().IsValid()) { +- merchant_viewer_data_manager->DeleteMerchantViewerDataForTimeRange( +- deletion_info.time_range().begin(), deletion_info.time_range().end()); +- } else { +- auto deleted_origins = +- GetDeletedOrigins(deletion_info.deleted_urls_origin_map()); +- +- merchant_viewer_data_manager->DeleteMerchantViewerDataForOrigins( +- std::move(deleted_origins)); +- } + } + #endif + +@@ -179,7 +165,6 @@ BrowsingDataHistoryObserverService::Factory::Factory() + #endif + + #if BUILDFLAG(IS_ANDROID) +- DependsOn(MerchantViewerDataManagerFactory::GetInstance()); + DependsOn(commerce::ShoppingServiceFactory::GetInstance()); + #endif + } +diff --git a/chrome/browser/commerce/merchant_viewer/android/BUILD.gn b/chrome/browser/commerce/merchant_viewer/android/BUILD.gn +--- a/chrome/browser/commerce/merchant_viewer/android/BUILD.gn ++++ b/chrome/browser/commerce/merchant_viewer/android/BUILD.gn +@@ -7,26 +7,26 @@ import("//build/config/android/rules.gni") + + android_library("java") { + sources = [ +- "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarProperties.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarView.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarViewBinder.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetContent.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetCoordinator.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetMediator.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageContext.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageScheduler.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageViewModel.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarProperties.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarView.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/BottomSheetToolbarViewBinder.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetContent.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetCoordinator.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustBottomSheetMediator.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageContext.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageScheduler.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMessageViewModel.java", + "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustMetrics.java", + "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsDataProvider.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEvent.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantViewerConfig.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsDataProvider.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEvent.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsEventStorage.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsMediator.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsStorageFactory.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/MerchantViewerConfig.java", + "java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/RatingStarSpan.java", +- "java/src/org/chromium/chrome/browser/merchant_viewer/WebContentsHelpers.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/RatingStarSpan.java", ++ # "java/src/org/chromium/chrome/browser/merchant_viewer/WebContentsHelpers.java", + ] + + deps = [ +diff --git a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java +--- a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java ++++ b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/MerchantTrustSignalsCoordinator.java +@@ -43,9 +43,7 @@ import org.chromium.url.GURL; + /** + * Coordinator for managing merchant trust signals experience. + */ +-public class MerchantTrustSignalsCoordinator +- implements PageInfoStoreInfoController.StoreInfoActionHandler, +- MerchantTrustMessageViewModel.MessageActionsHandler { ++public class MerchantTrustSignalsCoordinator { + /** Interface to control the omnibox store icon and the related IPH. */ + public interface OmniboxIconController { + /** +@@ -62,308 +60,9 @@ public class MerchantTrustSignalsCoordinator + @StringRes int stringId, boolean canShowIph); + } + +- private final MerchantTrustSignalsMediator mMediator; +- private final MerchantTrustMessageScheduler mMessageScheduler; +- private final MerchantTrustBottomSheetCoordinator mDetailsTabCoordinator; +- private final Context mContext; +- private final MerchantTrustMetrics mMetrics; +- private final MerchantTrustSignalsDataProvider mDataProvider; +- private final MerchantTrustSignalsStorageFactory mStorageFactory; +- private final ObservableSupplier mProfileSupplier; +- private final WindowAndroid mWindowAndroid; +- private final ObservableSupplier mTabSupplier; +- private OmniboxIconController mOmniboxIconController; +- +- /** Creates a new instance. */ +- public MerchantTrustSignalsCoordinator(Context context, WindowAndroid windowAndroid, +- BottomSheetController bottomSheetController, View layoutView, +- MessageDispatcher messageDispatcher, ObservableSupplier tabSupplier, +- ObservableSupplier profileSupplier, MerchantTrustMetrics metrics, +- IntentRequestTracker intentRequestTracker) { +- this(context, windowAndroid, +- new MerchantTrustMessageScheduler(messageDispatcher, metrics, tabSupplier), +- tabSupplier, new MerchantTrustSignalsDataProvider(), profileSupplier, metrics, +- new MerchantTrustBottomSheetCoordinator(context, windowAndroid, +- bottomSheetController, tabSupplier, layoutView, metrics, +- intentRequestTracker, profileSupplier), +- new MerchantTrustSignalsStorageFactory(profileSupplier)); +- } +- +- @VisibleForTesting +- MerchantTrustSignalsCoordinator(Context context, WindowAndroid windowAndroid, +- MerchantTrustMessageScheduler messageScheduler, ObservableSupplier tabSupplier, +- MerchantTrustSignalsDataProvider dataProvider, +- ObservableSupplier profileSupplier, MerchantTrustMetrics metrics, +- MerchantTrustBottomSheetCoordinator detailsTabCoordinator, +- MerchantTrustSignalsStorageFactory storageFactory) { +- mContext = context; +- mDataProvider = dataProvider; +- mMetrics = metrics; +- mStorageFactory = storageFactory; +- mProfileSupplier = profileSupplier; +- mWindowAndroid = windowAndroid; +- mTabSupplier = tabSupplier; +- +- mMediator = new MerchantTrustSignalsMediator( +- tabSupplier, this::onFinishEligibleNavigation, metrics); +- mMessageScheduler = messageScheduler; +- mDetailsTabCoordinator = detailsTabCoordinator; +- } +- +- /** Cleans up internal state. */ +- public void destroy() { +- mMediator.destroy(); +- mStorageFactory.destroy(); +- } +- + /** + * Set the {@link OmniboxIconController} to manage the store icon in omnibox. + */ + public void setOmniboxIconController(@Nullable OmniboxIconController omniboxIconController) { +- mOmniboxIconController = omniboxIconController; +- } +- +- @VisibleForTesting +- void onFinishEligibleNavigation(MerchantTrustMessageContext item) { +- NavigationHandle navigationHandle = item.getNavigationHandle(); +- if (navigationHandle == null || navigationHandle.getUrl() == null) { +- return; +- } +- boolean shouldExpediteMessage; +- MerchantTrustMessageContext scheduledMessage = +- mMessageScheduler.getScheduledMessageContext(); +- if (scheduledMessage != null && scheduledMessage.getHostName() != null +- && scheduledMessage.getHostName().equals(item.getHostName()) +- && !scheduledMessage.getUrl().equals(item.getUrl())) { +- // When user enters PageInfo, we fetch data based on url which is less reliable than the +- // navigation-based one. Thus, to make sure the "Store info" row is visible, we still +- // need to fetch data based on this navigation before showing the message, rather than +- // using the scheduled message directly. +- mMessageScheduler.clear(MessageClearReason.NAVIGATE_TO_SAME_DOMAIN); +- shouldExpediteMessage = true; +- } else { +- mMessageScheduler.clear(MessageClearReason.NAVIGATE_TO_DIFFERENT_DOMAIN); +- shouldExpediteMessage = false; +- } +- mDataProvider.getDataForUrl(mProfileSupplier.get(), navigationHandle.getUrl(), +- (merchantInfo) -> maybeDisplayMessage(merchantInfo, item, shouldExpediteMessage)); +- } +- +- @VisibleForTesting +- void maybeDisplayMessage(MerchantInfo merchantInfo, MerchantTrustMessageContext item, +- boolean shouldExpediteMessage) { +- if (merchantInfo == null) return; +- mMetrics.recordUkmOnDataAvailable(item.getWebContents()); +- NavigationHandle navigationHandle = item.getNavigationHandle(); +- MerchantTrustSignalsEventStorage storage = mStorageFactory.getForLastUsedProfile(); +- if (navigationHandle == null || navigationHandle.getUrl() == null || storage == null +- || MerchantViewerConfig.isTrustSignalsMessageDisabled() +- || merchantInfo.proactiveMessageDisabled +- || isMerchantRatingBelowThreshold(merchantInfo) +- || isNonPersonalizedFamiliarMerchant(merchantInfo) +- || isFamiliarMerchant(navigationHandle.getUrl().getSpec()) +- || hasReachedMaxAllowedMessageNumberInGivenTime() +- || !isOnSecureWebsite(item.getWebContents())) { +- return; +- } +- +- storage.load(navigationHandle.getUrl().getHost(), (event) -> { +- if (event == null) { +- scheduleMessage(merchantInfo, item, shouldExpediteMessage); +- } else if (System.currentTimeMillis() - event.getTimestamp() +- > MerchantViewerConfig.getTrustSignalsMessageWindowDurationMilliSeconds()) { +- storage.delete(event); +- scheduleMessage(merchantInfo, item, shouldExpediteMessage); +- } +- }); +- } +- +- private void scheduleMessage(MerchantInfo merchantInfo, MerchantTrustMessageContext item, +- boolean shouldExpediteMessage) { +- assert (merchantInfo != null) && (item != null); +- mMessageScheduler.schedule( +- MerchantTrustMessageViewModel.create(mContext, merchantInfo, item.getUrl(), this), +- merchantInfo.starRating, item, +- shouldExpediteMessage ? MerchantTrustMessageScheduler.MESSAGE_ENQUEUE_NO_DELAY +- : MerchantViewerConfig.getDefaultTrustSignalsMessageDelay(), +- this::onMessageEnqueued); +- } +- +- private boolean isFamiliarMerchant(String url) { +- if (!MerchantViewerConfig.doesTrustSignalsUseSiteEngagement() || TextUtils.isEmpty(url)) { +- return false; +- } +- Profile profile = mProfileSupplier.get(); +- if (profile == null || profile.isOffTheRecord()) { +- return false; +- } +- return getSiteEngagementScore(profile, url) +- > MerchantViewerConfig.getTrustSignalsSiteEngagementThreshold(); +- } +- +- @VisibleForTesting +- double getSiteEngagementScore(Profile profile, String url) { +- return SiteEngagementService.getForBrowserContext(profile).getScore(url); +- } +- +- @VisibleForTesting +- boolean isOnSecureWebsite(WebContents webContents) { +- return SecurityStateModel.getSecurityLevelForWebContents(webContents) +- == ConnectionSecurityLevel.SECURE; +- } +- +- private boolean isMerchantRatingBelowThreshold(MerchantInfo merchantInfo) { +- return merchantInfo.starRating +- < MerchantViewerConfig.getTrustSignalsMessageRatingThreshold(); +- } +- +- private boolean isNonPersonalizedFamiliarMerchant(MerchantInfo merchantInfo) { +- return merchantInfo.nonPersonalizedFamiliarityScore +- > MerchantViewerConfig.getTrustSignalsNonPersonalizedFamiliarityScoreThreshold(); +- } +- +- @VisibleForTesting +- void onMessageEnqueued(MerchantTrustMessageContext messageContext) { +- if (messageContext == null) { +- return; +- } +- +- MerchantTrustSignalsEventStorage storage = mStorageFactory.getForLastUsedProfile(); +- if (storage == null) { +- return; +- } +- +- mMetrics.recordUkmOnMessageSeen(messageContext.getWebContents()); +- updateShownMessagesTimestamp(); +- storage.save(new MerchantTrustSignalsEvent( +- messageContext.getHostName(), System.currentTimeMillis())); +- } +- +- // MerchantTrustMessageViewModel.MessageActionsHandler implementations. +- @Override +- public void onMessageDismissed(@DismissReason int dismissReason, String messageAssociatedUrl) { +- mMetrics.recordMetricsForMessageDismissed(dismissReason); +- if (dismissReason == DismissReason.TIMER || dismissReason == DismissReason.GESTURE) { +- maybeShowStoreIcon(messageAssociatedUrl, dismissReason == DismissReason.TIMER); +- } +- } +- +- @Override +- public void onMessagePrimaryAction(MerchantInfo merchantInfo, String messageAssociatedUrl) { +- mMetrics.recordMetricsForMessageTapped(); +- +- // TODO(crbug.com/1300971): Pass webContents directly to this method instead of using +- // mTabSupplier. +- if (mTabSupplier.hasValue()) { +- mMetrics.recordUkmOnMessageClicked(mTabSupplier.get().getWebContents()); +- } +- launchDetailsPage(merchantInfo.detailsPageUrl, BottomSheetOpenedSource.FROM_MESSAGE, +- messageAssociatedUrl); +- } +- +- // PageInfoStoreInfoController.StoreInfoActionHandler implementation. +- @Override +- public void onStoreInfoClicked(MerchantInfo merchantInfo) { +- launchDetailsPage( +- merchantInfo.detailsPageUrl, BottomSheetOpenedSource.FROM_PAGE_INFO, null); +- // If user has clicked the "Store info" row, send a signal to disable {@link +- // FeatureConstants.PAGE_INFO_STORE_INFO_FEATURE}. +- final Tracker tracker = TrackerFactory.getTrackerForProfile(mProfileSupplier.get()); +- tracker.notifyEvent(EventConstants.PAGE_INFO_STORE_INFO_ROW_CLICKED); +- } +- +- private void launchDetailsPage(GURL detailsPageUrl, @BottomSheetOpenedSource int openSource, +- @Nullable String messageAssociatedUrl) { +- mMetrics.recordMetricsForBottomSheetOpenedSource(openSource); +- mDetailsTabCoordinator.requestOpenSheet(detailsPageUrl, +- mContext.getResources().getString(R.string.merchant_viewer_preview_sheet_title), +- () -> onBottomSheetDismissed(openSource, messageAssociatedUrl)); +- } +- +- private void onBottomSheetDismissed( +- @BottomSheetOpenedSource int openSource, @Nullable String messageAssociatedUrl) { +- if (openSource == BottomSheetOpenedSource.FROM_MESSAGE) { +- maybeShowStoreIcon(messageAssociatedUrl, true); +- } +- } +- +- /** +- * Assuming that we only allow 3 messages in 1 hour, we store the serialized timestamps of the +- * last 3 shown messages. Before showing a message, we look up the persisted data and +- * deserialize it to 3 timestamps, then check whether the earliest timestamp is more than 1 hour +- * from now. If yes, the message can be shown thus returning false. +- */ +- @VisibleForTesting +- boolean hasReachedMaxAllowedMessageNumberInGivenTime() { +- PrefService prefService = getPrefService(); +- if (prefService == null) return true; +- String serializedTimestamps = +- prefService.getString(Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME); +- if (TextUtils.isEmpty(serializedTimestamps)) return false; +- String[] timestamps = serializedTimestamps.split("_"); +- int maxAllowedNumber = MerchantViewerConfig.getTrustSignalsMaxAllowedNumberInGivenWindow(); +- if (timestamps.length < maxAllowedNumber) return false; +- assert timestamps.length == maxAllowedNumber; +- return System.currentTimeMillis() - Long.parseLong(timestamps[0]) +- < MerchantViewerConfig.getTrustSignalsNumberCheckWindowDuration(); +- } +- +- /** +- * Every time showing a message, we need to update the serialized timestamps. +- */ +- @VisibleForTesting +- void updateShownMessagesTimestamp() { +- PrefService prefService = getPrefService(); +- if (prefService == null) return; +- String currentTimestamp = Long.toString(System.currentTimeMillis()); +- String serializedTimestamps = +- prefService.getString(Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME); +- if (TextUtils.isEmpty(serializedTimestamps)) { +- prefService.setString( +- Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME, currentTimestamp); +- } else { +- serializedTimestamps += "_" + currentTimestamp; +- String[] timestamps = serializedTimestamps.split("_"); +- int maxAllowedNumber = +- MerchantViewerConfig.getTrustSignalsMaxAllowedNumberInGivenWindow(); +- if (timestamps.length <= maxAllowedNumber) { +- prefService.setString( +- Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME, serializedTimestamps); +- } else { +- assert timestamps.length == maxAllowedNumber + 1; +- // Remove the earliest timestamp. +- prefService.setString(Pref.COMMERCE_MERCHANT_VIEWER_MESSAGES_SHOWN_TIME, +- serializedTimestamps.substring(timestamps[0].length() + 1)); +- } +- } +- } +- +- @VisibleForTesting +- PrefService getPrefService() { +- Profile profile = mProfileSupplier.get(); +- if (profile == null || profile.isOffTheRecord()) { +- return null; +- } +- return UserPrefs.get(profile); +- } +- +- @VisibleForTesting +- void maybeShowStoreIcon(@Nullable String messageAssociatedUrl, boolean canShowIph) { +- if (isStoreInfoFeatureEnabled() && mOmniboxIconController != null +- && messageAssociatedUrl != null) { +- mOmniboxIconController.showStoreIcon(mWindowAndroid, messageAssociatedUrl, +- getStoreIconDrawable(), R.string.merchant_viewer_omnibox_icon_iph, canShowIph); +- } +- } +- +- @VisibleForTesting +- boolean isStoreInfoFeatureEnabled() { +- return PageInfoFeatures.PAGE_INFO_STORE_INFO.isEnabled(); +- } +- +- @VisibleForTesting +- Drawable getStoreIconDrawable() { +- return ResourcesCompat.getDrawable( +- mContext.getResources(), R.drawable.ic_storefront_blue, mContext.getTheme()); + } + } +diff --git a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java +--- a/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java ++++ b/chrome/browser/commerce/merchant_viewer/android/java/src/org/chromium/chrome/browser/merchant_viewer/PageInfoStoreInfoController.java +@@ -12,7 +12,6 @@ import androidx.annotation.Nullable; + + import org.chromium.base.supplier.Supplier; + import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; +-import org.chromium.chrome.browser.merchant_viewer.MerchantTrustMessageViewModel.MessageDescriptionUI; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.tab_ui.R; + import org.chromium.components.commerce.core.ShoppingService.MerchantInfo; +@@ -61,8 +60,6 @@ public class PageInfoStoreInfoController implements PageInfoSubpageController { + // the feature flag first. + if (profile != null + && ShoppingServiceFactory.getForProfile(profile).isMerchantViewerEnabled()) { +- new MerchantTrustSignalsDataProvider().getDataForUrl( +- profile, mMainController.getURL(), this::setupStoreInfoRow); + } else { + setupStoreInfoRow(null); + } +@@ -103,9 +100,6 @@ public class PageInfoStoreInfoController implements PageInfoSubpageController { + + private CharSequence getRowSubtitle(MerchantInfo merchantInfo) { + if (merchantInfo.starRating > 0) { +- CharSequence subTitle = MerchantTrustMessageViewModel.getMessageDescription( +- mContext, merchantInfo, MessageDescriptionUI.RATING_AND_REVIEWS); +- if (subTitle != null) return subTitle; + } else if (merchantInfo.hasReturnPolicy) { + return mContext.getResources().getString( + R.string.page_info_store_info_description_with_no_rating); +@@ -136,4 +130,4 @@ public class PageInfoStoreInfoController implements PageInfoSubpageController { + + @Override + public void onNativeInitialized() {} +-} +\ No newline at end of file ++} diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java --- a/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java +++ b/chrome/browser/commerce/price_tracking/android/java/src/org/chromium/chrome/browser/price_tracking/PriceTrackingFeatures.java @@ -1948,6 +2765,19 @@ diff --git a/chrome/browser/persisted_state_db/BUILD.gn b/chrome/browser/persist "//components/commerce/core:persisted_state_db_content_proto", "//components/keyed_service/content", "//components/leveldb_proto", +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 +@@ -514,9 +514,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + #if !BUILDFLAG(IS_ANDROID) + CartServiceFactory::GetInstance(); + #endif +-#if BUILDFLAG(IS_ANDROID) +- MerchantViewerDataManagerFactory::GetInstance(); +-#endif + #if BUILDFLAG(IS_CHROMEOS_LACROS) + CertDbInitializerFactory::GetInstance(); + #endif diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn --- a/chrome/browser/tab/BUILD.gn +++ b/chrome/browser/tab/BUILD.gn @@ -1959,18 +2789,51 @@ diff --git a/chrome/browser/tab/BUILD.gn b/chrome/browser/tab/BUILD.gn "//chrome/browser/contextmenu:java", "//chrome/browser/endpoint_fetcher:java", "//chrome/browser/flags:java", +diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java +--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java ++++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/CouponPersistedTabData.java +@@ -17,7 +17,6 @@ import org.chromium.base.Callback; + import org.chromium.base.Log; + import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.base.task.PostTask; +-import org.chromium.chrome.browser.commerce.PriceUtils; + import org.chromium.chrome.browser.endpoint_fetcher.EndpointFetcher; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.tab.EmptyTabObserver; +@@ -212,8 +211,7 @@ public class CouponPersistedTabData extends PersistedTabData { + new CurrencyFormatter(mCoupon.currencyCode, Locale.getDefault()); + long unitsInMicros = mCoupon.discountUnits * MICROS_TO_UNITS; + +- String annotationText = +- PriceUtils.formatPrice(mCurrencyFormatter, unitsInMicros) + OFF_STRING; ++ String annotationText = ""; + mCurrencyFormatter.destroy(); + + return annotationText; +diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java +--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java ++++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/state/ShoppingPersistedTabData.java +@@ -19,7 +19,6 @@ import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.base.task.PostTask; + import org.chromium.base.task.TaskTraits; + import org.chromium.build.annotations.DoNotClassMerge; +-import org.chromium.chrome.browser.commerce.PriceUtils; + import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory; + import org.chromium.chrome.browser.page_annotations.BuyableProductPageAnnotation; +@@ -953,7 +952,7 @@ public class ShoppingPersistedTabData extends PersistedTabData { + return ""; + } + CurrencyFormatter currencyFormatter = getCurrencyFormatter(mPriceDropData.currencyCode); +- return PriceUtils.formatPrice(currencyFormatter, priceMicros); ++ return ""; + } + + private CurrencyFormatter getCurrencyFormatter(String currencyCode) { diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -149,7 +149,6 @@ android_library("java") { - "//chrome/browser/android/lifecycle:java", - "//chrome/browser/back_press/android:java", - "//chrome/browser/browser_controls/android:java", -- "//chrome/browser/commerce/merchant_viewer/android:java", - "//chrome/browser/device:java", - "//chrome/browser/feature_engagement:java", - "//chrome/browser/flags:java", -@@ -448,7 +447,6 @@ robolectric_library("junit") { +@@ -448,7 +448,6 @@ robolectric_library("junit") { "//base:base_junit_test_support", "//build/android:build_java", "//chrome/android:base_module_java", @@ -1978,20 +2841,64 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//chrome/browser/device:java", "//chrome/browser/flags:java", "//chrome/browser/gsa:java", +diff --git a/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java b/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java +--- a/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java ++++ b/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkId.java +@@ -15,9 +15,6 @@ import org.chromium.base.annotations.CalledByNative; + public class BookmarkId { + public static final int INVALID_FOLDER_ID = -2; + public static final int INVALID_ID = -1; +- public static final int SHOPPING_FILTER_ID = -3; +- public static final BookmarkId SHOPPING_FOLDER = +- new BookmarkId(SHOPPING_FILTER_ID, BookmarkType.NORMAL); + + private static final String LOG_TAG = "BookmarkId"; + private static final char TYPE_PARTNER = 'p'; diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -131,7 +131,7 @@ BASE_FEATURE(kCommerceMerchantViewer, - #if BUILDFLAG(IS_ANDROID) - BASE_FEATURE(kCommerceMerchantViewerRegionLaunched, - "CommerceMerchantViewerRegionLaunched", +@@ -110,61 +110,50 @@ const char kEnableChromeCart[] = "enable-chrome-cart"; + } // namespace switches + + BASE_FEATURE(kCommerceAllowLocalImages, +- "CommerceAllowLocalImages", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "CommerceAllowLocalImages", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCommerceAllowOnDemandBookmarkUpdates, +- "CommerceAllowOnDemandBookmarkUpdates", - base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); - #else ++ "CommerceAllowOnDemandBookmarkUpdates",// guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCommerceAllowServerImages, +- "CommerceAllowServerImages", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "CommerceAllowServerImages", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCommerceCoupons, +- "CommerceCoupons", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "CommerceCoupons", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCommerceMerchantViewer, +- "CommerceMerchantViewer", +- base::FEATURE_DISABLED_BY_DEFAULT); +-#if BUILDFLAG(IS_ANDROID) +-BASE_FEATURE(kCommerceMerchantViewerRegionLaunched, +- "CommerceMerchantViewerRegionLaunched", +- base::FEATURE_ENABLED_BY_DEFAULT); +-#else ++ "CommerceMerchantViewer", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this ++ BASE_FEATURE(kCommerceMerchantViewerRegionLaunched, "CommerceMerchantViewerRegionLaunched", -@@ -139,8 +139,8 @@ BASE_FEATURE(kCommerceMerchantViewerRegionLaunched, - #endif // BUILDFLAG(IS_ANDROID) + base::FEATURE_DISABLED_BY_DEFAULT); +-#endif // BUILDFLAG(IS_ANDROID) BASE_FEATURE(kCommercePriceTracking, - "CommercePriceTracking", @@ -2001,7 +2908,66 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm const base::FeatureParam kDeleteAllMerchantsOnClearBrowsingHistory{ &kCommerceMerchantViewer, "delete_all_merchants_on_clear_history", false}; -@@ -376,6 +376,7 @@ std::string GetCurrentCountryCode(variations::VariationsService* variations) { + +-BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); +-#if BUILDFLAG(IS_ANDROID) +-BASE_FEATURE(kShoppingListRegionLaunched, +- "ShoppingListRegionLaunched", +- base::FEATURE_ENABLED_BY_DEFAULT); +-#else ++BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); // guard this + BASE_FEATURE(kShoppingListRegionLaunched, +- "ShoppingListRegionLaunched", +- base::FEATURE_DISABLED_BY_DEFAULT); +-#endif // BUILDFLAG(IS_ANDROID) ++ "ShoppingListRegionLaunched", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kShoppingPDPMetrics, + "ShoppingPDPMetrics", + base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kShoppingPDPMetricsRegionLaunched, +- "ShoppingPDPMetricsRegionLaunched", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "ShoppingPDPMetricsRegionLaunched", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + +-BASE_FEATURE(kRetailCoupons, "RetailCoupons", base::FEATURE_ENABLED_BY_DEFAULT); ++BASE_FEATURE(kRetailCoupons, "RetailCoupons", base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCommerceDeveloper, + "CommerceDeveloper", +@@ -175,21 +164,21 @@ const char kRetailCouponsWithCodeParam[] = "RetailCouponsWithCodeParam"; + // Params use for Discount Consent v2. + BASE_FEATURE(kDiscountConsentV2, + "DiscountConsentV2", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCommerceHintAndroid, +- "CommerceHintAndroid", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "CommerceHintAndroid", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kMerchantWidePromotion, +- "MerchantWidePromotion", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "MerchantWidePromotion", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + BASE_FEATURE(kCodeBasedRBD, "CodeBasedRBD", base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kChromeCartDomBasedHeuristics, +- "ChromeCartDomBasedHeuristics", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "ChromeCartDomBasedHeuristics", // guard this ++ base::FEATURE_DISABLED_BY_DEFAULT); // guard this + + // Params for Discount Consent V2 in the NTP Cart module. + const char kNtpChromeCartModuleDiscountConsentNtpVariationParam[] = +@@ -376,6 +365,7 @@ std::string GetCurrentCountryCode(variations::VariationsService* variations) { bool IsEnabledForCountryAndLocale(const base::Feature& feature, std::string country, std::string locale) { diff --git a/build/patches/Remove-signin-and-sync-integrations.patch b/build/patches/Remove-signin-and-sync-integrations.patch index 9f1294e7..80486500 100644 --- a/build/patches/Remove-signin-and-sync-integrations.patch +++ b/build/patches/Remove-signin-and-sync-integrations.patch @@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/feed/FeedSurfaceCoordinator.java | 9 +- .../browser/feed/FeedSurfaceMediator.java | 76 +----- chrome/android/java/AndroidManifest.xml | 19 -- - .../res/xml/google_services_preferences.xml | 7 - + .../res/xml/google_services_preferences.xml | 10 - .../android/java/res/xml/main_preferences.xml | 22 +- .../java/res/xml/manage_sync_preferences.xml | 12 - .../java/res/xml/privacy_preferences.xml | 4 - @@ -36,8 +36,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ChromeTabbedActivity.java | 9 - .../chrome/browser/app/ChromeActivity.java | 75 ------ .../app/feed/FeedActionDelegateImpl.java | 3 - + .../autofill/settings/AddressEditor.java | 16 +- .../AutofillAssistantPreferenceFragment.java | 1 - - .../bookmarks/BookmarkItemsAdapter.java | 54 +---- + .../bookmarks/BookmarkItemsAdapter.java | 55 +---- .../bookmarks/BookmarkPromoHeader.java | 227 +----------------- .../ClearBrowsingDataFragment.java | 77 ------ .../ClearBrowsingDataFragmentBasic.java | 27 +-- @@ -47,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../firstrun/LightweightFirstRunActivity.java | 4 +- ...FirstRunFragmentWithEnterpriseSupport.java | 6 - .../history/HistoryContentManager.java | 25 +- - .../identity_disc/IdentityDiscController.java | 104 +------- + .../identity_disc/IdentityDiscController.java | 130 +--------- .../init/ChromeBrowserInitializer.java | 2 - .../init/ProcessInitializationHandler.java | 9 - .../chrome/browser/ntp/RecentTabsManager.java | 129 +--------- @@ -60,7 +61,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/PasswordSettings.java | 71 +----- .../browser/payments/ui/PaymentRequestUI.java | 12 +- .../privacy/settings/PrivacySettings.java | 31 --- - .../chrome/browser/settings/MainSettings.java | 97 +------- + .../chrome/browser/settings/MainSettings.java | 96 +------- .../browser/settings/SettingsActivity.java | 9 - .../share/crow/CrowButtonDelegateImpl.java | 5 +- .../survey/ChromeSurveyController.java | 4 +- @@ -89,6 +90,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/privacy_guide/android/BUILD.gn | 2 - .../res/layout/privacy_guide_msbb_step.xml | 8 - .../browser/privacy_guide/MSBBFragment.java | 9 - + .../privacy_guide/PrivacyGuideUtils.java | 5 +- + ...hrome_browser_main_extra_parts_profiles.cc | 3 +- chrome/browser/search_resumption/BUILD.gn | 4 - .../SearchResumptionModuleMediator.java | 37 +-- .../SearchResumptionModuleUtils.java | 12 - @@ -116,13 +119,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/password_manager_client_helper.cc | 43 +--- .../core/browser/sync_credentials_filter.cc | 49 +--- components/signin/features.gni | 4 +- + .../primary_account_manager.cc | 17 +- ...e_oauth2_token_service_delegate_android.cc | 125 +--------- ...le_oauth2_token_service_delegate_android.h | 10 - .../signin/SystemAccountManagerDelegate.java | 25 +- .../ProfileOAuth2TokenServiceDelegate.java | 52 ---- .../net/HttpNegotiateAuthenticator.java | 88 +------ .../chromoting/base/OAuthTokenFetcher.java | 2 - - 103 files changed, 89 insertions(+), 2641 deletions(-) + 107 files changed, 101 insertions(+), 2699 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -611,7 +615,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml --- a/chrome/android/java/res/xml/google_services_preferences.xml +++ b/chrome/android/java/res/xml/google_services_preferences.xml -@@ -21,17 +21,10 @@ found in the LICENSE file. +@@ -21,16 +21,6 @@ found in the LICENSE file. android:key="metrics_settings" android:title="@string/manage_metrics_settings" android:fragment="org.chromium.chrome.browser.metrics_settings.MetricsSettingsFragment"/> @@ -619,16 +623,15 @@ diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrom - android:key="url_keyed_anonymized_data" - android:title="@string/url_keyed_anonymized_data_title" - android:summary="@string/url_keyed_anonymized_data_summary" -- android:persistent="false"/> - - + { + String deleteConfirmationTitle = + mContext.getString(R.string.autofill_delete_address_confirmation_dialog_title); + if (mProfile.getSource() == Source.ACCOUNT) { +- final IdentityManager identityManager = +- IdentityServicesProvider.get().getIdentityManager( +- Profile.getLastUsedRegularProfile()); +- CoreAccountInfo accountInfo = +- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN); + @Nullable +- String email = CoreAccountInfo.getEmailFrom(accountInfo); ++ String email = ""; + + if (email != null) { + footerMessageText = +@@ -176,14 +168,8 @@ public class AddressEditor extends EditorBase { + .replace("$1", email); + } + } else { +- if (SyncService.get().isSyncFeatureEnabled() +- && SyncService.get().getSelectedTypes().contains(UserSelectableType.AUTOFILL)) { +- deleteConfirmationText = +- mContext.getString(R.string.autofill_delete_sync_address_source_notice); +- } else { + deleteConfirmationText = + mContext.getString(R.string.autofill_delete_local_address_source_notice); +- } + } + + mEditor = new EditorModel(editTitle, mCustomDoneButtonText, footerMessageText, diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPreferenceFragment.java @@ -1074,7 +1125,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static final int MAXIMUM_NUMBER_OF_SEARCH_RESULTS = 500; private static final String EMPTY_QUERY = null; -@@ -69,7 +66,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter mTopLevelFolders = new ArrayList<>(); + private final Profile mProfile; +- private final SyncService mSyncService; + + // There can only be one promo header at a time. This takes on one of the values: + // ViewType.PERSONALIZED_SIGNIN_PROMO, ViewType.SYNC_PROMO, or ViewType.INVALID. @ViewType private int mPromoHeaderType = ViewType.INVALID; private BookmarkDelegate mDelegate; @@ -1082,7 +1140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private ViewFactory mViewFactory; private String mSearchText; private BookmarkId mCurrentFolder; -@@ -129,8 +125,6 @@ public class BookmarkItemsAdapter extends DragReorderableListAdapter mProfileSupplier; private final Callback mProfileSupplierObserver = this::setProfile; @@ -1965,7 +2025,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I // Identity disc visibility state. @IdentityDiscState private int mState = IdentityDiscState.NONE; -@@ -216,16 +201,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -216,16 +200,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * IdentityDiscController for profile data updates. */ private void ensureProfileDataCache(@IdentityDiscState int state) { @@ -1982,16 +2042,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } /** -@@ -236,7 +211,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa - if (shouldUseSignedOutAvatar(email)) { - return AppCompatResources.getDrawable(mContext, R.drawable.account_circle_full); - } +@@ -233,10 +207,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa + */ + private Drawable getProfileImage(@Nullable String email) { + assert mState != IdentityDiscState.NONE; +- if (shouldUseSignedOutAvatar(email)) { +- return AppCompatResources.getDrawable(mContext, R.drawable.account_circle_full); +- } - return mProfileDataCache[mState].getProfileDataOrDefault(email).getImage(); + return null; } /** -@@ -244,13 +219,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -244,13 +215,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * when sign-in state changes. */ private void resetIdentityDiscCache() { @@ -2005,7 +2068,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } private void notifyObservers(boolean hint) { -@@ -259,47 +227,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -259,47 +223,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa } } @@ -2053,7 +2116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I /** * Call to tear down dependencies. */ -@@ -310,18 +237,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -310,18 +233,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa mActivityLifecycleDispatcher = null; } @@ -2072,7 +2135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I if (mNativeIsInitialized) { mProfileSupplier.removeObserver(mProfileSupplierObserver); } -@@ -344,9 +259,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -344,9 +255,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * @return account info for the current profile. Returns null for OTR profile. */ private CoreAccountInfo getSignedInAccountInfo() { @@ -2083,7 +2146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } /** -@@ -354,17 +267,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -354,17 +263,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * mIdentityManager is updated with the profile, as set to null if profile is off-the-record. */ private void setProfile(Profile profile) { @@ -2101,6 +2164,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } private String getContentDescription(@Nullable String email) { +@@ -376,31 +274,15 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa + return mContext.getString(R.string.accessibility_toolbar_btn_signed_out_identity_disc); + } + +- DisplayableProfileData profileData = +- mProfileDataCache[mState].getProfileDataOrDefault(email); +- String userName = profileData.getFullName(); +- if (profileData.hasDisplayableEmailAddress()) { +- return mContext.getString( +- R.string.accessibility_toolbar_btn_identity_disc_with_name_and_email, userName, +- email); +- } +- + return mContext.getString( +- R.string.accessibility_toolbar_btn_identity_disc_with_name, userName); ++ R.string.accessibility_toolbar_btn_identity_disc_with_name, ""); + } + + private void onClick() { + recordIdentityDiscUsed(); + +- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager( +- Profile.getLastUsedRegularProfile()); +- if (getSignedInAccountInfo() == null && !signinManager.isSigninDisabledByPolicy()) { +- SyncConsentActivityLauncherImpl.get().launchActivityIfAllowed( +- mContext, SigninAccessPoint.NTP_SIGNED_OUT_ICON); +- } else { +- SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); +- settingsLauncher.launchSettingsActivity(mContext, MainSettings.class); +- } ++ SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); ++ settingsLauncher.launchSettingsActivity(mContext, MainSettings.class); + } + + private static boolean shouldUseSignedOutAvatar(@Nullable String email) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java @@ -2786,7 +2884,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe private @Nullable PasswordCheck mPasswordCheck; private Profile mProfile; private ObservableSupplier mModalDialogManagerSupplier; -@@ -138,30 +121,12 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -138,30 +121,13 @@ public class MainSettings extends PreferenceFragmentCompat @Override public void onStart() { super.onStart(); @@ -2803,7 +2901,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe @Override public void onStop() { super.onStop(); - SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(mProfile); +- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(mProfile); - if (signinManager.isSigninSupported()) { - signinManager.removeSignInStateObserver(this); - } @@ -2811,13 +2909,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe - if (syncService != null) { - syncService.removeSyncStateChangedListener(this); - } -- } -- + } + - @Override public void onResume() { super.onResume(); updatePreferences(); -@@ -232,8 +197,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -232,8 +198,6 @@ public class MainSettings extends PreferenceFragmentCompat Preference preference = getPreferenceScreen().getPreference(index); mAllPreferences.put(preference.getKey(), preference); } @@ -2826,7 +2924,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } private void setManagedPreferenceDelegateForPreference(String key) { -@@ -242,13 +205,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -242,13 +206,6 @@ public class MainSettings extends PreferenceFragmentCompat } private void updatePreferences() { @@ -2840,7 +2938,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe updateSearchEnginePreference(); updatePasswordsPreference(); -@@ -282,35 +238,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -282,35 +239,6 @@ public class MainSettings extends PreferenceFragmentCompat if (preference != null) getPreferenceScreen().removePreference(preference); } @@ -2876,7 +2974,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe private void updateSearchEnginePreference() { TemplateUrlService templateUrlService = TemplateUrlServiceFactory.getForProfile(mProfile); if (!templateUrlService.isLoaded()) { -@@ -346,8 +273,7 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -346,8 +274,7 @@ public class MainSettings extends PreferenceFragmentCompat } private boolean shouldShowNewLabelForPasswordsPreference() { @@ -2886,7 +2984,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe } // TODO(crbug.com/1217070): remove this method once UPM feature is rolled out. -@@ -378,19 +304,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -378,19 +305,6 @@ public class MainSettings extends PreferenceFragmentCompat pref.setSummary(isOn ? R.string.text_on : R.string.text_off); } @@ -2906,7 +3004,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe // TemplateUrlService.LoadListener implementation. @Override public void onTemplateUrlServiceLoaded() { -@@ -398,12 +311,6 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -398,12 +312,6 @@ public class MainSettings extends PreferenceFragmentCompat updateSearchEnginePreference(); } @@ -3828,6 +3926,50 @@ diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/b - }); } } +diff --git a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java +--- a/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java ++++ b/chrome/browser/privacy_guide/android/java/src/org/chromium/chrome/browser/privacy_guide/PrivacyGuideUtils.java +@@ -10,7 +10,6 @@ import android.content.Intent; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; + import org.chromium.chrome.browser.safe_browsing.SafeBrowsingState; +-import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; + import org.chromium.chrome.browser.sync.SyncService; + import org.chromium.components.content_settings.CookieControlsMode; + import org.chromium.components.content_settings.PrefNames; +@@ -36,9 +35,7 @@ class PrivacyGuideUtils { + } + + static boolean isUserSignedIn() { +- IdentityManager identityManager = IdentityServicesProvider.get().getIdentityManager( +- Profile.getLastUsedRegularProfile()); +- return identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN); ++ return false; + } + + static @SafeBrowsingState int getSafeBrowsingState() { +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 +@@ -363,8 +363,10 @@ + #if !BUILDFLAG(IS_CHROMEOS_ASH) || !BUILDFLAG(IS_ANDROID) + #include "chrome/browser/profiles/profile_statistics_factory.h" + #include "chrome/browser/ui/startup/first_run_service.h" ++#if BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(ENABLE_MIRROR) + #include "chrome/browser/ui/webui/signin/turn_sync_on_helper.h" + #endif ++#endif + + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_LACROS) + #include "chrome/browser/speech/speech_recognition_client_browser_interface_factory.h" +@@ -897,7 +899,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + #endif + TranslateModelServiceFactory::GetInstance(); + #if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) +- TurnSyncOnHelper::EnsureFactoryBuilt(); + #endif + UnifiedConsentServiceFactory::GetInstance(); + UnusedSitePermissionsServiceFactory::GetInstance(); diff --git a/chrome/browser/search_resumption/BUILD.gn b/chrome/browser/search_resumption/BUILD.gn --- a/chrome/browser/search_resumption/BUILD.gn +++ b/chrome/browser/search_resumption/BUILD.gn @@ -5125,6 +5267,52 @@ diff --git a/components/signin/features.gni b/components/signin/features.gni # Mirror is enabled and other account consistency mechanisms are not available. -enable_mirror = is_android || is_chromeos || is_ios +enable_mirror = false +diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc +--- a/components/signin/internal/identity_manager/primary_account_manager.cc ++++ b/components/signin/internal/identity_manager/primary_account_manager.cc +@@ -169,21 +169,15 @@ void PrimaryAccountManager::Initialize(PrefService* local_state) { + base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); + ScopedPrefCommit scoped_pref_commit(client_->GetPrefs(), + /*commit_on_destroy*/ false); +- if (cmd_line->HasSwitch(switches::kClearTokenService)) ++ if ((true) || cmd_line->HasSwitch(switches::kClearTokenService)) + SetPrimaryAccountInternal(CoreAccountInfo(), false, scoped_pref_commit); + +- std::string pref_account_id = +- client_->GetPrefs()->GetString(prefs::kGoogleServicesAccountId); ++ std::string pref_account_id; + + // Initial value for the kGoogleServicesConsentedToSync preference if it is + // missing. +- const PrefService::Preference* consented_pref = +- client_->GetPrefs()->FindPreference( +- prefs::kGoogleServicesConsentedToSync); +- if (consented_pref->IsDefaultValue()) { +- client_->GetPrefs()->SetBoolean(prefs::kGoogleServicesConsentedToSync, +- !pref_account_id.empty()); +- } ++ client_->GetPrefs()->SetBoolean(prefs::kGoogleServicesConsentedToSync, ++ false); + + #if BUILDFLAG(IS_CHROMEOS_ASH) + if (!pref_account_id.empty()) { +@@ -213,8 +207,6 @@ void PrimaryAccountManager::Initialize(PrefService* local_state) { + SetPrimaryAccountInternal(CoreAccountInfo(), /*consented_to_sync=*/false, + scoped_pref_commit); + SetSyncPrimaryAccountInternal(account_info); +- } else { +- SetPrimaryAccountInternal(account_info, consented, scoped_pref_commit); + } + + // It is important to only load credentials after starting to observe the +@@ -330,6 +322,7 @@ void PrimaryAccountManager::SetPrimaryAccountInternal( + + bool PrimaryAccountManager::HasPrimaryAccount( + signin::ConsentLevel consent_level) const { ++ if ((true)) return false; + bool consented_pref = + client_->GetPrefs()->GetBoolean(prefs::kGoogleServicesConsentedToSync); + if (primary_account_info().account_id.empty()) { diff --git a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc --- a/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc +++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_delegate_android.cc diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 6c898bf4..d4351132 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -4,7 +4,7 @@ Subject: Remove voice recognition integration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../start_surface/StartSurfaceMediator.java | 7 +- + .../start_surface/StartSurfaceMediator.java | 15 +-- .../features/tasks/TasksSurfaceMediator.java | 4 - .../init/ProcessInitializationHandler.java | 5 - .../browser/metrics/UmaSessionStats.java | 19 --- @@ -23,12 +23,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../suggestions/AutocompleteController.java | 21 ---- .../suggestions/AutocompleteCoordinator.java | 8 -- .../suggestions/AutocompleteMediator.java | 9 -- - 19 files changed, 12 insertions(+), 355 deletions(-) + 19 files changed, 12 insertions(+), 363 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -473,8 +473,7 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. +@@ -73,7 +73,6 @@ import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin; + import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; + import org.chromium.chrome.browser.omnibox.OmniboxStub; + import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; +-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; + import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; + import org.chromium.chrome.browser.preferences.Pref; + import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -473,8 +472,7 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. // Initialize // Note that isVoiceSearchEnabled will return false in incognito mode. @@ -38,7 +46,21 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ boolean shouldShowLensButton = mOmniboxStub.isLensEnabled(LensEntryPoint.TASKS_SURFACE); LensMetrics.recordShown(LensEntryPoint.TASKS_SURFACE, shouldShowLensButton); mPropertyModel.set(IS_LENS_BUTTON_VISIBLE, shouldShowLensButton); -@@ -1317,10 +1316,6 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. +@@ -518,13 +516,6 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. + } + }); + mPropertyModel.set(VOICE_SEARCH_BUTTON_CLICK_LISTENER, v -> { +- FeedReliabilityLogger feedReliabilityLogger = getFeedReliabilityLogger(); +- if (feedReliabilityLogger != null) { +- feedReliabilityLogger.onVoiceSearch(); +- } +- mOmniboxStub.getVoiceRecognitionHandler().startVoiceRecognition( +- VoiceRecognitionHandler.VoiceInteractionSource.TASKS_SURFACE); +- RecordUserAction.record("TasksSurface.FakeBox.VoiceSearch"); + }); + + mPropertyModel.set(LENS_BUTTON_CLICK_LISTENER, v -> { +@@ -1317,10 +1308,6 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. // incorrect state if check synchronously. ThreadUtils.postOnUiThread(() -> { if (mOmniboxStub != null) { @@ -524,7 +546,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1069,19 +1063,11 @@ public class RootUiCoordinator +@@ -1058,19 +1052,11 @@ public class RootUiCoordinator new VoiceToolbarButtonController.VoiceSearchDelegate() { @Override public boolean isVoiceSearchEnabled() { @@ -545,7 +567,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } }; VoiceToolbarButtonController voiceToolbarButtonController = -@@ -1130,13 +1116,6 @@ public class RootUiCoordinator +@@ -1119,13 +1105,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 04812956..c8af051f 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor; import org.chromium.chrome.browser.tracing.settings.DeveloperSettings; import org.chromium.components.browser_ui.settings.ChromeBasePreference; -@@ -182,7 +183,9 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -183,7 +184,9 @@ public class MainSettings extends PreferenceFragmentCompat new AdaptiveToolbarStatePredictor(null).recomputeUiState(uiState -> { // We don't show the toolbar shortcut settings page if disabled from finch. diff --git a/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch b/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch index ef2c2adb..932022cc 100644 --- a/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch +++ b/build/patches/Revert-the-removal-of-an-option-to-block-autoplay.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../drawable-xxxhdpi/settings_autoplay.png | Bin 0 -> 1064 bytes .../res/xml/site_settings_preferences.xml | 4 ++++ .../ContentSettingsResources.java | 5 +++- - .../site_settings/SingleCategorySettings.java | 11 +++++++++ + .../site_settings/SingleCategorySettings.java | 9 +++++++ .../site_settings/SingleWebsiteSettings.java | 22 ++++++++++++++++++ .../site_settings/SiteSettingsCategory.java | 9 +++++-- .../browser_ui/site_settings/Website.java | 9 +++++++ @@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../platform/web_content_settings_client.h | 3 +++ .../core/html/media/autoplay_policy.cc | 12 ++++++++++ .../core/html/media/autoplay_policy.h | 4 ++++ - 31 files changed, 128 insertions(+), 4 deletions(-) + 31 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png @@ -221,15 +221,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c default: break; } -@@ -1190,6 +1199,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - Preference infoText = screen.findPreference(INFO_TEXT_KEY); - if (mCategory.getType() == SiteSettingsCategory.Type.COOKIES) { - infoText.setSummary(R.string.website_settings_cookie_info); -+ } else if (mCategory.getType() == SiteSettingsCategory.Type.AUTOPLAY) { -+ allowSpecifyingExceptions = true; - } else if (mCategory.getType() == SiteSettingsCategory.Type.SITE_DATA) { - infoText.setSummary(R.string.website_settings_site_data_page_description); - } else if (mCategory.getType() == SiteSettingsCategory.Type.THIRD_PARTY_COOKIES) { diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index 5da3d5c0..386ca556 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../drawable-xxxhdpi/permission_images.png | Bin 0 -> 532 bytes .../res/xml/site_settings_preferences.xml | 4 ++++ .../ContentSettingsResources.java | 4 ++++ - .../site_settings/SingleCategorySettings.java | 11 +++++++++ + .../site_settings/SingleCategorySettings.java | 9 +++++++ .../site_settings/SingleWebsiteSettings.java | 22 ++++++++++++++++++ .../site_settings/SiteSettingsCategory.java | 9 +++++-- .../site_settings/SiteSettingsUtil.java | 1 + @@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/page_info/page_info.cc | 7 ++++-- components/page_info/page_info_ui.cc | 4 ++-- components/site_settings_strings.grdp | 12 +++++----- - 22 files changed, 90 insertions(+), 19 deletions(-) + 22 files changed, 88 insertions(+), 19 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/permission_images.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/permission_images.png create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/permission_images.png @@ -213,15 +213,6 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c case SiteSettingsCategory.Type.JAVASCRIPT_JIT: allowSpecifyingExceptions = true; break; -@@ -1210,6 +1219,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment - infoText.setSummary(R.string.website_settings_cookie_info); - } else if (mCategory.getType() == SiteSettingsCategory.Type.AUTOPLAY) { - allowSpecifyingExceptions = true; -+ } else if (mCategory.getType() == SiteSettingsCategory.Type.IMAGES) { -+ allowSpecifyingExceptions = true; - } else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT_JIT) { - allowSpecifyingExceptions = true; - } else if (mCategory.getType() == SiteSettingsCategory.Type.SITE_DATA) { diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 44e8deac..8875889d 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -84,7 +84,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/headless", "//chrome/common", "//chrome/common:buildflags", -@@ -7373,8 +7367,6 @@ static_library("browser") { +@@ -7375,8 +7369,6 @@ static_library("browser") { "supervised_user/parental_control_metrics.cc", "supervised_user/parental_control_metrics.h", "supervised_user/permission_request_creator.h", @@ -558,7 +558,7 @@ diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/ 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 -@@ -593,7 +593,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -592,7 +592,6 @@ void ChromeBrowserMainExtraPartsProfiles:: GalleryWatchManager::EnsureFactoryBuilt(); GlobalErrorServiceFactory::GetInstance(); #endif @@ -660,7 +660,7 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -5896,7 +5896,6 @@ test("unit_tests") { +@@ -5894,7 +5894,6 @@ test("unit_tests") { "//chrome/browser/favicon", "//chrome/browser/feature_guide/notifications:unit_tests", "//chrome/browser/first_party_sets",