-diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
---- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
-+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
-@@ -216,6 +216,7 @@ export class SettingsClearBrowsingDataDialogElement extends
- value: () =>
- [loadTimeData.getString('basicPageTitle'),
- loadTimeData.getString('advancedPageTitle'),
-+ loadTimeData.getString('atStartPageTitle'),
- ],
- },
+diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts
+--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts
++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_browser_proxy.ts
+@@ -42,6 +42,7 @@ export enum BrowsingDataType {
+ SITE_SETTINGS = 5,
+ DOWNLOADS = 6,
+ HOSTED_APPS_DATA = 7,
++ PASSWORDS = 8,
+ // TABS = 8, Not used on Desktop.
+ }
+ // LINT.ThenChange(/components/browsing_data/core/browsing_data_utils.h:BrowsingDataType)
+diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html
+--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html
++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.html
+@@ -40,6 +40,8 @@
-@@ -344,6 +345,7 @@ export class SettingsClearBrowsingDataDialogElement extends
- }
- this.clearButtonDisabled_ =
- this.getSelectedDataTypes_(page as HTMLElement).length === 0;
-+ if ((page as HTMLElement).id == "atstart-tab") this.clearButtonDisabled_ = true;
+ #deleteBrowsingDataDialog::part(dialog) {
+ max-height: var(--dbd-dialog-max-height);
++ top: 300px;
++ width: 590px;
}
- /**
+ #deletingDataAlert {
+@@ -99,18 +101,25 @@
+
++
+ $i18n{clearBrowsingData}
++
++
++ $i18n{clearBrowsingDataAtClose}
++
+
++
+
+
++
+
+
+
+
+-
+ [[item.label]]
+@@ -137,12 +146,14 @@
+
+
+
++
+
+
++
+
+
+
+@@ -152,9 +163,10 @@
+
+
+- $i18n{cancel}
++ $i18n{close}
+
+
+@@ -177,4 +189,4 @@
+
+
+
+-
+\ No newline at end of file
++
+diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts
+--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts
++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts
+@@ -91,6 +91,17 @@ const ALL_BROWSING_DATATYPES_LIST: BrowsingDataType[] = [
+ BrowsingDataType.HOSTED_APPS_DATA,
+ ];
+
++const ALL_BROWSING_DATATYPES_LIST_AT_CLOSE: BrowsingDataType[] = [
++ BrowsingDataType.HISTORY,
++ BrowsingDataType.SITE_DATA,
++ BrowsingDataType.CACHE,
++ BrowsingDataType.DOWNLOADS,
++ BrowsingDataType.FORM_DATA,
++ BrowsingDataType.SITE_SETTINGS,
++ BrowsingDataType.PASSWORDS,
++ BrowsingDataType.HOSTED_APPS_DATA,
++];
++
+ /** The list of Browsing Data types that should be expanded by default. */
+ const DEFAULT_BROWSING_DATATYPES_LIST: BrowsingDataType[] = [
+ BrowsingDataType.HISTORY,
+@@ -120,12 +131,36 @@ function getDataTypeLabel(datatypes: BrowsingDataType) {
+ return loadTimeData.getString('clearDownloadHistory');
+ case BrowsingDataType.HOSTED_APPS_DATA:
+ return loadTimeData.getString('clearHostedAppData');
++ case BrowsingDataType.PASSWORDS:
++ return loadTimeData.getString('clearPasswords');
+ default:
+ assertNotReachedCase(datatypes);
+ }
+ }
+
+-export function getDataTypePrefName(datatypes: BrowsingDataType) {
++export function getDataTypePrefName(datatypes: BrowsingDataType, atclose: boolean) {
++ if (atclose) {
++ switch (datatypes) {
++ case BrowsingDataType.HISTORY:
++ return 'browser.clear_data.browsing_history_at_start';
++ case BrowsingDataType.CACHE:
++ return 'browser.clear_data.cache_at_start';
++ case BrowsingDataType.SITE_DATA:
++ return 'browser.clear_data.cookies_at_start';
++ case BrowsingDataType.FORM_DATA:
++ return 'browser.clear_data.form_data_at_start';
++ case BrowsingDataType.SITE_SETTINGS:
++ return 'browser.clear_data.site_settings_at_start';
++ case BrowsingDataType.DOWNLOADS:
++ return 'browser.clear_data.download_history_at_start';
++ case BrowsingDataType.HOSTED_APPS_DATA:
++ return 'browser.clear_data.hosted_apps_data_at_start';
++ case BrowsingDataType.PASSWORDS:
++ return 'browser.clear_data.passwords_at_start';
++ default:
++ assertNotReachedCase(datatypes);
++ }
++ }
+ switch (datatypes) {
+ case BrowsingDataType.HISTORY:
+ return 'browser.clear_data.browsing_history';
+@@ -141,6 +176,8 @@ export function getDataTypePrefName(datatypes: BrowsingDataType) {
+ return 'browser.clear_data.download_history';
+ case BrowsingDataType.HOSTED_APPS_DATA:
+ return 'browser.clear_data.hosted_apps_data';
++ case BrowsingDataType.PASSWORDS:
++ return 'browser.clear_data.passwords';
+ default:
+ assertNotReachedCase(datatypes);
+ }
+@@ -161,6 +198,12 @@ export class SettingsClearBrowsingDataDialogV2Element extends
+
+ static get properties() {
+ return {
++ clearBrowsingDialogAtClose: {
++ type: Boolean,
++ value: '',
++ reflectToAttribute: true,
++ },
++
+ dataTypesExpanded_: {
+ type: Boolean,
+ value: false,
+@@ -224,6 +267,8 @@ export class SettingsClearBrowsingDataDialogV2Element extends
+ };
+ }
+
++ declare private clearBrowsingDialogAtClose: boolean;
++
+ declare private dataTypesExpanded_: boolean;
+ declare private deleteButtonLabel_: string;
+ declare private deletingDataAlertString_: string;
+@@ -310,10 +355,14 @@ export class SettingsClearBrowsingDataDialogV2Element extends
+ const expandedOptionsList: BrowsingDataTypeOption[] = [];
+ const moreOptionsList: BrowsingDataTypeOption[] = [];
+
+- ALL_BROWSING_DATATYPES_LIST.forEach((datatype) => {
++ var list = ALL_BROWSING_DATATYPES_LIST;
++ if (this.clearBrowsingDialogAtClose)
++ list = ALL_BROWSING_DATATYPES_LIST_AT_CLOSE;
++
++ list.forEach((datatype) => {
+ const datatypeOption = {
+ label: getDataTypeLabel(datatype),
+- pref: this.getPref(getDataTypePrefName(datatype)),
++ pref: this.getPref(getDataTypePrefName(datatype, this.clearBrowsingDialogAtClose)),
+ };
+
+ if (this.shouldDataTypeBeExpanded_(datatype)) {
+@@ -362,7 +411,12 @@ export class SettingsClearBrowsingDataDialogV2Element extends
+
+ private shouldDataTypeBeExpanded_(datatype: BrowsingDataType) {
+ return DEFAULT_BROWSING_DATATYPES_LIST.includes(datatype) ||
+- this.getPref(getDataTypePrefName(datatype)).value;
++ this.getPref(getDataTypePrefName(datatype, this.clearBrowsingDialogAtClose)).value ||
++ this.clearBrowsingDialogAtClose;
++ }
++
++ private shouldShowSubLabel_(value: string) {
++ return this.clearBrowsingDialogAtClose ? '' : value;
+ }
+
+ private computeDeleteButtonLabel_() {
+diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts
+--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts
++++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_time_picker.ts
+@@ -80,7 +80,7 @@ export class SettingsClearBrowsingDataTimePicker extends
+ selectedTimePeriod_: {
+ type: Number,
+ observer: 'onTimePeriodSelectionChanged_',
+- value: TimePeriod.LAST_HOUR,
++ value: TimePeriod.ALL_TIME,
+ },
+
+ /**
+@@ -91,12 +91,12 @@ export class SettingsClearBrowsingDataTimePicker extends
+ readOnly: true,
+ type: Array,
+ value: [
++ TimePeriod.ALL_TIME,
+ TimePeriod.LAST_15_MINUTES,
+ TimePeriod.LAST_HOUR,
+ TimePeriod.LAST_DAY,
+ TimePeriod.LAST_WEEK,
+ TimePeriod.FOUR_WEEKS,
+- TimePeriod.ALL_TIME,
+ ],
+ },
+
+@@ -125,7 +125,7 @@ export class SettingsClearBrowsingDataTimePicker extends
+ */
+ maxChipsShown_: {
+ type: Number,
+- value: 4,
++ value: 6,
+ },
+ };
+ }
+diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
+--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
++++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
+@@ -6,6 +6,13 @@
+ on-browsing-data-deleted="onBrowsingDataDeleted_">
+
+
++
++
++
++
+
+
+@@ -16,6 +23,11 @@
+ label="$i18n{clearBrowsingData}"
+ sub-label="$i18n{clearBrowsingDataDescription}"
+ on-click="onClearBrowsingDataClick_">
++
+
+ ) {
+ assert(r.PRIVACY);
+ r.CLEAR_BROWSER_DATA = r.PRIVACY.createChild('/clearBrowserData');
+ r.CLEAR_BROWSER_DATA.isNavigableDialog = true;
++ r.CLEAR_BROWSER_DATA_AT_CLOSE = r.PRIVACY.createChild('/clearBrowserDataAtClose');
++ r.CLEAR_BROWSER_DATA_AT_CLOSE.isNavigableDialog = true;
+
+ const visibility = pageVisibility || {};
+
+diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resources/settings/router.ts
+--- a/chrome/browser/resources/settings/router.ts
++++ b/chrome/browser/resources/settings/router.ts
+@@ -24,6 +24,7 @@ export interface SettingsRoutes {
+ BASIC: Route;
+ CAPTIONS: Route;
+ CLEAR_BROWSER_DATA: Route;
++ CLEAR_BROWSER_DATA_AT_CLOSE: Route;
+ COMPARE: Route;
+ COOKIES: Route;
+ DEFAULT_BROWSER: Route;
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1455,6 +1455,9 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1517,6 +1517,9 @@ Your Google account may have other forms of browsing history like searches and a
Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>.
@@ -736,11 +1013,14 @@ new file mode 100644
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -2291,6 +2291,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
+@@ -2303,6 +2303,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
-+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
++#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
++ {"clearBrowsingDataAtClose", IDS_SETTINGS_CLEAR_BROWSING_DATA_AT_CLOSE},
++ {"clearBrowsingDataAtCloseDescription", IDS_SETTINGS_CLEAR_DATA_AT_CLOSE_DESCRIPTION},
++#endif
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
{"safeBrowsingEnableExtendedReportingDesc",
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
@@ -895,17 +1175,6 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
} // namespace browsing_data
-diff --git a/components/browsing_data/core/features.h b/components/browsing_data/core/features.h
---- a/components/browsing_data/core/features.h
-+++ b/components/browsing_data/core/features.h
-@@ -19,6 +19,7 @@ BASE_DECLARE_FEATURE(kBrowsingDataModel);
- // updates to history counter logic and removal of the bulk password deletion
- // option from the dialog.
- BASE_DECLARE_FEATURE(kDbdRevampDesktop);
-+SET_CROMITE_FEATURE_DISABLED(kDbdRevampDesktop);
-
- // When enabled, calls to browsingData.removePasswords extension API would
- // result in an error response instead of a console warning.
diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_data/core/pref_names.cc
--- a/components/browsing_data/core/pref_names.cc
+++ b/components/browsing_data/core/pref_names.cc
@@ -967,7 +1236,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co
// Description of database tables:
//
// icon_mapping
-@@ -505,6 +509,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
+@@ -501,6 +505,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin,
base::Time end) {
@@ -1002,7 +1271,7 @@ diff --git a/components/favicon/core/favicon_database.h b/components/favicon/cor
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
-@@ -923,6 +923,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
+@@ -920,6 +920,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
if (turl->date_created() >= created_after &&
(created_before.is_null() || turl->date_created() < created_before) &&
turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 &&
@@ -1033,7 +1302,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/functional/concurrent_closures.h"
-@@ -1557,6 +1558,7 @@ void StoragePartitionImpl::Initialize(
+@@ -1505,6 +1506,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
diff --git a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch
index 98712cc8..4cf2b02e 100644
--- a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch
+++ b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch
@@ -129,8 +129,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
+import org.chromium.components.webauthn.cred_man.CredManSupportProvider;
import org.chromium.components.ukm.UkmRecorder;
import org.chromium.content_public.browser.RenderFrameHost;
- import org.chromium.content_public.browser.WebContents;
-@@ -166,8 +168,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
+ import org.chromium.content_public.browser.Visibility;
+@@ -167,8 +169,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mIsPaymentRequest = options.isPaymentCredentialCreation;
mRequestCallback = requestCallback;
mRequestCallback.setCompletionCallback(this::cleanupRequest);
@@ -140,7 +140,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
mRequestCallback.onComplete(
WebauthnRequestResponse.forFailedMakeCredential(
AuthenticatorStatus.NOT_IMPLEMENTED,
-@@ -246,8 +247,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
+@@ -254,8 +255,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
&& DeviceFeatureMap.isEnabled(
DeviceFeatureList
.WEBAUTHN_AUTHENTICATOR_PASSWORDS_ONLY_IMMEDIATE_REQUESTS);
@@ -150,7 +150,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
|| (options.publicKey == null && !isPasswordOnlyFlux)) {
RequestMetrics metrics =
new RequestMetrics.Builder()
-@@ -287,12 +287,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
+@@ -300,12 +300,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
}
private boolean couldSupportConditionalMediation() {
@@ -165,7 +165,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
@Override
-@@ -366,22 +365,19 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
+@@ -379,22 +378,19 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
capabilities.add(
createWebAuthnClientCapability(
AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET,
@@ -189,9 +189,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- .WEBAUTHN_IMMEDIATE_GET)
- && isUvpaa));
+ false));
- boolean signalSupported =
- isUvpaa
- && DeviceFeatureMap.isEnabled(
+ capabilities.add(
+ createWebAuthnClientCapability(
+ AuthenticatorConstants
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
@@ -317,15 +317,15 @@ diff --git a/components/webauthn/features.h b/components/webauthn/features.h
diff --git a/device/fido/public/features.cc b/device/fido/public/features.cc
--- a/device/fido/public/features.cc
+++ b/device/fido/public/features.cc
-@@ -136,6 +136,7 @@ BASE_FEATURE(kWebAuthnAndroidSignal,
- "WebAuthenticationAndroidSignal",
- base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -124,6 +124,7 @@ BASE_FEATURE(kWebAuthnPublishPrelinkingInfo,
+ "WebAuthenticationPublishPrelinkingInfo",
+ base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
+SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGet);
// Disabled by default.
- BASE_FEATURE(kDigitalCredentialsHybridLinking,
-@@ -184,6 +185,7 @@ BASE_FEATURE_PARAM(int,
+ BASE_FEATURE(kWebAuthnHelloSignal,
+@@ -177,6 +178,7 @@ BASE_FEATURE_PARAM(int,
BASE_FEATURE(kWebAuthnImmediateGetAutoselect,
"WebAuthenticationImmediateGetAutoselect",
base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch
index 0266955d..93dc305f 100644
--- a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch
+++ b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch
@@ -21,6 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../accessibility/AccessibilitySettings.java | 12 +++++++
.../AccessibilitySettingsDelegate.java | 2 ++
.../contextmenu/ContextMenuItemDelegate.java | 3 ++
+ .../ThinWebViewContextMenuItemDelegate.java | 6 ++++
...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++
...Add-setting-to-invert-tap-and-long-tap.inc | 3 ++
...Add-setting-to-invert-tap-and-long-tap.inc | 1 +
@@ -30,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../renderer/core/html/html_image_element.h | 2 ++
.../core/page/context_menu_controller.cc | 23 +++++++++---
.../core/page/context_menu_controller.h | 5 +--
- 22 files changed, 164 insertions(+), 16 deletions(-)
+ 23 files changed, 170 insertions(+), 16 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-setting-to-invert-tap-and-long-tap.inc
create mode 100644 cromite_flags/third_party/blink/common/features_h/Add-setting-to-invert-tap-and-long-tap.inc
@@ -128,7 +129,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
-@@ -478,6 +478,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
+@@ -488,6 +488,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
if (mParams.isAnchor()) {
ModelList linkGroup = new ModelList();
@@ -138,19 +139,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
if (FirstRunStatus.getFirstRunFlowComplete()
&& !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
-@@ -1083,6 +1086,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
- getProfile(),
- false);
- });
+@@ -1132,6 +1135,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
+ title = mParams.getLinkText();
+ }
+ tabItemDelegate.onReadLater(mParams.getUrl(), title);
+ } else if (itemId == R.id.contextmenu_open_in_tab) {
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
} else if (itemId == R.id.contextmenu_open_in_chrome) {
recordContextMenuSelection(ContextMenuUma.Action.OPEN_IN_CHROME);
- mItemDelegate.onOpenInChrome(mParams.getUrl(), mParams.getPageUrl());
+ tabItemDelegate.onOpenInChrome(mParams.getUrl(), mParams.getPageUrl());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
-@@ -414,6 +414,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+@@ -417,6 +417,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
mTab.loadUrl(loadUrlParams);
}
@@ -168,8 +169,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -443,6 +443,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kTabFreezingUsesDiscard,
+@@ -446,6 +446,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+ &kTabClosureMethodRefactor,
&kTabModelInitFixes,
&kTabStorageSqlitePrototype,
+ &blink::features::kShowAlwaysContextMenuOnLinks,
@@ -179,16 +180,16 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -514,6 +514,8 @@ public abstract class ChromeFeatureList {
+@@ -526,6 +526,8 @@ public abstract class ChromeFeatureList {
"DisableToolbarSwipeUp";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom";
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
+ "ShowAlwaysContextMenuOnLinks";
- public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON =
- "NewTabPageCustomizationToolbarButton";
+ public static final String NEW_TAB_PAGE_CUSTOMIZATION_THEME_SYNC =
+ "NewTabPageCustomizationThemeSync";
public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2";
-@@ -1024,6 +1026,8 @@ public abstract class ChromeFeatureList {
+@@ -1049,6 +1051,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
public static final CachedFlag sMoveTopToolbarToBottom =
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
@@ -197,7 +198,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
public static final CachedFlag sPersistAcrossReboots =
newCachedFlag(PERSIST_ACROSS_REBOOTS, false);
-@@ -1293,6 +1297,7 @@ public abstract class ChromeFeatureList {
+@@ -1323,6 +1327,7 @@ public abstract class ChromeFeatureList {
sTopControlsRefactorV2,
sTouchToSearchCallout,
sUnparcelIntentFileDescriptors,
@@ -208,7 +209,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1584,6 +1584,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1657,6 +1657,12 @@ Your Google account may have other forms of browsing history like searches and a
Disable toolbar swipe up
@@ -221,7 +222,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
-@@ -3247,6 +3253,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -3320,6 +3326,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d
Open in new Chrome tab
@@ -297,7 +298,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
-@@ -10,6 +10,7 @@ import androidx.annotation.IntDef;
+@@ -11,6 +11,7 @@ import androidx.annotation.IntDef;
import org.chromium.build.annotations.NullMarked;
import org.chromium.content_public.browser.WebContents;
@@ -305,7 +306,7 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
import org.chromium.url.GURL;
import java.lang.annotation.Retention;
-@@ -150,6 +151,8 @@ public interface ContextMenuItemDelegate {
+@@ -175,6 +176,8 @@ public interface ContextMenuItemDelegate {
*/
GURL getPageUrl();
@@ -314,6 +315,29 @@ diff --git a/components/embedder_support/android/java/src/org/chromium/component
/**
* Called when the current embedder app is not the default to handle a View Intent.
*
+diff --git a/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java b/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java
+--- a/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java
++++ b/components/thin_webview/internal/java/src/org/chromium/components/thinwebview/internal/ThinWebViewContextMenuItemDelegate.java
+@@ -6,6 +6,7 @@ package org.chromium.components.thinwebview.internal;
+
+ import org.chromium.build.annotations.NullMarked;
+ import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
++import org.chromium.content_public.common.Referrer;
+ import org.chromium.content_public.browser.WebContents;
+ import org.chromium.ui.base.Clipboard;
+ import org.chromium.url.GURL;
+@@ -43,6 +44,11 @@ public class ThinWebViewContextMenuItemDelegate implements ContextMenuItemDelega
+ // Intentionally empty.
+ }
+
++ @Override
++ public void onOpenUrl(GURL url, Referrer referrer) {
++ // Intentionally empty. (Add setting to invert tap and long tap)
++ }
++
+ @Override
+ public GURL getPageUrl() {
+ return mWebContents.getVisibleUrl();
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
new file mode 100644
--- /dev/null
@@ -352,7 +376,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h"
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
-@@ -422,6 +423,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
+@@ -429,6 +430,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
bool is_trusted,
base::TimeTicks platform_time_stamp,
KURL completed_url) {
@@ -370,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
LocalDOMWindow* window = GetDocument().domWindow();
if (!window) {
return;
-@@ -502,6 +514,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
+@@ -509,6 +521,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
frame_request.SetImpression(impression);
}
@@ -386,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
Frame* target_frame =
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
-@@ -538,7 +559,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const {
+@@ -545,7 +566,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const {
return IsLink();
}
@@ -395,7 +419,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
event.SetDefaultHandled();
LocalDOMWindow* window = GetDocument().domWindow();
-@@ -596,13 +617,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
+@@ -603,13 +624,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
return;
}
@@ -413,7 +437,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
// We distinguish single/double click with some modifiers.
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
auto task_handle = PostDelayedCancellableTask(
-@@ -612,7 +632,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
+@@ -619,7 +639,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
std::move(task_handle));
} else {
@@ -488,7 +512,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
+
bool HTMLImageElement::draggable() const {
// Image elements are draggable by default.
- return !EqualIgnoringASCIICase(FastGetAttribute(html_names::kDraggableAttr),
+ return !EqualIgnoringAsciiCase(FastGetAttribute(html_names::kDraggableAttr),
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
--- a/third_party/blink/renderer/core/html/html_image_element.h
+++ b/third_party/blink/renderer/core/html/html_image_element.h
@@ -552,7 +576,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Clear any previously set cached results if we are resetting the hit test
// result.
image_selection_cached_result_ = nullptr;
-@@ -844,7 +857,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
+@@ -843,7 +856,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
SetAutofillData(result.InnerNode(), data);
diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch
index b42cd226..5a476696 100644
--- a/build/patches/Add-site-engagement-flag.patch
+++ b/build/patches/Add-site-engagement-flag.patch
@@ -26,10 +26,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -165,6 +165,7 @@
+@@ -166,6 +166,7 @@
#include "components/sensitive_content/features.h"
#include "components/services/heap_profiling/public/cpp/switches.h"
- #include "components/services/storage/public/cpp/buckets/bucket_info.h"
+ #include "components/services/storage/dom_storage/features.h"
+#include "components/site_engagement/core/features.h"
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
#include "components/sharing_message/features.h"
diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch
index f2b10d59..0a695084 100644
--- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch
+++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -1018,8 +1018,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -1056,8 +1056,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {
RecordUserAction.record("Settings.MobileHelpAndFeedback");
diff --git a/build/patches/Add-support-for-writing-URIs.patch b/build/patches/Add-support-for-writing-URIs.patch
index 92339b4b..247695b0 100644
--- a/build/patches/Add-support-for-writing-URIs.patch
+++ b/build/patches/Add-support-for-writing-URIs.patch
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc
--- a/base/android/content_uri_utils.cc
+++ b/base/android/content_uri_utils.cc
-@@ -139,6 +139,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env,
+@@ -140,6 +140,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(
Time::FromMillisecondsSinceUnixEpoch(last_modified));
}
diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch
index 63e8174b..e8916a93 100644
--- a/build/patches/Allow-building-without-enable_reporting.patch
+++ b/build/patches/Allow-building-without-enable_reporting.patch
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
-@@ -1608,6 +1608,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
+@@ -1628,6 +1628,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
}
}
@@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
std::vector urls;
frame_host->ForEachRenderFrameHostImplWithAction(
-@@ -1621,6 +1622,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
+@@ -1641,6 +1642,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
});
return urls;
}
@@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -16557,12 +16557,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
+@@ -16685,12 +16685,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
}
}
}
@@ -340,7 +340,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
-@@ -1890,7 +1890,6 @@ mojom("mojom") {
+@@ -1894,7 +1894,6 @@ mojom("mojom") {
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
if (enable_reporting) {
@@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
-@@ -1229,6 +1229,7 @@ interface NetworkContext {
+@@ -1247,6 +1247,7 @@ interface NetworkContext {
// provided `network_anonymization_key`.
//
// Spec: https://w3c.github.io/reporting/#concept-reports
@@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueReport(string type,
string group,
url.mojom.Url url,
-@@ -1236,6 +1237,7 @@ interface NetworkContext {
+@@ -1254,6 +1255,7 @@ interface NetworkContext {
NetworkAnonymizationKey network_anonymization_key,
mojo_base.mojom.DictionaryValue body);
@@ -367,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueEnterpriseReport(string type,
string group,
url.mojom.Url url,
-@@ -1246,6 +1248,7 @@ interface NetworkContext {
+@@ -1264,6 +1266,7 @@ interface NetworkContext {
// Note that this queued report will never be delivered if no reporting
// endpoint matching is registered for with the provided
// `network_anonymization_key`.
@@ -436,7 +436,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
#include "net/storage_access_api/status.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
-@@ -671,7 +672,9 @@ class CORE_EXPORT LocalFrame final
+@@ -677,7 +678,9 @@ class CORE_EXPORT LocalFrame final
return client_hints_preferences_;
}
diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch
index adce842b..04c0efd3 100644
--- a/build/patches/Allow-building-without-supervised-users.patch
+++ b/build/patches/Allow-building-without-supervised-users.patch
@@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -823,7 +823,6 @@ if (_is_default_toolchain) {
+@@ -833,7 +833,6 @@ if (_is_default_toolchain) {
"//components/offline_pages/core:offline_page_model_enums_java",
"//components/sharing_message:sharing_dialog_type_generated_enum",
"//components/sharing_message:sharing_send_message_result_generated_enum",
@@ -36,7 +36,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
-@@ -95,7 +95,6 @@ public class ChromeFeedbackCollector extends FeedbackCollector profile,
-@@ -2062,9 +2058,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
+@@ -2077,9 +2073,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -165,7 +165,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
-@@ -620,10 +620,6 @@ bool ManagementUIHandler::managed() const {
+@@ -621,10 +621,6 @@ bool ManagementUIHandler::managed() const {
void ManagementUIHandler::RegisterPrefChange(
PrefChangeRegistrar& pref_registrar) {
diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch
index ff931da1..aac8fbde 100644
--- a/build/patches/Allow-playing-audio-in-background.patch
+++ b/build/patches/Allow-playing-audio-in-background.patch
@@ -23,7 +23,7 @@ diff --git a/content/public/renderer/render_frame_media_playback_options.cc b/co
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
-@@ -1296,6 +1296,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
+@@ -1342,6 +1342,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio;
}
@@ -36,7 +36,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
std::optional enabled_track_id) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
-@@ -3658,7 +3664,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
+@@ -3740,7 +3746,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured();
// Audio only stream is allowed to play when in background.
@@ -51,7 +51,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.h
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h
-@@ -211,6 +211,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
+@@ -213,6 +213,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl
bool HasVideo() const override;
bool HasAudio() const override;
diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch
index a0094c90..5469deb9 100644
--- a/build/patches/Always-open-browser-controls-in-new-tab.patch
+++ b/build/patches/Always-open-browser-controls-in-new-tab.patch
@@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl;
-@@ -45,6 +46,7 @@ import org.chromium.chrome.browser.preferences.Pref;
+@@ -46,6 +47,7 @@ import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.browser.profiles.Profile;
@@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
-@@ -348,6 +350,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+@@ -351,6 +353,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Nullable Referrer referrer,
boolean navigateToTab,
@Nullable AdditionalNavigationParams additionalNavigationParams) {
@@ -34,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
RecordUserAction.record("MobileNewTabOpened");
RecordUserAction.record("LinkOpenedInNewTab");
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
-@@ -368,6 +371,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+@@ -371,6 +374,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
* @param url The URL to open.
*/
public void onOpenInNewTabInGroup(GURL url, @Nullable Referrer referrer) {
diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch
index e96a98f3..89246e79 100644
--- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch
+++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch
@@ -68,7 +68,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b
diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
--- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
+++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
-@@ -96,6 +96,7 @@ public class TemplateUrl {
+@@ -109,6 +109,7 @@ public class TemplateUrl {
* prepopulated_engines.json.
*/
public String getNewTabURL() {
@@ -79,7 +79,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
--- a/components/search_engines/android/template_url_service_android.cc
+++ b/components/search_engines/android/template_url_service_android.cc
-@@ -412,6 +412,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
+@@ -414,6 +414,7 @@ bool TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
jimage_translate_source_language_param_key,
const base::android::JavaRef&
jimage_translate_target_language_param_key) {
diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch
index a346f805..e0072cbe 100644
--- a/build/patches/Android-Pixel-Perfect-Mode.patch
+++ b/build/patches/Android-Pixel-Perfect-Mode.patch
@@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../render_widget_host_input_event_router.cc | 5 +-
.../input/render_widget_host_view_input.cc | 3 ++
components/input/render_widget_targeter.cc | 4 +-
- .../thin_webview/internal/thin_webview.cc | 2 +-
+ .../thin_webview/internal/thin_webview.cc | 3 +-
components/viz/service/input/input_manager.cc | 2 +-
.../render_input_router_support_android.cc | 2 +-
...render_input_router_support_child_frame.cc | 2 +-
@@ -107,7 +107,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
ui/display/mojom/screen_info_mojom_traits.h | 4 ++
ui/display/screen_info.h | 1 +
ui/events/blink/blink_event_util.cc | 2 +-
- 97 files changed, 530 insertions(+), 138 deletions(-)
+ 97 files changed, 531 insertions(+), 138 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Pixel-perfect-mode.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Pixel-perfect-mode.inc
@@ -117,7 +117,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
--- a/android_webview/browser/aw_contents.cc
+++ b/android_webview/browser/aw_contents.cc
-@@ -1004,7 +1004,7 @@ void AwContents::OnSizeChanged(JNIEnv* env, int w, int h, int ow, int oh) {
+@@ -1008,7 +1008,7 @@ void AwContents::OnSizeChanged(JNIEnv* env, int w, int h, int ow, int oh) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
gfx::Size size(w, h);
web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(size);
@@ -129,7 +129,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw
diff --git a/cc/input/input_handler.cc b/cc/input/input_handler.cc
--- a/cc/input/input_handler.cc
+++ b/cc/input/input_handler.cc
-@@ -737,7 +737,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt(
+@@ -747,7 +747,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt(
return result;
}
@@ -174,7 +174,7 @@ diff --git a/cc/layers/viewport.cc b/cc/layers/viewport.cc
diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_context.cc
--- a/cc/mojo_embedder/viz_layer_context.cc
+++ b/cc/mojo_embedder/viz_layer_context.cc
-@@ -1355,7 +1355,7 @@ void VizLayerContext::SetVisible(bool visible) {
+@@ -1356,7 +1356,7 @@ void VizLayerContext::SetVisible(bool visible) {
service_->SetVisible(visible);
}
@@ -208,7 +208,7 @@ diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
-@@ -1416,7 +1416,7 @@ void LayerTreeHost::SetEventListenerProperties(
+@@ -1429,7 +1429,7 @@ void LayerTreeHost::SetEventListenerProperties(
SetNeedsCommit();
}
@@ -217,7 +217,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
const gfx::Rect& device_viewport_rect,
float device_scale_factor,
const viz::LocalSurfaceId& local_surface_id_from_parent) {
-@@ -1527,9 +1527,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) {
+@@ -1540,9 +1540,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) {
void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
float min_page_scale_factor,
@@ -229,7 +229,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
pending_commit_state()->max_page_scale_factor == max_page_scale_factor)
return;
DCHECK_GE(page_scale_factor, min_page_scale_factor);
-@@ -1545,6 +1547,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
+@@ -1558,6 +1560,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
pending_commit_state()->page_scale_factor = page_scale_factor;
pending_commit_state()->min_page_scale_factor = min_page_scale_factor;
@@ -261,7 +261,7 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
-@@ -2877,7 +2877,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() {
+@@ -2695,7 +2695,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() {
return bounds;
}
@@ -270,7 +270,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
viz::CompositorFrameMetadata metadata;
if (settings().trees_in_viz_in_viz_process) {
// In TreesInViz mode, this function is called in client process already,
-@@ -3038,7 +3038,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() {
+@@ -2856,7 +2856,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() {
return metadata;
}
@@ -454,7 +454,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
-@@ -1765,7 +1765,7 @@ void ScrollTree::clear() {
+@@ -1773,7 +1773,7 @@ void ScrollTree::clear() {
#endif
}
@@ -463,7 +463,7 @@ diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
const ScrollNode* scroll_node = Node(scroll_node_id);
gfx::SizeF scroll_bounds = this->scroll_bounds(scroll_node_id);
-@@ -2318,7 +2318,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node,
+@@ -2326,7 +2326,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node,
return old_offset + scroll - new_offset;
}
@@ -487,7 +487,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
-@@ -302,7 +302,7 @@ public class WarmupManager {
+@@ -303,7 +303,7 @@ public class WarmupManager {
int height = bounds.bottom - bounds.top;
webContents = tab.getWebContents();
assumeNonNull(webContents);
@@ -499,7 +499,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -44,6 +44,9 @@ import androidx.annotation.NonNull;
+@@ -43,6 +43,9 @@ import androidx.annotation.CallSuper;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
@@ -509,7 +509,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.Callback;
-@@ -553,7 +556,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -556,7 +559,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
// Ensure that mConfig is initialized before tablet mode changes.
mConfig = getResources().getConfiguration();
@@ -539,21 +539,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
-@@ -1005,7 +1005,7 @@ public class CompositorViewHolder extends FrameLayout
- int viewportInsets = controlsInsets + keyboardInset;
+@@ -1049,7 +1049,7 @@ public class CompositorViewHolder extends FrameLayout
+ int verticalViewportInsets = controlsInsets + keyboardInset;
if (isAttachedToWindow(view)) {
-- webContents.setSize(width, height - viewportInsets);
-+ webContents.setSize(width, height - viewportInsets, viewportInsets);
+- webContents.setSize(width - horizontalViewportInsets, height - verticalViewportInsets);
++ webContents.setSize(width - horizontalViewportInsets, height - verticalViewportInsets, verticalViewportInsets);
// Dispatch the geometrychange JavaScript event to the page.
// TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer
-@@ -1025,7 +1025,7 @@ public class CompositorViewHolder extends FrameLayout
- MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
- MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
+@@ -1071,7 +1071,7 @@ public class CompositorViewHolder extends FrameLayout
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
-- webContents.setSize(view.getWidth(), view.getHeight() - viewportInsets);
-+ webContents.setSize(view.getWidth(), view.getHeight() - viewportInsets, viewportInsets);
+ webContents.setSize(
+ view.getWidth() - horizontalViewportInsets,
+- view.getHeight() - verticalViewportInsets);
++ view.getHeight() - verticalViewportInsets, verticalViewportInsets);
requestRender();
}
}
@@ -572,7 +572,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bott
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
-@@ -2490,7 +2490,7 @@ class TabImpl implements Tab {
+@@ -2429,7 +2429,7 @@ class TabImpl implements Tab {
View compositorView =
assumeNonNull(getActivity()).getCompositorViewHolderSupplier().get();
assumeNonNull(compositorView);
@@ -629,7 +629,7 @@ diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/
diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/browser/android/compositor/tab_content_manager.cc
--- a/chrome/browser/android/compositor/tab_content_manager.cc
+++ b/chrome/browser/android/compositor/tab_content_manager.cc
-@@ -26,6 +26,7 @@
+@@ -28,6 +28,7 @@
#include "chrome/browser/android/tab_android.h"
#include "chrome/browser/thumbnail/cc/thumbnail.h"
#include "components/viz/common/frame_sinks/copy_output_result.h"
@@ -637,8 +637,8 @@ diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/b
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_view_host.h"
-@@ -74,7 +75,10 @@ class TabContentManager::TabReadbackRequest {
- std::move(result_callback).Run(viz::CopyOutputBitmapWithMetadata());
+@@ -129,7 +130,10 @@ class TabContentManager::TabReadbackRequest : public RetryableTask {
+ std::move(result_callback).Run(content::CopyFromSurfaceResult());
return;
}
- gfx::Rect source_rect = gfx::Rect(view_size_in_pixels);
@@ -648,7 +648,7 @@ diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/b
+ gfx::Rect source_rect = gfx::Rect(view_size_in_pixels.width() / scale, view_size_in_pixels.height() / scale);
gfx::Size thumbnail_size(
gfx::ScaleToCeiledSize(view_size_in_pixels, thumbnail_scale_));
- rwhv->CopyFromSurface(source_rect, thumbnail_size, base::TimeDelta(),
+ rwhv->CopyFromSurface(source_rect, thumbnail_size, kTabReadbackTimeout,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java
new file mode 100644
--- /dev/null
@@ -836,15 +836,16 @@ diff --git a/components/input/render_widget_targeter.cc b/components/input/rende
diff --git a/components/thin_webview/internal/thin_webview.cc b/components/thin_webview/internal/thin_webview.cc
--- a/components/thin_webview/internal/thin_webview.cc
+++ b/components/thin_webview/internal/thin_webview.cc
-@@ -104,7 +104,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) {
- return;
+@@ -131,7 +131,8 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) {
- web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(size);
-- web_contents_->GetNativeView()->OnSizeChanged(size.width(), size.height());
-+ web_contents_->GetNativeView()->OnSizeChanged(size.width(), size.height(), size.width(), size.height());
- }
+ web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(viewport_size);
+ web_contents_->GetNativeView()->OnSizeChanged(viewport_size.width(),
+- viewport_size.height());
++ viewport_size.height(),
++ viewport_size.width(), viewport_size.height());
- } // namespace android
+ // Position the WebContents layer to account for top/left insets.
+ // Content is drawn at (0,0) in its own layer space, so we move the layer.
diff --git a/components/viz/service/input/input_manager.cc b/components/viz/service/input/input_manager.cc
--- a/components/viz/service/input/input_manager.cc
+++ b/components/viz/service/input/input_manager.cc
@@ -884,7 +885,7 @@ diff --git a/components/viz/service/input/render_input_router_support_child_fram
diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/viz/service/layers/layer_context_impl.cc
--- a/components/viz/service/layers/layer_context_impl.cc
+++ b/components/viz/service/layers/layer_context_impl.cc
-@@ -1955,7 +1955,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree(
+@@ -1957,7 +1957,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree(
return base::unexpected("Invalid page scale factors");
}
layers.SetPageScaleFactorAndLimitsForDisplayTree(
@@ -896,7 +897,7 @@ diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/vi
diff --git a/content/browser/android/selection/selection_popup_controller.cc b/content/browser/android/selection/selection_popup_controller.cc
--- a/content/browser/android/selection/selection_popup_controller.cc
+++ b/content/browser/android/selection/selection_popup_controller.cc
-@@ -189,7 +189,7 @@ void SelectionPopupController::MoveRangeSelectionExtent(
+@@ -191,7 +191,7 @@ void SelectionPopupController::MoveRangeSelectionExtent(
web_contents_impl->MoveRangeSelectionExtent(gfx::ToRoundedPoint(extent));
}
@@ -905,7 +906,7 @@ diff --git a/content/browser/android/selection/selection_popup_controller.cc b/c
const gfx::PointF& base,
const gfx::PointF& extent) {
auto* web_contents_impl = static_cast(web_contents());
-@@ -321,7 +321,8 @@ bool SelectionPopupController::ShowSelectionMenu(
+@@ -327,7 +327,8 @@ bool SelectionPopupController::ShowSelectionMenu(
can_select_all, can_edit_richly, should_suggest,
static_cast(params.source_type),
render_frame_host->GetJavaRenderFrameHost(),
@@ -961,7 +962,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co
diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc
--- a/content/browser/renderer_host/delegated_frame_host.cc
+++ b/content/browser/renderer_host/delegated_frame_host.cc
-@@ -187,7 +187,7 @@ void DelegatedFrameHost::CopyFromCompositingSurfaceAsTexture(
+@@ -194,7 +194,7 @@ void DelegatedFrameHost::CopyFromCompositingSurfaceAsTexture(
base::TimeDelta(), std::move(callback));
}
@@ -985,7 +986,7 @@ diff --git a/content/browser/renderer_host/input/touch_selection_controller_clie
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -9439,7 +9439,7 @@ void RenderFrameHostImpl::ShowPopupMenu(
+@@ -9547,7 +9547,7 @@ void RenderFrameHostImpl::ShowPopupMenu(
#endif
}
@@ -1191,7 +1192,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
-@@ -821,8 +821,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) {
+@@ -826,8 +826,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) {
return Java_WebContentsImpl_createSize(env, size.width(), size.height());
}
@@ -1208,7 +1209,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
-@@ -187,7 +187,7 @@ class CONTENT_EXPORT WebContentsAndroid {
+@@ -188,7 +188,7 @@ class CONTENT_EXPORT WebContentsAndroid {
base::android::ScopedJavaLocalRef GetFullscreenVideoSize(
JNIEnv* env);
@@ -1220,7 +1221,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
-@@ -535,7 +535,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
+@@ -507,7 +507,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
!command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise));
// CAUTION: Only add custom enabling logic here if it cannot
// be covered by the other functions.
@@ -1236,7 +1237,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
-@@ -531,7 +531,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
+@@ -532,7 +532,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
boolean shouldSuggest,
int sourceType,
RenderFrameHost renderFrameHost,
@@ -1246,7 +1247,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
mMenuModelBridge = menuModelBridge;
RecordHistogram.recordEnumeratedHistogram(
"Android.ShowSelectionMenuSourceType", sourceType, MenuSourceType.MAX_VALUE);
-@@ -541,6 +542,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
+@@ -542,6 +543,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
mXDip = xDip;
mYDip = yDip;
mSelectionRect.set(left, top, right, offsetBottom);
@@ -1258,7 +1259,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
-@@ -988,9 +988,9 @@ public class WebContentsImpl
+@@ -1015,9 +1015,9 @@ public class WebContentsImpl
}
@Override
@@ -1270,7 +1271,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
}
@Override
-@@ -1477,7 +1477,7 @@ public class WebContentsImpl
+@@ -1508,7 +1508,7 @@ public class WebContentsImpl
Rect getFullscreenVideoSize(long nativeWebContentsAndroid);
@@ -1294,7 +1295,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
-@@ -18,6 +18,10 @@
+@@ -22,6 +22,10 @@
namespace features {
@@ -1344,7 +1345,7 @@ new file mode 100644
diff --git a/services/viz/public/mojom/compositing/layer_context.mojom b/services/viz/public/mojom/compositing/layer_context.mojom
--- a/services/viz/public/mojom/compositing/layer_context.mojom
+++ b/services/viz/public/mojom/compositing/layer_context.mojom
-@@ -82,6 +82,7 @@ struct LayerTreeUpdate {
+@@ -83,6 +83,7 @@ struct LayerTreeUpdate {
// The page scale factors set by the tree's client. All must be positive,
// non-zero.
float page_scale_factor;
@@ -1470,7 +1471,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -1267,8 +1267,19 @@ void WebViewImpl::UpdateICBAndResizeViewport(
+@@ -1256,8 +1256,19 @@ void WebViewImpl::UpdateICBAndResizeViewport(
if (GetBrowserControls().PermittedState() ==
cc::BrowserControlsState::kBoth &&
!GetBrowserControls().ShrinkViewport()) {
@@ -1492,7 +1493,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
GetPageScaleConstraintsSet().DidChangeInitialContainingBlockSize(icb_size);
-@@ -1348,7 +1359,8 @@ void WebViewImpl::DidUpdateBrowserControls() {
+@@ -1337,7 +1348,8 @@ void WebViewImpl::DidUpdateBrowserControls() {
ResizeViewportAnchor::ResizeScope resize_scope(*resize_viewport_anchor_);
visual_viewport.SetBrowserControlsAdjustment(
@@ -1502,7 +1503,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
}
-@@ -1412,7 +1424,7 @@ void WebViewImpl::ResizeWithBrowserControls(
+@@ -1401,7 +1413,7 @@ void WebViewImpl::ResizeWithBrowserControls(
float bottom_controls_height,
bool browser_controls_shrink_layout) {
ResizeWithBrowserControls(
@@ -1511,7 +1512,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
{top_controls_height, GetBrowserControls().TopMinHeight(),
bottom_controls_height, GetBrowserControls().BottomMinHeight(),
GetBrowserControls().AnimateHeightChanges(),
-@@ -1422,6 +1434,8 @@ void WebViewImpl::ResizeWithBrowserControls(
+@@ -1411,6 +1423,8 @@ void WebViewImpl::ResizeWithBrowserControls(
void WebViewImpl::ResizeWithBrowserControls(
const gfx::Size& main_frame_widget_size,
const gfx::Size& visible_viewport_size,
@@ -1520,7 +1521,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
cc::BrowserControlsParams browser_controls_params) {
if (should_auto_resize_) {
// When auto-resizing only the viewport size comes from the browser, while
-@@ -1430,6 +1444,11 @@ void WebViewImpl::ResizeWithBrowserControls(
+@@ -1419,6 +1433,11 @@ void WebViewImpl::ResizeWithBrowserControls(
return;
}
@@ -1532,7 +1533,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
if (size_ == main_frame_widget_size &&
GetPage()->GetVisualViewport().Size() == visible_viewport_size &&
GetBrowserControls().Params() == browser_controls_params)
-@@ -2114,7 +2133,7 @@ void WebViewImpl::DidAttachLocalMainFrame() {
+@@ -2107,7 +2126,7 @@ void WebViewImpl::DidAttachLocalMainFrame() {
web_preferences_.prefers_reduced_motion);
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1541,7 +1542,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
// Prevent main frame updates while the main frame is loading until enough
// progress is made and BeginMainFrames are explicitly asked for.
scoped_defer_main_frame_update_ =
-@@ -2961,7 +2980,7 @@ void WebViewImpl::RefreshPageScaleFactor() {
+@@ -2954,7 +2973,7 @@ void WebViewImpl::RefreshPageScaleFactor() {
auto& viewport = GetPage()->GetVisualViewport();
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1550,7 +1551,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
}
-@@ -3040,7 +3059,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints(
+@@ -3034,7 +3053,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints(
TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame());
}
@@ -1559,7 +1560,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
if (should_auto_resize_ || !MainFrameImpl())
return;
-@@ -3368,6 +3387,10 @@ float WebViewImpl::MinimumPageScaleFactor() const {
+@@ -3395,6 +3414,10 @@ float WebViewImpl::MinimumPageScaleFactor() const {
return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale;
}
@@ -1570,7 +1571,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
float WebViewImpl::MaximumPageScaleFactor() const {
return GetPageScaleConstraintsSet().FinalConstraints().maximum_scale;
}
-@@ -3418,7 +3441,7 @@ void WebViewImpl::SendResizeEventForMainFrame() {
+@@ -3445,7 +3468,7 @@ void WebViewImpl::SendResizeEventForMainFrame() {
auto& viewport = GetPage()->GetVisualViewport();
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1579,7 +1580,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
}
-@@ -3963,7 +3986,7 @@ void WebViewImpl::PageScaleFactorChanged() {
+@@ -3996,7 +4019,7 @@ void WebViewImpl::PageScaleFactorChanged() {
DCHECK(viewport.IsActiveViewport());
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1591,7 +1592,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
-@@ -168,6 +168,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -169,6 +169,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
void AdvanceFocus(bool reverse) override;
float PageScaleFactor() const override;
float MinimumPageScaleFactor() const override;
@@ -1599,7 +1600,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa
float MaximumPageScaleFactor() const override;
void SetDefaultPageScaleLimits(float min_scale, float max_scale) override;
void SetInitialPageScaleOverride(float) override;
-@@ -281,6 +282,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -282,6 +283,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
// includes all browser controls params such as the min heights.
void ResizeWithBrowserControls(const gfx::Size& main_frame_widget_size,
const gfx::Size& visible_viewport_size,
@@ -1608,7 +1609,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa
cc::BrowserControlsParams);
// Requests a page-scale animation based on the specified point/rect.
-@@ -841,6 +844,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
+@@ -844,6 +847,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
// The upper bound on the size when auto-resizing.
gfx::Size max_auto_size_;
@@ -1620,7 +1621,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
-@@ -1805,8 +1805,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) {
+@@ -1871,8 +1871,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) {
}
float LocalFrameView::InputEventsScaleFactor() const {
@@ -1698,7 +1699,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa
visible_size.Scale(1 / scale_);
return gfx::RectF(ScrollPosition(), visible_size);
-@@ -869,10 +901,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset,
+@@ -901,10 +933,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset,
return clamped;
}
@@ -1761,7 +1762,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_par
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
-@@ -1886,6 +1886,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
+@@ -1885,6 +1885,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
// All non-top-level Widgets (child local-root frames, GuestViews,
// etc.) propagate and consume the page scale factor as "external", meaning
// that it comes from the top level widget's page scale.
@@ -1771,7 +1772,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (!ForTopMostMainFrame()) {
// The main frame controls the page scale factor, from blink. For other
// frame widgets, the page scale from pinch zoom and compositing scale is
-@@ -1893,7 +1896,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
+@@ -1892,7 +1895,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
// blink doesn't need to know this page scale factor outside the main frame,
// the compositor does in order to produce its output at the correct scale.
float combined_scale_factor = visual_properties.page_scale_factor *
@@ -1780,7 +1781,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
widget_base_->LayerTreeHost()->SetExternalPageScaleFactor(
combined_scale_factor, visual_properties.is_pinch_gesture_active);
-@@ -1906,7 +1909,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
+@@ -1905,7 +1908,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
// Ensure the external scale factor in top-level widgets is reset as it may
// be leftover from when a widget was nested and was promoted to top level.
widget_base_->LayerTreeHost()->SetExternalPageScaleFactor(
@@ -1789,7 +1790,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
/*is_pinch_gesture_active=*/false);
}
-@@ -1950,6 +1953,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
+@@ -1949,6 +1952,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
new_compositor_viewport_pixel_rect,
device_scale_factor_for_testing_ / non_testing_device_scale_factor_);
}
@@ -1808,7 +1809,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (ForMainFrame()) {
if (size_ != new_size) {
-@@ -1967,6 +1982,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
+@@ -1966,6 +1981,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
size_.value(),
widget_base_->DIPsToCeiledBlinkSpace(
widget_base_->VisibleViewportSize()),
@@ -1817,7 +1818,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
visual_properties.browser_controls_params);
return;
}
-@@ -2000,6 +2017,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
+@@ -1999,6 +2016,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
View()->ResizeWithBrowserControls(
size_.value(), widget_base_->VisibleViewportSize(),
@@ -1826,7 +1827,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
visual_properties.browser_controls_params);
}
-@@ -2384,6 +2403,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
+@@ -2383,6 +2402,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
View()->ZoomFactorForViewportLayout() *
static_cast(View()->ZoomLevelToZoomFactor(zoom_level)) *
static_cast(css_zoom_factor);
@@ -1835,7 +1836,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (zoom_changed) {
// Set the layout shift exclusion window for the zoom level change.
if (LocalFrameView* view = document->View()) {
-@@ -3439,6 +3460,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) {
+@@ -3438,6 +3459,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) {
// be needed in setting the raster scale.
SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */,
View()->MinimumPageScaleFactor(),
@@ -1843,7 +1844,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
View()->MaximumPageScaleFactor());
}
-@@ -4824,9 +4846,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
+@@ -4870,9 +4892,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
float page_scale_factor,
bool is_pinch_gesture_active,
float minimum,
@@ -1855,7 +1856,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
// Only propagate page scale from the main frame.
if (ForMainFrame()) {
-@@ -4950,7 +4973,10 @@ void WebFrameWidgetImpl::OrientationChanged() {
+@@ -4996,7 +5019,10 @@ void WebFrameWidgetImpl::OrientationChanged() {
void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen(
const display::ScreenInfos& previous_original_screen_infos) {
display::ScreenInfo screen_info = widget_base_->GetScreenInfo();
@@ -1867,7 +1868,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (ShouldAutoDetermineCompositingToLCDTextSetting()) {
// This causes compositing state to be modified which dirties the
-@@ -5160,7 +5186,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) {
+@@ -5206,7 +5232,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) {
if (!device_scale_factor_for_testing_) {
non_testing_device_scale_factor_ =
@@ -1879,7 +1880,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
-@@ -661,6 +661,7 @@ class CORE_EXPORT WebFrameWidgetImpl
+@@ -662,6 +662,7 @@ class CORE_EXPORT WebFrameWidgetImpl
void SetPageScaleStateAndLimits(float page_scale_factor,
bool is_pinch_gesture_active,
float minimum,
@@ -1890,7 +1891,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/thi
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
-@@ -2564,7 +2564,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) {
+@@ -2577,7 +2577,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) {
dev_tools_agent_->PaintOverlays(context);
}
@@ -1899,7 +1900,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi
TRACE_EVENT0("blink", "WebLocalFrameImpl::createFrameView");
DCHECK(GetFrame()); // If frame() doesn't exist, we probably didn't init
-@@ -3046,7 +3046,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal(
+@@ -3068,7 +3068,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal(
std::move(context_menu_client), params);
}
@@ -1911,7 +1912,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
-@@ -1523,6 +1523,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image,
+@@ -1517,6 +1517,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image,
}
bool HTMLCanvasElement::ShouldAccelerate() const {
@@ -1922,7 +1923,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc
--- a/third_party/blink/renderer/core/input/event_handler.cc
+++ b/third_party/blink/renderer/core/input/event_handler.cc
-@@ -2138,7 +2138,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent(
+@@ -2149,7 +2149,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent(
hit_test_result);
}
@@ -1934,7 +1935,7 @@ diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_part
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
--- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
-@@ -1075,7 +1075,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride(
+@@ -1090,7 +1090,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride(
// Ensure the override is applied immediately without having to wait for
// `WebFrameWidgetImpl::UpdateVisualProperties()` to be called.
GetWebViewImpl()->ResizeWithBrowserControls(
@@ -1947,7 +1948,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
-@@ -1290,6 +1290,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) {
+@@ -1301,6 +1301,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) {
|| disable_screen_emulated_) {
isEnabled = false;
}
@@ -1961,14 +1962,14 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
diff --git a/third_party/blink/renderer/core/page/viewport_description.cc b/third_party/blink/renderer/core/page/viewport_description.cc
--- a/third_party/blink/renderer/core/page/viewport_description.cc
+++ b/third_party/blink/renderer/core/page/viewport_description.cc
-@@ -87,7 +87,7 @@ float ViewportDescription::ResolveViewportLength(
+@@ -80,7 +80,7 @@ float ViewportDescription::ResolveViewportLength(
NOTREACHED();
}
-PageScaleConstraints ViewportDescription::Resolve(
+PageScaleConstraints ViewportDescription::Resolve( // POI
const gfx::SizeF& initial_viewport_size,
- const Length& legacy_fallback_width) const {
+ const ViewportLength& legacy_fallback_width) const {
float result_width = kValueAuto;
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -1996,7 +1997,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -6443,5 +6443,9 @@
+@@ -6683,5 +6683,9 @@
// crbug.com/435623334.
name: "XSLTSpecialTrial",
},
@@ -2077,8 +2078,8 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
}
@@ -933,7 +948,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler(
- // TODO(arakeri): Pass in the modifier instead of a bool once the
- // refactor (crbug.com/1022097) is done. For details, see
+ // TODO(crbug.com/40106459): Pass in the modifier instead of a bool
+ // once the refactor is done. For details, see
// crbug.com/1016955.
- HandlePointerDown(event_with_callback, mouse_event.PositionInWidget());
+ HandlePointerDown(event_with_callback, ScalePoint(mouse_event.PositionInWidget()));
@@ -2126,7 +2127,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
const cc::ElementId targeted_element =
input_handler_->FindFrameElementIdAtPoint(point);
-@@ -1121,7 +1139,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel(
+@@ -1124,7 +1142,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel(
}
}
@@ -2135,7 +2136,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
if (input_handler_->HasBlockingWheelEventHandlerAt(
gfx::Point(position_in_widget.x(), position_in_widget.y()))) {
result = DID_NOT_HANDLE;
-@@ -1318,7 +1336,7 @@ InputHandlerProxy::HandleGestureScrollUpdate(
+@@ -1319,7 +1337,7 @@ InputHandlerProxy::HandleGestureScrollUpdate(
scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y());
});
@@ -2144,7 +2145,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
gesture_event.SourceDevice());
if (elastic_overscroll_controller_) {
-@@ -1411,8 +1429,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent(
+@@ -1412,8 +1430,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent(
}
cc::TouchAction touch_action = cc::TouchAction::kAuto;
@@ -2155,7 +2156,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
// TODO(crbug.com/355578906): This is just some rough math for now. The main
// thread counterpart is AdjustPointerEvent. The buffer math on the main and
// cc thread(s) need to match.
-@@ -1527,7 +1545,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart(
+@@ -1528,7 +1546,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart(
touch_event.touches_length == 1) {
DCHECK(touch_event.touches[0].state == WebTouchPoint::State::kStatePressed);
cc::InputHandlerPointerResult pointer_result = HandlePointerDown(
@@ -2164,7 +2165,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
if (pointer_result.type == cc::PointerResultType::kScrollbarScroll) {
client_->SetAllowedTouchAction(allowed_touch_action);
return DID_HANDLE;
-@@ -1590,7 +1608,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove(
+@@ -1591,7 +1609,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove(
touch_event.touch_start_or_first_touch_move);
if (touch_event.touches_length == 1) {
cc::InputHandlerPointerResult pointer_result = HandlePointerMove(
@@ -2173,7 +2174,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
false /* should_cancel_scrollbar_drag */);
if (pointer_result.type == cc::PointerResultType::kScrollbarScroll) {
return DID_HANDLE;
-@@ -1633,7 +1651,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd(
+@@ -1634,7 +1652,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd(
touch_event.touches_length);
if (touch_event.touches_length == 1) {
cc::InputHandlerPointerResult pointer_result = HandlePointerUp(
@@ -2185,7 +2186,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc
--- a/third_party/blink/renderer/platform/widget/widget_base.cc
+++ b/third_party/blink/renderer/platform/widget/widget_base.cc
-@@ -1683,7 +1683,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) {
+@@ -1687,7 +1687,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) {
client_->ScheduleAnimation(/*urgent=*/urgent_for_input);
}
@@ -2196,7 +2197,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p
return client_->GetOriginalScreenInfos().current().device_scale_factor;
}
-@@ -1717,7 +1719,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo(
+@@ -1721,7 +1723,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo(
// Note carefully that the DSF specified in |new_screen_info| is not the
// DSF used by the compositor during device emulation!
LayerTreeHost()->SetViewportRectAndScale(compositor_viewport_pixel_rect,
@@ -2205,7 +2206,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p
local_surface_id_from_parent_);
// The VisualDeviceViewportIntersectionRect derives from the LayerTreeView's
// viewport size, which is set above.
-@@ -1847,56 +1849,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) {
+@@ -1851,56 +1853,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) {
gfx::PointF WidgetBase::DIPsToBlinkSpace(const gfx::PointF& point) {
// TODO(danakj): Should this use non-original scale factor so it changes under
// emulation?
@@ -2275,7 +2276,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p
diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_party/blink/renderer/platform/widget/widget_base.h
--- a/third_party/blink/renderer/platform/widget/widget_base.h
+++ b/third_party/blink/renderer/platform/widget/widget_base.h
-@@ -406,7 +406,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget,
+@@ -407,7 +407,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget,
void OnDevToolsSessionConnectionChanged(bool attached);
// Helper to get the non-emulated device scale factor.
@@ -2299,7 +2300,7 @@ diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_f
diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
--- a/ui/android/event_forwarder.cc
+++ b/ui/android/event_forwarder.cc
-@@ -137,7 +137,7 @@ bool EventForwarder::OnTouchEvent(JNIEnv* env,
+@@ -144,7 +144,7 @@ bool EventForwarder::OnTouchEvent(JNIEnv* env,
JNI_MotionEvent::Java_MotionEvent_getDownTime(env, motion_event));
auto event = ui::MotionEventAndroidFactory::CreateFromJava(
env, /*event=*/motion_event,
@@ -2308,7 +2309,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
/*ticks_x=*/0.f,
/*ticks_y=*/0.f,
/*tick_multiplier=*/0.f,
-@@ -191,7 +191,7 @@ void EventForwarder::OnMouseEvent(
+@@ -198,7 +198,7 @@ void EventForwarder::OnMouseEvent(
/*tool_type=*/android_tool_type);
auto event = ui::MotionEventAndroidFactory::CreateFromJava(
env, /*event=*/motion_event,
@@ -2317,7 +2318,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
/*ticks_x=*/0.f,
/*ticks_y=*/0.f,
/*tick_multiplier=*/0.f,
-@@ -225,7 +225,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env,
+@@ -232,7 +232,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env,
const JavaRef& j_text,
const JavaRef& j_html,
const JavaRef& j_url) {
@@ -2326,7 +2327,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
gfx::PointF location(x / dip_scale, y / dip_scale);
gfx::PointF root_location(screen_x / dip_scale, screen_y / dip_scale);
std::vector mime_types;
-@@ -240,7 +240,7 @@ bool EventForwarder::OnGestureEvent(JNIEnv* env,
+@@ -247,7 +247,7 @@ bool EventForwarder::OnGestureEvent(JNIEnv* env,
int32_t type,
int64_t time_ms,
float scale) {
@@ -2335,7 +2336,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
auto size = view_->GetSizeDIPs();
float x = size.width() / 2;
float y = size.height() / 2;
-@@ -270,7 +270,7 @@ bool EventForwarder::OnGenericMotionEvent(JNIEnv* env,
+@@ -277,7 +277,7 @@ bool EventForwarder::OnGenericMotionEvent(JNIEnv* env,
base::TimeTicks down_time = base::TimeTicks::FromUptimeMillis(down_time_ms);
auto event = ui::MotionEventAndroidFactory::CreateFromJava(
env, /*event=*/motion_event,
@@ -2344,7 +2345,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
/*ticks_x=*/0.f,
/*ticks_y=*/0.f,
/*tick_multiplier=*/0.f,
-@@ -353,7 +353,7 @@ void EventForwarder::DoubleTap(JNIEnv* env,
+@@ -360,7 +360,7 @@ void EventForwarder::DoubleTap(JNIEnv* env,
int64_t time_ms,
int32_t x,
int32_t y) {
@@ -2353,7 +2354,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
view_->OnGestureEvent(GestureEventAndroid(
GESTURE_EVENT_TYPE_DOUBLE_TAP, gfx::PointF(x / dip_scale, y / dip_scale),
gfx::PointF(), time_ms, ui::GestureDeviceType::DEVICE_TOUCHSCREEN, 0, 0,
-@@ -372,7 +372,7 @@ void EventForwarder::StartFling(JNIEnv* env,
+@@ -379,7 +379,7 @@ void EventForwarder::StartFling(JNIEnv* env,
if (velocity_x == 0 && velocity_y == 0)
return;
@@ -2419,7 +2420,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
ScopedJavaLocalRef ViewAndroid::GetEventForwarder() {
if (!event_forwarder_) {
DCHECK(!RootPathHasEventForwarder(parent_))
-@@ -152,7 +156,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) {
+@@ -153,7 +157,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) {
// spurious events with empty size from being sent down.
if (child->match_parent() && !bounds_device_px_.IsEmpty() &&
child->GetSizeDevicePx() != bounds_device_px_.size()) {
@@ -2428,7 +2429,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
child->DispatchOnSizeChanged();
}
-@@ -501,7 +505,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up,
+@@ -502,7 +506,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up,
env, delegate, direction_up, current_scroll_ratio);
}
@@ -2437,7 +2438,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
// Match-parent view must not receive size events.
DCHECK(!match_parent());
-@@ -511,13 +515,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) {
+@@ -512,13 +516,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) {
return;
}
@@ -2455,7 +2456,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
if (bounds_device_px_.size() == size_device_px) {
return;
}
-@@ -525,12 +531,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) {
+@@ -526,12 +532,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) {
bounds_device_px_.set_size(size_device_px);
float scale = GetDipScale();
@@ -2474,7 +2475,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
}
}
-@@ -591,6 +600,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const {
+@@ -592,6 +601,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const {
return bounds_device_px_.size();
}
diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch
index f31bb3e6..90dda82f 100644
--- a/build/patches/Android-fonts-fingerprinting-mitigation.patch
+++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch
@@ -43,12 +43,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../skia/src/ports/SkFontConfigInterface.cpp | 5 +
.../ports/SkFontConfigInterface_direct.cpp | 5 +
.../src/ports/SkFontConfigInterface_direct.h | 1 +
- .../skia/src/ports/SkFontMgr_android.cpp | 282 ++-
+ .../skia/src/ports/SkFontMgr_android.cpp | 286 ++-
.../skia/src/ports/SkFontMgr_android_data.cpp | 1641 +++++++++++++++++
.../skia/src/ports/SkFontMgr_android_ndk.cpp | 2 +-
.../src/ports/SkFontMgr_android_parser.cpp | 66 +-
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
- 42 files changed, 2447 insertions(+), 86 deletions(-)
+ 42 files changed, 2449 insertions(+), 88 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
@@ -60,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
-@@ -970,6 +970,9 @@ public final class ProductionSupportedFlagList {
+@@ -996,6 +996,9 @@ public final class ProductionSupportedFlagList {
"Hides user preference on the system keyboard by setting the standard "
+ "eng layout and removing the layout information from the "
+ "javascript keyboard events."),
@@ -122,7 +122,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -8000,6 +8000,13 @@ static_library("browser") {
+@@ -7869,6 +7869,13 @@ static_library("browser") {
]
}
@@ -139,7 +139,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
--- a/chrome/browser/component_updater/registration.cc
+++ b/chrome/browser/component_updater/registration.cc
-@@ -101,6 +101,11 @@
+@@ -100,6 +100,11 @@
#include "chrome/browser/component_updater/file_type_policies_component_installer.h"
#endif
@@ -151,7 +151,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
namespace component_updater {
namespace {
-@@ -134,6 +139,11 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) {
+@@ -133,6 +138,11 @@ void DeleteOldComponents(const base::FilePath& user_data_dir) {
void RegisterComponentsForUpdate() {
auto* const cus = g_browser_process->component_updater();
@@ -190,7 +190,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
// If a font name in prefs default values starts with a comma, consider it's a
// comma-separated font list and resolve it to the first available font.
#define PREFS_FONT_LIST 1
-@@ -442,9 +441,9 @@ void PrefsTabHelper::RegisterProfilePrefs(
+@@ -447,9 +446,9 @@ void PrefsTabHelper::RegisterProfilePrefs(
value = gfx::FontList::FirstAvailableOrFirst(value);
}
#else // !PREFS_FONT_LIST
@@ -670,7 +670,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
-@@ -2611,6 +2611,17 @@ source_set("browser") {
+@@ -2637,6 +2637,17 @@ source_set("browser") {
]
}
@@ -688,7 +688,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
if (is_linux || is_chromeos) {
sources -=
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
-@@ -2657,6 +2668,13 @@ source_set("browser") {
+@@ -2683,6 +2694,13 @@ source_set("browser") {
deps += [ "//components/services/font_data:lib" ]
}
@@ -705,9 +705,9 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
--- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
+++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
-@@ -52,6 +52,11 @@
- #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h"
- #endif
+@@ -56,6 +56,11 @@
+ #include "content/browser/renderer_host/p2p/socket_dispatcher_host.h"
+ #endif // BUILDFLAG(IS_P2P_ENABLED)
+#if BUILDFLAG(IS_ANDROID)
+#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
@@ -717,7 +717,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
#include "content/browser/font_service.h" // nogncheck
-@@ -352,6 +357,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
+@@ -356,6 +361,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
}
#endif
@@ -734,7 +734,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
--- a/content/child/BUILD.gn
+++ b/content/child/BUILD.gn
-@@ -139,6 +139,13 @@ target(link_target_type, "child") {
+@@ -137,6 +137,13 @@ target(link_target_type, "child") {
]
}
@@ -850,11 +850,11 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
+#endif
#endif
- #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
+ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc
--- a/content/renderer/renderer_main.cc
+++ b/content/renderer/renderer_main.cc
-@@ -200,8 +200,6 @@ int RendererMain(MainFunctionParams parameters) {
+@@ -184,8 +184,6 @@ int RendererMain(MainFunctionParams parameters) {
// On Linux, Windows, and ChromeOS, the font manager is overridden or
// specially handled in RendererBlinkPlatformImpl(). On other platforms,
// initialise the default one on a thread pool, to avoid blocking on it later.
@@ -905,7 +905,7 @@ new file mode 100644
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
-@@ -446,6 +446,18 @@ component("skia") {
+@@ -444,6 +444,18 @@ component("skia") {
sources += skia_ports_fci_sources
}
@@ -1374,28 +1374,26 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
}
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
this->findDefaultStyleSet();
-@@ -309,12 +452,12 @@ protected:
+@@ -309,33 +452,53 @@ protected:
}
- enum class NameType { Self, Fallback };
+ using Matcher = bool (*)(const SkString& familyName, const NameToFamily&);
- static sk_sp find_family_style_character(
+ sk_sp find_family_style_character(
const SkString& familyName,
const TArray& nameToFamilyMap,
- NameType nameType,
const SkFontStyle& style, bool elegant,
-- const SkString& langTag, SkUnichar character)
-+ const SkString& langTag, SkUnichar character) const
+ const SkString& langTag, SkUnichar character,
+- Matcher matcher)
++ Matcher matcher) const
{
for (auto&& nameToFamily : nameToFamilyMap) {
- SkFontStyleSet_Android* family = nameToFamily.styleSet;
-@@ -325,22 +468,42 @@ protected:
- continue;
- }
+ if (!matcher(familyName, nameToFamily)) {
+ continue;
}
-- sk_sp face(family->matchAStyle(style));
+- sk_sp face(nameToFamily.styleSet->matchAStyle(style));
+ if (custom_) {
-+ sk_sp face(family->matchCromiteStyle(style));
++ sk_sp face(nameToFamily.styleSet->matchCromiteStyle(style));
+
+ if (!langTag.isEmpty() &&
+ std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){
@@ -1423,7 +1421,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ return face;
+ }
+ } else {
-+ sk_sp face(family->matchAndroidStyle(style));
++ sk_sp face(nameToFamily.styleSet->matchAndroidStyle(style));
+
+ if (!langTag.isEmpty() &&
+ std::none_of(face->fLang.begin(), face->fLang.end(), [&](const SkLanguage& lang){
@@ -1432,29 +1430,41 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ {
+ continue;
+ }
-
-- if (face->unicharToGlyph(character) != 0) {
-- return face;
++
+ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) {
+ continue;
+ }
-+
+
+- if (face->unicharToGlyph(character) != 0) {
+- return face;
+ if (face->unicharToGlyph(character) != 0) {
+ return face;
+ }
}
}
return nullptr;
-@@ -355,7 +518,7 @@ protected:
- // The variant 'default' means 'compact and elegant'.
- // As a result, it is not possible to know the variant context from the font alone.
- // TODO: add 'is_elegant' and 'is_compact' bits to 'style' request.
+@@ -360,9 +523,9 @@ protected:
+
+ auto find = [this, &style, &character](const SkString& familyName,
+ const SkString& lang,
+- bool elegant) -> sk_sp
++ bool elegant) -> sk_sp
+ {
+- sk_sp matchingTypeface;
++ sk_sp matchingTypeface;
+ if (!familyName.isEmpty()) {
+ matchingTypeface = find_family_style_character(
+ familyName, fNameToFamilyMap, style, elegant, lang, character,
+@@ -410,7 +573,7 @@ protected:
+ };
+
+
- sk_sp matchingTypeface;
+ sk_sp matchingTypeface;
- SkString familyNameString(familyName);
- for (const SkString& currentFamilyName : { familyNameString, SkString() }) {
- // The first time match anything elegant, second time anything not elegant.
-@@ -435,6 +598,7 @@ protected:
+ // If familyName is empty, don't look through everything twice.
+ SkString familyNames[2] = { SkString(familyName), SkString() };
+ size_t familyNamesCount = familyNames[0].isEmpty() ? 1 : 2;
+@@ -475,6 +638,7 @@ protected:
private:
std::unique_ptr fScanner;
@@ -1462,7 +1472,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
TArray> fStyleSets;
sk_sp fDefaultStyleSet;
-@@ -456,7 +620,7 @@ private:
+@@ -496,7 +660,7 @@ private:
}
sk_sp newSet =
@@ -1471,7 +1481,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
if (0 == newSet->count()) {
return;
}
-@@ -502,7 +666,11 @@ static char const * const gSystemFontUseStrings[] = {
+@@ -542,7 +706,11 @@ static char const * const gSystemFontUseStrings[] = {
} // namespace
@@ -1484,7 +1494,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
std::unique_ptr scanner) {
if (custom) {
SkASSERT(0 <= custom->fSystemFontUse);
-@@ -515,5 +683,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
+@@ -555,5 +723,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
custom->fFallbackFontsXml);
}
}
diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch
index c78555c2..5379615f 100644
--- a/build/patches/Ask-for-restart-on-connection-change.patch
+++ b/build/patches/Ask-for-restart-on-connection-change.patch
@@ -282,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -1618,7 +1618,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1628,7 +1628,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mActivity,
mStatusIndicatorCoordinator,
isUrlBarFocusedSupplier,
@@ -405,7 +405,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
-@@ -144,6 +144,8 @@ public interface TabWindowManager {
+@@ -148,6 +148,8 @@ public interface TabWindowManager {
/** Returns the total number of incognito tabs across all tab model selectors. */
int getIncognitoTabCount();
@@ -417,14 +417,14 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
+++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
-@@ -556,6 +556,16 @@ public class TabWindowManagerImpl implements TabWindowManager {
+@@ -534,6 +534,16 @@ public class TabWindowManagerImpl implements TabWindowManager {
return tabGroupModelFilter.getTabsInGroup(tabGroupId);
}
+ @Override
+ public void setPagesFrozen(boolean frozen) {
-+ for (Map.Entry<@WindowId Integer, WindowDeps> entry : mWindowIdToDeps.entrySet()) {
-+ TabModelSelector selector = entry.getValue().selector;
++ for (Map.Entry<@WindowId Integer, TabModelSelector> entry : mWindowIdToSelectors.entrySet()) {
++ TabModelSelector selector = entry.getValue();
+ if (selector != null) {
+ selector.setPagesFrozen(frozen);
+ }
@@ -433,7 +433,7 @@ diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chr
+
@Override
public @Nullable TabModelSelector getTabModelSelectorById(@WindowId int windowId) {
- WindowDeps windowDeps = mWindowIdToDeps.get(windowId);
+ return mWindowIdToSelectors.get(windowId);
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp
new file mode 100644
--- /dev/null
@@ -483,7 +483,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
+ private String mDismissActionText;
+ private Object mDismissActionData;
private int mBackgroundColor;
- private int mTextApperanceResId;
+ private int mTextAppearanceResId;
private boolean mDefaultLines = true;
@@ -251,6 +253,20 @@ public class Snackbar {
return this;
@@ -509,7 +509,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
-@@ -403,6 +403,12 @@ public class SnackbarManager
+@@ -434,6 +434,12 @@ public class SnackbarManager
new SnackbarView(
mActivity,
this,
@@ -566,7 +566,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
-@@ -898,6 +898,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) {
+@@ -903,6 +903,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, bool focused) {
view->SetFocus(focused);
}
@@ -592,7 +592,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
-@@ -198,6 +198,7 @@ class CONTENT_EXPORT WebContentsAndroid {
+@@ -199,6 +199,7 @@ class CONTENT_EXPORT WebContentsAndroid {
void OnScaleFactorChanged(JNIEnv* env);
void SetFocus(JNIEnv* env, bool focused);
@@ -603,7 +603,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4092,8 +4092,10 @@ void WebContentsImpl::Stop() {
+@@ -4106,8 +4106,10 @@ void WebContentsImpl::Stop() {
void WebContentsImpl::SetPageFrozen(bool frozen) {
TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen);
@@ -617,7 +617,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
-@@ -1144,6 +1144,12 @@ public class WebContentsImpl
+@@ -1171,6 +1171,12 @@ public class WebContentsImpl
WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus);
}
@@ -630,7 +630,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
@Override
public void setDisplayCutoutSafeArea(Rect insets) {
if (mNativeWebContentsAndroid == 0) return;
-@@ -1488,6 +1494,8 @@ public class WebContentsImpl
+@@ -1519,6 +1525,8 @@ public class WebContentsImpl
void setFocus(long nativeWebContentsAndroid, boolean focused);
@@ -699,7 +699,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -4628,6 +4628,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) {
+@@ -4620,6 +4620,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) {
}
void Document::DispatchFreezeEvent() {
@@ -729,7 +729,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
-@@ -1029,7 +1029,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState(
+@@ -1022,7 +1022,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState(
if (!parent_page_scheduler_)
return SchedulingLifecycleState::kNotThrottled;
if (parent_page_scheduler_->IsFrozen()) {
diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch
index 51d2ea4e..4f161c57 100644
--- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch
+++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch
@@ -52,7 +52,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc
-@@ -200,6 +200,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
+@@ -197,6 +197,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus)
}
}
@@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/web_audio_latency_hint.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
-@@ -1125,7 +1126,9 @@ double AudioContext::baseLatency() const {
+@@ -1133,7 +1134,9 @@ double AudioContext::baseLatency() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_);
DCHECK(destination());
@@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h
-@@ -328,6 +328,8 @@ class MODULES_EXPORT BaseAudioContext
+@@ -331,6 +331,8 @@ class MODULES_EXPORT BaseAudioContext
// if the execution context does not exist.
bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&);
@@ -151,7 +151,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
-@@ -410,6 +410,7 @@ void OfflineAudioContext::FireCompletionEvent() {
+@@ -418,6 +418,7 @@ void OfflineAudioContext::FireCompletionEvent() {
if (!rendered_buffer) {
return;
}
@@ -170,17 +170,17 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h"
-@@ -118,7 +119,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
+@@ -117,7 +118,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
for (unsigned i = 0; i < len; ++i) {
- const float linear_value = UNSAFE_TODO(source[i]);
+ const float linear_value = magnitude_buffer_[i];
const double db_mag = audio_utilities::LinearToDecibels(linear_value);
-- UNSAFE_TODO(destination[i]) = static_cast(db_mag);
+- destination[i] = static_cast(db_mag);
+ auto v = static_cast(db_mag);
-+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i);
++ destination[i] = BaseAudioContext::ShuffleAudioData(v, i);
}
}
}
-@@ -156,9 +158,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
+@@ -153,9 +155,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
// The range m_minDecibels to m_maxDecibels will be scaled to byte values
// from 0 to UCHAR_MAX.
@@ -191,24 +191,24 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
+
// Clip to valid range.
- UNSAFE_TODO(destination[i]) =
+ destination[i] =
static_cast(ClampTo(scaled_value, 0, UCHAR_MAX));
-@@ -189,6 +193,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
- input_buffer[(i + write_index - fft_size + kInputBufferSize) %
- kInputBufferSize]);
+@@ -184,6 +188,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
+ input_buffer_[(i + write_index - fft_size + kInputBufferSize) %
+ kInputBufferSize];
+ value = BaseAudioContext::ShuffleAudioData(value, i);
- UNSAFE_TODO(destination[i]) = value;
+ destination[i] = value;
}
}
-@@ -212,10 +217,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
-
+@@ -205,10 +210,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
+ base::span destination = destination_array->AsSpan();
for (unsigned i = 0; i < len; ++i) {
// Buffer access is protected due to modulo operation.
-- const float value = UNSAFE_TODO(
-+ float value = UNSAFE_TODO(
- input_buffer[(i + write_index - fft_size + kInputBufferSize) %
- kInputBufferSize]);
+- const float value =
++ float value =
+ input_buffer_[(i + write_index - fft_size + kInputBufferSize) %
+ kInputBufferSize];
+ value = BaseAudioContext::ShuffleAudioData(value, i);
+
@@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -669,9 +669,8 @@
+@@ -688,9 +688,8 @@
{
// AudioContext.playoutStats interface.
// https://chromestatus.com/feature/5172818344148992
diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch
index ca2d93d3..c57ff109 100644
--- a/build/patches/Block-gateway-attacks-via-websockets.patch
+++ b/build/patches/Block-gateway-attacks-via-websockets.patch
@@ -45,7 +45,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
-@@ -1139,6 +1139,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
+@@ -1138,6 +1138,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@@ -75,7 +75,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
-@@ -196,6 +196,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
+@@ -197,6 +197,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
std::unique_ptr CreateWebSocketHandshakeThrottle()
override;
@@ -148,7 +148,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
@@ -104,6 +104,30 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
- request_url.ProtocolIsInHTTPFamily();
+ request_url.ProtocolIsInHttpFamily();
}
+bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
diff --git a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch
index ff79a0d4..05775335 100644
--- a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch
+++ b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch
@@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -5328,7 +5328,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
+@@ -5362,7 +5362,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
}
void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) {
@@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -833,6 +833,11 @@ WebString DocumentLoader::HttpMethod() const {
+@@ -850,6 +850,11 @@ WebString DocumentLoader::HttpMethod() const {
}
const AtomicString& DocumentLoader::GetReferrer() const {
@@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return referrer_;
}
-@@ -2909,6 +2914,13 @@ void DocumentLoader::CommitNavigation() {
+@@ -2965,6 +2970,13 @@ void DocumentLoader::CommitNavigation() {
response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly));
}
@@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
--- a/third_party/blink/renderer/core/loader/document_loader.h
+++ b/third_party/blink/renderer/core/loader/document_loader.h
-@@ -770,7 +770,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected,
+@@ -789,7 +789,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected,
// |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set.
bool loading_main_document_from_mhtml_archive_ = false;
const bool loading_srcdoc_ = false;
diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch
index aece8524..01cff0bf 100644
--- a/build/patches/Bookmarks-select-all-menu-entry.patch
+++ b/build/patches/Bookmarks-select-all-menu-entry.patch
@@ -80,7 +80,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -267,6 +267,9 @@ CHAR_LIMIT guidelines:
+@@ -271,6 +271,9 @@ CHAR_LIMIT guidelines:
Sites
diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch
index 06cbca90..2b68569e 100644
--- a/build/patches/Bromite-auto-updater.patch
+++ b/build/patches/Bromite-auto-updater.patch
@@ -39,8 +39,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../strings/android_chrome_strings.grd | 23 +-
.../ui/lens/lens_overlay_query_controller.cc | 2 +-
components/commerce/core/account_checker.cc | 2 +-
- .../core/compare/cluster_server_proxy.cc | 2 +-
- .../product_specifications_server_proxy.cc | 2 +-
.../subscriptions_server_proxy.cc | 2 +-
.../internal/composebox_query_controller.cc | 2 +-
.../data_sharing_network_loader_impl.cc | 2 +-
@@ -50,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/manta/base_provider.cc | 4 +-
.../Bromite-auto-updater.inc | 3 +
.../Bromite-auto-updater.inc | 1 +
- 42 files changed, 1156 insertions(+), 106 deletions(-)
+ 40 files changed, 1154 insertions(+), 104 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn
@@ -79,7 +77,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
-@@ -1963,6 +1963,9 @@ if (!is_robolectric && enable_java_templates) {
+@@ -1979,6 +1979,9 @@ if (!is_robolectric && enable_java_templates) {
sources = [ "//build/android/java/templates/BuildConfig.template" ]
defines = []
@@ -92,7 +90,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -890,6 +890,8 @@ chrome_java_sources = [
+@@ -906,6 +906,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/OmahaBase.java",
"java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java",
"java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java",
@@ -690,7 +688,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2595,6 +2595,12 @@ static_library("browser") {
+@@ -2504,6 +2504,12 @@ static_library("browser") {
}
if (is_android) {
@@ -1010,18 +1008,18 @@ new file mode 100644
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -393,6 +393,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -401,6 +401,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kProtectedTabsAndroid,
&kPwaRestoreUi,
&kPwaRestoreUiAtStartup,
+ &kInlineUpdateFlow,
- &kReadAloud,
&kReadAloudAudioOverviews,
- &kReadAloudAudioOverviewsFeedback,
+ &kReadAloudIPHMenuButtonHighlightCCT,
+ &kReadAloudPlayback,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -473,6 +473,7 @@ public abstract class ChromeFeatureList {
+@@ -484,6 +484,7 @@ public abstract class ChromeFeatureList {
public static final String INCOGNITO_NTP_SMALL_ICON = "IncognitoNtpSmallIcon";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INCOGNITO_THEME_OVERLAY_TESTING = "IncognitoThemeOverlayTesting";
@@ -1353,9 +1351,9 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
- mMetrics.startUpdate();
-
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mStatus.updateUrl));
- if (newTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- context.startActivity(intent);
-@@ -201,9 +238,15 @@ public class UpdateStatusProvider {
+ // Ensure that the app vs browser disambiguation dialog is not shown.
+ intent.addFlags(Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER);
+@@ -203,9 +240,15 @@ public class UpdateStatusProvider {
return true;
}
@@ -1373,7 +1371,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
}
@RequiresNonNull("mStatus")
-@@ -212,35 +255,52 @@ public class UpdateStatusProvider {
+@@ -214,35 +257,52 @@ public class UpdateStatusProvider {
}
private void resolveStatus() {
@@ -1435,7 +1433,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
mCallback = resultReceiver;
}
-@@ -252,7 +312,7 @@ public class UpdateStatusProvider {
+@@ -254,7 +314,7 @@ public class UpdateStatusProvider {
protected UpdateStatus doInBackground() {
UpdateStatus testStatus = getTestStatus();
if (testStatus != null) return testStatus;
@@ -1444,7 +1442,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
}
@Override
-@@ -270,6 +330,8 @@ public class UpdateStatusProvider {
+@@ -272,6 +332,8 @@ public class UpdateStatusProvider {
status.mIsSimulated = true;
status.updateState = forcedUpdateState;
@@ -1453,7 +1451,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
// Push custom configurations for certain update states.
switch (forcedUpdateState) {
case UpdateState.UPDATE_AVAILABLE:
-@@ -287,31 +349,33 @@ public class UpdateStatusProvider {
+@@ -289,31 +351,33 @@ public class UpdateStatusProvider {
return status;
}
@@ -1623,7 +1621,7 @@ diff --git a/chrome/browser/save_to_drive/drive_uploader.cc b/chrome/browser/sav
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -2328,6 +2328,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -2401,6 +2401,12 @@ Your Google account may have other forms of browsing history like searches and a
Chrome updates are no longer supported for this version of Android
@@ -1636,7 +1634,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
-@@ -4419,7 +4425,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -4486,7 +4492,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d
@@ -1648,7 +1646,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Newer version is available
-@@ -4430,6 +4439,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -4497,6 +4506,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d
Android version is unsupported
@@ -1670,7 +1668,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
--- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc
+++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
-@@ -769,7 +769,7 @@ LensOverlayQueryController::CreateEndpointFetcher(
+@@ -771,7 +771,7 @@ LensOverlayQueryController::CreateEndpointFetcher(
.SetTimeout(timeout)
.SetUrl(fetch_url)
.SetUploadProgressCallback(std::move(upload_progress_callback))
@@ -1691,30 +1689,6 @@ diff --git a/components/commerce/core/account_checker.cc b/components/commerce/c
}
} // namespace commerce
-diff --git a/components/commerce/core/compare/cluster_server_proxy.cc b/components/commerce/core/compare/cluster_server_proxy.cc
---- a/components/commerce/core/compare/cluster_server_proxy.cc
-+++ b/components/commerce/core/compare/cluster_server_proxy.cc
-@@ -156,7 +156,7 @@ std::unique_ptr ClusterServerProxy::CreateEndpointFetcher(
- .SetPostData(post_data);
- commerce::MaybeUseAlternateShoppingServer(request_params);
- return std::make_unique(
-- url_loader_factory_, identity_manager_, request_params.Build());
-+ url_loader_factory_, identity_manager_, request_params.Build(), kGetComparableProductsTrafficAnnotation);
- }
-
- void ClusterServerProxy::HandleCompareResponse(
-diff --git a/components/commerce/core/compare/product_specifications_server_proxy.cc b/components/commerce/core/compare/product_specifications_server_proxy.cc
---- a/components/commerce/core/compare/product_specifications_server_proxy.cc
-+++ b/components/commerce/core/compare/product_specifications_server_proxy.cc
-@@ -296,7 +296,7 @@ ProductSpecificationsServerProxy::CreateEndpointFetcher(
- .SetPostData(post_data);
- MaybeUseAlternateShoppingServer(request_params);
- return std::make_unique(
-- url_loader_factory_, identity_manager_, request_params.Build());
-+ url_loader_factory_, identity_manager_, request_params.Build(), kShoppingListTrafficAnnotation);
- }
-
- std::optional
diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
--- a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
+++ b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
@@ -1730,7 +1704,7 @@ diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.c
diff --git a/components/contextual_search/internal/composebox_query_controller.cc b/components/contextual_search/internal/composebox_query_controller.cc
--- a/components/contextual_search/internal/composebox_query_controller.cc
+++ b/components/contextual_search/internal/composebox_query_controller.cc
-@@ -916,7 +916,7 @@ ComposeboxQueryController::CreateEndpointFetcher(
+@@ -1110,7 +1110,7 @@ ComposeboxQueryController::CreateEndpointFetcher(
.SetTimeout(timeout)
.SetUploadProgressCallback(std::move(upload_progress_callback))
.SetUrl(fetch_url)
diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch
index 67621a60..aba89027 100644
--- a/build/patches/Bromite-subresource-adblocker.patch
+++ b/build/patches/Bromite-subresource-adblocker.patch
@@ -24,9 +24,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/settings/AdBlockPreferences.java | 76 +++++
.../browser/settings/SettingsActivity.java | 3 +
chrome/app/generated_resources.grd | 10 +
- chrome/browser/after_startup_task_utils.cc | 4 +
- chrome/browser/browser_process.h | 6 +
- chrome/browser/browser_process_impl.cc | 28 ++
+ chrome/browser/after_startup_task_utils.cc | 5 +
+ chrome/browser/browser_process.h | 5 +
+ chrome/browser/browser_process_impl.cc | 30 ++
chrome/browser/browser_process_impl.h | 2 +
chrome/browser/chrome_browser_main.cc | 3 +
chrome/browser/flags/BUILD.gn | 3 +
@@ -50,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/subresource_filter_features.cc | 118 +-------
.../core/browser/verified_ruleset_dealer.cc | 4 +
.../core/common/indexed_ruleset.cc | 5 +-
- 38 files changed, 1286 insertions(+), 127 deletions(-)
+ 38 files changed, 1288 insertions(+), 127 deletions(-)
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@@ -65,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -313,6 +313,7 @@ if (_is_default_toolchain) {
+@@ -318,6 +318,7 @@ if (_is_default_toolchain) {
"//chrome/android/features/tab_ui/public:ui_java_resources",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
@@ -76,7 +76,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -436,6 +436,7 @@ chrome_java_resources = [
+@@ -432,6 +432,7 @@ chrome_java_resources = [
"java/res/layout/account_management_account_row.xml",
"java/res/layout/app_history_filter.xml",
"java/res/layout/auto_pip_permission_dialog.xml",
@@ -84,7 +84,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_name_and_number.xml",
-@@ -642,6 +643,7 @@ chrome_java_resources = [
+@@ -638,6 +639,7 @@ chrome_java_resources = [
"java/res/xml/account_management_preferences.xml",
"java/res/xml/ad_services_config.xml",
"java/res/xml/appearance_preferences.xml",
@@ -95,7 +95,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -962,6 +962,8 @@ chrome_java_sources = [
+@@ -977,6 +977,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java",
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
@@ -251,7 +251,7 @@ new file mode 100644
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
-@@ -115,6 +115,11 @@ found in the LICENSE file.
+@@ -113,6 +113,11 @@ found in the LICENSE file.
android:key="toolbar_shortcut"
android:order="21"
android:title="@string/toolbar_shortcut"/>
@@ -443,7 +443,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -101,6 +101,8 @@ import java.util.HashMap;
+@@ -106,6 +106,8 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -452,7 +452,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
/**
* The Chrome settings activity.
*
-@@ -1277,6 +1279,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -1325,6 +1327,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
&& !MAIN_FRAGMENT_TAG.equals(fragment.getTag())) {
return;
}
@@ -463,7 +463,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
-@@ -17579,6 +17579,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
+@@ -17715,6 +17715,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
@@ -483,16 +483,17 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
--- a/chrome/browser/after_startup_task_utils.cc
+++ b/chrome/browser/after_startup_task_utils.cc
-@@ -24,6 +24,8 @@
+@@ -24,6 +24,9 @@
#include "chrome/browser/ui/ash/login/login_display_host.h"
#endif
+#include "chrome/browser/browser_process.h"
++#include "components/component_updater/adblock_updater_service.h"
+
using content::BrowserThread;
namespace {
-@@ -129,6 +131,8 @@ void SetBrowserStartupIsComplete() {
+@@ -129,6 +132,8 @@ void SetBrowserStartupIsComplete() {
}
GetAfterStartupTasks().clear();
GetAfterStartupTasks().shrink_to_fit();
@@ -504,15 +505,7 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s
diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
--- a/chrome/browser/browser_process.h
+++ b/chrome/browser/browser_process.h
-@@ -31,6 +31,7 @@
- #include "chrome/common/buildflags.h"
- #include "components/safe_browsing/buildflags.h"
- #include "media/media_buildflags.h"
-+#include "components/component_updater/adblock_updater_service.h"
-
- class BackgroundModeManager;
- class BrowserProcessPlatformPart;
-@@ -96,6 +97,10 @@ namespace component_updater {
+@@ -96,6 +96,10 @@ namespace component_updater {
class ComponentUpdateService;
}
@@ -523,7 +516,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
namespace gcm {
class GCMDriver;
}
-@@ -294,6 +299,7 @@ class BrowserProcess {
+@@ -294,6 +298,7 @@ class BrowserProcess {
virtual activity_reporter::ActivityReporter* activity_reporter() = 0;
virtual component_updater::ComponentUpdateService* component_updater() = 0;
@@ -534,7 +527,16 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
-@@ -1368,6 +1368,34 @@ BrowserProcessImpl::component_updater() {
+@@ -184,6 +184,8 @@
+ #include "ui/message_center/message_center.h"
+ #endif
+
++#include "components/component_updater/adblock_updater_service.h"
++
+ #if BUILDFLAG(IS_ANDROID)
+ #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
+ #include "chrome/browser/flags/android/chrome_feature_list.h"
+@@ -1375,6 +1377,34 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get();
}
@@ -591,7 +593,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
-@@ -432,6 +432,9 @@ StartupProfileInfo CreateInitialProfile(
+@@ -439,6 +439,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -742,7 +744,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
-@@ -2986,6 +2986,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
+@@ -2778,6 +2778,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
inline constexpr char kAudioCaptureAllowedUrls[] =
"hardware.audio_capture_allowed_urls";
@@ -757,7 +759,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
-@@ -427,6 +427,9 @@
+@@ -421,6 +421,9 @@
This site shows intrusive or misleading ads
diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch
index 63eefa3f..b3eb0be2 100644
--- a/build/patches/Bubble-Locking-on-UI-DevTools.patch
+++ b/build/patches/Bubble-Locking-on-UI-DevTools.patch
@@ -33,7 +33,7 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
--- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h
-@@ -1475,6 +1475,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
+@@ -1481,6 +1481,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// initialized.
void SaveWindowPlacementIfNeeded();
@@ -53,7 +53,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
protected:
// Creates the RootView to be used within this Widget. Subclasses may override
// to create custom RootViews that do specialized event processing.
-@@ -1515,13 +1528,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
+@@ -1521,13 +1534,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
void set_widget_closed() { widget_closed_ = true; }
private:
@@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
class PaintAsActiveLockImpl;
friend class ButtonTest;
-@@ -1532,11 +1538,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
+@@ -1538,11 +1544,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
friend class ui_devtools::BubbleLocking;
friend void DisableActivationChangeHandlingForTests();
diff --git a/build/patches/Change-popup-site-setting.patch b/build/patches/Change-popup-site-setting.patch
index 62ddedd3..85f70498 100644
--- a/build/patches/Change-popup-site-setting.patch
+++ b/build/patches/Change-popup-site-setting.patch
@@ -8,15 +8,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../settings/site_settings/popups_page.html | 2 +
.../tab_under_navigation_throttle.cc | 11 +-
- .../android/popup_blocked_message_delegate.cc | 20 +++-
+ .../android/popup_blocked_message_delegate.cc | 20 ++-
.../android/popup_blocked_message_delegate.h | 1 +
components/blocked_content/popup_blocker.cc | 3 +
components/blocked_content_strings.grdp | 3 +
- .../impl/BromitePopupContentSetting.java | 106 ++++++++++++++++++
+ .../impl/BromitePopupContentSetting.java | 115 ++++++++++++++++++
.../bromite_content_settings/popups.grdp | 18 +++
- .../bromite_content_settings/popups.inc | 13 +++
+ .../bromite_content_settings/popups.inc | 13 ++
.../core/browser/content_settings_registry.cc | 2 +-
- 10 files changed, 173 insertions(+), 6 deletions(-)
+ 10 files changed, 182 insertions(+), 6 deletions(-)
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp
create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc
@@ -146,7 +146,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
-@@ -0,0 +1,106 @@
+@@ -0,0 +1,115 @@
+/*
+ This file is part of Bromite.
+
@@ -239,6 +239,15 @@ new file mode 100644
+ }
+
+ @Override
++ public int[] getTriStateSettingIconIDs() {
++ return new int[] {
++ R.drawable.permission_popups,
++ R.drawable.permission_popups,
++ R.drawable.sensors_off_24px
++ };
++ }
++
++ @Override
+ public boolean showOnlyDescriptions() {
+ return true;
+ }
diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch
index 0c8dbd49..fbf43dca 100644
--- a/build/patches/Chrome-web-store-protection.patch
+++ b/build/patches/Chrome-web-store-protection.patch
@@ -84,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
namespace extensions {
namespace developer = api::developer_private;
-@@ -69,6 +75,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
+@@ -70,6 +76,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
return g_developer_private_api_factory.Pointer();
}
@@ -181,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
-@@ -257,6 +257,8 @@ Profile* GetProfileInIncognito(Profile* profile) {
+@@ -254,6 +254,8 @@ Profile* GetProfileInIncognito(Profile* profile) {
// there was previously stored data, or an empty string otherwise. The Set will
// overwrite any previous login.
std::string GetWebstoreLogin(Profile* profile) {
@@ -190,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) {
return profile->GetPrefs()->GetString(kWebstoreLogin);
}
-@@ -264,11 +266,15 @@ std::string GetWebstoreLogin(Profile* profile) {
+@@ -261,11 +263,15 @@ std::string GetWebstoreLogin(Profile* profile) {
}
void SetWebstoreLogin(Profile* profile, const std::string& login) {
@@ -206,7 +206,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
switch (status) {
case kCanRequest:
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
-@@ -1207,7 +1213,8 @@ ExtensionFunction::ResponseAction
+@@ -1317,7 +1323,8 @@ ExtensionFunction::ResponseAction
WebstorePrivateIsInIncognitoModeFunction::Run() {
Profile* profile = Profile::FromBrowserContext(browser_context());
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
@@ -216,7 +216,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
}
WebstorePrivateIsPendingCustodianApprovalFunction::
-@@ -1304,11 +1311,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
+@@ -1414,11 +1421,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
recent_navigations_to_collect);
@@ -259,7 +259,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
--- a/chrome/browser/extensions/extension_management.cc
+++ b/chrome/browser/extensions/extension_management.cc
-@@ -441,6 +441,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
+@@ -435,6 +435,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy(
const Extension* extension) {
@@ -283,7 +283,7 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
-@@ -248,8 +248,6 @@ ExtensionService::ExtensionService(
+@@ -249,8 +249,6 @@ ExtensionService::ExtensionService(
UpgradeDetector::GetInstance()->AddObserver(this);
#endif
@@ -292,7 +292,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext
ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this);
if (auto* extension_install_policy_service =
-@@ -772,7 +770,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
+@@ -773,7 +771,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
// unpublished extensions should not be enabled. This update allows
// unpublished extensions to be disabled sooner rather than waiting till the
// next regularly scheduled fetch.
@@ -496,10 +496,10 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
-@@ -595,7 +595,7 @@ void WebstoreInstaller::StartDownload(
- traffic_annotation));
+@@ -589,7 +589,7 @@ void WebstoreInstaller::StartDownload(
+ render_frame_host->CreateDownloadUrlParameters(download_url_,
+ traffic_annotation);
params->set_file_path(file);
- params->set_initiator(render_frame_host->GetLastCommittedOrigin());
- if (controller.GetVisibleEntry()) {
+ if ((false) && controller.GetVisibleEntry()) {
content::Referrer referrer = content::Referrer::SanitizeForRequest(
@@ -537,7 +537,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
accessor showActivityLog: boolean =
loadTimeData.getBoolean('showActivityLog');
accessor enableEnhancedSiteControls: boolean =
-@@ -228,6 +232,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
+@@ -247,6 +251,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
this.canLoadUnpacked = profileInfo.canLoadUnpacked;
this.isMv2DeprecationNoticeDismissed =
profileInfo.isMv2DeprecationNoticeDismissed;
@@ -569,7 +569,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.css b/chrome/browser/re
+#need-update {
+ color: red;
-+ margin-inline: 0px;
++ margin-inline: 0;
+}
+
cr-toolbar {
@@ -586,7 +586,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browse
+ $i18n{toolbarExtensionUpdateEnabled}
+ $i18n{toolbarExtensionUpdateEnabledNeedRestart}
+
-+
++
+
+
@@ -645,7 +645,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.ts b/chrome/browser/res
'Options_ToggleDeveloperMode_' + (e.detail ? 'Enabled' : 'Disabled'));
}
-+ protected onExtUpdateEnabledChanged_(e: CustomEvent
) {
++ protected onExtUpdateEnabledChange_(e: CustomEvent) {
+ this.delegate.setExtUpdateEnabled(e.detail);
+ this.shouldShowRelaunchDialog = true;
+ this.isExtUpdateEnabled = e.detail;
@@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
#include "chrome/browser/extensions/manifest_v2_experiment_manager.h"
#include "chrome/browser/extensions/mv2_experiment_stage.h"
#include "chrome/browser/extensions/permissions_url_constants.h"
-@@ -385,6 +386,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
+@@ -387,6 +388,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
{"itemSuspiciousInstallLearnMore",
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
@@ -690,7 +690,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
-@@ -470,6 +473,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
+@@ -472,6 +475,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
"hostPermissionsLearnMoreLink",
extension_permissions_constants::kRuntimeHostPermissionsHelpURL);
source->AddBoolean(kInDevModeKey, in_dev_mode);
@@ -1194,8 +1194,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc
-@@ -218,4 +218,11 @@ BASE_FEATURE(kWebRequestPersistFilteredEvents,
- BASE_FEATURE(kWebRequestAlternativeAddListener,
+@@ -218,4 +218,11 @@ BASE_FEATURE(kSearchEngineUnconditionalDialog,
+ BASE_FEATURE(kWebRequestPersistFilteredEventsViaEventRouter,
base::FEATURE_ENABLED_BY_DEFAULT);
+CROMITE_FEATURE(kEnableExtensionAutoupdate,
@@ -1209,9 +1209,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h
-@@ -333,6 +333,16 @@ BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEvents);
- // WebRequestInternal's custom API.
- BASE_DECLARE_FEATURE(kWebRequestAlternativeAddListener);
+@@ -323,6 +323,16 @@ BASE_DECLARE_FEATURE(kWebRequestSecurityInfo);
+ // in WebRequestEventRouter.
+ BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEventsViaEventRouter);
+// Activates the auto update of extensions.
+// the only data provided by default is the list of extensions.
diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch
index a8552c82..6ed81bb5 100644
--- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch
+++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch
@@ -79,12 +79,12 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
-@@ -1372,6 +1372,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
+@@ -1379,6 +1379,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
base::Time end_time,
mojom::ClearDataFilterPtr filter,
ClearHttpCacheCallback callback) {
+ cors_preflight_controller_.ClearCache();
- // It's safe to use Unretained below as the HttpCacheDataRemover is owned by
- // |this| and guarantees it won't call its callback if deleted.
- http_cache_data_removers_.push_back(HttpCacheDataRemover::CreateAndStart(
+ if (base::FeatureList::IsEnabled(net::features::kLogicalClearHttpCache)) {
+ net::HttpCache* cache =
+ url_request_context_->http_transaction_factory()->GetCache();
--
diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch
index 30db3b9f..8d4f3fa6 100644
--- a/build/patches/Client-hints-overrides.patch
+++ b/build/patches/Client-hints-overrides.patch
@@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
--- a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
+++ b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
-@@ -95,7 +95,7 @@ public class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryB
+@@ -99,7 +99,7 @@ public class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryB
Features.GET_COOKIE_INFO,
Features.WEB_MESSAGE_ARRAY_BUFFER,
Features.IMAGE_DRAG_DROP,
@@ -156,7 +156,7 @@ new file mode 100644
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
-@@ -114,6 +114,7 @@ const size_t kMaxRestarts = 32;
+@@ -119,6 +119,7 @@ const size_t kMaxRestarts = 32;
// Returns true when Early Hints are allowed on the given protocol.
bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) {
@@ -262,7 +262,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
-@@ -232,6 +232,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy,
+@@ -233,6 +233,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy,
bool is_1p_origin,
network::mojom::blink::WebClientHintsType type,
const ClientHintsPreferences& hints_preferences) {
@@ -271,7 +271,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
// For subresource requests, sending the hint in the fetch request based on
// the permissions policy.
if (!policy.IsFeatureEnabledForOrigin(
-@@ -732,7 +734,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
+@@ -731,7 +733,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
}
// Only send User Agent hints if the info is available
@@ -283,7 +283,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -628,6 +628,11 @@
+@@ -647,6 +647,11 @@
name: "AriaNotifyV2",
status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"},
},
@@ -295,7 +295,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
{
name: "AriaRowColIndexText",
status: "stable",
-@@ -1045,8 +1050,7 @@
+@@ -1093,8 +1098,7 @@
// Allows top-level sites to restrict collection of high-entropy UA client
// hints (from 3Ps, or itself) via the getHighEntropyValues API.
// crbug.com/385161047
diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch
index 59aad17e..b94e6a0f 100644
--- a/build/patches/Close-Sessions-On-Ip-Change.patch
+++ b/build/patches/Close-Sessions-On-Ip-Change.patch
@@ -88,7 +88,7 @@ new file mode 100644
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
-@@ -289,7 +289,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -294,7 +294,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT);
// NetworkChangeNotifier::AreNetworkHandlesSupported).
#if BUILDFLAG(IS_ANDROID)
inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default =
diff --git a/build/patches/Compress-libchrome-to-free-up-some-space.patch b/build/patches/Compress-libchrome-to-free-up-some-space.patch
index 51b630a9..a074f8de 100644
--- a/build/patches/Compress-libchrome-to-free-up-some-space.patch
+++ b/build/patches/Compress-libchrome-to-free-up-some-space.patch
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
-@@ -579,6 +579,7 @@ template("chrome_common_apk_or_module_tmpl") {
+@@ -600,6 +600,7 @@ template("chrome_common_apk_or_module_tmpl") {
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
library_always_compress += [ "libchrome_crashpad_handler.so" ]
diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch
index 45f07f69..d561534a 100644
--- a/build/patches/Content-settings-infrastructure.patch
+++ b/build/patches/Content-settings-infrastructure.patch
@@ -17,7 +17,6 @@ Require: bromite-build-utils.patch
.../privacy_page/privacy_page_index.ts | 83 +++-
chrome/browser/resources/settings/route.ts | 2 +
...settings_category_default_radio_group.html | 12 +
- .../settings_category_default_radio_group.ts | 23 +-
.../settings/site_settings/site_details.html | 1 +
.../settings/site_settings/site_details.ts | 33 +-
.../site_details_permission.html | 8 +-
@@ -41,10 +40,10 @@ Require: bromite-build-utils.patch
.../browser_ui/site_settings/android/BUILD.gn | 18 +
.../res/xml/site_settings_preferences.xml | 7 +
.../site_settings/AllSiteSettings.java | 5 +-
- .../BromiteCustomContentSetting.java | 155 +++++++
- .../BromiteCustomContentSettingImpl.java | 416 ++++++++++++++++++
+ .../BromiteCustomContentSetting.java | 159 +++++++
+ .../BromiteCustomContentSettingImpl.java | 422 ++++++++++++++++++
...tomTriStateSiteSettingsPreferenceImpl.java | 24 +
- .../ContentSettingsResources.java | 32 +-
+ .../ContentSettingsResources.java | 34 +-
.../site_settings/SingleCategorySettings.java | 57 ++-
.../site_settings/SingleWebsiteSettings.java | 48 +-
.../site_settings/SiteSettings.java | 35 +-
@@ -74,7 +73,7 @@ Require: bromite-build-utils.patch
.../common/content_settings_mojom_traits.cc | 12 +-
.../common/content_settings_mojom_traits.h | 24 +
.../core/common/content_settings_types.mojom | 2 +
- .../renderer/content_settings_agent_impl.cc | 74 ++++
+ .../renderer/content_settings_agent_impl.cc | 74 +++
.../renderer/content_settings_agent_impl.h | 9 +
.../PageInfoPermissionsController.java | 9 +
.../android/page_info_controller_android.cc | 18 +
@@ -84,7 +83,7 @@ Require: bromite-build-utils.patch
.../platform/web_content_settings_client.h | 13 +
.../execution_context/execution_context.cc | 16 +
.../execution_context/execution_context.h | 5 +
- 73 files changed, 1964 insertions(+), 106 deletions(-)
+ 72 files changed, 1954 insertions(+), 105 deletions(-)
create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -109,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
/** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */
@NullMarked
public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
-@@ -251,7 +255,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
+@@ -246,7 +250,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@Override
public boolean isHelpAndFeedbackEnabled() {
@@ -118,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
}
@Override
-@@ -378,6 +382,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
+@@ -373,6 +377,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin);
}
@@ -276,7 +275,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
/**
* Add all of the child routes that originate from the privacy route,
-@@ -155,6 +156,7 @@ function addPrivacyChildRoutes(r: Partial) {
+@@ -157,6 +158,7 @@ function addPrivacyChildRoutes(r: Partial) {
r.SITE_SETTINGS_LOOPBACK_NETWORK =
r.SITE_SETTINGS.createChild('loopbackNetwork');
}
@@ -287,8 +286,8 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html
--- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html
+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html
-@@ -54,5 +54,17 @@
- icon="[[blockOptionIcon]]"
+@@ -68,5 +68,17 @@
+ hidden="[[!blockOptionLabel]]"
no-collapse>
+
-diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
---- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
-+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
-@@ -32,6 +32,7 @@ import {isSettingEnabled} from './site_settings_util.js';
- export enum SiteContentRadioSetting {
- DISABLED = 0,
- ENABLED = 1,
-+ ASK = 2,
- }
-
- export interface SettingsCategoryDefaultRadioGroupElement {
-@@ -80,6 +81,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends
- blockOptionSubLabel: String,
- blockOptionIcon: String,
-
-+ askOptionLabel: String,
-+ askOptionSubLabel: String,
-+ askOptionIcon: String,
-+
- siteContentRadioSettingEnum_: {
- type: Object,
- value: SiteContentRadioSetting,
-@@ -115,6 +120,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
- declare blockOptionLabel: string;
- declare blockOptionSubLabel: string;
- declare blockOptionIcon: string;
-+ declare askOptionLabel: string;
-+ declare askOptionSubLabel: string;
-+ declare askOptionIcon: string;
- declare private pref_: chrome.settingsPrivate.PrefObject;
- selected: boolean;
-
-@@ -126,6 +134,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends
- (category: ContentSettingsTypes) => this.onCategoryChanged_(category));
- }
-
-+ private showAskSetting_(
-+ category: ContentSettingsTypes): boolean {
-+ let obj = this.getSettingData(category);
-+ if (obj) return obj["allowed_ask"] === "1";
-+ return false;
-+ }
-+
- private getAllowOptionForCategory_(): ContentSetting {
- // Keep elements in alphabetical order within their groups.
- switch (this.category) {
-@@ -178,6 +193,8 @@ export class SettingsCategoryDefaultRadioGroupElement extends
- // "Ask" vs "Blocked".
- return ContentSetting.ASK;
- default:
-+ let obj = this.getSettingData(this.category);
-+ if (obj) return ContentSetting.ALLOW;
- assertNotReached('Invalid category: ' + this.category);
- }
- }
-@@ -202,6 +219,7 @@ export class SettingsCategoryDefaultRadioGroupElement extends
- /** @type {!ContentSetting} */ (this.getAllowOptionForCategory_());
- this.browserProxy.setDefaultValueForContentType(
- this.category,
-+ this.pref_.value === SiteContentRadioSetting.ASK ? "ask" :
- this.categoryEnabled_ ? allowOption : ContentSetting.BLOCK);
- if (this.selected !== this.categoryEnabled_) {
- this.selected = this.categoryEnabled_;
-@@ -240,7 +258,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends
- }
-
- const enabled = isSettingEnabled(update.setting);
-- const prefValue = enabled ? SiteContentRadioSetting.ENABLED :
-+ const ask = this.computeIsSettingAsk(update.setting)
-+ && this.showAskSetting_(this.category);
-+ const prefValue = ask ? SiteContentRadioSetting.ASK :
-+ enabled ? SiteContentRadioSetting.ENABLED :
- SiteContentRadioSetting.DISABLED;
- this.selected = enabled;
- this.set('pref_.value', prefValue);
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
-@@ -344,5 +344,6 @@
+@@ -345,5 +345,6 @@
label="$i18n{siteSettingsLoopbackNetwork}">
@@ -727,7 +651,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util.
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -1624,6 +1624,7 @@ static_library("ui") {
+@@ -1680,6 +1680,7 @@ static_library("ui") {
"//components/commerce/core/webui",
"//components/contextual_search:public",
"//components/endpoint_fetcher",
@@ -735,7 +659,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
"//components/enterprise/common:files_scan_data",
"//components/feedback/proto",
"//components/headless/console_message_logger",
-@@ -4824,6 +4825,7 @@ static_library("ui") {
+@@ -4879,6 +4880,7 @@ static_library("ui") {
"//components/payments/core:currency_formatter",
"//components/power_bookmarks/core",
"//components/prefs",
@@ -775,15 +699,15 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view.cc b/chrome
diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc
--- a/chrome/browser/ui/views/page_info/page_info_main_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc
-@@ -55,6 +55,7 @@
+@@ -57,6 +57,7 @@
#include "ui/views/layout/flex_layout.h"
#include "ui/views/metadata/view_factory.h"
#include "ui/views/vector_icons.h"
+#include "ui/views/layout/table_layout.h"
#include "ui/views/view_class_properties.h"
+ #include "ui/views/widget/widget.h"
- #if BUILDFLAG(FULL_SAFE_BROWSING)
-@@ -259,8 +260,20 @@ void PageInfoMainView::SetPermissionInfo(
+@@ -265,8 +266,20 @@ void PageInfoMainView::SetPermissionInfo(
scroll_view->SetDrawOverflowIndicator(false);
auto* content_view =
scroll_view->SetContents(std::make_unique());
@@ -806,7 +730,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW);
content_view->SetProperty(views::kElementIdentifierKey,
kPermissionsElementId);
-@@ -275,11 +288,16 @@ void PageInfoMainView::SetPermissionInfo(
+@@ -306,11 +319,16 @@ void PageInfoMainView::SetPermissionInfo(
}
}
@@ -823,7 +747,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
toggle_row->SetProperty(views::kCrossAxisAlignmentKey,
views::LayoutAlignment::kStretch);
syncable_permission_rows_.emplace(permission.type, toggle_row);
-@@ -287,6 +305,8 @@ void PageInfoMainView::SetPermissionInfo(
+@@ -318,6 +336,8 @@ void PageInfoMainView::SetPermissionInfo(
}
for (auto& object : chosen_object_info_list) {
@@ -832,7 +756,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
// The view takes ownership of the object info.
auto object_view = std::make_unique(
std::move(object),
-@@ -297,6 +317,10 @@ void PageInfoMainView::SetPermissionInfo(
+@@ -328,6 +348,10 @@ void PageInfoMainView::SetPermissionInfo(
content_view->AddChildView(std::move(object_view)));
}
@@ -840,9 +764,9 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
+ if (++count % 2 == 0)
+ content_view->AddChildView(std::make_unique());
+
- const int controls_spacing = ChromeLayoutProvider::Get()->GetDistanceMetric(
- views::DISTANCE_RELATED_CONTROL_VERTICAL);
reset_button_ = content_view->AddChildView(
+ std::make_unique(base::BindRepeating(
+ [=](PageInfoMainView* view) {
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
@@ -1214,7 +1138,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/buildflag.h"
-@@ -74,6 +75,9 @@
+@@ -82,6 +83,9 @@
#include "components/dom_distiller/core/dom_distiller_features.h"
#include "components/google/core/common/google_util.h"
#include "components/history/core/common/pref_names.h"
@@ -1224,7 +1148,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/common/password_manager_features.h"
-@@ -4235,6 +4239,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
+@@ -4271,6 +4275,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1379,14 +1303,14 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn
--- a/components/browser_ui/settings/android/BUILD.gn
+++ b/components/browser_ui/settings/android/BUILD.gn
-@@ -97,6 +97,7 @@ android_resources("java_resources") {
+@@ -100,6 +100,7 @@ android_resources("java_resources") {
"java/res/layout/preference_chrome_button.xml",
"java/res/layout/preference_chrome_image_view.xml",
"java/res/layout/preference_spinner.xml",
+ "java/res/layout/preference_spinner_single_widget.xml",
"java/res/layout/preference_spinner_single_line.xml",
"java/res/layout/preference_spinner_single_line_item.xml",
- "java/res/layout/settings_action_bar_shadow.xml",
+ "java/res/layout/preference_widget_open_in_new.xml",
diff --git a/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml b/components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
new file mode 100644
--- /dev/null
@@ -1543,7 +1467,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
--- a/components/browser_ui/site_settings/android/BUILD.gn
+++ b/components/browser_ui/site_settings/android/BUILD.gn
-@@ -156,6 +156,23 @@ android_library("java") {
+@@ -157,6 +157,23 @@ android_library("java") {
":site_settings_jni_headers",
"//components/content_settings/android:java_pref_names_srcjar",
]
@@ -1567,7 +1491,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
}
android_library("javatests") {
-@@ -211,6 +228,7 @@ robolectric_library("junit") {
+@@ -214,6 +231,7 @@ robolectric_library("junit") {
}
android_resources("java_resources") {
@@ -1616,7 +1540,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
-@@ -0,0 +1,155 @@
+@@ -0,0 +1,159 @@
+/*
+ This file is part of Bromite.
+
@@ -1764,6 +1688,10 @@ new file mode 100644
+ return null;
+ }
+
++ public int[] getTriStateSettingIconIDs() {
++ return null;
++ }
++
+ public boolean showOnlyDescriptions() {
+ return false;
+ }
@@ -1776,7 +1704,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
-@@ -0,0 +1,416 @@
+@@ -0,0 +1,422 @@
+/*
+ This file is part of Bromite.
+
@@ -2004,6 +1932,12 @@ new file mode 100644
+ return null;
+ }
+
++ public static int[] getTriStateSettingIconIDs(@ContentSettingsType.EnumType int type) {
++ BromiteCustomContentSetting cs = getContentSetting(type);
++ if (cs != null) return cs.getTriStateSettingIconIDs();
++ return null;
++ }
++
+ public static int getCategoryDescription(SiteSettingsCategory category) {
+ for (BromiteCustomContentSetting cs : mItemList) {
+ if (category.getType() == cs.getSiteSettingsCategory()) {
@@ -2225,7 +2159,7 @@ new file mode 100644
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingsResources.java
-@@ -40,7 +40,7 @@ import org.chromium.device.DeviceFeatureMap;
+@@ -39,7 +39,7 @@ import org.chromium.device.DeviceFeatureMap;
@NullMarked
public class ContentSettingsResources {
/** An inner class contains all the resources for a ContentSettingsType */
@@ -2234,7 +2168,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private final int mIcon;
private final int mIconBlocked;
private final int mTitle;
-@@ -53,7 +53,28 @@ public class ContentSettingsResources {
+@@ -52,7 +52,28 @@ public class ContentSettingsResources {
private final int mDisabledPrimaryText;
private int mDisabledDescriptionText;
@@ -2264,7 +2198,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
int icon,
int title,
@ContentSetting @Nullable Integer defaultEnabledValue,
-@@ -689,6 +710,8 @@ public class ContentSettingsResources {
+@@ -687,6 +708,8 @@ public class ContentSettingsResources {
R.string.website_settings_window_management_ask,
R.string.website_settings_window_management_block);
}
@@ -2273,7 +2207,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false; // NOTREACHED
return assumeNonNull(null);
}
-@@ -869,6 +892,9 @@ public class ContentSettingsResources {
+@@ -867,6 +890,9 @@ public class ContentSettingsResources {
@ContentSetting int value,
boolean isOneTime,
boolean isApproximateGeolocation) {
@@ -2283,15 +2217,24 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return getCategorySummary(
type,
value,
-@@ -1069,6 +1095,8 @@ public class ContentSettingsResources {
+@@ -1066,6 +1092,8 @@ public class ContentSettingsResources {
+ * that order.
*/
- public static int @Nullable [] getTriStateSettingDescriptionIDs(
- int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) {
+ public static int @Nullable [] getTriStateSettingDescriptionIDs(int contentType) {
+ int[] value = BromiteCustomContentSettingImpl.getTriStateSettingDescriptionIDs(contentType);
+ if (value != null) return value;
if (contentType == ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER) {
- if (isPermissionSiteSettingsRadioButtonFeatureEnabled) {
- int[] descriptionIDs = {
+ return new int[] {
+ R.string.website_settings_protected_content_allow,
+@@ -1101,6 +1129,8 @@ public class ContentSettingsResources {
+ * order.
+ */
+ public static int @Nullable [] getTriStateSettingIconIDs(int contentType) {
++ int[] value = BromiteCustomContentSettingImpl.getTriStateSettingIconIDs(contentType);
++ if (value != null) return value;
+ if (contentType == ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER) {
+ return new int[] {
+ R.drawable.live_tv_24px, R.drawable.tv_24px, R.drawable.tv_off_24px,
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -2306,7 +2249,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSetting != null) {
return ContentSetting.BLOCK == contentSetting;
}
-@@ -563,6 +567,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -523,6 +527,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -2314,7 +2257,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureGlobalToggles();
if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) {
RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered");
-@@ -610,7 +615,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -570,7 +575,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
}
});
@@ -2324,7 +2267,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
MenuItem help =
menu.add(
Menu.NONE,
-@@ -620,12 +626,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -580,12 +586,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
help.setIcon(
TraceEventVectorDrawableCompat.create(
getResources(), R.drawable.ic_help_24dp, getContext().getTheme()));
@@ -2345,7 +2288,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
getSiteSettingsDelegate()
.launchProtectedContentHelpAndFeedbackActivity(getActivity());
-@@ -703,6 +717,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -660,6 +674,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
public boolean onPreferenceChange(Preference preference, Object newValue) {
BrowserContextHandle browserContextHandle = getBrowserContextHandle();
PrefService prefService = UserPrefs.get(browserContextHandle);
@@ -2357,7 +2300,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey())
|| BINARY_TOGGLE_KEY.equals(preference.getKey())) {
assert !mCategory.isManaged();
-@@ -877,7 +896,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -834,7 +853,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? R.string.website_settings_add_site_description_javascript_optimizer_block
: R.string.website_settings_add_site_description_javascript_optimizer_allow;
}
@@ -2366,7 +2309,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// OnPreferenceClickListener:
-@@ -995,17 +1014,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -952,17 +971,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
break;
}
@@ -2387,7 +2330,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
String exceptionDialogMessage =
exceptionDialogMessageResourceId != 0
? getString(exceptionDialogMessageResourceId)
-@@ -1016,7 +1033,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -973,7 +990,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getStyledContext(),
ADD_EXCEPTION_KEY,
exceptionDialogMessage,
@@ -2396,7 +2339,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
mCategory,
this));
-@@ -1200,8 +1217,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -1149,8 +1166,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
private boolean isBlocked() {
switch (mGlobalToggleLayout) {
case GlobalToggleLayout.TRI_STATE_TOGGLE:
@@ -2413,7 +2356,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK);
case GlobalToggleLayout.COOKIE_TOGGLE:
CookieSettingsPreference cookieToggle =
-@@ -1357,7 +1382,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -1310,7 +1335,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (res_id != -1) {
infoText.setSummary(res_id);
} else {
@@ -2426,7 +2369,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
-@@ -1396,6 +1425,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -1346,6 +1375,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
screen.removePreference(mLocationTriStatePref);
}
@@ -2434,15 +2377,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
maybeShowReasonToggleDisabled(screen);
-@@ -1602,6 +1632,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
- iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType);
- }
+@@ -1512,6 +1542,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+ ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType);
+ int[] iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType);
triStateToggle.initialize(
+ contentType,
setting,
descriptionIds,
iconIds,
-@@ -1913,6 +1944,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -1822,6 +1853,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
setLocationAccessEnabled.accept(allowButton.isChecked());
}
@@ -2706,7 +2649,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
-@@ -188,6 +188,8 @@ public interface SiteSettingsDelegate {
+@@ -183,6 +183,8 @@ public interface SiteSettingsDelegate {
*/
String getRelatedWebsiteSetOwner(String memberOrigin);
@@ -2726,15 +2669,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/** A 3-state Allowed/Ask/Blocked radio group Preference used for SiteSettings. */
@NullMarked
-@@ -30,6 +31,7 @@ public class TriStateSiteSettingsPreference extends Preference
+@@ -29,6 +30,7 @@ public class TriStateSiteSettingsPreference extends Preference
+ private RadioButtonWithDescription mBlocked;
private RadioGroup mRadioGroup;
- private boolean mIsPermissionSiteSettingsRadioButtonFeatureEnabled;
private int mIconMarginEnd;
+ private @ContentSettingsType.EnumType int mContentType;
public TriStateSiteSettingsPreference(Context context, AttributeSet attrs) {
super(context, attrs);
-@@ -50,11 +52,13 @@ public class TriStateSiteSettingsPreference extends Preference
+@@ -49,10 +51,12 @@ public class TriStateSiteSettingsPreference extends Preference
* Blocked states, in that order.
*/
public void initialize(
@@ -2742,13 +2685,12 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
@ContentSetting int setting,
int @Nullable [] descriptionIds,
int @Nullable [] iconIds,
- boolean isPermissionSiteSettingsRadioButtonFeatureEnabled,
int iconMarginEnd) {
+ mContentType = contentType;
mSetting = setting;
mDescriptionIds = descriptionIds;
mIconIds = iconIds;
-@@ -94,6 +98,13 @@ public class TriStateSiteSettingsPreference extends Preference
+@@ -90,6 +94,13 @@ public class TriStateSiteSettingsPreference extends Preference
mRadioGroup = (RadioGroup) holder.findViewById(R.id.radio_button_layout);
mRadioGroup.setOnCheckedChangeListener(this);
@@ -2760,8 +2702,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ mBlocked.setPrimaryText(getContext().getText(mDescriptionIds[2]));
+ } else
if (mDescriptionIds != null) {
- if (mIsPermissionSiteSettingsRadioButtonFeatureEnabled) {
- mAllowed.setPrimaryText(getContext().getText(mDescriptionIds[0]));
+ mAllowed.setPrimaryText(getContext().getText(mDescriptionIds[0]));
+ mAsk.setPrimaryText(getContext().getText(mDescriptionIds[1]));
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
@@ -2793,16 +2735,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
-@@ -318,7 +318,7 @@ public class WebsitePreferenceBridge {
- case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER:
- return true;
+@@ -327,7 +327,7 @@ public class WebsitePreferenceBridge {
+ return DeviceFeatureMap.isEnabled(
+ DeviceFeatureList.SENSORS_ALLOW_ASK_BLOCK_PERMISSION_MODEL);
default:
- return false;
+ return BromiteCustomContentSettingImpl.requiresTriStateContentSetting(contentSettingsType);
}
}
-@@ -334,7 +334,6 @@ public class WebsitePreferenceBridge {
+@@ -343,7 +343,6 @@ public class WebsitePreferenceBridge {
public static boolean isCategoryEnabled(
BrowserContextHandle browserContextHandle,
@ContentSettingsType.EnumType int contentSettingsType) {
@@ -2889,7 +2831,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s
diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn
--- a/components/content_settings/core/browser/BUILD.gn
+++ b/components/content_settings/core/browser/BUILD.gn
-@@ -81,6 +81,8 @@ static_library("browser") {
+@@ -85,6 +85,8 @@ static_library("browser") {
configs += [ "//build/config/compiler:wexit_time_destructors" ]
@@ -2898,7 +2840,7 @@ diff --git a/components/content_settings/core/browser/BUILD.gn b/components/cont
# TODO(crbug.com/40145057): remove deprecated RWS and this include.
# Allow access to /components/privacy_sandbox/privacy_sandbox_prefs.h
# from /chrome/browser/ui/page_info/page_info_unittest.cc
-@@ -89,6 +91,11 @@ static_library("browser") {
+@@ -93,6 +95,11 @@ static_library("browser") {
public_deps += [ "//components/privacy_sandbox:privacy_sandbox_prefs" ]
}
@@ -2927,7 +2869,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
-@@ -841,6 +842,7 @@ void ContentSettingsRegistry::Init() {
+@@ -842,6 +843,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -3422,9 +3364,9 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/content_settings_utils.h"
-@@ -210,6 +211,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
- }
+@@ -211,6 +212,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
}
+ permissions_to_display.push_back(ContentSettingsType::SENSORS);
+ content_settings::WebsiteSettingsRegistry* website_settings =
+ content_settings::WebsiteSettingsRegistry::GetInstance();
@@ -3438,7 +3380,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
std::map
user_specified_settings_to_display;
-@@ -288,6 +298,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay(
+@@ -289,6 +299,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay(
return permission.setting;
}
@@ -3464,7 +3406,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
-@@ -1404,6 +1405,14 @@ bool PageInfo::ShouldShowPermission(
+@@ -1411,6 +1412,14 @@ bool PageInfo::ShouldShowPermission(
}
#endif // BUILDFLAG(IS_ANDROID)
@@ -3479,7 +3421,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
// Note |ContentSettingsType::ADS| will show up regardless of its default
// value when it has been activated on the current origin.
if (info.type == ContentSettingsType::ADS) {
-@@ -1527,7 +1536,19 @@ void PageInfo::PresentSitePermissions() {
+@@ -1559,7 +1568,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3511,7 +3453,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
#include "components/page_info/core/features.h"
#include "components/page_info/page_info.h"
#include "components/page_info/page_info_ui.h"
-@@ -256,6 +257,13 @@ void CreateOppositeToDefaultSiteException(
+@@ -258,6 +259,13 @@ void CreateOppositeToDefaultSiteException(
std::u16string GetPermissionAskStateString(ContentSettingsType type) {
int message_id = kInvalidResourceID;
@@ -3525,7 +3467,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
switch (type) {
case ContentSettingsType::GEOLOCATION:
message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK;
-@@ -560,6 +568,12 @@ PageInfoUI::~PageInfoUI() = default;
+@@ -568,6 +576,12 @@ PageInfoUI::~PageInfoUI() = default;
// static
std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -3538,7 +3480,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id);
-@@ -570,6 +584,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
+@@ -578,6 +592,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
// static
std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
ContentSettingsType type) {
@@ -3551,7 +3493,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
-@@ -963,6 +983,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
+@@ -971,6 +991,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch
index fa926ddc..e504fba5 100644
--- a/build/patches/Cromite-Branding--improve-settings-ui.patch
+++ b/build/patches/Cromite-Branding--improve-settings-ui.patch
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -667,7 +667,7 @@ chrome_java_resources = [
+@@ -663,7 +663,7 @@ chrome_java_resources = [
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/personalize_google_services_preferences.xml",
"java/res/xml/incognito_preferences.xml",
@@ -247,7 +247,7 @@ new file mode 100644
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
-@@ -194,7 +194,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
+@@ -196,7 +196,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
mPageTitle.set(getString(R.string.prefs_privacy_security));
@@ -256,7 +256,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
// Overwrite the click listener to pass a correct referrer to the fragment.
-@@ -281,7 +281,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
+@@ -283,7 +283,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
ChromeSwitchPreference passwordLeakTogglePref =
(ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION);
diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch
index 624f863a..ddc69df2 100644
--- a/build/patches/Cromite-Branding.patch
+++ b/build/patches/Cromite-Branding.patch
@@ -67,9 +67,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../webui/version/resources/about_version.ts | 4 +-
.../resources/about_version_mobile.css | 10 ++
content/child/runtime_features.cc | 44 ++++-----
- .../Cromite-Branding.inc | 2 +
+ .../Cromite-Branding.inc | 1 +
tools/grit/grit/grd_reader.py | 35 +++++++
- 65 files changed, 268 insertions(+), 175 deletions(-)
+ 65 files changed, 267 insertions(+), 175 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
diff --git a/build/BUILD.gn b/build/BUILD.gn
@@ -107,7 +107,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -203,7 +203,7 @@ by a child template that "extends" this file.
+@@ -206,7 +206,7 @@ by a child template that "extends" this file.
CreateProfilePrefStoreManager(
+@@ -293,10 +294,7 @@ std::unique_ptr CreateProfilePrefStoreManager(
const base::FilePath& profile_path) {
std::string seed;
CHECK(ui::ResourceBundle::HasSharedInstance());
@@ -13446,7 +13446,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.omnibox.OmniboxMetrics;
import org.chromium.chrome.browser.omnibox.R;
-@@ -110,8 +111,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout {
+@@ -109,8 +110,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout {
// Omnibox.
// Making the container `clickable=true` achieves similar goal, but this consumes all
// activators, including keyboard key.
@@ -13463,7 +13463,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -2393,7 +2393,7 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -2466,7 +2466,7 @@ Your Google account may have other forms of browsing history like searches and a
About Chrome
@@ -13472,7 +13472,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Application version
-@@ -5912,7 +5912,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -6039,7 +6039,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d
@@ -13495,7 +13495,7 @@ diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
-@@ -135,7 +135,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
+@@ -117,7 +117,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
#endif // BUILDFLAG(IS_CHROMEOS)
inline constexpr char kChromeHelpViaWebUIURL[] =
@@ -13504,15 +13504,15 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
#if BUILDFLAG(IS_CHROMEOS)
inline constexpr char kChromeOsHelpViaWebUIURL[] =
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-@@ -193,7 +193,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
+@@ -175,7 +175,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
"chrome-untrusted://new-tab-page/";
// The URL for the Chromium project used in the About dialog.
-inline constexpr char16_t kChromiumProjectURL[] = u"https://www.chromium.org/";
+inline constexpr char16_t kChromiumProjectURL[] = u"https://www.cromite.org/";
-
- #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
- // The URL for the "Clear browsing data in Chrome" help center article.
+ #if BUILDFLAG(IS_CHROMEOS)
+ static_assert(std::u16string_view(kChromiumProjectURL) ==
+ ash::chrome_external_urls::kChromiumProjectURL);
diff --git a/chrome/install_static/chromium_install_modes.h b/chrome/install_static/chromium_install_modes.h
--- a/chrome/install_static/chromium_install_modes.h
+++ b/chrome/install_static/chromium_install_modes.h
@@ -18436,7 +18436,7 @@ i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI
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
-@@ -1123,6 +1123,7 @@ bool AutocompleteController::ShouldRunProvider(
+@@ -1117,6 +1117,7 @@ bool AutocompleteController::ShouldRunProvider(
#if BUILDFLAG(IS_ANDROID)
if (omnibox::IsAndroidHub(input_.current_page_classification())) {
@@ -19198,7 +19198,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
-@@ -575,19 +575,22 @@ void ResolveInvalidConfigurations() {
+@@ -549,19 +549,22 @@ void ResolveInvalidConfigurations() {
base::FeatureList::IsEnabled(
features::kPrivacySandboxAdsAPIsM1Override)) &&
!base::FeatureList::IsEnabled(blink::features::kFencedFrames)) {
@@ -19225,7 +19225,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "Fenced frames must be enabled in order to enable local "
"unpartitioned "
<< "data access. Use --" << switches::kEnableFeatures << "="
-@@ -595,12 +598,14 @@ void ResolveInvalidConfigurations() {
+@@ -569,12 +572,14 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableFeatureFromString(
"FencedFramesLocalUnpartitionedDataAccess", false);
}
@@ -19241,7 +19241,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "Topics cannot be enabled in this configuration. Use --"
<< switches::kEnableFeatures << "="
<< network::features::kBrowsingTopics.name << " in addition.";
-@@ -608,30 +613,23 @@ void ResolveInvalidConfigurations() {
+@@ -582,30 +587,23 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
WebRuntimeFeatures::EnableTopicsImgAPI(false);
} else {
@@ -19278,7 +19278,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "AttributionReporting cannot be enabled in this "
"configuration. Use --"
<< switches::kEnableFeatures << "="
-@@ -639,23 +637,25 @@ void ResolveInvalidConfigurations() {
+@@ -613,23 +611,25 @@ void ResolveInvalidConfigurations() {
<< " in addition.";
WebRuntimeFeatures::EnableAttributionReporting(false);
}
@@ -19299,22 +19299,21 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
+ CHECK(false) << "kInterestGroupStorage is enabled!";
}
- // PermissionElement cannot be enabled without the support of the
+ // UserMediaElement cannot be enabled without the support of the
// browser process.
- if (!base::FeatureList::IsEnabled(blink::features::kPermissionElement)) {
+ if (!base::FeatureList::IsEnabled(blink::features::kUserMediaElement)) {
- LOG_IF(WARNING,
-- WebRuntimeFeatures::IsPermissionElementEnabledByRuntimeFlag())
-+ CHECK(!WebRuntimeFeatures::IsPermissionElementEnabledByRuntimeFlag())
- << "PermissionElement cannot be enabled in this configuration. Use --"
+- WebRuntimeFeatures::IsUserMediaElementEnabledByRuntimeFlag())
++ CHECK(!WebRuntimeFeatures::IsUserMediaElementEnabledByRuntimeFlag())
+ << "UserMediaElement cannot be enabled in this configuration. Use --"
<< switches::kEnableFeatures << "="
- << blink::features::kPermissionElement.name << " instead.";
+ << blink::features::kUserMediaElement.name << " instead.";
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
-@@ -0,0 +1,2 @@
-+SET_CROMITE_FEATURE_ENABLED(kGridTabSwitcherUpdate);
-+SET_CROMITE_FEATURE_DISABLED(kShowNewTabAnimations);
+@@ -0,0 +1 @@
++SET_CROMITE_FEATURE_DISABLED(kShowTabListAnimations);
diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
--- a/tools/grit/grit/grd_reader.py
+++ b/tools/grit/grit/grd_reader.py
diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch
index 4e7b2a48..dec82036 100644
--- a/build/patches/Customize-selection-popup.patch
+++ b/build/patches/Customize-selection-popup.patch
@@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/ChromeActionModeHandler.java | 4 +-
.../chrome/browser/ChromeTabbedActivity.java | 15 +++-
...ActivityTabWebContentsDelegateAndroid.java | 10 ++-
- .../compositor/layouts/LayoutManagerImpl.java | 8 ++
+ .../compositor/layouts/LayoutManagerImpl.java | 9 ++-
.../tab/TabContextMenuItemDelegate.java | 7 +-
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
.../Customize-selection-popup.grdp | 34 +++++++++
@@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/PendingSelectionMenu.java | 8 +-
.../browser/SelectionMenuItem.java | 73 ++++++++++++-------
.../SelectionActionMenuDelegate.java | 32 +++++---
- 16 files changed, 194 insertions(+), 66 deletions(-)
+ 16 files changed, 194 insertions(+), 67 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
diff --git a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -926,10 +926,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
+@@ -936,10 +936,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
@@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
-@@ -250,6 +250,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
+@@ -253,6 +253,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
// Skip opening a new Tab if it doesn't make sense.
if (mTab.isClosing()) return false;
@@ -121,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit
if (ChromeFeatureList.isEnabled(ChromeFeatureList.DOCUMENT_PICTURE_IN_PICTURE_API)
&& disposition == WindowOpenDisposition.NEW_PICTURE_IN_PICTURE) {
assertNonNull(pictureInPictureWindowOptions);
-@@ -263,7 +271,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
+@@ -270,7 +278,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
mTab,
/* shouldPin= */ false,
webContents,
@@ -133,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
-@@ -19,6 +19,7 @@ import android.view.ViewGroup;
+@@ -20,6 +20,7 @@ import androidx.annotation.Px;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.Callback;
@@ -141,24 +141,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
import org.chromium.base.ObserverList;
import org.chromium.base.TraceEvent;
import org.chromium.base.supplier.MonotonicObservableSupplier;
-@@ -250,6 +251,13 @@ public class LayoutManagerImpl
- != TabLaunchType
- .FROM_COLLABORATION_BACKGROUND_IN_GROUP)
- || (!getTabModelSelector().isIncognitoSelected() && incognito);
-+ boolean selectionPopupTabsForeground =
-+ ContextUtils.getAppSharedPreferences().getBoolean(
-+ "selection_popup_tabs_foreground", false);
-+ if (selectionPopupTabsForeground) {
-+ willBeSelected = launchType != TabLaunchType.FROM_RESTORE_TABS_UI
-+ || (!getTabModelSelector().isIncognitoSelected() && incognito);
-+ }
- float lastTapX = LocalizationUtils.isLayoutRtl() ? mHost.getWidth() * mPxToDp : 0.f;
- float lastTapY = 0.f;
- if (launchType != TabLaunchType.FROM_CHROME_UI) {
+@@ -243,11 +244,17 @@ public class LayoutManagerImpl
+ boolean willBeSelected = willAddedTabBeSelected(launchType, incognito);
+ float lastTapX = LocalizationUtils.isLayoutRtl() ? mHost.getWidth() * mPxToDp : 0.f;
+ float lastTapY = 0.f;
++ boolean selectionPopupTabsForeground =
++ ContextUtils.getAppSharedPreferences().getBoolean(
++ "selection_popup_tabs_foreground", false);
++ if (selectionPopupTabsForeground) {
++ willBeSelected = launchType != TabLaunchType.FROM_RESTORE_TABS_UI
++ || (!getTabModelSelector().isIncognitoSelected() && incognito);
++ }
+ if (launchType != TabLaunchType.FROM_CHROME_UI) {
+ lastTapX = mPxToDp * mLastTapX;
+ lastTapY = mPxToDp * mLastTapY;
+ }
+-
+ tabCreated(
+ tabId,
+ getTabModelSelector().getCurrentTabId(),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
-@@ -430,8 +430,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+@@ -433,8 +433,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
loadUrlParams.setReferrer(referrer);
@@ -176,15 +181,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
-@@ -35,6 +35,7 @@ import androidx.core.view.WindowInsetsCompat;
+@@ -34,6 +34,7 @@ import androidx.core.view.WindowInsetsCompat;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController;
+import org.chromium.base.ContextUtils;
import org.chromium.base.DeviceInfo;
- import org.chromium.base.Log;
import org.chromium.base.TraceEvent;
-@@ -1050,11 +1051,16 @@ public class RootUiCoordinator
+ import org.chromium.base.lifetime.Destroyable;
+@@ -1065,11 +1066,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -390,7 +395,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
-@@ -1127,7 +1127,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
+@@ -1133,7 +1133,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
private boolean handleAssistMenuItemClick(int order) {
// Primary assist action is always the first action in the list so offset by 1.
@@ -402,15 +407,15 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
-@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
- import org.jni_zero.JNINamespace;
+@@ -19,6 +19,7 @@ import org.jni_zero.JNINamespace;
+ import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
+import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.UserData;
import org.chromium.build.annotations.Initializer;
-@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
+@@ -81,6 +82,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
return null;
}
diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch
index 22ed4565..bbb7de1f 100644
--- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch
+++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch
@@ -10,10 +10,10 @@ 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 | 11 ++++++++-
- .../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++
- .../browser/omnibox/UrlBarViewBinder.java | 2 ++
- 4 files changed, 37 insertions(+), 1 deletion(-)
+ .../browser/omnibox/LocationBarMediator.java | 25 +++++++++++++-----
+ .../chrome/browser/omnibox/UrlBar.java | 26 +++++++++++++++++++
+ .../browser/omnibox/UrlBarViewBinder.java | 1 +
+ 4 files changed, 47 insertions(+), 6 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
@@ -29,24 +29,80 @@ 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
-@@ -415,7 +415,16 @@ class LocationBarMediator
- if (!mUrlFocusedWithPastedText
- && !shouldRetainOmniboxOnFocus
- && mLocationBarLayout.shouldClearTextOnFocus()) {
-- setUrlBarText(UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, UrlBarData.SELECT_END);
-+ UrlBarData data = mLocationBarDataProvider.getUrlBarData();
-+ GURL url = mLocationBarDataProvider.getUrlBarData().url;
-+ if (url != null && mTemplateUrlServiceSupplier.get() != null) {
-+ String searchParams =
-+ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url);
-+ if (searchParams != null && !searchParams.isEmpty()) {
-+ data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams);
-+ }
-+ }
-+ setUrlBarText(data, UrlBar.ScrollType.NO_SCROLL, UrlBarData.SELECT_ALL);
- } else if (shouldRetainOmniboxOnFocus) {
- mUrlCoordinator.setSelectAllOnFocus(true);
+@@ -591,7 +591,7 @@ class LocationBarMediator
+ if (NativePage.isChromePageUrl(currentUrl, mLocationBarDataProvider.isOffTheRecord())
+ && mCurrentInput != null) {
+ mCurrentInput.setUserText(null);
+- beginOrResumeInput(/* activateNewSession= */ false);
++ beginOrResumeInput(/* activateNewSession= */ false, /* wasFocus */ false);
+ } else {
+ setUrlBarText(
+ mLocationBarDataProvider.getUrlBarData(),
+@@ -842,7 +842,7 @@ class LocationBarMediator
+ if (mCurrentInput == null) return; // session not started yet.
+
+ mCurrentInput.setUserText(null);
+- beginOrResumeInput(/* activateNewSession= */ false);
++ beginOrResumeInput(/* activateNewSession= */ false, /* wasFocus */ false);
+ updateButtonVisibility();
+ mUrlCoordinator.requestAccessibilityFocus();
+ }
+@@ -923,7 +923,7 @@ class LocationBarMediator
+ // Existing text (e.g. if the user pasted via the fakebox) from the fake box
+ // should be restored after toggling the focus.
+ if (mCurrentInput != null && !mCurrentInput.getUserText().isEmpty()) {
+- beginOrResumeInput(/* activateNewSession= */ false);
++ beginOrResumeInput(/* activateNewSession= */ false, /* wasFocus */ false);
+ }
}
+
+@@ -968,7 +968,7 @@ class LocationBarMediator
+ */
+ @EnsuresNonNullIf("mCurrentInput")
+ @VisibleForTesting
+- void beginOrResumeInput(boolean activateNewSession) {
++ void beginOrResumeInput(boolean activateNewSession, boolean wasFocus) {
+ // Do not instantiate a new ephemeral session unless we're activating it as well.
+ var session = FuseboxSessionState.from(mLocationBarDataProvider);
+
+@@ -1002,6 +1002,19 @@ class LocationBarMediator
+ .addSyncObserverAndCallIfNonNull(mAutocompleteRequestTypeObserver);
+
+ UrlBarData data = UrlBarData.forNonUrlText(mCurrentInput.getUserText());
++ if (wasFocus) {
++ data = mLocationBarDataProvider.getUrlBarData();
++ GURL url = mLocationBarDataProvider.getUrlBarData().url;
++ if (url != null && mTemplateUrlServiceSupplier.get() != null) {
++ String searchParams =
++ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url);
++ if (searchParams != null && !searchParams.isEmpty()) {
++ mCurrentInput.setUserText(searchParams);
++ data = UrlBarData.forUrlAndText(data.url, data.displayText, searchParams);
++ }
++ }
++ mCurrentInput.setSelection(0, Integer.MAX_VALUE);
++ }
+ mUrlCoordinator.setUrlBarData(
+ data, UrlBar.ScrollType.NO_SCROLL, mCurrentInput.getSelection());
+
+@@ -1076,7 +1089,7 @@ class LocationBarMediator
+ // This call is permitted to happen before anyone else is activated, and
+ // must be called before everyone else cleans up.
+ if (hasFocus) {
+- beginOrResumeInput(/* activateNewSession= */ true);
++ beginOrResumeInput(/* activateNewSession= */ true, /* wasFocus */ true);
+ } else {
+ endInputInternal();
+ }
+@@ -1953,7 +1966,7 @@ class LocationBarMediator
+ }
+
+ // Wait for the Url focus change before refreshing autocomplete.
+- beginOrResumeInput(/* activateNewSession= */ true);
++ beginOrResumeInput(/* activateNewSession= */ true, /* wasFocus */ false);
+ }
+
+ /**
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -58,18 +114,26 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import android.os.SystemClock;
import android.text.Editable;
import android.text.InputType;
-@@ -112,6 +113,7 @@ public class UrlBar extends AutocompleteEditText {
+@@ -57,6 +58,7 @@ import org.chromium.components.browser_ui.util.FirstDrawDetector;
+ import org.chromium.components.omnibox.OmniboxFeatures;
+ import org.chromium.ui.KeyboardVisibilityDelegate;
+ import org.chromium.ui.base.KeyNavigationUtil;
++import org.chromium.ui.base.DeviceFormFactor;
+ import org.chromium.ui.display.DisplayAndroid;
+ import org.chromium.ui.display.DisplayUtil;
+
+@@ -109,6 +111,7 @@ public class UrlBar extends AutocompleteEditText {
+ private boolean mFocusEventEmitted;
private boolean mAllowFocus = true;
- private boolean mShouldSendTypingStartedEvent;
-
+ private boolean mAllowMultilineInput;
+ private boolean mPendingSelectAll;
+ private boolean mCurrentInputCanBeWrapped;
+
private boolean mPendingScroll;
- private boolean mIsInCct;
-
-@@ -369,6 +371,28 @@ public class UrlBar extends AutocompleteEditText {
+@@ -332,6 +335,29 @@ public class UrlBar extends AutocompleteEditText {
+ mPendingScroll = false;
+ }
fixupTextDirection();
-
- mShouldSendTypingStartedEvent = focused;
+
+ if (mPendingSelectAll) {
+ UrlBar sender = this;
@@ -85,7 +149,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
+
+ @Override
+ public void selectAll() {
-+ mPendingSelectAll = true;
++ if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(getContext()))
++ mPendingSelectAll = true;
+ super.selectAll();
+ }
+
@@ -98,13 +163,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java
-@@ -84,6 +84,8 @@ class UrlBarViewBinder {
+@@ -100,6 +100,7 @@ class UrlBarViewBinder {
+ selectionRange = Range.create(textLength, textLength);
}
-
view.setSelection(selectionRange.getLower(), selectionRange.getUpper());
-+ if (state.selection == UrlBarData.SELECT_ALL)
-+ view.selectAll();
- // Move the accessibility focus to the Omnibox.
- // This ensures the updated field is announced to the user, especially when the user
- // recently interacted with Refine button.
++ view.selectAll();
+ view.requestAccessibilityFocus();
+ }
+ } else if (UrlBarProperties.TEXT_COLOR.equals(propertyKey)) {
--
diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch
index 6bd326c7..9bddba31 100644
--- a/build/patches/Disable-Accessibility-service-by-default.patch
+++ b/build/patches/Disable-Accessibility-service-by-default.patch
@@ -42,7 +42,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
-@@ -1226,6 +1226,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
+@@ -1325,6 +1325,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
structure.setChildCount(0);
return;
}
diff --git a/build/patches/Disable-Android-Tab-Declutter.patch b/build/patches/Disable-Android-Tab-Declutter.patch
index afb0ab93..2cac7e7c 100644
--- a/build/patches/Disable-Android-Tab-Declutter.patch
+++ b/build/patches/Disable-Android-Tab-Declutter.patch
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
-@@ -100,7 +100,8 @@ found in the LICENSE file.
+@@ -98,7 +98,8 @@ found in the LICENSE file.
android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings"
android:key="tabs"
android:order="18"
diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch
index e77f79de..c2b50be8 100644
--- a/build/patches/Disable-CSSDynamicRangeLimit.patch
+++ b/build/patches/Disable-CSSDynamicRangeLimit.patch
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1460,7 +1460,7 @@
+@@ -1515,7 +1515,7 @@
},
{
name: "CSSDynamicRangeLimit",
diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch
index 9c58c02b..4354337d 100644
--- a/build/patches/Disable-Compose-feature.patch
+++ b/build/patches/Disable-Compose-feature.patch
@@ -4,26 +4,24 @@ Subject: Disable Compose feature
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
- chrome/browser/ui/webui/settings/settings_ui.cc | 6 ++++--
+ chrome/browser/ui/webui/settings/settings_ui.cc | 4 ++--
components/compose/core/browser/compose_features.cc | 2 ++
components/compose/features.gni | 2 +-
- 3 files changed, 7 insertions(+), 3 deletions(-)
+ 3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
-@@ -21,7 +21,9 @@
+@@ -21,7 +21,7 @@
#include "chrome/browser/browser_features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/commerce/shopping_service_factory.h"
-#include "chrome/browser/compose/compose_enabling.h"
-+// #if BUILDFLAG(ENABLE_COMPOSE)
+// #include "chrome/browser/compose/compose_enabling.h"
-+// #endif
+ #include "chrome/browser/glic/public/glic_enabling.h"
+ #include "chrome/browser/glic/public/glic_keyed_service.h"
#include "chrome/browser/history_embeddings/history_embeddings_utils.h"
- #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
- #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
-@@ -366,7 +368,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
+@@ -369,7 +369,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
base::FeatureList::IsEnabled(permissions::features::kKeyboardLockPrompt));
#if BUILDFLAG(ENABLE_COMPOSE)
diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch
index 867c67f1..0a26f3c5 100644
--- a/build/patches/Disable-Compression-Dictionary-Transport.patch
+++ b/build/patches/Disable-Compression-Dictionary-Transport.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1477,8 +1477,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
+@@ -1527,8 +1527,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true);
registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true);
registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins);
diff --git a/build/patches/Disable-Device-Attributes-API.patch b/build/patches/Disable-Device-Attributes-API.patch
index 3604dfe2..2ac69cd5 100644
--- a/build/patches/Disable-Device-Attributes-API.patch
+++ b/build/patches/Disable-Device-Attributes-API.patch
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc
--- a/chrome/browser/device_api/device_service_impl.cc
+++ b/chrome/browser/device_api/device_service_impl.cc
-@@ -146,6 +146,7 @@ bool IsAffiliatedUser() {
+@@ -147,6 +147,7 @@ bool IsAffiliatedUser() {
bool IsTrustedContext(content::RenderFrameHost& host,
const url::Origin& origin) {
@@ -18,7 +18,7 @@ diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/d
// Do not create the service for the incognito mode.
if (GetProfile(host)->IsIncognitoProfile()) {
return false;
-@@ -322,6 +323,10 @@ void DeviceServiceImpl::GetAnnotatedLocation(
+@@ -323,6 +324,10 @@ void DeviceServiceImpl::GetAnnotatedLocation(
void DeviceServiceImpl::GetDeviceAttribute(
void (DeviceAttributeApi::*method)(DeviceAttributeCallback callback),
DeviceAttributeCallback callback) {
diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch
index ed480f7b..05636179 100644
--- a/build/patches/Disable-FedCm.patch
+++ b/build/patches/Disable-FedCm.patch
@@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -639,7 +639,7 @@ void ContentSettingsRegistry::Init() {
+@@ -640,7 +640,7 @@ void ContentSettingsRegistry::Init() {
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
@@ -47,7 +47,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -2379,7 +2379,7 @@
+@@ -2470,7 +2470,7 @@
{
name: "FedCm",
public: true,
diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch
index ec18c5f2..0e5a6be5 100644
--- a/build/patches/Disable-GSA-by-default.patch
+++ b/build/patches/Disable-GSA-by-default.patch
@@ -5,13 +5,13 @@ Subject: Disable GSA by default
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../src/org/chromium/base/PackageUtils.java | 1 +
- .../chrome/browser/IntentHandler.java | 7 ----
+ .../chrome/browser/IntentHandler.java | 6 ----
.../chrome/browser/share/LensUtils.java | 14 ++------
.../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++----------------
.../GoogleBottomBarActionsHandler.java | 19 ++---------
.../chrome/browser/pdf/PdfCoordinator.java | 2 +-
.../Disable-GSA-by-default.inc | 1 +
- 7 files changed, 12 insertions(+), 66 deletions(-)
+ 7 files changed, 12 insertions(+), 65 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
import org.chromium.chrome.browser.pdf.PdfUtils;
import org.chromium.chrome.browser.profiles.Profile;
-@@ -306,9 +305,6 @@ public class IntentHandler {
+@@ -310,9 +309,6 @@ public class IntentHandler {
public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE =
"org.chromium.chrome.browser.tips_notification_feature_type";
@@ -46,15 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
/** Action to launch the Chrome Item Picker UI, e.g.: tabs. */
public static final String EXTRA_OPEN_CHROME_ITEM_PICKER =
"org.chromium.chrome.browser.actions.open_chrome_item_picker";
-@@ -316,7 +312,6 @@ public class IntentHandler {
- /** Optional extra for the maximum number of items the user can select. */
- public static final String EXTRA_ITEM_PICKER_MAX_SELECTABLE_ITEMS =
- "org.chromium.chrome.browser.extras.item_picker_max_selectable_items";
--
- public static final String EXTRA_ITEM_PICKER_ERROR =
- "org.chromium.chrome.browser.chrome_item_picker.EXTRA_ITEM_PICKER_ERROR";
-
-@@ -572,8 +567,6 @@ public class IntentHandler {
+@@ -573,8 +569,6 @@ public class IntentHandler {
return ExternalAppId.LINE;
} else if (PACKAGE_WHATSAPP.equals(packageName)) {
return ExternalAppId.WHATSAPP;
@@ -240,7 +232,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
-@@ -276,7 +276,7 @@ public class PdfCoordinator {
+@@ -351,7 +351,7 @@ public class PdfCoordinator implements PdfActionsDelegate {
}
@Nullable String requestAssistContent(String filename, boolean isWorkProfile) {
diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch
index 88394cb4..e3d209f8 100644
--- a/build/patches/Disable-GetInstalledRelatedApps-API.patch
+++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
--- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
+++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
-@@ -162,6 +162,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
+@@ -137,6 +137,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
final Url manifestUrl,
final boolean addSavedRelatedApplications,
final FilterInstalledApps_Response callback) {
@@ -58,7 +58,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -3167,9 +3167,8 @@
+@@ -3274,9 +3274,8 @@
status: "stable",
},
{
diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch
index e2eca9ce..bb83d85a 100644
--- a/build/patches/Disable-PrivacyGuide.patch
+++ b/build/patches/Disable-PrivacyGuide.patch
@@ -5,8 +5,9 @@ Subject: Disable PrivacyGuide
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/java/res/xml/privacy_preferences.xml | 1 +
+ chrome/browser/prefs/browser_prefs.cc | 2 +-
chrome/browser/ui/webui/settings/settings_ui.cc | 3 +--
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
@@ -19,10 +20,22 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
android:title="@string/privacy_guide_pref_title"
android:summary="@string/privacy_guide_pref_summary"
android:fragment="org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment" />
+diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
+--- a/chrome/browser/prefs/browser_prefs.cc
++++ b/chrome/browser/prefs/browser_prefs.cc
+@@ -2158,7 +2158,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+ registry->RegisterBooleanPref(webauthn::pref_names::kAllowWithBrokenCerts,
+ false);
+
+- registry->RegisterBooleanPref(prefs::kPrivacyGuideViewed, false);
++ registry->RegisterBooleanPref(prefs::kPrivacyGuideViewed, true);
+
+ RegisterProfilePrefsForMigration(registry);
+
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
-@@ -343,8 +343,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
+@@ -342,8 +342,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // BUILDFLAG(IS_CHROMEOS)
bool show_privacy_guide =
diff --git a/build/patches/Disable-Read-Aloud-by-default.patch b/build/patches/Disable-Read-Aloud-by-default.patch
index 87a9b005..724590a2 100644
--- a/build/patches/Disable-Read-Aloud-by-default.patch
+++ b/build/patches/Disable-Read-Aloud-by-default.patch
@@ -3,15 +3,27 @@ Date: Wed, 24 Jan 2024 12:19:44 +0000
Subject: Disable Read Aloud by default
---
- .../flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc | 2 ++
- 1 file changed, 2 insertions(+)
+ chrome/browser/prefs/browser_prefs.cc | 2 +-
+ .../flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
+diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
+--- a/chrome/browser/prefs/browser_prefs.cc
++++ b/chrome/browser/prefs/browser_prefs.cc
+@@ -1505,7 +1505,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
+ #if BUILDFLAG(IS_ANDROID)
+ registry->RegisterBooleanPref(policy::policy_prefs::kBackForwardCacheEnabled,
+ true);
+- registry->RegisterBooleanPref(policy::policy_prefs::kReadAloudEnabled, true);
++ registry->RegisterBooleanPref(policy::policy_prefs::kReadAloudEnabled, false);
+ #endif // BUILDFLAG(IS_ANDROID)
+
+ // Below this point is for platform-specific and compile-time conditional
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Read-Aloud.inc
-@@ -0,0 +1,2 @@
-+SET_CROMITE_FEATURE_DISABLED(kReadAloud);
+@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kReadAloudPlayback);
--
diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch
index 7d65bd76..1e1ce700 100644
--- a/build/patches/Disable-Real-Box.patch
+++ b/build/patches/Disable-Real-Box.patch
@@ -4,16 +4,16 @@ Subject: Disable Real Box
Real-box is search box in ntp
---
- chrome/browser/prefs/browser_prefs.cc | 2 +-
- chrome/browser/resources/new_tab_page/app.html | 18 ------------------
- .../searchbox/searchbox_handler.cc | 1 +
- components/search/ntp_features.cc | 4 ++--
- 4 files changed, 4 insertions(+), 21 deletions(-)
+ chrome/browser/prefs/browser_prefs.cc | 2 +-
+ .../browser/resources/new_tab_page/app.html | 19 +------------------
+ .../searchbox/searchbox_handler.cc | 1 +
+ components/search/ntp_features.cc | 4 ++--
+ 4 files changed, 5 insertions(+), 21 deletions(-)
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -2091,7 +2091,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -2130,7 +2130,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterBooleanPref(
prefs::kLensRegionSearchEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
@@ -25,14 +25,14 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
-@@ -43,24 +43,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js';
+@@ -43,24 +43,7 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js';
--
+-
--
+-
++
${this.showComposebox_ ? html`
@@ -464,7 +464,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
-@@ -93,6 +93,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
+@@ -88,6 +88,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
value: () => loadTimeData.getBoolean('isPrivacySandboxRestricted'),
},
@@ -482,15 +482,15 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
isPrivacySandboxRestrictedNoticeEnabled_: {
type: Boolean,
value: () =>
-@@ -117,6 +128,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
+@@ -111,6 +122,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
+ declare private historyExpireDaysThresholdOptions_: object[];
declare private showClearBrowsingDataDialog_: boolean;
declare private showPrivacyGuideDialog_: boolean;
- declare private enableDeleteBrowsingDataRevamp_: boolean;
+ declare private referersPolicyOptions_: object[];
declare private isPrivacySandboxRestricted_: boolean;
declare private isPrivacySandboxRestrictedNoticeEnabled_: boolean;
declare private dbdDeletionConfirmationToastLabel_: string;
-@@ -147,6 +159,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
+@@ -141,6 +153,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
Router.getInstance().navigateTo(routes.COOKIES);
}
@@ -506,7 +506,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1110,6 +1110,30 @@ For more settings that use data to improve your Chrome experience, go to
@@ -552,7 +552,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
-@@ -378,6 +378,8 @@ void PrefsTabHelper::RegisterProfilePrefs(
+@@ -384,6 +384,8 @@ void PrefsTabHelper::RegisterProfilePrefs(
registry->RegisterBooleanPref(
prefs::kEnableReferrers,
!base::FeatureList::IsEnabled(features::kNoReferrers));
@@ -564,7 +564,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -2330,6 +2330,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
+@@ -2342,6 +2342,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION},
{"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION},
{"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION},
@@ -578,7 +578,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
-@@ -1564,6 +1564,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track";
+@@ -1495,6 +1495,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track";
inline constexpr char kEnableEncryptedMedia[] =
"webkit.webprefs.encrypted_media_enabled";
diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch
index 86b2f110..89452b15 100644
--- a/build/patches/Remove-binary-blob-integrations.patch
+++ b/build/patches/Remove-binary-blob-integrations.patch
@@ -52,7 +52,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../CableAuthenticatorModuleProvider.java | 35 +-
chrome/browser/webid/BUILD.gn | 3 -
.../DigitalCredentialsCreationDelegate.java | 121 +--
- ...igitalCredentialsPresentationDelegate.java | 89 +-
+ ...igitalCredentialsPresentationDelegate.java | 87 +-
chrome/test/android/BUILD.gn | 2 -
.../ExternalNavigationHandler.java | 8 -
components/externalauth/android/BUILD.gn | 3 -
@@ -111,7 +111,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../gms/ChromiumPlayServicesAvailability.java | 17 +-
third_party/androidx/customizations.gni | 14 +-
third_party/cardboard/BUILD.gn | 4 -
- 87 files changed, 134 insertions(+), 2780 deletions(-)
+ 87 files changed, 133 insertions(+), 2779 deletions(-)
create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -153,7 +153,7 @@ diff --git a/build/config/android/config.gni b/build/config/android/config.gni
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -298,14 +298,6 @@ if (_is_default_toolchain) {
+@@ -303,14 +303,6 @@ if (_is_default_toolchain) {
":system_ai_service_proto_java",
":usage_stats_proto_java",
":xr_java",
@@ -168,7 +168,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:content_uri_utils_java",
"//base:flagged_apis_java",
"//base:process_launcher_java",
-@@ -757,12 +749,9 @@ if (_is_default_toolchain) {
+@@ -767,12 +759,9 @@ if (_is_default_toolchain) {
"//services/shape_detection/public/mojom:mojom_java",
"//skia/public/mojom:mojom_java",
"//third_party/android_deps:chromium_play_services_availability_java",
@@ -181,7 +181,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/android_media:android_media_java",
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
-@@ -1948,7 +1937,6 @@ if (_is_default_toolchain) {
+@@ -1966,7 +1955,6 @@ if (_is_default_toolchain) {
]
deps = [
":chrome_java",
@@ -189,7 +189,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//build/android:build_java",
-@@ -2054,7 +2042,6 @@ if (_is_default_toolchain) {
+@@ -2073,7 +2061,6 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
@@ -197,7 +197,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
-@@ -2082,14 +2069,10 @@ if (_is_default_toolchain) {
+@@ -2101,14 +2088,10 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
"java/src/org/chromium/chrome/browser/provider/PageContentProvider.java",
@@ -212,7 +212,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//chrome/browser/autofill/android:third_party_provider_java",
"//chrome/browser/download/android:file_provider_java",
-@@ -2108,7 +2091,6 @@ if (_is_default_toolchain) {
+@@ -2127,7 +2110,6 @@ if (_is_default_toolchain) {
"//components/module_installer/android:module_installer_java",
"//components/policy/android:policy_java",
"//components/variations/android:variations_java",
@@ -223,7 +223,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -1008,10 +1008,6 @@ chrome_java_sources = [
+@@ -1023,10 +1023,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.java",
"java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java",
@@ -237,7 +237,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -151,19 +151,14 @@ by a child template that "extends" this file.
+@@ -154,19 +154,14 @@ by a child template that "extends" this file.
@@ -257,7 +257,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -831,16 +826,6 @@ by a child template that "extends" this file.
+@@ -843,16 +838,6 @@ by a child template that "extends" this file.
@@ -274,7 +274,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
@@ -293,7 +293,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -1373,12 +1346,6 @@ by a child template that "extends" this file.
+@@ -1393,12 +1366,6 @@ by a child template that "extends" this file.
{% endif %}
@@ -381,7 +381,7 @@ diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.
diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn
--- a/chrome/android/junit/BUILD.gn
+++ b/chrome/android/junit/BUILD.gn
-@@ -43,12 +43,6 @@ if (is_android) {
+@@ -47,12 +47,6 @@ if (is_android) {
]
public_deps = [
@@ -515,7 +515,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p
"//base:base_java",
"//base:resetters_java",
"//base:tasks_java",
-@@ -322,8 +319,6 @@ robolectric_binary("password_manager_junit_tests") {
+@@ -324,8 +321,6 @@ robolectric_binary("password_manager_junit_tests") {
":test_support_java",
":unified_password_manager_proto_java",
":utils_java",
@@ -648,7 +648,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
-@@ -490,13 +488,6 @@ public class PasswordManagerHelper {
+@@ -489,13 +487,6 @@ public class PasswordManagerHelper {
// If the exception is not a Chrome-defined one, it means that the call failed at the
// API call level. It could have either failed with a known ApiException or because of a
// different error (e.g. a different exception thrown by the implementation of the API).
@@ -694,7 +694,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c
PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile(
content::BrowserContext* context) {
- // The Push API is not currently supported in incognito mode.
-- // See https://crbug.com/401439.
+- // See https://crbug.com/41124656.
- if (context->IsOffTheRecord())
- return nullptr;
-
@@ -707,7 +707,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c
diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc
--- a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc
+++ b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc
-@@ -133,6 +133,7 @@ NotificationTelemetryService::NotificationTelemetryService(
+@@ -127,6 +127,7 @@ NotificationTelemetryService::NotificationTelemetryService(
// Notification Telemetry Service is a keyed service and will outlive
// any invocations of the callback being registered with the push messaging
// service (also a keyed service).
@@ -718,7 +718,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -129,8 +129,6 @@ static_library("ui") {
+@@ -128,8 +128,6 @@ static_library("ui") {
"webui/flags/flags_ui.h",
"webui/flags/flags_ui_handler.cc",
"webui/flags/flags_ui_handler.h",
@@ -727,7 +727,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
"webui/history_clusters/history_clusters_internals_ui_config.cc",
"webui/history_clusters/history_clusters_internals_ui_config.h",
"webui/interstitials/interstitial_ui.cc",
-@@ -472,7 +470,6 @@ static_library("ui") {
+@@ -498,7 +496,6 @@ static_library("ui") {
"//components/feedback/content",
"//components/feedback/redaction_tool",
"//components/find_in_page",
@@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
-@@ -176,8 +176,6 @@ android_library("java") {
+@@ -186,8 +186,6 @@ android_library("java") {
deps = [
":java_resources",
@@ -747,7 +747,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr
"//base:base_java",
"//base/version_info/android:version_constants_java",
"//build/android:build_java",
-@@ -521,8 +519,6 @@ robolectric_library("junit") {
+@@ -540,8 +538,6 @@ robolectric_library("junit") {
deps = [
":java",
":java_resources",
@@ -775,10 +775,10 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
-@@ -257,7 +257,6 @@ void RegisterChromeWebUIConfigs() {
- map.AddWebUIConfig(std::make_unique());
+@@ -260,7 +260,6 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(std::make_unique());
map.AddWebUIConfig(std::make_unique());
+ map.AddWebUIConfig(std::make_unique());
- map.AddWebUIConfig(std::make_unique());
map.AddWebUIConfig(
std::make_unique<
@@ -1014,7 +1014,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w
diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java
--- a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java
+++ b/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/webid/DigitalCredentialsPresentationDelegate.java
-@@ -18,13 +18,6 @@ import androidx.credentials.Credential;
+@@ -18,12 +18,6 @@ import androidx.credentials.Credential;
import androidx.credentials.GetDigitalCredentialOption;
import androidx.credentials.provider.PendingIntentHandler;
@@ -1023,12 +1023,11 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w
-import com.google.android.gms.identitycredentials.GetCredentialRequest;
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
--import com.google.android.gms.identitycredentials.IntentHelper;
-
import org.json.JSONException;
import org.json.JSONObject;
-@@ -57,79 +50,7 @@ public class DigitalCredentialsPresentationDelegate {
+@@ -54,85 +48,7 @@ public class DigitalCredentialsPresentationDelegate {
Activity window = windowAndroid.getActivity().get();
if (window == null) return Promise.rejected();
@@ -1051,7 +1050,13 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w
- protected void onReceiveResult(int code, Bundle data) {
- Log.d(TAG, "Received a response");
- try {
-- result.fulfill(extractDigitalCredentialFromResponseBundle(code, data));
+- var credential = extractDigitalCredentialFromResponseBundle(code, data);
+- if (credential == null) {
+- result.reject(
+- new Exception("Response does not contain a credential"));
+- } else {
+- result.fulfill(credential);
+- }
- } catch (Exception e) {
- Log.e(TAG, e.toString());
-
@@ -1109,28 +1114,14 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w
}
/**
-@@ -149,7 +70,7 @@ public class DigitalCredentialsPresentationDelegate {
+@@ -146,6 +62,7 @@ public class DigitalCredentialsPresentationDelegate {
@VisibleForTesting
- public static DigitalCredential extractDigitalCredentialFromResponseBundle(
- int code, Bundle bundle)
-- throws JSONException, NullPointerException, GetCredentialException {
-+ throws JSONException, NullPointerException {
- // Try to read the new format.
- var digitalCredential = extractDigitalCredentialFromModernResponse(bundle);
- if (digitalCredential != null) {
-@@ -158,11 +79,7 @@ public class DigitalCredentialsPresentationDelegate {
- // TODO(crbug.com/336329411) Handle the case when the intent doesn't contain the modern
- // response, but contains the modern exception.
-
-- // Fallback to the legacy format.
-- var response = IntentHelper.extractGetCredentialResponse(code, bundle);
-- var token = response.getCredential().getData().getByteArray(BUNDLE_KEY_IDENTITY_TOKEN);
--
-- return new DigitalCredential(null, Objects.requireNonNull(token));
-+ throw new NullPointerException();
- }
-
- /**
+ public static @Nullable DigitalCredential extractDigitalCredentialFromResponseBundle(
+ int code, Bundle bundle) throws JSONException {
++ if ((true)) throw new JSONException("not reached");
+ Intent intent = IntentUtils.safeGetParcelable(bundle, BUNDLE_KEY_PROVIDER_DATA);
+ if (intent == null) {
+ return null;
diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
--- a/chrome/test/android/BUILD.gn
+++ b/chrome/test/android/BUILD.gn
@@ -1146,7 +1137,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
-@@ -2912,14 +2912,6 @@ public class ExternalNavigationHandler {
+@@ -2945,14 +2945,6 @@ public class ExternalNavigationHandler implements ExternalNavigationHelper {
* @return Whether the given intent is going to open an Instant App.
*/
private static boolean isIntentToInstantApp(Intent intent) {
@@ -1493,7 +1484,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
--- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
+++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
-@@ -88,7 +88,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
+@@ -65,7 +65,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
// The maximum number of related apps declared in the Web Manifest taken into account when
// determining whether the related app is installed and mutually related.
@@ -1533,7 +1524,7 @@ diff --git a/components/media_router/browser/android/BUILD.gn b/components/media
"//base:base_java",
"//base:base_java_test_support",
"//components/browser_ui/media/android:java",
-@@ -149,10 +142,6 @@ robolectric_library("junit") {
+@@ -148,10 +141,6 @@ robolectric_library("junit") {
deps = [
":java",
":test_support_java",
@@ -2439,10 +2430,10 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
-import com.google.android.gms.cast.CastMediaControlIntent;
-
+ import org.chromium.base.ResettersForTesting;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
- import org.chromium.components.media_router.MediaSource;
-@@ -97,13 +95,7 @@ public class CastMediaSource implements MediaSource {
+@@ -110,13 +108,7 @@ public class CastMediaSource implements MediaSource {
*/
@Override
public @Nullable MediaRouteSelector buildRouteSelector() {
@@ -2944,7 +2935,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
-@@ -84,9 +82,7 @@ public class RemotingMediaSource implements MediaSource {
+@@ -83,9 +81,7 @@ public class RemotingMediaSource implements MediaSource {
*/
@Override
public MediaRouteSelector buildRouteSelector() {
@@ -2955,7 +2946,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo
}
/**
-@@ -116,7 +112,7 @@ public class RemotingMediaSource implements MediaSource {
+@@ -115,7 +111,7 @@ public class RemotingMediaSource implements MediaSource {
sApplicationId =
(customAppId != null && !customAppId.isEmpty())
? customAppId
@@ -3079,7 +3070,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/
import org.chromium.base.BaseSwitches;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
-@@ -198,12 +196,6 @@ public class OmniboxFeatures {
+@@ -203,12 +201,6 @@ public class OmniboxFeatures {
"geolocation_request_min_update_interval_millis",
(int) (9 * DateUtils.MINUTE_IN_MILLIS));
@@ -3925,7 +3916,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
-@@ -165,10 +165,6 @@ android_library("content_full_java") {
+@@ -160,10 +160,6 @@ android_library("content_full_java") {
":content_java_resources",
":content_main_dex_java",
":content_util_java",
@@ -3939,7 +3930,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
-@@ -3824,10 +3824,6 @@ if (is_android) {
+@@ -3839,10 +3839,6 @@ if (is_android) {
testonly = true
sources = content_java_sources_needing_jni
deps = [
@@ -3953,7 +3944,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
diff --git a/device/BUILD.gn b/device/BUILD.gn
--- a/device/BUILD.gn
+++ b/device/BUILD.gn
-@@ -528,9 +528,6 @@ if (is_android) {
+@@ -525,9 +525,6 @@ if (is_android) {
"vr/public/junit/src/org/chromium/device/vr/XrFeatureStatusTest.java",
]
deps = [
@@ -3966,7 +3957,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn
diff --git a/services/BUILD.gn b/services/BUILD.gn
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
-@@ -165,12 +165,6 @@ if (is_android) {
+@@ -166,12 +166,6 @@ if (is_android) {
"shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
]
deps = [
@@ -3979,7 +3970,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
-@@ -204,10 +198,6 @@ if (is_android) {
+@@ -210,10 +204,6 @@ if (is_android) {
"shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
]
deps = [
@@ -4933,7 +4924,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_guava_failureaccess_java") {
jar_path = "autorolled/cipd/libs/com_google_guava_failureaccess/failureaccess.jar"
-@@ -2013,28 +1166,6 @@ template("define_autorolled_targets") {
+@@ -2015,28 +1168,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ]
}
@@ -5015,7 +5006,7 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices
diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/customizations.gni
--- a/third_party/androidx/customizations.gni
+++ b/third_party/androidx/customizations.gni
-@@ -160,7 +160,7 @@ template("androidx_java_prebuilt") {
+@@ -166,7 +166,7 @@ template("androidx_java_prebuilt") {
}
}
@@ -5024,7 +5015,7 @@ diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/cust
_androidx_prebuilt(target_name) {
forward_variables_from(invoker, "*")
target_type = "android_aar_prebuilt"
-@@ -177,6 +177,18 @@ template("androidx_android_aar_prebuilt") {
+@@ -183,6 +183,18 @@ template("androidx_android_aar_prebuilt") {
}
}
diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch
index e4ed780e..2264501e 100644
--- a/build/patches/Remove-detection-of-captive-portals.patch
+++ b/build/patches/Remove-detection-of-captive-portals.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -594,7 +594,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams(
+@@ -613,7 +613,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams(
void ProfileNetworkContextService::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled,
diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch
index 851dc70a..212b1aec 100644
--- a/build/patches/Remove-help-menu-item.patch
+++ b/build/patches/Remove-help-menu-item.patch
@@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
-@@ -1236,9 +1236,6 @@ public class KeyboardShortcuts {
+@@ -1230,9 +1230,6 @@ public class KeyboardShortcuts {
return true;
}
return false;
@@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -2680,15 +2680,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -2739,15 +2739,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
final Tab currentTab = getActivityTab();
@@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
-@@ -144,6 +144,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
+@@ -148,6 +148,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_24dp);
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
-@@ -175,6 +175,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment
+@@ -222,6 +222,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_24dp);
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
-@@ -905,6 +905,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
+@@ -907,6 +907,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
TraceEventVectorDrawableCompat.create(
getResources(), R.drawable.ic_help_24dp, getActivity().getTheme()));
help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
@@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
-@@ -1266,7 +1266,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
+@@ -1267,7 +1267,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
// Disable creating new tabs, bookmark, print, help, focus_url, etc.
if (id == R.id.focus_url_bar
|| id == R.id.all_bookmarks_menu_id
@@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
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
-@@ -601,6 +601,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
+@@ -603,6 +603,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
help.setIcon(
TraceEventVectorDrawableCompat.create(
getResources(), R.drawable.ic_help_24dp, getActivity().getTheme()));
@@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -977,6 +977,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -1015,6 +1015,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
help.setIcon(
TraceEventVectorDrawableCompat.create(
getResources(), R.drawable.ic_help_24dp, getTheme()));
@@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java
-@@ -176,6 +176,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment
+@@ -177,6 +177,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_24dp);
@@ -135,7 +135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/G
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
-@@ -290,6 +290,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment
+@@ -291,6 +291,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_24dp);
@@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/M
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
-@@ -432,7 +432,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
+@@ -466,7 +466,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
// Help
@@ -169,7 +169,7 @@ diff --git a/chrome/browser/autofill/android/java/res/menu/prefeditor_editor_men
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java
+++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/options/AutofillOptionsFragment.java
-@@ -134,6 +134,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment {
+@@ -154,6 +154,7 @@ public class AutofillOptionsFragment extends ChromeBaseSettingsFragment {
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_24dp);
@@ -213,7 +213,7 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b
diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc
--- a/chrome/browser/ui/chrome_pages.cc
+++ b/chrome/browser/ui/chrome_pages.cc
-@@ -146,6 +146,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) {
+@@ -145,6 +145,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) {
// shown in the last active browser. If there is no such browser, a new browser
// is created.
void ShowHelpImpl(Browser* browser, Profile* profile, HelpSource source) {
diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch
index 4e7c45b6..da9bde11 100644
--- a/build/patches/Remove-segmentation-platform.patch
+++ b/build/patches/Remove-segmentation-platform.patch
@@ -47,9 +47,9 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part
diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc
--- a/components/segmentation_platform/public/features.cc
+++ b/components/segmentation_platform/public/features.cc
-@@ -243,4 +243,7 @@ constexpr base::FeatureParam kWindowTimeMinutes{&kAndroidTipsNotifications,
-
- BASE_FEATURE(kAndroidTipsNotificationsV2, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -282,4 +282,7 @@ constexpr base::FeatureParam kEnableRecentTabsTip{
+ &kAndroidTipsNotificationsV2, "enable_recent_tabs_tip",
+ /*default_value=*/true};
+SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature);
+SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature);
diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch
index 733cdba5..608d0dfd 100644
--- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch
+++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch
@@ -245,7 +245,7 @@ diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party
diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc
--- a/third_party/blink/renderer/core/timing/window_performance.cc
+++ b/third_party/blink/renderer/core/timing/window_performance.cc
-@@ -326,7 +326,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const {
+@@ -314,7 +314,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const {
const bool is_locked_to_site = Platform::Current()->IsLockedToSite();
auto* memory_info = MakeGarbageCollected(
is_locked_to_site ? MemoryInfo::Precision::kPrecise
diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch
index 04ee356a..f0e59432 100644
--- a/build/patches/Remove-voice-recognition-integration.patch
+++ b/build/patches/Remove-voice-recognition-integration.patch
@@ -5,32 +5,32 @@ Subject: Remove voice recognition integration
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../BaseCustomTabRootUiCoordinator.java | 2 +-
- .../chrome/browser/ntp/NewTabPage.java | 29 +-------
+ .../chrome/browser/ntp/NewTabPage.java | 30 +----------
.../browser/ntp/search/SearchBoxMediator.java | 1 +
.../browser/searchwidget/SearchActivity.java | 3 +-
.../SearchActivityLocationBarLayout.java | 8 ---
.../tabbed_mode/TabbedRootUiCoordinator.java | 2 +-
.../browser/toolbar/ToolbarManager.java | 5 --
- .../ui/AdaptiveToolbarUiCoordinator.java | 48 -------------
- .../chrome/browser/ui/RootUiCoordinator.java | 18 -----
+ .../ui/AdaptiveToolbarUiCoordinator.java | 50 -------------------
+ .../chrome/browser/ui/RootUiCoordinator.java | 18 -------
chrome/browser/ui/android/omnibox/BUILD.gn | 1 -
- .../chrome/browser/omnibox/LocationBar.java | 6 --
- .../omnibox/LocationBarCoordinator.java | 14 +---
- .../browser/omnibox/LocationBarLayout.java | 6 --
- .../browser/omnibox/LocationBarMediator.java | 71 ++-----------------
+ .../chrome/browser/omnibox/LocationBar.java | 6 ---
+ .../omnibox/LocationBarCoordinator.java | 14 +-----
+ .../browser/omnibox/LocationBarLayout.java | 6 ---
+ .../browser/omnibox/LocationBarMediator.java | 48 +-----------------
.../chrome/browser/omnibox/OmniboxStub.java | 8 ---
- .../suggestions/AutocompleteController.java | 25 -------
+ .../suggestions/AutocompleteController.java | 25 ----------
.../suggestions/AutocompleteCoordinator.java | 8 ---
- .../suggestions/AutocompleteMediator.java | 10 ---
+ .../suggestions/AutocompleteMediator.java | 9 ----
.../omnibox/voice/VoiceRecognitionUtil.java | 1 +
chrome/browser/ui/android/toolbar/BUILD.gn | 1 -
.../toolbar/VoiceToolbarButtonController.java | 1 +
- 21 files changed, 13 insertions(+), 255 deletions(-)
+ 21 files changed, 11 insertions(+), 236 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
-@@ -519,7 +519,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
+@@ -518,7 +518,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
mIntentDataProvider.get(),
AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp),
mOpenInBrowserRunnable,
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
-@@ -80,7 +80,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils.NtpBa
+@@ -75,7 +75,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils.NtpBa
import org.chromium.chrome.browser.ntp_customization.theme.chrome_colors.NtpThemeColorInfo;
import org.chromium.chrome.browser.ntp_customization.theme.upload_image.BackgroundImageInfo;
import org.chromium.chrome.browser.omnibox.OmniboxStub;
@@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.readaloud.ReadAloudController;
-@@ -148,7 +147,6 @@ public class NewTabPage
+@@ -145,7 +144,6 @@ public class NewTabPage
TemplateUrlServiceObserver,
BrowserControlsStateProvider.Observer,
FeedSurfaceDelegate,
@@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
ModuleDelegateHost {
private static final String TAG = "NewTabPage";
-@@ -183,7 +181,6 @@ public class NewTabPage
+@@ -180,7 +178,6 @@ public class NewTabPage
protected boolean mIsDefaultSearchEngineGoogle;
protected @Nullable OmniboxStub mOmniboxStub;
@@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
// The timestamp at which the constructor was called.
protected final long mConstructedTimeNs;
-@@ -401,8 +398,7 @@ public class NewTabPage
+@@ -297,8 +294,7 @@ public class NewTabPage
@Override
public boolean isVoiceSearchEnabled() {
@@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
}
@Override
-@@ -413,14 +409,7 @@ public class NewTabPage
+@@ -309,15 +305,7 @@ public class NewTabPage
if (mIsDestroyed) return;
FeedReliabilityLogger feedReliabilityLogger =
mFeedSurfaceProvider.getReliabilityLogger();
@@ -85,14 +85,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
- feedReliabilityLogger.onVoiceSearch();
- }
- mVoiceRecognitionHandler.startVoiceRecognition(
-- VoiceRecognitionHandler.VoiceInteractionSource.NTP);
+- VoiceRecognitionHandler.VoiceInteractionSource.NTP,
+- CallbackUtils.emptyRunnable());
- mTracker.notifyEvent(EventConstants.NTP_VOICE_SEARCH_BUTTON_CLICKED);
- } else if (mOmniboxStub != null) {
+ if (mOmniboxStub != null) {
if (feedReliabilityLogger != null) {
feedReliabilityLogger.onOmniboxFocused();
}
-@@ -1093,12 +1082,6 @@ public class NewTabPage
+@@ -1012,12 +1000,6 @@ public class NewTabPage
mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger);
}
}
@@ -105,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
}
/**
-@@ -1117,11 +1100,6 @@ public class NewTabPage
+@@ -1036,11 +1018,6 @@ public class NewTabPage
}
}
@@ -117,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
/** Adds an observer to be notified on most visited tile clicks. */
public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) {
mMostVisitedTileClickObservers.addObserver(observer);
-@@ -1206,9 +1184,6 @@ public class NewTabPage
+@@ -1131,9 +1108,6 @@ public class NewTabPage
mOmniboxStub.removeUrlFocusChangeListener(feedReliabilityLogger);
}
mFeedSurfaceProvider.destroy();
@@ -130,7 +131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java
-@@ -91,6 +91,7 @@ class SearchBoxMediator implements DestroyObserver {
+@@ -103,6 +103,7 @@ class SearchBoxMediator implements DestroyObserver {
/** Called to add a click listener for the voice search button. */
void addVoiceSearchButtonClickListener(OnClickListener listener) {
@@ -149,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
import org.chromium.chrome.browser.ui.edge_to_edge.NoOpTopInsetProvider;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
-@@ -337,7 +336,7 @@ public class SearchActivity extends AsyncInitializationActivity
+@@ -338,7 +337,7 @@ public class SearchActivity extends AsyncInitializationActivity
this::bringTabGroupToFront,
/*omniboxUma*/ (url, transition, isNtp) -> {},
/* bookmarkState= */ (url) -> false,
@@ -161,7 +162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
-@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData;
+@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarCoordinator;
import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
@@ -169,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
import org.chromium.chrome.browser.toolbar.top.ToolbarPhone;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.SearchType;
-@@ -214,13 +213,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout {
+@@ -202,13 +201,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout {
return false;
}
@@ -186,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -1107,7 +1107,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1138,7 +1138,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mTabBookmarkerSupplier,
mBookmarkModelSupplier,
mActivityTabProvider,
@@ -198,15 +199,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
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
-@@ -121,7 +121,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub;
- import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl;
+@@ -122,7 +122,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl;
import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener;
+ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.page_info.ChromePageInfo;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
-@@ -3302,10 +3301,6 @@ public class ToolbarManager
+@@ -3283,10 +3282,6 @@ public class ToolbarManager
return mLocationBar.getOmniboxStub();
}
@@ -220,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java
-@@ -29,8 +29,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeIphController;
+@@ -32,8 +32,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeIphController;
import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController;
import org.chromium.chrome.browser.identity_disc.IdentityDiscController;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
@@ -229,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
import org.chromium.chrome.browser.price_history.PriceHistoryBottomSheetContentCoordinator;
import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController;
import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier;
-@@ -43,7 +41,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon
+@@ -46,7 +44,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon
import org.chromium.chrome.browser.share.ShareButtonController;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
@@ -237,7 +238,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveButtonActionMenuCoordinator;
import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior;
import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonController;
-@@ -76,7 +73,6 @@ public class AdaptiveToolbarUiCoordinator {
+@@ -84,7 +81,6 @@ public class AdaptiveToolbarUiCoordinator {
private CurrentTabPriceTrackingStateSupplier mCurrentTabPriceTrackingStateSupplier;
private ContextualPageActionController mContextualPageActionController;
private AdaptiveToolbarButtonController mAdaptiveToolbarButtonController;
@@ -245,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
private BottomSheetController mBottomSheetController;
private MonotonicObservableSupplier mProfileSupplier;
private Supplier mScrimSupplier;
-@@ -249,45 +245,6 @@ public class AdaptiveToolbarUiCoordinator {
+@@ -268,47 +264,6 @@ public class AdaptiveToolbarUiCoordinator {
}
}
@@ -256,7 +257,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
- * @param trackerSupplier Supplies {@link Tracker} object.
- */
- public void addVoiceSearchAdaptiveButton(
-- Supplier voiceRecognitionHandler,
+- Supplier<@Nullable VoiceRecognitionHandler> voiceRecognitionHandler,
- Supplier<@Nullable Tracker> trackerSupplier) {
- var voiceSearchDelegate =
- new VoiceToolbarButtonController.VoiceSearchDelegate() {
@@ -271,7 +272,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
- if (voiceRecognitionHandler.get() == null) return;
- voiceRecognitionHandler
- .get()
-- .startVoiceRecognition(VoiceInteractionSource.TOOLBAR);
+- .startVoiceRecognition(
+- VoiceInteractionSource.TOOLBAR,
+- CallbackUtils.emptyRunnable());
- }
- };
- mVoiceToolbarButtonController =
@@ -291,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
/**
* Returns the list of {@link ButtonDataProvider}. The order in which the providers determines
* which one will be shown first.
-@@ -301,11 +258,6 @@ public class AdaptiveToolbarUiCoordinator {
+@@ -322,11 +277,6 @@ public class AdaptiveToolbarUiCoordinator {
return mContextualPageActionController;
}
@@ -306,23 +309,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
-@@ -125,7 +125,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi
- import org.chromium.chrome.browser.omnibox.OmniboxActionDelegateImpl;
+@@ -126,7 +126,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi
import org.chromium.chrome.browser.omnibox.OmniboxChipManager;
import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader;
+ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.open_in_app.OpenInAppEntryPoint;
import org.chromium.chrome.browser.open_in_app.OpenInAppMenuItemProvider;
- import org.chromium.chrome.browser.open_in_app.OpenInAppUtils;
-@@ -354,7 +353,6 @@ public class RootUiCoordinator
- private LayoutManagerImpl mLayoutManager;
+ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
+@@ -360,7 +359,6 @@ public class RootUiCoordinator
+ private @Nullable LayoutManagerImpl mLayoutManager;
protected OneshotSupplier mIntentMetadataOneshotSupplier;
protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>();
-- @Nullable private VoiceRecognitionHandler.Observer mMicStateObserver;
- private MediaCaptureOverlayController mCaptureController;
+- private VoiceRecognitionHandler.@Nullable Observer mMicStateObserver;
+ private @Nullable MediaCaptureOverlayController mCaptureController;
private @Nullable ScrollCaptureManager mScrollCaptureManager;
protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher;
-@@ -836,9 +834,6 @@ public class RootUiCoordinator
+@@ -845,9 +843,6 @@ public class RootUiCoordinator
}
if (mToolbarManager != null) {
@@ -332,7 +335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
mToolbarManager.destroy();
mToolbarManager = null;
}
-@@ -1900,23 +1895,10 @@ public class RootUiCoordinator
+@@ -1933,23 +1928,10 @@ public class RootUiCoordinator
if (!mSupportsAppMenuSupplier.getAsBoolean()) {
mToolbarManager.getToolbar().disableMenuButton();
}
@@ -348,7 +351,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
}
}
-- protected void addVoiceSearchAdaptiveButton(Supplier trackerSupplier) {
+- protected void addVoiceSearchAdaptiveButton(Supplier<@Nullable Tracker> trackerSupplier) {
- mAdaptiveToolbarUiCoordinator.addVoiceSearchAdaptiveButton(
- () -> mToolbarManager.getVoiceRecognitionHandler(), trackerSupplier);
- }
@@ -359,7 +362,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
-@@ -166,7 +166,6 @@ android_library("java") {
+@@ -176,7 +176,6 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java",
@@ -378,7 +381,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.components.browser_ui.accessibility.PageZoomUtils;
-@@ -77,11 +76,6 @@ public interface LocationBar {
+@@ -74,11 +73,6 @@ public interface LocationBar {
*/
View getSecurityIconView();
@@ -393,15 +396,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
-@@ -62,7 +62,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams;
- import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener;
+@@ -65,7 +65,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdow
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState;
+ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.share.ShareDelegate;
-@@ -642,12 +641,6 @@ public class LocationBarCoordinator
+@@ -628,12 +627,6 @@ public class LocationBarCoordinator
return mLocationBarLayout.getSecurityIconView();
}
@@ -414,7 +417,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
@Override
public @Nullable OmniboxStub getOmniboxStub() {
return mLocationBarMediator;
-@@ -804,7 +797,7 @@ public class LocationBarCoordinator
+@@ -795,7 +788,7 @@ public class LocationBarCoordinator
public void startAutocompletePrefetch() {
if (!mNativeInitialized) return;
mAutocompleteCoordinator.prefetchZeroSuggestResults(
@@ -423,7 +426,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
/**
-@@ -1016,11 +1009,6 @@ public class LocationBarCoordinator
+@@ -1053,11 +1046,6 @@ public class LocationBarCoordinator
// End tablet-specific methods.
@@ -443,10 +446,10 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
+ import org.chromium.chrome.browser.ui.theme.BrandedColorScheme;
import org.chromium.components.browser_ui.widget.CompositeTouchDelegate;
import org.chromium.components.embedder_support.util.UrlUtilities;
- import org.chromium.ui.base.DeviceFormFactor;
-@@ -511,11 +510,6 @@ public class LocationBarLayout extends ConstraintLayout {
+@@ -495,11 +494,6 @@ public class LocationBarLayout extends ConstraintLayout {
mSearchEngineUtils = searchEngineUtils;
}
@@ -461,7 +464,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
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
-@@ -75,7 +75,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
+@@ -77,7 +77,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams;
@@ -469,16 +472,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState;
import org.chromium.chrome.browser.profiles.Profile;
-@@ -128,8 +127,6 @@ import java.util.function.Supplier;
+@@ -130,7 +129,6 @@ import java.util.function.Supplier;
class LocationBarMediator
implements LocationBarDataProvider.Observer,
OmniboxStub,
-- VoiceRecognitionHandler.Delegate,
- VoiceRecognitionHandler.Observer,
UrlBarDelegate,
OnKeyListener,
FuseboxAttachmentChangeListener,
-@@ -189,7 +186,6 @@ class LocationBarMediator
+@@ -191,7 +189,6 @@ class LocationBarMediator
};
private final LocationBarLayout mLocationBarLayout;
@@ -486,16 +488,26 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private final LocationBarDataProvider mLocationBarDataProvider;
private final @Nullable BrowserControlsStateProvider mBrowserControlsStateProvider;
private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides;
-@@ -291,8 +287,6 @@ class LocationBarMediator
- mEmbedderUiOverrides = embedderUiOverrides;
- mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate;
- mLocaleManager = localeManager;
-- mVoiceRecognitionHandler = new VoiceRecognitionHandler(this, profileSupplier);
-- mVoiceRecognitionHandler.addObserver(this);
- mProfileSupplier = profileSupplier;
- mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile));
- mTemplateUrlServiceSupplier = templateUrlServiceSupplier;
-@@ -393,9 +387,6 @@ class LocationBarMediator
+@@ -374,18 +371,6 @@ class LocationBarMediator
+ mAutocompleteCoordinator = autocompleteCoordinator;
+ mStatusCoordinator = statusCoordinator;
+
+- // Set up VoiceRecognitionHandler once mAutocompleteCoordinator is set.
+- if (mVoiceRecognitionHandler == null) {
+- mVoiceRecognitionHandler =
+- new VoiceRecognitionHandler(
+- this,
+- mLocationBarDataProvider,
+- mAutocompleteCoordinator,
+- mWindowAndroid,
+- mProfileSupplier);
+- mVoiceRecognitionHandler.addObserver(this);
+- }
+-
+ updateShouldAnimateIconChanges();
+ updateButtonVisibility();
+ updateSearchEngineStatusIconShownState();
+@@ -404,9 +389,6 @@ class LocationBarMediator
mStatusCoordinator = null;
mAutocompleteCoordinator = null;
mUrlCoordinator = null;
@@ -503,9 +515,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
- mVoiceRecognitionHandler.destroy();
- mVoiceRecognitionHandler = null;
mLocationBarDataProvider.removeObserver(this);
- mDeferredNativeRunnables.clear();
mUrlFocusChangeListeners.clear();
-@@ -535,11 +526,6 @@ class LocationBarMediator
+ if (mPageZoomIndicatorCoordinator != null) {
+@@ -534,11 +516,6 @@ class LocationBarMediator
mLocationBarLayout.setUnfocusedWidth(unfocusedWidth);
}
@@ -517,18 +529,18 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
/* package */ void setLensControllerForTesting(LensController lensController) {
mLensController = lensController;
}
-@@ -894,10 +880,6 @@ class LocationBarMediator
+@@ -899,10 +876,6 @@ class LocationBarMediator
// Hide keyboard before launch voice search to avoid keyboard action announcement in
// TalkBack to be picked up by voice search.
mUrlCoordinator.setKeyboardVisibility(false, false);
-
- RecordUserAction.record("MobileOmniboxVoiceSearch");
- mVoiceRecognitionHandler.startVoiceRecognition(
-- mLocationBarLayout.getVoiceRecognitionSource());
+- mLocationBarLayout.getVoiceRecognitionSource(), CallbackUtils.emptyRunnable());
}
/** package */
-@@ -1669,10 +1651,7 @@ class LocationBarMediator
+@@ -1729,10 +1702,7 @@ class LocationBarMediator
if (mCurrentInput != null && !mCurrentInput.isConventionalRequestType()) return false;
if (isUrlBarFocusedWithUserInput()) return false;
@@ -540,7 +552,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
return false;
}
boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean();
-@@ -1690,6 +1669,7 @@ class LocationBarMediator
+@@ -1750,6 +1720,7 @@ class LocationBarMediator
@VisibleForTesting
boolean shouldShowLensButton() {
@@ -548,8 +560,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
if (mCurrentInput != null && !mCurrentInput.isConventionalRequestType()) return false;
if (isUrlBarFocusedWithUserInput()) return false;
-@@ -1966,11 +1946,6 @@ class LocationBarMediator
- refreshAutocompleteForCurrentInput();
+@@ -2013,11 +1984,6 @@ class LocationBarMediator
+ mUrlCoordinator.clearFocus();
}
- @Override
@@ -560,63 +572,23 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
@Override
public void addUrlFocusChangeListener(UrlFocusChangeListener listener) {
mUrlFocusChangeListeners.addObserver(listener);
-@@ -1987,33 +1962,13 @@ class LocationBarMediator
+@@ -2042,20 +2008,10 @@ class LocationBarMediator
+ .build());
}
- /** {@see VoiceRecognitionHandler.Delegate#clearOmniboxFocus()} */
-- @Override
-+ // @Override
- public void clearOmniboxFocus() {
- setUrlBarFocus(null);
- }
-
-- /** {@see VoiceRecognitionHandler.Delegate#notifyVoiceRecognitionCanceled()} */
-- @Override
-- public void notifyVoiceRecognitionCanceled() {}
--
-- // VoiceRecognitionHandler.Delegate implementation.
--
-- /** {@see VoiceRecognitionHandler.Delegate#loadUrlFromVoice(String)} */
-- @Override
-- public void loadUrlFromVoice(String url) {
-- loadUrl(
-- new OmniboxLoadUrlParams.Builder(url, PageTransition.TYPED)
-- .setOpenInNewTab(false)
-- .build());
-- }
--
- @Override
- public void onVoiceAvailabilityImpacted() {
- updateButtonVisibility();
- }
-
- /** {@see VoiceRecognitionHandler.Delegate#setSearchQuery(String)} */
-- @Override
-+ // @Override
- public void setSearchQuery(String query) {
- // TODO(crbug.com/477922724): Remove VoiceRecognitionHandler.Delegate and make VRH use the
- // OmniboxStub directly.
-@@ -2032,24 +1987,6 @@ class LocationBarMediator
- mUrlCoordinator.setKeyboardVisibility(true, false);
+ boolean isUrlBarFocusedWithoutAnimation() {
+ return mUrlFocusedWithoutAnimations;
}
-- /** {@see VoiceRecognitionHandler.Delegate#getLocationBarDataProvider()} */
-- @Override
+- /** Getter for LocationBarDataProvider. */
- public LocationBarDataProvider getLocationBarDataProvider() {
- return mLocationBarDataProvider;
- }
--
-- /** {@see VoiceRecognitionHandler.Delegate#getAutocompleteCoordinator()} */
-- @Override
-- public AutocompleteCoordinator getAutocompleteCoordinator() {
-- return mAutocompleteCoordinator;
-- }
--
-- /** {@see VoiceRecognitionHandler.Delegate#getWindowAndroid()} */
-- @Override
-- public WindowAndroid getWindowAndroid() {
-- return mWindowAndroid;
-- }
-
// UrlBarDelegate implementation.
@@ -630,9 +602,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.lens.LensEntryPoint;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.components.omnibox.AutocompleteInput;
+ import org.chromium.url.GURL;
- /**
-@@ -33,13 +32,6 @@ public interface OmniboxStub {
+@@ -35,13 +34,6 @@ public interface OmniboxStub {
*/
boolean isUrlBarFocused();
@@ -649,7 +621,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java
-@@ -15,7 +15,6 @@ import org.chromium.build.annotations.NullMarked;
+@@ -17,7 +17,6 @@ import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.omnibox.OmniboxMetrics;
import org.chromium.chrome.browser.omnibox.fusebox.ComposeboxQueryControllerBridge;
@@ -657,7 +629,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.preloading.PreloadingFeatureMap;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.omnibox.AutocompleteInput;
-@@ -355,25 +354,6 @@ public class AutocompleteController {
+@@ -360,25 +359,6 @@ public class AutocompleteController {
mNativeController, bridge == null ? 0L : bridge.getNativeInstance());
}
@@ -683,7 +655,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
/**
* Updates searchbox stats parameters on the selected match that we will navigate to and
* returns the updated URL.
-@@ -483,11 +463,6 @@ public class AutocompleteController {
+@@ -498,11 +478,6 @@ public class AutocompleteController {
long nativeAutocompleteControllerAndroid,
long nativeComposeboxQueryControllerBridge);
@@ -698,15 +670,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
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
-@@ -34,7 +34,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On
- import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder;
+@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.
+ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl;
import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
-@@ -325,13 +324,6 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState {
+@@ -332,13 +331,6 @@ public class AutocompleteCoordinator implements OmniboxSuggestionsVisualState {
}
}
@@ -723,7 +695,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
-@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto
+@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDeleg
import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl;
import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionInSuggest;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
@@ -731,7 +703,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.preloading.PreloadingFeatureMap;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
-@@ -579,15 +578,6 @@ class AutocompleteMediator
+@@ -694,14 +693,6 @@ class AutocompleteMediator
mShouldPreventOmniboxAutocomplete = prevent;
}
@@ -739,9 +711,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
- * @see AutocompleteController#onVoiceResults(List)
- */
- void onVoiceResults(@Nullable List results) {
-- if (mAutocomplete != null) {
-- mAutocomplete.onVoiceResults(results);
-- }
+- if (!isInInputSession()) return;
+- mAutocomplete.onVoiceResults(results);
- }
-
/**
diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch
index e39c0d2c..588b5f00 100644
--- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch
+++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch
@@ -34,7 +34,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -2982,7 +2982,8 @@ void DocumentLoader::CommitNavigation() {
+@@ -3038,7 +3038,8 @@ void DocumentLoader::CommitNavigation() {
// that the name would be nulled and if the name is accessed after we will
// fire a UseCounter. If we decide to move forward with this change, we'd
// actually clean the name here.
@@ -44,7 +44,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
frame_->Tree().ExperimentalSetNulledName();
}
-@@ -2993,6 +2994,7 @@ void DocumentLoader::CommitNavigation() {
+@@ -3049,6 +3050,7 @@ void DocumentLoader::CommitNavigation() {
// TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just
// record the fact that the name would be nulled and if the name is accessed
// after we will fire a UseCounter.
diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch
index 35c24de2..147dbe7c 100644
--- a/build/patches/Restore-LastTabStandingTracker.patch
+++ b/build/patches/Restore-LastTabStandingTracker.patch
@@ -27,8 +27,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -1507,6 +1507,16 @@ static_library("browser") {
- "webdata_services/web_data_service_factory.cc",
+@@ -1327,6 +1327,16 @@ static_library("browser") {
+ "webauthn/webauthn_switches.cc",
]
+ sources += [
@@ -383,7 +383,7 @@ new file mode 100644
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -141,6 +141,7 @@
+@@ -152,6 +152,7 @@
#include "chrome/browser/password_manager/profile_password_store_factory.h"
#include "chrome/browser/payments/browser_binding/browser_bound_key_deleter_service_factory.h"
#include "chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade_factory.h"
@@ -391,7 +391,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "chrome/browser/permissions/notifications_engagement_service_factory.h"
#include "chrome/browser/permissions/one_time_permissions_tracker_factory.h"
#include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h"
-@@ -1129,6 +1130,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -1148,6 +1149,7 @@ void ChromeBrowserMainExtraPartsProfiles::
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
OnDeviceTailModelServiceFactory::GetInstance();
#endif
@@ -402,7 +402,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
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
-@@ -53,6 +53,7 @@
+@@ -56,6 +56,7 @@
#include "chrome/browser/page_info/page_info_features.h"
#include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h"
#include "chrome/browser/password_manager/chrome_password_manager_client.h"
@@ -410,8 +410,8 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
#include "chrome/browser/permissions/one_time_permissions_tracker_helper.h"
#include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h"
#include "chrome/browser/predictors/loading_predictor_factory.h"
-@@ -445,6 +446,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
- HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents);
+@@ -463,6 +464,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+ }
HttpsOnlyModeTabHelper::CreateForWebContents(web_contents);
webapps::InstallableManager::CreateForWebContents(web_contents);
+ LastTabStandingTrackerTabHelper::CreateForWebContents(web_contents);
diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch
index 15d87456..df4f7f33 100644
--- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch
+++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch
@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -403,6 +403,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -408,6 +408,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kRecordIncognitoNtpTimeToFirstNavigationMetric,
&kRecordSuppressionMetrics,
&kReengagementNotification,
@@ -34,7 +34,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -498,6 +498,7 @@ public abstract class ChromeFeatureList {
+@@ -509,6 +509,7 @@ public abstract class ChromeFeatureList {
"MayLaunchUrlUsesSeparateStoragePartition";
public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid";
public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization";
@@ -45,7 +45,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
-@@ -57,6 +57,7 @@ class DropdownItemViewInfoListBuilder {
+@@ -58,6 +58,7 @@ class DropdownItemViewInfoListBuilder {
private @Nullable OmniboxImageSupplier mImageSupplier;
private final BookmarkState mBookmarkState;
private final MonotonicObservableSupplier<@ControlsPosition Integer> mToolbarPositionSupplier;
@@ -53,7 +53,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
DropdownItemViewInfoListBuilder(
Supplier<@Nullable Tab> tabSupplier,
-@@ -109,10 +110,12 @@ class DropdownItemViewInfoListBuilder {
+@@ -118,10 +119,12 @@ class DropdownItemViewInfoListBuilder {
mGroupSeparatorProcessor = new GroupSeparatorProcessor(uiContext.context);
mHeaderProcessor = new HeaderProcessor(uiContext.context);
@@ -67,7 +67,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
registerSuggestionProcessor(new TailSuggestionProcessor(uiContext));
registerSuggestionProcessor(new MostVisitedTilesProcessor(uiContext));
if (OmniboxFeatures.sAndroidHubSearchTabGroups.isEnabled()) {
-@@ -200,6 +203,9 @@ class DropdownItemViewInfoListBuilder {
+@@ -209,6 +212,9 @@ class DropdownItemViewInfoListBuilder {
mImageSupplier.onNativeInitialized();
}
diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch
index d73a486f..2d589adb 100644
--- a/build/patches/Restore-Simplified-NTP-launch.patch
+++ b/build/patches/Restore-Simplified-NTP-launch.patch
@@ -28,13 +28,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../native_page/NativePageFactory.java | 20 +-
.../NativePageNavigationDelegateImpl.java | 2 +-
.../chrome/browser/ntp/NewTabPage.java | 8 +-
- .../chrome/browser/ntp/NewTabPageLayout.java | 33 +-
+ .../chrome/browser/ntp/NewTabPageLayout.java | 29 +-
.../ntp/search/SearchBoxViewBinder.java | 1 +
.../suggestions/SuggestionsConfig.java | 2 +-
.../SuggestionsNavigationDelegate.java | 27 +-
- .../tile/MostVisitedTilesCoordinator.java | 6 +-
+ .../tile/MostVisitedTilesCoordinator.java | 8 +-
.../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++
- .../tile/MostVisitedTilesMediator.java | 8 +-
+ .../tile/MostVisitedTilesMediator.java | 12 +-
.../tile/TileDragDelegateImpl.java | 18 +-
.../suggestions/tile/TileRenderer.java | 12 +-
.../suggestions/tile/TilesLinearLayout.java | 2 +-
@@ -49,9 +49,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/omnibox/common/omnibox_features.cc | 2 +
components/search_engines/template_url.h | 4 +-
.../Restore-Simplified-NTP-launch.inc | 12 +
- .../Restore-Simplified-NTP-launch.inc | 10 +
+ .../Restore-Simplified-NTP-launch.inc | 8 +
.../Restore-Simplified-NTP-launch.inc | 1 +
- 45 files changed, 650 insertions(+), 65 deletions(-)
+ 45 files changed, 647 insertions(+), 68 deletions(-)
create mode 100644 chrome/android/java/res/drawable-hdpi/ic_most_visited_placeholder.png
create mode 100644 chrome/android/java/res/drawable-mdpi/ic_most_visited_placeholder.png
create mode 100644 chrome/android/java/res/drawable-xhdpi/ic_most_visited_placeholder.png
@@ -81,7 +81,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/drawable-hdpi/ic_phone_googblue_36dp.png",
"java/res/drawable-hdpi/ic_photo_camera.png",
"java/res/drawable-hdpi/ic_place_googblue_36dp.png",
-@@ -545,6 +550,7 @@ chrome_java_resources = [
+@@ -544,6 +549,7 @@ chrome_java_resources = [
"java/res/layout/manage_space_activity.xml",
"java/res/layout/material_tooltip.xml",
"java/res/layout/multiline_spinner_item.xml",
@@ -89,12 +89,12 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/mv_tiles_layout.xml",
"java/res/layout/navigation_bubble.xml",
"java/res/layout/navigation_sheet.xml",
-@@ -554,8 +560,10 @@ chrome_java_resources = [
+@@ -552,8 +558,10 @@ chrome_java_resources = [
+ "java/res/layout/new_background_tab_animation_tab_switcher_icon.xml",
"java/res/layout/new_custom_tab_toolbar.xml",
"java/res/layout/new_tab_page_incognito.xml",
- "java/res/layout/new_tab_page_layout.xml",
+ "java/res/layout/new_tab_page_tile_grid_placeholder.xml",
- "java/res/layout/one_line_list_item.xml",
+ "java/res/layout/new_tab_page_layout.xml",
"java/res/layout/open_full_chrome_history_header.xml",
+ "java/res/layout/ntp_shortcuts.xml",
"java/res/layout/optional_toolbar_button.xml",
@@ -103,7 +103,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -639,6 +639,7 @@ chrome_java_sources = [
+@@ -649,6 +649,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java",
"java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java",
"java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
@@ -111,7 +111,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java",
-@@ -1081,6 +1082,7 @@ chrome_java_sources = [
+@@ -1096,6 +1097,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java",
@@ -416,10 +416,10 @@ diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
--- a/chrome/android/java/res/layout/new_tab_page_layout.xml
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
-@@ -57,6 +57,13 @@ found in the LICENSE file.
- android:layout_marginTop="16dp"
- android:visibility="gone"/>
+@@ -50,6 +50,13 @@ found in the LICENSE file.
+ />
+
+ edgeToEdgeControllerSupplier,
TopInsetProvider topInsetProvider,
StartupMetricsTracker startupMetricsTracker,
@@ -843,7 +843,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
mConstructedTimeNs = System.nanoTime();
TraceEvent.begin(TAG);
-@@ -578,7 +582,7 @@ public class NewTabPage
+@@ -474,7 +478,7 @@ public class NewTabPage
nativePageHost,
tabModelSelector,
mTab,
@@ -863,7 +863,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
-@@ -41,6 +42,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
+@@ -39,6 +40,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.lens.LensEntryPoint;
@@ -871,24 +871,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import org.chromium.chrome.browser.lens.LensMetrics;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.logo.LogoBridge.Logo;
-@@ -61,6 +63,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
- import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout;
+@@ -59,6 +61,7 @@ import org.chromium.chrome.browser.signin.SigninAndHistorySyncActivityLauncherIm
+ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
import org.chromium.chrome.browser.suggestions.tile.TileGroup;
import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate;
+import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout;
import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate;
-@@ -120,6 +123,8 @@ public class NewTabPageLayout extends LinearLayout
- private @Nullable DisplayStyleObserver mDisplayStyleObserver;
- private CallbackController mCallbackController = new CallbackController();
+@@ -116,6 +119,8 @@ public class NewTabPageLayout extends LinearLayout {
+ private SearchEngineUtils.@Nullable SearchEngineIconObserver mSearchEngineIconObserver;
+ private SearchEngineUtils.@Nullable SearchBoxHintTextObserver mSearchBoxHintTextObserver;
+ private ViewGroup mShortcutsView;
+
/**
- * Whether the tiles shown in the layout have finished loading.
- * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress.
-@@ -132,14 +137,14 @@ public class NewTabPageLayout extends LinearLayout
+ * Whether the tiles shown in the layout have finished loading. With {@link #mHasShownView},
+ * it's one of the 2 flags used to track initialisation progress.
+@@ -128,14 +133,14 @@ public class NewTabPageLayout extends LinearLayout {
*/
private boolean mHasShownView;
@@ -905,26 +905,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
private boolean mIsViewMoving;
/** Flag used to request some layout changes after the next layout pass is completed. */
-@@ -310,6 +315,7 @@ public class NewTabPageLayout extends LinearLayout
- initializeMostVisitedTilesCoordinator(
- mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate);
- initializeDseIconView();
+@@ -302,6 +307,7 @@ public class NewTabPageLayout extends LinearLayout {
+ mSearchEngineUtils.addIconObserver(mSearchEngineIconObserver);
+ setSearchBoxTextAppearance();
+
+ initializeShortcuts();
initializeSearchBoxTextView();
initializeVoiceSearchButton();
initializeLensButton();
-@@ -776,8 +782,8 @@ public class NewTabPageLayout extends LinearLayout
- private void calculateTabletMvtWidth(int totalWidth) {
- if (mMvTilesContainerLayout.getVisibility() == GONE) return;
-
-- MostVisitedTilesLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout);
-- mMvtContentFits = mvTilesLayout.contentFitsOnTablet(totalWidth);
-+ MostVisitedTilesGridLayout mvTilesLayout = findViewById(R.id.mv_tiles_layout);
-+ mMvtContentFits = false;
- updateMvtOnTablet();
- }
-
-@@ -828,7 +834,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -762,7 +768,7 @@ public class NewTabPageLayout extends LinearLayout {
return;
}
boolean isSearchProviderIsGoogleChanged = mSearchProviderIsGoogle != isGoogle;
@@ -933,7 +922,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
mSearchProviderIsGoogle = isGoogle;
if (!mSearchProviderIsGoogle) {
-@@ -893,6 +899,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -829,6 +835,7 @@ public class NewTabPageLayout extends LinearLayout {
* @param disable Whether to disable the animations.
*/
void setUrlFocusAnimationsDisabled(boolean disable) {
@@ -941,8 +930,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
if (disable == mDisableUrlFocusChangeAnimations) return;
mDisableUrlFocusChangeAnimations = disable;
if (!disable) onUrlFocusAnimationChanged();
-@@ -1284,6 +1291,22 @@ public class NewTabPageLayout extends LinearLayout
- return mMostVisitedTilesCoordinator;
+@@ -1141,6 +1148,22 @@ public class NewTabPageLayout extends LinearLayout {
+ mComposeplateUrlSupplier = null;
}
+ private void initializeShortcuts() {
@@ -962,12 +951,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
+ }
+
/** Makes the Search Box and Logo as wide as Most Visited. */
- private void unifyElementWidths() {
- View searchBoxView = getSearchBoxView();
+ private void unifyElementWidths(int width) {
+ int searchBoxWidth = width - mSearchBoxTwoSideMargin;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxViewBinder.java
-@@ -34,6 +34,7 @@ class SearchBoxViewBinder
+@@ -31,6 +31,7 @@ class SearchBoxViewBinder
View searchBoxContainer = searchBoxlayout.findViewById(R.id.search_box_container);
final TextView searchBoxTextView = searchBoxlayout.findViewById(R.id.search_box_text);
@@ -1038,9 +1027,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
-@@ -65,15 +65,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver
- mActivity = activity;
+@@ -70,15 +70,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver
mActivityLifecycleDispatcher = activityLifecycleDispatcher;
+ mMvTilesContainerLayout = mvTilesContainerLayout;
- MostVisitedTilesLayout tilesLayout =
+ MostVisitedTilesGridLayout tilesLayout =
@@ -1055,6 +1044,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
mRenderer =
new TileRenderer(
mActivity, SuggestionsConfig.getTileStyle(mUiConfig), TITLE_LINES, null);
+@@ -88,7 +84,7 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver
+ new MostVisitedTilesMediator(
+ activity,
+ mUiConfig,
+- mvTilesContainerLayout,
++ tilesLayout,
+ mRenderer,
+ propertyModel,
+ isTablet,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java
new file mode 100644
--- /dev/null
@@ -1350,25 +1348,25 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
-@@ -46,7 +46,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
- private final Context mContext;
+@@ -52,7 +52,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
private final Resources mResources;
private final UiConfig mUiConfig;
+ private final View mMvTilesContainerLayout;
- private final MostVisitedTilesLayout mMvTilesLayout;
+ private final MostVisitedTilesGridLayout mMvTilesLayout;
private final PropertyModel mModel;
private final boolean mIsTablet;
private final int mTileViewLandscapePadding;
-@@ -69,7 +69,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+@@ -76,7 +76,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
public MostVisitedTilesMediator(
Context context,
UiConfig uiConfig,
-- MostVisitedTilesLayout mvTilesLayout,
-+ MostVisitedTilesGridLayout mvTilesLayout,
+- View mvTilesContainerLayout,
++ MostVisitedTilesGridLayout mvTilesContainerLayout,
TileRenderer renderer,
PropertyModel propertyModel,
boolean isTablet,
-@@ -215,12 +215,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+@@ -223,12 +223,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
@Override
public void onCustomTileCreation(Tile tile) {
@@ -1381,7 +1379,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
}
public void onConfigurationChanged() {
-@@ -330,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+@@ -264,10 +262,6 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+ * recalculate the value of |mMvtContentFits|.
+ */
+ void updateMvtOnTablet(@Nullable Integer totalWidth) {
+- if (totalWidth != null) {
+- mMvtContentFits = mMvTilesLayout.contentFitsOnTablet(totalWidth);
+- }
+-
+ MarginLayoutParams marginLayoutParams =
+ (MarginLayoutParams) mMvTilesContainerLayout.getLayoutParams();
+ marginLayoutParams.width =
+@@ -383,7 +377,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl());
if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return;
@@ -1537,7 +1546,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -357,6 +357,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -363,6 +363,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kKeyboardEscBackNavigation,
&kLaunchCauseScreenOffFix,
&kLensOnQuickActionSearchWidget,
@@ -1548,7 +1557,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -499,6 +499,7 @@ public abstract class ChromeFeatureList {
+@@ -510,6 +510,7 @@ public abstract class ChromeFeatureList {
"MayLaunchUrlUsesSeparateStoragePartition";
public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid";
public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization";
@@ -1556,7 +1565,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox";
public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect";
public static final String MOVE_TO_FRONT_IN_LAUNCH_INTENT_DISPATCHER =
-@@ -969,7 +970,7 @@ public abstract class ChromeFeatureList {
+@@ -987,7 +988,7 @@ public abstract class ChromeFeatureList {
LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2,
/* defaultValue= */ false,
/* defaultValueInTests= */ true);
@@ -1592,7 +1601,7 @@ diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4048,6 +4048,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -4127,6 +4127,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d
Recent tabs
@@ -1640,14 +1649,14 @@ diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/
// Override the delay to create a spare renderer when the omnibox is focused
// on Android.
-@@ -277,6 +278,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED);
+@@ -275,6 +276,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED);
// Updates various NTP/Omnibox assets and descriptions for visual alignment on
// Android and iOS, V2.
BASE_FEATURE(kOmniboxMobileParityUpdateV2, ENABLED);
+SET_CROMITE_FEATURE_DISABLED(kOmniboxMobileParityUpdateV2);
- // The features below allow tuning number of suggestions offered to users in
- // specific contexts. These features are default enabled and are used to control
+ // If enabled, the X-Geo header will include permission granularity.
+ BASE_FEATURE(kOmniboxXGeoPermissionGranularity, ENABLED);
diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h
--- a/components/search_engines/template_url.h
+++ b/components/search_engines/template_url.h
@@ -1684,16 +1693,14 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/R
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-Simplified-NTP-launch.inc
-@@ -0,0 +1,10 @@
+@@ -0,0 +1,8 @@
+CROMITE_FEATURE(kSimplifiedNTP,
+ "SimplifiedNTP",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
+SET_CROMITE_FEATURE_DISABLED(kMagicStackAndroid);
+
-+SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomization);
+SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomizationV2);
-+SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomizationToolbarButton);
+SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomizationForMvt);
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc
new file mode 100644
diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
index 3f2a3a95..714912d3 100644
--- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
+++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
-@@ -293,6 +293,10 @@ public class ContextualPageActionController {
+@@ -313,6 +313,10 @@ public class ContextualPageActionController {
&& mTabSupplier.get().getId() == tab.getId();
if (!isSameTab) return;
@@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl
diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
--- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc
+++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
-@@ -75,6 +75,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56;
+@@ -74,6 +74,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56;
#if BUILDFLAG(IS_ANDROID)
std::unique_ptr GetConfigForAdaptiveToolbar() {
@@ -67,7 +67,7 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -5152,6 +5152,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -5243,6 +5243,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d
View
@@ -111,10 +111,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java
-@@ -74,9 +74,9 @@ public class AdaptiveToolbarFeatures {
- case AdaptiveToolbarButtonVariant.SHARE:
+@@ -75,9 +75,9 @@ public class AdaptiveToolbarFeatures {
case AdaptiveToolbarButtonVariant.VOICE:
case AdaptiveToolbarButtonVariant.AUTO:
+ case AdaptiveToolbarButtonVariant.GLIC:
+ case AdaptiveToolbarButtonVariant.READER_MODE:
return false;
case AdaptiveToolbarButtonVariant.PRICE_TRACKING:
@@ -137,10 +137,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java
-@@ -200,12 +200,12 @@ public class AdaptiveToolbarStatePredictor {
- case AdaptiveToolbarButtonVariant.READ_ALOUD:
+@@ -201,12 +201,12 @@ public class AdaptiveToolbarStatePredictor {
case AdaptiveToolbarButtonVariant.PAGE_SUMMARY:
case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER:
+ case AdaptiveToolbarButtonVariant.GLIC:
+ case AdaptiveToolbarButtonVariant.READER_MODE:
return true;
case AdaptiveToolbarButtonVariant.UNKNOWN:
@@ -151,7 +151,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
case AdaptiveToolbarButtonVariant.PRICE_INSIGHTS:
case AdaptiveToolbarButtonVariant.TAB_GROUPING:
return false;
-@@ -234,6 +234,10 @@ public class AdaptiveToolbarStatePredictor {
+@@ -235,6 +235,10 @@ public class AdaptiveToolbarStatePredictor {
* @param callback A callback for results.
*/
public void readFromSegmentationPlatform(Callback> callback) {
diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch
index 667d9af2..322169b9 100644
--- a/build/patches/Restore-chrome-password-store.patch
+++ b/build/patches/Restore-chrome-password-store.patch
@@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../settings/AutofillProfilesFragment.java | 1 +
.../settings/PasswordSettings.java | 711 ++++++++++++++++++
.../settings/FragmentDependencyProvider.java | 5 +
- .../chrome/browser/settings/MainSettings.java | 15 -
+ .../chrome/browser/settings/MainSettings.java | 17 -
.../settings/SettingsNavigationImpl.java | 4 +
chrome/browser/BUILD.gn | 7 +
.../autofill/AutofillClientProviderUtils.java | 1 +
@@ -88,7 +88,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../core/common/password_manager_pref_names.h | 2 -
components/sync/service/sync_prefs.cc | 2 +-
.../Restore-chrome-password-store.inc | 1 +
- 80 files changed, 5590 insertions(+), 79 deletions(-)
+ 80 files changed, 5590 insertions(+), 81 deletions(-)
create mode 100644 chrome/android/java/res/layout/password_no_result.xml
create mode 100644 chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -134,7 +134,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -812,6 +812,10 @@ if (_is_default_toolchain) {
+@@ -822,6 +822,10 @@ if (_is_default_toolchain) {
"//url/mojom:url_mojom_origin_java",
]
@@ -145,7 +145,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
deps += feed_deps
srcjar_deps = [
-@@ -960,6 +964,10 @@ if (_is_default_toolchain) {
+@@ -972,6 +976,10 @@ if (_is_default_toolchain) {
"//components/visited_url_ranking/internal:internal_java",
]
@@ -159,7 +159,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -658,3 +658,8 @@ chrome_java_resources = [
+@@ -654,3 +654,8 @@ chrome_java_resources = [
"java/res/xml/tracing_preferences.xml",
"java/res/xml/unified_account_settings_preferences.xml",
]
@@ -171,7 +171,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -917,6 +917,7 @@ chrome_java_sources = [
+@@ -932,6 +932,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerDialogViewBinder.java",
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java",
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java",
@@ -197,7 +197,7 @@ diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/ch
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -483,10 +483,9 @@ by a child template that "extends" this file.
+@@ -485,10 +485,9 @@ by a child template that "extends" this file.
@@ -323,7 +323,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
-@@ -829,6 +829,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
+@@ -833,6 +833,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
}
private static boolean disabledSettingsInThirdPartyMode(Profile profile) {
@@ -334,7 +334,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
-@@ -465,6 +465,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment
+@@ -635,6 +635,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment
}
private static boolean disabledSettingsInThirdPartyMode(Profile profile) {
@@ -1061,7 +1061,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
-@@ -26,6 +26,8 @@ import org.chromium.chrome.browser.language.settings.LanguageSettings;
+@@ -30,6 +30,8 @@ import org.chromium.chrome.browser.language.settings.LanguageSettings;
import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
import org.chromium.chrome.browser.locale.LocaleManager;
import org.chromium.chrome.browser.page_info.SiteSettingsHelper;
@@ -1070,7 +1070,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
import org.chromium.chrome.browser.password_manager.PasswordManagerHelper;
import org.chromium.chrome.browser.password_manager.PasswordStoreBridge;
import org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment;
-@@ -145,6 +147,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
+@@ -160,6 +162,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
PasswordManagerHelper.getForProfile(mProfile),
new SettingsCustomTabLauncherImpl());
}
@@ -1083,7 +1083,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-@@ -655,15 +655,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
+@@ -657,17 +657,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
return SettingsNavigationHelper.showAutofillProfileSettings(
getActivity());
});
@@ -1093,21 +1093,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
- preference -> {
- onPreferenceSelected(preference);
- showPasswordSettings(
-- getActivity(), getProfile(), mModalDialogManagerSupplier.asNonNull());
+- getActivity(),
+- getProfile(),
+- mModalDialogManagerSupplier.asNonNull().get());
- return true;
- });
// This is temporary code needed for migrating people to UPM. With UPM there is no
// longer passwords setting page in Chrome, so we need to ask users to export their
-@@ -718,12 +709,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
- Context context,
- Profile profile,
- MonotonicObservableSupplier modalDialogManagerSupplier) {
+@@ -720,12 +709,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
+
+ private static void showPasswordSettings(
+ Context context, Profile profile, ModalDialogManager modalDialogManager) {
- PasswordManagerLauncher.showPasswordSettings(
- context,
- profile,
- ManagePasswordsReferrer.CHROME_SETTINGS,
-- modalDialogManagerSupplier.asNonNull(),
+- modalDialogManager,
- /* managePasskeys= */ false);
}
@@ -1143,7 +1145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -3312,6 +3312,13 @@ static_library("browser") {
+@@ -3207,6 +3207,13 @@ static_library("browser") {
"touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h",
]
@@ -1351,8 +1353,8 @@ new file mode 100644
+}
+
+void CredentialEditBridge::SaveChanges(JNIEnv* env,
-+ std::u16string& username,
-+ std::u16string& password) {
++ const std::u16string& username,
++ const std::u16string& password) {
+ password_manager::CredentialUIEntry updated_credential = credential_;
+ updated_credential.username = username;
+ updated_credential.password = password;
@@ -1458,8 +1460,8 @@ new file mode 100644
+
+ // Called by Java to save the changes to the edited credential.
+ void SaveChanges(JNIEnv* env,
-+ std::u16string& username,
-+ std::u16string& password);
++ const std::u16string& username,
++ const std::u16string& password);
+
+ // Called by Java to remove the credential from the store.
+ void DeleteCredential(JNIEnv* env);
@@ -3083,9 +3085,9 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
import org.chromium.components.sync.SyncService;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -134,7 +135,7 @@ public class PasswordManagerHelper {
- context, modalDialogManagerSupplier.get(), settingsCustomTabLauncher)) {
+ context, modalDialogManager, settingsCustomTabLauncher)) {
LoadingModalDialogCoordinator loadingDialogCoordinator =
- LoadingModalDialogCoordinator.create(modalDialogManagerSupplier, context);
+ LoadingModalDialogCoordinator.create(modalDialogManager, context);
- launchTheCredentialManager(referrer, syncService, loadingDialogCoordinator, account);
+ launchTheCredentialManager(context, referrer, syncService, loadingDialogCoordinator, account);
}
@@ -3116,7 +3118,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
return false;
}
-@@ -396,10 +388,16 @@ public class PasswordManagerHelper {
+@@ -395,10 +387,16 @@ public class PasswordManagerHelper {
@VisibleForTesting
void launchTheCredentialManager(
@@ -6129,7 +6131,7 @@ diff --git a/chrome/browser/password_manager/password_manager_settings_service_f
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -2593,13 +2593,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
+@@ -2642,13 +2642,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores);
profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase);
profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion);
@@ -6146,7 +6148,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -715,7 +715,7 @@ For more settings that use data to improve your Chrome experience, go to
@@ -6155,7 +6157,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Password saving is turned on by your administrator
-@@ -815,6 +815,127 @@ For more settings that use data to improve your Chrome experience, go to
@@ -6300,14 +6302,14 @@ new file mode 100644
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
-@@ -385,6 +385,7 @@ BASE_FEATURE(kAutofillCreditCardUserPerceptionSurvey,
+@@ -391,6 +391,7 @@ BASE_FEATURE(kAutofillCreditCardUserPerceptionSurvey,
// If enabled, other apps can open the Autofill Options in Chrome.
BASE_FEATURE(kAutofillDeepLinkAutofillOptions,
base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kAutofillDeepLinkAutofillOptions);
#endif // BUILDFLAG(IS_ANDROID)
- // Kill switch for Autofill address import.
+ // If enabled, `FormParsingTracker` will wait up to 1 second
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java
@@ -6411,7 +6413,7 @@ diff --git a/components/password_manager/core/browser/password_manager_constants
diff --git a/components/password_manager/core/browser/password_store/BUILD.gn b/components/password_manager/core/browser/password_store/BUILD.gn
--- a/components/password_manager/core/browser/password_store/BUILD.gn
+++ b/components/password_manager/core/browser/password_store/BUILD.gn
-@@ -73,6 +73,19 @@ source_set("password_store_impl") {
+@@ -74,6 +74,19 @@ source_set("password_store_impl") {
"android_backend_error.h",
"password_data_type_controller_delegate_android.cc",
"password_data_type_controller_delegate_android.h",
@@ -6455,7 +6457,7 @@ diff --git a/components/password_manager/core/browser/password_store/login_datab
diff --git a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
--- a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
+++ b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
-@@ -152,6 +152,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
+@@ -153,6 +153,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
DCHECK(helper_);
affiliated_match_helper_ = affiliated_match_helper;
@@ -6463,7 +6465,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st
// To ensure that groups of the kClearUndecryptablePasswords will stay
// balanced, after the cleanup is done an additional flag check is needed.
// Users won't reach the flag the normal way since the LoginDB is working
-@@ -160,6 +161,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
+@@ -161,6 +162,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
if (pref_service_->GetBoolean(prefs::kClearingUndecryptablePasswords)) {
base::FeatureList::IsEnabled(features::kClearUndecryptablePasswords);
}
@@ -6471,7 +6473,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st
background_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&LoginDatabaseAsyncHelper::CreateSyncBackend,
-@@ -436,11 +438,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived(
+@@ -437,11 +439,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived(
weak_ptr_factory_.GetWeakPtr()))
.Then(std::move(remote_form_changes_received));
@@ -6574,7 +6576,7 @@ diff --git a/components/password_manager/core/common/password_manager_pref_names
diff --git a/components/sync/service/sync_prefs.cc b/components/sync/service/sync_prefs.cc
--- a/components/sync/service/sync_prefs.cc
+++ b/components/sync/service/sync_prefs.cc
-@@ -709,7 +709,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) {
+@@ -740,7 +740,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) {
kSeparateLocalAndAccountSearchEngines);
#endif
case UserSelectableType::kPasswords:
diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch
index 5b4bd683..f14e0a23 100644
--- a/build/patches/Restore-offline-indicator-v2-flag.patch
+++ b/build/patches/Restore-offline-indicator-v2-flag.patch
@@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -1549,7 +1549,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1553,7 +1553,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) {
// TODO(crbug.com/40112282): Disable on tablets for now as we need to do one or two extra
// things for tablets.
@@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
return;
}
-@@ -1583,6 +1584,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1593,6 +1594,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight);
});
@@ -117,21 +117,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -382,6 +382,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kNotificationPermissionVariant,
- &kNotificationTrampoline,
+@@ -389,6 +389,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kNotificationTrampolineNoNewTask,
+ &kNtpMvcRefactor,
+ &kNtpSimplification,
+ &kOfflineIndicatorV2,
&kOmahaMinSdkVersionAndroid,
+ &kOnDemandBackgroundTabContextCapture,
&kPCCTMinimumHeight,
- &kPageAnnotationsService,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -519,6 +519,7 @@ public abstract class ChromeFeatureList {
- public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline";
- public static final String NOTIFICATION_TRAMPOLINE_NO_NEW_TASK =
+@@ -531,6 +531,7 @@ public abstract class ChromeFeatureList {
"NotificationTrampolineNoNewTask";
+ public static final String NTP_MVC_REFACTOR = "NtpMvcRefactor";
+ public static final String NTP_SIMPLIFICATION = "NtpSimplification";
+ public static final String OFFLINE_INDICATOR_V2 = "OfflineIndicatorV2";
public static final String OMAHA_MIN_SDK_VERSION_ANDROID = "OmahaMinSdkVersionAndroid";
public static final String OMNIBOX_AUTOFOCUS_ON_INCOGNITO_NTP =
diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch
index cdbd79e3..b2132bac 100644
--- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch
+++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch
@@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
-@@ -2368,6 +2368,10 @@
+@@ -2407,6 +2407,10 @@
"yangsharon@google.com", "alexmos@google.com", "creis@google.com" ],
"expiry_milestone": 150
},
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 69b94eaa..f85eb2d7 100644
--- a/build/patches/Revert-removal-of-execution-context-address-space.patch
+++ b/build/patches/Revert-removal-of-execution-context-address-space.patch
@@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
...alled_service_worker_module_script_fetcher.cc | 1 +
.../modulescript/module_script_loader_test.cc | 1 +
.../modulescript/worker_module_script_fetcher.cc | 3 ++-
- .../renderer/core/workers/dedicated_worker.cc | 9 +++++++++
+ .../renderer/core/workers/dedicated_worker.cc | 10 +++++++++-
.../renderer/core/workers/dedicated_worker.h | 3 +++
.../workers/dedicated_worker_global_scope.cc | 9 ++++++++-
.../core/workers/dedicated_worker_global_scope.h | 1 +
@@ -39,19 +39,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../core/workers/shared_worker_global_scope.h | 1 +
.../workers/threaded_worklet_messaging_proxy.cc | 5 ++++-
.../core/workers/threaded_worklet_test.cc | 1 +
- .../core/workers/worker_classic_script_loader.cc | 5 ++++-
+ .../core/workers/worker_classic_script_loader.cc | 6 +++++-
.../core/workers/worker_classic_script_loader.h | 6 ++++++
.../renderer/core/workers/worker_global_scope.h | 2 ++
.../renderer/core/workers/worker_thread_test.cc | 2 ++
.../core/workers/worker_thread_test_helper.h | 6 ++++++
.../csspaint/paint_worklet_global_scope_proxy.cc | 2 +-
- .../modules/exported/web_embedded_worker_impl.cc | 4 +++-
+ .../modules/exported/web_embedded_worker_impl.cc | 1 +
.../service_worker_global_scope.cc | 13 +++++++++++--
.../service_worker/service_worker_global_scope.h | 2 ++
.../webaudio/audio_worklet_global_scope_test.cc | 1 +
.../webaudio/audio_worklet_thread_test.cc | 1 +
.../worklet/worklet_thread_test_common.cc | 2 +-
- 34 files changed, 145 insertions(+), 9 deletions(-)
+ 34 files changed, 144 insertions(+), 9 deletions(-)
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
--- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
-@@ -276,6 +276,7 @@ void WebSharedWorkerImpl::StartWorkerContext(
+@@ -278,6 +278,7 @@ void WebSharedWorkerImpl::StartWorkerContext(
MakeGarbageCollected(),
std::make_unique(
std::move(content_settings)),
@@ -107,7 +107,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
diff --git a/third_party/blink/renderer/core/frame/policy_container.cc b/third_party/blink/renderer/core/frame/policy_container.cc
--- a/third_party/blink/renderer/core/frame/policy_container.cc
+++ b/third_party/blink/renderer/core/frame/policy_container.cc
-@@ -60,12 +60,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy()
+@@ -45,12 +45,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy()
return policies_->referrer_policy;
}
@@ -162,8 +162,8 @@ diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet_global
--- a/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc
+++ b/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc
@@ -49,6 +49,7 @@ LayoutWorkletGlobalScopeProxy::LayoutWorkletGlobalScopeProxy(
- window->IsSecureContext(), window->GetHttpsState(),
- nullptr /* worker_clients */,
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), nullptr /* worker_clients */,
frame_client->CreateWorkerContentSettingsClient(),
+ window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
@@ -179,12 +179,12 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/installed_servi
+ script_data->GetResponseAddressSpace(),
ParseContentSecurityPolicyHeaders(
script_data->GetContentSecurityPolicyResponseHeaders()),
- script_data->CreateOriginTrialTokens().get());
+ // TODO(crbug.com/488089240): Plumb Document Policy in Service Workers.
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
-@@ -226,6 +226,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() {
- network::mojom::ReferrerPolicy::kDefault, security_origin_.get(),
+@@ -227,6 +227,7 @@ void ModuleScriptLoaderTest::InitializeForWorklet() {
+ DocumentPolicy::DocumentPolicyBundle{}, security_origin_.get(),
true /* is_secure_context */, HttpsState::kModern,
nullptr /* worker_clients */, nullptr /* content_settings_client */,
+ network::mojom::IPAddressSpace::kLocal,
@@ -210,76 +210,77 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s
+ response_url, response_referrer_policy, response.AddressSpace(),
ParseContentSecurityPolicyHeaders(
ContentSecurityPolicyResponseHeaders(response)),
- response_origin_trial_tokens.get());
+ // TODO(crbug.com/488090079): Plumb Document Policy in Module Workers.
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc
--- a/third_party/blink/renderer/core/workers/dedicated_worker.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc
-@@ -362,6 +362,7 @@ void DedicatedWorker::OnScriptLoadStarted(
- ContinueStart(script_request_url_, std::move(worker_main_script_load_params),
+@@ -363,6 +363,7 @@ void DedicatedWorker::OnScriptLoadStarted(
network::mojom::ReferrerPolicy::kDefault,
Vector(),
+ DocumentPolicy::DocumentPolicyBundle{},
+ std::nullopt /* response_address_space */,
std::move(back_forward_cache_controller_host),
std::move(coep_reporting_observer),
std::move(dip_reporting_observer));
-@@ -428,6 +429,7 @@ void DedicatedWorker::OnFinished(
- ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy()
+@@ -430,6 +431,7 @@ void DedicatedWorker::OnFinished(
->GetParsedPolicies())
: Vector(),
+ classic_script_loader_->GetDocumentPolicy(),
+ classic_script_loader_->ResponseAddressSpace(),
std::move(back_forward_cache_controller_host),
/*coep_reporting_observer=*/mojo::NullReceiver(),
/*dip_reporting_observer=*/mojo::NullReceiver());
-@@ -445,6 +447,7 @@ void DedicatedWorker::ContinueStart(
- network::mojom::ReferrerPolicy referrer_policy,
+@@ -448,6 +450,7 @@ void DedicatedWorker::ContinueStart(
Vector
response_content_security_policies,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
+ std::optional response_address_space,
mojo::PendingRemote
back_forward_cache_controller_host,
mojo::PendingReceiver
-@@ -469,6 +472,7 @@ void DedicatedWorker::ContinueStart(
- std::move(worker_main_script_load_params),
+@@ -473,6 +476,7 @@ void DedicatedWorker::ContinueStart(
std::move(referrer_policy),
std::move(response_content_security_policies),
+ std::move(response_document_policy),
+ response_address_space,
std::move(back_forward_cache_controller_host),
std::move(coep_reporting_observer),
std::move(dip_reporting_observer)),
-@@ -478,6 +482,7 @@ void DedicatedWorker::ContinueStart(
- ContinueStartInternal(
+@@ -483,6 +487,7 @@ void DedicatedWorker::ContinueStart(
script_url, std::move(worker_main_script_load_params),
std::move(referrer_policy), std::move(response_content_security_policies),
+ std::move(response_document_policy),
+ response_address_space,
std::move(back_forward_cache_controller_host),
std::move(coep_reporting_observer), std::move(dip_reporting_observer));
}
-@@ -489,6 +494,7 @@ void DedicatedWorker::ContinueStartInternal(
- network::mojom::ReferrerPolicy referrer_policy,
+@@ -495,6 +500,7 @@ void DedicatedWorker::ContinueStartInternal(
Vector
response_content_security_policies,
+ DocumentPolicy::DocumentPolicyBundle document_policy,
+ std::optional response_address_space,
mojo::PendingRemote
back_forward_cache_controller_host,
mojo::PendingReceiver
-@@ -503,6 +509,7 @@ void DedicatedWorker::ContinueStartInternal(
+@@ -509,7 +515,7 @@ void DedicatedWorker::ContinueStartInternal(
CreateGlobalScopeCreationParams(
script_url, referrer_policy,
std::move(response_content_security_policies),
-+ response_address_space,
- std::move(coep_reporting_observer),
+- std::move(document_policy), std::move(coep_reporting_observer),
++ std::move(document_policy), response_address_space, std::move(coep_reporting_observer),
std::move(dip_reporting_observer)),
std::move(worker_main_script_load_params), options_, script_url,
-@@ -541,6 +548,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams(
- network::mojom::ReferrerPolicy referrer_policy,
+ *outside_fetch_client_settings_object_, v8_stack_trace_id_, token_,
+@@ -548,6 +554,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams(
Vector
response_content_security_policies,
+ DocumentPolicy::DocumentPolicyBundle document_policy,
+ std::optional response_address_space,
mojo::PendingReceiver
coep_reporting_observer,
mojo::PendingReceiver
-@@ -593,6 +601,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams(
- execution_context->GetSecurityOrigin(),
+@@ -600,6 +607,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams(
+ std::move(document_policy), execution_context->GetSecurityOrigin(),
execution_context->IsSecureContext(), execution_context->GetHttpsState(),
MakeGarbageCollected(), CreateWebContentSettingsClient(),
+ response_address_space,
@@ -289,26 +290,26 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_party/blink/renderer/core/workers/dedicated_worker.h
--- a/third_party/blink/renderer/core/workers/dedicated_worker.h
+++ b/third_party/blink/renderer/core/workers/dedicated_worker.h
-@@ -158,6 +158,7 @@ class CORE_EXPORT DedicatedWorker final
- network::mojom::ReferrerPolicy,
+@@ -160,6 +160,7 @@ class CORE_EXPORT DedicatedWorker final
Vector
response_content_security_policies,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
+ std::optional response_address_space,
mojo::PendingRemote
back_forward_cache_controller_host,
mojo::PendingReceiver
-@@ -171,6 +172,7 @@ class CORE_EXPORT DedicatedWorker final
- network::mojom::ReferrerPolicy,
+@@ -174,6 +175,7 @@ class CORE_EXPORT DedicatedWorker final
Vector
response_content_security_policies,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
+ std::optional response_address_space,
mojo::PendingRemote
back_forward_cache_controller_host,
mojo::PendingReceiver
-@@ -182,6 +184,7 @@ class CORE_EXPORT DedicatedWorker final
- network::mojom::ReferrerPolicy,
+@@ -186,6 +188,7 @@ class CORE_EXPORT DedicatedWorker final
Vector
response_content_security_policies,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
+ std::optional response_address_space,
mojo::PendingReceiver
coep_reporting_observer,
@@ -316,33 +317,33 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
-@@ -92,6 +92,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
- KURL response_script_url = creation_params->script_url;
- network::mojom::ReferrerPolicy response_referrer_policy =
+@@ -95,6 +95,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
creation_params->referrer_policy;
+ DocumentPolicy::DocumentPolicyBundle response_document_policy =
+ std::move(creation_params->document_policy);
+ std::optional response_address_space =
+ creation_params->response_address_space;
const bool parent_is_isolated_context =
creation_params->parent_is_isolated_context;
base::TimeTicks start_time;
-@@ -118,7 +120,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
+@@ -121,7 +123,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
// Pass dummy origin trial tokens here as it is already set to outside's
// origin trial tokens in DedicatedWorkerGlobalScope's constructor.
global_scope->Initialize(response_script_url, response_referrer_policy,
- std::move(response_csp),
+ *response_address_space, std::move(response_csp),
+ std::move(response_document_policy),
nullptr /* response_origin_trial_tokens */);
return global_scope;
- } else {
-@@ -234,6 +236,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const {
+@@ -238,6 +240,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const {
void DedicatedWorkerGlobalScope::Initialize(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* /* response_origin_trial_tokens */) {
- TRACE_EVENT("blink.worker", "DedicatedWorkerGlobalScope::Initialize",
-@@ -249,6 +252,9 @@ void DedicatedWorkerGlobalScope::Initialize(
+@@ -254,6 +257,9 @@ void DedicatedWorkerGlobalScope::Initialize(
// parsing the `Referrer-Policy` header of response."
SetReferrerPolicy(response_referrer_policy);
@@ -352,7 +353,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco
// The following is the Content-Security-Policy part of "Initialize worker
// global scope's policy container"
// https://html.spec.whatwg.org/#initialize-worker-policy-container
-@@ -476,6 +482,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript(
+@@ -502,6 +508,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript(
// Pass dummy origin trial tokens here as it is already set to outside's
// origin trial tokens in DedicatedWorkerGlobalScope's constructor.
Initialize(classic_script_loader->ResponseURL(), response_referrer_policy,
@@ -369,12 +370,12 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) override;
- void FetchAndRunClassicScript(
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
--- a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
+++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
-@@ -33,6 +33,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
+@@ -34,6 +34,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
HttpsState starter_https_state,
WorkerClients* worker_clients,
std::unique_ptr content_settings_client,
@@ -382,7 +383,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
const Vector* inherited_trial_features,
const base::UnguessableToken& parent_devtools_token,
std::unique_ptr worker_settings,
-@@ -77,6 +78,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
+@@ -79,6 +80,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
starter_https_state(starter_https_state),
worker_clients(worker_clients),
content_settings_client(std::move(content_settings_client)),
@@ -399,9 +400,9 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
#include "services/network/public/cpp/permissions_policy/permissions_policy.h"
+#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
#include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h"
+ #include "third_party/blink/public/common/permissions_policy/document_policy.h"
#include "third_party/blink/public/common/tokens/tokens.h"
- #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
-@@ -63,6 +64,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
+@@ -65,6 +66,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
HttpsState starter_https_state,
WorkerClients*,
std::unique_ptr,
@@ -409,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
const Vector* inherited_trial_features,
const base::UnguessableToken& parent_devtools_token,
std::unique_ptr,
-@@ -185,6 +187,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
+@@ -189,6 +191,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
std::unique_ptr content_settings_client;
@@ -486,10 +487,10 @@ diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.h
diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc b/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
--- a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
+++ b/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
-@@ -72,6 +72,7 @@ class MainThreadWorkletTest : public PageTestBase {
- window->GetReferrerPolicy(), window->GetSecurityOrigin(),
- window->IsSecureContext(), window->GetHttpsState(),
- nullptr /* worker_clients */, nullptr /* content_settings_client */,
+@@ -73,6 +73,7 @@ class MainThreadWorkletTest : public PageTestBase {
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), nullptr /* worker_clients */,
+ nullptr /* content_settings_client */,
+ window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */,
@@ -497,15 +498,15 @@ diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc
--- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc
-@@ -81,6 +81,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const {
+@@ -82,6 +82,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const {
void SharedWorkerGlobalScope::Initialize(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) {
- // Step 12.3. "Set worker global scope's url to response's url."
-@@ -94,6 +95,9 @@ void SharedWorkerGlobalScope::Initialize(
+@@ -96,6 +97,9 @@ void SharedWorkerGlobalScope::Initialize(
// parsing the `Referrer-Policy` header of response."
SetReferrerPolicy(response_referrer_policy);
@@ -515,7 +516,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.
// Step 12.6. "Execute the Initialize a global object's CSP list algorithm
// on worker global scope and response. [CSP]"
// SharedWorkerGlobalScope inherits the outside's CSP instead of the response
-@@ -103,6 +107,8 @@ void SharedWorkerGlobalScope::Initialize(
+@@ -105,6 +109,8 @@ void SharedWorkerGlobalScope::Initialize(
// https://fetch.spec.whatwg.org/#local-scheme
//
// https://w3c.github.io/webappsec-csp/#initialize-global-object-csp
@@ -524,7 +525,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.
Vector csp_headers =
response_url.ProtocolIsAbout() || response_url.ProtocolIsData() ||
response_url.ProtocolIs("blob")
-@@ -247,6 +253,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript(
+@@ -251,6 +257,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript(
// Step 12.3-12.6 are implemented in Initialize().
Initialize(classic_script_loader->ResponseURL(), response_referrer_policy,
@@ -541,12 +542,12 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) override;
- void FetchAndRunClassicScript(
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
-@@ -93,7 +93,9 @@ void ThreadedWorkletMessagingProxy::Initialize(
+@@ -94,7 +94,9 @@ void ThreadedWorkletMessagingProxy::Initialize(
starter_secure_context,
/*starter_https_state=*/HttpsState::kNone,
/*worker_clients=*/nullptr,
@@ -557,9 +558,9 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_
/*parent_devtools_token=*/
client_provided_global_scope_creation_params->devtools_token,
/*worker_settings=*/nullptr,
-@@ -144,6 +146,7 @@ void ThreadedWorkletMessagingProxy::Initialize(
- window->GetReferrerPolicy(), window->GetSecurityOrigin(),
- window->IsSecureContext(), window->GetHttpsState(), worker_clients,
+@@ -146,6 +148,7 @@ void ThreadedWorkletMessagingProxy::Initialize(
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), worker_clients,
frame_client->CreateWorkerContentSettingsClient(),
+ window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
@@ -568,7 +569,7 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_
diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc
--- a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc
+++ b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc
-@@ -219,6 +219,7 @@ class ThreadedWorkletMessagingProxyForTest
+@@ -220,6 +220,7 @@ class ThreadedWorkletMessagingProxyForTest
GetExecutionContext()->IsSecureContext(),
GetExecutionContext()->GetHttpsState(), worker_clients,
nullptr /* content_settings_client */,
@@ -579,15 +580,16 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/
diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
--- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
+++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
-@@ -30,6 +30,7 @@
+@@ -30,6 +30,8 @@
#include
#include "base/memory/scoped_refptr.h"
+#include "services/network/public/mojom/ip_address_space.mojom-blink.h"
- #include "third_party/blink/public/common/features.h"
++#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
-@@ -100,7 +101,8 @@ String CheckSameOriginEnforcement(const KURL& request_url,
+ #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
+@@ -101,7 +103,8 @@ String CheckSameOriginEnforcement(const KURL& request_url,
} // namespace
@@ -597,7 +599,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade
void WorkerClassicScriptLoader::LoadSynchronously(
ExecutionContext& execution_context,
-@@ -234,6 +236,7 @@ void WorkerClassicScriptLoader::DidReceiveResponse(
+@@ -235,6 +238,7 @@ void WorkerClassicScriptLoader::DidReceiveResponse(
identifier_ = identifier;
response_url_ = response.ResponseUrl();
response_encoding_ = response.TextEncodingName();
@@ -614,11 +616,11 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
+#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
#include "services/network/public/mojom/url_loader_factory.mojom-blink.h"
+ #include "third_party/blink/public/common/permissions_policy/document_policy.h"
#include "third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom-shared.h"
- #include "third_party/blink/public/platform/cross_variant_mojo_util.h"
-@@ -119,6 +120,10 @@ class CORE_EXPORT WorkerClassicScriptLoader final
-
- const String& GetReferrerPolicy() const { return referrer_policy_; }
+@@ -124,6 +125,10 @@ class CORE_EXPORT WorkerClassicScriptLoader final
+ return document_policy_;
+ }
+ network::mojom::IPAddressSpace ResponseAddressSpace() const {
+ return response_address_space_;
@@ -627,33 +629,33 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade
const Vector* OriginTrialTokens() const {
return origin_trial_tokens_.get();
}
-@@ -173,6 +178,7 @@ class CORE_EXPORT WorkerClassicScriptLoader final
+@@ -179,6 +184,7 @@ class CORE_EXPORT WorkerClassicScriptLoader final
uint64_t identifier_ = 0;
std::unique_ptr> cached_metadata_;
Member content_security_policy_;
+ network::mojom::IPAddressSpace response_address_space_;
std::unique_ptr> origin_trial_tokens_;
String referrer_policy_;
-
+ DocumentPolicy::DocumentPolicyBundle document_policy_;
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h
--- a/third_party/blink/renderer/core/workers/worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
-@@ -32,6 +32,7 @@
- #include "base/task/single_thread_task_runner.h"
+@@ -33,6 +33,7 @@
#include "base/time/time.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
+ #include "third_party/blink/public/common/permissions_policy/document_policy.h"
+#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h"
-@@ -174,6 +175,7 @@ class CORE_EXPORT WorkerGlobalScope
+@@ -175,6 +176,7 @@ class CORE_EXPORT WorkerGlobalScope
virtual void Initialize(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) = 0;
-
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/third_party/blink/renderer/core/workers/worker_thread_test.cc
--- a/third_party/blink/renderer/core/workers/worker_thread_test.cc
+++ b/third_party/blink/renderer/core/workers/worker_thread_test.cc
@@ -665,7 +667,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/thi
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h"
-@@ -386,6 +387,7 @@ TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) {
+@@ -387,6 +388,7 @@ TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) {
CalculateHttpsState(security_origin_.get()),
MakeGarbageCollected(),
nullptr /* content_settings_client */,
@@ -684,12 +686,13 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
#include "testing/gmock/include/gmock/gmock.h"
#include "third_party/blink/public/common/loader/worker_main_script_load_parameters.h"
#include "third_party/blink/public/mojom/v8_cache_options.mojom-blink.h"
-@@ -78,11 +79,15 @@ class FakeWorkerGlobalScope : public WorkerGlobalScope {
+@@ -79,12 +80,16 @@ class FakeWorkerGlobalScope : public WorkerGlobalScope {
void Initialize(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) override {
InitializeURL(response_url);
SetReferrerPolicy(response_referrer_policy);
@@ -700,7 +703,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
InitContentSecurityPolicyFromVector(std::move(response_csp));
BindContentSecurityPolicyToExecutionContext();
-@@ -158,6 +163,7 @@ class WorkerThreadForTest : public WorkerThread {
+@@ -167,6 +172,7 @@ class WorkerThreadForTest : public WorkerThread {
false /* starter_secure_context */,
CalculateHttpsState(security_origin), worker_clients,
nullptr /* content_settings_client */,
@@ -712,9 +715,9 @@ diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_sc
--- a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc
+++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc
@@ -47,7 +47,7 @@ PaintWorkletGlobalScopeProxy::PaintWorkletGlobalScopeProxy(
- window->GetReferrerPolicy(), window->GetSecurityOrigin(),
- window->IsSecureContext(), window->GetHttpsState(),
- nullptr /* worker_clients */,
+ window->GetReferrerPolicy(), DocumentPolicy::DocumentPolicyBundle{},
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), nullptr /* worker_clients */,
- frame_client->CreateWorkerContentSettingsClient(),
+ frame_client->CreateWorkerContentSettingsClient(), window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
@@ -723,21 +726,18 @@ diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_sc
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
-@@ -214,7 +214,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread(
- Vector(),
- network::mojom::ReferrerPolicy::kDefault, starter_origin.get(),
- starter_secure_context, starter_https_state, nullptr /* worker_clients */,
-- std::move(content_settings_proxy), nullptr /* inherited_trial_features */,
-+ std::move(content_settings_proxy),
+@@ -222,6 +222,7 @@ void WebEmbeddedWorkerImpl::StartWorkerThread(
+ DocumentPolicy::DocumentPolicyBundle{}, starter_origin.get(),
+ starter_secure_context, starter_https_state,
+ /*worker_clients=*/nullptr, std::move(content_settings_proxy),
+ std::nullopt /* response_address_space */,
-+ nullptr /* inherited_trial_features */,
+ /*inherited_trial_features=*/nullptr,
worker_start_data->devtools_worker_token, std::move(worker_settings),
// Generate the full code cache in the first execution of the script.
- mojom::blink::V8CacheOptions::kFullCodeWithoutHeatCheck,
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
-@@ -473,6 +473,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript(
+@@ -472,6 +472,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript(
// is set, and with the following callback steps given evaluationStatus:"
RunClassicScript(
classic_script_loader->ResponseURL(), referrer_policy,
@@ -751,9 +751,9 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) {
- // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url."
-@@ -499,6 +501,9 @@ void ServiceWorkerGlobalScope::Initialize(
+@@ -500,6 +502,9 @@ void ServiceWorkerGlobalScope::Initialize(
// script resource's referrer policy."
SetReferrerPolicy(response_referrer_policy);
@@ -763,7 +763,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl
// This is quoted from the "Content Security Policy" algorithm in the service
// workers spec:
// "Whenever a user agent invokes Run Service Worker algorithm with a service
-@@ -509,6 +514,9 @@ void ServiceWorkerGlobalScope::Initialize(
+@@ -510,6 +515,9 @@ void ServiceWorkerGlobalScope::Initialize(
// - If serviceWorker's script resource was delivered with a
// Content-Security-Policy-Report-Only HTTP header containing the value
// policy, the user agent must monitor policy for serviceWorker."
@@ -773,29 +773,30 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl
InitContentSecurityPolicyFromVector(std::move(response_csp));
BindContentSecurityPolicyToExecutionContext();
-@@ -551,7 +559,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript(
- kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy);
+@@ -555,7 +563,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript(
}
-- RunClassicScript(script_url, referrer_policy,
-+ RunClassicScript(script_url, referrer_policy, script_data->GetResponseAddressSpace(),
- ParseContentSecurityPolicyHeaders(
- script_data->GetContentSecurityPolicyResponseHeaders()),
- script_data->CreateOriginTrialTokens().get(),
-@@ -563,13 +571,14 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript(
+ RunClassicScript(
+- script_url, referrer_policy,
++ script_url, referrer_policy, script_data->GetResponseAddressSpace(),
+ ParseContentSecurityPolicyHeaders(
+ script_data->GetContentSecurityPolicyResponseHeaders()),
+ // TODO(crbug.com/488089240): Plumb Document Policy in Service Workers.
+@@ -568,6 +576,7 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript(
void ServiceWorkerGlobalScope::RunClassicScript(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens,
- const String& source_code,
+@@ -575,7 +584,7 @@ void ServiceWorkerGlobalScope::RunClassicScript(
std::unique_ptr> cached_meta_data,
const v8_inspector::V8StackTraceId& stack_id) {
// Step 4.5-4.11 are implemented in Initialize().
- Initialize(response_url, response_referrer_policy, std::move(response_csp),
+ Initialize(response_url, response_referrer_policy, response_address_space, std::move(response_csp),
- response_origin_trial_tokens);
+ std::move(response_document_policy), response_origin_trial_tokens);
// Step 4.12. "Let evaluationStatus be the result of running the classic
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
@@ -807,23 +808,23 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens) override;
- // Fetches and runs the top-level classic worker script.
-@@ -409,6 +410,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final
+@@ -410,6 +411,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final
void RunClassicScript(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
+ network::mojom::IPAddressSpace response_address_space,
Vector response_csp,
+ DocumentPolicy::DocumentPolicyBundle response_document_policy,
const Vector* response_origin_trial_tokens,
- const String& source_code,
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
-@@ -88,6 +88,7 @@ class AudioWorkletGlobalScopeTest : public PageTestBase, public ModuleTestBase {
- window->GetReferrerPolicy(), window->GetSecurityOrigin(),
- window->IsSecureContext(), window->GetHttpsState(),
- nullptr /* worker_clients */, nullptr /* content_settings_client */,
+@@ -90,6 +90,7 @@ class AudioWorkletGlobalScopeTest : public PageTestBase, public ModuleTestBase {
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), nullptr /* worker_clients */,
+ nullptr /* content_settings_client */,
+ window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */,
@@ -831,10 +832,10 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_sc
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
-@@ -108,6 +108,7 @@ class AudioWorkletThreadTest : public PageTestBase, public ModuleTestBase {
- window->GetReferrerPolicy(), window->GetSecurityOrigin(),
- window->IsSecureContext(), window->GetHttpsState(),
- nullptr /* worker_clients */, nullptr /* content_settings_client */,
+@@ -109,6 +109,7 @@ class AudioWorkletThreadTest : public PageTestBase, public ModuleTestBase {
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), nullptr /* worker_clients */,
+ nullptr /* content_settings_client */,
+ window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */,
@@ -842,10 +843,10 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_te
diff --git a/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc b/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc
--- a/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc
+++ b/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc
-@@ -38,7 +38,7 @@ CreateAnimationAndPaintWorkletThread(
- Vector(),
- window->GetReferrerPolicy(), window->GetSecurityOrigin(),
- window->IsSecureContext(), window->GetHttpsState(), clients,
+@@ -39,7 +39,7 @@ CreateAnimationAndPaintWorkletThread(
+ window->GetReferrerPolicy(), DocumentPolicy::DocumentPolicyBundle{},
+ window->GetSecurityOrigin(), window->IsSecureContext(),
+ window->GetHttpsState(), clients,
- nullptr /* content_settings_client */,
+ nullptr /* content_settings_client */, window->AddressSpace(),
OriginTrialContext::GetInheritedTrialFeatures(window).get(),
diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch
index b5ea23d7..0dc8a6a6 100644
--- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch
+++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch
@@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
#include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
#include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h"
#include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h"
-@@ -500,7 +501,10 @@ bool LocalDOMWindow::CanExecuteScripts(
+@@ -487,7 +488,10 @@ bool LocalDOMWindow::CanExecuteScripts(
}
return false;
}
@@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -933,12 +933,6 @@ class CORE_EXPORT LocalFrame final
+@@ -939,12 +939,6 @@ class CORE_EXPORT LocalFrame final
return *v8_local_compile_hints_producer_;
}
@@ -250,7 +250,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_party/blink/renderer/core/html/html_meta_element.cc
--- a/third_party/blink/renderer/core/html/html_meta_element.cc
+++ b/third_party/blink/renderer/core/html/html_meta_element.cc
-@@ -797,7 +797,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document,
+@@ -811,7 +811,9 @@ void HTMLMetaElement::ProcessMetaCH(Document& document,
return;
}
@@ -264,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/base_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc
-@@ -274,7 +274,7 @@ BaseFetchContext::CanRequestInternal(
+@@ -290,7 +290,7 @@ BaseFetchContext::CanRequestInternal(
}
if (type == ResourceType::kScript) {
@@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
-@@ -107,7 +107,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
+@@ -108,7 +108,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
: fetcher_properties_(properties), console_logger_(logger) {}
// Used for security checks.
@@ -288,7 +288,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
-@@ -642,7 +642,8 @@ void FrameFetchContext::AddClientHintsIfNecessary(
+@@ -641,7 +641,8 @@ void FrameFetchContext::AddClientHintsIfNecessary(
// Check if |url| is allowed to run JavaScript. If not, client hints are not
// attached to the requests that initiate on the render side.
@@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
return;
}
-@@ -1105,15 +1106,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) {
+@@ -1104,15 +1105,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) {
}
}
@@ -354,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir
static ResourceFetcher* CreateFetcherForCommittedDocument(DocumentLoader&,
Document&);
FrameFetchContext(DocumentLoader& document_loader,
-@@ -182,7 +193,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
+@@ -183,7 +194,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
// BaseFetchContext overrides:
net::SiteForCookies GetSiteForCookies() const override;
SubresourceFilter* GetSubresourceFilter() const override;
diff --git a/build/patches/Set-caret-blink-interval-to-default.patch b/build/patches/Set-caret-blink-interval-to-default.patch
index 93910c14..564e3526 100644
--- a/build/patches/Set-caret-blink-interval-to-default.patch
+++ b/build/patches/Set-caret-blink-interval-to-default.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -3731,9 +3731,7 @@ void WebViewImpl::UpdateRendererPreferences(
+@@ -3758,9 +3758,7 @@ void WebViewImpl::UpdateRendererPreferences(
UpdateFontRenderingFromRendererPrefs();
blink::SetCaretBlinkInterval(
diff --git a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch
index d28a98f3..1fcfb086 100644
--- a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch
+++ b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch
@@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/cc/base/features.cc b/cc/base/features.cc
--- a/cc/base/features.cc
+++ b/cc/base/features.cc
-@@ -136,13 +136,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -131,13 +131,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kInitImageDecodeLastUseTime, base::FEATURE_ENABLED_BY_DEFAULT);
// Enabled on Android, after a field trial showed improvements.
@@ -47,7 +47,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc
#if BUILDFLAG(IS_ANDROID)
BASE_FEATURE(kThrottleMainFrameTo60HzWebView,
-@@ -175,6 +169,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -170,6 +164,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kRenderThrottleFrameRate, base::FEATURE_ENABLED_BY_DEFAULT);
const base::FeatureParam kRenderThrottledFrameIntervalHz{
&kRenderThrottleFrameRate, "render-throttled-frame-interval-hz", 30};
@@ -67,7 +67,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st
#else
return true;
#endif
-@@ -1586,6 +1586,15 @@ void SchedulerStateMachine::FrameIntervalUpdated(
+@@ -1560,6 +1560,15 @@ void SchedulerStateMachine::FrameIntervalUpdated(
//
// Apply some slack, so that if for some reason the interval is a bit larger
// than 8.33333333333333ms, then we catch it still.
@@ -83,7 +83,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st
constexpr float kSlackFactor = .9;
bool fast_vsync_interval =
frame_interval < base::Hertz(120) * (1 / kSlackFactor);
-@@ -1917,6 +1926,14 @@ void SchedulerStateMachine::SetRequestHighFramerate(bool flag) {
+@@ -1891,6 +1900,14 @@ void SchedulerStateMachine::SetRequestHighFramerate(bool flag) {
}
base::TimeDelta SchedulerStateMachine::MainFrameThrottledInterval() const {
@@ -117,7 +117,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -11021,9 +11021,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -11124,9 +11124,9 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(::features::kBlockRootWindowAccessibleNameChangeEvent)},
#endif // BUILDFLAG(IS_MAC)
@@ -133,7 +133,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -53,6 +53,7 @@
+@@ -52,6 +52,7 @@
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM
@@ -141,7 +141,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "chrome/browser/after_startup_task_utils.h"
#include "chrome/browser/ai/ai_manager.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
-@@ -310,6 +311,7 @@
+@@ -311,6 +312,7 @@
#include "components/variations/variations_associated_data.h"
#include "components/variations/variations_switches.h"
#include "components/version_info/version_info.h"
@@ -149,7 +149,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "components/webapps/common/web_app_id.h"
#include "components/webui/chrome_urls/pref_names.h"
#include "content/public/browser/attribution_data_model.h"
-@@ -2748,6 +2750,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2818,6 +2820,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->AppendSwitchASCII(ash::switches::kHomedir, homedir.value());
#endif
@@ -251,7 +251,7 @@ diff --git a/components/viz/service/display/display.cc b/components/viz/service/
#include "cc/base/math_util.h"
#include "cc/base/region.h"
#include "cc/base/simple_enclosed_region.h"
-@@ -295,8 +296,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings,
+@@ -283,8 +284,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings,
"latency_ms", frame_latency.InMillisecondsF());
}
if (frame_latency < base::Seconds(0)) {
@@ -401,7 +401,7 @@ diff --git a/third_party/blink/renderer/core/animation/animation_clock.cc b/thir
diff --git a/third_party/blink/renderer/core/view_transition/view_transition.cc b/third_party/blink/renderer/core/view_transition/view_transition.cc
--- a/third_party/blink/renderer/core/view_transition/view_transition.cc
+++ b/third_party/blink/renderer/core/view_transition/view_transition.cc
-@@ -998,8 +998,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const {
+@@ -996,8 +996,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const {
void ViewTransition::WillCommitCompositorFrame() {
// There should only be 1 commit when we're in the capturing phase and
// rendering is paused immediately after it finishes.
diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch
index d2e1cce6..23ac8a3f 100644
--- a/build/patches/Show-NTP-at-startup.patch
+++ b/build/patches/Show-NTP-at-startup.patch
@@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -3208,6 +3208,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
+@@ -3246,6 +3246,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
mInactivityTrackerSupplier.set(
new ChromeInactivityTracker(
ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF));
@@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
-@@ -22,9 +22,11 @@ import org.chromium.base.metrics.RecordHistogram;
+@@ -23,9 +23,11 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
@@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
import org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils;
import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.chrome.browser.profiles.Profile;
-@@ -134,6 +136,18 @@ public final class ReturnToChromeUtil {
+@@ -140,6 +142,18 @@ public final class ReturnToChromeUtil {
return false;
}
@@ -143,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
// Checks whether to show the NTP homepage due to feature flag
// HOME_SURFACE_RETURN_TIME_SECONDS.
long lastVisibleTimeMs = inactivityTracker.getLastVisibleTimeMs();
-@@ -252,7 +266,7 @@ public final class ReturnToChromeUtil {
+@@ -258,7 +272,7 @@ public final class ReturnToChromeUtil {
TabModel currentTabModel,
TabCreator tabCreator,
HomeSurfaceTracker homeSurfaceTracker) {
@@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
-@@ -997,7 +997,7 @@
+@@ -1001,7 +1001,7 @@
Open a specific page or set of pages
@@ -167,7 +167,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -427,6 +427,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -432,6 +432,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kSearchInCCTIfEnabledByEmbedder,
&kSearchResumptionModuleAndroid,
&kSettingsMultiColumn,
@@ -235,7 +235,7 @@ diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
-@@ -1024,6 +1024,8 @@ public final class ChromePreferenceKeys {
+@@ -1041,6 +1041,8 @@ public final class ChromePreferenceKeys {
public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF =
"ChromeTabbedActivity.BackgroundTimeMs";
@@ -247,7 +247,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
-@@ -115,6 +115,7 @@ public class LegacyChromePreferenceKeys {
+@@ -114,6 +114,7 @@ public class LegacyChromePreferenceKeys {
ChromePreferenceKeys.SNAPSHOT_DATABASE_REMOVED,
ChromePreferenceKeys.SYNC_ERROR_MESSAGE_SHOWN_AT_TIME,
ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF,
@@ -269,7 +269,7 @@ diff --git a/chrome/browser/resources/settings/on_startup_page/on_startup_page.t
diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc
--- a/chrome/browser/sessions/session_restore.cc
+++ b/chrome/browser/sessions/session_restore.cc
-@@ -937,7 +937,13 @@ class SessionRestoreImpl : public BrowserCollectionObserver {
+@@ -938,7 +938,13 @@ class SessionRestoreImpl : public BrowserCollectionObserver {
// be selected as ShowBrowser() will load the selected tab.
bool is_selected_tab =
(initial_tab_count == 0) && (i == selected_tab_index);
@@ -284,7 +284,7 @@ diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/session
// Convert the last active time because WebContents needs a TimeTicks.
const base::TimeDelta delta = tab.last_active_time - epoch_time;
const base::TimeTicks last_active_time_ticks = epoch_time_ticks + delta;
-@@ -1257,6 +1263,7 @@ class SessionRestoreImpl : public BrowserCollectionObserver {
+@@ -1258,6 +1264,7 @@ class SessionRestoreImpl : public BrowserCollectionObserver {
}
if (last_normal_browser && !normal_startup_tabs.empty()) {
AppendURLsToBrowser(last_normal_browser, normal_startup_tabs);
@@ -412,7 +412,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/browser_tabrestore.cc b/chrome/browser/ui/browser_tabrestore.cc
--- a/chrome/browser/ui/browser_tabrestore.cc
+++ b/chrome/browser/ui/browser_tabrestore.cc
-@@ -248,7 +248,7 @@ WebContents* AddRestoredTabImpl(std::unique_ptr web_contents,
+@@ -243,7 +243,7 @@ WebContents* AddRestoredTabImpl(std::unique_ptr web_contents,
// Immediate load if the browser activeness is true or unknown. That is, do
// not do immediate load for browsers that are known to be inactive.
@@ -437,7 +437,7 @@ diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/
+ }
+
// Potentially add a tab appropriate to display the Privacy Sandbox
- // confirmaton dialog on top of. Ideally such a tab will already exist
+ // confirmation dialog on top of. Ideally such a tab will already exist
// in |tabs|, and no additional tab will be required.
diff --git a/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc b/cromite_flags/chrome/browser/about_flags_cc/show-ntp-at-startup.inc
new file mode 100644
diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch
index 00645b98..829a1632 100644
--- a/build/patches/Site-setting-for-images.patch
+++ b/build/patches/Site-setting-for-images.patch
@@ -347,7 +347,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -932,12 +932,6 @@ class CORE_EXPORT LocalFrame final
+@@ -938,12 +938,6 @@ class CORE_EXPORT LocalFrame final
return *v8_local_compile_hints_producer_;
}
@@ -382,7 +382,7 @@ diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_part
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
-@@ -320,6 +320,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument(
+@@ -321,6 +321,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument(
fetcher->SetResourceLoadObserver(
MakeGarbageCollected(
loader, document, fetcher->GetProperties()));
@@ -390,7 +390,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
fetcher->SetAutoLoadImages(
frame->GetSettings()->GetLoadsImagesAutomatically());
fetcher->SetEarlyHintsPreloadedResources(
-@@ -517,16 +518,13 @@ void FrameFetchContext::AddResourceTiming(
+@@ -518,16 +519,13 @@ void FrameFetchContext::AddResourceTiming(
->AddResourceTiming(std::move(info), initiator_type);
}
@@ -427,7 +427,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
-@@ -1040,9 +1040,8 @@ void Page::SettingsChanged(ChangeType change_type) {
+@@ -1048,9 +1048,8 @@ void Page::SettingsChanged(ChangeType change_type) {
for (Frame* frame = MainFrame(); frame;
frame = frame->Tree().TraverseNext()) {
if (auto* local_frame = DynamicTo(frame)) {
@@ -442,7 +442,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_context.h
-@@ -115,7 +115,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected {
+@@ -116,7 +116,7 @@ class PLATFORM_EXPORT FetchContext : public GarbageCollected {
virtual void AddResourceTiming(mojom::blink::ResourceTimingInfoPtr,
const AtomicString& initiator_type);
@@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
}
ResourceFetcher::RevalidationPolicy
-@@ -2243,8 +2244,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) {
+@@ -2252,8 +2253,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) {
ReloadImagesIfNotDeferred();
}
diff --git a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch
index 68829d4c..32603e06 100644
--- a/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch
+++ b/build/patches/Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch
@@ -130,7 +130,7 @@ diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/alloc
+ use_full_mte = true
}
- stack_scan_supported = current_cpu == "x64" || current_cpu == "x86" ||
+ # We want to provide assertions that guard against inconsistent build
diff --git a/build_overrides/partition_alloc.gni b/build_overrides/partition_alloc.gni
--- a/build_overrides/partition_alloc.gni
+++ b/build_overrides/partition_alloc.gni
@@ -170,7 +170,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/wtf/allocator/partitions.cc b/third_party/blink/renderer/platform/wtf/allocator/partitions.cc
--- a/third_party/blink/renderer/platform/wtf/allocator/partitions.cc
+++ b/third_party/blink/renderer/platform/wtf/allocator/partitions.cc
-@@ -78,16 +78,8 @@ partition_alloc::PartitionOptions PartitionOptionsFromFeatures() {
+@@ -86,16 +86,8 @@ partition_alloc::PartitionOptions PartitionOptionsFromFeatures() {
using partition_alloc::PartitionOptions;
#if PA_BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT)
diff --git a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch
index d6a85a09..8cf440b9 100644
--- a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch
+++ b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
-@@ -3065,6 +3065,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id,
+@@ -3074,6 +3074,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id,
if (it == active_streams_.end()) {
// NOTE: it may just be that the stream was cancelled.
LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id;
diff --git a/build/patches/Temp-disable-UseContextSnapshot.patch b/build/patches/Temp-disable-UseContextSnapshot.patch
index c248d456..14222de2 100644
--- a/build/patches/Temp-disable-UseContextSnapshot.patch
+++ b/build/patches/Temp-disable-UseContextSnapshot.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
-@@ -1071,6 +1071,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -1092,6 +1092,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT);
#if BUILDFLAG(IS_ANDROID) && BUILDFLAG(INCLUDE_BOTH_V8_SNAPSHOTS)
// If enabled, blink's context snapshot is used rather than the v8 snapshot.
BASE_FEATURE(kUseContextSnapshot, base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch
index a7b06ad3..94deba06 100644
--- a/build/patches/Temp-disable-experimental-web-platform-features.patch
+++ b/build/patches/Temp-disable-experimental-web-platform-features.patch
@@ -9,10 +9,10 @@ Subject: Temp disable experimental-web-platform-features
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -4931,10 +4931,10 @@ const FeatureEntry kFeatureEntries[] = {
- {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName,
- flag_descriptions::kGpuRasterizationDescription, kOsAll,
- MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)},
+@@ -5086,10 +5086,10 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kFallbackToSWIfGLES3NotSupportedName,
+ flag_descriptions::kFallbackToSWIfGLES3NotSupportedDescription, kOsAll,
+ FEATURE_VALUE_TYPE(features::kFallbackToSWIfGLES3NotSupported)},
- {"enable-experimental-web-platform-features",
- flag_descriptions::kExperimentalWebPlatformFeaturesName,
- flag_descriptions::kExperimentalWebPlatformFeaturesDescription, kOsAll,
diff --git a/build/patches/Temp-disable-predictive-back-gesture.patch b/build/patches/Temp-disable-predictive-back-gesture.patch
index 776890d2..4ba35b82 100644
--- a/build/patches/Temp-disable-predictive-back-gesture.patch
+++ b/build/patches/Temp-disable-predictive-back-gesture.patch
@@ -10,9 +10,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -221,7 +221,7 @@ by a child template that "extends" this file.
+@@ -223,7 +223,7 @@ by a child template that "extends" this file.
+ {% endif %}
android:networkSecurityConfig="@xml/network_security_config"
- android:allowAudioPlaybackCapture="false"
android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory"
- android:enableOnBackInvokedCallback="true"
+ android:enableOnBackInvokedCallback="false"
diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch
index 5f2cf3de..1e317957 100644
--- a/build/patches/Timezone-customization.patch
+++ b/build/patches/Timezone-customization.patch
@@ -15,7 +15,7 @@ Require: Content-settings-infrastructure.patch
...ezoneoverride_site_settings_preference.xml | 68 ++++++
...imezoneOverrideSiteSettingsPreference.java | 196 ++++++++++++++++++
.../WebsitePreferenceBridge.java | 10 +
- ...BromiteTimezoneOverrideContentSetting.java | 148 +++++++++++++
+ ...BromiteTimezoneOverrideContentSetting.java | 157 ++++++++++++++
.../android/website_preference_bridge.cc | 16 ++
.../bromite_content_settings/timezone.grdp | 39 ++++
.../timezone_override.inc | 24 +++
@@ -37,7 +37,7 @@ Require: Content-settings-infrastructure.patch
.../timezone/external_timezone_controller.h | 34 +++
.../core/timezone/timezone_controller.cc | 11 -
.../core/timezone/timezone_controller.h | 12 +-
- 27 files changed, 761 insertions(+), 17 deletions(-)
+ 27 files changed, 770 insertions(+), 17 deletions(-)
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml
create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java
@@ -59,7 +59,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
]
resources_package = "org.chromium.components.browser_ui.site_settings"
-@@ -287,6 +288,8 @@ android_resources("java_resources") {
+@@ -290,6 +291,8 @@ android_resources("java_resources") {
"java/res/xml/site_settings_preferences.xml",
"java/res/xml/storage_access_settings.xml",
"java/res/xml/website_preferences.xml",
@@ -387,8 +387,8 @@ new file mode 100755
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
-@@ -521,6 +521,14 @@ public class WebsitePreferenceBridge {
- .recordHeuristicActionForTesting(browserContextHandle, origin, type, action);
+@@ -570,6 +570,14 @@ public class WebsitePreferenceBridge {
+ WebsitePreferenceBridgeJni.get().resetNotificationsSettingsForTest(browserContextHandle);
}
+ public static String getCustomTimezone(BrowserContextHandle browserContextHandle) {
@@ -402,7 +402,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
@NativeMethods
public interface Natives {
boolean isNotificationEmbargoedForOrigin(
-@@ -689,5 +697,7 @@ public class WebsitePreferenceBridge {
+@@ -738,5 +746,7 @@ public class WebsitePreferenceBridge {
String toDomainWildcardPattern(String pattern);
String toHostOnlyPattern(String pattern);
@@ -414,7 +414,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
new file mode 100644
--- /dev/null
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteTimezoneOverrideContentSetting.java
-@@ -0,0 +1,148 @@
+@@ -0,0 +1,157 @@
+/*
+ This file is part of Bromite.
+
@@ -501,6 +501,15 @@ new file mode 100644
+ }
+
+ @Override
++ public int[] getTriStateSettingIconIDs() {
++ return new int[] {
++ R.drawable.web_asset,
++ R.drawable.web_asset,
++ R.drawable.sensors_off_24px
++ };
++ }
++
++ @Override
+ public int getCategoryDescription() {
+ return R.string.website_settings_timeoverride_info;
+ }
@@ -566,7 +575,7 @@ new file mode 100644
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
-@@ -1322,5 +1322,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env,
+@@ -1312,5 +1312,21 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(JNIEnv* env,
return ConvertUTF8ToJavaString(env, host_only_pattern.ToString());
}
@@ -738,7 +747,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
-@@ -748,6 +748,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) {
+@@ -762,6 +762,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) {
}
}
@@ -756,7 +765,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
--- a/components/content_settings/core/browser/host_content_settings_map.h
+++ b/components/content_settings/core/browser/host_content_settings_map.h
-@@ -416,6 +416,9 @@ class HostContentSettingsMap : public content_settings::Observer,
+@@ -422,6 +422,9 @@ class HostContentSettingsMap : public content_settings::Observer,
// Returns the current time of the `clock_`.
base::Time Now() const { return clock_->Now(); }
diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch
index 5521ee6a..ee01323b 100644
--- a/build/patches/Use-browser-navigation-handler.patch
+++ b/build/patches/Use-browser-navigation-handler.patch
@@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
-@@ -106,6 +106,7 @@ import org.chromium.ui.util.MotionEventUtils;
+@@ -111,6 +111,7 @@ import org.chromium.ui.util.MotionEventUtils;
import org.chromium.url.GURL;
import java.util.ArrayList;
@@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus;
+@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches;
@@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.gesturenav.BackActionDelegate;
-@@ -930,7 +931,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -951,7 +952,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@Override
public void onInflationComplete() {
mCoordinator = mActivity.findViewById(R.id.coordinator);
diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch
index 59ec6ebe..983c8cd4 100644
--- a/build/patches/Use-list-mode-for-tab-switcher.patch
+++ b/build/patches/Use-list-mode-for-tab-switcher.patch
@@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../TabGridDialogProperties.java | 3 +
.../tab_management/TabGridDialogView.java | 13 +
.../TabGridDialogViewBinder.java | 8 +
- .../TabListContainerViewBinder.java | 29 +-
+ .../TabListContainerViewBinder.java | 34 +-
.../tab_management/TabListCoordinator.java | 37 +-
.../TabListEditorCoordinator.java | 2 +-
.../tab_management/TabListItemAnimator.java | 2 +-
@@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../java/res/drawable/ic_warning_red_16dp.xml | 26 ++
.../layout/title_and_description_layout.xml | 31 +-
.../tab-switcher-list-mode.inc | 3 +
- 35 files changed, 1183 insertions(+), 39 deletions(-)
+ 35 files changed, 1184 insertions(+), 43 deletions(-)
create mode 100644 chrome/android/features/tab_ui/java/res/drawable/selected_tab_background.xml
create mode 100644 chrome/android/features/tab_ui/java/res/drawable/selected_tab_background_incognito.xml
create mode 100644 chrome/android/features/tab_ui/java/res/layout/tab_list_card_item.xml
@@ -65,7 +65,7 @@ diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/t
"java/res/drawable/tab_grid_card_background.xml",
"java/res/drawable/tab_grid_card_highlight.xml",
"java/res/drawable/tab_grid_dialog_background.xml",
-@@ -114,6 +116,8 @@ android_resources("java_resources") {
+@@ -112,6 +114,8 @@ android_resources("java_resources") {
"java/res/layout/tab_group_visual_data_dialog.xml",
"java/res/layout/tab_group_visual_data_text_input_layout.xml",
"java/res/layout/tab_hover_card_holder.xml",
@@ -163,7 +163,7 @@ diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/
52dp
-@@ -115,6 +119,7 @@ found in the LICENSE file.
+@@ -117,6 +121,7 @@ found in the LICENSE file.
3dp
8dp
24dp
@@ -174,7 +174,7 @@ diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogCoordinator.java
-@@ -242,7 +242,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
+@@ -244,7 +244,9 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
// take in a mode parameter instead.
mTabListCoordinator =
new TabListCoordinator(
@@ -185,7 +185,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
activity,
mBrowserControlsStateProvider,
mModalDialogManager,
-@@ -359,6 +361,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
+@@ -361,6 +363,11 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
: "SnackbarManager should have been created or the activity was already"
+ " finishing.";
@@ -197,7 +197,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
ViewGroup container = mDialogView.findViewById(R.id.dialog_container_view);
mTabListEditorCoordinator =
new TabListEditorCoordinator(
-@@ -369,7 +376,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
+@@ -371,7 +378,7 @@ public class TabGridDialogCoordinator implements TabGridDialogMediator.DialogCon
mCurrentTabGroupModelFilterSupplier,
mTabContentManager,
mTabListCoordinator::setRecyclerViewPosition,
@@ -302,7 +302,19 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
-@@ -305,14 +305,27 @@ class TabListContainerViewBinder {
+@@ -86,10 +86,7 @@ class TabListContainerViewBinder {
+ mTabListRecyclerView = tabListRecyclerView;
+ mPaneHairline = paneHairline;
+ mSupplementaryContainer = supplementaryContainer;
+- mSearchBoxGapPx =
+- tabListRecyclerView
+- .getResources()
+- .getDimensionPixelSize(R.dimen.hub_search_box_gap);
++ mSearchBoxGapPx = 0;
+ }
+ }
+
+@@ -305,14 +302,27 @@ class TabListContainerViewBinder {
}
if (width <= 0 || height <= 0) return 0;
@@ -443,7 +455,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java
-@@ -411,7 +411,7 @@ public class TabListEditorCoordinator {
+@@ -421,7 +421,7 @@ public class TabListEditorCoordinator {
mSnackbarManager = snackbarManager;
mTabActionState = initialTabActionState;
mTabContentManager = tabContentManager;
@@ -467,7 +479,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
-@@ -2586,8 +2586,26 @@ class TabListMediator implements TabListNotificationHandler {
+@@ -2630,8 +2630,26 @@ class TabListMediator implements TabListNotificationHandler {
private void updateFaviconForTab(
PropertyModel model, Tab tab, @Nullable Bitmap icon, @Nullable GURL iconUrl) {
if (mActionsOnAllRelatedTabs && isTabInTabGroup(tab)) {
@@ -1045,7 +1057,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni
--- a/chrome/android/features/tab_ui/tab_management_java_sources.gni
+++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni
-@@ -184,6 +184,8 @@ internal_tab_management_java_sources = [
+@@ -180,6 +180,8 @@ internal_tab_management_java_sources = [
"//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListNotificationHandler.java",
"//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListOnScrollListener.java",
"//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java",
@@ -1081,7 +1093,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.theme.ThemeModuleUtils;
import org.chromium.chrome.browser.tinker_tank.TinkerTankDelegate;
import org.chromium.chrome.browser.toolbar.ControlContainer;
-@@ -691,8 +692,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -695,8 +696,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
new TabContentManager(
this,
mBrowserControlsManagerSupplier.get(),
@@ -1213,9 +1225,9 @@ diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/f
+jboolean FaviconHelper::GetComposedFaviconImage(
+ JNIEnv* env,
+ Profile* profile,
-+ std::vector& gurls,
-+ jint j_desired_size_in_pixel,
-+ const base::android::JavaRef&
++ const std::vector& gurls,
++ int32_t j_desired_size_in_pixel,
++ const JavaRef&
+ j_composed_favicon_image_callback) {
+ DCHECK(profile);
+ if (!profile) {
@@ -1350,8 +1362,8 @@ diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/fa
+ jboolean GetComposedFaviconImage(
+ JNIEnv* env,
+ Profile* profile,
-+ std::vector& gurls,
-+ jint j_desired_size_in_pixel,
++ const std::vector& gurls,
++ int32_t j_desired_size_in_pixel,
+ const base::android::JavaRef& j_favicon_image_callback);
bool GetLocalFaviconImageForURL(
JNIEnv* env,
@@ -1399,7 +1411,7 @@ diff --git a/chrome/browser/android/favicon_helper.h b/chrome/browser/android/fa
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -22,6 +22,7 @@ import org.chromium.components.cached_flags.IntCachedFeatureParam;
+@@ -21,6 +21,7 @@ import org.chromium.components.cached_flags.IntCachedFeatureParam;
import org.chromium.components.cached_flags.StringCachedFeatureParam;
import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase;
@@ -1407,8 +1419,8 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.Arrays;
import java.util.stream.Collectors;
-@@ -1340,8 +1341,9 @@ public abstract class ChromeFeatureList {
- newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR_FAST_FOLLOW, false);
+@@ -1370,8 +1371,9 @@ public abstract class ChromeFeatureList {
+ newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR_FAST_FOLLOW, true);
public static final MutableFlagWithSafeDefault sAndroidContextMenuDuplicateTabs =
newMutableFlagWithSafeDefault(ANDROID_CONTEXT_MENU_DUPLICATE_TABS, false);
- public static final MutableFlagWithSafeDefault sAndroidPinnedTabs =
@@ -1418,7 +1430,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
+ : newMutableFlagWithSafeDefault(ANDROID_PINNED_TABS, true);
public static final MutableFlagWithSafeDefault sAndroidPinnedTabsTabletTabStrip =
newMutableFlagWithSafeDefault(ANDROID_PINNED_TABS_TABLET_TAB_STRIP, true);
- public static final MutableFlagWithSafeDefault sAndroidTabHighlighting =
+ public static final MutableFlagWithSafeDefault sAndroidTipsNotifications =
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java
new file mode 100644
--- /dev/null
@@ -1714,7 +1726,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
-@@ -67,6 +67,7 @@ import org.chromium.build.annotations.Nullable;
+@@ -69,6 +69,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils;
import org.chromium.chrome.browser.omnibox.LocationBar;
@@ -1722,7 +1734,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.LocationBarBackgroundDrawable;
import org.chromium.chrome.browser.omnibox.LocationBarBackgroundDrawable.HairlineBehavior;
import org.chromium.chrome.browser.omnibox.LocationBarCoordinator;
-@@ -2119,7 +2120,7 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -2106,7 +2107,7 @@ public class ToolbarPhone extends ToolbarLayout
// On entering the tab switcher, set the focusability of the url bar to be false. This will
// occur at the start of the enter event, and will later be reset to true upon finishing the
// exit event.
@@ -1731,20 +1743,20 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mLocationBar.setUrlBarFocusable(false);
}
-@@ -2348,7 +2349,8 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -2334,7 +2335,8 @@ public class ToolbarPhone extends ToolbarLayout
ToggleTabStackButtonCoordinator tabSwitcherButtonCoordinator =
getTabSwitcherButtonCoordinator();
assumeNonNull(tabSwitcherButtonCoordinator);
- tabSwitcherButtonCoordinator.getContainerView().setClickable(!hasFocus);
+ if (!sTabSwitcherListMode.getInstance().isEnabled())
+ tabSwitcherButtonCoordinator.getContainerView().setClickable(!hasFocus);
- mHomeButtonDisplay.setClickable(!hasFocus);
+ mHomeButton.setClickable(!hasFocus);
triggerUrlFocusAnimation(hasFocus);
}
diff --git a/components/browser_ui/styles/android/BUILD.gn b/components/browser_ui/styles/android/BUILD.gn
--- a/components/browser_ui/styles/android/BUILD.gn
+++ b/components/browser_ui/styles/android/BUILD.gn
-@@ -237,6 +237,7 @@ android_resources("java_resources") {
+@@ -247,6 +247,7 @@ android_resources("java_resources") {
"java/res/drawable/ic_visibility_off_black.xml",
"java/res/drawable/ic_volume_off_fill_24dp.xml",
"java/res/drawable/ic_volume_up_fill_24dp.xml",
diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch
index 19c7a244..42e08806 100644
--- a/build/patches/User-agent-customization.patch
+++ b/build/patches/User-agent-customization.patch
@@ -10,7 +10,6 @@ whereas the content setting is intended for use in a specific site.
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
---
- base/base_switches.cc | 2 +
base/base_switches.h | 2 +
chrome/android/chrome_java_resources.gni | 2 +
chrome/android/chrome_java_sources.gni | 1 +
@@ -45,41 +44,29 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/web_contents/web_contents_impl.cc | 6 +-
.../framehost/NavigationControllerImpl.java | 17 +-
content/renderer/render_thread_impl.cc | 1 -
- 35 files changed, 807 insertions(+), 24 deletions(-)
+ 34 files changed, 805 insertions(+), 24 deletions(-)
create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml
create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteRequestDesktopSiteContentSetting.java
create mode 100644 components/browser_ui/strings/bromite_content_settings/request_desktop_site.grdp
-diff --git a/base/base_switches.cc b/base/base_switches.cc
---- a/base/base_switches.cc
-+++ b/base/base_switches.cc
-@@ -185,6 +185,8 @@ const char kPackageName[] = "package-name";
- const char kPackageVersionName[] = "package-version-name";
+diff --git a/base/base_switches.h b/base/base_switches.h
+--- a/base/base_switches.h
++++ b/base/base_switches.h
+@@ -193,6 +193,8 @@ inline constexpr char kPackageName[] = "package-name";
+ inline constexpr char kPackageVersionName[] = "package-version-name";
#endif
-+const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled";
++inline constexpr char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled";
+
#if BUILDFLAG(IS_CHROMEOS)
// Override the default scheduling boosting value for urgent tasks.
// This can be adjusted if a specific chromeos device shows better perf/power
-diff --git a/base/base_switches.h b/base/base_switches.h
---- a/base/base_switches.h
-+++ b/base/base_switches.h
-@@ -65,6 +65,8 @@ extern const char kPackageVersionName[];
- extern const char kSchedulerBoostUrgent[];
- #endif
-
-+extern const char kDesktopModeViewportMetaEnabled[];
-+
- } // namespace switches
-
- #endif // BASE_BASE_SWITCHES_H_
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -668,6 +668,8 @@ chrome_java_resources = [
+@@ -664,6 +664,8 @@ chrome_java_resources = [
"java/res/xml/search_widget_info.xml",
"java/res/xml/tracing_preferences.xml",
"java/res/xml/unified_account_settings_preferences.xml",
@@ -91,7 +78,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -952,6 +952,7 @@ chrome_java_sources = [
+@@ -967,6 +967,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
"java/src/org/chromium/chrome/browser/payments/ui/LineItem.java",
"java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java",
@@ -213,7 +200,7 @@ new file mode 100644
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
-@@ -144,6 +144,11 @@ found in the LICENSE file.
+@@ -142,6 +142,11 @@ found in the LICENSE file.
android:key="content_settings"
android:order="26"
android:title="@string/prefs_site_settings"/>
@@ -258,7 +245,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -2846,7 +2846,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -2905,7 +2905,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
profile, currentTab.getUrl(), usingDesktopUserAgent);
// Use TabUtils.switchUserAgent() instead of Tab.reload(). Because we need to reload
// with LoadOriginalRequestURL. See http://crbug/1418587 for details.
@@ -298,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java
-@@ -241,6 +241,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager
+@@ -230,6 +230,41 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager
return getCrashUploadPermittedSupplier();
}
@@ -340,7 +327,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@NativeMethods
public interface Natives {
boolean isMetricsReportingEnabled();
-@@ -248,5 +283,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager
+@@ -237,5 +272,12 @@ public class PrivacyPreferencesManagerImpl implements PrivacyPreferencesManager
void setMetricsReportingEnabled(boolean enabled);
boolean isMetricsReportingDisabledByPolicy();
@@ -570,7 +557,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
-@@ -2438,9 +2444,6 @@ class TabImpl implements Tab {
+@@ -2377,9 +2383,6 @@ class TabImpl implements Tab {
}
if (mWebContents != null) {
@@ -580,7 +567,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mWebContents.getNavigationController().loadIfNecessary();
}
mIsBeingRestored = true;
-@@ -2840,6 +2843,11 @@ class TabImpl implements Tab {
+@@ -2779,6 +2782,11 @@ class TabImpl implements Tab {
url = webContents.getVisibleUrl();
}
@@ -592,7 +579,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
boolean shouldRequestDesktopSite =
DesktopSiteUtils.shouldOverrideDesktopSite(mProfile, url, getContext());
-@@ -2871,7 +2879,7 @@ class TabImpl implements Tab {
+@@ -2810,7 +2818,7 @@ class TabImpl implements Tab {
}
boolean usingDesktopUserAgent =
getWebContents().getNavigationController().getUseDesktopUserAgent();
@@ -601,8 +588,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
}
/** Sets the TabLaunchType for tabs launched with an unset launch type. */
-@@ -3060,6 +3068,54 @@ class TabImpl implements Tab {
- ResettersForTesting.register(this::clearNativePtr);
+@@ -3005,6 +3013,54 @@ class TabImpl implements Tab {
+ return mImportance;
}
+ int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT;
@@ -659,7 +646,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
-@@ -113,12 +113,8 @@ public class TabUtils {
+@@ -112,12 +112,8 @@ public class TabUtils {
* @param switchToDesktop Whether switching the user agent to desktop.
* @param caller The caller of this method.
*/
@@ -894,7 +881,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl
diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
--- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
+++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
-@@ -17,6 +17,7 @@
+@@ -18,6 +18,7 @@
#include "chrome/browser/flags/android/chrome_feature_list.h"
#include "chrome/browser/preferences/android/chrome_shared_preferences.h"
#include "chrome/browser/profiles/profile.h"
@@ -902,7 +889,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
#include "chrome/common/chrome_switches.h"
#include "components/content_settings/core/common/content_settings_utils.h"
#include "components/content_settings/core/common/pref_names.h"
-@@ -46,6 +47,7 @@ RequestDesktopSiteWebContentsObserverAndroid::
+@@ -47,6 +48,7 @@ RequestDesktopSiteWebContentsObserverAndroid::
host_content_settings_map_ =
HostContentSettingsMapFactory::GetForProfile(profile);
pref_service_ = profile->GetPrefs();
@@ -910,7 +897,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
}
RequestDesktopSiteWebContentsObserverAndroid::
-@@ -60,6 +62,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation(
+@@ -61,6 +63,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation(
return;
}
@@ -948,7 +935,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
-@@ -1361,8 +1361,6 @@ public final class ChromePreferenceKeys {
+@@ -1383,8 +1383,6 @@ public final class ChromePreferenceKeys {
SIGNIN_PROMO_NTP_LAST_SHOWN_TIME,
SYNC_PROMO_TOTAL_SHOW_COUNT,
SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP,
@@ -978,7 +965,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
-@@ -380,6 +380,8 @@ public interface Tab extends TabLifecycle {
+@@ -347,6 +347,8 @@ public interface Tab extends TabLifecycle {
/** Goes to the navigation entry after the current one. */
void goForward();
@@ -990,7 +977,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav
diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
-@@ -183,6 +183,8 @@ public interface TabWindowManager {
+@@ -187,6 +187,8 @@ public interface TabWindowManager {
@Nullable List getGroupedTabsByWindow(
@WindowId int windowId, Token tabGroupId, boolean isIncognito);
@@ -1002,14 +989,14 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
+++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
-@@ -492,6 +492,24 @@ public class TabWindowManagerImpl implements TabWindowManager {
+@@ -469,6 +469,24 @@ public class TabWindowManagerImpl implements TabWindowManager {
return null;
}
+ @Override
+ public void SetOverrideUserAgentForAllTabs(boolean usingDesktopUserAgent) {
-+ for (Map.Entry<@WindowId Integer, WindowDeps> entry : mWindowIdToDeps.entrySet()) {
-+ TabModelSelector selector = entry.getValue().selector;
++ for (Map.Entry<@WindowId Integer, TabModelSelector> entry : mWindowIdToSelectors.entrySet()) {
++ TabModelSelector selector = entry.getValue();
+ if (selector != null) {
+ List models = selector.getModels();
+ for (int modelIndex = 0; modelIndex < models.size(); modelIndex++) {
@@ -1077,7 +1064,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
-@@ -1917,6 +1917,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group";
+@@ -1770,6 +1770,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group";
inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] =
"profile.content_settings.had_three_consecutive_denies.notifications";
@@ -1220,7 +1207,7 @@ diff --git a/components/browser_ui/widget/android/java/src/org/chromium/componen
diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc
--- a/content/browser/renderer_host/navigation_controller_android.cc
+++ b/content/browser/renderer_host/navigation_controller_android.cc
-@@ -222,6 +222,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl(
+@@ -229,6 +229,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl(
bool can_load_local_resources,
bool is_renderer_initiated,
bool should_replace_current_entry,
@@ -1228,7 +1215,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co
const JavaRef& j_initiator_origin,
bool has_user_gesture,
bool should_clear_history_list,
-@@ -320,6 +321,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl(
+@@ -327,6 +328,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl(
params.navigation_ui_data = std::move(navigation_ui_data);
@@ -1241,7 +1228,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co
diff --git a/content/browser/renderer_host/navigation_controller_android.h b/content/browser/renderer_host/navigation_controller_android.h
--- a/content/browser/renderer_host/navigation_controller_android.h
+++ b/content/browser/renderer_host/navigation_controller_android.h
-@@ -68,6 +68,7 @@ class CONTENT_EXPORT NavigationControllerAndroid {
+@@ -69,6 +69,7 @@ class CONTENT_EXPORT NavigationControllerAndroid {
bool can_load_local_resources,
bool is_renderer_initiated,
bool should_replace_current_entry,
@@ -1252,7 +1239,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3827,6 +3827,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3861,6 +3861,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
#if BUILDFLAG(IS_CHROMEOS)
switches::kSchedulerBoostUrgent,
#endif
@@ -1271,7 +1258,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
#include "base/check_op.h"
#include "base/command_line.h"
#include "base/containers/flat_set.h"
-@@ -2402,8 +2403,6 @@ void WebContentsImpl::SetUserAgentOverride(
+@@ -2416,8 +2417,6 @@ void WebContentsImpl::SetUserAgentOverride(
OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride",
"ua_override", ua_override.ua_string_override,
"override_in_new_tabs", override_in_new_tabs);
@@ -1280,7 +1267,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
if (GetUserAgentOverride() == ua_override) {
return;
-@@ -3755,6 +3754,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
+@@ -3769,6 +3768,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
#else
prefs.viewport_meta_enabled = false;
#endif
@@ -1293,7 +1280,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
-@@ -217,6 +217,7 @@ import org.chromium.url.Origin;
+@@ -231,6 +231,7 @@ import java.util.Map;
params.getCanLoadLocalResources(),
params.getIsRendererInitiated(),
params.getShouldReplaceCurrentEntry(),
@@ -1301,7 +1288,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh
params.getInitiatorOrigin(),
params.getHasUserGesture(),
params.getShouldClearHistoryList(),
-@@ -284,13 +285,13 @@ import org.chromium.url.Origin;
+@@ -298,13 +299,13 @@ import java.util.Map;
public void setUseDesktopUserAgent(
boolean override, boolean reloadOnChange, boolean skipOnInitialNavigation) {
if (mNativeNavigationControllerAndroid != 0) {
@@ -1322,7 +1309,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh
NavigationControllerImplJni.get()
.setUseDesktopUserAgent(
-@@ -465,7 +466,7 @@ import org.chromium.url.Origin;
+@@ -479,7 +480,7 @@ import java.util.Map;
@Nullable String dataUrlAsString,
boolean canLoadLocalResources,
boolean isRendererInitiated,
@@ -1334,7 +1321,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
-@@ -790,7 +790,6 @@ void RenderThreadImpl::InitializeRenderer(
+@@ -801,7 +801,6 @@ void RenderThreadImpl::InitializeRenderer(
uint64_t trace_id) {
TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer",
perfetto::TerminatingFlow::Global(trace_id));
diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch
index 32bcba0b..49d8afe6 100644
--- a/build/patches/Viewport-Protection-flag.patch
+++ b/build/patches/Viewport-Protection-flag.patch
@@ -211,7 +211,7 @@ new file mode 100644
diff --git a/components/guest_view/browser/guest_view_base.cc b/components/guest_view/browser/guest_view_base.cc
--- a/components/guest_view/browser/guest_view_base.cc
+++ b/components/guest_view/browser/guest_view_base.cc
-@@ -688,6 +688,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame(
+@@ -689,6 +689,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame(
std::move(attachment_callback).Run();
}
@@ -269,12 +269,12 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/
// Emulated screen size. Typically full / physical size of the device screen
// in DIP. Empty size means using default value: original one for kDesktop
// screen position, equal to |view_size| for kMobile.
-@@ -78,7 +81,8 @@ inline bool operator==(const DeviceEmulationParams& a,
- a.viewport_offset == b.viewport_offset &&
+@@ -82,7 +85,8 @@ inline bool operator==(const DeviceEmulationParams& a,
a.viewport_scale == b.viewport_scale &&
a.viewport_segments == b.viewport_segments &&
-- a.device_posture == b.device_posture;
-+ a.device_posture == b.device_posture &&
+ a.device_posture == b.device_posture &&
+- a.force_android_overlay_scrollbar == b.force_android_overlay_scrollbar;
++ a.force_android_overlay_scrollbar == b.force_android_overlay_scrollbar &&
+ a.force_mobile_calc == b.force_mobile_calc;
}
@@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
-@@ -4523,6 +4523,7 @@
+@@ -4572,6 +4572,7 @@
},
{
name: "opacity",
@@ -290,7 +290,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
compositable: true,
-@@ -4530,7 +4531,6 @@
+@@ -4579,7 +4580,6 @@
field_template: "primitive",
default_value: "1.0",
type_name: "float",
@@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
-@@ -2356,7 +2356,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const {
+@@ -2355,7 +2355,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const {
ComputedStyleBuilder builder = CreateComputedStyleBuilder();
builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual
: EOrder::kLogical);
@@ -338,7 +338,7 @@ diff --git a/third_party/blink/renderer/core/events/mouse_event.h b/third_party/
namespace blink {
-@@ -148,8 +149,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState {
+@@ -147,8 +148,22 @@ class CORE_EXPORT MouseEvent : public UIEventWithKeyState {
// Note that these values are adjusted to counter the effects of zoom, so that
// values exposed via DOM APIs are invariant under zooming.
@@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -1122,7 +1122,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) {
+@@ -1111,7 +1111,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) {
page_popup_ = WebPagePopupImpl::Create(
std::move(popup_widget_host), std::move(widget_host),
std::move(widget_receiver), this, agent_group_scheduler,
@@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
-@@ -1601,7 +1601,12 @@ int LocalDOMWindow::outerHeight() const {
+@@ -1581,7 +1581,12 @@ int LocalDOMWindow::outerHeight() const {
if (frame->IsInFencedFrameTree()) {
return innerHeight();
}
@@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
Page* page = frame->GetPage();
if (!page)
return 0;
-@@ -1626,7 +1631,12 @@ int LocalDOMWindow::outerWidth() const {
+@@ -1606,7 +1611,12 @@ int LocalDOMWindow::outerWidth() const {
if (frame->IsInFencedFrameTree()) {
return innerWidth();
}
@@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
Page* page = frame->GetPage();
if (!page)
return 0;
-@@ -1822,7 +1832,8 @@ double LocalDOMWindow::devicePixelRatio() const {
+@@ -1802,7 +1812,8 @@ double LocalDOMWindow::devicePixelRatio() const {
if (!GetFrame())
return 0.0;
@@ -448,8 +448,8 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
+ return GetFrame()->DevicePixelRatio(/*with_zoom_factor*/false);
}
- ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state,
-@@ -2432,6 +2443,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
+ ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state,
+@@ -2438,6 +2449,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
if (!completed_url.IsEmpty() || result.new_window)
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
@@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
// TODO(japhet): window-open-noopener.html?_top and several tests in
// html/browsers/windows/browsing-context-names/ appear to require that
// the special case target names (_top, _parent, _self) ignore opener
-@@ -2483,6 +2511,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow(
+@@ -2489,6 +2517,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow(
DCHECK(result.new_window);
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
@@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -432,7 +432,8 @@ class CORE_EXPORT LocalFrame final
+@@ -438,7 +438,8 @@ class CORE_EXPORT LocalFrame final
void SetInViewSourceMode(bool = true);
void SetLayoutZoomFactor(float);
@@ -547,7 +547,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
void SetTextZoomFactor(float);
float TextZoomFactor() const { return text_zoom_factor_; }
void SetCssZoomFactor(float);
-@@ -441,7 +442,7 @@ class CORE_EXPORT LocalFrame final
+@@ -447,7 +448,7 @@ class CORE_EXPORT LocalFrame final
float text_zoom_factor,
float css_zoom_factor);
@@ -556,7 +556,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
// Informs the local root's document and its local descendant subtree that a
// media query value changed.
-@@ -1101,6 +1102,7 @@ class CORE_EXPORT LocalFrame final
+@@ -1107,6 +1108,7 @@ class CORE_EXPORT LocalFrame final
unsigned did_run_detach_impl_ : 1 = false;
float layout_zoom_factor_;
@@ -662,7 +662,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
-@@ -1959,6 +1959,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
+@@ -1958,6 +1958,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) {
DeviceEmulator()->UpdateVisualProperties(visual_properties);
@@ -681,7 +681,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
diff --git a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
--- a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc
-@@ -361,7 +361,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties(
+@@ -360,7 +360,8 @@ void WebRemoteFrameImpl::InitializeFrameVisualProperties(
visual_properties.page_scale_factor = ancestor_widget->PageScaleInMainFrame();
visual_properties.is_pinch_gesture_active =
ancestor_widget->PinchGestureActiveInMainFrame();
@@ -735,7 +735,7 @@ diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
-@@ -107,6 +107,13 @@
+@@ -108,6 +108,13 @@
#include "ui/color/color_provider_utils.h"
#include "ui/gfx/geometry/insets_conversions.h"
@@ -749,7 +749,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
namespace blink {
namespace {
-@@ -1269,7 +1276,96 @@ void Page::UpdateAcceleratedCompositingSettings() {
+@@ -1280,7 +1287,96 @@ void Page::UpdateAcceleratedCompositingSettings() {
}
}
@@ -849,7 +849,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h
--- a/third_party/blink/renderer/core/page/page.h
+++ b/third_party/blink/renderer/core/page/page.h
-@@ -538,6 +538,10 @@ class CORE_EXPORT Page final : public GarbageCollected,
+@@ -536,6 +536,10 @@ class CORE_EXPORT Page final : public GarbageCollected,
// related pages will include the new page instead of the old page, etc.
void TakePropertiesForLocalMainFrameSwap(Page* old_page);
@@ -875,7 +875,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
-@@ -2110,6 +2110,12 @@ class ComputedStyle final : public ComputedStyleBase {
+@@ -2117,6 +2117,12 @@ class ComputedStyle final : public ComputedStyleBase {
IsRunningBackdropFilterAnimationOnCompositor();
}
diff --git a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch
index bd7c277e..0930d3e3 100644
--- a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch
+++ b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch
@@ -4,12 +4,13 @@ Subject: WIN Add some prefs to secure preferences
---
chrome/browser/prefs/chrome_pref_service_factory.cc | 8 ++++++++
- 1 file changed, 8 insertions(+)
+ services/preferences/tracked/pref_hash_filter.cc | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
-@@ -119,6 +119,14 @@ bool g_disable_domain_check_for_testing = false;
+@@ -118,6 +118,14 @@ bool g_disable_domain_check_for_testing = false;
// See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a
// deprecated tracked preference.
const auto kTrackedPrefs = std::to_array({
@@ -24,4 +25,16 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
{0, prefs::kShowHomeButton, EnforcementLevel::ENFORCE_ON_LOAD,
PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL},
{1, prefs::kHomePageIsNewTabPage, EnforcementLevel::ENFORCE_ON_LOAD,
+diff --git a/services/preferences/tracked/pref_hash_filter.cc b/services/preferences/tracked/pref_hash_filter.cc
+--- a/services/preferences/tracked/pref_hash_filter.cc
++++ b/services/preferences/tracked/pref_hash_filter.cc
+@@ -131,7 +131,7 @@ PrefHashFilter::PrefHashFilter(
+ base::FeatureList::IsEnabled(tracked::kEncryptedPrefHashing)) {
+ // For base::UmaHistogramExactLinear, number of tracked histograms must 100 or
+ // below.
+- CHECK_LE(reporting_ids_count_, 100u);
++ //CHECK_LE(reporting_ids_count_, 100u);
+ DCHECK(pref_hash_store_);
+ DCHECK_GE(reporting_ids_count, tracked_preferences.size());
+ // Verify that, if |external_validation_hash_store_pair_| is present, both its
--
diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch
index ed6a23a6..aa3c1e7a 100644
--- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch
+++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch
@@ -10,8 +10,7 @@ attacks, so it is better to warn the user of the presence of an
unsupported device.
you can remove the message by going to chrome://flags/#no-hw-aes-warning
---
- base/base_switches.cc | 2 ++
- base/base_switches.h | 1 +
+ base/base_switches.h | 2 ++
chrome/BUILD.gn | 3 +++
chrome/app/chrome_main_delegate.cc | 9 +++++++++
chrome/app/generated_resources.grd | 4 ++++
@@ -20,38 +19,27 @@ you can remove the message by going to chrome://flags/#no-hw-aes-warning
.../Warning-message-for-unsupported-hardware-aes.inc | 10 ++++++++++
.../Warning-message-for-unsupported-hardware-aes.inc | 4 ++++
.../Warning-message-for-unsupported-hardware-aes.inc | 1 +
- 10 files changed, 44 insertions(+)
+ 9 files changed, 43 insertions(+)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Warning-message-for-unsupported-hardware-aes.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Warning-message-for-unsupported-hardware-aes.inc
create mode 100644 cromite_flags/content/public/common/content_features_h/Warning-message-for-unsupported-hardware-aes.inc
-diff --git a/base/base_switches.cc b/base/base_switches.cc
---- a/base/base_switches.cc
-+++ b/base/base_switches.cc
-@@ -187,6 +187,8 @@ const char kPackageVersionName[] = "package-version-name";
-
- const char kDesktopModeViewportMetaEnabled[] = "dm-viewport-meta-enabled";
-
-+const char kNoAESHardware[] = "no-aes-hardware";
-+
- #if BUILDFLAG(IS_CHROMEOS)
- // Override the default scheduling boosting value for urgent tasks.
- // This can be adjusted if a specific chromeos device shows better perf/power
diff --git a/base/base_switches.h b/base/base_switches.h
--- a/base/base_switches.h
+++ b/base/base_switches.h
-@@ -34,6 +34,7 @@ extern const char kTraceToFileName[];
- extern const char kV[];
- extern const char kVModule[];
- extern const char kWaitForDebugger[];
-+extern const char kNoAESHardware[];
+@@ -130,6 +130,8 @@ inline constexpr char kWaitForDebugger[] = "wait-for-debugger";
+ // See flag_descriptions.cc for more details.
+ inline constexpr char kEnableBenchmarking[] = "enable-benchmarking";
++inline constexpr char kNoAESHardware[] = "no-aes-hardware";
++
#if BUILDFLAG(IS_WIN)
- extern const char kDisableHighResTimer[];
+ // Disable high-resolution timer on Windows.
+ inline constexpr char kDisableHighResTimer[] = "disable-highres-timer";
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
-@@ -431,6 +431,7 @@ if (is_win) {
+@@ -437,6 +437,7 @@ if (is_win) {
"//components/webapps/isolated_web_apps:scheme",
"//content/public/app",
"//crypto",
@@ -59,7 +47,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
"//net:net_resources",
"//sandbox/win:sandbox",
"//third_party/cld_3/src/src:cld_3",
-@@ -1636,6 +1637,8 @@ if (is_android) {
+@@ -1646,6 +1647,8 @@ if (is_android) {
"//chrome/common/profiler",
"//chrome/gpu",
"//chrome/renderer",
@@ -71,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
-@@ -100,6 +100,9 @@
+@@ -101,6 +101,9 @@
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/resource/scoped_startup_resource_bundle.h"
#include "ui/base/ui_base_switches.h"
@@ -81,7 +69,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \
BUILDFLAG(IS_MAC)
-@@ -1102,6 +1105,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() {
+@@ -1104,6 +1107,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() {
}
#endif
@@ -97,7 +85,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
-@@ -7373,6 +7373,10 @@ Keep your key file in a safe place. You will need it to create new versions of y
+@@ -7383,6 +7383,10 @@ Keep your key file in a safe place. You will need it to create new versions of y
You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer.
@@ -111,7 +99,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc
--- a/chrome/browser/ui/startup/bad_flags_prompt.cc
+++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
-@@ -287,6 +287,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) {
+@@ -288,6 +288,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) {
return;
}
}
@@ -130,7 +118,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3832,6 +3832,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3866,6 +3866,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kSchedulerBoostUrgent,
#endif
switches::kDesktopModeViewportMetaEnabled,
diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch
index 9604b3e5..d5372c55 100644
--- a/build/patches/Welcome-screen.patch
+++ b/build/patches/Welcome-screen.patch
@@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -525,6 +525,7 @@ chrome_java_resources = [
+@@ -524,6 +524,7 @@ chrome_java_resources = [
"java/res/layout/find_in_page.xml",
"java/res/layout/find_toolbar.xml",
"java/res/layout/fre_tos_privacy_disclaimer.xml",
@@ -43,7 +43,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -661,6 +661,8 @@ chrome_java_sources = [
+@@ -673,6 +673,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
"java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java",
"java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java",
@@ -309,10 +309,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
-import org.chromium.chrome.browser.signin.SigninCheckerProvider;
-import org.chromium.chrome.browser.signin.SigninFirstRunFragment;
+import org.chromium.chrome.browser.firstrun.ToSAndUMAFirstRunFragment;
+ import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout;
- import org.chromium.chrome.browser.ui.signin.SigninUtils;
-@@ -236,7 +236,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
+@@ -237,7 +237,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
/** Creates first page and sets up adapter. Should result UI being shown on the screen. */
private void createFirstPage() {
BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage();
@@ -321,7 +321,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN);
mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages);
mPager.setAdapter(mPagerAdapter);
-@@ -261,9 +261,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
+@@ -262,9 +262,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
//
// TODO(b/245912657): explicitly sign in supervised users in {@link
// FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker.
@@ -331,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
assumeNonNull(mFreProperties);
mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties);
-@@ -279,16 +276,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
+@@ -280,16 +277,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN);
}
@@ -345,10 +345,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
- mPages.add(new FirstRunPage<>(HistorySyncFirstRunFragment.class, showHistorySync));
- mFreProgressStates.add(MobileFreProgress.HISTORY_SYNC_OPT_IN_SHOWN);
-
- if (mPagerAdapter != null) {
- mPagerAdapter.notifyDataSetChanged();
- }
-@@ -515,6 +502,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
+ if (ChromeFeatureList.sDefaultBrowserPromoFre.isEnabled()) {
+ BooleanSupplier showDefaultBrowserPromo =
+ () -> {
+@@ -536,6 +523,21 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
return true;
}
@@ -370,7 +370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
// Activity:
@Override
public void onRestoreInstanceState(@Nullable Bundle state) {
-@@ -662,11 +664,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
+@@ -683,11 +685,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) {
assert mNativeInitializationPromise.isFulfilled();
@@ -518,7 +518,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
-@@ -41,6 +41,7 @@ public class FirstRunUtils {
+@@ -43,6 +43,7 @@ public class FirstRunUtils {
* collect stats.
*/
static void acceptTermsOfService(boolean allowMetricsAndCrashUploading) {
diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch
index 62a9c054..1459212f 100644
--- a/build/patches/add-browser-policy.patch
+++ b/build/patches/add-browser-policy.patch
@@ -43,11 +43,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/base/win/win_util.cc b/base/win/win_util.cc
--- a/base/win/win_util.cc
+++ b/base/win/win_util.cc
-@@ -152,80 +152,18 @@ bool EnablePerMonitorV2() {
+@@ -155,80 +155,18 @@ bool EnablePerMonitorV2() {
}
bool* GetDomainEnrollmentStateStorage() {
-- static bool state = IsOS(OS_DOMAINMEMBER);
+- static bool state = ::IsOS(OS_DOMAINMEMBER);
+ static bool state = false;
return &state;
}
@@ -130,7 +130,7 @@ diff --git a/base/win/win_util.cc b/base/win/win_util.cc
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -84,9 +84,7 @@ by a child template that "extends" this file.
+@@ -81,9 +81,7 @@ by a child template that "extends" this file.
@@ -140,7 +140,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -112,7 +110,6 @@ by a child template that "extends" this file.
+@@ -109,7 +107,6 @@ by a child template that "extends" this file.
resizeTo, moveBy}|).
-->
@@ -148,7 +148,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -159,7 +156,6 @@ by a child template that "extends" this file.
+@@ -162,7 +159,6 @@ by a child template that "extends" this file.
@@ -229,7 +229,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
-@@ -2530,9 +2530,9 @@ bool AreFuturePoliciesEnabledByDefault() {
+@@ -2518,9 +2518,9 @@ bool AreFuturePoliciesEnabledByDefault() {
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
return true;
}
@@ -242,7 +242,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
}
} // namespace
-@@ -3378,7 +3378,10 @@ std::unique_ptr BuildHandlerList(
+@@ -3382,7 +3382,10 @@ std::unique_ptr BuildHandlerList(
key::kExtensionInstallCloudPolicyChecksEnabled,
extensions::pref_names::kExtensionInstallCloudPolicyChecksEnabled,
base::Value::Type::BOOLEAN));
@@ -257,16 +257,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
-@@ -170,7 +170,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() {
- // static
- bool AccountConsistencyModeManager::ShouldBuildServiceForProfile(
- Profile* profile) {
-- return profile->IsRegularProfile();
-+ return false;
- }
-
- AccountConsistencyMethod
-@@ -201,7 +201,8 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod(
+@@ -93,7 +93,8 @@ signin::AccountConsistencyMethod ComputeAccountConsistencyMethod(
#endif
#if BUILDFLAG(ENABLE_MIRROR)
@@ -276,7 +267,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/
#elif BUILDFLAG(ENABLE_DICE_SUPPORT)
if (!profile->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) {
VLOG(1) << "Desktop Identity Consistency disabled as sign-in to Chrome "
-@@ -209,7 +210,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod(
+@@ -101,7 +102,7 @@ signin::AccountConsistencyMethod ComputeAccountConsistencyMethod(
return AccountConsistencyMethod::kDisabled;
}
@@ -285,6 +276,15 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/
#else
NOTREACHED();
#endif
+@@ -195,7 +196,7 @@ void AccountConsistencyModeManager::SetIgnoreMissingOAuthClientForTesting() {
+ // static
+ bool AccountConsistencyModeManager::ShouldBuildServiceForProfile(
+ Profile* profile) {
+- return profile->IsRegularProfile();
++ return false;
+ }
+
+ AccountConsistencyMethod
diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b/chrome/browser/signin/account_consistency_mode_manager_factory.cc
--- a/chrome/browser/signin/account_consistency_mode_manager_factory.cc
+++ b/chrome/browser/signin/account_consistency_mode_manager_factory.cc
@@ -339,7 +339,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
-@@ -293,7 +293,9 @@ void ChromeSigninClient::DoFinalInit() {
+@@ -289,7 +289,9 @@ void ChromeSigninClient::DoFinalInit() {
bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) {
scoped_refptr cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
@@ -350,7 +350,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign
}
PrefService* ChromeSigninClient::GetPrefs() {
-@@ -411,6 +413,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() {
+@@ -407,6 +409,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() {
}
void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) {
@@ -370,8 +370,8 @@ diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/sig
-const char kDiceTokenBindingOutcomeHistogram[] =
+[[maybe_unused]] const char kDiceTokenBindingOutcomeHistogram[] =
"Signin.DiceTokenBindingOutcome";
-
- // Used for UMA. Do not reorder, append new values at the end.
+ const char kDiceEnableSyncHeaderAccountInfoIsPresent[] =
+ "Signin.DiceEnableSyncHeaderAccountInfoIsPresent";
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
--- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc
@@ -510,7 +510,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse
diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h
--- a/chrome/browser/ui/webui/policy/policy_ui_handler.h
+++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h
-@@ -81,6 +81,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler,
+@@ -80,6 +80,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler,
private:
void HandleExportPoliciesJson(const base::ListValue& args);
@@ -534,7 +534,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp
diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc
--- a/components/commerce/core/commerce_feature_list.cc
+++ b/components/commerce/core/commerce_feature_list.cc
-@@ -68,56 +68,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() {
+@@ -67,56 +67,6 @@ const CountryLocaleMap& GetAllowedCountryToLocaleMap() {
return *allowed_map;
}
@@ -591,7 +591,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
} // namespace
BASE_FEATURE(kCommerceAllowLocalImages, base::FEATURE_DISABLED_BY_DEFAULT);
-@@ -279,16 +229,15 @@ const base::FeatureParam kRevertIconOnFailure{
+@@ -252,16 +202,15 @@ const base::FeatureParam kRevertIconOnFailure{
&kShoppingList, kRevertIconOnFailureParam, false};
bool IsPartnerMerchant(const GURL& url) {
@@ -611,7 +611,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
}
bool IsCartDiscountFeatureEnabled() {
-@@ -340,6 +289,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature,
+@@ -313,6 +262,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature,
bool IsRegionLockedFeatureEnabled(const base::Feature& feature,
const std::string& country_code,
const std::string& locale) {
@@ -619,7 +619,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
auto* feature_list = base::FeatureList::GetInstance();
// If the feature has a server-side config, this check will ensure that
-@@ -372,6 +322,7 @@ base::TimeDelta GetDiscountFetchDelay() {
+@@ -345,6 +295,7 @@ base::TimeDelta GetDiscountFetchDelay() {
}
bool IsNoDiscountMerchant(const GURL& url) {
@@ -627,7 +627,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
auto* pattern_from_component =
commerce_heuristics::CommerceHeuristicsData::GetInstance()
.GetNoDiscountMerchantPattern();
-@@ -383,4 +334,6 @@ bool IsNoDiscountMerchant(const GURL& url) {
+@@ -356,4 +307,6 @@ bool IsNoDiscountMerchant(const GURL& url) {
return RE2::PartialMatch(url.host(), *pattern_from_component);
}
#endif
@@ -972,7 +972,7 @@ diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
-@@ -72,6 +72,7 @@ BASE_FEATURE(kNtpCalendarModule, base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -66,6 +66,7 @@ BASE_FEATURE(kNtpCalendarModule, base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, chrome cart module will be shown.
BASE_FEATURE(kNtpChromeCartModule, base::FEATURE_ENABLED_BY_DEFAULT);
@@ -995,7 +995,7 @@ diff --git a/components/signin/features.gni b/components/signin/features.gni
diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc
--- a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc
+++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc
-@@ -462,6 +462,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) {
+@@ -461,6 +461,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) {
}
void GaiaCookieManagerService::InitCookieListener() {
@@ -1004,7 +1004,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser
DCHECK(!cookie_listener_receiver_.is_bound());
network::mojom::CookieManager* cookie_manager =
-@@ -856,6 +858,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished(
+@@ -855,6 +857,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished(
}
void GaiaCookieManagerService::HandleNextRequest() {
diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch
index 816fc997..00f658f5 100644
--- a/build/patches/autofill-miscellaneous.patch
+++ b/build/patches/autofill-miscellaneous.patch
@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptions
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -1131,10 +1131,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() {
+@@ -1130,10 +1130,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() {
autofill::AutofillCrowdsourcingManager*
ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() {
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
-@@ -458,15 +458,6 @@ ChromeAutofillClient::GetURLLoaderFactory() {
+@@ -463,15 +463,6 @@ ChromeAutofillClient::GetURLLoaderFactory() {
->GetURLLoaderFactoryForBrowserProcess();
}
@@ -74,7 +74,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h
--- a/chrome/browser/ui/autofill/chrome_autofill_client.h
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.h
-@@ -118,7 +118,6 @@ class ChromeAutofillClient : public ContentAutofillClient {
+@@ -122,7 +122,6 @@ class ChromeAutofillClient : public ContentAutofillClient {
version_info::Channel GetChannel() const final;
bool IsOffTheRecord() const final;
scoped_refptr GetURLLoaderFactory() final;
@@ -219,7 +219,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci
diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc
--- a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc
+++ b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc
-@@ -426,9 +426,6 @@ void VotesUploader::UploadVote(
+@@ -517,9 +517,6 @@ void VotesUploader::UploadVote(
client_->GetUkmRecorder(), ukm_source_id, *submitted_form,
submission_timestamp);
}
@@ -232,7 +232,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/
diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h
--- a/components/autofill/core/browser/foundations/autofill_client.h
+++ b/components/autofill/core/browser/foundations/autofill_client.h
-@@ -303,10 +303,6 @@ class AutofillClient {
+@@ -309,10 +309,6 @@ class AutofillClient {
// Returns the VotesUploader.
virtual VotesUploader& GetVotesUploader() = 0;
@@ -246,7 +246,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co
diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc
--- a/components/autofill/core/browser/foundations/autofill_manager.cc
+++ b/components/autofill/core/browser/foundations/autofill_manager.cc
-@@ -317,12 +317,6 @@ void AutofillManager::QueryServerPredictions(
+@@ -315,12 +315,6 @@ void AutofillManager::QueryServerPredictions(
// StartQueryRequest() expects to include the queried forms. This would allow
// StartQueryRequest() to provide the queried forms to the callback
// automatically, instead of passing them in separately here.
@@ -259,7 +259,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
}
void AutofillManager::OnFormsParsed(const std::vector& forms,
-@@ -359,19 +353,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms,
+@@ -357,19 +351,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms,
features::kAutofillServerQueryPredictionsEarly)) {
return;
}
@@ -282,14 +282,14 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
-@@ -825,6 +825,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion,
+@@ -886,6 +886,7 @@ BASE_FEATURE(kAutofillPopupDontAcceptNonVisibleEnoughSuggestion,
// affect their functionality.
BASE_FEATURE(kAutofillPopupZOrderSecuritySurface,
base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_ENABLED(kAutofillPopupZOrderSecuritySurface);
- // Replaces cached web elements in AutofillAgent and FormTracker by their
- // renderer ids.
+ // When enabled, we prefer a `PHONE_HOME_COUNTRY_CODE` heuristic type over a
+ // `HtmlFieldType::kCountryCode`.
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch
index ace245fb..6459a7a0 100644
--- a/build/patches/bromite-build-utils.patch
+++ b/build/patches/bromite-build-utils.patch
@@ -19,8 +19,9 @@ Subject: bromite build utils
.../browser/flags/CromiteNativeUtils.java | 46 ++++++++
mojo/public/tools/mojom/mojom_parser.py | 22 +++-
tools/grit/grit/grd_reader.py | 27 ++++-
+ tools/grit/grit_rule.gni | 2 +-
tools/grit/preprocess_if_expr.py | 32 +++++-
- 17 files changed, 538 insertions(+), 19 deletions(-)
+ 18 files changed, 539 insertions(+), 20 deletions(-)
create mode 100644 build/bromite/bromite_utils.gni
create mode 100644 build/bromite/gyp/cpp_bromite_include.py
create mode 100644 build/bromite/gyp/cpp_bromite_include.pydeps
@@ -755,6 +756,18 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
if self.debug:
print("End parsing of element %s" % name)
+diff --git a/tools/grit/grit_rule.gni b/tools/grit/grit_rule.gni
+--- a/tools/grit/grit_rule.gni
++++ b/tools/grit/grit_rule.gni
+@@ -360,7 +360,7 @@ template("grit") {
+ _gritdeps_lines = read_file(invoker.gritdeps, "list lines")
+ _gritdeps_entries = filter_exclude(_gritdeps_lines, [ "#*" ])
+ inputs += rebase_path(_gritdeps_entries, ".", "//")
+- deps += [ ":$_check_gritdeps_target" ]
++ #deps += [ ":$_check_gritdeps_target" ]
+ }
+ }
+
diff --git a/tools/grit/preprocess_if_expr.py b/tools/grit/preprocess_if_expr.py
--- a/tools/grit/preprocess_if_expr.py
+++ b/tools/grit/preprocess_if_expr.py
diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch
index 8f757bdf..bbf0c315 100644
--- a/build/patches/disable-WebView-variations-support.patch
+++ b/build/patches/disable-WebView-variations-support.patch
@@ -29,7 +29,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
-@@ -677,10 +677,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
+@@ -691,10 +691,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
// This must happen after pref value has been read and SafeMode setup has completed.
setupStartupTaskExperiments(androidXConfig);
diff --git a/build/patches/disable-appending-variations-header.patch b/build/patches/disable-appending-variations-header.patch
index 0395130c..f0df06e3 100644
--- a/build/patches/disable-appending-variations-header.patch
+++ b/build/patches/disable-appending-variations-header.patch
@@ -4,22 +4,19 @@ Subject: disable appending variations header
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
- components/variations/net/variations_http_headers.cc | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
+ components/variations/net/variations_http_headers.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/variations/net/variations_http_headers.cc b/components/variations/net/variations_http_headers.cc
--- a/components/variations/net/variations_http_headers.cc
+++ b/components/variations/net/variations_http_headers.cc
-@@ -120,10 +120,7 @@ URLValidationResult GetUrlValidationResult(const GURL& url) {
- // Also, logs the result of validating |url| in histograms, one of which ends in
- // |suffix|.
- bool ShouldAppendVariationsHeader(const GURL& url, const std::string& suffix) {
-- URLValidationResult result = GetUrlValidationResult(url);
-- base::UmaHistogramEnumeration(
-- "Variations.Headers.URLValidationResult." + suffix, result);
-- return result == URLValidationResult::kShouldAppend;
-+ return false;
+@@ -131,7 +131,7 @@ bool ShouldAppendVariationsHeader(const GURL& url, InIncognito incognito) {
+ // exactly www.googleadservices.com or
+ // international TLD domains *.google. or *.youtube..
+ // 2. Only transmit for non-Incognito profiles.
+- return incognito == InIncognito::kNo &&
++ return ((false)) && incognito == InIncognito::kNo &&
+ GetUrlValidationResult(url) == URLValidationResult::kShouldAppend;
}
- // Returns true if the request is sent from a Google web property, i.e. from a
--
diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch
index 7875b39a..d02202be 100644
--- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch
+++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
-@@ -149,12 +149,12 @@ const size_t kMaxHostLength = 4096;
+@@ -148,12 +148,12 @@ const size_t kMaxHostLength = 4096;
// Time between IPv6 probes, i.e. for how long results of each IPv6 probe are
// cached.
diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch
index 89d025f7..6764ac85 100644
--- a/build/patches/do-not-block-build-incompatible-profiles.patch
+++ b/build/patches/do-not-block-build-incompatible-profiles.patch
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/v8/BUILD.gn b/v8/BUILD.gn
--- a/v8/BUILD.gn
+++ b/v8/BUILD.gn
-@@ -2766,7 +2766,7 @@ template("run_mksnapshot") {
+@@ -2820,7 +2820,7 @@ template("run_mksnapshot") {
# Replace this with --warn-about-builtin-profile-data to see the full
# list of builtins with incompatible profiles.
diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch
index e1cd09c5..eb2e74b7 100644
--- a/build/patches/enable-ftrivial-auto-var-init-zero.patch
+++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch
@@ -11,15 +11,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
-@@ -481,6 +481,10 @@ config("compiler") {
- cflags += [ "-fwrapv" ]
- }
+@@ -440,6 +440,10 @@ config("compiler") {
+ # --------------------------------
+ cflags += [ "-fno-strict-aliasing" ] # See http://crbug.com/32204
+ if (is_clang) {
+ cflags += [ "-ftrivial-auto-var-init=zero", "-Wno-unused-command-line-argument" ]
+ }
+
- # Linker warnings.
- if (fatal_linker_warnings && !is_apple && current_os != "aix" &&
- current_os != "zos") {
+ # Stack protection. ShadowCallStack and Stack protector address the same
+ # problems. Therefore, we only enable one or the other. Clang advertises SCS as
+ # a stronger alternative to StackProtector, so we give SCS precedence over SP.
--
diff --git a/build/patches/eyeo-133.0.6943.49-android_api.patch b/build/patches/eyeo-133.0.6943.49-android_api.patch
index c8b579f3..5b5cdc22 100644
--- a/build/patches/eyeo-133.0.6943.49-android_api.patch
+++ b/build/patches/eyeo-133.0.6943.49-android_api.patch
@@ -53,7 +53,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
import("//build/config/android/config.gni")
import("//build/config/cronet/config.gni")
-@@ -561,6 +564,7 @@ if (_is_default_toolchain) {
+@@ -570,6 +573,7 @@ if (_is_default_toolchain) {
"//chrome/browser/xsurface:java",
"//chrome/browser/xsurface_provider:dependency_provider_impl_java",
"//chrome/browser/xsurface_provider:java",
@@ -61,7 +61,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/android_autofill/browser:java",
"//components/autofill/android:autofill_features_java",
"//components/autofill/android:autofill_java",
-@@ -1497,6 +1501,7 @@ if (_is_default_toolchain) {
+@@ -1514,6 +1518,7 @@ if (_is_default_toolchain) {
"//chrome/test/data/translate/",
"//chrome/test/data/webauthn/",
"//chrome/test/media_router/resources/",
@@ -69,7 +69,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/test/data/autofill/",
"//components/test/data/payments/",
"//content/test/data/browsing_data/",
-@@ -3098,6 +3103,12 @@ if (_is_default_toolchain) {
+@@ -3125,6 +3130,12 @@ if (_is_default_toolchain) {
sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerManagerBridge.java" ]
}
@@ -82,7 +82,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
# Used for testing only, should not be shipped to end users.
if (enable_offline_pages_harness) {
sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ]
-@@ -3189,6 +3200,7 @@ if (_is_default_toolchain) {
+@@ -3216,6 +3227,7 @@ if (_is_default_toolchain) {
"//chrome/browser/ui/plus_addresses/android:jni_headers",
"//chrome/browser/util:jni_headers",
"//chrome/browser/webauthn/android:jni_headers",
@@ -103,10 +103,10 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
import("//content/public/common/features.gni")
-@@ -62,6 +65,7 @@ chrome_java_sources = [
- "java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsBridge.java",
- "java/src/org/chromium/chrome/browser/accessibility/settings/CaretBrowsingDialog.java",
+@@ -66,6 +69,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java",
+ "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceControllerImpl.java",
+ "java/src/org/chromium/chrome/browser/actor/ActorForegroundServiceImpl.java",
+ "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java",
"java/src/org/chromium/chrome/browser/ai/AiAssistantService.java",
"java/src/org/chromium/chrome/browser/ai/PageSummaryButtonController.java",
@@ -155,7 +155,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -3339,6 +3339,10 @@ static_library("browser") {
+@@ -3234,6 +3234,10 @@ static_library("browser") {
]
deps += [ "//chrome/browser/password_entry_edit/android" ]
@@ -217,7 +217,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -1045,6 +1045,12 @@ static_library("ui") {
+@@ -1076,6 +1076,12 @@ static_library("ui") {
deps += [
"//components/themes:ntp_background_proto",
]
diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch
index b9857581..7021d286 100644
--- a/build/patches/eyeo-133.0.6943.49-android_settings.patch
+++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch
@@ -237,7 +237,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -276,6 +276,10 @@ if (_is_default_toolchain) {
+@@ -281,6 +281,10 @@ if (_is_default_toolchain) {
deps += [ "//chrome/browser:screen_capture_java_resources" ]
}
@@ -248,7 +248,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
if (enable_extensions_core) {
deps += [ "//chrome/browser/ui/android/extensions:java_resources" ]
}
-@@ -811,6 +815,10 @@ if (_is_default_toolchain) {
+@@ -820,6 +824,10 @@ if (_is_default_toolchain) {
"//chrome/browser/password_entry_edit:public_java",
]
@@ -272,10 +272,10 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
-->
+ android:order="16" />
+ bypass_redirect_checks
: bypass_redirect_checks_;
@@ -50232,7 +50232,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
#include "content/browser/renderer_host/render_frame_host_impl.h"
-@@ -3795,6 +3799,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod(
+@@ -3822,6 +3826,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod(
std::move(callback));
}
@@ -50259,7 +50259,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br
#ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_
#define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_
-@@ -516,6 +520,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
+@@ -515,6 +519,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
const std::u16string& method_name,
base::ListValue arguments,
JavaScriptResultCallback callback) override;
@@ -50282,7 +50282,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser
#ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
#define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
-@@ -566,6 +570,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener {
+@@ -571,6 +575,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener {
virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
const std::string& message) = 0;
@@ -50376,7 +50376,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
import("//build/config/cast.gni")
import("//build/config/chromeos/ui_mode.gni")
-@@ -179,6 +182,10 @@ inspector_protocol_generate("protocol_sources") {
+@@ -178,6 +181,10 @@ inspector_protocol_generate("protocol_sources") {
static_library("content_shell_lib") {
testonly = true
sources = [
@@ -50387,7 +50387,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"browser/protocol/browser_handler.cc",
"browser/protocol/browser_handler.h",
"browser/protocol/domain_handler.h",
-@@ -248,6 +255,7 @@ static_library("content_shell_lib") {
+@@ -247,6 +254,7 @@ static_library("content_shell_lib") {
"browser/shell_platform_delegate_android.cc",
"browser/shell_web_contents_view_delegate_android.cc",
]
@@ -50395,7 +50395,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
}
if (is_mac) {
-@@ -328,6 +336,8 @@ static_library("content_shell_lib") {
+@@ -327,6 +335,8 @@ static_library("content_shell_lib") {
":shell_controller_mojom",
"//base",
"//base:base_static",
@@ -50404,7 +50404,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"//components/cdm/renderer",
"//components/custom_handlers",
"//components/custom_handlers:test_support",
-@@ -347,6 +357,7 @@ static_library("content_shell_lib") {
+@@ -346,6 +356,7 @@ static_library("content_shell_lib") {
"//components/services/storage/test_api",
"//components/surface_embed/buildflags",
"//components/url_formatter",
@@ -50412,7 +50412,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"//components/variations/service",
"//components/web_cache/renderer",
"//content:content_resources",
-@@ -442,6 +453,7 @@ static_library("content_shell_lib") {
+@@ -441,6 +452,7 @@ static_library("content_shell_lib") {
"//mojo/public/java/system:test_support",
"//ui/android",
]
@@ -50420,7 +50420,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
}
if (shell_use_toolkit_views) {
-@@ -532,6 +544,8 @@ repack("pak") {
+@@ -531,6 +543,8 @@ repack("pak") {
sources = [
"$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak",
@@ -50429,7 +50429,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"$root_gen_dir/components/ukm_resources.pak",
"$root_gen_dir/content/attribution_internals_resources.pak",
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
-@@ -565,6 +579,8 @@ repack("pak") {
+@@ -564,6 +578,8 @@ repack("pak") {
deps = [
":resources",
"//base/tracing/protos:chrome_track_event_resources",
@@ -50858,7 +50858,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin
module blink.mojom;
-@@ -1009,6 +1013,10 @@ interface LocalFrame {
+@@ -1007,6 +1011,10 @@ interface LocalFrame {
// the given point in the view coordinate space.
PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action);
@@ -50883,7 +50883,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub
#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_
#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_
-@@ -159,6 +163,14 @@ class BLINK_EXPORT WebDocument : public WebNode {
+@@ -160,6 +164,14 @@ class BLINK_EXPORT WebDocument : public WebNode {
WebCssOrigin = WebCssOrigin::kAuthor,
BackForwardCacheAware = BackForwardCacheAware::kAllow);
@@ -50912,7 +50912,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_
#include "third_party/blink/renderer/core/dom/events/event_target.h"
#include
-@@ -851,7 +855,10 @@ bool EventTarget::dispatchEventForBindings(Event* event,
+@@ -852,7 +856,10 @@ bool EventTarget::dispatchEventForBindings(Event* event,
if (!GetExecutionContext())
return false;
@@ -50927,7 +50927,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_
diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc
--- a/third_party/blink/renderer/core/exported/web_document.cc
+++ b/third_party/blink/renderer/core/exported/web_document.cc
-@@ -279,6 +279,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet(
+@@ -304,6 +304,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet(
return injection_key;
}
@@ -51038,7 +51038,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
-@@ -2942,7 +2942,13 @@ void HTMLElement::setSpellcheck(bool enable) {
+@@ -3010,7 +3010,13 @@ void HTMLElement::setSpellcheck(bool enable) {
}
void HTMLElement::click() {
@@ -51067,12 +51067,12 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur
#include "third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h"
#include
-@@ -396,7 +400,7 @@ void MojoURLLoaderClient::OnReceiveRedirect(
- return;
- }
-
-- if (!bypass_redirect_checks_ &&
-+ if (!bypass_redirect_checks_ && !redirect_info.bypass_redirect_checks &&
+@@ -401,7 +405,7 @@ void MojoURLLoaderClient::OnReceiveRedirect(
+ // since the redirect target is never loaded or executed.
+ bool is_manual_redirect = response_head->response_type ==
+ network::mojom::FetchResponseType::kOpaqueRedirect;
+- if (!bypass_redirect_checks_ && !is_manual_redirect &&
++ if (!bypass_redirect_checks_ && !is_manual_redirect && !redirect_info.bypass_redirect_checks &&
!Platform::Current()->IsRedirectSafe(GURL(last_loaded_url_),
redirect_info.new_url,
redirect_info.original_initiator)) {
@@ -51717,7 +51717,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_
# This file is used to assign starting resource ids for resources and strings
# used by Chromium. This is done to ensure that resource ids are unique
# across all the grd files. If you are adding a new grd file, please add
-@@ -1271,6 +1275,14 @@
+@@ -1287,6 +1291,14 @@
"components/user_scripts/browser/resources/browser_resources.grd": {
"includes": [7625],
},
@@ -51746,7 +51746,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr
-->
+@@ -208,7 +212,7 @@ Called by update_extension_histograms.py.-->
@@ -51755,7 +51755,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr
-@@ -3267,6 +3271,8 @@ Called by update_extension_permission.py.-->
+@@ -3276,6 +3280,8 @@ Called by update_extension_permission.py.-->
diff --git a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch
index 3659124e..454d03e0 100644
--- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch
+++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch
@@ -41,7 +41,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
#include "chrome/app/chrome_main_delegate.h"
-@@ -37,6 +41,7 @@
+@@ -38,6 +42,7 @@
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "build/build_config.h"
@@ -49,7 +49,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
#include "chrome/browser/buildflags.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_resource_bundle_helper.h"
-@@ -1612,7 +1617,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() {
+@@ -1628,7 +1633,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() {
content::ContentBrowserClient*
ChromeMainDelegate::CreateContentBrowserClient() {
chrome_content_browser_client_ =
@@ -71,7 +71,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
import("//base/allocator/allocator.gni")
import("//build/buildflag_header.gni")
-@@ -208,6 +211,8 @@ static_library("browser") {
+@@ -209,6 +212,8 @@ static_library("browser") {
"accessibility/page_colors_controller_factory.h",
"accessibility/prefers_default_scrollbar_styles_prefs.cc",
"accessibility/prefers_default_scrollbar_styles_prefs.h",
@@ -80,7 +80,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"after_startup_task_utils.cc",
"after_startup_task_utils.h",
"bad_message.cc",
-@@ -2058,6 +2063,7 @@ static_library("browser") {
+@@ -1982,6 +1987,7 @@ static_library("browser") {
"//chrome/common/notifications",
"//chrome/installer/util:with_no_strings",
"//chrome/services/speech/buildflags",
@@ -88,13 +88,13 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"//components/application_locale_storage",
"//components/assist_ranker",
"//components/autofill/content/browser",
-@@ -8490,6 +8496,7 @@ static_library("browser_public_dependencies") {
+@@ -8363,6 +8369,7 @@ static_library("browser_public_dependencies") {
"//chrome/services/file_util/public/mojom",
+ "//components/accessibility_annotator/core",
"//components/account_id",
- "//components/autofill/content/browser",
+ "//components/adblock/content:browser",
+ "//components/autofill/content/browser",
"//components/autofill/core/browser",
- "//components/commerce/core/product_specifications",
"//components/compose/core/browser:mojo_bindings",
diff --git a/chrome/browser/adblock/README.md b/chrome/browser/adblock/README.md
new file mode 100644
@@ -194,7 +194,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
#include "components/color/color_mixers.h"
#include "components/device_event_log/device_event_log.h"
#include "components/embedder_support/origin_trials/component_updater_utils.h"
-@@ -1824,6 +1829,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
+@@ -1845,6 +1850,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// called inside PostProfileInit.
content::WebUIControllerFactory::RegisterFactory(
ChromeWebUIControllerFactory::GetInstance());
@@ -224,7 +224,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL
configs += [
"//build/config:precompiled_headers",
"//build/config/compiler:wexit_time_destructors",
-@@ -834,6 +838,7 @@ source_set("extensions") {
+@@ -837,6 +841,7 @@ source_set("extensions") {
]
}
@@ -267,7 +267,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
#include "chrome/browser/prefs/chrome_pref_service_factory.h"
-@@ -45,6 +49,7 @@
+@@ -44,6 +48,7 @@
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/browser_resources.h"
#include "chrome/grit/generated_resources.h"
@@ -275,7 +275,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
#include "components/component_updater/pref_names.h"
#include "components/policy/core/browser/configuration_policy_pref_store.h"
#include "components/pref_registry/pref_registry_syncable.h"
-@@ -199,6 +204,12 @@ const auto kTrackedPrefs = std::to_array({
+@@ -198,6 +203,12 @@ const auto kTrackedPrefs = std::to_array({
EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC,
ValueType::IMPERSONAL},
#endif
@@ -302,7 +302,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h"
-@@ -251,6 +255,15 @@
+@@ -264,6 +268,15 @@
#include "chrome/browser/webid/federated_identity_permission_context_factory.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_features.h"
@@ -318,7 +318,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "components/autofill/content/browser/autofill_log_router_factory.h"
#include "components/breadcrumbs/core/breadcrumbs_status.h"
#include "components/captive_portal/core/buildflags.h"
-@@ -959,6 +972,15 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -974,6 +987,15 @@ void ChromeBrowserMainExtraPartsProfiles::
FederatedIdentityApiPermissionContextFactory::GetInstance();
FederatedIdentityAutoReauthnPermissionContextFactory::GetInstance();
FederatedIdentityPermissionContextFactory::GetInstance();
@@ -347,10 +347,10 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
-@@ -313,6 +316,7 @@ group("dev_ui_resources") {
- "predictors:resources",
+@@ -312,6 +315,7 @@ group("dev_ui_resources") {
"privacy_sandbox/internals:resources",
"usb_internals:resources",
+ "webnn_internals:resources",
+ "//components/adblock/content/resources/adblock_internals:resources",
"//components/commerce/core/internals/resources",
"//components/data_sharing/data_sharing_internals/resources",
@@ -376,7 +376,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
import("//build/config/buildflags_paint_preview.gni")
import("//build/config/compiler/compiler.gni")
-@@ -410,6 +413,7 @@ static_library("ui") {
+@@ -435,6 +438,7 @@ static_library("ui") {
"//chrome/installer/util:with_no_strings",
"//components/access_code_cast/common:metrics",
"//components/account_id",
@@ -435,7 +435,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
#include "chrome/browser/ui/tab_helpers.h"
-@@ -103,6 +107,8 @@
+@@ -106,6 +110,8 @@
#include "chrome/common/chrome_features.h"
#include "chrome/common/chrome_isolated_world_ids.h"
#include "chrome/common/chrome_switches.h"
@@ -444,7 +444,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
#include "components/blocked_content/popup_blocker_tab_helper.h"
#include "components/blocked_content/popup_opener_tab_helper.h"
#include "components/breadcrumbs/core/breadcrumbs_status.h"
-@@ -343,6 +349,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -346,6 +352,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
optimization_guide_decider);
}
}
@@ -457,7 +457,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
autofill::AutofillClientProvider& autofill_client_provider =
autofill::AutofillClientProviderFactory::GetForProfile(profile);
autofill_client_provider.CreateClientForWebContents(web_contents);
-@@ -371,6 +383,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -374,6 +386,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
// completions.
HttpAuthCacheStatus::HttpAuthCacheStatus::CreateForWebContents(web_contents);
#endif // BUILDFLAG(IS_ANDROID)
@@ -478,16 +478,16 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
import("//ash/ambient/resources/resources.gni")
import("//build/config/chrome_build.gni")
-@@ -124,6 +127,7 @@ template("chrome_extra_paks") {
- "$root_gen_dir/chrome/common_resources.pak",
+@@ -128,6 +131,7 @@ template("chrome_extra_paks") {
+ "$root_gen_dir/chrome/glic_shared_resources.pak",
"$root_gen_dir/chrome/saved_tab_groups_unsupported_resources.pak",
"$root_gen_dir/chrome/segmentation_internals_resources.pak",
+ "$root_gen_dir/components/adblock/core/resources/adblock_resources.pak",
"$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak",
"$root_gen_dir/components/autofill/core/browser/geo/autofill_alternative_state_name_map_resources.pak",
"$root_gen_dir/components/autofill_and_password_manager_internals_resources.pak",
-@@ -164,6 +168,7 @@ template("chrome_extra_paks") {
- "//chrome/browser/resources",
+@@ -172,6 +176,7 @@ template("chrome_extra_paks") {
+ "//chrome/browser/resources/glic/shared:resources",
"//chrome/browser/resources/saved_tab_groups_unsupported:resources",
"//chrome/common:resources",
+ "//components/adblock/core/resources:adblock_resources",
diff --git a/build/patches/eyeo-133.0.6943.49-extension_api.patch b/build/patches/eyeo-133.0.6943.49-extension_api.patch
index 72b58516..08d33972 100644
--- a/build/patches/eyeo-133.0.6943.49-extension_api.patch
+++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch
@@ -37,7 +37,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
-@@ -838,6 +838,17 @@ source_set("extensions") {
+@@ -841,6 +841,17 @@ source_set("extensions") {
]
}
@@ -2470,7 +2470,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com
"autofillPrivate": {
"channel": "trunk",
"extension_types": ["extension", "platform_app"],
-@@ -411,6 +422,13 @@
+@@ -410,6 +421,13 @@
// "desktop_android" is not supported.
"platforms": ["chromeos", "linux", "mac", "win"]
},
@@ -2682,7 +2682,7 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens
import("//chrome/common/features.gni")
import("//components/guest_view/buildflags/buildflags.gni")
-@@ -41,6 +44,8 @@ schema_sources_ = [
+@@ -42,6 +45,8 @@ schema_sources_ = [
"tabs.json",
"web_authentication_proxy.webidl",
"web_navigation.json",
diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch
index bfc20c8c..2bda9c7a 100644
--- a/build/patches/kill-Location-fall-back-to-system.patch
+++ b/build/patches/kill-Location-fall-back-to-system.patch
@@ -57,7 +57,7 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge
diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc
--- a/services/device/public/cpp/device_features.cc
+++ b/services/device/public/cpp/device_features.cc
-@@ -58,6 +58,7 @@ BASE_FEATURE(kLocationProviderManager, base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -69,6 +69,7 @@ BASE_FEATURE(kLocationProviderManager, base::FEATURE_ENABLED_BY_DEFAULT);
#else
BASE_FEATURE(kLocationProviderManager, base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
@@ -65,7 +65,7 @@ diff --git a/services/device/public/cpp/device_features.cc b/services/device/pub
#if BUILDFLAG(IS_ANDROID)
// Enables registering & unregistering of the Battery Status Manager broadcast
-@@ -102,7 +103,7 @@ const base::FeatureParam
+@@ -113,7 +114,7 @@ const base::FeatureParam
const base::FeatureParam
kLocationProviderManagerParam{
&kLocationProviderManager, "LocationProviderManagerMode",
diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch
index e8b22de0..26eab947 100644
--- a/build/patches/kill-Vision.patch
+++ b/build/patches/kill-Vision.patch
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -306,8 +306,6 @@ if (_is_default_toolchain) {
+@@ -311,8 +311,6 @@ if (_is_default_toolchain) {
"$google_play_services_package:google_play_services_gcm_java",
"$google_play_services_package:google_play_services_iid_java",
"$google_play_services_package:google_play_services_tasks_java",
diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch
index 9029d38a..7a1a0fbd 100644
--- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch
+++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch
@@ -23,7 +23,7 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ
namespace {
-@@ -324,8 +325,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time,
+@@ -325,8 +326,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time,
}
bool NetworkTimeTracker::AreTimeFetchesEnabled() const {
diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch
index 059f91c7..7c497ad8 100644
--- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch
+++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch
@@ -7,14 +7,14 @@ Added some Bromite-specific further improvements
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/BUILD.gn | 2 --
- chrome/browser/profiles/profile_attributes_entry.cc | 6 ------
+ chrome/browser/profiles/profile_attributes_entry.cc | 8 --------
chrome/browser/profiles/profile_attributes_storage.cc | 2 +-
- 3 files changed, 1 insertion(+), 9 deletions(-)
+ 3 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -1206,8 +1206,6 @@ static_library("browser") {
+@@ -1037,8 +1037,6 @@ static_library("browser") {
"profiles/force_youtube_safety_mode_policy_handler.h",
"profiles/off_the_record_profile_impl.cc",
"profiles/off_the_record_profile_impl.h",
@@ -26,14 +26,16 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
--- a/chrome/browser/profiles/profile_attributes_entry.cc
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
-@@ -380,12 +380,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon(
+@@ -370,14 +370,6 @@ ProfileAttributesEntry::GetAvatarIconWithType(
int size_for_placeholder_avatar,
bool use_high_res_file,
const PlaceholderAvatarIconParams& icon_params) const {
- if (IsUsingGAIAPicture()) {
-- const gfx::Image* image = GetGAIAPicture();
-- if (image)
-- return *image;
+- // The picture may be null if it has not finished downloading yet; in that
+- // case fall through to return the avatar-index-based icon below.
+- if (const gfx::Image* image = GetGAIAPicture()) {
+- return {*image, AvatarIconType::kNonPlaceholder};
+- }
- }
-
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS)
diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch
index 1a2cd49b..5a4db6b1 100644
--- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch
+++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch
@@ -100,9 +100,9 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse
private static final String TAG = "LanguageSettings";
@@ -113,35 +106,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment
- ContentLanguagesPreference mLanguageListPref =
+ ContentLanguagesPreference languageListPref =
(ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY);
- mLanguageListPref.initialize(this, getProfile(), getPrefService());
+ languageListPref.initialize(this, getProfile(), getPrefService());
-
- ChromeSwitchPreference translateSwitch =
- (ChromeSwitchPreference) findPreference(TRANSLATE_SWITCH_KEY);
@@ -115,7 +115,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- boolean enabled = (boolean) newValue;
- getPrefService().setBoolean(Pref.OFFER_TRANSLATE_ENABLED, enabled);
-- mLanguageListPref.notifyPrefChanged();
+- languageListPref.notifyPrefChanged();
- LanguagesManager.recordAction(
- enabled
- ? LanguagesManager.LanguageSettingsActionType
@@ -136,11 +136,11 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse
/**
@@ -156,8 +120,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment
- ContentLanguagesPreference mLanguageListPref =
+ ContentLanguagesPreference languageListPref =
(ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY);
- mLanguageListPref.initialize(this, getProfile(), getPrefService());
+ languageListPref.initialize(this, getProfile(), getPrefService());
-
-- setupTranslateSection(mLanguageListPref);
+- setupTranslateSection(languageListPref);
}
/** Setup the App Language section with a title and preference to choose the app language. */
@@ -285,7 +285,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1987,9 +1987,6 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -2060,9 +2060,6 @@ Your Google account may have other forms of browsing history like searches and a
Let websites know the languages you speak. They’ll show content in those languages, when possible.
diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch
index e8a11a88..5b5fc24d 100644
--- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch
+++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
-@@ -148,7 +148,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -151,7 +151,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false);
registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls);
diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch
index b1217767..f0a05c36 100644
--- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch
+++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/chrome_browser_main.cc | 10 -
.../browser/chrome_content_browser_client.cc | 29 +-
...ent_browser_client_navigation_throttles.cc | 1 -
- .../domain_reliability/service_factory.cc | 33 +-
+ .../domain_reliability/service_factory.cc | 28 +-
.../key_management/browser/commands/BUILD.gn | 1 -
.../commands/win_key_rotation_command.cc | 9 +-
chrome/browser/extensions/BUILD.gn | 1 -
@@ -71,21 +71,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
...gled-chromium-no-special-hosts-domains.inc | 1 +
net/base/url_util.cc | 25 +-
services/network/network_context.cc | 2 +-
- 64 files changed, 57 insertions(+), 892 deletions(-)
+ 64 files changed, 56 insertions(+), 888 deletions(-)
create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
-@@ -124,7 +124,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils;
+@@ -124,7 +124,6 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
+ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils;
import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordinator;
- import org.chromium.chrome.browser.omnibox.OmniboxActionDelegateImpl;
import org.chromium.chrome.browser.omnibox.OmniboxChipManager;
-import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader;
+ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl;
import org.chromium.chrome.browser.open_in_app.OpenInAppEntryPoint;
import org.chromium.chrome.browser.open_in_app.OpenInAppMenuItemProvider;
- import org.chromium.chrome.browser.open_in_app.OpenInAppUtils;
-@@ -1499,10 +1498,8 @@ public class RootUiCoordinator
+@@ -1553,10 +1552,8 @@ public class RootUiCoordinator
Profile profile = tab.getProfile();
TemplateUrlService service = TemplateUrlServiceFactory.getForProfile(profile);
String url = service.getUrlForSearchQuery(query);
@@ -99,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -830,10 +830,6 @@ static_library("browser") {
+@@ -726,10 +726,6 @@ static_library("browser") {
"page_load_metrics/observers/captcha_metrics_observer.h",
"page_load_metrics/observers/captcha_provider_manager.cc",
"page_load_metrics/observers/captcha_provider_manager.h",
@@ -110,7 +110,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"page_load_metrics/observers/core/amp_page_load_metrics_observer.cc",
"page_load_metrics/observers/core/amp_page_load_metrics_observer.h",
"page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc",
-@@ -842,10 +838,6 @@ static_library("browser") {
+@@ -738,10 +734,6 @@ static_library("browser") {
"page_load_metrics/observers/document_write_page_load_metrics_observer.h",
"page_load_metrics/observers/foreground_duration_ukm_observer.cc",
"page_load_metrics/observers/foreground_duration_ukm_observer.h",
@@ -121,7 +121,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"page_load_metrics/observers/histogram_suffixes.cc",
"page_load_metrics/observers/histogram_suffixes.h",
"page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc",
-@@ -1434,8 +1426,6 @@ static_library("browser") {
+@@ -1261,8 +1253,6 @@ static_library("browser") {
"supervised_user/metrics_service_accessor_delegate.h",
"supervised_user/supervised_user_browser_utils.cc",
"supervised_user/supervised_user_browser_utils.h",
@@ -130,25 +130,25 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"supervised_user/supervised_user_interstitial_tab_closer.cc",
"supervised_user/supervised_user_interstitial_tab_closer.h",
"supervised_user/supervised_user_metrics_service_factory.cc",
-@@ -1546,10 +1536,7 @@ static_library("browser") {
- "//chrome/browser/content_settings:impl",
+@@ -1379,10 +1369,7 @@ static_library("browser") {
+ "//chrome/browser/enterprise/browser_management:management_identity_impl",
"//chrome/browser/devtools",
- "//chrome/browser/favicon",
+ "//chrome/browser/favicon:impl",
- "//chrome/browser/feedback",
- "//chrome/browser/feedback:feedback_impl",
"//chrome/browser/file_system_access:impl",
- "//chrome/browser/google",
- "//chrome/browser/media/webrtc",
- "//chrome/browser/navigation_predictor:impl",
-@@ -1730,7 +1717,6 @@ static_library("browser") {
+ # TODO(crbug.com/486309771): Remove this circular dependency when
+ # chrome_metrics_service_accessor.h gets extracted into its own target.
+@@ -1592,7 +1579,6 @@ static_library("browser") {
# should be added to browser_generated_files.
":browser_public_dependencies",
":chrome_content_browser_client_parts",
- "//chrome/browser/google",
"//chrome/browser/headless",
- "//chrome/browser/profiles",
- "//chrome/browser/ui/tabs:tab_enums",
+ "//chrome/browser/history_embeddings",
+ "//chrome/browser/interstitials",
diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browser/android/metrics/uma_session_stats.cc
--- a/chrome/browser/android/metrics/uma_session_stats.cc
+++ b/chrome/browser/android/metrics/uma_session_stats.cc
@@ -172,7 +172,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
-@@ -1359,7 +1359,6 @@ BrowserProcessImpl::component_updater() {
+@@ -1366,7 +1366,6 @@ BrowserProcessImpl::component_updater() {
std::make_unique();
std::string brand;
@@ -183,7 +183,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
-@@ -501,11 +501,6 @@ void ProcessSingletonNotificationCallbackImpl(
+@@ -508,11 +508,6 @@ void ProcessSingletonNotificationCallbackImpl(
StartupBrowserCreator::ProcessCommandLineAlreadyRunning(
command_line, current_directory, startup_profile_path_info);
@@ -195,7 +195,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
}
// Handles notifications from other processes. The function receives the
-@@ -2014,11 +2009,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
+@@ -2035,11 +2030,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
upgrade_util::SaveLastModifiedTimeOfExe();
#endif
@@ -210,7 +210,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -2971,7 +2971,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -3041,7 +3041,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
switches::kForceAppMode,
#endif
switches::kForceUIDirection,
@@ -218,7 +218,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
switches::kJavaScriptHarmony,
switches::kEnableExperimentalWebAssemblyFeatures,
embedder_support::kOriginTrialDisabledFeatures,
-@@ -5777,7 +5776,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) {
+@@ -5859,7 +5858,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) {
}
#endif
@@ -228,7 +228,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(IS_ANDROID)
const std::string& client_data_header,
#endif
-@@ -5817,7 +5817,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle(
+@@ -5899,7 +5899,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle(
std::move(bound_session_request_throttled_handler),
#endif
std::move(dynamic_params));
@@ -237,7 +237,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
std::vector>
ChromeContentBrowserClient::CreateURLLoaderThrottles(
-@@ -5874,15 +5874,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
+@@ -5956,15 +5956,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles(
GetClientDataHeader(frame_tree_node_id);
#endif
@@ -253,7 +253,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
{
auto* factory =
ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context);
-@@ -5927,20 +5918,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive(
+@@ -6009,20 +6000,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive(
Profile* profile = Profile::FromBrowserContext(browser_context);
DCHECK(profile);
@@ -288,7 +288,7 @@ diff --git a/chrome/browser/chrome_content_browser_client_navigation_throttles.c
diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/browser/domain_reliability/service_factory.cc
--- a/chrome/browser/domain_reliability/service_factory.cc
+++ b/chrome/browser/domain_reliability/service_factory.cc
-@@ -14,40 +14,11 @@
+@@ -10,36 +10,10 @@
namespace domain_reliability {
@@ -301,27 +301,22 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows
-const char kFieldTrialName[] = "DomRel-Enable";
-const char kFieldTrialValueEnable[] = "enable";
-
--bool IsDomainReliabilityAllowed() {
-- return g_browser_process->local_state()->GetBoolean(
-- prefs::kDomainReliabilityAllowedByPolicy);
--}
--
-} // namespace
-
-+// Identifies Chrome as the source of Domain Reliability uploads it sends.
const char kUploadReporterString[] = "chrome";
- bool ShouldCreateService() {
+ bool ShouldCreateService(const DomainReliabilityServiceDelegate* delegate) {
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- if (command_line->HasSwitch(switches::kDisableDomainReliability))
- return false;
- if (command_line->HasSwitch(switches::kEnableDomainReliability))
- return true;
-- if (!IsDomainReliabilityAllowed()) {
+- if (!delegate->IsDomainReliabilityAllowed()) {
- return false;
- }
-- if (!ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled())
+- if (!delegate->IsMetricsAndCrashReportingEnabled()) {
- return false;
+- }
- if (base::FieldTrialList::TrialExists(kFieldTrialName)) {
- std::string value = base::FieldTrialList::FindFullName(kFieldTrialName);
- return (value == kFieldTrialValueEnable);
@@ -365,7 +360,7 @@ diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/br
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
-@@ -515,7 +515,6 @@ source_set("extensions") {
+@@ -516,7 +516,6 @@ source_set("extensions") {
"//chrome/browser/extensions/api:api_registration",
"//chrome/browser/favicon",
"//chrome/browser/gcm",
@@ -376,14 +371,14 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL
diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn
--- a/chrome/browser/feedback/BUILD.gn
+++ b/chrome/browser/feedback/BUILD.gn
-@@ -112,7 +112,6 @@ source_set("feedback_impl") {
+@@ -118,7 +118,6 @@ source_set("feedback_impl") {
"//chrome/browser/devtools",
"//chrome/browser/extensions",
"//chrome/browser/first_party_sets",
- "//chrome/browser/google",
+ "//chrome/browser/metrics",
"//chrome/browser/performance_manager/public/user_tuning",
"//chrome/browser/signin",
- "//chrome/browser/sync",
diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
--- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
+++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
@@ -448,7 +443,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn
diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc
--- a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc
+++ b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc
-@@ -37,13 +37,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB.
+@@ -36,13 +36,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB.
// Host/regex pattern for Google AMP Cache URLs.
// See https://developers.google.com/amp/cache/overview#amp-cache-url-format
// for a definition of the format of AMP Cache URLs.
@@ -462,7 +457,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c
const char kGoogleNewsPathPattern[] = "/articles/(.*)";
} // namespace
-@@ -242,26 +240,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) {
+@@ -240,26 +238,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) {
return false;
}
@@ -492,7 +487,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
-@@ -635,7 +635,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() {
+@@ -638,7 +638,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() {
}
bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) {
@@ -678,7 +673,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
--- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
-@@ -203,14 +203,9 @@ void PageLoadMetricsEmbedder::RegisterObservers(
+@@ -212,14 +212,9 @@ void PageLoadMetricsEmbedder::RegisterObservers(
tracker->AddObserver(std::make_unique());
tracker->AddObserver(std::make_unique());
tracker->AddObserver(std::make_unique());
@@ -707,7 +702,7 @@ diff --git a/chrome/browser/profile_resetter/BUILD.gn b/chrome/browser/profile_r
diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc
--- a/chrome/browser/profile_resetter/profile_resetter.cc
+++ b/chrome/browser/profile_resetter/profile_resetter.cc
-@@ -102,8 +102,7 @@ ProfileResetter::ProfileResetter(Profile* profile)
+@@ -103,8 +103,7 @@ ProfileResetter::ProfileResetter(Profile* profile)
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(profile_);
@@ -720,7 +715,7 @@ diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browse
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
-@@ -29,7 +29,6 @@ static_library("safe_browsing") {
+@@ -30,7 +30,6 @@ static_library("safe_browsing") {
"//build:branding_buildflags",
"//chrome/app:generated_resources",
"//chrome/browser:browser_process",
@@ -778,18 +773,18 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -293,7 +293,6 @@ static_library("ui") {
- "//chrome/browser/feedback:feedback_impl",
- "//chrome/browser/file_system_access",
- "//chrome/browser/gcm",
+@@ -308,7 +308,6 @@ static_library("ui") {
+ "//chrome/browser/glic/actor",
+ "//chrome/browser/glic/fre",
+ "//chrome/browser/glic/public:features",
- "//chrome/browser/google",
+ "//chrome/browser/gpu",
+ "//chrome/browser/hang_monitor",
"//chrome/browser/history",
- "//chrome/browser/image_decoder",
- "//chrome/browser/image_fetcher",
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
-@@ -69,8 +69,6 @@ android_library("java") {
+@@ -77,8 +77,6 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxTabUtils.java",
"java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxViewBinder.java",
"java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxViewHolder.java",
@@ -801,7 +796,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
-@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
+@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma;
import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator;
import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.FuseboxState;
@@ -809,7 +804,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction;
import org.chromium.chrome.browser.omnibox.status.StatusView;
-@@ -549,7 +548,6 @@ public class LocationBarCoordinator
+@@ -540,7 +539,6 @@ public class LocationBarCoordinator
mLocationBarMediator.destroy();
mLocationBarMediator = null;
@@ -820,7 +815,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
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
-@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate;
+@@ -72,7 +72,6 @@ import org.chromium.chrome.browser.omnibox.fusebox.FuseboxAttachmentModelList;
import org.chromium.chrome.browser.omnibox.fusebox.FuseboxAttachmentModelList.FuseboxAttachmentChangeListener;
import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator;
import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.FuseboxState;
@@ -828,7 +823,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
-@@ -423,22 +422,6 @@ class LocationBarMediator
+@@ -419,22 +418,6 @@ class LocationBarMediator
if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus);
@@ -851,7 +846,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
if (!hasFocus && mLocationBarDataProvider.hasTab()) {
setUrl(
mLocationBarDataProvider.getCurrentGurl(),
-@@ -455,8 +438,6 @@ class LocationBarMediator
+@@ -451,8 +434,6 @@ class LocationBarMediator
Profile profile = mProfileSupplier.get();
assert profile != null;
templateUrlService.addObserver(this);
@@ -860,7 +855,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}));
mLocationBarLayout.onFinishNativeInitialization();
-@@ -737,14 +718,6 @@ class LocationBarMediator
+@@ -736,14 +717,6 @@ class LocationBarMediator
// ContentView.
if (currentTab != null && !url.isEmpty()) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url);
@@ -875,7 +870,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
loadUrlParams.setTransitionType(
omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR);
if (omniboxLoadUrlParams.inputStartTimestamp != 0) {
-@@ -2114,7 +2087,6 @@ class LocationBarMediator
+@@ -2128,7 +2101,6 @@ class LocationBarMediator
if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()
&& profile != null
&& templateUrlService != null) {
@@ -883,7 +878,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
}
-@@ -2122,7 +2094,6 @@ class LocationBarMediator
+@@ -2136,7 +2108,6 @@ class LocationBarMediator
public void onPauseWithNative() {
OmniboxFeatures.updateLastExitTimestamp();
if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) {
@@ -905,7 +900,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
-@@ -777,12 +777,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) {
+@@ -778,12 +778,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(
// chrome-untrusted://new-tab-page for other external content and resources.
// NOTE: Use caution when overriding content security policies as that cean
// lead to subtle security bugs such as https://crbug.com/1251541.
@@ -921,7 +916,7 @@ diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/br
diff --git a/chrome/browser/ui/webui/ntp/new_tab_ui.cc b/chrome/browser/ui/webui/ntp/new_tab_ui.cc
--- a/chrome/browser/ui/webui/ntp/new_tab_ui.cc
+++ b/chrome/browser/ui/webui/ntp/new_tab_ui.cc
-@@ -203,8 +203,7 @@ std::string NewTabUI::NewTabHTMLSource::GetContentSecurityPolicy(
+@@ -202,8 +202,7 @@ std::string NewTabUI::NewTabHTMLSource::GetContentSecurityPolicy(
network::mojom::CSPDirectiveName directive) {
if (directive == network::mojom::CSPDirectiveName::ScriptSrc) {
// 'unsafe-inline' and google resources are added to script-src.
@@ -939,10 +934,10 @@ diff --git a/chrome/browser/upgrade_detector/BUILD.gn b/chrome/browser/upgrade_d
"//base:build_time",
"//chrome/browser:buildflags",
- "//chrome/browser/google",
+ "//chrome/browser/obsolete_system",
"//content/public/browser",
]
- } else {
-@@ -201,7 +200,6 @@ source_set("unit_tests") {
+@@ -202,7 +201,6 @@ source_set("unit_tests") {
deps += [
"//base:i18n",
@@ -969,7 +964,7 @@ diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/b
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
-@@ -144,8 +144,6 @@ static_library("common_lib") {
+@@ -143,8 +143,6 @@ static_library("common_lib") {
"content_restriction.h",
"crash_keys.cc",
"crash_keys.h",
@@ -1015,14 +1010,14 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
-@@ -7064,7 +7064,6 @@ test("unit_tests") {
- "//chrome/browser/first_party_sets",
- "//chrome/browser/gcm",
- "//chrome/browser/gcm:unit_tests",
+@@ -7155,7 +7155,6 @@ test("unit_tests") {
+ "//chrome/browser/glic",
+ "//chrome/browser/glic:unit_tests",
+ "//chrome/browser/glic/test_support",
- "//chrome/browser/google:unit_tests",
"//chrome/browser/history",
- "//chrome/browser/media:unittests",
- "//chrome/browser/media/prefs",
+ "//chrome/browser/history_clusters",
+ "//chrome/browser/history_clusters:unit_tests",
diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn
--- a/components/domain_reliability/BUILD.gn
+++ b/components/domain_reliability/BUILD.gn
@@ -1701,7 +1696,7 @@ diff --git a/components/page_load_metrics/google/browser/google_url_util.cc b/co
diff --git a/components/search_engines/search_engine_utils.cc b/components/search_engines/search_engine_utils.cc
--- a/components/search_engines/search_engine_utils.cc
+++ b/components/search_engines/search_engine_utils.cc
-@@ -26,6 +26,7 @@ bool SameDomain(const GURL& given_url, const GURL& prepopulated_url) {
+@@ -43,6 +43,7 @@ bool HasSameDomainUrl(const GURL& given_url,
SearchEngineType GetEngineType(const GURL& url) {
DCHECK(url.is_valid());
@@ -1972,7 +1967,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
-@@ -3110,7 +3110,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
+@@ -3153,7 +3153,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
}
#endif // BUILDFLAG(IS_CT_SUPPORTED)
diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch
index 8cd4c4a2..0bd03516 100644
--- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch
+++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch
@@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
-@@ -142,7 +142,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -145,7 +145,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
false);
#endif
registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy,