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",