diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 71b68aa7..4016f4eb 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + - .../browser/tabmodel/TabPersistentStore.java | 9 + + .../tabmodel/TabPersistentStoreImpl.java | 7 + .../browser/toolbar/ToolbarManager.java | 3 +- .../webapps/WebappIntentDataProvider.java | 15 ++ .../browser/android/historical_tab_saver.cc | 24 ++- @@ -71,7 +71,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/ui/native_page/NativePage.java | 17 +- .../browser/omnibox/LocationBarMediator.java | 8 + .../strings/android_chrome_strings.grd | 25 +++ - .../browser/toolbar/LocationBarModel.java | 4 +- + .../browser/toolbar/LocationBarModel.java | 3 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + .../snackbar/INeedSnackbarManager.java | 28 +++ .../search_engine_tab_helper.cc | 6 + @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 69 files changed, 791 insertions(+), 103 deletions(-) + 69 files changed, 788 insertions(+), 103 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -101,7 +101,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 -@@ -638,6 +638,7 @@ chrome_java_resources = [ +@@ -650,6 +650,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", @@ -120,7 +120,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -925,6 +926,7 @@ chrome_java_sources = [ +@@ -936,6 +937,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", @@ -257,9 +257,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.IntentHandler.ExternalAppId; import org.chromium.chrome.browser.IntentHandler.TabOpenType; - import org.chromium.chrome.browser.app.ChromeActivity; -@@ -837,15 +841,20 @@ public class ChromeTabbedActivity extends ChromeActivity { - } + import org.chromium.chrome.browser.accessibility.settings.CaretBrowsingDialog; +@@ -825,15 +829,20 @@ public class ChromeTabbedActivity extends ChromeActivity { + BrowserWindowType.NORMAL, currentTabModel, mMultiInstanceManager); // For saving non-incognito tab closures for Recent Tabs. - mHistoricalTabModelObserver = @@ -286,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -3299,7 +3308,7 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3274,7 +3283,7 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine SupportedProfileType in onPreCreate(). // We determine the model as soon as possible so every systems get initialized coherently. @@ -298,7 +298,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/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 -@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH +@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; @@ -306,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; -@@ -2076,6 +2077,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2144,6 +2145,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -328,7 +328,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -635,8 +637,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -633,8 +635,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -351,7 +351,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ContextMenuItemType; -@@ -430,6 +431,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -437,6 +438,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { mShowEphemeralTabNewLabel = null; mCustomActionMap.clear(); @@ -361,7 +361,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -501,7 +505,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -508,7 +512,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -422,7 +422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -248,6 +249,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -445,7 +445,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1287,6 +1290,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1328,6 +1331,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -585,7 +585,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java -@@ -20,6 +20,14 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -21,6 +21,14 @@ import org.chromium.components.embedder_support.util.UrlConstants; import java.util.function.Supplier; @@ -600,8 +600,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Native page for managing browsing history. */ @NullMarked public class HistoryPage extends BasicNativePage { -@@ -49,6 +57,14 @@ public class HistoryPage extends BasicNativePage { - String url) { +@@ -51,6 +59,14 @@ public class HistoryPage extends BasicNativePage { + BackPressManager backPressManager) { super(host); + if (profile.isOffTheRecord() && @@ -626,7 +626,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -396,7 +397,8 @@ public class NativePageFactory { +@@ -411,7 +412,8 @@ public class NativePageFactory { NativePage page; @@ -1006,7 +1006,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ai.AiAssistantService; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; -@@ -241,7 +242,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -242,7 +243,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // When the feature is enabled, show either "New Incognito tab" in incognito mode // or "New tab" in normal mode. When the feature is disabled, show both. @@ -1019,16 +1019,16 @@ 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/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 -@@ -210,6 +210,8 @@ import org.chromium.content_public.common.ContentSwitches; +@@ -209,6 +209,8 @@ import org.chromium.content_public.common.ContentSwitches; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.ui.base.IntentRequestTracker; - import org.chromium.ui.base.LocalizationUtils; + import org.chromium.ui.base.UiAndroidFeatureList; import org.chromium.ui.display.DisplayUtil; -@@ -1281,7 +1283,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1257,7 +1259,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1040,7 +1040,7 @@ 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/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -56,6 +56,10 @@ import org.chromium.url.GURL; +@@ -55,6 +55,10 @@ import org.chromium.url.GURL; import java.util.Collections; import java.util.function.Supplier; @@ -1049,9 +1049,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome +import org.chromium.chrome.browser.tab.TabObserver; + /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ - @NullMarked - public class ChromeTabCreator extends TabCreator -@@ -587,7 +591,6 @@ public class ChromeTabCreator extends TabCreator + public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabModelOrderController { + /** +@@ -594,7 +598,6 @@ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabMode // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public @Nullable Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1079,19 +1079,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod TabCreator regularTabCreator = getTabCreatorManager().getTabCreator(false); TabCreator incognitoTabCreator = getTabCreatorManager().getTabCreator(true); mRecentlyClosedBridge = -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -61,6 +61,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils; - import org.chromium.components.embedder_support.util.UrlUtilities; - import org.chromium.content_public.browser.LoadUrlParams; - +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java +@@ -32,6 +32,7 @@ import org.chromium.base.task.TaskTraits; + import org.chromium.build.annotations.Initializer; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; -+ - import java.io.BufferedInputStream; - import java.io.ByteArrayInputStream; - import java.io.DataInputStream; -@@ -837,6 +839,13 @@ public class TabPersistentStore { + import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton; + import org.chromium.chrome.browser.crypto.CipherFactory; + import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -750,6 +751,12 @@ public class TabPersistentStoreImpl implements TabPersistentStore { } } } @@ -1101,27 +1100,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer + return; + } + } -+ TabModel model = mTabModelSelector.getModel(isIncognito); if (model.isIncognito() != isIncognito) { 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 -@@ -50,6 +50,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; +@@ -53,6 +53,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -869,7 +870,7 @@ public class ToolbarManager - return ret; + import org.chromium.chrome.browser.back_press.BackPressMetrics; +@@ -888,7 +889,7 @@ public class ToolbarManager } }, -- mToolbarPositionSupplier); -+ mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); + mToolbarPositionSupplier, +- /* matchTrustedCdnUrl= */ mIsCustomTab); ++ /* matchTrustedCdnUrl= */ mIsCustomTab, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); @@ -1186,7 +1184,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and using base::android::JavaParamRef; using base::android::JavaRef; using base::android::ScopedJavaLocalRef; -@@ -101,7 +106,8 @@ std::vector> StringsToUuids( +@@ -89,7 +94,8 @@ std::vector> StringsToUuids( void CreateHistoricalTab( TabAndroid* tab_android, @@ -1196,7 +1194,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!tab_android) { return; } -@@ -112,9 +118,14 @@ void CreateHistoricalTab( +@@ -100,9 +106,14 @@ void CreateHistoricalTab( return; } @@ -1213,16 +1211,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!service) { return; } -@@ -178,7 +189,7 @@ void CreateHistoricalBulkClosure( +@@ -166,7 +177,7 @@ void CreateHistoricalBulkClosure( per_tab_optional_tab_group_ids, - std::vector> tabs, + std::vector tabs, std::vector web_contents_state) { - DCHECK(model); + if (!model) return; DCHECK_EQ(tab_group_ids.size(), group_titles.size()); DCHECK_EQ(tab_group_ids.size(), group_colors.size()); DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size()); -@@ -292,11 +303,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -280,11 +291,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1377,7 +1375,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -614,6 +617,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -627,6 +630,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1391,7 +1389,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -621,6 +631,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -634,6 +644,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1740,7 +1738,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome 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 -@@ -257,6 +257,7 @@ +@@ -261,6 +261,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1748,7 +1746,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" #include "chrome/browser/android/preferences/browser_prefs_android.h" -@@ -2203,6 +2204,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2022,6 +2023,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1813,7 +1811,7 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn -@@ -31,6 +31,8 @@ robolectric_library("junit") { +@@ -33,6 +33,8 @@ robolectric_library("junit") { deps = [ ":java", @@ -1834,7 +1832,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ /** An interface for pages that will be using Android views instead of html/rendered Web content. */ @NullMarked public interface NativePage { -@@ -187,7 +189,8 @@ public interface NativePage { +@@ -192,7 +194,8 @@ public interface NativePage { */ static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean hasPdfDownload) { return url != null @@ -1844,7 +1842,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -197,7 +200,7 @@ public interface NativePage { +@@ -202,7 +205,7 @@ public interface NativePage { * not have chrome or chrome-native scheme. */ static boolean isChromePageUrl(GURL url, boolean isIncognito) { @@ -1853,7 +1851,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -211,7 +214,8 @@ public interface NativePage { +@@ -216,7 +219,8 @@ public interface NativePage { GURL url, @Nullable NativePage candidatePage, boolean isIncognito, @@ -1863,7 +1861,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ if (hasPdfDownload) { // For navigation with associated pdf download (e.g. open a pdf link), pdf page should // be created. -@@ -229,7 +233,7 @@ public interface NativePage { +@@ -234,7 +238,7 @@ public interface NativePage { // created after the pdf document is re-downloaded in other parts of the code. return NativePageType.NONE; } else { @@ -1872,7 +1870,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } } -@@ -241,7 +245,7 @@ public interface NativePage { +@@ -246,7 +250,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( @@ -1881,7 +1879,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ String host = url.getHost(); String scheme = url.getScheme(); if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) -@@ -261,7 +265,8 @@ public interface NativePage { +@@ -266,7 +270,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1894,7 +1892,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ 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 -@@ -99,6 +99,11 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -101,6 +101,11 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1904,9 +1902,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow +import org.chromium.chrome.browser.preferences.Pref; + import java.util.ArrayList; + import java.util.Collection; import java.util.List; - import java.util.function.BooleanSupplier; -@@ -448,6 +453,9 @@ class LocationBarMediator +@@ -497,6 +502,9 @@ class LocationBarMediator if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return; Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return; @@ -1919,7 +1917,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 -@@ -6669,6 +6669,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6906,6 +6906,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1954,7 +1952,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -167,6 +167,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -168,6 +168,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1962,13 +1960,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -191,7 +192,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro - NewTabPageDelegate newTabPageDelegate, +@@ -214,7 +215,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro UrlFormatter urlFormatter, OfflineStatus offlineStatus, -- ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier) { -+ ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier, -+ boolean isAlwaysIncognito) { + ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier, +- boolean matchTrustedCdnUrl) { ++ boolean matchTrustedCdnUrl, boolean isAlwaysIncognito) { mContext = context; mNtpDelegate = newTabPageDelegate; mUrlFormatter = urlFormatter; @@ -2042,7 +2039,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc 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 -@@ -4101,6 +4101,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4116,6 +4116,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2058,7 +2055,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -120,10 +120,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -122,10 +122,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2071,25 +2068,24 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -146,11 +148,13 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -148,10 +150,12 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { + bool save_site_settings = force_save_site_settings_ && + info->incognito_behavior() == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO; content_settings_prefs_.insert(std::make_pair( - info->type(), - std::make_unique( - info->type(), prefs_, &pref_change_registrar_, info->pref_name(), -- info->partitioned_pref_name(), off_the_record_, restore_session, -+ info->partitioned_pref_name(), off_the_record_ && !save_site_settings, restore_session, - base::BindRepeating(&PrefProvider::Notify, - base::Unretained(this))))); + info->type(), std::make_unique( + info->type(), prefs_, &pref_change_registrar_, +- info->pref_name(), off_the_record_, restore_session, ++ info->pref_name(), off_the_record_ && !save_site_settings, restore_session, + base::BindRepeating(&PrefProvider::Notify, + base::Unretained(this))))); } diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h --- a/components/content_settings/core/browser/content_settings_pref_provider.h +++ b/components/content_settings/core/browser/content_settings_pref_provider.h -@@ -38,6 +38,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -37,6 +37,7 @@ class PrefProvider : public UserModifiableProvider { PrefProvider(PrefService* prefs, bool off_the_record, @@ -2097,7 +2093,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov bool store_last_modified, bool restore_session); -@@ -130,6 +131,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -117,6 +118,7 @@ class PrefProvider : public UserModifiableProvider { raw_ptr prefs_; const bool off_the_record_; @@ -2108,7 +2104,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov 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 -@@ -288,6 +288,7 @@ struct ContentSettingEntry { +@@ -287,6 +287,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2116,7 +2112,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -297,6 +298,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -296,6 +297,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2124,7 +2120,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. store_last_modified_(store_last_modified), allow_invalid_secondary_pattern_for_testing_(false), clock_(base::DefaultClock::GetInstance()) { -@@ -310,7 +312,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2190,7 +2186,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -921,7 +921,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( +@@ -922,7 +922,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( // is required. // Request for suggestions in OTR contexts is not allowed; except for the Lens // searchboxes. diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 9e5e7811..0744f08a 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -26,10 +26,10 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -571,6 +572,15 @@ AutocompleteController::AutocompleteController( - provider_client_->GetOmniboxTriggeredFeatureService()), +@@ -557,6 +558,15 @@ AutocompleteController::AutocompleteController( steady_state_omnibox_position_( - metrics::OmniboxEventProto::UNKNOWN_POSITION) { + metrics::OmniboxEventProto::UNKNOWN_POSITION), + config_(config) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) { + const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"); + provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH | @@ -39,7 +39,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ + if (!base::Contains(flag_value, "chrome")) + provider_types &= ~AutocompleteProvider::TYPE_BUILTIN; + } - provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes(); + config_.provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes(); // Providers run in the order they're added. Async providers should run first diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 2834c2bf..a9a84a82 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -9,9 +9,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/values-sw600dp/dimens.xml | 4 ++-- chrome/android/java/res/values/dimens.xml | 6 +++++- .../browser/ChromeBaseAppCompatActivity.java | 3 +++ - .../chrome/browser/WarmupManager.java | 5 ++++- - .../ChromeAccessibilitySettingsDelegate.java | 19 ++++++++++++++++++ - .../chrome/browser/app/ChromeActivity.java | 4 +++- + .../chrome/browser/WarmupManager.java | 7 +++++-- + .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++ + .../chrome/browser/app/ChromeActivity.java | 5 ++++- .../overlays/strip/StripLayoutHelper.java | 10 ++++++++-- .../strip/StripLayoutHelperManager.java | 6 +++++- .../scene_layer/TabStripSceneLayer.java | 8 ++++++++ @@ -20,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome/browser/ui/RootUiCoordinator.java | 6 +++++- chrome/browser/preferences/BUILD.gn | 1 + .../preferences/ChromePreferenceKeys.java | 1 + - .../preferences/ChromeSharedPreferences.java | 12 +++++++++++ + .../preferences/ChromeSharedPreferences.java | 12 ++++++++++++ .../LegacyChromePreferenceKeys.java | 1 + .../AppHeaderCoordinator.java | 2 ++ .../omnibox/LocationBarCoordinator.java | 2 +- @@ -29,16 +29,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/layout/toolbar_tablet.xml | 2 +- .../java/res/values-sw600dp/dimens.xml | 5 +++-- .../toolbar/java/res/values/dimens.xml | 6 ++++-- - .../browser/toolbar/ControlContainer.java | 2 +- - .../toolbar/top/ToolbarControlContainer.java | 20 ++++++++++++++++++- + .../toolbar/top/ToolbarControlContainer.java | 18 ++++++++++++++++++ .../browser/toolbar/top/ToolbarLayout.java | 5 ++++- .../tab_strip/HeightTransitionHandler.java | 2 ++ .../TabStripTransitionCoordinator.java | 6 +++++- .../res/xml/accessibility_preferences.xml | 5 +++++ - .../accessibility/AccessibilitySettings.java | 13 ++++++++++++ + .../accessibility/AccessibilitySettings.java | 13 +++++++++++++ .../AccessibilitySettingsDelegate.java | 2 ++ - .../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++++ - 34 files changed, 171 insertions(+), 26 deletions(-) + .../chromium/ui/base/DeviceFormFactor.java | 14 ++++++++++++++ + 33 files changed, 171 insertions(+), 25 deletions(-) diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml --- a/chrome/android/java/res/layout/custom_tabs_control_container.xml @@ -107,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.util.AutomotiveUtils; -@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -146,6 +147,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -127,14 +126,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.display.DisplayUtil; import org.chromium.url.GURL; -@@ -472,7 +473,9 @@ public class WarmupManager { +@@ -472,8 +473,10 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { -- controlContainer.initWithToolbar(toolbarId); +- controlContainer.initWithToolbar( +- toolbarId, R.dimen.custom_tabs_control_container_height); + controlContainer.initWithToolbar(toolbarId, + DeviceFormFactor.isForceTabletUI() -+ ? R.dimen.control_container_height_tabletui : 0); ++ ? R.dimen.control_container_height_tabletui ++ : R.dimen.custom_tabs_control_container_height); } return mainView; } catch (InflateException e) { @@ -170,21 +171,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s 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 -@@ -808,7 +808,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -818,7 +818,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { -- controlContainer.initWithToolbar(toolbarLayoutId); +- controlContainer.initWithToolbar(toolbarLayoutId, getToolbarLayoutHeightResId()); + controlContainer.initWithToolbar(toolbarLayoutId, + DeviceFormFactor.isForceTabletUI() -+ ? R.dimen.control_container_height_tabletui : 0); ++ ? R.dimen.control_container_height_tabletui ++ : getToolbarLayoutHeightResId()); } onInitialLayoutInflationComplete(); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -132,6 +132,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -136,6 +136,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.accessibility.AccessibilityState; @@ -192,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; -@@ -5040,8 +5041,13 @@ public class StripLayoutHelper +@@ -5308,8 +5309,13 @@ public class StripLayoutHelper mCloseButtonMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -211,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -105,6 +105,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -101,6 +101,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; @@ -219,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -498,7 +499,10 @@ public class StripLayoutHelperManager +@@ -491,7 +492,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled( /* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext)); @@ -271,7 +273,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/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 -@@ -768,7 +768,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -766,7 +766,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -285,7 +287,7 @@ 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/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 -@@ -110,6 +110,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -120,6 +120,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -294,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; -@@ -1803,7 +1805,9 @@ public class RootUiCoordinator +@@ -1877,7 +1879,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -319,7 +321,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU 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 -@@ -337,6 +337,7 @@ public final class ChromePreferenceKeys { +@@ -348,6 +348,7 @@ public final class ChromePreferenceKeys { /** Whether the app-specific history info text was already seen by users. */ public static final String HISTORY_APP_SPECIFIC_INFO_SEEN = "Chrome.History.AppSpecificInfoSeen"; @@ -370,7 +372,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java --- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java +++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java -@@ -42,6 +42,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.ui.display.DisplayUtil; import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.ui.insets.CaptionBarInsetsRectProvider; @@ -378,7 +380,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.insets.InsetObserver; import org.chromium.ui.insets.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.insets.InsetsRectProvider; -@@ -281,6 +282,7 @@ public class AppHeaderCoordinator +@@ -304,6 +305,7 @@ public class AppHeaderCoordinator InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult, boolean isOnExternalDisplay) { @@ -389,7 +391,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c 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 -@@ -869,7 +869,7 @@ public class LocationBarCoordinator +@@ -903,7 +903,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -401,7 +403,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 -@@ -1489,6 +1489,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1498,6 +1498,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -493,18 +495,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro 64dp 72dp -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java -@@ -26,7 +26,7 @@ public interface ControlContainer { - * - * @param toolbarLayoutId The ID of the toolbar layout to use. - */ -- void initWithToolbar(int toolbarLayoutId); -+ void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId); - - /** - * @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource. diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java @@ -516,16 +506,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; -@@ -170,8 +171,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout - - @Override +@@ -165,6 +166,23 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Initializer -- public void initWithToolbar(int toolbarLayoutId) { -+ public void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId) { + public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { -+ if (controlContainerHeightOverrideId != 0) { ++ if (toolbarLayoutHeightResId != 0) { + Resources res = getContext().getResources(); -+ setMinimumHeight((int) res.getDimension(controlContainerHeightOverrideId)); ++ setMinimumHeight((int) res.getDimension(toolbarLayoutHeightResId)); + int tab_strip_height = + (int) res.getDimension(R.dimen.tab_strip_height_tabletui); + @@ -541,8 +528,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; + } mToolbarContainer = findViewById(R.id.toolbar_container); + mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId); ViewStub toolbarStub = findViewById(R.id.toolbar_stub); - toolbarStub.setLayoutResource(toolbarLayoutId); diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java @@ -554,7 +541,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -581,7 +582,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -582,7 +583,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -568,7 +555,7 @@ 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/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java -@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; +@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate; import org.chromium.ui.base.ViewUtils; @@ -576,14 +563,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback; import org.chromium.ui.util.TokenHolder; -@@ -562,6 +563,7 @@ class HeightTransitionHandler { +@@ -561,6 +562,7 @@ class HeightTransitionHandler { + + /** Get the min screen width (in dp) required for the tab strip to become visible. */ + private static int getScreenWidthThresholdDp() { ++ if (DeviceFormFactor.isForceTabletUI()) return 0; if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; } -+ if (DeviceFormFactor.isForceTabletUI()) return 0; - return TRANSITION_THRESHOLD_DP; - } - diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java @@ -610,9 +597,9 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -36,6 +36,11 @@ found in the LICENSE file. - android:summary="@string/jump_start_omnibox_summary" - android:title="@string/jump_start_omnibox_title" /> +@@ -41,6 +41,11 @@ found in the LICENSE file. + android:summary="@string/caret_browsing_summary" + android:title="@string/caret_browsing_title" /> + { -@@ -176,6 +186,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -191,6 +201,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index fa2ce727..8fd4c410 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../api/settings_private/prefs_util.cc | 17 ++++ .../browser/profiles/ProfileManagerUtils.java | 5 ++ .../profiles/android/profile_manager_utils.cc | 5 ++ - chrome/browser/profiles/profile_manager.cc | 15 +++- + chrome/browser/profiles/profile_manager.cc | 17 +++- chrome/browser/profiles/profile_manager.h | 2 + .../clear_browsing_data_dialog.html | 44 +++++++++++ .../clear_browsing_data_dialog.ts | 2 + @@ -40,7 +40,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html content/browser/storage_partition_impl.cc | 1 + .../public/browser/browsing_data_remover.h | 7 +- .../Add-setting-to-clear-data-on-exit.inc | 8 ++ - 36 files changed, 406 insertions(+), 33 deletions(-) + 36 files changed, 407 insertions(+), 34 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-clear-data-on-exit.inc @@ -48,7 +48,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -265,6 +265,7 @@ chrome_java_sources = [ +@@ -268,6 +268,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -2224,7 +2225,11 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2179,7 +2180,11 @@ public class ChromeTabbedActivity extends ChromeActivity { Intent intent = getIntent(); boolean hadCipherData = @@ -334,7 +334,7 @@ new file mode 100644 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 -@@ -2067,6 +2067,16 @@ +@@ -2097,6 +2097,16 @@ Delete browsing data @@ -354,9 +354,9 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp 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 -@@ -110,6 +110,7 @@ +@@ -108,6 +108,7 @@ + #include "components/enterprise/client_certificates/core/features.h" #include "components/enterprise/data_controls/core/browser/features.h" - #include "components/enterprise/obfuscation/core/utils.h" #include "components/error_page/common/error_page_switches.h" +#include "components/favicon/core/favicon_database.h" #include "components/feature_engagement/public/feature_constants.h" @@ -459,7 +459,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -350,6 +350,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -351,6 +351,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( uint64_t origin_type_mask, base::OnceCallback callback) { CHECK(((remove_mask & @@ -467,7 +467,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); -@@ -453,6 +454,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -454,6 +455,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -477,7 +477,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -561,6 +565,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -562,6 +566,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // and SSL host state are scoped to hosts and represent them as std::string. // Rename the method to indicate its more general usage. if (profile_->GetSSLHostStateDelegate()) { @@ -489,7 +489,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -589,9 +598,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -590,9 +599,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -503,7 +503,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1314,6 +1327,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1318,6 +1331,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -515,7 +515,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -557,6 +557,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -560,6 +560,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -574,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1435,6 +1435,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1448,6 +1448,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -594,15 +594,18 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile void ProfileManager::DoFinalInitForServices(Profile* profile, bool go_off_the_record) { if (!do_final_services_init_ || -@@ -2096,7 +2109,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { - Profile* original_profile = profile->GetOriginalProfile(); +@@ -2117,9 +2130,9 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { // Do nothing if the closed window is not the last window of the same profile. - for (Browser* browser_iter : *BrowserList::GetInstance()) { -- if (browser_iter->profile()->GetOriginalProfile() == original_profile) -+ if (browser_iter->profile() == profile) - return; - } - + bool has_other_window = false; + ForEachCurrentBrowserWindowInterfaceOrderedByActivation( +- [original_profile, &has_other_window](BrowserWindowInterface* browser) { ++ [profile, &has_other_window](BrowserWindowInterface* browser) { + const Profile* const iter_profile = browser->GetProfile(); +- if (iter_profile->GetOriginalProfile() == original_profile) { ++ if (iter_profile == profile) { + has_other_window = true; + } + return !has_other_window; diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h --- a/chrome/browser/profiles/profile_manager.h +++ b/chrome/browser/profiles/profile_manager.h @@ -691,7 +694,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ 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 -@@ -1425,6 +1425,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1434,6 +1434,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>. @@ -718,7 +721,7 @@ 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 -@@ -2042,6 +2042,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2192,6 +2192,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -938,7 +941,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co // Description of database tables: // // icon_mapping -@@ -507,6 +511,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, +@@ -505,6 +509,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin, base::Time end) { @@ -965,7 +968,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 -@@ -925,6 +925,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -924,6 +924,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 && @@ -988,7 +991,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1550,6 +1550,7 @@ void StoragePartitionImpl::Initialize( +@@ -1551,6 +1551,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 3684cb59..011f5019 100644 --- a/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch +++ b/build/patches/Add-setting-to-enable-Credman-for-passkeys.patch @@ -110,7 +110,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut import org.chromium.components.ukm.UkmRecorder; import org.chromium.content_public.browser.RenderFrameHost; import org.chromium.content_public.browser.WebContents; -@@ -169,8 +171,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -170,8 +172,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsPaymentRequest = options.isPaymentCredentialCreation; mMakeCredentialCallback = callback; mIsOperationPending = true; @@ -120,7 +120,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut recordOutcomeEvent(MakeCredentialOutcome.OTHER_FAILURE); onError(AuthenticatorStatus.NOT_IMPLEMENTED); return; -@@ -234,8 +235,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -235,8 +236,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsConditionalRequest = options.mediation == Mediation.CONDITIONAL; mIsImmediateRequest = options.mediation == Mediation.IMMEDIATE; @@ -130,7 +130,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut || options.publicKey == null) { recordOutcomeEvent(GetAssertionOutcome.OTHER_FAILURE); onError(AuthenticatorStatus.NOT_IMPLEMENTED); -@@ -260,12 +260,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -277,12 +277,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } private boolean couldSupportConditionalMediation() { @@ -145,7 +145,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -339,26 +338,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -356,26 +355,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon capabilities.add( createWebAuthnClientCapability( AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET, @@ -174,9 +174,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - .WEBAUTHN_IMMEDIATE_GET) - && isUvpaa)); + false)); - callback.call(capabilities.toArray(new WebAuthnClientCapability[0])); - }); - } + boolean signal_supported = + isUvpaa + && DeviceFeatureMap.isEnabled( 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 @@ -302,7 +302,7 @@ diff --git a/components/webauthn/features.h b/components/webauthn/features.h diff --git a/device/fido/features.cc b/device/fido/features.cc --- a/device/fido/features.cc +++ b/device/fido/features.cc -@@ -154,6 +154,7 @@ BASE_FEATURE(kWebAuthnImmediateGet, +@@ -171,6 +171,7 @@ BASE_FEATURE(kWebAuthnImmediateGet, #else base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -310,7 +310,7 @@ diff --git a/device/fido/features.cc b/device/fido/features.cc BASE_FEATURE_PARAM(int, kWebAuthnImmediateMediationTimeoutMilliseconds, -@@ -166,6 +167,7 @@ BASE_FEATURE_PARAM(int, +@@ -183,6 +184,7 @@ BASE_FEATURE_PARAM(int, BASE_FEATURE(kWebAuthnImmediateGetAutoselect, "WebAuthenticationImmediateGetAutoselect", base::FEATURE_ENABLED_BY_DEFAULT); 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 336a8f39..e24090ff 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 @@ -19,10 +19,10 @@ 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/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -159,10 +159,6 @@ public class HomepageManager +@@ -164,10 +164,6 @@ public class HomepageManager * tab page if the homepage button is force enabled via flag. */ - public GURL getDefaultHomepageGurl() { + public GURL getDefaultHomepageGurl(boolean isIncognito) { - if (PartnerBrowserCustomizations.getInstance().isHomepageProviderAvailableAndEnabled()) { - return assumeNonNull(PartnerBrowserCustomizations.getInstance().getHomePageUrl()); - } diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index 1355d81c..2b70ab27 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -28,7 +28,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome/browser/app/ChromeActivity.java | 23 ++++++++- .../compositor/CompositorViewHolder.java | 4 +- .../bottombar/OverlayPanelContent.java | 2 +- - .../chromium/chrome/browser/tab/TabImpl.java | 4 +- + .../chromium/chrome/browser/tab/TabImpl.java | 2 +- .../tracing/settings/DeveloperSettings.java | 10 ++++ .../bottombar/overlay_panel_content.cc | 2 +- .../android/compositor/tab_content_manager.cc | 6 ++- @@ -109,7 +109,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 +- - 99 files changed, 534 insertions(+), 140 deletions(-) + 99 files changed, 533 insertions(+), 139 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 @@ -131,7 +131,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 -@@ -686,7 +686,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( +@@ -695,7 +695,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( return result; } @@ -143,7 +143,7 @@ diff --git a/cc/input/input_handler.cc b/cc/input/input_handler.cc diff --git a/cc/input/scrollbar_controller.cc b/cc/input/scrollbar_controller.cc --- a/cc/input/scrollbar_controller.cc +++ b/cc/input/scrollbar_controller.cc -@@ -658,7 +658,7 @@ InputHandlerPointerResult ScrollbarController::HandlePointerUp( +@@ -671,7 +671,7 @@ InputHandlerPointerResult ScrollbarController::HandlePointerUp( } // Returns the layer that is hit by the position_in_widget. @@ -176,7 +176,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 -@@ -1293,7 +1293,7 @@ void VizLayerContext::SetVisible(bool visible) { +@@ -1301,7 +1301,7 @@ void VizLayerContext::SetVisible(bool visible) { service_->SetVisible(visible); } @@ -184,7 +184,7 @@ diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_ +base::TimeTicks VizLayerContext::UpdateDisplayTreeFrom( // POI LayerTreeImpl& tree, viz::ClientResourceProvider& resource_provider, - viz::RasterContextProvider& context_provider, + gpu::SharedImageInterface* shared_image_interface, diff --git a/cc/trees/commit_state.cc b/cc/trees/commit_state.cc --- a/cc/trees/commit_state.cc +++ b/cc/trees/commit_state.cc @@ -199,7 +199,7 @@ diff --git a/cc/trees/commit_state.cc b/cc/trees/commit_state.cc diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h --- a/cc/trees/commit_state.h +++ b/cc/trees/commit_state.h -@@ -94,6 +94,7 @@ struct CC_EXPORT CommitState { +@@ -95,6 +95,7 @@ struct CC_EXPORT CommitState { float load_progress = 0.f; float max_page_scale_factor = 1.f; float min_page_scale_factor = 1.f; @@ -210,7 +210,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 -@@ -1354,7 +1354,7 @@ void LayerTreeHost::SetEventListenerProperties( +@@ -1389,7 +1389,7 @@ void LayerTreeHost::SetEventListenerProperties( SetNeedsCommit(); } @@ -219,7 +219,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) { -@@ -1474,9 +1474,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { +@@ -1509,9 +1509,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -231,7 +231,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); -@@ -1492,6 +1494,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, +@@ -1527,6 +1529,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; @@ -242,7 +242,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h --- a/cc/trees/layer_tree_host.h +++ b/cc/trees/layer_tree_host.h -@@ -566,6 +566,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -567,6 +567,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { void SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -250,7 +250,7 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h float max_page_scale_factor); float page_scale_factor() const { return pending_commit_state()->page_scale_factor; -@@ -573,6 +574,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -574,6 +575,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { float min_page_scale_factor() const { return pending_commit_state()->min_page_scale_factor; } @@ -263,7 +263,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 -@@ -2498,7 +2498,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { +@@ -2585,7 +2585,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { return bounds; } @@ -272,7 +272,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, -@@ -2665,7 +2665,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { +@@ -2752,7 +2752,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { return metadata; } @@ -284,7 +284,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc -@@ -161,6 +161,7 @@ LayerTreeImpl::LayerTreeImpl( +@@ -162,6 +162,7 @@ LayerTreeImpl::LayerTreeImpl( background_color_(SkColors::kTransparent), page_scale_factor_(page_scale_factor), min_page_scale_factor_(0), @@ -292,7 +292,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_(0), external_page_scale_factor_(1.f), device_scale_factor_(1.f), -@@ -450,7 +451,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( +@@ -449,7 +450,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( } } @@ -301,7 +301,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (!InnerViewportScrollNode()) return; -@@ -520,8 +521,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { +@@ -519,8 +520,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { // Adjust the outer viewport container as well, since adjusting only the // inner may cause its bounds to exceed those of the outer, causing scroll // clamping. @@ -317,7 +317,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc property_trees->SetOuterViewportContainerBoundsDelta(scaled_bounds_delta); // outer_viewport_container_bounds_delta and -@@ -817,6 +823,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { +@@ -818,6 +824,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { PushPageScaleFromMainThread(commit_state.page_scale_factor, commit_state.min_page_scale_factor, @@ -325,7 +325,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc commit_state.max_page_scale_factor); SetBrowserControlsParams(commit_state.browser_controls_params); -@@ -926,6 +933,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { +@@ -927,6 +934,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { // Active tree already shares the page_scale_factor object with pending // tree so only the limits need to be provided. target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(), @@ -333,7 +333,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor()); target_tree->SetExternalPageScaleFactor(external_page_scale_factor_); -@@ -1307,19 +1315,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { +@@ -1343,19 +1351,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { void LayerTreeImpl::PushPageScaleFromMainThread(float page_scale_factor, float min_page_scale_factor, @@ -357,7 +357,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (changed_page_scale) { DidUpdatePageScale(); -@@ -1328,12 +1338,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( +@@ -1364,12 +1374,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( void LayerTreeImpl::PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -372,7 +372,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (page_scale_factor) { DCHECK(!IsActiveTree() || !host_impl_->pending_tree()); -@@ -1450,12 +1461,15 @@ void LayerTreeImpl::PushBrowserControls( +@@ -1486,12 +1497,15 @@ void LayerTreeImpl::PushBrowserControls( } bool LayerTreeImpl::SetPageScaleFactorLimits(float min_page_scale_factor, @@ -388,7 +388,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_ = max_page_scale_factor; return true; -@@ -2361,7 +2375,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { +@@ -2392,7 +2406,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { return scrollbars; } @@ -397,7 +397,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc const gfx::PointF& screen_space_point, const gfx::Transform& local_space_to_screen_space_transform, const gfx::Rect& local_space_rect, -@@ -2972,7 +2986,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( +@@ -3003,7 +3017,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( return viewport_bound; } @@ -409,7 +409,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h --- a/cc/trees/layer_tree_impl.h +++ b/cc/trees/layer_tree_impl.h -@@ -378,6 +378,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -383,6 +383,7 @@ class CC_EXPORT LayerTreeImpl { void SetPageScaleOnActiveTree(float active_page_scale); void PushPageScaleFromMainThread(float page_scale_factor, float min_page_scale_factor, @@ -417,7 +417,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); const LayerSelection& selection() const { return selection_; } float current_page_scale_factor() const { -@@ -385,7 +386,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -390,7 +391,7 @@ class CC_EXPORT LayerTreeImpl { } float min_page_scale_factor() const { return min_page_scale_factor_; } float max_page_scale_factor() const { return max_page_scale_factor_; } @@ -426,7 +426,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float page_scale_delta() const { return page_scale_factor()->Delta(); } SyncedScale* page_scale_factor(); -@@ -844,6 +845,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -845,6 +846,7 @@ class CC_EXPORT LayerTreeImpl { void SetPageScaleFactorAndLimitsForDisplayTree(float page_scale_factor, float min_page_scale_factor, @@ -434,7 +434,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); LayerTreeHostImpl* host_impl() { return host_impl_; } -@@ -868,8 +870,10 @@ class CC_EXPORT LayerTreeImpl { +@@ -869,8 +871,10 @@ class CC_EXPORT LayerTreeImpl { float ClampPageScaleFactorToLimits(float page_scale_factor) const; void PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -445,7 +445,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); void DidUpdatePageScale(); void PushBrowserControls(const float* top_controls_shown_ratio, -@@ -908,6 +912,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -909,6 +913,7 @@ class CC_EXPORT LayerTreeImpl { scoped_refptr page_scale_factor_; float min_page_scale_factor_; @@ -456,7 +456,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 -@@ -1598,7 +1598,7 @@ void ScrollTree::clear() { +@@ -1602,7 +1602,7 @@ void ScrollTree::clear() { #endif } @@ -465,7 +465,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); -@@ -2117,7 +2117,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, +@@ -2121,7 +2121,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, return old_offset + scroll - new_offset; } @@ -511,7 +511,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; -@@ -533,7 +536,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -540,7 +543,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Ensure that mConfig is initialized before tablet mode changes. mConfig = getResources().getConfiguration(); @@ -541,7 +541,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/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 -@@ -979,7 +979,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -977,7 +977,7 @@ public class CompositorViewHolder extends FrameLayout int viewportInsets = controlsInsets + keyboardInset; if (isAttachedToWindow(view)) { @@ -550,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp // Dispatch the geometrychange JavaScript event to the page. // TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer -@@ -999,7 +999,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -997,7 +997,7 @@ public class CompositorViewHolder extends FrameLayout MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); @@ -574,24 +574,15 @@ 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 -@@ -1871,7 +1871,7 @@ class TabImpl implements Tab { - // so that next onShow() call won't send a resize message with zero size - // to the renderer process. This prevents the size fluttering that may confuse - // Blink and break rendered result (see http://crbug.com/340987). -- webContents.setSize(original.width(), original.height()); -+ webContents.setSize(original.width(), original.height(), 0); - - if (bounds != null) { - assert mNativeTabAndroid != 0; -@@ -2246,7 +2246,7 @@ class TabImpl implements Tab { +@@ -2370,7 +2370,7 @@ class TabImpl implements Tab { Supplier compositorViewHolderSupplier = assumeNonNull(getActivity()).getCompositorViewHolderSupplier(); View compositorView = compositorViewHolderSupplier.get(); - webContents.setSize(compositorView.getWidth(), compositorView.getHeight()); + webContents.setSize(compositorView.getWidth(), compositorView.getHeight(), 0); + mWebContentsState.destroy(); mWebContentsState = null; - initWebContents(webContents); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java @@ -640,16 +631,16 @@ 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 @@ - #include "chrome/browser/android/compositor/layer/thumbnail_layer.h" +@@ -27,6 +27,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" +#include "content/public/common/content_features.h" #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(SkBitmap()); +@@ -76,7 +77,10 @@ class TabContentManager::TabReadbackRequest { + std::move(result_callback).Run(viz::CopyOutputBitmapWithMetadata()); return; } - gfx::Rect source_rect = gfx::Rect(view_size_in_pixels); @@ -776,7 +767,7 @@ diff --git a/components/input/child_frame_input_helper.cc b/components/input/chi diff --git a/components/input/input_router_impl.cc b/components/input/input_router_impl.cc --- a/components/input/input_router_impl.cc +++ b/components/input/input_router_impl.cc -@@ -655,7 +655,7 @@ bool InputRouterImpl::IsAutoscrollInProgress() { +@@ -618,7 +618,7 @@ bool InputRouterImpl::IsAutoscrollInProgress() { return client_->IsAutoscrollInProgress(); } @@ -870,7 +861,7 @@ diff --git a/components/thin_webview/internal/thin_webview.cc b/components/thin_ 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 -@@ -407,7 +407,7 @@ const DisplayHitTestQueryMap& InputManager::GetDisplayHitTestQuery() const { +@@ -408,7 +408,7 @@ const DisplayHitTestQueryMap& InputManager::GetDisplayHitTestQuery() const { return frame_sink_manager_->GetDisplayHitTestQuery(); } @@ -906,7 +897,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 -@@ -1842,7 +1842,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( +@@ -1841,7 +1841,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( return base::unexpected("Invalid page scale factors"); } layers.SetPageScaleFactorAndLimitsForDisplayTree( @@ -948,7 +939,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co #include "third_party/blink/public/common/frame/frame_visual_properties.h" #include "third_party/blink/public/common/input/web_input_event.h" #include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h" -@@ -223,9 +224,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties( +@@ -220,9 +221,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties( render_widget_host->SetAutoResize(visual_properties.auto_resize_enabled, visual_properties.min_size_for_auto_resize, visual_properties.max_size_for_auto_resize); @@ -962,7 +953,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co visual_properties.is_pinch_gesture_active, visual_properties.visible_viewport_size, visual_properties.compositor_viewport, -@@ -478,7 +482,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( +@@ -475,7 +479,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews( current_child_frame_host()->SetVisibilityForChildViews(visible); } @@ -971,7 +962,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co const gfx::Size& local_frame_size) { has_size_ = true; const float dsf = screen_infos_.current().device_scale_factor; -@@ -487,7 +491,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( +@@ -484,7 +488,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize( gfx::ScaleToRoundedSize(local_frame_size, 1.f / dsf); } @@ -983,7 +974,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 -@@ -183,7 +183,7 @@ void DelegatedFrameHost::CopyFromCompositingSurfaceAsTexture( +@@ -187,7 +187,7 @@ void DelegatedFrameHost::CopyFromCompositingSurfaceAsTexture( std::move(callback)); } @@ -1007,7 +998,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 -@@ -9306,7 +9306,7 @@ void RenderFrameHostImpl::ShowPopupMenu( +@@ -9396,7 +9396,7 @@ void RenderFrameHostImpl::ShowPopupMenu( #endif } @@ -1019,7 +1010,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc -@@ -1048,7 +1048,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1049,7 +1049,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { blink::VisualProperties visual_properties; visual_properties.screen_infos = GetScreenInfos(); auto& current_screen_info = visual_properties.screen_infos.mutable_current(); @@ -1041,7 +1032,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // For testing, override the raster color profile. // Note: this needs to be done here and not earlier in the pipeline because // Mac uses the display color space to update an NSSurface and this setting -@@ -1153,6 +1166,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { +@@ -1154,6 +1167,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() { visual_properties.compositing_scale_factor = properties_from_parent_local_root_.compositing_scale_factor; @@ -1055,7 +1046,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ #if BUILDFLAG(IS_MAC) // Only macOS cursor scaling affects CSS custom cursor images for now. visual_properties.cursor_accessibility_scale_factor = -@@ -1333,8 +1353,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( +@@ -1334,8 +1354,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties( } } @@ -1068,7 +1059,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // If we do not have a valid viz::LocalSurfaceId then we are a child frame // waiting on the id to be propagated from our parent. We cannot create a hash -@@ -3983,7 +4005,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( +@@ -3990,7 +4012,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( // porting drag-and-drop calls to Mojo, so that RenderWidgetHostImpl bypasses // RenderWidget to talk the the WebFrameWidget and needs to perform the scale // operation itself. @@ -1080,7 +1071,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc -@@ -86,6 +86,7 @@ +@@ -89,6 +89,7 @@ #include "content/public/common/content_client.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" @@ -1088,7 +1079,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "third_party/blink/public/mojom/input/input_handler.mojom.h" #include "third_party/perfetto/include/perfetto/tracing/track.h" #include "third_party/skia/include/core/SkBitmap.h" -@@ -972,7 +973,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -989,7 +990,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( ? SK_ColorTRANSPARENT : metadata.root_background_color.toSkColor()); @@ -1097,7 +1088,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ overscroll_controller_->OnFrameMetadataUpdated( metadata.page_scale_factor, metadata.device_scale_factor, metadata.scrollable_viewport_size, metadata.root_layer_size, -@@ -1274,6 +1275,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { +@@ -1292,6 +1293,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { default_bounds_dip_.height() * scale_factor); } @@ -1110,7 +1101,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const float scale_factor = GetDeviceScaleFactor() / view_.GetDipScale(); return gfx::ScaleToCeiledSize(view_.GetSizeDevicePx(), scale_factor); } -@@ -1299,6 +1306,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { +@@ -1317,6 +1324,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { NOTREACHED(); } @@ -1121,7 +1112,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ gfx::Size RenderWidgetHostViewAndroid::GetCompositorViewportPixelSize() { if (!view_.parent()) { if (default_bounds_dip_.IsEmpty()) { -@@ -1434,7 +1445,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { +@@ -1452,7 +1463,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { : viz::SurfaceId(); } @@ -1130,7 +1121,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const gfx::PointF& point, RenderWidgetHostViewInput* target_view, gfx::PointF* transformed_point) { -@@ -1850,7 +1861,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { +@@ -1868,7 +1879,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { return delegated_frame_host_->HasFallbackSurface(); } @@ -1138,11 +1129,11 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ +void RenderWidgetHostViewAndroid::CopyFromSurface( // POI const gfx::Rect& src_subrect, const gfx::Size& output_size, - base::OnceCallback callback) { + base::OnceCallback diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h -@@ -170,6 +170,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid +@@ -172,6 +172,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid gfx::Size GetRequestedRendererSizeDevicePx() override; gfx::Size GetVisibleViewportSize() override; gfx::Size GetVisibleViewportSizeDevicePx() override; @@ -1153,7 +1144,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/c diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc --- a/content/browser/renderer_host/render_widget_host_view_base.cc +++ b/content/browser/renderer_host/render_widget_host_view_base.cc -@@ -110,6 +110,10 @@ gfx::Size RenderWidgetHostViewBase::GetCompositorViewportPixelSize() { +@@ -113,6 +113,10 @@ gfx::Size RenderWidgetHostViewBase::GetCompositorViewportPixelSize() { GetDeviceScaleFactor()); } @@ -1164,7 +1155,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/con void RenderWidgetHostViewBase::SelectionBoundsChanged( const gfx::Rect& anchor_rect, base::i18n::TextDirection anchor_dir, -@@ -581,7 +585,7 @@ display::ScreenInfos RenderWidgetHostViewBase::GetScreenInfos() const { +@@ -605,7 +609,7 @@ display::ScreenInfos RenderWidgetHostViewBase::GetScreenInfos() const { void RenderWidgetHostViewBase::ResetGestureDetection() {} @@ -1176,7 +1167,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/con diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h --- a/content/browser/renderer_host/render_widget_host_view_base.h +++ b/content/browser/renderer_host/render_widget_host_view_base.h -@@ -278,6 +278,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase +@@ -286,6 +286,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase // The size of the view's backing surface in non-DPI-adjusted pixels. virtual gfx::Size GetCompositorViewportPixelSize(); @@ -1188,7 +1179,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/cont diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc --- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc -@@ -440,6 +440,10 @@ void RenderWidgetHostViewChildFrame::RequestInputBackForDragAndDrop( +@@ -442,6 +442,10 @@ void RenderWidgetHostViewChildFrame::RequestInputBackForDragAndDrop( } #endif @@ -1202,7 +1193,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.c diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h b/content/browser/renderer_host/render_widget_host_view_child_frame.h --- a/content/browser/renderer_host/render_widget_host_view_child_frame.h +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.h -@@ -117,6 +117,7 @@ class CONTENT_EXPORT RenderWidgetHostViewChildFrame +@@ -122,6 +122,7 @@ class CONTENT_EXPORT RenderWidgetHostViewChildFrame RenderWidgetHostViewBase* GetRootView() override; uint32_t GetCaptureSequenceNumber() const override; gfx::Size GetCompositorViewportPixelSize() override; @@ -1213,7 +1204,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 -@@ -826,8 +826,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { +@@ -834,8 +834,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { return Java_WebContentsImpl_createSize(env, size.width(), size.height()); } @@ -1230,7 +1221,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 -@@ -185,7 +185,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -188,7 +188,7 @@ class CONTENT_EXPORT WebContentsAndroid { base::android::ScopedJavaLocalRef GetFullscreenVideoSize( JNIEnv* env); @@ -1242,7 +1233,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 -@@ -529,7 +529,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -531,7 +531,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise)); // CAUTION: Only add custom enabling logic here if it cannot // be covered by the other functions. @@ -1258,7 +1249,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 -@@ -532,7 +532,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -533,7 +533,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper boolean shouldSuggest, int sourceType, RenderFrameHost renderFrameHost, @@ -1268,7 +1259,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select mMenuModelBridge = menuModelBridge; RecordHistogram.recordEnumeratedHistogram( "Android.ShowSelectionMenuSourceType", sourceType, MenuSourceType.MAX_VALUE); -@@ -542,6 +543,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -543,6 +544,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper mXDip = xDip; mYDip = yDip; mSelectionRect.set(left, top, right, offsetBottom); @@ -1280,7 +1271,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 -@@ -978,9 +978,9 @@ public class WebContentsImpl +@@ -987,9 +987,9 @@ public class WebContentsImpl } @Override @@ -1292,7 +1283,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon } @Override -@@ -1452,7 +1452,7 @@ public class WebContentsImpl +@@ -1469,7 +1469,7 @@ public class WebContentsImpl Rect getFullscreenVideoSize(long nativeWebContentsAndroid); @@ -1304,7 +1295,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java -@@ -538,7 +538,7 @@ public interface WebContents extends Parcelable { +@@ -547,7 +547,7 @@ public interface WebContents extends Parcelable { * @param width The width of the view. * @param height The height of the view. */ @@ -1330,7 +1321,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java -@@ -338,7 +338,7 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa +@@ -341,7 +341,7 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa public void setHasPersistentVideo(boolean value) {} @Override @@ -1482,24 +1473,24 @@ diff --git a/third_party/blink/renderer/core/canvas_interventions/canvas_interve diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc --- a/third_party/blink/renderer/core/css/media_values.cc +++ b/third_party/blink/renderer/core/css/media_values.cc -@@ -164,7 +164,7 @@ double MediaValues::CalculateDynamicViewportHeight(LocalFrame* frame) { +@@ -162,7 +162,7 @@ double MediaValues::CalculateDynamicViewportHeight(LocalFrame* frame) { return frame->View()->DynamicViewportSizeForViewportUnits().height(); } -int MediaValues::CalculateDeviceWidth(LocalFrame* frame) { +int MediaValues::CalculateDeviceWidth(LocalFrame* frame) { // POI DCHECK(frame && frame->View() && frame->GetSettings() && frame->GetPage()); - - if (frame->DomWindow() && -@@ -182,7 +182,7 @@ int MediaValues::CalculateDeviceWidth(LocalFrame* frame) { + const display::ScreenInfo& screen_info = + frame->GetPage()->GetChromeClient().GetScreenInfo(*frame); +@@ -174,7 +174,7 @@ int MediaValues::CalculateDeviceWidth(LocalFrame* frame) { return device_width; } -int MediaValues::CalculateDeviceHeight(LocalFrame* frame) { +int MediaValues::CalculateDeviceHeight(LocalFrame* frame) { // POI DCHECK(frame && frame->View() && frame->GetSettings() && frame->GetPage()); - - if (frame->DomWindow() && + const display::ScreenInfo& screen_info = + frame->GetPage()->GetChromeClient().GetScreenInfo(*frame); 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 @@ -1565,7 +1556,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() { +@@ -2118,7 +2137,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { web_preferences_.prefers_reduced_motion); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1574,7 +1565,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_ = -@@ -2922,7 +2941,7 @@ void WebViewImpl::RefreshPageScaleFactor() { +@@ -2934,7 +2953,7 @@ void WebViewImpl::RefreshPageScaleFactor() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1583,7 +1574,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -2999,7 +3018,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( +@@ -3011,7 +3030,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame()); } @@ -1592,7 +1583,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (should_auto_resize_ || !MainFrameImpl()) return; -@@ -3233,6 +3252,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { +@@ -3245,6 +3264,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale; } @@ -1603,7 +1594,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; } -@@ -3284,7 +3307,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { +@@ -3295,7 +3318,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1612,7 +1603,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3833,7 +3856,7 @@ void WebViewImpl::PageScaleFactorChanged() { +@@ -3844,7 +3867,7 @@ void WebViewImpl::PageScaleFactorChanged() { DCHECK(viewport.IsActiveViewport()); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1632,7 +1623,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; -@@ -285,6 +286,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -284,6 +285,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, @@ -1653,7 +1644,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 -@@ -1732,8 +1732,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { +@@ -1740,8 +1740,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { } float LocalFrameView::InputEventsScaleFactor() const { @@ -1794,7 +1785,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 -@@ -1879,6 +1879,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1873,6 +1873,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. @@ -1804,7 +1795,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 -@@ -1886,7 +1889,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1880,7 +1883,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 * @@ -1813,7 +1804,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); -@@ -1899,7 +1902,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1893,7 +1896,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( @@ -1822,7 +1813,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th /*is_pinch_gesture_active=*/false); } -@@ -1943,6 +1946,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1937,6 +1940,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( new_compositor_viewport_pixel_rect, device_scale_factor_for_testing_ / non_testing_device_scale_factor_); } @@ -1841,7 +1832,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ForMainFrame()) { if (size_ != new_size) { -@@ -1960,6 +1975,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1954,6 +1969,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( size_.value(), widget_base_->DIPsToCeiledBlinkSpace( widget_base_->VisibleViewportSize()), @@ -1850,7 +1841,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); return; } -@@ -1993,6 +2010,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1987,6 +2004,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( View()->ResizeWithBrowserControls( size_.value(), widget_base_->VisibleViewportSize(), @@ -1859,7 +1850,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); } -@@ -2374,6 +2393,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, +@@ -2375,6 +2394,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, View()->ZoomFactorForViewportLayout() * static_cast(View()->ZoomLevelToZoomFactor(zoom_level)) * static_cast(css_zoom_factor); @@ -1868,7 +1859,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()) { -@@ -3420,6 +3441,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { +@@ -3421,6 +3442,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { // be needed in setting the raster scale. SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */, View()->MinimumPageScaleFactor(), @@ -1876,7 +1867,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th View()->MaximumPageScaleFactor()); } -@@ -4795,9 +4817,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( +@@ -4796,9 +4818,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1888,7 +1879,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()) { -@@ -4921,7 +4944,10 @@ void WebFrameWidgetImpl::OrientationChanged() { +@@ -4922,7 +4945,10 @@ void WebFrameWidgetImpl::OrientationChanged() { void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen( const display::ScreenInfos& previous_original_screen_infos) { display::ScreenInfo screen_info = widget_base_->GetScreenInfo(); @@ -1900,7 +1891,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 -@@ -5120,7 +5146,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { +@@ -5121,7 +5147,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { if (!device_scale_factor_for_testing_) { non_testing_device_scale_factor_ = @@ -1912,7 +1903,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 -@@ -656,6 +656,7 @@ class CORE_EXPORT WebFrameWidgetImpl +@@ -659,6 +659,7 @@ class CORE_EXPORT WebFrameWidgetImpl void SetPageScaleStateAndLimits(float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1923,7 +1914,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 -@@ -2560,7 +2560,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { +@@ -2564,7 +2564,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { dev_tools_agent_->PaintOverlays(context); } @@ -1932,7 +1923,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 -@@ -3035,7 +3035,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( +@@ -3042,7 +3042,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( std::move(context_menu_client), params); } @@ -1944,7 +1935,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 -@@ -1534,6 +1534,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, +@@ -1506,6 +1506,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, } bool HTMLCanvasElement::ShouldAccelerate() const { @@ -1967,7 +1958,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 -@@ -1076,7 +1076,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( +@@ -1071,7 +1071,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( // Ensure the override is applied immediately without having to wait for // `WebFrameWidgetImpl::UpdateVisualProperties()` to be called. GetWebViewImpl()->ResizeWithBrowserControls( @@ -1980,7 +1971,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 -@@ -1328,6 +1328,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { +@@ -1332,6 +1332,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { || disable_screen_emulated_) { isEnabled = false; } @@ -2006,7 +1997,7 @@ diff --git a/third_party/blink/renderer/core/page/viewport_description.cc b/thir 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 +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -471,16 +471,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -470,16 +470,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( } } @@ -2029,7 +2020,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 -@@ -5998,6 +5998,10 @@ +@@ -6000,6 +6000,10 @@ // If enabled, the `getDisplayMedia()` family of APIs will ask for NV12 // frames, which should trigger a zero-copy path in the tab capture code. name: "ZeroCopyTabCapture", @@ -2084,7 +2075,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint; scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint; scroll_state_data.is_beginning = true; -@@ -870,7 +885,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -877,7 +892,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureBegin( @@ -2093,7 +2084,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox GestureScrollInputType(gesture_event.SourceDevice())); gesture_pinch_in_progress_ = true; return DID_HANDLE; -@@ -882,7 +897,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -889,7 +904,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureEnd( @@ -2102,7 +2093,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -892,7 +907,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -899,7 +914,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); input_handler_->PinchGestureUpdate( gesture_event.data.pinch_update.scale, @@ -2111,7 +2102,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -915,7 +930,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -922,7 +937,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( // TODO(arakeri): Pass in the modifier instead of a bool once the // refactor (crbug.com/1022097) is done. For details, see // crbug.com/1016955. @@ -2120,7 +2111,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox } return DID_NOT_HANDLE; -@@ -926,7 +941,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -933,7 +948,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); CHECK(input_handler_); if (mouse_event.button == WebMouseEvent::Button::kLeft) @@ -2129,7 +2120,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_NOT_HANDLE; } case WebInputEvent::Type::kMouseMove: { -@@ -941,7 +956,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -948,7 +963,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( (mouse_event.button == WebPointerProperties::Button::kNoButton && !(mouse_event.GetModifiers() & WebInputEvent::Modifiers::kRelativeMotionEvent)); @@ -2138,7 +2129,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox should_cancel_scrollbar_drag); return DID_NOT_HANDLE; } -@@ -980,12 +995,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -987,12 +1002,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // to check pointer lock state gfx::PointF point = static_cast(event).PositionInWidget(); @@ -2153,7 +2144,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return WebInputEventAttribution( WebInputEventAttribution::kTargetedFrame, input_handler_->FindFrameElementIdAtPoint(point)); -@@ -1000,6 +1017,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -1007,6 +1024,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // how the renderer host performs touch event dispatch. // https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_input_event_router.cc?l=808&rcl=10fe9d0a725d4ed7b69266a5936c525f0a5b26d3 gfx::PointF point = touch_event.touches[0].PositionInWidget(); @@ -2161,7 +2152,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox const cc::ElementId targeted_element = input_handler_->FindFrameElementIdAtPoint(point); -@@ -1101,7 +1119,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( +@@ -1108,7 +1126,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( } } @@ -2170,16 +2161,16 @@ 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; -@@ -1273,7 +1291,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( +@@ -1280,7 +1298,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y()); }); -- HandleOverscroll(gesture_event.PositionInWidget(), scroll_result); -+ HandleOverscroll(ScalePoint(gesture_event.PositionInWidget()), scroll_result); +- HandleOverscroll(gesture_event.PositionInWidget(), scroll_result, ++ HandleOverscroll(ScalePoint(gesture_event.PositionInWidget()), scroll_result, + gesture_event.SourceDevice()); if (elastic_overscroll_controller_) - HandleScrollElasticityOverscroll(gesture_event, scroll_result); -@@ -1359,8 +1377,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( +@@ -1367,8 +1385,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( } cc::TouchAction touch_action = cc::TouchAction::kAuto; @@ -2190,7 +2181,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. -@@ -1475,7 +1493,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( +@@ -1483,7 +1501,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( touch_event.touches_length == 1) { DCHECK(touch_event.touches[0].state == WebTouchPoint::State::kStatePressed); cc::InputHandlerPointerResult pointer_result = HandlePointerDown( @@ -2199,7 +2190,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; -@@ -1538,7 +1556,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( +@@ -1546,7 +1564,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( touch_event.touch_start_or_first_touch_move); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerMove( @@ -2208,7 +2199,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; -@@ -1581,7 +1599,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( +@@ -1589,7 +1607,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( touch_event.touches_length); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerUp( @@ -2231,7 +2222,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p return client_->GetOriginalScreenInfos().current().device_scale_factor; } -@@ -1727,7 +1729,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo( +@@ -1719,7 +1721,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, @@ -2240,7 +2231,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. -@@ -1857,56 +1859,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) { +@@ -1849,56 +1851,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? @@ -2317,12 +2308,12 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_pa - float GetOriginalDeviceScaleFactor() const; + float GetOriginalDeviceScaleFactor(bool real) const; - // Requests that the callback be invoked after the next frame is generated and - // presented in the display compositor. Returns true if the callback was + private: + static void AssertAreCompatible(const WidgetBase& a, const WidgetBase& b); diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc --- a/ui/android/delegated_frame_host_android.cc +++ b/ui/android/delegated_frame_host_android.cc -@@ -188,7 +188,7 @@ const viz::FrameSinkId& DelegatedFrameHostAndroid::GetFrameSinkId() const { +@@ -190,7 +190,7 @@ const viz::FrameSinkId& DelegatedFrameHostAndroid::GetFrameSinkId() const { return frame_sink_id_; } @@ -2330,7 +2321,7 @@ diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_f +void DelegatedFrameHostAndroid::CopyFromCompositingSurface( // POI const gfx::Rect& src_subrect, const gfx::Size& output_size, - base::OnceCallback callback, + base::OnceCallback callback, 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 @@ -2400,9 +2391,9 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java --- a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java +++ b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java -@@ -53,6 +53,12 @@ public class UiAndroidFeatureList { - /* defaultValue= */ false, - /* defaultValueInTests= */ false); +@@ -59,6 +59,12 @@ public class UiAndroidFeatureList { + /* defaultValue= */ true, + /* defaultValueInTests= */ true); + public static final CachedFlag sPixelPerfect = + newCachedFlag( @@ -2416,18 +2407,18 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java --- a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java +++ b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java -@@ -34,6 +34,7 @@ import org.chromium.base.ThreadUtils; - import org.chromium.build.annotations.EnsuresNonNull; +@@ -35,6 +35,7 @@ import org.chromium.base.StrictModeContext; + import org.chromium.base.ThreadUtils; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; +import org.chromium.ui.base.UiAndroidFeatureList; - import org.chromium.ui.util.XrUtils; import java.util.Arrays; -@@ -380,6 +381,15 @@ import java.util.function.Consumer; + import java.util.List; +@@ -401,6 +402,15 @@ import java.util.function.Consumer; + float xdpi, float ydpi, Display display) { - if (hasForcedDIPScale()) density = sForcedDIPScale.floatValue(); + if (UiAndroidFeatureList.sPixelPerfect.isEnabled()) { + if (bounds.right < bounds.bottom) { + density = (float)(Math.round(bounds.right / 412.0 * 1000.0) / 1000.0); diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index f8e1538e..45a1aefe 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -33,7 +33,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../flags/android/adblock_native_gateway.cc | 31 ++ .../browser/flags/AdBlockNativeGateway.java | 30 ++ .../net/system_network_context_manager.cc | 4 + - .../sessions/session_restore_android.cc | 7 +- .../strings/android_chrome_strings.grd | 14 + chrome/common/pref_names.h | 5 + .../strings/android/site_settings.grdp | 3 + @@ -51,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 +- - 39 files changed, 1287 insertions(+), 129 deletions(-) + 38 files changed, 1282 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 @@ -66,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 -@@ -324,6 +324,7 @@ if (_is_default_toolchain) { +@@ -325,6 +325,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", @@ -77,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 -@@ -432,6 +432,7 @@ chrome_java_resources = [ +@@ -439,6 +439,7 @@ chrome_java_resources = [ "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", @@ -85,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", -@@ -627,6 +628,7 @@ chrome_java_resources = [ +@@ -639,6 +640,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -96,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 -@@ -918,6 +918,8 @@ chrome_java_sources = [ +@@ -929,6 +929,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", @@ -180,7 +179,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -312,6 +312,24 @@ found in the LICENSE file. +@@ -317,6 +317,24 @@ found in the LICENSE file. @@ -442,7 +441,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 -@@ -88,6 +88,8 @@ import java.util.HashMap; +@@ -87,6 +87,8 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -451,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin /** * The Chrome settings activity. * -@@ -948,6 +950,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -1016,6 +1018,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { return; } @@ -462,7 +461,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 -@@ -17103,6 +17103,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -17255,6 +17255,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -533,7 +532,7 @@ 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 -@@ -1270,6 +1270,34 @@ BrowserProcessImpl::component_updater() { +@@ -1285,6 +1285,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -571,7 +570,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -212,6 +212,7 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -211,6 +211,7 @@ class BrowserProcessImpl : public BrowserProcess, #endif component_updater::ComponentUpdateService* component_updater() override; @@ -579,7 +578,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc MediaFileSystemRegistry* media_file_system_registry() override; WebRtcLogUploader* webrtc_log_uploader() override; network_time::NetworkTimeTracker* network_time_tracker() override; -@@ -429,6 +430,7 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -428,6 +429,7 @@ class BrowserProcessImpl : public BrowserProcess, // to concerns over integrity of data shared between profiles, // but some users of component updater only install per-user. std::unique_ptr component_updater_; @@ -590,7 +589,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 -@@ -390,6 +390,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -429,6 +429,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -712,23 +711,6 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows // Static auth params registry->RegisterStringPref(prefs::kAuthSchemes, "basic,digest,ntlm,negotiate"); -diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc ---- a/chrome/browser/sessions/session_restore_android.cc -+++ b/chrome/browser/sessions/session_restore_android.cc -@@ -58,8 +58,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab( - DCHECK(current_tab); - // If swapped, return the current tab's most up-to-date web contents. - if (disposition == WindowOpenDisposition::CURRENT_TAB) { -- current_tab->SwapWebContents(std::move(new_web_contents), false, false); -- return current_tab->web_contents(); -+ int active_tab_index = tab_model->GetActiveIndex(); -+ tab_model->CreateTab(current_tab, new_web_contents.release(), -+ disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB); -+ tab_model->CloseTabAt(active_tab_index); -+ return raw_new_web_contents; - } - DCHECK(disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB || - disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB); 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 @@ -756,7 +738,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 -@@ -2931,6 +2931,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2942,6 +2942,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -771,7 +753,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 -@@ -406,6 +406,9 @@ +@@ -421,6 +421,9 @@ This site shows intrusive or misleading ads @@ -1613,7 +1595,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -629,6 +633,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 0514c821..66588200 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -24,8 +24,8 @@ Require: bromite-build-utils.patch .../site_details_permission.html | 8 +- .../site_settings/site_details_permission.ts | 44 ++ .../site_settings/site_settings_mixin.ts | 20 +- + .../site_settings/site_settings_page.ts | 29 +- .../site_settings/site_settings_util.ts | 55 +++ - .../site_settings_page/site_settings_page.ts | 30 +- chrome/browser/ui/BUILD.gn | 2 + .../controls/rich_controls_container_view.h | 7 + .../views/page_info/page_info_bubble_view.cc | 2 +- @@ -85,7 +85,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 + - 74 files changed, 1972 insertions(+), 108 deletions(-) + 74 files changed, 1971 insertions(+), 108 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 @@ -99,7 +99,7 @@ Require: bromite-build-utils.patch diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -69,6 +69,10 @@ import org.chromium.url.GURL; +@@ -70,6 +70,10 @@ import org.chromium.url.GURL; import java.util.List; import java.util.Set; @@ -110,7 +110,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 { -@@ -242,7 +246,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -239,7 +243,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -380,6 +384,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -377,6 +381,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } @@ -152,7 +152,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -353,6 +353,7 @@ build_webui("build") { +@@ -358,6 +358,7 @@ build_webui("build") { "privacy_sandbox/privacy_sandbox_browser_proxy.ts", "relaunch_mixin.ts", "reset_page/reset_browser_proxy.ts", @@ -160,10 +160,10 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "route.ts", "router.ts", "safety_hub/safety_hub_browser_proxy.ts", -@@ -366,7 +367,6 @@ build_webui("build") { +@@ -371,7 +372,6 @@ build_webui("build") { "site_settings/constants.ts", "site_settings/site_settings_mixin.ts", - "site_settings/site_settings_prefs_browser_proxy.ts", + "site_settings/site_settings_browser_proxy.ts", - "site_settings/site_settings_util.ts", "site_settings/website_usage_browser_proxy.ts", "time.ts", @@ -171,7 +171,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html -@@ -572,4 +572,5 @@ +@@ -623,4 +623,5 @@ @@ -395,7 +395,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d 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 -@@ -332,5 +332,6 @@ +@@ -334,5 +334,6 @@ label="$i18n{siteSettingsLocalNetworkAccess}"> @@ -405,7 +405,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts --- a/chrome/browser/resources/settings/site_settings/site_details.ts +++ b/chrome/browser/resources/settings/site_settings/site_details.ts -@@ -69,8 +69,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { +@@ -71,8 +71,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { return 'site-details'; } @@ -449,7 +449,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/c diff --git a/chrome/browser/resources/settings/site_settings/site_details_permission.html b/chrome/browser/resources/settings/site_settings/site_details_permission.html --- a/chrome/browser/resources/settings/site_settings/site_details_permission.html +++ b/chrome/browser/resources/settings/site_settings/site_details_permission.html -@@ -57,7 +57,9 @@ +@@ -58,7 +58,9 @@