From 86bb2672a7094d29145a967ae649bca28ef91b30 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sat, 2 Dec 2023 22:58:24 +0100 Subject: [PATCH] v120 final patches --- .../patches/00Add-cromite-flags-support.patch | 55 ++++--- .../00Add-option-to-disable-snapshots.patch | 12 +- build/patches/00Fix-chromium-build-bugs.patch | 17 ++- ...ning-all-cookies-by-top-frame-domain.patch | 9 +- .../Add-an-always-incognito-mode.patch | 8 +- .../Add-bookmark-import-export-actions.patch | 19 +-- ...Add-lifetime-options-for-permissions.patch | 45 +++--- .../Add-option-to-force-tablet-UI.patch | 10 +- ...-to-not-persist-tabs-across-sessions.patch | 10 +- ...ow-building-without-supervised-users.patch | 25 +++- build/patches/Bromite-auto-updater.patch | 2 +- .../Bromite-subresource-adblocker.patch | 4 +- ...ctionary-suggestions-for-the-Omnibox.patch | 13 +- ...ble-Accessibility-service-by-default.patch | 2 +- .../patches/Disable-all-predictors-code.patch | 98 ++++++++++++- .../Disable-conversion-measurement-api.patch | 2 +- .../Experimental-user-scripts-support.patch | 22 ++- ...story-number-of-days-privacy-setting.patch | 8 +- .../Move-navigation-bar-to-bottom.patch | 135 +++++++++++++----- ...nt-settings-back-to-privacy-settings.patch | 21 +-- .../patches/Override-Navigator-Language.patch | 2 +- ...referrals-in-cross-origin-navigation.patch | 6 +- .../Remove-binary-blob-integrations.patch | 14 +- ...Remove-voice-recognition-integration.patch | 88 +++++++----- .../Restore-Simplified-NTP-launch.patch | 30 ++-- ...l-of-execution-context-address-space.patch | 13 +- build/patches/User-agent-customization.patch | 30 ++-- build/patches/bromite-build-utils.patch | 10 +- .../eyeo-beta-118.0.5993.48-android_api.patch | 16 +-- ...eta-118.0.5993.48-chrome_integration.patch | 22 ++- 30 files changed, 489 insertions(+), 259 deletions(-) diff --git a/build/patches/00Add-cromite-flags-support.patch b/build/patches/00Add-cromite-flags-support.patch index 8eabe014d..d1984d8cc 100644 --- a/build/patches/00Add-cromite-flags-support.patch +++ b/build/patches/00Add-cromite-flags-support.patch @@ -28,8 +28,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/common/chrome_features.cc | 1 + .../content_settings/core/common/features.cc | 1 + components/flags_ui/flags_state.cc | 21 +++ - components/flags_ui/resources/app.html | 33 +++- - components/flags_ui/resources/app.ts | 37 ++++- + components/flags_ui/resources/app.html | 42 ++++- + components/flags_ui/resources/app.ts | 41 ++++- components/flags_ui/resources/experiment.html | 7 +- components/flags_ui/resources/experiment.ts | 16 ++ .../flags_ui/resources/flags_browser_proxy.ts | 5 + @@ -70,7 +70,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html services/network/public/cpp/features.h | 1 + third_party/blink/common/features.cc | 1 + third_party/blink/public/common/features.h | 1 + - 56 files changed, 475 insertions(+), 13 deletions(-) + 56 files changed, 488 insertions(+), 13 deletions(-) create mode 100755 cromite_flags/BUILD.gn create mode 100755 cromite_flags/chrome/browser/about_flags_cc/placeholder.txt create mode 100755 cromite_flags/chrome/browser/browser_features_cc/placeholder.txt @@ -483,10 +483,13 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat diff --git a/components/flags_ui/resources/app.html b/components/flags_ui/resources/app.html --- a/components/flags_ui/resources/app.html +++ b/components/flags_ui/resources/app.html -@@ -473,6 +473,24 @@ +@@ -473,7 +473,32 @@ padding-top: 1.5rem; } } ++ #appcontainer { ++ overflow-y: scroll; ++ } + .cromite #header { + display: none; + } @@ -504,11 +507,16 @@ diff --git a/components/flags_ui/resources/app.html b/components/flags_ui/resour + } + .cromite #tab-content-cromite { + display: block !important; ++ } ++ .cromite .section-header-title { ++ display: none; + } ++
\ No newline at end of file +
++ ++ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts --- a/components/flags_ui/resources/app.ts +++ b/components/flags_ui/resources/app.ts -@@ -204,6 +204,10 @@ export class FlagsAppElement extends CustomElement { +@@ -193,6 +193,7 @@ export class FlagsAppElement extends CustomElement { + return getTemplate(); + } + ++ private onlyCromiteFlags: boolean = false; + private announceStatusDelayMs: number = 100; + private featuresResolver: PromiseResolver = new PromiseResolver(); + private flagSearch: FlagSearch = new FlagSearch(this); +@@ -204,6 +205,10 @@ export class FlagsAppElement extends CustomElement { // tabs: Tab[] = [ @@ -556,20 +574,23 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource { tabEl: this.getRequiredElement('#tab-available'), panelEl: this.getRequiredElement('#tab-content-available'), -@@ -217,6 +221,8 @@ export class FlagsAppElement extends CustomElement { +@@ -217,6 +222,11 @@ export class FlagsAppElement extends CustomElement { ]; connectedCallback() { -+ if (location.pathname == '/cromite') -+ document.body.classList.add('cromite'); ++ if (location.pathname == '/cromite') { ++ this.onlyCromiteFlags = true; ++ this.getRequiredElement("#appcontainer").classList.add('cromite'); ++ document.title = "Cromite Flags List"; ++ } // Get and display the data upon loading. this.requestExperimentalFeaturesData(); // There is no restart button on iOS. -@@ -277,20 +283,29 @@ export class FlagsAppElement extends CustomElement { +@@ -277,20 +287,29 @@ export class FlagsAppElement extends CustomElement { const defaultFeatures: Feature[] = []; const nonDefaultFeatures: Feature[] = []; -+ if (document.body.classList.contains("cromite")) { ++ if (this.onlyCromiteFlags) { + experimentalFeaturesData.supportedFeatures = + experimentalFeaturesData.supportedFeatures.filter(item => item.is_new); + } @@ -582,12 +603,12 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource nonDefaultFeatures, - this.getRequiredElement('#non-default-experiments')); + this.getRequiredElement('#non-default-experiments'), -+ this.getRequiredElement('non-default-cromite-experiments'), false); ++ this.getRequiredElement('#non-default-cromite-experiments'), false); this.renderExperiments( - defaultFeatures, this.getRequiredElement('#default-experiments')); + defaultFeatures, this.getRequiredElement('#default-experiments'), -+ this.getRequiredElement('cromite-experiments'), false); ++ this.getRequiredElement('#cromite-experiments'), false); // this.renderExperiments( @@ -598,7 +619,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource // this.showRestartToast(experimentalFeaturesData.needsRestart); -@@ -401,16 +416,23 @@ export class FlagsAppElement extends CustomElement { +@@ -401,16 +420,23 @@ export class FlagsAppElement extends CustomElement { } private renderExperiments( @@ -623,7 +644,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource if (select) { experiment.addEventListener('select-change', e => { e.preventDefault(); -@@ -434,9 +456,14 @@ export class FlagsAppElement extends CustomElement { +@@ -434,9 +460,14 @@ export class FlagsAppElement extends CustomElement { this.showRestartToast(true); }); } diff --git a/build/patches/00Add-option-to-disable-snapshots.patch b/build/patches/00Add-option-to-disable-snapshots.patch index 8650fd90a..9336c4b5c 100644 --- a/build/patches/00Add-option-to-disable-snapshots.patch +++ b/build/patches/00Add-option-to-disable-snapshots.patch @@ -120,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -65,6 +65,11 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -66,6 +66,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import java.util.ArrayList; import java.util.List; -@@ -72,7 +77,15 @@ import java.util.List; +@@ -73,7 +78,15 @@ import java.util.List; * Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings @@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -135,6 +148,21 @@ public class PrivacySettings +@@ -136,6 +149,21 @@ public class PrivacySettings } } @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener(preference -> { -@@ -292,6 +320,7 @@ public class PrivacySettings +@@ -293,6 +321,7 @@ public class PrivacySettings public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -317,6 +346,13 @@ public class PrivacySettings +@@ -318,6 +347,13 @@ public class PrivacySettings SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -193,7 +193,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -359,6 +395,10 @@ public class PrivacySettings +@@ -360,6 +396,10 @@ public class PrivacySettings : R.string.text_off); } diff --git a/build/patches/00Fix-chromium-build-bugs.patch b/build/patches/00Fix-chromium-build-bugs.patch index d36789dba..5577ae094 100644 --- a/build/patches/00Fix-chromium-build-bugs.patch +++ b/build/patches/00Fix-chromium-build-bugs.patch @@ -8,13 +8,14 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 BUILD.gn | 1 - .../navigation_predictor_metrics_document_data.h | 2 ++ chrome/browser/safe_browsing/BUILD.gn | 1 + + .../omnibox/browser/autocomplete_classifier.cc | 4 ++-- components/omnibox/browser/omnibox_field_trial.cc | 4 ++-- .../phishing_classifier/phishing_image_embedder.cc | 14 +++----------- content/browser/browser_interface_binders.cc | 1 + crypto/BUILD.gn | 3 +++ net/BUILD.gn | 1 + third_party/libevent/BUILD.gn | 2 ++ - 9 files changed, 15 insertions(+), 14 deletions(-) + 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn @@ -50,6 +51,20 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin ] if (safe_browsing_mode == 1) { # "Safe Browsing Full" files in addition to the "basic" ones to use for +diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc +--- a/components/omnibox/browser/autocomplete_classifier.cc ++++ b/components/omnibox/browser/autocomplete_classifier.cc +@@ -95,8 +95,8 @@ void AutocompleteClassifier::Classify( + metrics::OmniboxEventProto::PageClassification page_classification, + AutocompleteMatch* match, + GURL* alternate_nav_url) { +- TRACE_EVENT1("omnibox", "AutocompleteClassifier::Classify", "text", +- base::UTF16ToUTF8(text)); ++ // TRACE_EVENT1("omnibox", "AutocompleteClassifier::Classify", "text", ++ // base::UTF16ToUTF8(text)); + DCHECK(!inside_classify_); + base::AutoReset reset(&inside_classify_, true); + AutocompleteInput input(text, page_classification, *scheme_classifier_); diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc diff --git a/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch index 30a2bd6eb..3213cc13d 100644 --- a/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch @@ -20,12 +20,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html net/cookies/parsed_cookie.h | 7 ++++++- net/extras/sqlite/sqlite_persistent_cookie_store.cc | 10 ++++++++++ net/url_request/url_request_http_job.cc | 2 +- - services/network/restricted_cookie_manager.cc | 3 +++ + services/network/restricted_cookie_manager.cc | 6 ++++++ .../renderer/modules/cookie_store/cookie_init.idl | 2 +- .../renderer/modules/cookie_store/cookie_store.cc | 12 ++++++++++++ .../cookie_store/cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + - 16 files changed, 51 insertions(+), 21 deletions(-) + 16 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -194,11 +194,14 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc -@@ -933,6 +933,9 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -933,6 +933,12 @@ void RestrictedCookieManager::SetCookieFromString( std::move(callback).Run(); + // https://bugs.chromium.org/p/chromium/issues/detail?id=911299 ++ bool site_for_cookies_ok = ++ BoundSiteForCookies().IsEquivalent(site_for_cookies); ++ bool top_frame_origin_ok = top_frame_origin == BoundTopFrameOrigin(); + if (!site_for_cookies_ok || !top_frame_origin_ok) return; + net::CookieInclusionStatus status; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index d0deb2f11..f32fbea59 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -169,18 +169,18 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -67,6 +67,11 @@ found in the LICENSE file. +@@ -66,6 +66,11 @@ found in the LICENSE file. + android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> - -+ - > createPairsList(int[] left, int[] right) { List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -1024,6 +1299,10 @@ class BookmarkBridge { +@@ -1024,6 +1300,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 43595bf5b..c1233c2ba 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -56,7 +56,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../one_time_permissions_tracker.cc | 33 +++++++- .../one_time_permissions_tracker.h | 5 +- .../one_time_permissions_tracker_factory.cc | 2 +- - .../embedded_permission_prompt_ask_view.cc | 2 +- + .../permissions/embedded_permission_prompt.cc | 2 +- .../permission_prompt_bubble_base_view.cc | 2 +- .../browser/content_autofill_driver.cc | 64 ++++++++------- .../content/browser/content_autofill_driver.h | 2 +- @@ -67,7 +67,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/website_preference_bridge.cc | 7 +- .../strings/android/browser_ui_strings.grd | 5 ++ components/content_settings/android/BUILD.gn | 1 + - .../core/browser/content_settings_utils.cc | 36 +++++++++ + .../core/browser/content_settings_utils.cc | 36 ++++++++ .../core/browser/content_settings_utils.h | 6 ++ .../common/content_settings_constraints.h | 11 +++ .../page_info/PageInfoController.java | 4 +- @@ -76,7 +76,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/page_info/page_info.cc | 2 + components/page_info/page_info.h | 1 + .../permissions/PermissionDialogDelegate.java | 13 +++ - .../PermissionDialogModelFactory.java | 81 ++++++++++++++++++- + .../PermissionDialogModelFactory.java | 82 ++++++++++++++++++- .../permission_dialog_delegate.cc | 19 +++++ .../permission_dialog_delegate.h | 1 + .../permission_prompt_android.cc | 8 ++ @@ -89,9 +89,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 | 30 ++++++- components/permissions/permission_request.h | 16 +++- - .../permissions/permission_request_manager.cc | 45 +++++++---- + .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 39 files changed, 547 insertions(+), 92 deletions(-) + 39 files changed, 548 insertions(+), 92 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 @@ -230,18 +230,18 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc - return std::make_unique(); + return std::make_unique(context); } -diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc ---- a/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc -+++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc -@@ -33,7 +33,7 @@ void EmbeddedPermissionPromptAskView::RunButtonCallback(int button_id) { - - if (delegate()) { - if (button == ButtonType::kAllowThisTime) { -- delegate()->AllowThisTime(); -+ delegate()->AllowThisTime(content_settings::LifetimeMode::OnlyThisTime); - } else if (button == ButtonType::kAllow) { - delegate()->Allow(); - } +diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc +--- a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc ++++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc +@@ -177,7 +177,7 @@ void EmbeddedPermissionPrompt::Allow() { + } + + void EmbeddedPermissionPrompt::AllowThisTime() { +- delegate_->AcceptThisTime(); ++ delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime); + CloseCurrentViewAndMaybeShowNext(/*first_prompt=*/false); + } + diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc @@ -868,7 +868,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java -@@ -12,6 +12,17 @@ import org.chromium.ui.UiUtils; +@@ -12,6 +12,18 @@ import org.chromium.ui.UiUtils; import org.chromium.ui.modaldialog.ModalDialogProperties; import org.chromium.ui.modelutil.PropertyModel; @@ -878,6 +878,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per +import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; ++import android.widget.TextView; +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.ui.base.ViewUtils; +import org.chromium.components.content_settings.ContentSettingsType; @@ -886,7 +887,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** * This class creates the model for the permission dialog. */ -@@ -27,7 +38,7 @@ class PermissionDialogModelFactory { +@@ -27,7 +39,7 @@ class PermissionDialogModelFactory { String messageText = delegate.getMessageText(); assert !TextUtils.isEmpty(messageText); @@ -895,7 +896,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per .with(ModalDialogProperties.CONTROLLER, controller) .with(ModalDialogProperties.FOCUS_DIALOG, true) .with(ModalDialogProperties.CUSTOM_VIEW, customView) -@@ -39,5 +50,73 @@ class PermissionDialogModelFactory { +@@ -39,5 +51,73 @@ class PermissionDialogModelFactory { .with(ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS, UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS) .build(); @@ -958,7 +959,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per + } + + return pm; - } ++ } + + private static boolean contains(final int[] array, final int key) { + int length = array.length; @@ -967,7 +968,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per + return true; + } + return false; -+ } + } } diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index ac98f5464..3c2c792cb 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -29,13 +29,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s + private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { + @Override + public boolean isEnabled() { -+ return SharedPreferencesManager.getInstance().readBoolean( ++ return ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false); + } + + @Override + public void setEnabled(boolean value) { -+ SharedPreferencesManager.getInstance().writeBoolean( ++ ChromeSharedPreferences.getInstance().writeBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, value); + } + } @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi int stubId = R.id.find_toolbar_stub; - if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { + if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) && -+ !SharedPreferencesManager.getInstance().readBoolean( ++ !ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) { stubId = R.id.find_toolbar_tablet_stub; } @@ -247,7 +247,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui import org.chromium.base.ContextUtils; import org.chromium.base.ThreadUtils; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.ui.R; import org.chromium.ui.display.DisplayAndroid; import org.chromium.ui.display.DisplayUtil; @@ -255,7 +255,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui * E.g. http://developer.samsung.com/samsung-dex/testing */ public static boolean isNonMultiDisplayContextOnTablet(Context context) { -+ if (SharedPreferencesManager.getInstance().readBoolean( ++ if (ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) + return true; return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index dbab98098..94698a842 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + android:title="@string/close_tabs_on_exit_title" + android:summary="@string/close_tabs_on_exit_summary" + android:defaultValue="false" /> - diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java @@ -68,16 +68,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.R; import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -88,6 +91,8 @@ public class PrivacySettings +@@ -89,6 +92,8 @@ public class PrivacySettings private final SharedPreferencesManager mSharedPreferencesManager = - SharedPreferencesManager.getInstance(); + ChromeSharedPreferences.getInstance(); + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + private ManagedPreferenceDelegate mManagedPreferenceDelegate; private IncognitoLockSettings mIncognitoLockSettings; -@@ -242,7 +247,11 @@ public class PrivacySettings +@@ -243,7 +248,11 @@ public class PrivacySettings @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting UserPrefs.get(getProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_HTTPS_FIRST_MODE.equals(key)) { -@@ -289,6 +298,11 @@ public class PrivacySettings +@@ -290,6 +299,11 @@ public class PrivacySettings PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext())); } diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index af39a47e9..906eca8b1 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -6,6 +6,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/BUILD.gn | 1 - chrome/android/chrome_java_sources.gni | 1 - + .../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +---- chrome/browser/BUILD.gn | 6 ------ .../browser/extensions/api/settings_private/prefs_util.cc | 2 ++ chrome/browser/profiles/profile_impl.cc | 4 ++++ @@ -16,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/supervised_user/core/common/pref_names.h | 4 ++++ .../core/common/supervised_user_constants.cc | 2 ++ .../supervised_user/core/common/supervised_user_utils.cc | 8 ++++++++ - 12 files changed, 29 insertions(+), 13 deletions(-) + 13 files changed, 30 insertions(+), 17 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -40,6 +41,28 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java", "java/src/org/chromium/chrome/browser/sync/SyncErrorNotifier.java", "java/src/org/chromium/chrome/browser/sync/TrustedVaultClient.java", +diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java ++++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +@@ -69,7 +69,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; + import org.chromium.components.feature_engagement.EventConstants; + import org.chromium.components.feature_engagement.Tracker; + import org.chromium.components.prefs.PrefService; +-import org.chromium.components.supervised_user.SupervisedUserPreferences; + import org.chromium.components.user_prefs.UserPrefs; + import org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout; + import org.chromium.ui.base.DeviceFormFactor; +@@ -788,9 +787,7 @@ public class FeedSurfaceCoordinator + * Returns true if the supervised user feed should be displayed. + */ + public boolean shouldDisplaySupervisedFeed() { +- PrefService prefService = UserPrefs.get(mProfile); +- return SupervisedUserPreferences.isSubjectToParentalControls(prefService) +- && ChromeFeatureList.isEnabled(ChromeFeatureList.KID_FRIENDLY_CONTENT_FEED); ++ return false; + } + + /** diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index f8a3c42d3..ba6eb09a6 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -1260,7 +1260,7 @@ new file mode 100644 + +package org.chromium.chrome.browser.endpoint_fetcher; + -+import org.chromium.base.annotations.CalledByNative; ++import org.jni_zero.CalledByNative; + +public class EndpointHeaderResponse { + private final String mResponseString; diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 15e2430c3..70b8688db 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -631,8 +631,8 @@ new file mode 100755 @@ -0,0 +1,20 @@ +package org.chromium.chrome.browser.flags; + -+import org.chromium.base.annotations.CalledByNative; -+import org.chromium.base.annotations.NativeMethods; ++import org.jni_zero.CalledByNative; ++import org.jni_zero.NativeMethods; + +public class AdBlockNativeGateway { + public static void setAdBlockFiltersURL(String url) { diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index e5d28c897..b570c19f1 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -10,9 +10,9 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/res/layout/url_bar.xml | 1 + - .../browser/omnibox/LocationBarMediator.java | 12 ++++++++-- + .../browser/omnibox/LocationBarMediator.java | 13 +++++++++-- .../chrome/browser/omnibox/UrlBar.java | 23 +++++++++++++++++++ - 3 files changed, 34 insertions(+), 2 deletions(-) + 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml --- a/chrome/android/java/res/layout/url_bar.xml @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -290,8 +290,16 @@ class LocationBarMediator +@@ -290,8 +290,17 @@ class LocationBarMediator if (mNativeInitialized) RecordUserAction.record("FocusLocation"); // Don't clear Omnibox if the user just pasted text to NTP Omnibox. if (mShouldClearOmniboxOnFocus) { @@ -35,9 +35,10 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, SelectionState.SELECT_END); + UrlBarData data = mLocationBarDataProvider.getUrlBarData(); + @SelectionState int selectionState = SelectionState.SELECT_ALL; -+ if (mTemplateUrlServiceSupplier.hasValue()) { -+ String searchParams = mTemplateUrlServiceSupplier.get().getSearchQueryForUrl( -+ mLocationBarDataProvider.getUrlBarData().url); ++ GURL url = mLocationBarDataProvider.getUrlBarData().url; ++ if (url != null && mTemplateUrlServiceSupplier.hasValue()) { ++ String searchParams = ++ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url); + if (searchParams != null && !searchParams.isEmpty()) { + data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams); + } diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index bce0112f5..565d42b01 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -50,7 +50,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c import org.chromium.content_public.browser.ContentFeatureMap; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + /** * Fragment to keep track of all the accessibility related preferences. diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index bec29de04..daa319c12 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -5,7 +5,7 @@ Subject: Disable all predictors code Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/BUILD.gn | 4 --- + chrome/browser/BUILD.gn | 2 -- .../preloading_model_keyed_service.cc | 1 + .../preloading_model_keyed_service_factory.cc | 4 +-- .../chrome_hints_manager.cc | 1 + @@ -13,7 +13,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/predictors/loading_predictor.cc | 4 +-- .../predictors/loading_predictor_config.cc | 4 +-- .../browser/predictors/predictors_features.cc | 11 ++----- + chrome/browser/ui/tab_helpers.cc | 1 - + .../ui/webui/omnibox/omnibox_page_handler.cc | 14 +++++++++ .../browser/autofill_optimization_guide.cc | 5 ++-- + .../browser/autocomplete_controller.cc | 2 ++ .../optimization_guide/core/hints_fetcher.cc | 1 + .../optimization_guide/core/hints_manager.cc | 5 ++++ .../core/optimization_guide_features.cc | 29 ++++++++++--------- @@ -26,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Disable-all-predictors-code.inc | 4 +++ .../Disable-all-predictors-code.inc | 2 ++ .../platform/runtime_enabled_features.json5 | 2 +- - 21 files changed, 60 insertions(+), 42 deletions(-) + 24 files changed, 76 insertions(+), 41 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc @@ -35,12 +38,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -877,10 +877,6 @@ static_library("browser") { - "navigation_predictor/navigation_predictor_keyed_service.h", - "navigation_predictor/navigation_predictor_keyed_service_factory.cc", +@@ -879,8 +879,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", -- "navigation_predictor/navigation_predictor_metrics_document_data.cc", -- "navigation_predictor/navigation_predictor_metrics_document_data.h", + "navigation_predictor/navigation_predictor_metrics_document_data.cc", + "navigation_predictor/navigation_predictor_metrics_document_data.h", - "navigation_predictor/navigation_predictor_preconnect_client.cc", - "navigation_predictor/navigation_predictor_preconnect_client.h", "navigation_predictor/preloading_model_keyed_service.cc", @@ -160,6 +161,76 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p +SET_CROMITE_FEATURE_DISABLED(kLoadingPredictorUseLocalPredictions); } // namespace features +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 +@@ -400,7 +400,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { + web_contents); + MixedContentSettingsTabHelper::CreateForWebContents(web_contents); + NavigationMetricsRecorder::CreateForWebContents(web_contents); +- NavigationPredictorPreconnectClient::CreateForWebContents(web_contents); + OpenerHeuristicTabHelper::CreateForWebContents(web_contents); + if (optimization_guide::features::IsOptimizationHintsEnabled()) { + OptimizationGuideWebContentsObserver::CreateForWebContents(web_contents); +diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc +--- a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc ++++ b/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc +@@ -39,7 +39,9 @@ + #include "components/omnibox/browser/autocomplete_match.h" + #include "components/omnibox/browser/autocomplete_provider.h" + #include "components/omnibox/browser/autocomplete_result.h" ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + #include "components/omnibox/browser/autocomplete_scoring_model_service.h" ++#endif + #include "components/omnibox/browser/omnibox_field_trial.h" + #include "components/search_engines/template_url.h" + #include "content/public/browser/web_ui.h" +@@ -500,6 +502,7 @@ void OmniboxPageHandler::StartOmniboxQuery(const std::string& input_string, + } + + void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) { ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + if (auto* service = GetMlService()) { + auto version = service->GetModelVersion(); + if (version == -1) { +@@ -512,10 +515,14 @@ void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) { + } else { + std::move(callback).Run(-1); + } ++#else ++ std::move(callback).Run(-1); ++#endif + } + + void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals, + StartMlCallback callback) { ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + if (auto* service = GetMlService()) { + AutocompleteMatch::ScoringSignals signals = + mojo::ConvertTo(mojom_signals); +@@ -525,6 +532,9 @@ void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals, + } else { + std::move(callback).Run(-1); + } ++#else ++ std::move(callback).Run(-1); ++#endif + } + + std::unique_ptr OmniboxPageHandler::CreateController( +@@ -549,8 +559,12 @@ OmniboxPageHandler::GetAutocompleteControllerType( + } + + AutocompleteScoringModelService* OmniboxPageHandler::GetMlService() { ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + return OmniboxFieldTrial::IsMlSyncBatchUrlScoringEnabled() + ? AutocompleteScoringModelServiceFactory::GetInstance() + ->GetForProfile(profile_) + : nullptr; ++#else ++ return nullptr; ++#endif + } diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc --- a/components/autofill/core/browser/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/autofill_optimization_guide.cc @@ -189,6 +260,19 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization(url, optimization_type, /*optimization_metadata=*/nullptr); +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 +@@ -46,7 +46,9 @@ + #include "components/omnibox/browser/autocomplete_input.h" + #include "components/omnibox/browser/autocomplete_match_type.h" + #include "components/omnibox/browser/autocomplete_provider.h" ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + #include "components/omnibox/browser/autocomplete_scoring_model_service.h" ++#endif + #include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h" + #include "components/omnibox/browser/bookmark_provider.h" + #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h" 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-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index a48b95764..fee43f91b 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -162,7 +162,7 @@ diff --git a/content/browser/attribution_reporting/attribution_os_level_manager. // static bool AttributionOsLevelManager::ShouldUseOsWebSource( GlobalRenderFrameHostId render_frame_id) { -+ if ((true)) return network::mojom::AttributionSupport::kNone; ++ if ((true)) return false; return GetContentClient() ->browser() ->ShouldUseOsWebSourceAttributionReporting( diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 7ae3f22a8..9aef51f26 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -121,7 +121,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/renderer/scripts_run_info.h | 69 ++ .../renderer/user_script_injector.cc | 227 +++++ .../renderer/user_script_injector.h | 86 ++ - .../user_scripts/renderer/user_script_set.cc | 266 ++++++ + .../user_scripts/renderer/user_script_set.cc | 264 ++++++ .../user_scripts/renderer/user_script_set.h | 101 +++ .../renderer/user_script_set_manager.cc | 77 ++ .../renderer/user_script_set_manager.h | 61 ++ @@ -134,7 +134,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../strings/userscripts_strings.grdp | 54 ++ .../Experimental-user-scripts-support.inc | 13 + tools/gritsettings/resource_ids.spec | 6 + - 107 files changed, 9490 insertions(+), 2 deletions(-) + 107 files changed, 9488 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -1867,9 +1867,9 @@ new file mode 100644 +import android.app.AlertDialog; +import android.content.DialogInterface; + -+import org.chromium.base.annotations.CalledByNative; -+import org.chromium.base.annotations.JNINamespace; -+import org.chromium.base.annotations.NativeMethods; ++import org.jni_zero.CalledByNative; ++import org.jni_zero.JNINamespace; ++import org.jni_zero.NativeMethods; +import org.chromium.base.ContentUriUtils; +import org.chromium.base.Log; +import org.chromium.ui.base.WindowAndroid; @@ -9539,7 +9539,7 @@ diff --git a/components/user_scripts/renderer/user_script_set.cc b/components/us new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/user_script_set.cc -@@ -0,0 +1,266 @@ +@@ -0,0 +1,264 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -9784,8 +9784,7 @@ new file mode 100755 + base::StrCat({kUserScriptHead, script_content, kUserScriptTail}); + source = blink::WebString::FromUTF8(content); + } else { -+ source = blink::WebString::FromUTF8(script_content.data(), -+ script_content.length()); ++ source = blink::WebString::FromUTF8(script_content); + } + script_sources_[url] = source; + return source; @@ -9800,8 +9799,7 @@ new file mode 100755 + base::StringPiece script_content = file.GetContent(); + return script_sources_ + .insert(std::make_pair( -+ url, blink::WebString::FromUTF8(script_content.data(), -+ script_content.length()))) ++ url, blink::WebString::FromUTF8(script_content))) + .first->second; +} + @@ -10475,10 +10473,10 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ "includes": [7220] }, + "components/user_scripts/renderer/resources/user_scripts_renderer_resources.grd": { -+ "includes": [7000], ++ "includes": [7240], + }, + "components/user_scripts/browser/resources/browser_resources.grd": { -+ "includes": [7020], ++ "includes": [7260], + }, # END components/ section. diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 9afd93eba..71271d840 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; -@@ -63,6 +64,9 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -64,6 +65,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** * Fragment to keep track of the all the privacy related preferences. */ -@@ -100,6 +104,8 @@ public class PrivacySettings +@@ -101,6 +105,8 @@ public class PrivacySettings private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { getActivity().setTitle(R.string.prefs_privacy_security); -@@ -206,6 +212,40 @@ public class PrivacySettings +@@ -207,6 +213,40 @@ public class PrivacySettings Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildSyncAndServicesLink()); @@ -116,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK); -@@ -402,6 +442,29 @@ public class PrivacySettings +@@ -403,6 +443,29 @@ public class PrivacySettings || ChromeFeatureList.isEnabled(ChromeFeatureList.TRACKING_PROTECTION_3PCD); } diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index e65519440..b71f0fc8f 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGroupUiViewBinder.java | 3 + .../tab_management/TabListCoordinator.java | 80 +++++++++++++++++++ .../tab_management/TabListRecyclerView.java | 19 ++++- - .../tab_management/TabSwitcherMediator.java | 15 ++++ + .../tab_management/TabSwitcherMediator.java | 21 ++++- .../ChromeAccessibilitySettingsDelegate.java | 50 ++++++++++++ .../chrome/browser/app/ChromeActivity.java | 13 +++ .../compositor/CompositorViewHolder.java | 8 ++ @@ -47,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/settings/SettingsActivity.java | 5 ++ .../StatusIndicatorCoordinator.java | 9 +++ .../StatusIndicatorSceneLayer.java | 6 +- - .../browser/toolbar/ToolbarManager.java | 36 +++++++-- + .../browser/toolbar/ToolbarManager.java | 44 ++++++++-- .../chrome/browser/ui/BottomContainer.java | 18 +++++ .../ui/system/StatusBarColorController.java | 9 +++ .../scene_layer/tab_strip_scene_layer.cc | 16 +++- @@ -57,15 +57,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/flags/CachedFlag.java | 6 ++ .../browser/flags/ChromeFeatureList.java | 5 ++ chrome/browser/prefs/browser_prefs.cc | 2 +- - .../chrome/browser/ui/appmenu/AppMenu.java | 29 ++++++- + .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++++++-- .../ui/appmenu/AppMenuHandlerImpl.java | 10 +++ .../omnibox/LocationBarCoordinator.java | 6 +- ...mniboxSuggestionsDropdownEmbedderImpl.java | 23 +++++- - .../browser/omnibox/UrlBarCoordinator.java | 3 + .../suggestions/AutocompleteCoordinator.java | 15 +++- .../suggestions/AutocompleteMediator.java | 6 +- - .../DropdownItemViewInfoListManager.java | 14 +++- - .../OmniboxSuggestionsDropdown.java | 38 ++++++++- + .../DropdownItemViewInfoListManager.java | 18 +++-- + .../OmniboxSuggestionsDropdown.java | 39 ++++++++- .../OmniboxSuggestionsDropdownEmbedder.java | 8 ++ .../strings/android_chrome_strings.grd | 6 ++ chrome/browser/ui/android/toolbar/BUILD.gn | 1 + @@ -85,7 +84,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 6 ++ .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 12 +++ - 72 files changed, 834 insertions(+), 66 deletions(-) + 71 files changed, 854 insertions(+), 73 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc diff --git a/cc/base/features.cc b/cc/base/features.cc @@ -607,7 +606,20 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser if (backPressManager != null && BackPressManager.isEnabled()) { assert !mIsStartSurfaceEnabled || mIsStartSurfaceRefactorEnabled; backPressManager.addHandler(this, BackPressHandler.Type.TAB_SWITCHER); -@@ -639,6 +650,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView +@@ -629,8 +640,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView + + // The grid tab switcher for tablets translates up over top of the browser controls. + if (mIsTablet) { +- final int toolbarHeight = getToolbarHeight(); +- ++ int toolbarHeight = getToolbarHeight(); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ toolbarHeight = 0; ++ } + mContainerViewModel.set(TOP_MARGIN, toolbarHeight); + mContainerViewModel.set(SHADOW_TOP_OFFSET, toolbarHeight); + return; +@@ -639,6 +652,10 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); mContainerViewModel.set(TOP_MARGIN, contentOffset); @@ -623,7 +635,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java @@ -28,6 +28,12 @@ import org.chromium.chrome.browser.flags.CromiteNativeUtils; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; + import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import android.app.Activity; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; @@ -1420,16 +1432,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -187,6 +187,8 @@ import org.chromium.url.GURL; +@@ -187,6 +187,9 @@ import org.chromium.url.GURL; import java.util.List; +import org.chromium.chrome.browser.flags.ChromeFeatureList; ++import android.view.Gravity; + /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -715,7 +717,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -715,7 +718,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( mActivity.findViewById(R.id.location_bar), @@ -1438,7 +1451,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar profileSupplier, PrivacyPreferencesManagerImpl.getInstance(), mLocationBarModel, -@@ -996,11 +998,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -996,11 +999,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1452,7 +1465,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener(mLayoutChangeListener); mLayoutChangeListener = null; } -@@ -1465,13 +1469,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -1160,6 +1165,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + public void setTabSwitcherFullScreenView(ViewGroup containerView) { + ViewStub toolbarStub = + containerView.findViewById(R.id.fullscreen_tab_switcher_toolbar_stub); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ // the top tab switcher toolbar is docked at the bottom ++ FrameLayout.LayoutParams params = ++ (FrameLayout.LayoutParams)toolbarStub.getLayoutParams(); ++ params.gravity = Gravity.START | Gravity.BOTTOM; ++ toolbarStub.setLayoutParams(params); ++ } + mToolbar.setFullScreenToolbarStub(toolbarStub); + } + +@@ -1465,13 +1477,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return ((LocationBarCoordinator) mLocationBar).getUrlBarTextWithoutAutocomplete(); } @@ -1480,7 +1507,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mIncognitoStateProvider, mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController, mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector, mTabContentManager, mCompositorViewHolder, -@@ -1479,8 +1495,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -1479,8 +1503,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve mLayoutStateProviderSupplier, mSnackbarManager); var bottomControlsCoordinator = new BottomControlsCoordinator(mActivity, mWindowAndroid, mLayoutManager, mCompositorViewHolder.getResourceManager(), mBrowserControlsSizer, @@ -1492,7 +1519,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); if (mBackPressManager != null) { mBackPressManager.addHandler( -@@ -2332,6 +2349,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -2332,6 +2357,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve private void setControlContainerTopMargin(int margin) { final ViewGroup.MarginLayoutParams layoutParams = ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); @@ -1768,19 +1795,39 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth); int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth); -@@ -309,6 +317,11 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -287,7 +295,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + anchorView.getLocationOnScreen(mTempLocation); + int anchorViewOffset = Math.min(Math.abs(mTempLocation[1] - visibleDisplayFrame.top), + Math.abs(mTempLocation[1] - visibleDisplayFrame.bottom)); +- setMenuHeight( ++ int popupHeight = setMenuHeight( + menuItemIds, + heightList, + visibleDisplayFrame, +@@ -307,8 +315,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + sizingPadding, + anchorView, popupWidth, - anchorView.getRootView().getLayoutDirection()); +- anchorView.getRootView().getLayoutDirection()); ++ anchorView.getRootView().getLayoutDirection(), ++ popupHeight); mPopup.setContentView(contentView); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // due to some unknown behaviour, the popup must be resized to + // allow selection without leaving touch -+ mPopup.setHeight(popupHeight-1); ++ mPopup.setHeight(popupHeight - 1); + } try { mPopup.showAtLocation(anchorView.getRootView(), Gravity.NO_GRAVITY, popupPosition[0], -@@ -362,6 +375,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -357,11 +371,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + Rect padding, + View anchorView, + int popupWidth, +- int viewLayoutDirection) { ++ int viewLayoutDirection, ++ int popupHeight) { + anchorView.getLocationInWindow(tempLocation); int anchorViewX = tempLocation[0]; int anchorViewY = tempLocation[1]; @@ -1795,7 +1842,16 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch int[] offsets = new int[2]; // If we have a hardware menu button, locate the app menu closer to the estimated // hardware menu button location. -@@ -552,7 +573,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -538,7 +561,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + if (mAdapter != null) mAdapter.notifyDataSetChanged(); + } + +- private void setMenuHeight( ++ private int setMenuHeight( + List menuItemIds, + List heightList, + Rect appDimensions, +@@ -552,7 +575,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler int availableScreenSpace = appDimensions.height() - anchorViewOffset - padding.bottom - footerHeight - headerHeight - anchorViewImpactHeight; @@ -1810,6 +1866,14 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch if (mIsByPermanentButton) availableScreenSpace -= padding.top; if (availableScreenSpace <= 0 && sExceptionReporter != null) { String logMessage = String.format( +@@ -570,6 +599,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + menuItemIds, heightList, groupDividerResourceId, availableScreenSpace); + menuHeight += footerHeight + headerHeight + padding.top + padding.bottom; + mPopup.setHeight(menuHeight); ++ return menuHeight; + } + + @VisibleForTesting diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java @@ -1938,19 +2002,6 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow onConfigurationChanged(mContext.getResources().getConfiguration()); recalculateOmniboxAlignment(); } -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 -@@ -26,6 +26,9 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; - import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; - -+import org.chromium.chrome.browser.flags.ChromeFeatureList; -+import android.view.WindowManager; -+ - /** Coordinates the interactions with the UrlBar text component. */ - public class UrlBarCoordinator - implements UrlBarEditingTextStateProvider, diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java @@ -2074,6 +2125,17 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow previousItem.model.set(DropdownCommonProperties.SHOW_DIVIDER, !applyRounding); } +@@ -185,7 +191,9 @@ class DropdownItemViewInfoListManager { + + // round the bottom corners of the last suggestion. + if (previousItem != null) { +- previousItem.model.set(DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED, true); ++ previousItem.model.set(toolbarToBottom ++ ? DropdownCommonProperties.BG_TOP_CORNER_ROUNDED ++ : DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED, true); + } + + mManagedModel.set(suggestionsList); diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java @@ -2105,7 +2167,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mSelectionController = new RecyclerViewSelectionController(mLayoutScrollListener); addOnChildAttachStateChangeListener(mSelectionController); -@@ -235,6 +238,19 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -235,6 +238,20 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); int paddingTop = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top); @@ -2122,10 +2184,11 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + } + paddingTop = 0; + } ++ setLayoutManager(mLayoutScrollListener); ViewCompat.setPaddingRelative(this, 0, paddingTop, 0, paddingBottom); mStandardBgColor = -@@ -388,8 +404,16 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -388,8 +405,16 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { TimingMetric metric = OmniboxMetrics.recordSuggestionListMeasureTime(); TimingMetric metric2 = OmniboxMetrics.recordSuggestionListMeasureWallTime()) { OmniboxAlignment omniboxAlignment = mEmbedder.getCurrentAlignment(); @@ -2144,7 +2207,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow int desiredWidth = omniboxAlignment.width; adjustHorizontalPosition(); notifyObserversIfViewportHeightChanged(availableViewportHeight); -@@ -409,6 +433,12 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -409,6 +434,12 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { } } diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index 734c2db7a..74caa988b 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -6,10 +6,10 @@ Search suggestions, autofill assistant and contextual search License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/res/xml/privacy_preferences.xml | 13 ++++++++ - .../privacy/settings/PrivacySettings.java | 33 +++++++++++++++++++ + .../java/res/xml/privacy_preferences.xml | 13 +++++++ + .../privacy/settings/PrivacySettings.java | 34 +++++++++++++++++++ .../strings/android_chrome_strings.grd | 4 +++ - 3 files changed, 50 insertions(+) + 3 files changed, 51 insertions(+) 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 @@ -37,21 +37,22 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -53,6 +53,13 @@ import org.chromium.components.user_prefs.UserPrefs; +@@ -53,6 +53,14 @@ import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.NoUnderlineClickableSpan; import org.chromium.ui.text.SpanApplier; +import androidx.annotation.Nullable; +import androidx.preference.PreferenceCategory; +import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.base.shared_preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; + /** * Fragment to keep track of the all the privacy related preferences. */ -@@ -72,6 +79,16 @@ public class PrivacySettings +@@ -72,6 +80,16 @@ public class PrivacySettings private static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; private static final String PREF_TRACKING_PROTECTION = "tracking_protection"; @@ -62,13 +63,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + private ChromeSwitchPreference mSearchSuggestions; + private @Nullable Preference mContextualSearch; + private final SharedPreferencesManager mSharedPreferencesManager = -+ SharedPreferencesManager.getInstance(); ++ ChromeSharedPreferences.getInstance(); + + private ManagedPreferenceDelegate mManagedPreferenceDelegate; private IncognitoLockSettings mIncognitoLockSettings; @Override -@@ -132,6 +149,16 @@ public class PrivacySettings +@@ -132,6 +150,16 @@ public class PrivacySettings setHasOptionsMenu(true); @@ -85,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -221,6 +248,9 @@ public class PrivacySettings +@@ -221,6 +249,9 @@ public class PrivacySettings } else if (PREF_HTTPS_FIRST_MODE.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue); @@ -95,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -235,6 +265,9 @@ public class PrivacySettings +@@ -235,6 +266,9 @@ public class PrivacySettings * Updates the preferences. */ public void updatePreferences() { diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index a1bd36591..e8a83815d 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -37,7 +37,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse + if (shouldUseSystemManagedLocale()) { + setSystemManagedAppLanguage(languageName); + } else { -+ SharedPreferencesManager.getInstance().writeString( ++ ChromeSharedPreferences.getInstance().writeString( + ChromePreferenceKeys.APPLICATION_OVERRIDE_LANGUAGE, languageName); + } + } 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 0e95cca3a..88242c868 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -121,7 +121,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + android:key="referers_policy" + android:title="@string/referers_policy_title" + android:fragment="org.chromium.chrome.browser.privacy.settings.RefererSettingsFragment"/> - diff --git a/chrome/android/java/res/xml/referer_policy_preferences.xml b/chrome/android/java/res/xml/referer_policy_preferences.xml @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; -@@ -80,6 +81,7 @@ public class PrivacySettings +@@ -81,6 +82,7 @@ public class PrivacySettings private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -357,6 +359,10 @@ public class PrivacySettings +@@ -358,6 +360,10 @@ public class PrivacySettings : R.string.text_off); } diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 1adc2c116..647cccc5f 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -89,7 +89,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/module_installer/android/BUILD.gn | 4 - components/signin/public/android/BUILD.gn | 3 - .../signin/AccountRenameChecker.java | 16 - - components/webauthn/android/BUILD.gn | 11 - + components/webauthn/android/BUILD.gn | 12 - .../webauthn/AuthenticatorImpl.java | 93 +-- .../webauthn/CredManMetricsHelper.java | 17 - .../webauthn/Fido2ApiCallHelper.java | 58 +- @@ -105,7 +105,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - 81 files changed, 97 insertions(+), 2091 deletions(-) + 81 files changed, 97 insertions(+), 2092 deletions(-) diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -3080,7 +3080,11 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/WebAuthnBrowserBridge.java", ] -@@ -34,11 +32,7 @@ android_library("java") { +@@ -30,15 +28,10 @@ android_library("java") { + "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java", + "java/src/org/chromium/components/webauthn/AuthenticatorIncognitoConfirmationBottomsheet.java", + "java/src/org/chromium/components/webauthn/Barrier.java", +- "java/src/org/chromium/components/webauthn/CredManHelper.java", "java/src/org/chromium/components/webauthn/CredManMetricsHelper.java", "java/src/org/chromium/components/webauthn/CredManSupportProvider.java", "java/src/org/chromium/components/webauthn/CredManUiModeRecommender.java", @@ -3092,7 +3096,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", -@@ -52,9 +46,6 @@ android_library("java") { +@@ -52,9 +45,6 @@ android_library("java") { deps = [ ":java_resources", @@ -3102,7 +3106,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//build/android:build_java", "//components/browser_ui/bottomsheet/android:java", -@@ -115,8 +106,6 @@ android_library("test_support_java") { +@@ -115,8 +105,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 9e42ac781..a08bbe88d 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -5,23 +5,23 @@ Subject: Remove voice recognition integration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../start_surface/StartSurfaceMediator.java | 15 +--- - .../features/tasks/TasksSurfaceMediator.java | 4 - + .../features/tasks/TasksSurfaceMediator.java | 4 -- .../browser/metrics/UmaSessionStats.java | 19 ----- - .../chrome/browser/ntp/NewTabPage.java | 41 +-------- + .../chrome/browser/ntp/NewTabPage.java | 41 +---------- .../browser/ntp/search/SearchBoxMediator.java | 1 - .../browser/searchwidget/SearchActivity.java | 6 +- - .../SearchActivityLocationBarLayout.java | 44 +--------- + .../SearchActivityLocationBarLayout.java | 44 +----------- .../browser/toolbar/ToolbarManager.java | 5 -- - .../chrome/browser/ui/RootUiCoordinator.java | 23 +---- + .../chrome/browser/ui/RootUiCoordinator.java | 23 +----- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../chrome/browser/omnibox/LocationBar.java | 6 -- - .../omnibox/LocationBarCoordinator.java | 13 --- - .../browser/omnibox/LocationBarMediator.java | 84 +------------------ - .../chrome/browser/omnibox/OmniboxStub.java | 9 -- - .../suggestions/AutocompleteController.java | 25 ------ - .../suggestions/AutocompleteCoordinator.java | 8 -- - .../suggestions/AutocompleteMediator.java | 9 -- - 17 files changed, 8 insertions(+), 305 deletions(-) + .../omnibox/LocationBarCoordinator.java | 13 ---- + .../browser/omnibox/LocationBarMediator.java | 72 +------------------ + .../chrome/browser/omnibox/OmniboxStub.java | 9 --- + .../suggestions/AutocompleteController.java | 25 ------- + .../suggestions/AutocompleteCoordinator.java | 8 --- + .../suggestions/AutocompleteMediator.java | 9 --- + 17 files changed, 9 insertions(+), 292 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java @@ -632,7 +632,31 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1364,16 +1347,6 @@ class LocationBarMediator +@@ -1146,6 +1129,7 @@ class LocationBarMediator + } + + private boolean shouldShowLensButton() { ++ if ((true)) return false; + if (shouldShowDeleteButton()) return false; + + // When this method is called on UI inflation, return false as the native is not ready. +@@ -1153,15 +1137,6 @@ class LocationBarMediator + return false; + } + +- // Never show Lens in the old search widget page context. +- // This widget must guarantee consistent feature set regardless of search engine choice or +- // other aspects that may not be met by Lens. +- LocationBarDataProvider dataProvider = getLocationBarDataProvider(); +- if (dataProvider.getPageClassification(dataProvider.isIncognito(), /* isPrefetch= */ false) +- == PageClassification.ANDROID_SEARCH_WIDGET_VALUE) { +- return false; +- } +- + // When this method is called after native initialized, check omnibox conditions and Lens + // eligibility. + if (mIsTablet && mShouldShowButtonsWhenUnfocused) { +@@ -1364,16 +1339,6 @@ class LocationBarMediator } } @@ -649,7 +673,13 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1395,61 +1368,6 @@ class LocationBarMediator +@@ -1389,30 +1354,11 @@ class LocationBarMediator + return mUrlHasFocus; + } + +- @Override + public void clearOmniboxFocus() { + setUrlBarFocus( /* shouldBeFocused= */ false, /* pastedText= */ null, OmniboxFocusReason.UNFOCUS); } @@ -671,28 +701,13 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - } - - @Override -- public void setSearchQuery(String query) { -- if (TextUtils.isEmpty(query)) return; -- -- if (!mNativeInitialized) { -- mDeferredNativeRunnables.add(() -> setSearchQuery(query)); -- return; -- } -- -- // Ensure the UrlBar has focus before entering text. If the UrlBar is not focused, -- // autocomplete text will be updated but the visible text will not. -- setUrlBarFocus( -- /* shouldBeFocused= */ true, -- /* pastedText= */ null, -- OmniboxFocusReason.SEARCH_QUERY); -- setUrlBarText( -- UrlBarData.forNonUrlText(query), -- UrlBar.ScrollType.NO_SCROLL, -- SelectionState.SELECT_ALL); -- mAutocompleteCoordinator.startAutocompleteForQuery(query); -- mUrlCoordinator.setKeyboardVisibility(true, false); -- } -- + public void setSearchQuery(String query) { + if (TextUtils.isEmpty(query)) return; + +@@ -1435,20 +1381,6 @@ class LocationBarMediator + mUrlCoordinator.setKeyboardVisibility(true, false); + } + - @Override - public LocationBarDataProvider getLocationBarDataProvider() { - return mLocationBarDataProvider; @@ -707,10 +722,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - public WindowAndroid getWindowAndroid() { - return mWindowAndroid; - } -- + // UrlBarDelegate implementation. - @Nullable diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxStub.java diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 854ca1fc7..6b2576536 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -12,16 +12,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/java/res/layout/ntp_shortcuts.xml | 65 +++++++++++++++++++ .../feedback/ChromeFeedbackCollector.java | 1 + .../feedback/SimplifiedNtpFeedbackSource.java | 38 +++++++++++ + .../identity_disc/IdentityDiscController.java | 5 +- .../NativePageNavigationDelegateImpl.java | 4 +- .../chrome/browser/ntp/NewTabPageLayout.java | 30 ++++++++- .../SuggestionsNavigationDelegate.java | 17 +++++ .../flags/android/chrome_feature_list.cc | 1 + .../browser/flags/ChromeFeatureList.java | 1 + - .../signin/public/base/signin_switches.cc | 3 + .../Restore-Simplified-NTP-launch.inc | 12 ++++ .../Restore-Simplified-NTP-launch.inc | 3 + .../Restore-Simplified-NTP-launch.inc | 1 + - 15 files changed, 181 insertions(+), 4 deletions(-) + 15 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc @@ -191,6 +191,21 @@ new file mode 100644 + return mMap; + } +} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +@@ -165,7 +165,10 @@ public class IdentityDiscController implements NativeInitObserver, ProfileDataCa + + mButtonData.setButtonSpec( + buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); +- mButtonData.setCanShow(true); ++ if (email == null) ++ mButtonData.setCanShow(false); ++ else ++ mButtonData.setCanShow(true); + } + + private ButtonSpec buttonSpecWithDrawableAndDescription( diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java @@ -338,17 +353,6 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String MESSAGES_FOR_ANDROID_INFRASTRUCTURE = "MessagesForAndroidInfrastructure"; public static final String MESSAGES_FOR_ANDROID_PERMISSION_UPDATE = -diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc ---- a/components/signin/public/base/signin_switches.cc -+++ b/components/signin/public/base/signin_switches.cc -@@ -95,4 +95,7 @@ BASE_FEATURE(kRemoveSignedInAccountsDialog, - base::FEATURE_ENABLED_BY_DEFAULT); - #endif - -+#if BUILDFLAG(IS_ANDROID) -+SET_CROMITE_FEATURE_DISABLED(kIdentityStatusConsistency); -+#endif - } // namespace switches diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null 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 030e3c9b6..7ae15c5f2 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 | 2 ++ + .../threaded_worklet_messaging_proxy.cc | 5 ++- .../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, 190 insertions(+), 23 deletions(-) + 36 files changed, 192 insertions(+), 24 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc @@ -593,15 +593,18 @@ 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 -@@ -94,6 +94,7 @@ void ThreadedWorkletMessagingProxy::Initialize( +@@ -93,7 +93,9 @@ void ThreadedWorkletMessagingProxy::Initialize( + starter_secure_context, /*starter_https_state=*/HttpsState::kNone, /*worker_clients=*/nullptr, - /*content_settings_client=*/nullptr, &inherited_trial_features, +- /*content_settings_client=*/nullptr, &inherited_trial_features, ++ /*content_settings_client=*/nullptr, + /*response_address_space*/network::mojom::IPAddressSpace::kUnknown, ++ &inherited_trial_features, /*parent_devtools_token=*/ client_provided_global_scope_creation_params->devtools_token, /*worker_settings=*/nullptr, -@@ -140,6 +141,7 @@ void ThreadedWorkletMessagingProxy::Initialize( +@@ -140,6 +142,7 @@ void ThreadedWorkletMessagingProxy::Initialize( window->GetReferrerPolicy(), window->GetSecurityOrigin(), window->IsSecureContext(), window->GetHttpsState(), worker_clients, frame_client->CreateWorkerContentSettingsClient(), diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index a0401755b..ef8e54a23 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -381,7 +381,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.settings.SettingsUtils; + +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + +import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; +import org.chromium.chrome.browser.tabmodel.TabWindowManager; @@ -410,11 +410,11 @@ new file mode 100644 + + ChromeSwitchPreference alwaysDesktopModeSwitch = + (ChromeSwitchPreference) findPreference(PREF_STICK_DESKTOP_MODE_SWITCH); -+ boolean enabled = SharedPreferencesManager.getInstance().readBoolean( ++ boolean enabled = ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); + alwaysDesktopModeSwitch.setChecked(enabled); + alwaysDesktopModeSwitch.setOnPreferenceChangeListener((preference, newValue) -> { -+ SharedPreferencesManager.getInstance().writeBoolean( ++ ChromeSharedPreferences.getInstance().writeBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, (boolean) newValue); + UpdateAllTabs(); + return true; @@ -498,7 +498,7 @@ new file mode 100644 + } + + private void UpdateAllTabs() { -+ final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ final boolean alwaysDesktopModeEnabled = ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false); + TabWindowManagerSingleton.getInstance().SetOverrideUserAgentForAllTabs(alwaysDesktopModeEnabled); + } @@ -535,7 +535,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav +import org.chromium.content_public.browser.NavigationController; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.components.embedder_support.util.UrlUtilities; + /** @@ -545,10 +545,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav params.setOverrideUserAgent(calculateUserAgentOverrideOption(null)); } -+ final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ final boolean stickyDesktopModeEnabled = ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); + if (stickyDesktopModeEnabled) { -+ boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ boolean alwaysDesktopModeEnabled = ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false); + + if (UrlUtilities.isInternalScheme(UrlFormatter.fixupUrl(params.getUrl()))) { @@ -580,9 +580,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav - ContentUtils.setUserAgentOverride(mWebContents, - calculateUserAgentOverrideOption(null) == UserAgentOverrideOption.TRUE); -+ if (SharedPreferencesManager.getInstance().readBoolean( ++ if (ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false) && -+ SharedPreferencesManager.getInstance().readBoolean( ++ ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false)) { + ContentUtils.setUserAgentOverride(mWebContents, true); + } else { @@ -607,9 +607,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } private @UserAgentOverrideOption int calculateUserAgentOverrideOption(@Nullable GURL url) { -+ if (SharedPreferencesManager.getInstance().readBoolean( ++ if (ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false) && -+ SharedPreferencesManager.getInstance().readBoolean( ++ ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false)) { + return UserAgentOverrideOption.INHERIT; + } @@ -669,7 +669,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja +import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -688,10 +688,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja - tabUserAgent = TabUserAgent.DEFAULT; - } - tab.setUserAgent(tabUserAgent); -+ SharedPreferencesManager.getInstance().writeBoolean( ++ ChromeSharedPreferences.getInstance().writeBoolean( + ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, switchToDesktop); + -+ final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ final boolean stickyDesktopModeEnabled = ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); + if (stickyDesktopModeEnabled) { + TabWindowManagerSingleton.getInstance().SetOverrideUserAgentForAllTabs(switchToDesktop); @@ -831,7 +831,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl + std::vector cors_exempt_header_list; + iter.GetCurrentValue()->GetRendererInterface()->InitializeRenderer( + /*user_agent*/ ua, /*metadata*/ blink::UserAgentMetadata(), -+ cors_exempt_header_list, content::AttributionManager::GetSupport(), ++ cors_exempt_header_list, + g_browser_process->GetOriginTrialsSettingsStorage()->GetSettings()); + } + } diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index 7a9a3f038..e1e76181f 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -443,7 +443,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.CromiteNativeUtils; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + /** The Chrome implementation of AccessibilitySettingsDelegate. */ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySettingsDelegate { @@ -542,10 +542,10 @@ new file mode 100755 + +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; -+import org.chromium.chrome.browser.preferences.SharedPreferencesManager; ++import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + -+import org.chromium.base.annotations.CalledByNative; -+import org.chromium.base.annotations.NativeMethods; ++import org.jni_zero.CalledByNative; ++import org.jni_zero.NativeMethods; + +public class CromiteNativeUtils { + /** @@ -561,7 +561,7 @@ new file mode 100755 + CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(featureName); + String preferenceName = cachedFlag.getSharedPreferenceKey(); + -+ SharedPreferencesManager.getInstance().writeBoolean(preferenceName, newValue); ++ ChromeSharedPreferences.getInstance().writeBoolean(preferenceName, newValue); + cachedFlag.setValueReturnedOverride(newValue); + } + diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch index 3ebbe3438..3db6f94a8 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch @@ -148,7 +148,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3488,6 +3488,17 @@ static_library("browser") { +@@ -3490,6 +3490,17 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.h", ] @@ -166,7 +166,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn public_deps += [ "//chrome/android/features/dev_ui:buildflags", -@@ -3678,6 +3689,9 @@ static_library("browser") { +@@ -3680,6 +3691,9 @@ static_library("browser") { "//url", ] @@ -1504,8 +1504,8 @@ new file mode 100644 +import androidx.annotation.UiThread; + +import org.chromium.base.ThreadUtils; -+import org.chromium.base.annotations.CalledByNative; -+import org.chromium.base.annotations.NativeMethods; ++import org.jni_zero.CalledByNative; ++import org.jni_zero.NativeMethods; +import org.chromium.components.adblock.controller.R; + +import java.net.MalformedURLException; @@ -1820,8 +1820,8 @@ new file mode 100644 + +import org.chromium.base.ContextUtils; +import org.chromium.base.ThreadUtils; -+import org.chromium.base.annotations.CalledByNative; -+import org.chromium.base.annotations.NativeMethods; ++import org.jni_zero.CalledByNative; ++import org.jni_zero.NativeMethods; + +import java.net.MalformedURLException; +import java.net.URL; @@ -2173,8 +2173,8 @@ new file mode 100644 + +import org.chromium.base.ContextUtils; +import org.chromium.base.ThreadUtils; -+import org.chromium.base.annotations.CalledByNative; -+import org.chromium.base.annotations.NativeMethods; ++import org.jni_zero.CalledByNative; ++import org.jni_zero.NativeMethods; + +import java.net.MalformedURLException; +import java.net.URL; diff --git a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index 466dd9719..92969aab4 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -73,7 +73,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock_internals/adblock_internals.ts | 43 ++ .../safe_browsing_blocking_page_test.cc | 7 + ...subresource_filter_browser_test_harness.cc | 8 +- - chrome/browser/ui/BUILD.gn | 11 + + chrome/browser/ui/BUILD.gn | 10 + chrome/browser/ui/prefs/pref_watcher.cc | 13 + chrome/browser/ui/tab_helpers.cc | 18 + .../ui/webui/adblock_internals/BUILD.gn | 23 + @@ -129,7 +129,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../xhr_result_3_subresource_loading.json | 1 + .../test/data/adblock/wbn/index.html.mustache | 157 ++++++ chrome/test/data/adblock/xpath3.html | 23 + - 123 files changed, 7677 insertions(+), 10 deletions(-) + 123 files changed, 7676 insertions(+), 10 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 @@ -302,7 +302,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "app_mode/app_mode_utils.cc", -@@ -2149,6 +2172,7 @@ static_library("browser") { +@@ -2151,6 +2174,7 @@ static_library("browser") { "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", "//chrome/browser/ui/webui:configs", @@ -310,7 +310,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/ui/webui/app_service_internals:mojo_bindings", "//chrome/browser/ui/webui/feed:mojo_bindings", "//chrome/browser/ui/webui/internals/user_education:mojo_bindings", -@@ -2171,6 +2195,8 @@ static_library("browser") { +@@ -2173,6 +2197,8 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -319,7 +319,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/assist_ranker", "//components/autofill/content/browser", "//components/autofill/core/browser", -@@ -3461,6 +3487,8 @@ static_library("browser") { +@@ -3463,6 +3489,8 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.cc", "webauthn/android/webauthn_request_delegate_android.h", ] @@ -328,7 +328,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn public_deps += [ "//chrome/android/features/dev_ui:buildflags", "//components/image_fetcher/core", -@@ -3650,6 +3678,7 @@ static_library("browser") { +@@ -3652,6 +3680,7 @@ static_library("browser") { "//url", ] @@ -7578,7 +7578,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/autofill_and_password_manager_internals/autofill_internals_ui.cc", "webui/autofill_and_password_manager_internals/autofill_internals_ui.h", "webui/autofill_and_password_manager_internals/internals_ui_handler.cc", -@@ -436,11 +444,13 @@ static_library("ui") { +@@ -436,6 +444,7 @@ static_library("ui") { "//chrome/browser/storage_access_api", "//chrome/browser/ui/side_panel:side_panel_enums", "//chrome/browser/ui/webui/location_internals:mojo_bindings", @@ -7586,13 +7586,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/ui/webui/omnibox:mojo_bindings", "//chrome/browser/ui/webui/segmentation_internals:mojo_bindings", "//chrome/browser/ui/webui/suggest_internals:mojo_bindings", - "//chrome/browser/ui/webui/usb_internals:mojo_bindings", - "//chrome/browser/v8_compile_hints/proto", -+ "//chrome/browser/ui/webui:configs", - "//chrome/common", - "//chrome/common/net", - "//chrome/common/search:mojo_bindings", -@@ -452,6 +462,7 @@ static_library("ui") { +@@ -452,6 +461,7 @@ static_library("ui") { "//components/about_ui", "//components/access_code_cast/common:metrics", "//components/account_id",