From 8f50b49f6f489cc941bd72be19b536c1d27e8be5 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Mon, 1 May 2023 14:53:56 +0200 Subject: [PATCH] v113 final patch --- build/bromite_patches_list.txt | 5 +- build/patches/00AdblockPlus.patch | 28 +- .../00Add-setting-to-clear-data-on-exit.patch | 32 +- build/patches/00Disable-WebGPU.patch | 35 + .../00WIN-ADDTO-Disable-safe-browsing.patch | 67 +- ...-Remove-signin-and-sync-integrations.patch | 2 +- build/patches/00WIN-Fix-windows-build.patch | 62 +- build/patches/00add-browser-policy.patch | 19 +- .../00temporary-fix-libaom-build-error.patch | 30 - build/patches/00v113-temp-fix-build.patch | 24 + .../Add-a-proxy-configuration-page.patch | 26 +- .../Add-bookmark-import-export-actions.patch | 125 ++- ...Add-lifetime-options-for-permissions.patch | 19 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 4 +- .../Add-menu-item-to-view-source.patch | 2 +- ...Block-gateway-attacks-via-websockets.patch | 20 +- .../Bookmarks-select-all-menu-entry.patch | 21 +- build/patches/Bromite-auto-updater.patch | 4 +- build/patches/Disable-AGSA-by-default.patch | 4 +- .../patches/Disable-all-predictors-code.patch | 14 +- build/patches/Disable-safe-browsing.patch | 52 +- build/patches/Disable-safety-check.patch | 4 +- .../Enable-native-Android-autofill.patch | 51 +- .../Experimental-user-scripts-support.patch | 6 +- ...story-number-of-days-privacy-setting.patch | 14 +- build/patches/Logcat-crash-reports-UI.patch | 10 +- .../Move-navigation-bar-to-bottom.patch | 120 ++- ...referrals-in-cross-origin-navigation.patch | 4 +- .../Remove-binary-blob-integrations.patch | 18 +- .../Remove-contextual-search-manager.patch | 4 +- ...price-shopping-commerce-integrations.patch | 225 +++- .../Remove-signin-and-sync-integrations.patch | 475 +++++++-- ...l-of-execution-context-address-space.patch | 18 +- build/patches/Welcome-screen.patch | 968 +++++++++++++++++- 34 files changed, 2130 insertions(+), 382 deletions(-) create mode 100644 build/patches/00Disable-WebGPU.patch delete mode 100644 build/patches/00temporary-fix-libaom-build-error.patch create mode 100644 build/patches/00v113-temp-fix-build.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index b7c3b58a..6d992f22 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -241,7 +241,6 @@ Add-kill-switch-for-unsupported-clangd-flags.patch 00WIN-minimum-data-to-enable-install-extensions.patch 00Temp-Disable-kAutomaticLazyFrameLoadingToEmbeds.patch -00temporary-fix-libaom-build-error.patch 00Remove-experimental-relative-c---abi-vtables.patch AudioBuffer-AnalyserNode-fp-mitigations.patch 00Disable-Component-Updates.patch @@ -275,4 +274,6 @@ AudioBuffer-AnalyserNode-fp-mitigations.patch 00Multi-Screen-Window-Placement-API-fix.patch 00Disable-speechSynthesis-getVoices-API.patch 00Remove-https-connection-from-chrome-discards.patch -00Add-a-flag-to-disable-GamePad-API.patch \ No newline at end of file +00Add-a-flag-to-disable-GamePad-API.patch +00Disable-WebGPU.patch +00v113-temp-fix-build.patch \ No newline at end of file diff --git a/build/patches/00AdblockPlus.patch b/build/patches/00AdblockPlus.patch index 2d8e023e..b56f75ff 100644 --- a/build/patches/00AdblockPlus.patch +++ b/build/patches/00AdblockPlus.patch @@ -88,7 +88,7 @@ Subject: Diff from 113.0.5672.62 .../extensions/api/eyeo_filtering_private.idl | 191 ++ .../permissions/chrome_api_permissions.cc | 8 + .../permissions/permission_set_unittest.cc | 8 + - chrome/test/BUILD.gn | 33 + + chrome/test/BUILD.gn | 30 + chrome/test/base/chrome_test_launcher.cc | 7 +- chrome/test/base/in_process_browser_test.cc | 17 +- .../filterlist_that_allows_resource.txt | 7 + @@ -589,7 +589,7 @@ Subject: Diff from 113.0.5672.62 tools/perf/page_sets/eyeo_page_set.py | 980 +++++++ .../definitions/adblock_private.d.ts | 191 ++ .../definitions/eyeo_filtering_private.d.ts | 228 ++ - 586 files changed, 56530 insertions(+), 23 deletions(-) + 586 files changed, 56527 insertions(+), 23 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h @@ -1271,7 +1271,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", -@@ -357,6 +362,7 @@ if (current_toolchain == default_toolchain) { +@@ -359,6 +364,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/webapps/android:java", "//chrome/browser/webauthn/android:java", "//chrome/browser/xsurface:java", @@ -1279,7 +1279,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", -@@ -1480,6 +1486,7 @@ if (current_toolchain == default_toolchain) { +@@ -1482,6 +1488,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", @@ -1287,7 +1287,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", -@@ -1663,6 +1670,7 @@ if (current_toolchain == default_toolchain) { +@@ -1665,6 +1672,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -1295,7 +1295,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/", -@@ -3628,6 +3636,7 @@ group("jni_headers") { +@@ -3630,6 +3638,7 @@ group("jni_headers") { "//chrome/browser/ui/messages/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -12058,27 +12058,19 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/extensions/api/favicon/favicon_apitest.cc", "../browser/extensions/api/feedback_private/feedback_browsertest.cc", "../browser/extensions/api/file_system/file_system_apitest.cc", -@@ -3242,11 +3263,19 @@ if (!is_android) { - "../browser/ui/views/web_apps/web_app_identity_update_confirmation_view_browsertest.cc", - ] - -+<<<<<<< HEAD - if (is_win) { - data_deps += [ +@@ -3247,6 +3268,11 @@ if (!is_android) { "//chrome/browser/extensions/api:native_messaging_test_echo_host", ] } -+======= + ### Desktop UI patch start + sources += [ + "../browser/extensions/api/adblock_private/adblock_private_apitest.cc", + ] + ### Desktop UI patch end -+>>>>>>> 5cc15977e6c2a... Squashed commits if (is_chromeos_ash && enable_extensions) { deps += -@@ -5419,6 +5448,7 @@ test("unit_tests") { +@@ -5419,6 +5445,7 @@ test("unit_tests") { # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", "../browser/active_use_util_unittest.cc", @@ -12086,7 +12078,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/after_startup_task_utils_unittest.cc", "../browser/apps/icon_standardizer_unittest.cc", "../browser/apps/user_type_filter_unittest.cc", -@@ -6021,6 +6051,8 @@ test("unit_tests") { +@@ -6021,6 +6048,8 @@ test("unit_tests") { "//chrome/services/file_util:unit_tests", "//chrome/services/qrcode_generator/public/cpp", "//components/account_id", @@ -12095,7 +12087,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", -@@ -9313,6 +9345,7 @@ if (!is_android) { +@@ -9313,6 +9342,7 @@ if (!is_android) { public_deps = [ "//chrome/browser:test_support_ui", diff --git a/build/patches/00Add-setting-to-clear-data-on-exit.patch b/build/patches/00Add-setting-to-clear-data-on-exit.patch index 6cdf8619..8a7c9e44 100644 --- a/build/patches/00Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/00Add-setting-to-clear-data-on-exit.patch @@ -1,4 +1,4 @@ -From: Your Name +From: uazo Date: Thu, 16 Feb 2023 15:28:16 +0000 Subject: Add setting to clear data on exit @@ -23,9 +23,9 @@ Subject: Add setting to clear data on exit .../settings_localized_strings_provider.cc | 1 + .../browsing_data/core/browsing_data_utils.cc | 34 +++++++++ .../core/clear_browsing_data_tab.h | 2 +- - components/browsing_data/core/pref_names.cc | 35 +++++++++ + components/browsing_data/core/pref_names.cc | 27 +++++++ components/browsing_data/core/pref_names.h | 9 +++ - 22 files changed, 305 insertions(+), 6 deletions(-) + 22 files changed, 297 insertions(+), 6 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -571,34 +571,26 @@ diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_d // Clear browsing data deletion time period. const char kDeleteTimePeriod[] = "browser.clear_data.time_period"; const char kDeleteTimePeriodBasic[] = "browser.clear_data.time_period_basic"; -@@ -89,6 +99,31 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -89,6 +99,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterIntegerPref( kClearBrowsingDataHistoryNoticeShownTimes, 0); + registry->RegisterBooleanPref( -+ kDeleteBrowsingHistoryAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteBrowsingHistoryAtStart, false); + registry->RegisterBooleanPref( -+ kDeleteDownloadHistoryAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteDownloadHistoryAtStart, false); + registry->RegisterBooleanPref( -+ kDeleteCacheAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteCacheAtStart, false); + registry->RegisterBooleanPref( -+ kDeleteCookiesAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteCookiesAtStart, false); + registry->RegisterBooleanPref( -+ kDeletePasswordsAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeletePasswordsAtStart, false); + registry->RegisterBooleanPref( -+ kDeleteFormDataAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteFormDataAtStart, false); + registry->RegisterBooleanPref( -+ kDeleteHostedAppsDataAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteHostedAppsDataAtStart, false); + registry->RegisterBooleanPref( -+ kDeleteSiteSettingsAtStart, false, -+ user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); ++ kDeleteSiteSettingsAtStart, false); + #if !BUILDFLAG(IS_IOS) registry->RegisterBooleanPref( diff --git a/build/patches/00Disable-WebGPU.patch b/build/patches/00Disable-WebGPU.patch new file mode 100644 index 00000000..5b32b0c0 --- /dev/null +++ b/build/patches/00Disable-WebGPU.patch @@ -0,0 +1,35 @@ +From: uazo +Date: Mon, 1 May 2023 12:07:49 +0000 +Subject: Disable WebGPU + +--- + gpu/config/gpu_finch_features.cc | 2 +- + .../blink/renderer/platform/runtime_enabled_features.json5 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc +--- a/gpu/config/gpu_finch_features.cc ++++ b/gpu/config/gpu_finch_features.cc +@@ -271,7 +271,7 @@ BASE_FEATURE(kEnableDrDcVulkan, + BASE_FEATURE(kWebGPUService, + "WebGPUService", + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) +- base::FEATURE_ENABLED_BY_DEFAULT ++ base::FEATURE_DISABLED_BY_DEFAULT + #else + base::FEATURE_DISABLED_BY_DEFAULT + #endif +diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 ++++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +@@ -3766,7 +3766,7 @@ + // Note that this isn't enough to enable WebGPU and that access to + // WebGPU is further gated on the "WebGPUService" feature exposing GPU + // process access to WebGPU to the renderer process. +- status: "stable", ++ status: "test", + }, + { + // WebGPU developer features are deliberately not enabled by experimental +-- +2.25.1 diff --git a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch index b027a4a4..d242ef0e 100644 --- a/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch +++ b/build/patches/00WIN-ADDTO-Disable-safe-browsing.patch @@ -3,10 +3,10 @@ Date: Wed, 12 Oct 2022 09:52:02 +0000 Subject: WIN ADDTO Disable safe browsing --- - chrome/browser/BUILD.gn | 16 +- + chrome/browser/BUILD.gn | 20 +-- .../chrome_browsing_data_remover_delegate.cc | 2 - chrome/browser/chrome_browser_main_win.cc | 6 - - .../bubble/download_bubble_ui_controller.cc | 2 + + .../bubble/download_bubble_ui_controller.cc | 3 +- .../chrome_download_manager_delegate.cc | 16 +- .../browser/download/download_item_model.cc | 94 +--------- .../analysis/content_analysis_delegate.cc | 162 +----------------- @@ -29,6 +29,7 @@ Subject: WIN ADDTO Disable safe browsing ...nfiguration_policy_handler_list_factory.cc | 7 - chrome/browser/prefs/browser_prefs.cc | 2 + chrome/browser/printing/print_view_manager.cc | 15 -- + ...hrome_browser_main_extra_parts_profiles.cc | 3 - chrome/browser/profiles/profiles_state.cc | 2 - chrome/browser/resources/BUILD.gn | 1 - chrome/browser/safe_browsing/BUILD.gn | 8 +- @@ -40,7 +41,7 @@ Subject: WIN ADDTO Disable safe browsing ...b_modal_dialog_manager_delegate_desktop.cc | 1 - .../ui/page_info/chrome_page_info_delegate.cc | 1 - .../chrome_web_contents_view_handle_drop.cc | 159 ----------------- - .../ui/views/download/download_item_view.cc | 23 +-- + .../ui/views/download/download_item_view.cc | 24 +-- .../webui/downloads/downloads_dom_handler.cc | 21 +-- .../ui/webui/downloads/downloads_ui.cc | 5 +- chrome/browser/ui/webui/intro/intro_ui.cc | 29 +--- @@ -54,7 +55,7 @@ Subject: WIN ADDTO Disable safe browsing .../core/common/safe_browsing_prefs.cc | 2 +- printing/buildflags/buildflags.gni | 2 +- .../tracked_persistent_pref_store_factory.cc | 10 +- - 51 files changed, 72 insertions(+), 827 deletions(-) + 52 files changed, 72 insertions(+), 836 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn @@ -101,7 +102,18 @@ 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", -@@ -7909,7 +7896,6 @@ static_library("test_support") { +@@ -6071,10 +6058,6 @@ static_library("browser") { + "enterprise/chrome_browser_main_extra_parts_enterprise.h", + "enterprise/connectors/analysis/content_analysis_sdk_manager.cc", + "enterprise/connectors/analysis/content_analysis_sdk_manager.h", +- "enterprise/connectors/analysis/local_binary_upload_service.cc", +- "enterprise/connectors/analysis/local_binary_upload_service.h", +- "enterprise/connectors/analysis/local_binary_upload_service_factory.cc", +- "enterprise/connectors/analysis/local_binary_upload_service_factory.h", + "enterprise/connectors/device_trust/attestation/desktop/crypto_utility.cc", + "enterprise/connectors/device_trust/attestation/desktop/crypto_utility.h", + "enterprise/connectors/device_trust/attestation/desktop/desktop_attestation_service.cc", +@@ -7909,7 +7892,6 @@ static_library("test_support") { ":browser", "//chrome/browser/autofill:test_support", "//chrome/browser/profiles:profile", @@ -140,7 +152,15 @@ diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_b diff --git a/chrome/browser/download/bubble/download_bubble_ui_controller.cc b/chrome/browser/download/bubble/download_bubble_ui_controller.cc --- a/chrome/browser/download/bubble/download_bubble_ui_controller.cc +++ b/chrome/browser/download/bubble/download_bubble_ui_controller.cc -@@ -204,9 +204,11 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( +@@ -28,7 +28,6 @@ + #include "chrome/browser/feature_engagement/tracker_factory.h" + #include "chrome/browser/offline_items_collection/offline_content_aggregator_factory.h" + #include "chrome/browser/profiles/profile_key.h" +-#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h" + #include "chrome/browser/safe_browsing/safe_browsing_service.h" + #include "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/browser_finder.h" +@@ -204,9 +203,11 @@ void DownloadBubbleUIController::ProcessDownloadButtonPress( commands.ExecuteCommand(command); break; case DownloadCommands::REVIEW: @@ -155,7 +175,7 @@ diff --git a/chrome/browser/download/bubble/download_bubble_ui_controller.cc b/c 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 -@@ -884,21 +884,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { +@@ -877,21 +877,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { content::DownloadItemUtils::GetWebContents(download); Browser* browser = web_contents ? chrome::FindBrowserWithWebContents(web_contents) : nullptr; @@ -177,7 +197,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom browser->OpenURL(params); #endif // BUILDFLAG(IS_ANDROID) } -@@ -946,7 +936,7 @@ void ChromeDownloadManagerDelegate::ShowDownloadInShell( +@@ -939,7 +929,7 @@ void ChromeDownloadManagerDelegate::ShowDownloadInShell( std::string ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { @@ -186,7 +206,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -1715,8 +1705,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( +@@ -1708,8 +1698,8 @@ void ChromeDownloadManagerDelegate::CheckSavePackageAllowed( DCHECK(download_item); DCHECK(download_item->IsSavePackageDownload()); @@ -1187,6 +1207,19 @@ diff --git a/chrome/browser/printing/print_view_manager.cc b/chrome/browser/prin std::move(callback).Run(/*should_proceed=*/true); } +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 +@@ -631,9 +631,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + enterprise_connectors::DeviceTrustServiceFactory::GetInstance(); + enterprise_connectors::DeviceTrustConnectorServiceFactory::GetInstance(); + #endif +-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +- enterprise_connectors::LocalBinaryUploadServiceFactory::GetInstance(); +-#endif + #if BUILDFLAG(ENABLE_SESSION_SERVICE) + ExitTypeServiceFactory::GetInstance(); + #endif diff --git a/chrome/browser/profiles/profiles_state.cc b/chrome/browser/profiles/profiles_state.cc --- a/chrome/browser/profiles/profiles_state.cc +++ b/chrome/browser/profiles/profiles_state.cc @@ -1606,7 +1639,15 @@ diff --git a/chrome/browser/ui/tab_contents/chrome_web_contents_view_handle_drop diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc --- a/chrome/browser/ui/views/download/download_item_view.cc +++ b/chrome/browser/ui/views/download/download_item_view.cc -@@ -815,21 +815,7 @@ void DownloadItemView::UpdateLabels() { +@@ -38,7 +38,6 @@ + #include "chrome/browser/icon_manager.h" + #include "chrome/browser/safe_browsing/advanced_protection_status_manager.h" + #include "chrome/browser/safe_browsing/advanced_protection_status_manager_factory.h" +-#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h" + #include "chrome/browser/safe_browsing/safe_browsing_service.h" + #include "chrome/browser/ui/browser.h" + #include "chrome/browser/ui/color/chrome_color_id.h" +@@ -815,21 +814,7 @@ void DownloadItemView::UpdateLabels() { warning_label_->SizeToFit(GetLabelWidth(*warning_label_)); } @@ -1629,7 +1670,7 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/bro } void DownloadItemView::UpdateButtons() { -@@ -1018,11 +1004,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { +@@ -1018,11 +1003,7 @@ ui::ImageModel DownloadItemView::GetIcon() const { switch (danger_type) { case download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT: @@ -1642,7 +1683,7 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/bro case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL: case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT: case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST: -@@ -1273,7 +1255,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, +@@ -1273,7 +1254,6 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Rect& rect, } void DownloadItemView::OpenDownloadDuringAsyncScanning() { @@ -1907,7 +1948,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//chrome/browser/sharing/proto", "//chrome/child", "//chrome/common:non_code_constants", -@@ -6021,9 +6020,6 @@ test("unit_tests") { +@@ -6018,9 +6017,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-Remove-signin-and-sync-integrations.patch b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch index 8c6030cc..d01dbb84 100644 --- a/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch +++ b/build/patches/00WIN-ADDTO-Remove-signin-and-sync-integrations.patch @@ -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", -@@ -6695,12 +6693,6 @@ static_library("browser") { +@@ -6691,12 +6689,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 365acbab..85defd24 100644 --- a/build/patches/00WIN-Fix-windows-build.patch +++ b/build/patches/00WIN-Fix-windows-build.patch @@ -1,4 +1,4 @@ -From: Your Name +From: uazo Date: Thu, 13 Oct 2022 10:34:52 +0000 Subject: WIN Fix windows build @@ -6,10 +6,12 @@ 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 | 12 +++---- + .../browser/ui/startup/first_run_service.cc | 14 +++----- + chrome/browser/ui/webui/intro/intro_ui.cc | 9 ------ chrome/browser/updater/BUILD.gn | 9 ------ .../browser/updater/browser_updater_client.cc | 32 +------------------ - 6 files changed, 10 insertions(+), 49 deletions(-) + chrome/test/data/webui/intro/BUILD.gn | 1 - + 8 files changed, 10 insertions(+), 61 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 @@ -72,15 +74,18 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ #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: -@@ -169,7 +171,6 @@ void SetFirstRunFinished(FinishedReason reason) { - PrefService* local_state = g_browser_process->local_state(); - local_state->SetBoolean(prefs::kFirstRunFinished, true); +@@ -166,10 +168,7 @@ enum class FinishedReason { + }; + + void SetFirstRunFinished(FinishedReason reason) { +- PrefService* local_state = g_browser_process->local_state(); +- local_state->SetBoolean(prefs::kFirstRunFinished, true); base::UmaHistogramEnumeration("ProfilePicker.FirstRun.FinishReason", reason); - #if BUILDFLAG(IS_CHROMEOS_LACROS) absl::optional outcome; switch (reason) { -@@ -196,9 +197,7 @@ void SetFirstRunFinished(FinishedReason reason) { +@@ -196,9 +195,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() { @@ -91,7 +96,7 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ } } // namespace -@@ -206,8 +205,6 @@ bool IsFirstRunMarkedFinishedInPrefs() { +@@ -206,8 +203,6 @@ bool IsFirstRunMarkedFinishedInPrefs() { // static void FirstRunService::RegisterLocalStatePrefs(PrefRegistrySimple* registry) { @@ -100,7 +105,7 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ } FirstRunService::FirstRunService(Profile* profile) : profile_(profile) {} -@@ -231,7 +228,6 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( +@@ -231,7 +226,6 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( return; } @@ -108,7 +113,7 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ bool has_set_up_profile = #if BUILDFLAG(IS_CHROMEOS_LACROS) // Indicates that the profile was likely migrated from pre-Lacros Ash. -@@ -241,7 +237,7 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( +@@ -241,7 +235,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 // avoid having to handle too strange states later. @@ -117,6 +122,32 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ #endif if (has_set_up_profile) { SetFirstRunFinished(FinishedReason::kProfileAlreadySetUp); +diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui/intro/intro_ui.cc +--- a/chrome/browser/ui/webui/intro/intro_ui.cc ++++ b/chrome/browser/ui/webui/intro/intro_ui.cc +@@ -34,14 +34,6 @@ + + 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); +- +- webui::SetupWebUIDataSource( +- source, base::make_span(kIntroResources, kIntroResourcesSize), +- IDR_INTRO_INTRO_HTML); + + #if BUILDFLAG(ENABLE_DICE_SUPPORT) + int title_id = 0; +@@ -73,7 +65,6 @@ IntroUI::IntroUI(content::WebUI* web_ui) : content::WebUIController(web_ui) { + // page itself makes it available much earlier, and avoids having to fallback + // to the one obtained from `NavigationEntry::GetTitleForDisplay()` (which + // ends up being the URL) when we try to get it on startup for a11y purposes. +- web_ui->OverrideTitle(l10n_util::GetStringUTF16(title_id)); + + const bool is_device_managed = + policy::ManagementServiceFactory::GetForPlatform()->IsManaged(); 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 @@ -192,5 +223,16 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } scoped_refptr BrowserUpdaterClient::Create( +diff --git a/chrome/test/data/webui/intro/BUILD.gn b/chrome/test/data/webui/intro/BUILD.gn +--- a/chrome/test/data/webui/intro/BUILD.gn ++++ b/chrome/test/data/webui/intro/BUILD.gn +@@ -26,7 +26,6 @@ build_webui_tests("build") { + "$root_gen_dir/chrome/browser/resources/intro/tsc/*", + target_gen_dir) ] + ts_deps = [ +- "//chrome/browser/resources/intro:build_ts", + "//ui/webui/resources/js:build_ts", + ] + } -- 2.25.1 diff --git a/build/patches/00add-browser-policy.patch b/build/patches/00add-browser-policy.patch index 2e4b85f4..28f75a8a 100644 --- a/build/patches/00add-browser-policy.patch +++ b/build/patches/00add-browser-policy.patch @@ -1,4 +1,4 @@ -From: Your Name +From: uazo Date: Tue, 22 Nov 2022 16:49:58 +0000 Subject: Add browser policy @@ -8,7 +8,7 @@ Subject: Add browser policy .../policy/chrome_browser_policy_connector.cc | 2 - ...nfiguration_policy_handler_list_factory.cc | 6 +- .../account_consistency_mode_manager.cc | 22 +++- - chrome/browser/signin/chrome_signin_client.cc | 6 +- + chrome/browser/signin/chrome_signin_client.cc | 7 +- .../ui/webui/policy/policy_ui_handler.cc | 105 ++++++++++++++- .../ui/webui/policy/policy_ui_handler.h | 2 + .../core/browser/browser_policy_connector.cc | 3 + @@ -26,7 +26,7 @@ Subject: Add browser policy components/signin/features.gni | 6 +- .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + - 23 files changed, 293 insertions(+), 33 deletions(-) + 23 files changed, 294 insertions(+), 33 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 @@ -159,15 +159,16 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { return profile_->GetPrefs(); } -@@ -239,6 +241,8 @@ void ChromeSigninClient::OnConnectionChanged( - #endif +@@ -264,6 +266,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { + } - bool ChromeSigninClient::AreNetworkCallsDelayed() { + void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { + // Make ChromeSigninClient compliant to SigninAllowed policy + if (!AreSigninCookiesAllowed()) return; - #if BUILDFLAG(IS_CHROMEOS_ASH) - // Do not make network requests in unit tests. ash::NetworkHandler should - // not be used and is not expected to have been initialized in unit tests. ++ + if (!AreNetworkCallsDelayed()) { + std::move(callback).Run(); + return; diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc --- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc diff --git a/build/patches/00temporary-fix-libaom-build-error.patch b/build/patches/00temporary-fix-libaom-build-error.patch deleted file mode 100644 index 71a215fd..00000000 --- a/build/patches/00temporary-fix-libaom-build-error.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Your Name -Date: Sat, 3 Dec 2022 08:59:11 +0000 -Subject: temporary fix libaom build error - ---- - third_party/libaom/BUILD.gn | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn ---- a/third_party/libaom/BUILD.gn -+++ b/third_party/libaom/BUILD.gn -@@ -258,11 +258,11 @@ static_library("libaom") { - cpu_arch_full == "arm-neon-cpu-detect") { - deps += [ ":libaom_intrinsics_neon" ] - } -- if (current_cpu == "arm64" || current_cpu == "arm") { -- # This is needed by all arm boards due to aom_arm_cpu_caps() -- sources += -- [ "//third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c" ] -- } -+ # if (current_cpu == "arm64" || current_cpu == "arm") { -+ # # This is needed by all arm boards due to aom_arm_cpu_caps() -+ # sources += -+ # [ "//third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c" ] -+ # } - if (is_android) { - deps += [ "//third_party/android_ndk:cpu_features" ] - } --- -2.25.1 diff --git a/build/patches/00v113-temp-fix-build.patch b/build/patches/00v113-temp-fix-build.patch new file mode 100644 index 00000000..bad75200 --- /dev/null +++ b/build/patches/00v113-temp-fix-build.patch @@ -0,0 +1,24 @@ +From: Your Name +Date: Mon, 1 May 2023 12:08:46 +0000 +Subject: v113 temp fix build + +--- + android_webview/system_webview_bundle.gni | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/android_webview/system_webview_bundle.gni b/android_webview/system_webview_bundle.gni +--- a/android_webview/system_webview_bundle.gni ++++ b/android_webview/system_webview_bundle.gni +@@ -78,6 +78,10 @@ template("system_webview_bundle") { + custom_assertion_handler = crash_reporting_assertion_handler + } + } ++ } else { ++ not_needed(["_base_target_name", "_base_target_gen_dir", ++ "_base_module_build_config", "_rebased_base_module_build_config", ++ "_base_module_version_code"]) + } + + android_app_bundle(target_name) { +-- +2.25.1 diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 34fdb1e3..68f6fb93 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -26,10 +26,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../prefs/chrome_command_line_pref_store.cc | 2 +- chrome/browser/resources/proxy_config.css | 61 +++ chrome/browser/resources/proxy_config.html | 77 ++++ - chrome/browser/resources/proxy_config.js | 278 ++++++++++++ + chrome/browser/resources/proxy_config.js | 278 +++++++++++++ chrome/browser/ui/BUILD.gn | 2 + .../webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 397 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.cc | 393 ++++++++++++++++++ chrome/browser/ui/webui/proxy_config_ui.h | 31 ++ chrome/common/webui_url_constants.cc | 4 + chrome/common/webui_url_constants.h | 2 + @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../proxy_config/proxy_policy_handler.cc | 2 +- net/proxy_resolution/proxy_config.cc | 52 ++- net/proxy_resolution/proxy_config.h | 3 + - 24 files changed, 984 insertions(+), 15 deletions(-) + 24 files changed, 980 insertions(+), 15 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -688,7 +688,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,397 @@ +@@ -0,0 +1,393 @@ +/* + This file is part of Bromite. + @@ -745,16 +745,6 @@ new file mode 100644 + +namespace { + -+content::WebUIDataSource* CreateProxyConfigHTMLSource() { -+ content::WebUIDataSource* source = -+ content::WebUIDataSource::Create(chrome::kChromeUIProxyConfigHost); -+ -+ source->UseStringsJs(); -+ source->AddResourcePath("proxy_config.js", IDR_PROXY_CONFIG_JS); -+ source->SetDefaultResource(IDR_PROXY_CONFIG_HTML); -+ return source; -+} -+ +// This class receives javascript messages from the renderer. +// Note that the WebUI infrastructure runs on the UI thread, therefore all of +// this class's public methods are expected to run on the UI thread. @@ -1084,7 +1074,13 @@ new file mode 100644 + web_ui->AddMessageHandler(std::make_unique(profile)); + + // Set up the chrome://proxy/ source. -+ content::WebUIDataSource::Add(profile, CreateProxyConfigHTMLSource()); ++ content::WebUIDataSource* source = ++ content::WebUIDataSource::CreateAndAdd(web_ui->GetWebContents()->GetBrowserContext(), ++ chrome::kChromeUIProxyConfigHost); ++ ++ source->UseStringsJs(); ++ source->AddResourcePath("proxy_config.js", IDR_PROXY_CONFIG_JS); ++ source->SetDefaultResource(IDR_PROXY_CONFIG_HTML); +} diff --git a/chrome/browser/ui/webui/proxy_config_ui.h b/chrome/browser/ui/webui/proxy_config_ui.h new file mode 100644 diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index cb0f2cf9..68b6ea26 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -16,9 +16,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../app/bookmarks/BookmarkActivity.java | 31 ++ .../browser/bookmarks/BookmarkBridge.java | 278 +++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + + .../bookmarks/BookmarkManagerCoordinator.java | 9 + .../bookmarks/BookmarkManagerMediator.java | 23 ++ .../browser/bookmarks/BookmarkPage.java | 8 +- - .../browser/bookmarks/BookmarkToolbar.java | 12 + + .../browser/bookmarks/BookmarkToolbar.java | 23 ++ + .../bookmarks/BookmarkToolbarMediator.java | 6 +- + .../bookmarks/BookmarkToolbarProperties.java | 7 +- + .../bookmarks/BookmarkToolbarViewBinder.java | 6 + .../native_page/NativePageFactory.java | 11 +- chrome/browser/BUILD.gn | 11 +- chrome/browser/about_flags.cc | 6 + @@ -45,7 +49,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog.h | 2 + .../select_file_dialog_android.cc | 6 + ui/shell_dialogs/select_file_dialog_android.h | 2 + - 35 files changed, 849 insertions(+), 29 deletions(-) + 39 files changed, 886 insertions(+), 31 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -144,7 +148,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B + IntentRequestTracker intentRequestTracker = IntentRequestTracker.createFromActivity(this); + mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, intentRequestTracker); + mWindowAndroid.getIntentRequestTracker().restoreInstanceState(savedInstanceState); -+ mBookmarkManager.setWindow(mWindowAndroid, ++ mBookmarkManagerCoordinator.setWindow(mWindowAndroid, + new ModalDialogManager( + new AppModalPresenter(this), ModalDialogManager.ModalDialogType.APP)); } @@ -519,10 +523,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Dismisses the search UI. */ +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +@@ -40,6 +40,8 @@ import org.chromium.components.favicon.LargeIconBridge; + import org.chromium.components.image_fetcher.ImageFetcher; + import org.chromium.components.image_fetcher.ImageFetcherConfig; + import org.chromium.components.image_fetcher.ImageFetcherFactory; ++import org.chromium.ui.base.ActivityWindowAndroid; ++import org.chromium.ui.modaldialog.ModalDialogManager; + import org.chromium.ui.modelutil.PropertyKey; + import org.chromium.ui.modelutil.PropertyModel; + import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -144,6 +146,13 @@ public class BookmarkManagerCoordinator + + // Public API implementation. + ++ /** ++ * Sets the Android window that is used by further intents created by the bookmark activity. ++ */ ++ public void setWindow(ActivityWindowAndroid window, ModalDialogManager modalDialogManager) { ++ mMediator.setWindow(window, modalDialogManager); ++ } ++ + /** + * Destroys and cleans up itself. This must be called after done using this class. + */ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -37,6 +37,8 @@ import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; +@@ -35,6 +35,8 @@ import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver; @@ -531,7 +561,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.components.favicon.LargeIconBridge; import org.chromium.components.feature_engagement.EventConstants; import org.chromium.ui.modelutil.PropertyModel; -@@ -56,6 +58,9 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, +@@ -54,6 +56,9 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, private static boolean sPreventLoadingForTesting; @@ -541,7 +571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Keeps track of whether drag is enabled / active for bookmark lists. */ -@@ -446,6 +451,14 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, +@@ -423,6 +428,14 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, mNativePage = nativePage; } @@ -556,7 +586,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * See BookmarkManager(Coordinator)#updateForUrl */ -@@ -662,6 +675,16 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, +@@ -628,6 +641,16 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, } } @@ -598,7 +628,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm new BookmarkManagerCoordinator(host.getContext(), componentName, false, isIncognito, snackbarManager, Profile.getLastUsedRegularProfile()); mBookmarkManagerCoordinator.setBasicNativePage(this); -+ mManager.setWindow(activity.getWindowAndroid(), ++ mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( + new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP)); mTitle = host.getContext().getResources().getString(R.string.bookmarks); @@ -616,7 +646,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(true); getMenu().findItem(R.id.edit_menu_id).setVisible(mCurrentFolder.isEditable()); -@@ -172,6 +174,8 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -167,9 +169,22 @@ public class BookmarkToolbar extends SelectableListToolbar + mOpenFolderCallback = openFolderCallback; + } + ++ private Runnable mImportBookmarkRunnable; ++ private Runnable mExportBookmarkRunnable; ++ ++ void setImportBookmarkRunnable(Runnable runnable) { ++ mImportBookmarkRunnable = runnable; ++ } ++ ++ void setExportBookmarkRunnable(Runnable runnable) { ++ mExportBookmarkRunnable = runnable; ++ } ++ void showLoadingUi() { setTitle(null); setNavigationButton(NAVIGATION_BUTTON_NONE); @@ -625,20 +669,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } -@@ -192,6 +196,12 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -190,6 +205,12 @@ public class BookmarkToolbar extends SelectableListToolbar } else if (menuItem.getItemId() == R.id.search_menu_id) { mOpenSearchUiRunnable.run(); return true; + } else if (menuItem.getItemId() == R.id.import_menu_id) { -+ mDelegate.importBookmarks(); ++ mImportBookmarkRunnable.run(); + return true; + } else if (menuItem.getItemId() == R.id.export_menu_id) { -+ mDelegate.exportBookmarks(); ++ mExportBookmarkRunnable.run(); + return true; } if (menuItem.getItemId() == R.id.selection_mode_edit_menu_id) { -@@ -271,6 +281,8 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -269,6 +290,8 @@ public class BookmarkToolbar extends SelectableListToolbar super.showNormalView(); if (mCurrentFolder == null) { @@ -647,6 +691,61 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.search_menu_id).setVisible(false); getMenu().findItem(R.id.edit_menu_id).setVisible(false); } else { +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +@@ -43,6 +43,10 @@ class BookmarkToolbarMediator implements BookmarkUiObserver, + mBookmarkDelegate::openSearchUi); + mModel.set( + BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK, mBookmarkDelegate::openFolder); ++ mModel.set( ++ BookmarkToolbarProperties.IMPORT_BOOKMARK_RUNNABLE, mBookmarkDelegate::importBookmarks); ++ mModel.set( ++ BookmarkToolbarProperties.EXPORT_BOOKMARK_RUNNABLE, mBookmarkDelegate::exportBookmarks); + mBookmarkDelegate.addUiObserver(this); + mBookmarkDelegate.notifyStateChange(this); + }); +@@ -90,4 +94,4 @@ class BookmarkToolbarMediator implements BookmarkUiObserver, + public void onSelectionStateChange(List selectedItems) { + mModel.set(BookmarkToolbarProperties.SOFT_KEYBOARD_VISIBLE, false); + } +-} +\ No newline at end of file ++} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +@@ -38,8 +38,13 @@ class BookmarkToolbarProperties { + new WritableObjectPropertyKey<>(); + static final WritableObjectPropertyKey> OPEN_FOLDER_CALLBACK = + new WritableObjectPropertyKey<>(); ++ static final WritableObjectPropertyKey IMPORT_BOOKMARK_RUNNABLE = ++ new WritableObjectPropertyKey<>(); ++ static final WritableObjectPropertyKey EXPORT_BOOKMARK_RUNNABLE = ++ new WritableObjectPropertyKey<>(); + + static final PropertyKey[] ALL_KEYS = {BOOKMARK_MODEL, BOOKMARK_OPENER, SELECTION_DELEGATE, + BOOKMARK_UI_MODE, SOFT_KEYBOARD_VISIBLE, IS_DIALOG_UI, DRAG_ENABLED, CURRENT_FOLDER, +- OPEN_SEARCH_UI_RUNNABLE, OPEN_FOLDER_CALLBACK}; ++ OPEN_SEARCH_UI_RUNNABLE, OPEN_FOLDER_CALLBACK, ++ IMPORT_BOOKMARK_RUNNABLE, EXPORT_BOOKMARK_RUNNABLE}; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +@@ -36,6 +36,12 @@ class BookmarkToolbarViewBinder { + } else if (key == BookmarkToolbarProperties.OPEN_SEARCH_UI_RUNNABLE) { + bookmarkToolbar.setOpenSearchUiRunnable( + model.get(BookmarkToolbarProperties.OPEN_SEARCH_UI_RUNNABLE)); ++ } else if (key == BookmarkToolbarProperties.IMPORT_BOOKMARK_RUNNABLE) { ++ bookmarkToolbar.setImportBookmarkRunnable( ++ model.get(BookmarkToolbarProperties.IMPORT_BOOKMARK_RUNNABLE)); ++ } else if (key == BookmarkToolbarProperties.EXPORT_BOOKMARK_RUNNABLE) { ++ bookmarkToolbar.setExportBookmarkRunnable( ++ model.get(BookmarkToolbarProperties.EXPORT_BOOKMARK_RUNNABLE)); + } else if (key == BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK) { + bookmarkToolbar.setOpenFolderCallback( + model.get(BookmarkToolbarProperties.OPEN_FOLDER_CALLBACK)); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index f67c98fa..6d895247 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -85,9 +85,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/permissions/permission_prompt.h | 3 +- components/permissions/permission_request.cc | 34 +++++++- components/permissions/permission_request.h | 18 ++++- - .../permissions/permission_request_manager.cc | 37 ++++++--- + .../permissions/permission_request_manager.cc | 45 +++++++---- .../permissions/permission_request_manager.h | 11 ++- - 35 files changed, 479 insertions(+), 58 deletions(-) + 35 files changed, 483 insertions(+), 62 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -1321,7 +1321,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1110,31 +1121,31 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1110,32 +1121,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1334,12 +1334,14 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p + request->PermissionGranted(is_one_time, lifetime_option); VisitDuplicateRequests( base::BindRepeating( - [](bool is_one_time, +- [](bool is_one_time, ++ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { - weak_request->PermissionGranted(is_one_time); + weak_request->PermissionGranted(is_one_time, lifetime_option); }, - is_one_time), +- is_one_time), ++ is_one_time, lifetime_option), request); } @@ -1353,12 +1355,15 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p + request->PermissionDenied(is_one_time, lifetime_option); VisitDuplicateRequests( base::BindRepeating( - [](const base::WeakPtr& weak_request) { +- [](const base::WeakPtr& weak_request) { - weak_request->PermissionDenied(); +- }), ++ [](bool is_one_time, content_settings::LifetimeMode lifetime_option, const base::WeakPtr& weak_request) { + weak_request->PermissionDenied(is_one_time, lifetime_option); - }), ++ }, is_one_time, lifetime_option), request); } + @@ -1376,7 +1387,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { void PermissionRequestManager::DoAutoResponseForTesting() { switch (auto_response_for_test_) { 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 186321cb..d28836f2 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -565,6 +565,7 @@ public class BookmarkUtils { +@@ -566,6 +566,7 @@ public class BookmarkUtils { List topLevelFolders = new ArrayList<>(); BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId(); BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId(); @@ -216,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkId othersNodeId = bookmarkModel.getOtherFolderId(); List specialFoldersIds = -@@ -590,6 +591,9 @@ public class BookmarkUtils { +@@ -591,6 +592,9 @@ public class BookmarkUtils { if (bookmarkModel.isFolderVisible(mobileNodeId)) { topLevelFolders.add(mobileNodeId); } diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 9b5c5f47..7e6d564e 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -78,7 +78,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isChromeScheme); @@ -1170,6 +1171,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } + stopPriceTrackingMenuItem.setVisible(false); } + /** diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index 4447cfb6..bd194255 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -33,8 +33,8 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context + case network::mojom::IPAddressSpace::kUnknown: + return "public"; + -+ case network::mojom::IPAddressSpace::kPrivate: -+ return "private"; ++ case network::mojom::IPAddressSpace::kLoopback: ++ return "loopback"; + + case network::mojom::IPAddressSpace::kLocal: + return "local"; @@ -82,9 +82,9 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi + network::mojom::IPAddressSpace target_space = + network::mojom::IPAddressSpace::kPublic; + if (network_utils::IsReservedIPAddress(request_url.Host())) -+ target_space = network::mojom::IPAddressSpace::kPrivate; -+ if (SecurityOrigin::Create(request_url)->IsLocalhost()) + target_space = network::mojom::IPAddressSpace::kLocal; ++ if (SecurityOrigin::Create(request_url)->IsLocalhost()) ++ target_space = network::mojom::IPAddressSpace::kLoopback; + + bool is_external_request = requestor_space > target_space; + if (is_external_request) @@ -131,9 +131,9 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th + network::mojom::IPAddressSpace target_space = + network::mojom::IPAddressSpace::kPublic; + if (network_utils::IsReservedIPAddress(request_url.Host())) -+ target_space = network::mojom::IPAddressSpace::kPrivate; -+ if (SecurityOrigin::Create(request_url)->IsLocalhost()) + target_space = network::mojom::IPAddressSpace::kLocal; ++ if (SecurityOrigin::Create(request_url)->IsLocalhost()) ++ target_space = network::mojom::IPAddressSpace::kLoopback; + + bool is_external_request = requestor_space > target_space; + if (is_external_request) @@ -176,9 +176,9 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc + network::mojom::IPAddressSpace target_space = + network::mojom::IPAddressSpace::kPublic; + if (network_utils::IsReservedIPAddress(request_url.Host())) -+ target_space = network::mojom::IPAddressSpace::kPrivate; -+ if (SecurityOrigin::Create(request_url)->IsLocalhost()) + target_space = network::mojom::IPAddressSpace::kLocal; ++ if (SecurityOrigin::Create(request_url)->IsLocalhost()) ++ target_space = network::mojom::IPAddressSpace::kLoopback; + + bool is_external_request = requestor_space > target_space; + if (is_external_request) @@ -247,9 +247,9 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b + network::mojom::IPAddressSpace target_space = + network::mojom::IPAddressSpace::kPublic; + if (network_utils::IsReservedIPAddress(request_url.Host())) -+ target_space = network::mojom::IPAddressSpace::kPrivate; -+ if (SecurityOrigin::Create(request_url)->IsLocalhost()) + target_space = network::mojom::IPAddressSpace::kLocal; ++ if (SecurityOrigin::Create(request_url)->IsLocalhost()) ++ target_space = network::mojom::IPAddressSpace::kLoopback; + + bool is_external_request = requestor_space > target_space; + if (is_external_request) diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 1bc3fe42..8bec5ee0 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -4,10 +4,10 @@ Subject: Bookmarks select all menu entry License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/res/menu/bookmark_toolbar_menu.xml | 7 +++++++ - .../chrome/browser/bookmarks/BookmarkToolbar.java | 15 +++++++++++++++ - .../ui/android/strings/android_chrome_strings.grd | 3 +++ - 3 files changed, 25 insertions(+) + .../java/res/menu/bookmark_toolbar_menu.xml | 7 +++++++ + .../chrome/browser/bookmarks/BookmarkToolbar.java | 14 ++++++++++++++ + .../ui/android/strings/android_chrome_strings.grd | 3 +++ + 3 files changed, 24 insertions(+) diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu.xml --- a/chrome/android/java/res/menu/bookmark_toolbar_menu.xml @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.import_menu_id).setVisible(true); getMenu().findItem(R.id.export_menu_id).setVisible(true); getMenu().findItem(R.id.search_menu_id).setVisible(true); -@@ -174,6 +176,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -183,6 +185,7 @@ public class BookmarkToolbar extends SelectableListToolbar void showLoadingUi() { setTitle(null); setNavigationButton(NAVIGATION_BUTTON_NONE); @@ -53,25 +53,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm getMenu().findItem(R.id.import_menu_id).setVisible(false); getMenu().findItem(R.id.export_menu_id).setVisible(false); getMenu().findItem(R.id.search_menu_id).setVisible(false); -@@ -258,6 +261,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -267,6 +270,16 @@ public class BookmarkToolbar extends SelectableListToolbar } mSelectionDelegate.clearSelection(); return true; + } else if (menuItem.getItemId() == R.id.select_all_menu_id) { -+ BookmarkModel bookmarkModel = mDelegate.getModel(); -+ if (bookmarkModel.isBookmarkModelLoaded()) { -+ List items = bookmarkModel.getBookmarksForFolder(mCurrentFolder.getId()); ++ if (mBookmarkModel.isBookmarkModelLoaded()) { ++ List items = mBookmarkModel.getBookmarksForFolder(mCurrentFolder.getId()); + HashSet ids = new HashSet<>(items.size()); + for (BookmarkItem item : items) { + ids.add(item.getId()); + } -+ selectionDelegate.setSelectedItems(ids); ++ mSelectionDelegate.setSelectedItems(ids); + } + return true; } assert false : "Unhandled menu click."; -@@ -281,6 +295,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -290,6 +303,7 @@ public class BookmarkToolbar extends SelectableListToolbar super.showNormalView(); if (mCurrentFolder == null) { diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 577b55ad..990ad60d 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -776,6 +776,7 @@ new file mode 100644 +import org.chromium.base.Log; +import org.chromium.base.task.AsyncTask; +import org.chromium.base.task.PostTask; ++import org.chromium.base.task.TaskTraits; +import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.omaha.OmahaBase; +import org.chromium.chrome.browser.omaha.UpdateConfigs; @@ -784,7 +785,6 @@ new file mode 100644 +import org.chromium.chrome.browser.tab.TabLaunchType; +import org.chromium.chrome.browser.tabmodel.TabCreator; +import org.chromium.content_public.browser.LoadUrlParams; -+import org.chromium.content_public.browser.UiThreadTaskTraits; +import org.chromium.ui.base.PageTransition; +import org.chromium.net.NetworkTrafficAnnotationTag; + @@ -1011,7 +1011,7 @@ new file mode 100644 + private void postStatus(@UpdateStatusProvider.UpdateState int status, String updateUrl) { + mUpdateState = status; + mUpdateUrl = updateUrl; -+ PostTask.postTask(UiThreadTaskTraits.DEFAULT, mCallback); ++ PostTask.postTask(TaskTraits.UI_DEFAULT, mCallback); + } +} diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java diff --git a/build/patches/Disable-AGSA-by-default.patch b/build/patches/Disable-AGSA-by-default.patch index 8e06b1a6..2ece7172 100644 --- a/build/patches/Disable-AGSA-by-default.patch +++ b/build/patches/Disable-AGSA-by-default.patch @@ -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", -@@ -860,7 +859,6 @@ if (current_toolchain == default_toolchain) { +@@ -862,7 +861,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", -@@ -1397,7 +1395,6 @@ if (current_toolchain == default_toolchain) { +@@ -1399,7 +1397,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/first_run/android:java", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 57c1a56b..2f7b5045 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -9,6 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../optimization_guide_keyed_service.cc | 1 - .../predictors/loading_predictor_config.cc | 4 +- chrome/common/chrome_features.cc | 8 ++-- + .../browser/autocomplete_controller.cc | 2 + .../optimization_guide/core/hints_fetcher.cc | 1 + .../optimization_guide/core/hints_manager.cc | 5 +++ .../core/optimization_guide_features.cc | 38 +++++++++---------- @@ -18,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/permissions/features.cc | 8 ++-- third_party/blink/common/features.cc | 8 +--- .../platform/runtime_enabled_features.json5 | 2 +- - 13 files changed, 43 insertions(+), 43 deletions(-) + 14 files changed, 45 insertions(+), 43 deletions(-) diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/browser/optimization_guide/chrome_hints_manager.cc --- a/chrome/browser/optimization_guide/chrome_hints_manager.cc @@ -81,6 +82,17 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc const base::FeatureParam kPermissionGeolocationPredictionsHoldbackChance( +diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc +--- a/components/omnibox/browser/autocomplete_controller.cc ++++ b/components/omnibox/browser/autocomplete_controller.cc +@@ -1577,5 +1577,7 @@ bool AutocompleteController::MaybeRunUrlScoringModel( + } + + return true; ++#else ++ return false; + #endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB) + } diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/optimization_guide/core/hints_fetcher.cc --- a/components/optimization_guide/core/hints_fetcher.cc +++ b/components/optimization_guide/core/hints_fetcher.cc diff --git a/build/patches/Disable-safe-browsing.patch b/build/patches/Disable-safe-browsing.patch index 3d4b7006..98191232 100644 --- a/build/patches/Disable-safe-browsing.patch +++ b/build/patches/Disable-safe-browsing.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/chrome_content_browser_client.h | 2 + .../file_type_policies_component_installer.cc | 16 +--- .../browser/component_updater/registration.cc | 12 --- - .../chrome_download_manager_delegate.cc | 48 ++++------ + .../chrome_download_manager_delegate.cc | 55 ++++------- .../chrome_download_manager_delegate.h | 2 +- .../browser/download/download_item_model.cc | 15 ++- chrome/browser/download/download_item_model.h | 4 + @@ -66,6 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../download_protection_service.cc | 2 + .../download_protection_service.h | 3 +- .../url_lookup_service_factory.cc | 4 + + .../chrome_security_blocking_page_factory.cc | 8 +- .../ssl/generated_https_first_mode_pref.cc | 26 +----- .../ssl/generated_https_first_mode_pref.h | 12 +-- .../ssl/https_first_mode_settings_tracker.cc | 16 ---- @@ -98,7 +99,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 - - 89 files changed, 213 insertions(+), 750 deletions(-) + 90 files changed, 214 insertions(+), 764 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 @@ -874,7 +875,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (download_manager_) { download_manager_->AddObserver(this); } -@@ -835,17 +836,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( +@@ -835,28 +836,10 @@ void ChromeDownloadManagerDelegate::ChooseSavePath( void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName( base::FilePath* filename, const GURL& source_url) { @@ -892,7 +893,18 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom } void ChromeDownloadManagerDelegate::SanitizeDownloadParameters( -@@ -910,9 +900,6 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { + download::DownloadUrlParameters* params) { +- if (profile_->GetPrefs()->GetBoolean( +- policy::policy_prefs::kForceGoogleSafeSearch)) { +- GURL safe_url; +- safe_search_api::ForceGoogleSafeSearch(params->url(), &safe_url); +- if (!safe_url.is_empty()) +- params->set_url(std::move(safe_url)); +- } + } + + void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( +@@ -910,9 +893,6 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { chrome::ShowSettingsSubPage(browser, "certificates"); else browser->OpenURL(params); @@ -902,7 +914,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom #endif // BUILDFLAG(IS_ANDROID) } -@@ -966,12 +953,6 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { +@@ -966,12 +946,6 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() { DownloadProtectionService* ChromeDownloadManagerDelegate::GetDownloadProtectionService() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -915,7 +927,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom return nullptr; } #endif -@@ -1518,8 +1499,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( +@@ -1518,8 +1492,11 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( DownloadItemModel model(item); model.DetermineAndSetShouldPreferOpeningInBrowser( target_info->target_path, target_info->is_filetype_handled_safely); @@ -927,7 +939,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (ShouldBlockFile(item, target_info->danger_type)) { MaybeReportDangerousDownloadBlocked( download_prefs_->download_restriction(), "DANGEROUS_FILE_TYPE", -@@ -1528,6 +1512,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( +@@ -1528,6 +1505,7 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( // A dangerous type would take precedence over the blocking of the file. target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS; } @@ -935,7 +947,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom base::FilePath target_path = target_info->target_path; -@@ -1602,6 +1587,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( +@@ -1602,6 +1580,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( return false; } @@ -943,7 +955,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom DownloadPrefs::DownloadRestriction download_restriction = download_prefs_->download_restriction(); -@@ -1650,7 +1636,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( +@@ -1650,7 +1629,7 @@ bool ChromeDownloadManagerDelegate::ShouldBlockFile( LOG(ERROR) << "Invalid download restruction value: " << static_cast(download_restriction); } @@ -952,7 +964,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom return false; } -@@ -1664,7 +1650,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( +@@ -1664,7 +1643,6 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( service->MaybeSendDangerousDownloadOpenedReport(download, show_download_in_folder); } @@ -960,7 +972,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom if (!download->GetAutoOpened()) { download::DownloadContent download_content = download::DownloadContentFromMimeType(download->GetMimeType(), false); -@@ -1672,6 +1657,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( +@@ -1672,6 +1650,7 @@ void ChromeDownloadManagerDelegate::MaybeSendDangerousDownloadOpenedReport( download->GetDangerType(), download_content, base::Time::Now(), download->GetEndTime(), show_download_in_folder); } @@ -2439,6 +2451,24 @@ diff --git a/chrome/browser/safe_browsing/url_lookup_service_factory.cc b/chrome } } // namespace safe_browsing +diff --git a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +--- a/chrome/browser/ssl/chrome_security_blocking_page_factory.cc ++++ b/chrome/browser/ssl/chrome_security_blocking_page_factory.cc +@@ -312,13 +312,7 @@ ChromeSecurityBlockingPageFactory::CreateHttpsOnlyModeBlockingPage( + std::make_unique(web_contents, + request_url); + +- Profile* profile = +- Profile::FromBrowserContext(web_contents->GetBrowserContext()); +- bool is_under_advanced_protection = +- profile && +- safe_browsing::AdvancedProtectionStatusManagerFactory::GetForProfile( +- profile) +- ->IsUnderAdvancedProtection(); ++ bool is_under_advanced_protection = false; + auto page = + std::make_unique( + web_contents, request_url, std::move(client), 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 diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index e7130328..b134989a 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -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", -@@ -895,8 +894,6 @@ if (current_toolchain == default_toolchain) { +@@ -897,8 +896,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/quick_delete:junit", "//chrome/browser/recent_tabs:java", "//chrome/browser/recent_tabs/internal:junit", @@ -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", -@@ -1438,8 +1435,6 @@ if (current_toolchain == default_toolchain) { +@@ -1440,8 +1437,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/quick_delete:javatests", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safe_browsing/android:javatests", diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 0dda9e19..fbc8af38 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -21,10 +21,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chromium/chrome/browser/tab/TabImpl.java | 50 ++++++++++++ .../browser/tab/TabViewAndroidDelegate.java | 14 ++++ chrome/browser/BUILD.gn | 7 ++ - chrome/browser/android/tab_android.cc | 23 ++++++ + chrome/browser/android/tab_android.cc | 15 ++++ chrome/browser/android/tab_android.h | 2 + - .../browser/extensions/extension_view_host.cc | 3 +- .../strings/android_chrome_strings.grd | 6 ++ + .../ui/autofill/chrome_autofill_client.cc | 8 +- chrome/browser/ui/tab_helpers.cc | 3 + .../browser/android_autofill_manager.cc | 2 +- .../browser/android_autofill_manager.h | 4 +- @@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_prefs.h | 2 + .../embedder_support/view/ContentView.java | 46 +++++++++++ .../chromium/ui/base/ViewAndroidDelegate.java | 8 ++ - 22 files changed, 308 insertions(+), 9 deletions(-) + 22 files changed, 305 insertions(+), 9 deletions(-) diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc --- a/android_webview/browser/aw_contents.cc @@ -55,7 +55,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -332,6 +332,7 @@ if (current_toolchain == default_toolchain) { +@@ -333,6 +333,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", @@ -349,7 +349,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_ using base::android::AttachCurrentThread; using base::android::ConvertUTF8ToJavaString; using base::android::JavaParamRef; -@@ -494,3 +501,19 @@ static void JNI_TabImpl_Init(JNIEnv* env, const JavaParamRef& obj) { +@@ -494,3 +501,11 @@ static void JNI_TabImpl_Init(JNIEnv* env, const JavaParamRef& obj) { // This will automatically bind to the Java object and pass ownership there. new TabAndroid(env, obj); } @@ -357,16 +357,8 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_ +void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) { + if (!autofill::ContentAutofillDriverFactory::FromWebContents( + web_contents_.get())) { -+ content::WebContents* web_contents = web_contents_.get(); ++ content::WebContents* web_contents = web_contents_.get(); + autofill::ChromeAutofillClient::CreateForWebContents(web_contents); -+ autofill::ContentAutofillDriverFactory::CreateForWebContentsAndDelegate( -+ web_contents, -+ autofill::ChromeAutofillClient::FromWebContents(web_contents), -+ base::BindRepeating( -+ &autofill::BrowserDriverInitHook, -+ autofill::ChromeAutofillClient::FromWebContents(web_contents), -+ g_browser_process->GetApplicationLocale(), -+ /*enable_secondary_autofill_manager*/ true)); + } +} diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h @@ -381,19 +373,6 @@ diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_a private: JavaObjectWeakGlobalRef weak_java_tab_; -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 -@@ -52,7 +52,8 @@ ExtensionViewHost::ExtensionViewHost(const Extension* extension, - // Attach WebContents helpers. Extension tabs automatically get them attached - // in TabHelpers::AttachTabHelpers, but popups don't. - // TODO(kalman): How much of TabHelpers::AttachTabHelpers should be here? -- autofill::ChromeAutofillClient::CreateForWebContents(host_contents()); -+ autofill::ChromeAutofillClient::CreateForWebContents(host_contents(, -+ /*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 @@ -410,6 +389,24 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Auto Sign-in +diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc +--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc ++++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc +@@ -1179,7 +1179,13 @@ ChromeAutofillClient::ChromeAutofillClient(content::WebContents* web_contents) + web_contents, + base::BindRepeating(&BrowserDriverInitHook, + this, +- g_browser_process->GetApplicationLocale())), ++ g_browser_process->GetApplicationLocale(), ++#if BUILDFLAG(IS_ANDROID) ++ /*enable_secondary_autofill_manager*/ true ++#else ++ /*enable_secondary_autofill_manager*/ false ++#endif ++ )), + content::WebContentsObserver(web_contents), + log_manager_( + // TODO(crbug.com/928595): Replace the closure with a callback to the diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 16985fa1..af6bc392 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) { -@@ -478,6 +481,7 @@ if (current_toolchain == default_toolchain) { +@@ -480,6 +483,7 @@ if (current_toolchain == default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -2761,10 +2761,10 @@ new file mode 100644 + +UserScriptsUI::UserScriptsUI(content::WebUI* web_ui) : WebUIController(web_ui) { + content::WebUIDataSource* html_source = -+ content::WebUIDataSource::Create(kChromeUIUserScriptsHost); ++ content::WebUIDataSource::CreateAndAdd( ++ Profile::FromWebUI(web_ui), kChromeUIUserScriptsHost); + html_source->SetDefaultResource(IDR_USER_SCRIPTS_HTML); + html_source->AddResourcePath("user-scripts-ui.js", IDR_USER_SCRIPTS_JS); -+ content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), html_source); + web_ui->AddMessageHandler(std::make_unique()); +} + diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index b0f8a3a6..f0a52931 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -13,7 +13,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/privacy_preferences.xml | 6 ++ .../privacy/settings/PrivacySettings.java | 63 +++++++++++++++++++ .../history/history_service_factory.cc | 2 + - chrome/browser/preferences/BUILD.gn | 1 + chrome/browser/profiles/profile_impl.cc | 1 + .../strings/android_chrome_strings.grd | 12 ++++ .../preference_spinner_single_line.xml | 26 ++++++-- @@ -28,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../history/core/browser/history_service.h | 8 +++ components/history/core/common/pref_names.cc | 4 ++ components/history/core/common/pref_names.h | 1 + - 18 files changed, 202 insertions(+), 8 deletions(-) + 17 files changed, 201 insertions(+), 8 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml @@ -159,17 +158,6 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/ return history_service; } -diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn ---- a/chrome/browser/preferences/BUILD.gn -+++ b/chrome/browser/preferences/BUILD.gn -@@ -49,6 +49,7 @@ java_cpp_strings("java_pref_names_srcjar") { - "//components/signin/public/base/signin_pref_names.cc", - "//components/supervised_user/core/common/pref_names.cc", - "//components/translate/core/browser/translate_pref_names.cc", -+ "//components/history/core/common/pref_names.cc", - ] - - template = "android/java_templates/Pref.java.tmpl" diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index b0eed2d2..b81fd4c1 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -125,8 +125,8 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chr + std::u16string file_size_string; + auto upload = std::make_unique( + id, info.creation_time, upload_state, file_size_string); -+ upload.file_path = file_path; -+ uploads->push_back(upload); ++ upload->file_path = file_path; ++ uploads->push_back(std::move(upload)); } } diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chrome/browser/crash_upload_list/crash_upload_list_android.h @@ -909,9 +909,9 @@ diff --git a/components/upload_list/upload_list.cc b/components/upload_list/uplo } + +std::string UploadList::GetFilePathByLocalId(const std::string& local_id) { -+ for (auto info : uploads_) { -+ if (info.local_id == local_id) { -+ return info.file_path; ++ for (const std::unique_ptr& info : uploads_) { ++ if (info->local_id == local_id) { ++ return info->file_path; + } + } + return std::string(); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 9c415220..9847f38a 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ChromeAccessibilitySettingsDelegate.java | 52 ++++++++++++ .../chrome/browser/app/ChromeActivity.java | 13 +++ .../browser/app/flags/ChromeCachedFlags.java | 1 + - .../compositor/CompositorViewHolder.java | 6 ++ + .../compositor/CompositorViewHolder.java | 9 +++ .../layouts/LayoutManagerChrome.java | 18 ++++- .../layouts/LayoutManagerChromeTablet.java | 4 +- .../layouts/ToolbarSwipeLayout.java | 15 +++- @@ -60,15 +60,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../flags/android/chrome_feature_list.cc | 2 + .../browser/flags/CachedFeatureFlags.java | 18 +++++ .../browser/flags/ChromeFeatureList.java | 4 + + chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 31 +++++++ .../ui/appmenu/AppMenuHandlerImpl.java | 11 +++ - .../omnibox/LocationBarCoordinator.java | 9 ++- + .../omnibox/LocationBarCoordinator.java | 6 +- + ...mniboxSuggestionsDropdownEmbedderImpl.java | 14 +++- .../browser/omnibox/UrlBarCoordinator.java | 11 ++- .../suggestions/AutocompleteCoordinator.java | 16 +++- .../suggestions/AutocompleteMediator.java | 7 +- .../DropdownItemViewInfoListManager.java | 15 +++- - .../OmniboxSuggestionsDropdown.java | 22 ++++- - .../OmniboxSuggestionsDropdownEmbedder.java | 4 + + .../OmniboxSuggestionsDropdown.java | 28 ++++++- + .../OmniboxSuggestionsDropdownEmbedder.java | 9 +++ .../strings/android_chrome_strings.grd | 6 ++ chrome/browser/ui/android/toolbar/BUILD.gn | 1 + .../toolbar/LocationBarFocusScrimHandler.java | 7 ++ @@ -86,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../accessibility/AccessibilitySettings.java | 16 ++++ .../AccessibilitySettingsDelegate.java | 6 ++ .../render_widget_host_view_android.cc | 3 + - 74 files changed, 866 insertions(+), 59 deletions(-) + 76 files changed, 888 insertions(+), 64 deletions(-) diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc @@ -769,6 +771,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp forwarder.setCurrentTouchEventOffsets(0, top); } }); +@@ -881,6 +887,9 @@ public class CompositorViewHolder extends FrameLayout + int keyboardInset = mApplicationBottomInsetSupplier != null + ? mApplicationBottomInsetSupplier.get().webContentsHeightInset + : 0; ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ keyboardInset = 0; ++ } + + int viewportInsets = controlsInsets + keyboardInset; + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java @@ -1836,6 +1848,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sOmahaMinSdkVersionAndroid = new CachedFlag(OMAHA_MIN_SDK_VERSION_ANDROID, false); public static final CachedFlag sOmniboxMatchToolbarAndStatusBarColor = +diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc +--- a/chrome/browser/prefs/browser_prefs.cc ++++ b/chrome/browser/prefs/browser_prefs.cc +@@ -1753,7 +1753,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, + + #if BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, +- false); ++ true); + #endif + + registry->RegisterTimePref(prefs::kDIPSTimerLastUpdate, base::Time()); diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java @@ -1960,7 +1984,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow ObservableSupplier profileObservableSupplier, PrivacyPreferencesManager privacyPreferencesManager, LocationBarDataProvider locationBarDataProvider, ActionMode.Callback actionModeCallback, -@@ -175,6 +176,7 @@ public class LocationBarCoordinator +@@ -175,11 +176,12 @@ public class LocationBarCoordinator mActivityLifecycleDispatcher = activityLifecycleDispatcher; mActivityLifecycleDispatcher.register(this); mAutocompleteAnchorView = autocompleteAnchorView; @@ -1968,18 +1992,53 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow Context context = mLocationBarLayout.getContext(); OneshotSupplierImpl templateUrlServiceSupplier = new OneshotSupplierImpl<>(); -@@ -371,6 +373,11 @@ public class LocationBarCoordinator - mLocationBarMediator.revertChanges(); + mOmniboxDropdownEmbedderImpl = new OmniboxSuggestionsDropdownEmbedderImpl( +- mWindowAndroid, mWindowDelegate, autocompleteAnchorView, mLocationBarLayout); ++ mWindowAndroid, mWindowDelegate, autocompleteAnchorView, mLocationBarLayout, mContainerView); + + mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar); + // TODO(crbug.com/1151513): Inject LocaleManager instance to LocationBarCoordinator instead +diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java +--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java ++++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java +@@ -37,6 +37,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl implements OmniboxSuggestionsDropdo + private final @NonNull WindowAndroid mWindowAndroid; + private final @NonNull WindowDelegate mWindowDelegate; + private final @NonNull View mAnchorView; ++ private final @NonNull View mContainerView; + private final @NonNull View mHorizontalAlignmentView; + private final @NonNull Context mContext; + // Reusable int array to pass to positioning methods that operate on a two element int array. +@@ -61,10 +62,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl implements OmniboxSuggestionsDropdo + */ + OmniboxSuggestionsDropdownEmbedderImpl(@NonNull WindowAndroid windowAndroid, + @NonNull WindowDelegate windowDelegate, @NonNull View anchorView, +- @NonNull View horizontalAlignmentView) { ++ @NonNull View horizontalAlignmentView, @NonNull View containerView) { + mWindowAndroid = windowAndroid; + mWindowDelegate = windowDelegate; + mAnchorView = anchorView; ++ mContainerView = containerView; + mHorizontalAlignmentView = horizontalAlignmentView; + mContext = mAnchorView.getContext(); + mContext.registerComponentCallbacks(this); +@@ -84,6 +86,16 @@ class OmniboxSuggestionsDropdownEmbedderImpl implements OmniboxSuggestionsDropdo + mOmniboxAlignmentSupplier.removeObserver(obs); } ++ @Override ++ public View getAnchorView() { ++ return mAnchorView; ++ } ++ + @Override + public View getAnchorContainerView() { + return mContainerView; + } + + @Nullable @Override - public View getContainerView() { - return mLocationBarLayout; + public OmniboxAlignment getCurrentAlignment() { diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java @@ -2183,22 +2242,43 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow ViewCompat.setPaddingRelative(this, 0, 0, 0, paddingBottom); mStandardBgColor = shouldShowModernizeVisualUpdate -@@ -491,6 +507,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - } - - private int calculateAvailableViewportHeight() { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) -+ return 0; - mEmbedder.getWindowDelegate().getWindowVisibleDisplayFrame(mTempRect); - return mTempRect.height(); - } +@@ -425,11 +441,15 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + try (TraceEvent tracing = TraceEvent.scoped("OmniboxSuggestionsList.Measure"); + TimingMetric metric = SuggestionsMetrics.recordSuggestionListMeasureTime()) { + OmniboxAlignment omniboxAlignment = mEmbedder.getCurrentAlignment(); +- maybeUpdateLayoutParams(omniboxAlignment.top); ++ int top = omniboxAlignment.top; ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ top = 0; ++ } ++ maybeUpdateLayoutParams(top); + boolean useAlignmentSpecifiedHeight = OmniboxFeatures.omniboxConsumesImeInsets(); + int availableViewportHeight = useAlignmentSpecifiedHeight + ? omniboxAlignment.height +- : calculateAvailableViewportHeight() - omniboxAlignment.top; ++ : calculateAvailableViewportHeight() - top; + int desiredWidth = omniboxAlignment.width; + adjustHorizontalPosition(); + // Suppress the initial requests to shrink the viewport of the omnibox suggestion diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java -@@ -94,6 +94,10 @@ public interface OmniboxSuggestionsDropdownEmbedder { +@@ -4,6 +4,8 @@ + + package org.chromium.chrome.browser.omnibox.suggestions; + ++import android.view.View; ++ + import androidx.annotation.NonNull; + import androidx.annotation.Nullable; + +@@ -94,6 +96,13 @@ public interface OmniboxSuggestionsDropdownEmbedder { @NonNull OmniboxAlignment getCurrentAlignment(); ++ @NonNull ++ View getAnchorView(); ++ + /** Return the container view the suggestion list should be drawn in. */ + @NonNull + View getAnchorContainerView(); diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch index 603ff1fd..e004600e 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -38,7 +38,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -645,6 +645,8 @@ chrome_java_resources = [ +@@ -646,6 +646,8 @@ chrome_java_resources = [ "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", "java/res/xml/privacy_preferences_v2.xml", @@ -50,7 +50,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -904,6 +904,8 @@ chrome_java_sources = [ +@@ -906,6 +906,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index d18bbbbb..df03a0ad 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -147,7 +147,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:jni_java", "//cc:cc_java", "//cc/mojom:mojom_java", -@@ -529,14 +521,23 @@ if (current_toolchain == default_toolchain) { +@@ -531,14 +523,23 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -174,7 +174,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -817,11 +818,6 @@ if (current_toolchain == default_toolchain) { +@@ -819,11 +820,6 @@ if (current_toolchain == default_toolchain) { ":chrome_java", ":chrome_jni_headers", ":delegate_public_impl_java", @@ -186,7 +186,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java_test_support", "//base:base_junit_test_support", "//base/test:test_support_java", -@@ -1375,13 +1371,6 @@ if (current_toolchain == default_toolchain) { +@@ -1377,13 +1373,6 @@ if (current_toolchain == default_toolchain) { ":chrome_app_java_resources", ":chrome_test_util_java", ":delegate_public_impl_java", @@ -200,7 +200,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:jni_java", -@@ -2310,7 +2299,6 @@ if (current_toolchain == default_toolchain) { +@@ -2312,7 +2301,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -208,7 +208,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:jni_java", -@@ -2447,7 +2435,6 @@ if (current_toolchain == default_toolchain) { +@@ -2449,7 +2437,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -216,7 +216,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", -@@ -2463,8 +2450,6 @@ if (current_toolchain == default_toolchain) { +@@ -2465,8 +2452,6 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -225,7 +225,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2489,17 +2474,11 @@ if (current_toolchain == default_toolchain) { +@@ -2491,17 +2476,11 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", @@ -243,7 +243,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:jni_java", "//chrome/browser/download/android:file_provider_java", -@@ -2513,7 +2492,6 @@ if (current_toolchain == default_toolchain) { +@@ -2515,7 +2494,6 @@ if (current_toolchain == default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -251,7 +251,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//ui/android:ui_no_recycler_view_java", -@@ -2532,7 +2510,6 @@ if (current_toolchain == default_toolchain) { +@@ -2534,7 +2512,6 @@ if (current_toolchain == default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/1126301): Consider moving these to the chrome module to # reduce base dex size. diff --git a/build/patches/Remove-contextual-search-manager.patch b/build/patches/Remove-contextual-search-manager.patch index c3adace6..acd5430e 100644 --- a/build/patches/Remove-contextual-search-manager.patch +++ b/build/patches/Remove-contextual-search-manager.patch @@ -53,7 +53,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 -@@ -586,7 +586,6 @@ if (current_toolchain == default_toolchain) { +@@ -588,7 +588,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser:sharing_send_message_result_generated_enum", "//chrome/browser/notifications/scheduler/public:jni_enums", "//chrome/browser/ui:duplicate_download_enums_java", @@ -61,7 +61,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/dom_distiller/core:distiller_type_java", "//components/ntp_tiles:ntp_tiles_enums_java", "//components/offline_pages/core:offline_page_model_enums_java", -@@ -3480,16 +3479,12 @@ generate_jni("chrome_jni_headers") { +@@ -3482,16 +3481,12 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java", "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java", diff --git a/build/patches/Remove-price-shopping-commerce-integrations.patch b/build/patches/Remove-price-shopping-commerce-integrations.patch index 7c28487f..9add77bc 100644 --- a/build/patches/Remove-price-shopping-commerce-integrations.patch +++ b/build/patches/Remove-price-shopping-commerce-integrations.patch @@ -25,10 +25,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AppMenuPropertiesDelegateImpl.java | 11 +- .../browser/bookmarks/BookmarkBridge.java | 11 - .../bookmarks/BookmarkItemsAdapter.java | 1 + - .../browser/bookmarks/BookmarkListEntry.java | 34 +- + .../browser/bookmarks/BookmarkListEntry.java | 30 +- + .../bookmarks/BookmarkManagerCoordinator.java | 23 -- + .../bookmarks/BookmarkManagerMediator.java | 13 +- + .../bookmarks/BookmarkManagerViewBinder.java | 11 - .../BookmarkSaveFlowCoordinator.java | 6 +- .../bookmarks/BookmarkSaveFlowMediator.java | 77 +---- - .../browser/bookmarks/BookmarkUtils.java | 6 +- + .../browser/bookmarks/BookmarkToolbar.java | 4 +- + .../browser/bookmarks/BookmarkUiState.java | 13 - + .../browser/bookmarks/BookmarkUtils.java | 5 +- .../browser/customtabs/CustomTabActivity.java | 2 +- .../init/ProcessInitializationHandler.java | 5 - .../ChromePageInfoControllerDelegate.java | 8 - @@ -56,7 +61,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../components/bookmarks/BookmarkId.java | 3 - .../commerce/core/commerce_feature_list.cc | 65 ++-- - 52 files changed, 78 insertions(+), 1174 deletions(-) + 57 files changed, 80 insertions(+), 1231 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -82,7 +87,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/consent_auditor/android:java", "//chrome/browser/contextmenu:java", "//chrome/browser/creator/android:java", -@@ -642,16 +635,6 @@ if (current_toolchain == default_toolchain) { +@@ -644,16 +637,6 @@ if (current_toolchain == default_toolchain) { sources += share_java_sources deps += share_java_deps @@ -99,7 +104,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (enable_printing) { deps += [ "//printing:printing_java" ] } -@@ -701,7 +684,6 @@ if (current_toolchain == default_toolchain) { +@@ -703,7 +686,6 @@ if (current_toolchain == default_toolchain) { ":chrome_java", "//chrome/android/features/keyboard_accessory:internal_java", "//chrome/browser/android/httpclient:java", @@ -107,7 +112,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/content_creation/notes/internal/android:java", "//chrome/browser/download/internal/android:java", "//chrome/browser/page_annotations/android:java", -@@ -855,11 +837,6 @@ if (current_toolchain == default_toolchain) { +@@ -857,11 +839,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/bluetooth/android:junit", "//chrome/browser/browser_controls/android:java", "//chrome/browser/browser_controls/android:junit", @@ -119,7 +124,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/contextmenu:java", "//chrome/browser/creator/android:java", "//chrome/browser/creator/android:junit", -@@ -1268,8 +1245,6 @@ if (current_toolchain == default_toolchain) { +@@ -1270,8 +1247,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/android/browserservices/intents:java", "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/crypto:java", @@ -128,7 +133,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/contextmenu:java", "//chrome/browser/download/android:download_java_tests", "//chrome/browser/download/android:file_provider_java", -@@ -1404,12 +1379,6 @@ if (current_toolchain == default_toolchain) { +@@ -1406,12 +1381,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/back_press/android:java", "//chrome/browser/banners/android:java", "//chrome/browser/browser_controls/android:java", @@ -141,7 +146,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/content_creation/notes/internal/android:java", "//chrome/browser/contextmenu:java", "//chrome/browser/dependency_injection:java", -@@ -3635,8 +3604,6 @@ group("jni_headers") { +@@ -3637,8 +3606,6 @@ group("jni_headers") { "//chrome/browser/android/browserservices/metrics:jni_headers", "//chrome/browser/android/browserservices/verification:jni_headers", "//chrome/browser/battery/android:jni_headers", @@ -1200,17 +1205,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App ShoppingServiceFactory.getForProfile(Profile.getLastUsedRegularProfile()); ShoppingService.ProductInfo info = null; if (service != null && currentTab != null) { -@@ -1143,7 +1142,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - stopPriceTrackingMenuItem.setVisible(isSubscribed); +@@ -1144,7 +1143,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } else { startPriceTrackingMenuItem.setVisible(true); -- stopPriceTrackingMenuItem.setVisible(false); -+ stopPriceTrackingMenuItem.setVisible(false); */ + stopPriceTrackingMenuItem.setVisible(false); +- } ++ } */ + startPriceTrackingMenuItem.setVisible(false); + stopPriceTrackingMenuItem.setVisible(false); - } } + /** 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 @@ -1267,21 +1272,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java -@@ -23,22 +23,17 @@ public final class BookmarkListEntry { - * Specifies the view types that the bookmark delegate screen can contain. - */ +@@ -25,17 +25,14 @@ public final class BookmarkListEntry { @Retention(RetentionPolicy.SOURCE) -- @IntDef({ViewType.INVALID, ViewType.PERSONALIZED_SIGNIN_PROMO, ViewType.PERSONALIZED_SYNC_PROMO, -+ @IntDef({ViewType.INVALID, - ViewType.SYNC_PROMO, ViewType.FOLDER, ViewType.BOOKMARK, ViewType.DIVIDER, + @IntDef({ViewType.INVALID, + ViewType.FOLDER, ViewType.BOOKMARK, ViewType.DIVIDER, - ViewType.SECTION_HEADER, ViewType.SHOPPING_POWER_BOOKMARK, ViewType.TAG_CHIP_LIST, - ViewType.SHOPPING_FILTER}) + ViewType.SECTION_HEADER, ViewType.TAG_CHIP_LIST}) public @interface ViewType { int INVALID = -1; -- int PERSONALIZED_SIGNIN_PROMO = 0; -- int PERSONALIZED_SYNC_PROMO = 1; - int SYNC_PROMO = 2; int FOLDER = 3; int BOOKMARK = 4; int DIVIDER = 5; @@ -1292,7 +1291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } /** -@@ -75,23 +70,9 @@ public final class BookmarkListEntry { +@@ -72,23 +69,9 @@ public final class BookmarkListEntry { @Nonnull BookmarkItem bookmarkItem, @Nullable PowerBookmarkMeta meta) { @ViewType int viewType = bookmarkItem.isFolder() ? ViewType.FOLDER : ViewType.BOOKMARK; @@ -1316,7 +1315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Creates a divider to separate sections in the bookmark list. */ -@@ -100,22 +81,13 @@ public final class BookmarkListEntry { +@@ -97,22 +80,13 @@ public final class BookmarkListEntry { ViewType.DIVIDER, /*bookmarkItem=*/null, /*sectionHeaderData=*/null); } @@ -1340,6 +1339,133 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } /** +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/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 +@@ -250,11 +250,6 @@ public class BookmarkManagerCoordinator + public View createView(@NonNull ViewGroup parent, @ViewType int viewType) { + // 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.SECTION_HEADER: + return buildSectionHeaderView(parent); +@@ -262,12 +257,8 @@ public class BookmarkManagerCoordinator + 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; +@@ -286,15 +277,9 @@ public class BookmarkManagerCoordinator + case ViewType.BOOKMARK: + viewBinder = BookmarkManagerViewBinder::bindBookmarkItemView; + break; +- case ViewType.SHOPPING_POWER_BOOKMARK: +- viewBinder = BookmarkManagerViewBinder::bindShoppingItemView; +- break; + case ViewType.DIVIDER: + viewBinder = BookmarkManagerViewBinder::bindDividerView; + break; +- case ViewType.SHOPPING_FILTER: +- viewBinder = BookmarkManagerViewBinder::bindShoppingFilterView; +- break; + default: + assert false; + } +@@ -313,14 +298,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); +- // TODO(https://crbug.com/1416611): Move init to view binding. +- row.init(mImageFetcher, mBookmarkModel, mSnackbarManager, mProfile); +- return row; +- } +- + private View buildDividerView(ViewGroup parent) { + return inflate(parent, org.chromium.chrome.R.layout.horizontal_divider); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +@@ -250,10 +250,7 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + setBookmarks(mBookmarkModel.getChildIDs(folder)); + } + +- if (BookmarkId.SHOPPING_FOLDER.equals(folder)) { +- getSelectableListLayout().setEmptyViewText( +- R.string.tracked_products_empty_list_title); +- } else if (folder.getType() == BookmarkType.READING_LIST) { ++ if (folder.getType() == BookmarkType.READING_LIST) { + TrackerFactory.getTrackerForProfile(mProfile).notifyEvent( + EventConstants.READ_LATER_BOOKMARK_FOLDER_OPENED); + getSelectableListLayout().setEmptyViewText(R.string.reading_list_empty_list_title); +@@ -481,14 +478,12 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + model.set(BookmarkManagerProperties.BOOKMARK_ID, id); + model.set(BookmarkManagerProperties.LOCATION, getLocationFromPosition(position)); + model.set(BookmarkManagerProperties.IS_FROM_FILTER_VIEW, +- BookmarkId.SHOPPING_FOLDER.equals(mCurrentFolder)); ++ false); + model.set(BookmarkManagerProperties.ITEM_TOUCH_HELPER, + mBookmarkItemsAdapter.getItemTouchHelper()); + model.set(BookmarkManagerProperties.VIEW_HOLDER, holder); + model.set(BookmarkManagerProperties.IS_HIGHLIGHTED, id.equals(mHighlightedBookmark)); + model.set(BookmarkManagerProperties.CLEAR_HIGHLIGHT, this::clearHighlight); +- } else if (viewType == ViewType.SHOPPING_FILTER) { +- model.set(BookmarkManagerProperties.OPEN_FOLDER, this::openFolder); + } + return model; + } +@@ -830,9 +825,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + // Restore the header, if it exists, then update it. + + updateHeader(false); +- if (BookmarkId.SHOPPING_FOLDER.equals(mCurrentFolder)) { +- filterForPriceTrackingCategory(bookmarks); +- } + + for (BookmarkId bookmarkId : bookmarks) { + BookmarkItem item = mBookmarkModel.getBookmarkById(bookmarkId); +@@ -849,7 +841,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + if (ChromeFeatureList.isEnabled(ChromeFeatureList.SHOPPING_LIST) + && topLevelFoldersShowing()) { + getElements().add(BookmarkListEntry.createDivider()); +- getElements().add(BookmarkListEntry.createShoppingFilter()); + } + + mBookmarkItemsAdapter.notifyDataSetChanged(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java +@@ -82,15 +82,4 @@ class BookmarkManagerViewBinder { + } + + static void bindDividerView(PropertyModel model, View view, PropertyKey key) {} +- +- static void bindShoppingFilterView(PropertyModel model, View view, PropertyKey key) { +- if (key == BookmarkManagerProperties.OPEN_FOLDER) { +- LinearLayout layout = (LinearLayout) view; +- layout.setClickable(true); +- layout.setOnClickListener((v) -> { +- model.get(BookmarkManagerProperties.OPEN_FOLDER) +- .onResult(BookmarkId.SHOPPING_FOLDER); +- }); +- } +- } + } 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 @@ -1523,6 +1649,50 @@ 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/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +@@ -148,9 +148,7 @@ public class BookmarkToolbar extends SelectableListToolbar + return; + } + +- if (folder.getId().equals(BookmarkId.SHOPPING_FOLDER)) { +- setTitle(R.string.price_tracking_bookmarks_filter_title); +- } else if (mBookmarkModel.getTopLevelFolderParentIDs().contains( ++ if (mBookmarkModel.getTopLevelFolderParentIDs().contains( + mCurrentFolder.getParentId()) + && TextUtils.isEmpty(mCurrentFolder.getTitle())) { + setTitle(R.string.bookmarks); +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 +@@ -45,26 +45,13 @@ public class BookmarkUiState { + return new BookmarkUiState(BookmarkUiMode.SEARCHING, "", null); + } + +- static BookmarkUiState createShoppingFilterState() { +- return new BookmarkUiState( +- BookmarkUiMode.FOLDER, SHOPPING_FILTER_URL, BookmarkId.SHOPPING_FOLDER); +- } +- + static BookmarkUiState createFolderState(BookmarkId folder, BookmarkModel bookmarkModel) { +- if (BookmarkId.SHOPPING_FOLDER.equals(folder)) { +- return createShoppingFilterState(); +- } else { + return createStateFromUrl(createFolderUrl(folder), bookmarkModel); +- } + } + + /** @see #createStateFromUrl(Uri, BookmarkModel). */ + static BookmarkUiState createStateFromUrl(String url, BookmarkModel bookmarkModel) { +- if (SHOPPING_FILTER_URL.equals(url)) { +- return createShoppingFilterState(); +- } else { + 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 @@ -1534,11 +1704,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.feature_engagement.TrackerFactory; import org.chromium.chrome.browser.incognito.IncognitoUtils; -@@ -126,11 +125,8 @@ public class BookmarkUtils { - return; +@@ -127,10 +126,8 @@ public class BookmarkUtils { } -- Profile profile = Profile.getLastUsedRegularProfile(); + Profile profile = Profile.getLastUsedRegularProfile(); - ShoppingService shoppingService = ShoppingServiceFactory.getForProfile(profile); - BookmarkSaveFlowCoordinator bookmarkSaveFlowCoordinator = diff --git a/build/patches/Remove-signin-and-sync-integrations.patch b/build/patches/Remove-signin-and-sync-integrations.patch index 827192d9..6543866b 100644 --- a/build/patches/Remove-signin-and-sync-integrations.patch +++ b/build/patches/Remove-signin-and-sync-integrations.patch @@ -19,7 +19,7 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions() License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 20 -- + chrome/android/BUILD.gn | 18 -- chrome/android/chrome_java_sources.gni | 30 --- chrome/android/features/tab_ui/BUILD.gn | 1 - .../browser/feed/FeedSurfaceCoordinator.java | 9 +- @@ -35,16 +35,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ChromeBackupWatcher.java | 10 - .../chrome/browser/ChromeTabbedActivity.java | 9 - .../chrome/browser/app/ChromeActivity.java | 75 ------ - .../app/feed/FeedActionDelegateImpl.java | 2 - + .../creator/CreatorActionDelegateImpl.java | 3 - + .../app/feed/FeedActionDelegateImpl.java | 3 - .../autofill/settings/AddressEditor.java | 16 +- - .../bookmarks/BookmarkPromoHeader.java | 228 +----------------- + .../browser/bookmarks/BookmarkListEntry.java | 7 +- + .../bookmarks/BookmarkManagerCoordinator.java | 20 -- + .../bookmarks/BookmarkManagerMediator.java | 56 +---- + .../bookmarks/BookmarkManagerViewBinder.java | 11 - + .../bookmarks/BookmarkPromoHeader.java | 230 +----------------- .../ClearBrowsingDataFragment.java | 76 ------ - .../ClearBrowsingDataFragmentBasic.java | 28 +-- + .../ClearBrowsingDataFragmentBasic.java | 27 +- .../contacts_picker/ChromePickerAdapter.java | 67 +---- .../browser/customtabs/CustomTabActivity.java | 7 - .../firstrun/LightweightFirstRunActivity.java | 4 +- .../history/HistoryContentManager.java | 25 +- - .../identity_disc/IdentityDiscController.java | 126 +--------- + .../identity_disc/IdentityDiscController.java | 120 +-------- .../init/ChromeBrowserInitializer.java | 2 - .../init/ProcessInitializationHandler.java | 9 - .../chrome/browser/ntp/RecentTabsManager.java | 129 +--------- @@ -71,13 +76,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/feed/android/BUILD.gn | 1 - .../chrome/browser/feed/FeedFeatures.java | 2 - .../browser/feed/FeedServiceBridge.java | 2 +- + .../SigninBottomSheetCoordinator.java | 28 +-- chrome/browser/feedback/android/BUILD.gn | 1 - .../browser/feedback/FeedbackCollector.java | 9 - .../browser/firstrun/MobileFreProgress.java | 4 +- .../router/discovery/access_code/BUILD.gn | 1 - .../browser/password_manager/android/BUILD.gn | 4 - ...sswordManagerErrorMessageHelperBridge.java | 26 -- - .../PasswordManagerHelper.java | 142 +---------- + .../PasswordManagerHelper.java | 146 +---------- ...StoreAndroidBackendReceiverBridgeImpl.java | 10 - ...swordSyncControllerDelegateBridgeImpl.java | 6 +- ...d_manager_settings_service_android_impl.cc | 59 +---- @@ -91,7 +97,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../SearchResumptionModuleMediator.java | 37 +-- .../SearchResumptionModuleUtils.java | 12 - .../ManageAccountDevicesLinkView.java | 28 +-- - .../SendTabToSelfCoordinator.java | 153 ------------ + .../SendTabToSelfCoordinator.java | 152 ------------ .../account_consistency_mode_manager.cc | 7 +- .../signin/identity_manager_factory.cc | 5 - .../identity_services_provider_android.cc | 13 - @@ -111,7 +117,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/android_chrome_strings.grd | 18 -- .../core/browser/leak_detection_delegate.cc | 2 +- .../core/browser/password_form_manager.cc | 34 +-- - .../browser/password_manager_client_helper.cc | 47 +--- + .../browser/password_manager_client_helper.cc | 45 +--- .../core/browser/sync_credentials_filter.cc | 49 +--- components/signin/features.gni | 4 +- .../primary_account_manager.cc | 17 +- @@ -121,7 +127,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../ProfileOAuth2TokenServiceDelegate.java | 52 ---- .../net/HttpNegotiateAuthenticator.java | 88 +------ .../chromoting/base/OAuthTokenFetcher.java | 2 - - 102 files changed, 102 insertions(+), 2633 deletions(-) + 108 files changed, 110 insertions(+), 2745 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -134,24 +140,15 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java_resources", "//chrome/browser/ui/android/appmenu:java_resources", "//chrome/browser/ui/android/favicon:java_resources", -@@ -337,8 +336,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/settings:java", +@@ -338,7 +337,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/share:java", "//chrome/browser/share/android:java_resources", -- "//chrome/browser/signin/services/android:java", + "//chrome/browser/signin/services/android:java", - "//chrome/browser/sync/android:java", "//chrome/browser/tab:java", "//chrome/browser/tab_group:java", "//chrome/browser/tabmodel:factory_java", -@@ -361,7 +358,6 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/ui/android/page_info:java", - "//chrome/browser/ui/android/quickactionsearchwidget:java", - "//chrome/browser/ui/android/searchactivityutils:java", -- "//chrome/browser/ui/android/signin:java", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", - "//chrome/browser/ui/messages/android:java", -@@ -488,7 +484,6 @@ if (current_toolchain == default_toolchain) { +@@ -488,7 +486,6 @@ if (current_toolchain == default_toolchain) { "//components/strictmode/android:java", "//components/stylus_handwriting/android:java", "//components/subresource_filter/android:java", @@ -159,7 +156,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/sync/protocol:protocol_java", "//components/sync_device_info:sync_device_info_java", "//components/thin_webview:factory_java", -@@ -933,9 +928,6 @@ if (current_toolchain == default_toolchain) { +@@ -933,9 +930,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/segmentation_platform:factory_java", "//chrome/browser/settings:junit_test_support", "//chrome/browser/share:java", @@ -169,7 +166,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java", "//chrome/browser/tab:junit", "//chrome/browser/tab_group:java", -@@ -969,8 +961,6 @@ if (current_toolchain == default_toolchain) { +@@ -969,8 +963,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/omnibox:junit", "//chrome/browser/ui/android/quickactionsearchwidget:java", "//chrome/browser/ui/android/searchactivityutils:java", @@ -178,7 +175,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/android/theme:java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/android/toolbar:junit", -@@ -1062,7 +1052,6 @@ if (current_toolchain == default_toolchain) { +@@ -1062,7 +1054,6 @@ if (current_toolchain == default_toolchain) { "//components/signin/core/browser:signin_enums_java", "//components/signin/public/android:java", "//components/signin/public/android:signin_java_test_support", @@ -186,7 +183,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/sync_device_info:sync_device_info_java", "//components/translate/content/android:junit", "//components/ukm/android:java", -@@ -1499,10 +1488,8 @@ if (current_toolchain == default_toolchain) { +@@ -1499,10 +1490,8 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/settings:test_support_java", "//chrome/browser/share:java", "//chrome/browser/share/android:java_resources", @@ -197,7 +194,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/sync/test/android:test_support_java", "//chrome/browser/tab:critical_persisted_tab_data_flatbuffer_java", "//chrome/browser/tab:critical_persisted_tab_data_proto_java", -@@ -1528,8 +1515,6 @@ if (current_toolchain == default_toolchain) { +@@ -1528,8 +1517,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/ui/android/quickactionsearchwidget:java", "//chrome/browser/ui/android/quickactionsearchwidget:javatests", "//chrome/browser/ui/android/searchactivityutils:java", @@ -206,7 +203,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/android/theme:java", "//chrome/browser/ui/android/toolbar:java", "//chrome/browser/ui/messages/android:java", -@@ -1645,7 +1630,6 @@ if (current_toolchain == default_toolchain) { +@@ -1645,7 +1632,6 @@ if (current_toolchain == default_toolchain) { "//components/signin/public/android:java", "//components/signin/public/android:signin_java_test_support", "//components/site_engagement/content/android:java", @@ -214,7 +211,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/sync/protocol:protocol_java", "//components/sync_device_info:sync_device_info_java", "//components/url_formatter/android:url_formatter_java", -@@ -2337,7 +2321,6 @@ if (current_toolchain == default_toolchain) { +@@ -2337,7 +2323,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/download/android:java", "//chrome/browser/prefetch/android:java", "//chrome/browser/profiles/android:java", @@ -222,7 +219,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/tab:java", "//components/offline_items_collection/core:core_java", "//components/sync/protocol:protocol_java", -@@ -2760,13 +2743,11 @@ if (current_toolchain == default_toolchain) { +@@ -2760,13 +2745,11 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/optimization_guide/android:unit_device_javatests", "//chrome/browser/partnercustomizations:unit_device_javatests", "//chrome/browser/password_edit_dialog/android:unit_device_javatests", @@ -236,7 +233,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/ui/messages/android:unit_device_javatests", "//chrome/browser/video_tutorials/internal:unit_device_javatests", "//components/browser_ui/bottomsheet/android/internal:unit_device_javatests", -@@ -3623,7 +3604,6 @@ generate_jni("chrome_jni_headers") { +@@ -3623,7 +3606,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java", "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java", "java/src/org/chromium/chrome/browser/signin/SigninBridge.java", @@ -1019,10 +1016,38 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv }); } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/creator/CreatorActionDelegateImpl.java +@@ -15,7 +15,6 @@ import org.chromium.chrome.browser.creator.CreatorCoordinator; + import org.chromium.chrome.browser.feed.FeedActionDelegate; + import org.chromium.chrome.browser.feed.signinbottomsheet.SigninBottomSheetCoordinator; + import org.chromium.chrome.browser.profiles.Profile; +-import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; + import org.chromium.chrome.browser.tab.TabLaunchType; + import org.chromium.chrome.browser.tabmodel.document.TabDelegate; + import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -74,8 +73,6 @@ public class CreatorActionDelegateImpl implements FeedActionDelegate { + + @Override + public void showSyncConsentActivity(int signinAccessPoint) { +- SyncConsentActivityLauncherImpl.get().launchActivityIfAllowed( +- mActivityContext, signinAccessPoint); + } + + @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/feed/FeedActionDelegateImpl.java -@@ -137,8 +137,6 @@ public class FeedActionDelegateImpl implements FeedActionDelegate { +@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.ntp.NewTabPageUma; + import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; + import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; + import org.chromium.chrome.browser.profiles.Profile; +-import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; + import org.chromium.chrome.browser.signin.services.SigninMetricsUtils; + import org.chromium.chrome.browser.suggestions.SuggestionsConfig; + import org.chromium.chrome.browser.tab.EmptyTabObserver; +@@ -137,8 +136,6 @@ public class FeedActionDelegateImpl implements FeedActionDelegate { @Override public void showSyncConsentActivity(@SigninAccessPoint int signinAccessPoint) { if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEED_SHOW_SIGN_IN_COMMAND)) { @@ -1079,13 +1104,239 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin } mEditor = new EditorModel(editTitle, mCustomDoneButtonText, footerMessageText, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkListEntry.java +@@ -23,15 +23,12 @@ public final class BookmarkListEntry { + * Specifies the view types that the bookmark delegate screen can contain. + */ + @Retention(RetentionPolicy.SOURCE) +- @IntDef({ViewType.INVALID, ViewType.PERSONALIZED_SIGNIN_PROMO, ViewType.PERSONALIZED_SYNC_PROMO, +- ViewType.SYNC_PROMO, ViewType.FOLDER, ViewType.BOOKMARK, ViewType.DIVIDER, ++ @IntDef({ViewType.INVALID, ++ ViewType.FOLDER, ViewType.BOOKMARK, ViewType.DIVIDER, + ViewType.SECTION_HEADER, ViewType.SHOPPING_POWER_BOOKMARK, ViewType.TAG_CHIP_LIST, + ViewType.SHOPPING_FILTER}) + public @interface ViewType { + int INVALID = -1; +- int PERSONALIZED_SIGNIN_PROMO = 0; +- int PERSONALIZED_SYNC_PROMO = 1; +- int SYNC_PROMO = 2; + int FOLDER = 3; + int BOOKMARK = 4; + int DIVIDER = 5; +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 +@@ -256,11 +256,6 @@ public class BookmarkManagerCoordinator + } + + 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: +@@ -282,13 +277,6 @@ public class BookmarkManagerCoordinator + public void bindView(View view, @ViewType int viewType, PropertyModel model) { + ViewBinder viewBinder = null; + switch (viewType) { +- case ViewType.PERSONALIZED_SIGNIN_PROMO: +- case ViewType.PERSONALIZED_SYNC_PROMO: +- viewBinder = BookmarkManagerViewBinder::bindPersonalizedPromoView; +- break; +- case ViewType.SYNC_PROMO: +- viewBinder = BookmarkManagerViewBinder::bindLegacyPromoView; +- break; + case ViewType.SECTION_HEADER: + viewBinder = BookmarkManagerViewBinder::bindSectionHeaderView; + break; +@@ -313,14 +301,6 @@ public class BookmarkManagerCoordinator + PropertyModelChangeProcessor.create(model, view, viewBinder); + } + +- 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); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +@@ -26,8 +26,6 @@ import org.chromium.chrome.browser.feature_engagement.TrackerFactory; + import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksReader; + import org.chromium.chrome.browser.profiles.Profile; +-import org.chromium.chrome.browser.sync.SyncService; +-import org.chromium.chrome.browser.sync.SyncService.SyncStateChangedListener; + import org.chromium.chrome.browser.ui.native_page.BasicNativePage; + import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState; + import org.chromium.components.bookmarks.BookmarkId; +@@ -236,7 +234,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + mBookmarkModel.removeObserver(mBookmarkModelObserver2); + getSelectionDelegate().removeObserver(mSelectionObserver); + mPromoHeaderManager.destroy(); +- mSyncService.removeSyncStateChangedListener(mSyncStateChangedListener); + } + + @Override +@@ -285,20 +282,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + } + }; + +- private final SyncStateChangedListener mSyncStateChangedListener = +- new SyncStateChangedListener() { +- @Override +- public void syncStateChanged() { +- // If the bookmark model isn't loaded, we will set the top level folders on +- // load (see onBookmarkModelLoaded method below). +- if (!mBookmarkModel.isBookmarkModelLoaded()) { +- return; +- } +- mTopLevelFolders.clear(); +- populateTopLevelFoldersList(); +- } +- }; +- + private final ObserverList mUiObservers = new ObserverList<>(); + private final BookmarkDragStateDelegate mDragStateDelegate = new BookmarkDragStateDelegate(); + private final Context mContext; +@@ -320,7 +303,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + private final ObservableSupplierImpl mBackPressStateSupplier; + private final List mTopLevelFolders = new ArrayList<>(); + private final Profile mProfile; +- private final SyncService mSyncService; + private final BookmarkPromoHeader mPromoHeaderManager; + private final BookmarkUndoController mBookmarkUndoController; + +@@ -360,8 +342,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + mIsIncognito = isIncognito; + mBackPressStateSupplier = backPressStateSupplier; + mProfile = profile; +- mSyncService = SyncService.get(); +- mSyncService.addSyncStateChangedListener(mSyncStateChangedListener); + // Notify the view of changes to the elements list as the promo might be showing. + Runnable promoHeaderChangeAction = () -> updateHeader(true); + mPromoHeaderManager = new BookmarkPromoHeader(mContext, mProfile, promoHeaderChangeAction); +@@ -494,10 +474,7 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + public PropertyModel buildModel(ViewHolder holder, int position) { + PropertyModel model = new PropertyModel(BookmarkManagerProperties.ALL_KEYS); + final @ViewType int viewType = holder.getItemViewType(); +- if (viewType == ViewType.PERSONALIZED_SIGNIN_PROMO +- || viewType == ViewType.PERSONALIZED_SYNC_PROMO) { +- model.set(BookmarkManagerProperties.BOOKMARK_PROMO_HEADER, mPromoHeaderManager); +- } else if (viewType == ViewType.SECTION_HEADER) { ++ if (viewType == ViewType.SECTION_HEADER) { + model.set(BookmarkManagerProperties.BOOKMARK_LIST_ENTRY, getItemByPosition(position)); + } else if (BookmarkListEntry.isBookmarkEntry(viewType)) { + BookmarkId id = getIdByPosition(position); +@@ -519,11 +496,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + @Override + public void recycleView(View view, @ViewType int viewType) { + switch (viewType) { +- case ViewType.PERSONALIZED_SIGNIN_PROMO: +- // fall through +- case ViewType.PERSONALIZED_SYNC_PROMO: +- mPromoHeaderManager.detachPersonalizePromoView(); +- break; + default: + // Other view holders don't have special recycling code. + } +@@ -573,7 +545,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + + @Override + public void simulateSignInForTesting() { +- mSyncStateChangedListener.syncStateChanged(); + mBookmarkUiObserver.onFolderStateSet(mCurrentFolder); + } + +@@ -857,9 +828,6 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + getElements().clear(); + + // Restore the header, if it exists, then update it. +- if (hasPromoHeader()) { +- getElements().add(BookmarkListEntry.createSyncPromoHeader(mPromoHeaderType)); +- } + + updateHeader(false); + if (BookmarkId.SHOPPING_FOLDER.equals(mCurrentFolder)) { +@@ -917,28 +885,12 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + } else if (currentUiState == BookmarkUiMode.SEARCHING) { + mPromoHeaderType = ViewType.INVALID; + } else { +- switch (mPromoHeaderManager.getPromoState()) { +- case SyncPromoState.NO_PROMO: +- mPromoHeaderType = ViewType.INVALID; +- break; +- case SyncPromoState.PROMO_FOR_SIGNED_OUT_STATE: +- mPromoHeaderType = ViewType.PERSONALIZED_SIGNIN_PROMO; +- break; +- case SyncPromoState.PROMO_FOR_SIGNED_IN_STATE: +- mPromoHeaderType = ViewType.PERSONALIZED_SYNC_PROMO; +- break; +- case SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE: +- mPromoHeaderType = ViewType.SYNC_PROMO; +- break; +- default: +- assert false : "Unexpected value for promo state!"; +- } ++ mPromoHeaderType = ViewType.INVALID; + } + + boolean willShowPromo = hasPromoHeader(); + if (!wasShowingPromo && willShowPromo) { + // A null element at the 0th index represents a promo header. +- getElements().add(0, BookmarkListEntry.createSyncPromoHeader(mPromoHeaderType)); + if (shouldNotify) mBookmarkItemsAdapter.notifyItemInserted(0); + } else if (wasShowingPromo && willShowPromo) { + if (shouldNotify) mBookmarkItemsAdapter.notifyItemChanged(0); +@@ -1028,8 +980,4 @@ class BookmarkManagerMediator implements BookmarkDelegate, TestingDelegate, + BookmarkUndoController getUndoControllerForTesting() { + return mBookmarkUndoController; + } +- +- SyncStateChangedListener getSyncStateChangedListenerForTesting() { +- return mSyncStateChangedListener; +- } + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java +@@ -20,17 +20,6 @@ import org.chromium.ui.modelutil.PropertyModel; + + /** Responsible for binding views to their properties. */ + class BookmarkManagerViewBinder { +- static void bindPersonalizedPromoView(PropertyModel model, View view, PropertyKey key) { +- if (key == BookmarkManagerProperties.BOOKMARK_PROMO_HEADER) { +- PersonalizedSigninPromoView promoView = +- view.findViewById(org.chromium.chrome.R.id.signin_promo_view_container); +- model.get(BookmarkManagerProperties.BOOKMARK_PROMO_HEADER) +- .setUpSyncPromoView(promoView); +- } +- } +- +- static void bindLegacyPromoView(PropertyModel model, View view, PropertyKey key) {} +- + static void bindSectionHeaderView(PropertyModel model, View view, PropertyKey key) { + if (key == BookmarkManagerProperties.BOOKMARK_LIST_ENTRY) { + BookmarkListEntry bookmarkListEntry = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java -@@ -5,245 +5,19 @@ +@@ -4,246 +4,26 @@ + package org.chromium.chrome.browser.bookmarks; - import android.content.Context; +-import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; @@ -1096,7 +1347,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm -import org.chromium.chrome.R; -import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -import org.chromium.chrome.browser.preferences.SharedPreferencesManager; --import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.signin.LegacySyncPromoView; -import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; -import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; @@ -1112,6 +1363,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm -import org.chromium.components.signin.AccountsChangeObserver; -import org.chromium.components.signin.identitymanager.ConsentLevel; -import org.chromium.components.signin.metrics.SigninAccessPoint; ++ ++import android.content.Context; /** * Class that manages all the logic and UI behind the signin promo header in the bookmark @@ -1141,7 +1394,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm * Initializes the class. Note that this will start listening to signin related events and * update itself if needed. */ - BookmarkPromoHeader(Context context, Profile profile, Runnable promoHeaderChangeAction) { +- BookmarkPromoHeader(Context context, Profile profile, Runnable promoHeaderChangeAction) { - mContext = context; - mProfile = profile; - mPromoHeaderChangeAction = promoHeaderChangeAction; @@ -1166,10 +1419,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm - } - updatePromoState(); - } -- -- /** -- * Clean ups the class. Must be called once done using this class. -- */ ++ BookmarkPromoHeader(Context context, Profile profile, Runnable promoHeaderChangeAction) {} + + /** + * Clean ups the class. Must be called once done using this class. + */ - void destroy() { - if (mSyncService != null) mSyncService.removeSyncStateChangedListener(this); - @@ -1327,7 +1581,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm - @VisibleForTesting - public static void forcePromoStateForTesting(@Nullable @SyncPromoState Integer promoState) { - sPromoStateForTests = promoState; - } +- } ++ void destroy() {} } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java @@ -1487,7 +1742,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C import org.chromium.components.sync.ModelType; import org.chromium.ui.text.NoUnderlineClickableSpan; import org.chromium.ui.text.SpanApplier; -@@ -89,28 +85,11 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { +@@ -89,28 +85,12 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { new TabDelegate(false /* incognito */) .launchUrl(UrlConstants.MY_ACTIVITY_URL_IN_CBD, TabLaunchType.FROM_CHROME_UI); }); @@ -1510,13 +1765,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { super.onCreatePreferences(savedInstanceState, rootKey); -- Profile profile = getProfile(); + Profile profile = getProfile(); - IdentityManager identityManager = - IdentityServicesProvider.get().getIdentityManager(profile); ClickableSpansTextMessagePreference googleDataTextPref = (ClickableSpansTextMessagePreference) findPreference( ClearBrowsingDataFragment.PREF_GOOGLE_DATA_TEXT); -@@ -121,8 +100,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { +@@ -121,8 +101,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { boolean isDefaultSearchEngineGoogle = templateUrlService.isDefaultSearchEngineGoogle(); // Google-related links to delete search history and other browsing activity. @@ -1526,7 +1781,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C // One of two cases: // 1. The default search engine is disabled. // 2. The user is not signed into Chrome. -@@ -225,9 +203,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { +@@ -225,9 +204,7 @@ public class ClearBrowsingDataFragmentBasic extends ClearBrowsingDataFragment { } private boolean isHistorySyncEnabled() { @@ -1785,7 +2040,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I import org.chromium.chrome.browser.signin.services.SigninManager; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tasks.ReturnToChromeUtil; -@@ -44,34 +41,21 @@ import org.chromium.components.feature_engagement.EventConstants; +@@ -44,29 +41,19 @@ import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.feature_engagement.FeatureConstants; import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.signin.base.CoreAccountInfo; @@ -1813,17 +2068,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I - // ProfileDataCache facilitates retrieving profile picture. - private ProfileDataCache mProfileDataCache; - -- // Whether the identity disc is visible. -- private boolean mIsIdentityDiscShown; -- -- private ButtonDataImpl mButtonData; -- private ObserverList mObservers = new ObserverList<>(); -+ // Identity disc visibility state. -+ @IdentityDiscState - private boolean mNativeIsInitialized; + // Whether the identity disc is visible. + private boolean mIsIdentityDiscShown; - /** -@@ -193,22 +177,14 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -193,22 +180,13 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * IdentityDiscController for profile data updates. */ private void ensureProfileDataCache(boolean isIdentityDiscShown) { @@ -1843,12 +2091,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I - return AppCompatResources.getDrawable(mContext, R.drawable.account_circle); - } - return mProfileDataCache.getProfileDataOrDefault(email).getImage(); -+ assert mState != IdentityDiscState.NONE; + return null; } /** -@@ -216,11 +192,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -216,11 +194,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * when sign-in state changes. */ private void resetIdentityDiscCache() { @@ -1860,7 +2107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } private void notifyObservers(boolean hint) { -@@ -229,47 +200,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -229,47 +202,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa } } @@ -1908,7 +2155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I /** * Call to tear down dependencies. */ -@@ -280,16 +210,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -280,16 +212,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa mActivityLifecycleDispatcher = null; } @@ -1925,7 +2172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I if (mNativeIsInitialized) { mProfileSupplier.removeObserver(mProfileSupplierObserver); } -@@ -312,9 +232,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -312,9 +234,7 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa * @return account info for the current profile. Returns null for OTR profile. */ private CoreAccountInfo getSignedInAccountInfo() { @@ -1936,7 +2183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } /** -@@ -322,17 +240,6 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -322,17 +242,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) { @@ -1954,7 +2201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } private String getContentDescription(@Nullable String email) { -@@ -344,16 +251,8 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -344,16 +253,8 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa return mContext.getString(R.string.accessibility_toolbar_btn_signed_out_identity_disc); } @@ -1972,7 +2219,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } @VisibleForTesting -@@ -363,15 +262,8 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa +@@ -363,20 +264,13 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa } recordIdentityDiscUsed(); @@ -1990,6 +2237,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I } @VisibleForTesting + boolean isProfileDataCacheEmpty() { +- return mProfileDataCache == null; ++ return true; + } + + 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 @@ -3097,6 +3350,65 @@ diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/fe } /** Observes whether or not the Feed stream contains unread content */ +diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java +--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java ++++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/signinbottomsheet/SigninBottomSheetCoordinator.java +@@ -13,7 +13,6 @@ import org.chromium.base.Callback; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; +-import org.chromium.chrome.browser.signin.services.SigninManager; + import org.chromium.chrome.browser.ui.signin.R; + import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator; + import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator.EntryPoint; +@@ -31,7 +30,6 @@ public class SigninBottomSheetCoordinator implements AccountPickerDelegate { + private final Profile mProfile; + private final WindowAndroid mWindowAndroid; + private final BottomSheetController mController; +- private final SigninManager mSigninManager; + private boolean mSetTestToast; + private AccountPickerBottomSheetCoordinator mAccountPickerBottomSheetCoordinator; + +@@ -40,7 +38,6 @@ public class SigninBottomSheetCoordinator implements AccountPickerDelegate { + mWindowAndroid = windowAndroid; + mController = controller; + mProfile = profile; +- mSigninManager = IdentityServicesProvider.get().getSigninManager(mProfile); + mSetTestToast = false; + } + +@@ -52,30 +49,7 @@ public class SigninBottomSheetCoordinator implements AccountPickerDelegate { + String accountEmail, Callback onSignInErrorCallback) { + Account account = AccountUtils.createAccountFromName(accountEmail); + AccountInfoServiceProvider.get().getAccountInfoByEmail(accountEmail).then(accountInfo -> { +- if (mSigninManager.isSigninAllowed()) { +- mSigninManager.signin(account, new SigninManager.SignInCallback() { +- @Override +- public void onSignInComplete() { +- RecordHistogram.recordBooleanHistogram( +- "ContentSuggestions.Feed.SignInFromFeedAction.SignInSuccessful", +- true); +- mController.hideContent(mController.getCurrentSheetContent(), true); +- } +- +- @Override +- public void onSignInAborted() { +- RecordHistogram.recordBooleanHistogram( +- "ContentSuggestions.Feed.SignInFromFeedAction.SignInSuccessful", +- false); +- // onSignInErrorCallback is called by the WebSigninBridge which is not +- // implemented in this signin flow as we do not need to wait for cookies to +- // propagate before proceeding with the Feed refresh. Instead of calling +- // AccountPickerBottomSheetMediator.onSigninFailed() from the signin bridge +- // we directly perform the creation of the "try again" bottom sheet view: +- mAccountPickerBottomSheetCoordinator.setTryAgainBottomSheetView(); +- } +- }); +- } else { ++ { + makeSigninNotAllowedToast(); + mController.hideContent(mController.getCurrentSheetContent(), true); + } diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/android/BUILD.gn --- a/chrome/browser/feedback/android/BUILD.gn +++ b/chrome/browser/feedback/android/BUILD.gn @@ -3281,7 +3593,18 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom if (managePasskeys && canUseAccountSettings()) { // Passkey management has been selected but UPM is not available, possibly because // password sync is not turned on. Attempt to use an AccountSettings intent to show -@@ -204,13 +189,7 @@ public class PasswordManagerHelper { +@@ -177,9 +162,7 @@ public class PasswordManagerHelper { + return; + } + +- String accountName = (syncService != null) +- ? CoreAccountInfo.getEmailFrom(syncService.getAccountInfo()) +- : ""; ++ String accountName = ""; + credentialManagerLauncher.getAccountSettingsIntent(accountName, context::startActivity); + return; + } +@@ -204,13 +187,7 @@ public class PasswordManagerHelper { * @return True if Unified Password Manager can be used, false otherwise. */ public static boolean canUseUpm() { @@ -3296,7 +3619,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } /** -@@ -240,19 +219,7 @@ public class PasswordManagerHelper { +@@ -240,19 +217,7 @@ public class PasswordManagerHelper { * loading dialog. */ public static void showPasswordCheckup(Context context, @PasswordCheckReferrer int referrer, @@ -3316,7 +3639,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } /** -@@ -332,51 +299,6 @@ public class PasswordManagerHelper { +@@ -332,51 +297,6 @@ public class PasswordManagerHelper { }); } @@ -3368,7 +3691,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom public static boolean usesUnifiedPasswordManagerUI() { if (!ChromeFeatureList.isEnabled(UNIFIED_PASSWORD_MANAGER_ANDROID)) return false; @UpmExperimentVariation -@@ -417,52 +339,12 @@ public class PasswordManagerHelper { +@@ -417,52 +337,12 @@ public class PasswordManagerHelper { } public static void launchGmsUpdate(Context context) { @@ -3422,7 +3745,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom } @VisibleForTesting -@@ -517,24 +399,6 @@ public class PasswordManagerHelper { +@@ -517,24 +397,6 @@ public class PasswordManagerHelper { // API call level. RecordHistogram.recordEnumeratedHistogram(kGetIntentErrorHistogram, CredentialManagerError.API_ERROR, CredentialManagerError.COUNT); @@ -3923,7 +4246,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/send_tab_to_self/SendTabToSelfCoordinator.java -@@ -12,18 +12,9 @@ import androidx.annotation.StringRes; +@@ -12,18 +12,10 @@ import androidx.annotation.StringRes; import org.chromium.base.Callback; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.profiles.Profile; @@ -3933,7 +4256,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s import org.chromium.chrome.browser.ui.signin.R; -import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator; -import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetCoordinator.EntryPoint; --import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetStrings; + import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerBottomSheetStrings; -import org.chromium.chrome.browser.ui.signin.account_picker.AccountPickerDelegate; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.EmptyBottomSheetObserver; @@ -3942,7 +4265,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s import org.chromium.ui.base.WindowAndroid; import java.util.List; -@@ -33,108 +24,6 @@ import java.util.Optional; +@@ -33,108 +25,6 @@ import java.util.Optional; * Coordinator for displaying the send tab to self feature. */ public class SendTabToSelfCoordinator { @@ -4051,7 +4374,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s private final Context mContext; private final WindowAndroid mWindowAndroid; private final String mUrl; -@@ -153,51 +42,9 @@ public class SendTabToSelfCoordinator { +@@ -153,51 +43,9 @@ public class SendTabToSelfCoordinator { } public void show() { @@ -4882,7 +5205,7 @@ diff --git a/components/password_manager/core/browser/password_form_manager.cc b diff --git a/components/password_manager/core/browser/password_manager_client_helper.cc b/components/password_manager/core/browser/password_manager_client_helper.cc --- a/components/password_manager/core/browser/password_manager_client_helper.cc +++ b/components/password_manager/core/browser/password_manager_client_helper.cc -@@ -14,31 +14,8 @@ +@@ -14,31 +14,10 @@ #include "components/password_manager/core/browser/password_sync_util.h" #include "components/password_manager/core/common/password_manager_pref_names.h" #include "components/prefs/pref_service.h" @@ -4890,8 +5213,8 @@ diff --git a/components/password_manager/core/browser/password_manager_client_he -#include "components/signin/public/identity_manager/identity_manager.h" #include "google_apis/gaia/gaia_auth_util.h" --namespace password_manager { -- + namespace password_manager { + -namespace { - -#if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID) @@ -4914,7 +5237,7 @@ diff --git a/components/password_manager/core/browser/password_manager_client_he PasswordManagerClientHelper::PasswordManagerClientHelper( PasswordManagerClient* delegate) : delegate_(delegate) { -@@ -108,29 +85,7 @@ bool PasswordManagerClientHelper::ShouldPromptToEnableAutoSignIn() const { +@@ -108,29 +87,7 @@ bool PasswordManagerClientHelper::ShouldPromptToEnableAutoSignIn() const { bool PasswordManagerClientHelper::ShouldPromptToMovePasswordToAccount( const PasswordFormManagerForUI& submitted_manager) const { #if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 69463d85..bdb5635a 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/workers/main_thread_worklet_test.cc | 1 + .../workers/shared_worker_global_scope.cc | 7 ++++ .../core/workers/shared_worker_global_scope.h | 1 + - .../threaded_worklet_messaging_proxy.cc | 1 + + .../threaded_worklet_messaging_proxy.cc | 2 ++ .../core/workers/threaded_worklet_test.cc | 1 + .../workers/worker_classic_script_loader.cc | 5 ++- .../workers/worker_classic_script_loader.h | 6 ++++ @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 36 files changed, 188 insertions(+), 25 deletions(-) + 36 files changed, 189 insertions(+), 25 deletions(-) diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc @@ -500,9 +500,9 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.c + // place so that this is shareable out of worker code. + response_address_space_ = network::mojom::IPAddressSpace::kPublic; + if (network_utils::IsReservedIPAddress(script_url_.Host())) -+ response_address_space_ = network::mojom::IPAddressSpace::kPrivate; -+ if (SecurityOrigin::Create(script_url_)->IsLocalhost()) + response_address_space_ = network::mojom::IPAddressSpace::kLocal; ++ if (SecurityOrigin::Create(script_url_)->IsLocalhost()) ++ response_address_space_ = network::mojom::IPAddressSpace::kLoopback; } ContentSecurityPolicyResponseHeaders @@ -598,7 +598,15 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc --- a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc -@@ -117,6 +117,7 @@ void ThreadedWorkletMessagingProxy::Initialize( +@@ -82,6 +82,7 @@ void ThreadedWorkletMessagingProxy::Initialize( + /*starter_https_state=*/HttpsState::kNone, + /*worker_clients=*/nullptr, + /*content_settings_client=*/nullptr, ++ /*response_address_space*/network::mojom::IPAddressSpace::kUnknown, + /*inherited_trial_features=*/nullptr, + /*parent_devtools_token=*/base::UnguessableToken::Create(), + /*worker_settings=*/nullptr, +@@ -117,6 +118,7 @@ void ThreadedWorkletMessagingProxy::Initialize( window->GetReferrerPolicy(), window->GetSecurityOrigin(), window->IsSecureContext(), window->GetHttpsState(), worker_clients, frame_client->CreateWorkerContentSettingsClient(), diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index be05b4c4..660e7400 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -6,14 +6,266 @@ Allow toggling automatic updates License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../firstrun/ChildAccountStatusSupplier.java | 14 +---- - .../browser/firstrun/FirstRunActivity.java | 18 ------- - .../firstrun/FirstRunActivityBase.java | 6 +-- - .../firstrun/FirstRunFlowSequencer.java | 52 +++++-------------- - .../browser/firstrun/FirstRunUtils.java | 16 ++---- - .../strings/android_chrome_strings.grd | 24 ++++++++- - 6 files changed, 40 insertions(+), 90 deletions(-) + chrome/android/chrome_java_resources.gni | 1 + + chrome/android/chrome_java_sources.gni | 2 + + .../android/java/res/layout/fre_tosanduma.xml | 160 +++++++++ + chrome/android/java/res/values/dimens.xml | 10 + + chrome/android/java/res/values/styles.xml | 24 ++ + .../firstrun/ChildAccountStatusSupplier.java | 14 +- + .../browser/firstrun/FirstRunActivity.java | 21 +- + .../firstrun/FirstRunActivityBase.java | 6 +- + .../firstrun/FirstRunFlowSequencer.java | 52 +-- + .../browser/firstrun/FirstRunUtils.java | 16 +- + .../firstrun/ToSAndUMAFirstRunFragment.java | 336 ++++++++++++++++++ + .../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++ + .../strings/android_chrome_strings.grd | 24 +- + 13 files changed, 911 insertions(+), 91 deletions(-) + create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java +diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni +--- a/chrome/android/chrome_java_resources.gni ++++ b/chrome/android/chrome_java_resources.gni +@@ -511,6 +511,7 @@ chrome_java_resources = [ + "java/res/layout/find_in_page.xml", + "java/res/layout/find_toolbar.xml", + "java/res/layout/fre_tos_privacy_disclaimer.xml", ++ "java/res/layout/fre_tosanduma.xml", + "java/res/layout/fullscreen_notification.xml", + "java/res/layout/grid_tab_switcher_view_holder.xml", + "java/res/layout/history_clear_browsing_data_header.xml", +diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni +--- a/chrome/android/chrome_java_sources.gni ++++ b/chrome/android/chrome_java_sources.gni +@@ -567,6 +567,8 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", + "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java", + "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", ++ "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java", ++ "java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java", + "java/src/org/chromium/chrome/browser/flags/BadFlagsSnackbarManager.java", + "java/src/org/chromium/chrome/browser/fonts/FontPreloader.java", + "java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java", +diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/res/layout/fre_tosanduma.xml +@@ -0,0 +1,160 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml +--- a/chrome/android/java/res/values/dimens.xml ++++ b/chrome/android/java/res/values/dimens.xml +@@ -114,6 +114,16 @@ found in the LICENSE file. + 48dp + 18dp + 8dp ++ 36dp ++ 32dp ++ 24dp ++ 16dp ++ 12dp ++ 24dp ++ 16dp ++ 24dp ++ 72dp ++ 16dp + + + ++ ++ ++ ++ ++ ++ ++ ++ + +