Patches for v145 (need work)

This commit is contained in:
Carmelo Messina
2026-02-01 15:19:04 +01:00
parent be9bf4c7aa
commit edd31a7ef7
15 changed files with 1193 additions and 1467 deletions
+22 -22
View File
@@ -22,7 +22,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
@@ -442,7 +442,6 @@ if (_is_default_toolchain) {
@@ -445,7 +445,6 @@ if (_is_default_toolchain) {
"//chrome/browser/recent_tabs:java",
"//chrome/browser/regional_capabilities/android:java",
"//chrome/browser/safe_browsing/android:java",
@@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/safety_hub/android:java",
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
@@ -1137,8 +1136,6 @@ if (_is_default_toolchain) {
@@ -1141,8 +1140,6 @@ if (_is_default_toolchain) {
"//chrome/browser/recent_tabs:junit",
"//chrome/browser/recent_tabs/internal:junit",
"//chrome/browser/safe_browsing/android:junit",
@@ -51,7 +51,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -982,7 +982,6 @@ chrome_java_sources = [
@@ -990,7 +990,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsNavigation.java",
@@ -62,7 +62,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -54,7 +54,7 @@ found in the LICENSE file.
@@ -55,7 +55,7 @@ found in the LICENSE file.
android:fragment="org.chromium.chrome.browser.safety_hub.SafetyHubFragment"
android:key="safety_hub"
android:order="10"
@@ -123,7 +123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
@@ -35,13 +35,6 @@ import org.chromium.chrome.browser.privacy_sandbox.ChromeTrackingProtectionDeleg
@@ -34,13 +34,6 @@ import org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment;
import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment;
import org.chromium.chrome.browser.privacy_sandbox.TopicsManageFragment;
import org.chromium.chrome.browser.profiles.Profile;
@@ -135,9 +135,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
-import org.chromium.chrome.browser.safety_hub.SafetyHubFragment;
-import org.chromium.chrome.browser.safety_hub.SafetyHubModuleDelegateImpl;
import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator;
import org.chromium.chrome.browser.signin.SigninAndHistorySyncActivityLauncherImpl;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
@@ -123,17 +116,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
@@ -137,17 +130,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
delegate.setSnackbarManagerSupplier(mSnackbarManagerSupplier);
baseSiteSettingsFragment.setSiteSettingsDelegate(delegate);
}
@@ -155,22 +155,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
if (fragment instanceof CredentialEntryFragmentViewBase) {
CredentialEditUiFactory.create((CredentialEntryFragmentViewBase) fragment, mProfile);
}
@@ -204,14 +186,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
((AutofillLocalIbanEditor) fragment)
.setModalDialogManagerSupplier(mModalDialogManagerSupplier);
@@ -216,14 +198,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
.setModalDialogManagerSupplier(
(Supplier<@Nullable ModalDialogManager>) mModalDialogManagerSupplier);
}
- if (fragment instanceof SafetyHubFragment safetyHubFragment) {
- safetyHubFragment.setDelegate(
- new SafetyHubModuleDelegateImpl(
- mProfile,
- mModalDialogManagerSupplier,
- mModalDialogManagerSupplier.asNonNull(),
- SigninAndHistorySyncActivityLauncherImpl.get(),
- new SettingsCustomTabLauncherImpl()));
- }
if (fragment instanceof INeedSnackbarManager) {
((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier);
}
@@ -226,8 +200,5 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
@@ -238,8 +212,5 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
if (fragment instanceof ManageSyncSettings) {
((ManageSyncSettings) fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier);
}
@@ -182,15 +182,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
@@ -373,7 +373,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
removePreferenceIfPresent(PREF_UI_THEME);
}
@@ -378,7 +378,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
}
- if (DeviceInfo.isAutomotive()) {
+ if (((true)) || DeviceInfo.isAutomotive()) {
getPreferenceScreen().removePreference(findPreference(PREF_SAFETY_HUB));
} else {
findPreference(PREF_SAFETY_HUB)
private static boolean shouldShowSafetyHubPref() {
- return !DeviceInfo.isAutomotive();
+ return false;
}
private static boolean shouldShowNotificationPref(Context context, Intent intent) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java
@@ -202,7 +202,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.password_manager.settings.PasswordSettings;
import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
@@ -131,7 +130,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
@@ -153,7 +152,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
case SettingsFragment.PAYMENT_METHODS:
return AutofillPaymentMethodsFragment.class;
case SettingsFragment.SAFETY_CHECK:
@@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3446,7 +3446,6 @@ static_library("browser") {
@@ -3410,7 +3410,6 @@ static_library("browser") {
"//chrome/browser/recent_tabs:jni_headers",
"//chrome/browser/regional_capabilities",
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
@@ -12,16 +12,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/version.gni b/chrome/version.gni
--- a/chrome/version.gni
+++ b/chrome/version.gni
@@ -87,7 +87,7 @@ if (target_os == "android") {
@@ -86,7 +86,7 @@ if (target_os == "android") {
_version_dictionary_template +=
"trichrome_auto_64_version_code = \"@TRICHROME_AUTO_64_VERSION_CODE@\" "
_version_dictionary_template += "trichrome_desktop_64_version_code = \"@TRICHROME_DESKTOP_64_VERSION_CODE@\" "
- if (target_cpu == "arm64") {
+ if (target_cpu == "arm64" || target_cpu == "x64") {
_version_dictionary_template += "chrome_high_version_code = \"@CHROME_HIGH_VERSION_CODE@\" "
_version_dictionary_template += "chrome_high_beta_version_code = \"@CHROME_HIGH_BETA_VERSION_CODE@\" "
_version_dictionary_template += "trichrome_64_32_high_version_code = \"@TRICHROME_64_32_HIGH_VERSION_CODE@\" "
@@ -230,16 +230,16 @@ if (is_mac) {
_version_dictionary_template +=
"chrome_high_version_code = \"@CHROME_HIGH_VERSION_CODE@\" "
_version_dictionary_template +=
@@ -231,16 +231,16 @@ if (is_mac) {
chrome_version_name = chrome_version_full
# There is a different version code only for arm64.
@@ -44,26 +44,26 @@ diff --git a/chrome/version.gni b/chrome/version.gni
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -191,6 +191,7 @@ const base::FeatureParam<std::string> kWebViewADPFSocManufacturerBlocklist{
// HWUI. This feature works only when WebViewEnableADPF is enabled, otherwise
// this is a no-op.
BASE_FEATURE(kWebViewEnableADPFRendererMain, base::FEATURE_DISABLED_BY_DEFAULT);
@@ -161,6 +161,7 @@ BASE_FEATURE(kWebViewNewInvalidateHeuristic, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kWebViewNewInvalidateHeuristicForTV,
base::FEATURE_DISABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_ENABLED(kWebViewEnableADPFRendererMain);
// If enabled, the GPU Main thread is included in the set of threads reported
// to the HWUI. This feature works only when WebViewEnableADPF is enabled,
@@ -291,6 +292,7 @@ BASE_FEATURE(kEnableADPFSeparateRendererMainSession,
// If enabled, Chrome uses SetThreads instead of recreating an
// ADPF(Android Dynamic Performance Framework) hint session when the set of
// threads in the session changes.
// If enabled and the device's SOC manufacturer is in the allowlist, WebView
// reports the set of threads involved in frame production to HWUI, and they're
@@ -241,6 +242,7 @@ BASE_FEATURE(kEnableADPFRendererMain, base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, Chrome puts Renderer Main threads into a separate
// ADPF(Android Dynamic Performance Framework) hint session, and does not
// report any timing hints from this session.
+// see https://source.chromium.org/chromium/chromium/src/+/e7507d15614ac7f499fb89086b3a09772fa8deb4
BASE_FEATURE(kEnableADPFSetThreads, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableADPFSeparateRendererMainSession,
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, Chrome uses notifyWorkloadIncrease ADPF(Android Dynamic
diff --git a/components/viz/service/performance_hint/hint_session.cc b/components/viz/service/performance_hint/hint_session.cc
--- a/components/viz/service/performance_hint/hint_session.cc
+++ b/components/viz/service/performance_hint/hint_session.cc
@@ -370,16 +370,13 @@ bool IsAdpfEnabled() {
@@ -437,16 +437,13 @@ bool IsAdpfEnabled() {
switches::kDisableAdpf)) {
return false;
}
@@ -80,5 +80,5 @@ diff --git a/components/viz/service/performance_hint/hint_session.cc b/component
+ if ((true)) return true;
std::string soc_allowlist = features::kADPFSocManufacturerAllowlist.Get();
std::string soc_blocklist = features::kADPFSocManufacturerBlocklist.Get();
std::string soc = base::SysInfo::SocManufacturer();
--
+209 -231
View File
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../tabmodel/TabModelSelectorBase.java | 7 ++
.../browser/toolbar/ToolbarManager.java | 4 +-
.../chrome/browser/ui/RootUiCoordinator.java | 6 +-
.../developer_private_functions_shared.cc | 4 +-
.../developer_private_functions.cc | 3 +-
.../browser/extensions/extension_tab_util.cc | 2 +-
.../tabmodel/IncognitoTabModelImpl.java | 10 +-
.../tabmodel/IncognitoTabModelObserver.java | 2 +
@@ -25,19 +25,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../ui/extensions/ExtensionActionsBridge.java | 6 ++
.../android/tab_model/tab_model_jni_bridge.cc | 4 +
.../ExtensionActionListCoordinator.java | 4 +-
.../ExtensionActionListMediator.java | 24 ++---
.../ExtensionActionListMediator.java | 19 +++-
.../ExtensionToolbarCoordinator.java | 7 +-
.../ExtensionToolbarCoordinatorImpl.java | 5 +-
.../extensions/ExtensionsMenuCoordinator.java | 4 +-
.../extensions/ExtensionsMenuMediator.java | 14 +--
.../ChromeAndroidTaskTrackerImpl.java | 97 ++++++++++++++-----
.../extensions/ExtensionsMenuMediator.java | 10 +-
.../ChromeAndroidTaskTrackerImpl.java | 92 ++++++++++++++-----
.../ChromeAndroidTaskTracker.java | 7 +-
26 files changed, 234 insertions(+), 70 deletions(-)
26 files changed, 233 insertions(+), 56 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -109,6 +109,7 @@ import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperMa
@@ -118,6 +118,7 @@ import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperMa
import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager.TabModelStartupInfo;
import org.chromium.chrome.browser.cookies.CookiesFetcher;
import org.chromium.chrome.browser.crypto.CipherFactory;
@@ -45,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.data_sharing.DataSharingIntentUtils;
import org.chromium.chrome.browser.data_sharing.DataSharingTabGroupUtils;
import org.chromium.chrome.browser.data_sharing.DataSharingTabManager;
@@ -289,12 +290,14 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherPaneBase;
@@ -300,11 +301,13 @@ import org.chromium.chrome.browser.tasks.tab_management.TabSwitcherPaneBase;
import org.chromium.chrome.browser.tasks.tab_management.TabUiUtils;
import org.chromium.chrome.browser.tasks.tab_management.TabsSettings;
import org.chromium.chrome.browser.tasks.tab_management.archived_tabs_auto_delete_promo.ArchivedTabsAutoDeletePromoManager;
@@ -54,13 +54,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.toolbar.ToolbarManager;
import org.chromium.chrome.browser.toolbar.extensions.ExtensionToolbarCoordinator;
import org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer;
import org.chromium.chrome.browser.toolbar.top.tab_strip.StripVisibilityState;
import org.chromium.chrome.browser.ui.AppLaunchDrawBlocker;
+import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge;
import org.chromium.chrome.browser.ui.IncognitoRestoreAppLaunchDrawBlockerFactory;
import org.chromium.chrome.browser.ui.RootUiCoordinator;
import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
@@ -828,7 +831,36 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
@@ -822,7 +825,36 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
mTabModelNotificationDotManager.initWithNative(mTabModelSelector);
TabModel currentTabModel = mTabModelSelector.getCurrentModel();
initializeChromeAndroidTask(
@@ -98,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// For saving non-incognito tab closures for Recent Tabs.
boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
@@ -2940,7 +2972,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
@@ -2969,7 +3001,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
mLayoutStateProviderSupplier,
getBrowserControlsManager(),
getWindowAndroid(),
@@ -107,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
getLifecycleDispatcher(),
getLayoutManagerSupplier(),
/* menuOrKeyboardActionController= */ this,
@@ -3908,6 +3940,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
@@ -3885,6 +3917,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
}
RecordUserAction.record("MobileMenuRecentTabs");
} else if (id == R.id.extensions_menu_id) {
@@ -121,7 +120,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
@@ -453,7 +453,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -458,7 +458,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
private @Nullable TabStateThemeResourceProvider mThemeResourceProvider;
@@ -130,10 +129,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
new OneshotSupplierImpl<>();
protected ChromeActivity() {
@@ -1101,13 +1101,29 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
}
@@ -1121,13 +1121,29 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
() -> ExtensionWindowControllerBridgeFactory.create(chromeAndroidTask));
// 3. Make the ChromeAndroidTask available via OneshotSupplier.
// 5. Make the ChromeAndroidTask available via OneshotSupplier.
- mChromeAndroidTaskSupplier.set(chromeAndroidTask);
+ if (!currentTabModel.isIncognito())
+ mChromeAndroidTaskSupplierInternal.set(chromeAndroidTask);
@@ -163,7 +162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
}
@Override
@@ -2032,7 +2048,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2053,7 +2069,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
getProfileProviderSupplier().runSyncOrOnAvailable(this::initializeManualFillingComponent);
@@ -172,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
if (chromeAndroidTask != null) {
chromeAndroidTask.onNativeInitializationFinished();
}
@@ -2076,7 +2092,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2097,7 +2113,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
&& DeviceFormFactor.isNonMultiDisplayContextOnTablet(this)) {
HostZoomMap.setTransparentZoomAdjustment(
ContentFeatureList.sAndroidMonitorZoomScalingFactor.getValue() / 100.0f);
@@ -184,7 +183,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/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
@@ -391,7 +391,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
@@ -392,7 +392,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
getTabModelSelectorSupplier(),
getBrowserControlsManager(),
getWindowAndroid(),
@@ -196,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
@@ -91,6 +91,7 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver;
@@ -92,6 +92,7 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.RequestDesktopUtils;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab_ui.TabContentManager;
@@ -204,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior;
@@ -123,6 +124,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -124,6 +125,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
@@ -212,7 +211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
/** A {@link RootUiCoordinator} variant that controls UI for {@link BaseCustomTabActivity}. */
public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
@@ -209,7 +211,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
@@ -210,7 +212,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
@NonNull ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull ActivityWindowAndroid windowAndroid,
@@ -251,7 +250,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
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
@@ -182,6 +182,7 @@ import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior;
@@ -185,6 +185,7 @@ import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarBehavior;
import org.chromium.chrome.browser.ui.RootUiCoordinator;
import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker;
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
@@ -259,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.chrome.browser.ui.default_browser_promo.DefaultBrowserPromoUtils;
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderCoordinator;
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
@@ -423,7 +424,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -421,7 +422,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@NonNull OneshotSupplier<LayoutStateProvider> layoutStateProviderOneshotSupplier,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull ActivityWindowAndroid windowAndroid,
@@ -271,7 +270,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/TabModelJniBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
@@ -131,10 +131,10 @@ public abstract class TabModelJniBridge implements TabModelInternal {
@@ -133,10 +133,10 @@ public abstract class TabModelJniBridge implements TabModelInternal {
@Override
public void associateWithBrowserWindow(long nativeAndroidBrowserWindow) {
// Ensure this isn't set multiple times.
@@ -287,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
@@ -480,6 +480,13 @@ public abstract class TabModelSelectorBase
@@ -488,6 +488,13 @@ public abstract class TabModelSelectorBase
}
}
@@ -304,7 +303,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
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
@@ -135,6 +135,7 @@ import org.chromium.chrome.browser.tab.TabObscuringHandler;
@@ -141,6 +141,7 @@ import org.chromium.chrome.browser.tab.TabObscuringHandler;
import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.chrome.browser.tab_ui.TabContentManager;
import org.chromium.chrome.browser.tab_ui.TabModelDotInfo;
@@ -312,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
import org.chromium.chrome.browser.tabmodel.TabModel;
@@ -234,6 +235,7 @@ import org.chromium.url.GURL;
@@ -241,6 +242,7 @@ import org.chromium.url.GURL;
import java.util.List;
import java.util.function.Supplier;
@@ -320,7 +319,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import android.view.Gravity;
@@ -810,7 +812,7 @@ public class ToolbarManager
@@ -802,7 +804,7 @@ public class ToolbarManager
ObservableSupplier<Boolean> omniboxFocusStateSupplier,
OneshotSupplier<Boolean> promoShownOneshotSupplier,
WindowAndroid windowAndroid,
@@ -332,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/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
@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.tab.TabSelectionType;
@@ -149,6 +149,7 @@ import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition;
import org.chromium.chrome.browser.tab_ui.TabContentManager;
import org.chromium.chrome.browser.tab_ui.TabSwitcher;
@@ -340,7 +339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.tabmodel.TabCreator;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
import org.chromium.chrome.browser.tabmodel.TabModel;
@@ -237,6 +238,7 @@ import org.chromium.url.GURL;
@@ -243,6 +244,7 @@ import org.chromium.url.GURL;
import java.lang.ref.WeakReference;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
@@ -348,7 +347,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
/**
* The root UI coordinator. This class will eventually be responsible for inflating and managing
@@ -270,7 +272,7 @@ public class RootUiCoordinator
@@ -276,7 +278,7 @@ public class RootUiCoordinator
protected @Nullable AppMenuCoordinator mAppMenuCoordinator;
private final MenuOrKeyboardActionController mMenuOrKeyboardActionController;
protected final ActivityWindowAndroid mWindowAndroid;
@@ -357,7 +356,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
protected final ActivityTabProvider mActivityTabProvider;
protected ObservableSupplier<ShareDelegate> mShareDelegateSupplier;
@@ -459,7 +461,7 @@ public class RootUiCoordinator
@@ -468,7 +470,7 @@ public class RootUiCoordinator
@NonNull OneshotSupplier<LayoutStateProvider> layoutStateProviderOneshotSupplier,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull ActivityWindowAndroid windowAndroid,
@@ -366,24 +365,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
@NonNull ActivityLifecycleDispatcher activityLifecycleDispatcher,
@NonNull ObservableSupplier<LayoutManagerImpl> layoutManagerSupplier,
@NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
@@ -1665,8 +1665,8 @@ DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::Run() {
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions.cc
@@ -1746,7 +1746,8 @@ DeveloperPrivateDismissSafetyHubExtensionsMenuNotificationFunction::Run() {
}
Profile* profile = Profile::FromBrowserContext(browser_context());
- SafetyHubMenuNotificationServiceFactory::GetForProfile(profile)
- ->DismissActiveNotificationOfModule(
+ if (auto* menu_notification_service_factory = SafetyHubMenuNotificationServiceFactory::GetForProfile(profile))
+ menu_notification_service_factory->DismissActiveNotificationOfModule(
+ menu_notification_service_factory
->DismissActiveNotificationOfModule(
safety_hub::SafetyHubModuleType::EXTENSIONS);
return RespondNow(NoArguments());
}
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc
--- a/chrome/browser/extensions/extension_tab_util.cc
+++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -1428,7 +1428,7 @@ bool ExtensionTabUtil::OpenOptionsPageFromWebContents(
@@ -1256,7 +1256,7 @@ bool ExtensionTabUtil::OpenOptionsPageFromWebContents(
if (!url) {
return false;
}
@@ -395,7 +393,7 @@ diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/ex
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java
@@ -140,8 +140,12 @@ class IncognitoTabModelImpl implements IncognitoTabModelInternal {
@@ -145,8 +145,12 @@ class IncognitoTabModelImpl implements IncognitoTabModelInternal {
return;
}
@@ -409,7 +407,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
}
mDelegateModel
@@ -152,6 +156,10 @@ class IncognitoTabModelImpl implements IncognitoTabModelInternal {
@@ -157,6 +161,10 @@ class IncognitoTabModelImpl implements IncognitoTabModelInternal {
mCurrentTabSupplier.set(null);
mTabCountSupplier.set(0);
@@ -423,7 +421,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java
@@ -30,4 +30,6 @@ public interface IncognitoTabModelObserver {
@@ -33,4 +33,6 @@ public interface IncognitoTabModelObserver {
/** Called when the last tab of the {@link IncognitoTabModel} is closed. */
default void didBecomeEmpty() {}
@@ -442,7 +440,7 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/
#include "ui/color/color_provider_manager.h"
#include "ui/events/android/key_event_android.h"
#include "ui/events/event.h"
@@ -226,6 +228,16 @@ void ExtensionActionsBridge::ClearExtensionData(JNIEnv* env) {
@@ -221,6 +223,16 @@ void ExtensionActionsBridge::ClearExtensionData(JNIEnv* env) {
install_directory, install_updacked_directory));
}
@@ -462,7 +460,7 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/
diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.h b/chrome/browser/ui/android/extensions/extension_actions_bridge.h
--- a/chrome/browser/ui/android/extensions/extension_actions_bridge.h
+++ b/chrome/browser/ui/android/extensions/extension_actions_bridge.h
@@ -54,6 +54,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer,
@@ -53,6 +53,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer {
int tab_id,
content::WebContents* web_contents);
void ClearExtensionData(JNIEnv* env);
@@ -473,7 +471,7 @@ diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.h b/c
diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java
--- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java
+++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java
@@ -244,6 +244,10 @@ public class ExtensionActionsBridge {
@@ -245,6 +245,10 @@ public class ExtensionActionsBridge implements Destroyable {
ExtensionActionsBridgeJni.get().clearExtensionData(mNativeExtensionActionsBridge);
}
@@ -484,7 +482,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b
@NativeMethods
public interface Natives {
boolean extensionsEnabled(@JniType("Profile*") Profile profile);
@@ -278,6 +282,8 @@ public class ExtensionActionsBridge {
@@ -281,6 +285,8 @@ public class ExtensionActionsBridge implements Destroyable {
void clearExtensionData(long nativeExtensionActionsBridge);
@@ -496,7 +494,7 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
--- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
@@ -118,6 +118,10 @@ void TabModelJniBridge::AssociateWithBrowserWindow(
@@ -126,6 +126,10 @@ void TabModelJniBridge::AssociateWithBrowserWindow(
// BrowserWindowInterface is available on desktop Android, but not other Android
// builds. For non-desktop Android, this function should be a no-op.
#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
@@ -510,7 +508,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java
@@ -23,6 +23,8 @@ import org.chromium.ui.listmenu.ListMenuButton;
@@ -21,6 +21,8 @@ import org.chromium.ui.listmenu.ListMenuButton;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
import org.chromium.ui.modelutil.ViewGroupAdapter;
@@ -519,19 +517,19 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/**
* Root component for the extension action buttons. Exposes public API for external consumers to
* interact with the buttons and affect their states.
@@ -39,7 +41,7 @@ public class ExtensionActionListCoordinator implements Destroyable {
@@ -37,7 +39,7 @@ public class ExtensionActionListCoordinator implements Destroyable {
Context context,
ExtensionActionListContainer container,
WindowAndroid windowAndroid,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier) {
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier) {
mContainer = container;
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java
@@ -33,6 +33,8 @@ import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
@@ -31,6 +31,8 @@ import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
import org.chromium.ui.modelutil.PropertyModel;
@@ -540,36 +538,31 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
@NullMarked
class ExtensionActionListMediator implements Destroyable {
private static final String TAG = "EALMediator";
@@ -40,7 +42,7 @@ class ExtensionActionListMediator implements Destroyable {
@@ -38,7 +40,7 @@ class ExtensionActionListMediator implements Destroyable {
private final Context mContext;
private final WindowAndroid mWindowAndroid;
private final ModelList mModels;
- private final OneshotSupplier<ChromeAndroidTask> mTaskSupplier;
- private final ChromeAndroidTask mTask;
+ private final Function<Tab, ChromeAndroidTask> mTaskSupplier;
private final ExtensionActionsUpdateHelper mExtensionActionsUpdateHelper;
private final ActionsUpdateDelegate mActionsUpdateDelegate = new ActionsUpdateDelegate();
@@ -53,7 +55,7 @@ class ExtensionActionListMediator implements Destroyable {
@@ -51,12 +53,12 @@ class ExtensionActionListMediator implements Destroyable {
Context context,
WindowAndroid windowAndroid,
ModelList models,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier) {
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier) {
mContext = context;
@@ -108,17 +110,17 @@ class ExtensionActionListMediator implements Destroyable {
// button while its popup is open.
closePopup();
mWindowAndroid = windowAndroid;
mModels = models;
- mTask = task;
+ mTaskSupplier = task;
- ChromeAndroidTask task = mTaskSupplier.get();
- if (task == null) {
- return;
- }
-
Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab();
if (currentTab == null) {
return;
mExtensionActionsUpdateHelper =
new ExtensionActionsUpdateHelper(
@@ -111,8 +113,13 @@ class ExtensionActionListMediator implements Destroyable {
}
int tabId = currentTab.getId();
@@ -579,37 +572,36 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
+ }
+
ExtensionActionPopupContents contents =
ExtensionActionPopupContents.create(task, actionId, tabId);
- ExtensionActionPopupContents.create(mTask, actionId, tabId);
+ ExtensionActionPopupContents.create(task, actionId, tabId);
assert mCurrentPopup == null;
@@ -129,13 +131,13 @@ class ExtensionActionListMediator implements Destroyable {
}
private void onContextClick(ListMenuButton buttonView, String actionId) {
- ChromeAndroidTask task = mTaskSupplier.get();
- if (task == null) {
+ Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab();
+ if (currentTab == null) {
mCurrentPopup =
new ExtensionActionPopup(mContext, mWindowAndroid, buttonView, actionId, contents);
@@ -131,9 +138,11 @@ class ExtensionActionListMediator implements Destroyable {
return;
}
- Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab();
- if (currentTab == null) {
+ ChromeAndroidTask task = mTaskSupplier.apply(currentTab);
+ if (task == null) {
return;
}
+
ExtensionActionContextMenuBridge bridge =
new ExtensionActionContextMenuBridge(
- mTask, actionId, webContents, ContextMenuSource.TOOLBAR_ACTION);
+ task, actionId, webContents, ContextMenuSource.TOOLBAR_ACTION);
ExtensionActionContextMenuUtils.showContextMenu(
mContext, buttonView, bridge, MenuBuilderHelper.getRectProvider(buttonView), null);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java
@@ -17,11 +17,14 @@ import org.chromium.build.annotations.NullMarked;
@@ -15,12 +15,15 @@ import org.chromium.build.annotations.Initializer;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabCreator;
import org.chromium.chrome.browser.theme.ThemeColorProvider;
import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
import org.chromium.chrome.browser.ui.extensions.ExtensionUi;
import org.chromium.ui.base.WindowAndroid;
+import java.util.function.Function;
@@ -617,36 +609,36 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/**
* The coordinator of the extension-related toolbar UI.
*
@@ -42,7 +45,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable {
@@ -41,7 +44,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable {
Context context,
ViewStub extensionToolbarStub,
WindowAndroid windowAndroid,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier,
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier,
TabCreator tabCreator,
@@ -75,7 +78,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable {
ThemeColorProvider themeColorProvider) {
@@ -77,7 +80,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable {
Context context,
ViewStub extensionToolbarStub,
WindowAndroid windowAndroid,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier,
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier,
TabCreator tabCreator,
ThemeColorProvider themeColorProvider);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
@@ -19,6 +19,7 @@ import org.chromium.build.annotations.Nullable;
@@ -16,6 +16,7 @@ import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.build.annotations.ServiceImpl;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabCreator;
import org.chromium.chrome.browser.theme.ThemeColorProvider;
import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
@@ -27,6 +28,8 @@ import org.chromium.chrome.browser.ui.extensions.ExtensionUi;
@@ -24,6 +25,8 @@ import org.chromium.chrome.browser.ui.extensions.ExtensionUi;
import org.chromium.chrome.browser.ui.extensions.R;
import org.chromium.ui.base.WindowAndroid;
@@ -655,19 +647,19 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/** The implementation of {@link ExtensionToolbarCoordinator}. */
@NullMarked
@ServiceImpl(ExtensionToolbarCoordinator.class)
@@ -46,7 +49,7 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina
@@ -39,7 +42,7 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina
Context context,
ViewStub extensionToolbarStub,
WindowAndroid windowAndroid,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier,
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier,
TabCreator tabCreator,
ThemeColorProvider themeColorProvider) {
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java
@@ -44,6 +44,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
@@ -40,6 +40,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter;
import org.chromium.ui.widget.RectProvider;
@@ -676,19 +668,19 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/**
* Coordinator for the extensions menu, accessed from the puzzle icon in the toolbar. This class is
* responsible for the button and the menu.
@@ -84,7 +86,7 @@ public class ExtensionsMenuCoordinator implements Destroyable {
@@ -75,7 +77,7 @@ public class ExtensionsMenuCoordinator implements Destroyable {
Context context,
ListMenuButton extensionsMenuButton,
MaterialDivider extensionsMenuTabSwitcherDivider,
ThemeColorProvider themeColorProvider,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier,
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier,
TabCreator tabCreator,
ExtensionActionListCoordinator extensionActionListCoordinator) {
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java
@@ -30,6 +30,8 @@ import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
@@ -26,6 +26,8 @@ import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.widget.RectProvider;
@@ -697,56 +689,51 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/**
* Mediator for the extensions menu. This class is responsible for listening to changes in the
* extensions and updating the model accordingly.
@@ -38,7 +40,7 @@ import org.chromium.ui.widget.RectProvider;
@@ -34,7 +36,7 @@ import org.chromium.ui.widget.RectProvider;
class ExtensionsMenuMediator implements Destroyable {
private final ActionsUpdateDelegate mActionsUpdateDelegate = new ActionsUpdateDelegate();
private final Context mContext;
- private final OneshotSupplier<ChromeAndroidTask> mTaskSupplier;
+ private final Function<Tab, ChromeAndroidTask> mTaskSupplier;
private final ObservableSupplier<@Nullable Profile> mProfileSupplier;
- private final ChromeAndroidTask mTask;
+ private final Function<Tab, ChromeAndroidTask> mTask;
private final Runnable mOnUpdateFinishedRunnable;
private final Callback<Boolean> mOnExtensionsAvailableCallback;
@@ -49,7 +51,7 @@ class ExtensionsMenuMediator implements Destroyable {
private final ExtensionActionsUpdateHelper mExtensionActionsUpdateHelper;
private final View mRootView;
@@ -42,7 +44,7 @@ class ExtensionsMenuMediator implements Destroyable {
public ExtensionsMenuMediator(
Context context,
- OneshotSupplier<ChromeAndroidTask> taskSupplier,
+ Function<Tab, ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier,
- ChromeAndroidTask task,
+ Function<Tab, ChromeAndroidTask> task,
NullableObservableSupplier<Tab> currentTabSupplier,
ModelList extensionModels,
@@ -112,13 +114,13 @@ class ExtensionsMenuMediator implements Destroyable {
}
private void onPrimaryClick(ListMenuButton buttonView, String actionId) {
- ChromeAndroidTask task = mTaskSupplier.get();
- if (task == null) {
+ Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab();
+ if (currentTab == null) {
Runnable onUpdateFinishedRunnable,
@@ -99,9 +101,11 @@ class ExtensionsMenuMediator implements Destroyable {
return;
}
- Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab();
- if (currentTab == null) {
+ ChromeAndroidTask task = mTaskSupplier.apply(currentTab);
+ if (task == null) {
return;
}
+ ChromeAndroidTask task = mTaskSupplier.get();
+
ExtensionActionContextMenuBridge bridge =
new ExtensionActionContextMenuBridge(
- mTask, actionId, webContents, ContextMenuSource.MENU_ITEM);
+ task, actionId, webContents, ContextMenuSource.MENU_ITEM);
ExtensionActionContextMenuUtils.showContextMenu(
mContext,
diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerImpl.java b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerImpl.java
--- a/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerImpl.java
+++ b/chrome/browser/ui/browser_window/internal/android/java/src/org/chromium/chrome/browser/ui/browser_window/ChromeAndroidTaskTrackerImpl.java
@@ -19,6 +19,7 @@ import org.chromium.base.ResettersForTesting;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -23,6 +23,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.customtabs.PopupIntentCreatorProvider;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
+import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask.PendingTaskInfo;
import org.chromium.chrome.browser.util.WindowFeatures;
import org.chromium.ui.base.ActivityWindowAndroid;
@@ -32,6 +33,30 @@ import java.util.Map;
@NullMarked
@@ -39,6 +40,30 @@ import java.util.Map;
final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
private static final String TAG = "CrAndroidTaskTracker";
+ private static class Key {
+ public final Integer mTaskId;
@@ -775,129 +762,120 @@ diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chro
private static @Nullable ChromeAndroidTaskTrackerImpl sInstance;
private static boolean sPausePendingTaskActivityCreationForTesting;
@@ -50,7 +75,7 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
@@ -56,7 +81,7 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
* Maps {@link ChromeAndroidTask} IDs to their instances. This reflects the {@link
* ChromeAndroidTask}'s ID when it is alive, and is different from its ID in the pending state.
*/
@GuardedBy("mTasksLock")
- private final Map<Integer, ChromeAndroidTask> mTasks = new ArrayMap<>();
+ private final Map<Key, ChromeAndroidTask> mTasksCromite = new ArrayMap<>();
/**
* Maps pending {@link ChromeAndroidTask} IDs to their instances. This reflects the {@link
@@ -82,7 +107,8 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
@@ -86,7 +111,8 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
ThreadUtils.assertOnUiThread();
int taskId = getTaskId(activityScopedObjects.mActivityWindowAndroid);
synchronized (mTasksLock) {
- var existingTask = mTasks.get(taskId);
+ var key = new Key(taskId, activityScopedObjects.mTabModel);
+ var existingTask = mTasksCromite.get(key);
if (existingTask != null) {
assert existingTask.getBrowserWindowType() == browserWindowType
: "The browser window type of an existing task can't be changed.";
@@ -94,12 +120,12 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
ChromeAndroidTask pendingTask = mPendingTasks.remove(pendingId);
assert pendingTask != null : "Invalid pendingId provided.";
pendingTask.setActivityScopedObjects(activityScopedObjects);
- mTasks.put(taskId, pendingTask);
+ mTasksCromite.put(key, pendingTask);
return pendingTask;
}
var newTask = new ChromeAndroidTaskImpl(browserWindowType, activityScopedObjects);
- mTasks.put(taskId, newTask);
+ mTasksCromite.put(key, newTask);
mObservers.forEach((observer) -> observer.onTaskAdded(newTask));
return newTask;
- var existingTask = mTasks.get(taskId);
+ var key = new Key(taskId, activityScopedObjects.mTabModel);
+ var existingTask = mTasksCromite.get(key);
if (existingTask != null) {
assert existingTask.getBrowserWindowType() == browserWindowType
: "The browser window type of an existing task can't be changed.";
@@ -98,12 +124,12 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
ChromeAndroidTask pendingTask = mPendingTasks.remove(pendingId);
assert pendingTask != null : "Invalid pendingId provided.";
pendingTask.addActivityScopedObjects(activityScopedObjects);
- mTasks.put(taskId, pendingTask);
+ mTasksCromite.put(key, pendingTask);
return pendingTask;
}
@@ -139,29 +165,30 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
var newTask = new ChromeAndroidTaskImpl(browserWindowType, activityScopedObjects);
- mTasks.put(taskId, newTask);
+ mTasksCromite.put(key, newTask);
mObservers.forEach((observer) -> observer.onTaskAdded(newTask));
return newTask;
}
@@ -141,28 +167,43 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
@Override
@Nullable
- public ChromeAndroidTask get(int taskId) {
+ public ChromeAndroidTask get(int taskId, TabModel tabModel) {
synchronized (mTasksLock) {
- return mTasks.get(taskId);
+ var key = new Key(taskId, tabModel);
+ return mTasksCromite.get(key);
}
ThreadUtils.assertOnUiThread();
- return mTasks.get(taskId);
+ var key = new Key(taskId, tabModel);
+ return mTasksCromite.get(key);
}
- @Override
- public void remove(int taskId) {
- synchronized (mTasksLock) {
- removeInternalLocked(taskId);
- }
- ThreadUtils.assertOnUiThread();
- removeInternal(taskId);
- }
+
+ // @Override
+ // public void remove(int taskId) {
+ // synchronized (mTasksLock) {
+ // removeInternalLocked(taskId);
+ // }
+ // }
+ // ThreadUtils.assertOnUiThread();
+ // removeInternal(taskId);
+ // }
@Override
public void onActivityWindowAndroidDestroy(ActivityWindowAndroid activityWindowAndroid) {
synchronized (mTasksLock) {
- int taskId = getTaskId(activityWindowAndroid);
- var task = mTasks.get(taskId);
+ int taskId = getTaskId(activityWindowAndroid);
ThreadUtils.assertOnUiThread();
int taskId = getTaskId(activityWindowAndroid);
- var task = mTasks.get(taskId);
- if (task == null) {
- return;
- }
+ for (Key key : mTasksCromite.keySet()) {
+ for (Key key : mTasksCromite.keySet()) {
+ if (key == null) continue;
+ if (key.mTaskId != taskId) continue;
+
+ var task = mTasksCromite.get(key);
// If the ActivityWindowAndroid that's passed in isn't the ActivityWindowAndroid held by
// this ChromeAndroidTask, don't do anything.
//
@@ -180,6 +207,17 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
// the right time to clear and destroy the ActivityWindowAndroid held by the
// ChromeAndroidTask.
if (task.getActivityWindowAndroid() != activityWindowAndroid) {
+ if (task.getActivityWindowAndroid() != activityWindowAndroid) {
+ continue;
+ }
+ onActivityWindowAndroidDestroy(task);
+ }
+ onActivityWindowAndroidDestroy(task, activityWindowAndroid);
+ }
+ }
+
+ @Override
+ public void onActivityWindowAndroidDestroy(ChromeAndroidTask task) {
+ synchronized (mTasksLock) {
+ if (task == null) {
return;
}
+ public void onActivityWindowAndroidDestroy(ChromeAndroidTask task, ActivityWindowAndroid activityWindowAndroid) {
if (task == null) {
return;
}
@@ -195,7 +233,7 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
//
// In the future, we can register a Task listener when a ChromeAndroidTask is created,
// then destroy it when notified of the Task removal.
- removeInternalLocked(taskId);
+ removeInternalLocked(task);
- task.removeActivityScopedObjects(activityWindowAndroid);
+ task.removeActivityScopedObjects(activityWindowAndroid); <-- check this
// Destroy the ChromeAndroidTask if there is no ActivityWindowAndroid associated with it.
//
@@ -177,7 +218,7 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
// In the future, we can register a Task listener when a ChromeAndroidTask is created,
// then destroy it when notified of the Task removal.
if (task.getTopActivityWindowAndroid() == null) {
- removeInternal(taskId);
+ removeInternal(task); <-- check this
}
}
@@ -259,8 +297,8 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
@@ -239,8 +280,8 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
*/
void removeAllForTesting() {
synchronized (mTasksLock) {
- mTasks.forEach((taskId, task) -> task.destroy());
- mTasks.clear();
+ mTasksCromite.forEach((taskId, task) -> task.destroy());
+ mTasksCromite.clear();
mPendingTasks.forEach((taskId, task) -> task.destroy());
mPendingTasks.clear();
}
@@ -299,11 +337,17 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
ThreadUtils.assertOnUiThread();
- mTasks.forEach((taskId, task) -> task.destroy());
- mTasks.clear();
+ mTasksCromite.forEach((taskId, task) -> task.destroy());
+ mTasksCromite.clear();
mPendingTasks.forEach((taskId, task) -> task.destroy());
mPendingTasks.clear();
}
@@ -275,11 +316,17 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
pendingTaskInfo.mIntent, pendingTaskInfo.mCreateParams.getInitialBounds());
}
@GuardedBy("mTasksLock")
- private void removeInternalLocked(int taskId) {
- private void removeInternal(int taskId) {
- var taskRemoved = mTasks.remove(taskId);
+ private void removeInternalLocked(ChromeAndroidTask taskRemoved) {
+ private void removeInternal(ChromeAndroidTask taskRemoved) {
if (taskRemoved != null) {
- mObservers.forEach((observer) -> observer.onTaskRemoved(taskRemoved));
- taskRemoved.destroy();
@@ -913,20 +891,20 @@ diff --git a/chrome/browser/ui/browser_window/internal/android/java/src/org/chro
}
}
@@ -339,7 +383,8 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
AndroidBrowserWindowCreateParams createParams) {
switch (createParams.getWindowType()) {
@@ -314,7 +361,8 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
@BrowserWindowType int browserWindowType = createParams.getWindowType();
switch (browserWindowType) {
case BrowserWindowType.NORMAL:
- for (ChromeAndroidTask task : mTasks.values()) {
+ List<ChromeAndroidTask> tasks = new ArrayList<>(mTasksCromite.values());
+ for (ChromeAndroidTask task : tasks) {
boolean isIncognito = createParams.getProfile().isIncognitoBranded();
var intent = task.createIntentForNormalBrowserWindow(isIncognito);
if (intent != null) {
@@ -403,7 +448,7 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
return intent;
@@ -360,7 +408,7 @@ final class ChromeAndroidTaskTrackerImpl implements ChromeAndroidTaskTracker {
/** Returns all PENDING and ALIVE Tasks. */
@GuardedBy("mTasksLock")
private List<ChromeAndroidTask> getAllTasksLocked() {
private List<ChromeAndroidTask> getAllTasks() {
- List<ChromeAndroidTask> tasks = new ArrayList<>(mTasks.values());
+ List<ChromeAndroidTask> tasks = new ArrayList<>(mTasksCromite.values());
tasks.addAll(mPendingTasks.values());
+50 -45
View File
@@ -15,7 +15,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/android/java/AndroidManifest.xml | 28 ++-
.../res/layout/sharing_intent_content.xml | 88 ++++++++++
.../chrome/browser/IntentHandler.java | 16 +-
.../browser/LaunchIntentDispatcher.java | 14 +-
.../browser/LaunchIntentDispatcher.java | 2 +-
.../document/ChromeLauncherActivity.java | 13 +-
.../init/ProcessInitializationHandler.java | 2 +
.../SharedIntentShareActivity.java | 159 ++++++++++++++++++
.../flags/android/chrome_feature_list.cc | 1 +
@@ -24,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../about_flags_cc/Enable-share-intent.inc | 12 ++
.../Enable-share-intent.inc | 3 +
.../Enable-share-intent.inc | 1 +
14 files changed, 332 insertions(+), 8 deletions(-)
15 files changed, 332 insertions(+), 9 deletions(-)
create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Enable-share-intent.inc
@@ -34,7 +35,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
@@ -614,6 +614,7 @@ chrome_java_resources = [
@@ -589,6 +589,7 @@ chrome_java_resources = [
"java/res/layout/shopping_accessory_view_layout.xml",
"java/res/layout/status_indicator_container.xml",
"java/res/layout/suggestions_tile_view_condensed.xml",
@@ -45,7 +46,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
@@ -1035,6 +1035,7 @@ chrome_java_sources = [
@@ -1047,6 +1047,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java",
"java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java",
"java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java",
@@ -56,7 +57,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -271,12 +271,6 @@ by a child template that "extends" this file.
@@ -274,12 +274,6 @@ by a child template that "extends" this file.
<data android:mimeType="text/plain"/>
<data android:mimeType="application/xhtml+xml"/>
</intent-filter>
@@ -69,7 +70,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<!-- content URI support. -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@@ -355,6 +349,10 @@ by a child template that "extends" this file.
@@ -365,6 +359,10 @@ by a child template that "extends" this file.
<action android:name="android.intent.action.MEDIA_SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
@@ -80,7 +81,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<intent-filter>
<action android:name="android.speech.action.VOICE_SEARCH_RESULTS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -391,6 +389,24 @@ by a child template that "extends" this file.
@@ -401,6 +399,24 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
@@ -201,7 +202,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -197,6 +197,9 @@ public class IntentHandler {
@@ -200,6 +200,9 @@ public class IntentHandler {
private static final String EXTRA_TAB_LAUNCH_TYPE =
"org.chromium.chrome.browser.tab_launch_type";
@@ -211,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
/** A hash code for the URL to verify intent data hasn't been modified. */
public static final String EXTRA_DATA_HASH_CODE = "org.chromium.chrome.browser.data_hash";
@@ -1536,6 +1539,17 @@ public class IntentHandler {
@@ -1539,6 +1542,17 @@ public class IntentHandler {
return IntentUtils.safeGetIntExtra(intent, EXTRA_DEST_TAB_ID, Tab.INVALID_TAB_ID);
}
@@ -229,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
/**
* Creates an Intent that will launch a ChromeTabbedActivity on the new tab page. The Intent
* will be trusted and therefore able to launch Incognito tabs.
@@ -1744,7 +1758,7 @@ public class IntentHandler {
@@ -1749,7 +1763,7 @@ public class IntentHandler {
String headers = getExtraHeadersFromIntent(intent);
headers = maybeAddAdditionalContentHeaders(intent, url, headers);
@@ -241,38 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -51,6 +51,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity;
import org.chromium.chrome.browser.searchwidget.SearchActivity;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
@@ -222,11 +223,22 @@ public class LaunchIntentDispatcher {
String query = null;
final String action = intent.getAction();
+ boolean isWebSearch = Intent.ACTION_WEB_SEARCH.equals(action);
if (Intent.ACTION_SEARCH.equals(action)
+ || isWebSearch
|| MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(action)) {
query = IntentUtils.safeGetStringExtra(intent, SearchManager.QUERY);
}
if (TextUtils.isEmpty(query)) return false;
+ if (isWebSearch) {
+ Intent i = new Intent(Intent.ACTION_SEND);
+ i.putExtra(Intent.EXTRA_TEXT, query);
+ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ i.setClass(ContextUtils.getApplicationContext(),
+ SharedIntentShareActivity.class);
+ ContextUtils.getApplicationContext().startActivity(i);
+ return true;
+ }
// Only the ChromeLauncherActivity can handle search intents. Drop the intent and abort the
// launch.
@@ -504,8 +516,8 @@ public class LaunchIntentDispatcher {
@@ -351,8 +351,8 @@ public class LaunchIntentDispatcher {
/*incognito*/true);
newIntent.setData(mIntent.getData());
newIntent.setPackage(applicationContext.getPackageName());
@@ -282,6 +252,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
}
if (!chromeTabbedTaskExists(mActivity)) {
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java
@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.searchwidget.SearchActivity;
+import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabwindow.TabWindowInfo;
import org.chromium.chrome.browser.webapps.WebappLauncherActivity;
@@ -158,12 +159,22 @@ public class ChromeLauncherActivity extends Activity {
String query = null;
final String action = intent.getAction();
+ boolean isWebSearch = Intent.ACTION_WEB_SEARCH.equals(action);
if (Intent.ACTION_SEARCH.equals(action)
+ || isWebSearch
|| MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(action)) {
query = IntentUtils.safeGetStringExtra(intent, SearchManager.QUERY);
}
if (TextUtils.isEmpty(query)) return false;
-
+ if (isWebSearch) {
+ Intent i = new Intent(Intent.ACTION_SEND);
+ i.putExtra(Intent.EXTRA_TEXT, query);
+ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ i.setClass(ContextUtils.getApplicationContext(),
+ SharedIntentShareActivity.class);
+ ContextUtils.getApplicationContext().startActivity(i);
+ return true;
+ }
Intent searchIntent = new Intent(Intent.ACTION_WEB_SEARCH);
searchIntent.putExtra(SearchManager.QUERY, query);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -468,7 +473,7 @@ new file mode 100644
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -410,6 +410,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -406,6 +406,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kRelatedSearchesAllLanguage,
&kRelatedSearchesSwitch,
&kReloadTabUiResourcesIfChanged,
@@ -479,7 +484,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -584,6 +584,7 @@ public abstract class ChromeFeatureList {
@@ -575,6 +575,7 @@ public abstract class ChromeFeatureList {
public static final String RECENTLY_CLOSED_TABS_AND_WINDOWS = "RecentlyClosedTabsAndWindows";
public static final String RECORD_INCOGNITO_NTP_TIME_TO_FIRST_NAVIGATION_METRIC =
"RecordIncognitoNtpTimeToFirstNavigationMetric";
@@ -490,7 +495,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -6410,6 +6410,19 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -6447,6 +6447,19 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
Make sure a phone app is enabled on this device
</message>
File diff suppressed because it is too large Load Diff
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 8 +-
.../android/java/res/xml/main_preferences.xml | 5 +
.../browser/download/DownloadUtils.java | 6 +
.../browser/download/DownloadUtils.java | 7 +
.../init/ProcessInitializationHandler.java | 4 +
chrome/android/java_sources.gni | 3 +
chrome/browser/BUILD.gn | 7 +
@@ -136,7 +136,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../strings/userscripts_strings.grdp | 54 ++
.../Experimental-user-scripts-support.inc | 13 +
tools/gritsettings/resource_ids.spec | 6 +
109 files changed, 10493 insertions(+), 3 deletions(-)
109 files changed, 10494 insertions(+), 3 deletions(-)
create mode 100644 components/user_scripts/README.md
create mode 100755 components/user_scripts/android/BUILD.gn
create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
@@ -242,7 +242,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
":chrome_base_module_resources",
":ui_locale_string_resources",
"//chrome/android/webapk/libs/common:splash_resources",
@@ -695,6 +699,7 @@ if (_is_default_toolchain) {
@@ -699,6 +703,7 @@ if (_is_default_toolchain) {
"//components/ukm/android:java",
"//components/url_formatter/android:url_formatter_java",
"//components/user_prefs/android:java",
@@ -261,7 +261,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -145,6 +145,11 @@ found in the LICENSE file.
@@ -141,6 +141,11 @@ found in the LICENSE file.
android:key="useragent_settings"
android:order="20"
android:title="@string/prefs_useragent_settings"/>
@@ -276,26 +276,27 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
@@ -80,6 +80,7 @@ import org.chromium.ui.base.DeviceFormFactor;
@@ -81,6 +81,7 @@ import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.MimeTypeUtils;
import org.chromium.ui.widget.Toast;
import org.chromium.url.GURL;
+import org.chromium.chrome.browser.user_scripts.UserScriptsUtils;
import java.io.File;
@@ -430,6 +431,11 @@ public class DownloadUtils {
@Nullable String referrer,
@DownloadOpenSource int source,
Context context) {
+ if (UserScriptsUtils.getInstance().openFile(filePath, mimeType, downloadGuid,
+ originalUrl, referrer,
+ getUriForItem(filePath))) {
import java.util.Locale;
@@ -466,6 +467,12 @@ public class DownloadUtils {
* @param req The {@link DownloadOpenRequest} with all open-file parameters.
*/
private static boolean doOpenFile(DownloadOpenRequest req) {
+ if (UserScriptsUtils.getInstance().openFile(
+ req.mFilePath, req.mMimeType, req.mDownloadGuid,
+ req.mOriginalUrl, req.mReferrer,
+ getUriForItem(req.mFilePath))) {
+ return true;
+ }
DownloadMetrics.recordDownloadOpen(source, mimeType);
DownloadManagerService service = DownloadManagerService.getDownloadManagerService();
// Check if Chrome should open the file itself.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -337,7 +338,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3720,6 +3720,13 @@ static_library("browser") {
@@ -3689,6 +3689,13 @@ static_library("browser") {
]
deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
}
@@ -354,7 +355,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
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
@@ -194,6 +194,7 @@
@@ -190,6 +190,7 @@
#include "components/ui_devtools/switches.h"
#include "components/variations/variations_switches.h"
#include "components/version_info/channel.h"
@@ -365,15 +366,15 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
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
@@ -284,6 +284,7 @@
@@ -258,6 +258,7 @@
#include "components/ntp_tiles/popular_sites_impl.h"
#include "components/permissions/contexts/geolocation_permission_context_android.h"
#include "components/webapps/browser/android/install_prompt_prefs.h"
+#include "components/user_scripts/browser/user_script_prefs.h"
#else // BUILDFLAG(IS_ANDROID)
#include "chrome/browser/actor/ui/actor_ui_state_manager_prefs.h"
#include "chrome/browser/contextual_cueing/contextual_cueing_prefs.h"
#include "chrome/browser/gcm/gcm_product_util.h"
@@ -1717,6 +1718,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1755,6 +1756,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
omnibox::RegisterProfilePrefs(registry);
ZeroSuggestProvider::RegisterProfilePrefs(registry);
NtpCustomBackgroundService::RegisterProfilePrefs(registry);
@@ -399,7 +400,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -598,6 +598,11 @@
@@ -588,6 +588,11 @@
#include "chrome/browser/net/nss_service_factory.h"
#endif
@@ -411,7 +412,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsProfiles>());
}
@@ -1452,6 +1457,10 @@ void ChromeBrowserMainExtraPartsProfiles::
@@ -1443,6 +1448,10 @@ void ChromeBrowserMainExtraPartsProfiles::
#endif
WebDataServiceFactory::GetInstance();
webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
@@ -425,7 +426,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
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
@@ -122,6 +122,10 @@
@@ -124,6 +124,10 @@
#include "extensions/common/manifest.h"
#endif
@@ -436,7 +437,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
#if BUILDFLAG(ENABLE_SESSION_SERVICE)
#include "chrome/browser/sessions/app_session_service_factory.h"
#include "chrome/browser/sessions/session_service_factory.h"
@@ -1562,6 +1566,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
@@ -1569,6 +1573,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
// initializing the supervised flag if necessary).
ChildAccountServiceFactory::GetForProfile(profile)->Init();
ListFamilyMembersServiceFactory::GetForProfile(profile)->Init();
@@ -524,7 +525,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u
#if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER)
#include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h"
@@ -446,7 +449,9 @@ void RegisterChromeWebUIConfigs() {
@@ -447,7 +450,9 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(
std::make_unique<safe_browsing::ChromeSafeBrowsingUIConfig>());
#endif
@@ -568,7 +569,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -239,6 +239,12 @@ static_library("renderer") {
@@ -240,6 +240,12 @@ static_library("renderer") {
deps += [ "//components/webapps/isolated_web_apps:scheme" ]
}
@@ -627,7 +628,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
#if BUILDFLAG(ENABLE_PAINT_PREVIEW)
new paint_preview::PaintPreviewRecorderImpl(render_frame);
#endif
@@ -1408,6 +1430,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
@@ -1405,6 +1427,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -645,7 +646,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
}
void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
@@ -1417,6 +1450,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
@@ -1414,6 +1447,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -663,7 +664,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
}
void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
@@ -1426,6 +1470,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
@@ -1423,6 +1467,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -11493,14 +11494,14 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -1254,6 +1254,12 @@
"META": {"sizes": {"includes": [5]}},
"includes": [7490],
"META": {"sizes": {"includes": [10]}},
"includes": [7495],
},
+ "components/user_scripts/renderer/resources/user_scripts_renderer_resources.grd": {
+ "includes": [7500],
+ "includes": [7505],
+ },
+ "components/user_scripts/browser/resources/browser_resources.grd": {
+ "includes": [7620],
+ "includes": [7625],
+ },
# END components/ section.
@@ -4,27 +4,14 @@ Subject: Guard for user-agent reduction
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/chrome_content_browser_client.cc | 2 +-
components/embedder_support/user_agent_utils.cc | 5 +++++
.../platform/runtime_enabled_features.json5 | 16 ++++++++--------
3 files changed, 14 insertions(+), 9 deletions(-)
components/embedder_support/user_agent_utils.cc | 5 +++++
.../platform/runtime_enabled_features.json5 | 14 +++++++-------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1472,7 +1472,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
registry->RegisterIntegerPref(
prefs::kUserAgentReduction,
static_cast<int>(
- embedder_support::UserAgentReductionEnterprisePolicyState::kDefault));
+ embedder_support::UserAgentReductionEnterprisePolicyState::kForceEnabled));
registry->RegisterBooleanPref(prefs::kOriginAgentClusterDefaultEnabled, true);
registry->RegisterBooleanPref(
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -899,6 +899,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
@@ -854,6 +854,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
}
std::string BuildModelInfo() {
@@ -32,7 +19,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
#if BUILDFLAG(IS_ANDROID)
// Model information is not exposed on Android desktop.
if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_DESKTOP) {
@@ -941,6 +942,10 @@ std::string GetAndroidOSInfo(
@@ -896,6 +897,10 @@ std::string GetAndroidOSInfo(
IncludeAndroidModel include_android_model) {
std::string android_info_str;
@@ -46,7 +33,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
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
@@ -4155,9 +4155,9 @@
@@ -4244,22 +4244,22 @@
// If enabled, the deviceModel will be reduced to "K" and the
// androidVersion will be reduced to a static "10" string in android
// User-Agent string.
@@ -59,7 +46,13 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
},
// If enabled, the platform version in User-Agent Data will be removed.
// This feature is limited to Linux only.
@@ -4169,15 +4169,15 @@
{
- name: "ReduceUserAgentDataLinuxPlatformVersion",
- status: {"Linux": "stable"},
+ name: "ReduceUserAgentDataLinuxPlatformVersion", // keep enabled
+ status: {"Linux": "stable"}, // in bromite
},
// If enabled, the minor version of the User-Agent string will be reduced.
// This User-Agent Reduction feature has been enabled starting from M101,
// but we still keep this flag for future phase tests.
{
@@ -67,16 +60,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
- status: "stable",
+ name: "ReduceUserAgentMinorVersion", // keep enabled
+ status: "stable", // in bromite
},
{
// If enabled, the platform and oscpu of the User-Agent string will be
// reduced.
- name: "ReduceUserAgentPlatformOsCpu",
- depends_on: ["ReduceUserAgentMinorVersion"],
- status: {"Android": "", "default": "stable"},
+ name: "ReduceUserAgentPlatformOsCpu", // keep
+ depends_on: ["ReduceUserAgentMinorVersion"], // enabled
+ status: {"Android": "", "default": "stable"}, // in bromite
},
{
public: true,
File diff suppressed because it is too large Load Diff
@@ -14,9 +14,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../net/profile_network_context_service.cc | 12 +++---
.../privacy_sandbox_settings_delegate.cc | 1 +
...storage_access_grant_permission_context.cc | 13 +++++++
.../experiment/experiment_manager_impl.cc | 1 +
.../strings/android/site_settings.grdp | 4 +-
.../core/browser/cookie_settings.cc | 4 +-
.../core/browser/cookie_settings.cc | 6 +--
.../core/common/cookie_settings_base.cc | 39 +------------------
...ioning-all-cookies-by-top-frame-domain.inc | 4 ++
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
@@ -41,7 +40,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../cookie_store_delete_options.idl | 2 +-
ui/webui/webui_allowlist.cc | 1 +
url/url_features.cc | 1 +
32 files changed, 91 insertions(+), 66 deletions(-)
31 files changed, 90 insertions(+), 68 deletions(-)
create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
@@ -51,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3651,7 +3651,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
@@ -3630,7 +3630,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
scoped_refptr<content_settings::CookieSettings> cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
if (!cookie_settings) {
@@ -77,7 +76,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -1133,16 +1133,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
@@ -1132,16 +1132,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
// UI to interact with SameSite cookies on accounts.google.com, which is used
// for displaying a list of available accounts on the NTP
// (chrome://new-tab-page), etc.
@@ -103,14 +102,14 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
@@ -354,6 +354,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const {
@@ -144,6 +144,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const {
bool PrivacySandboxSettingsDelegate::
AreThirdPartyCookiesBlockedByCookieDeprecationExperiment() const {
bool PrivacySandboxSettingsDelegate::PrivacySandboxRestrictedNoticeRequired()
const {
+ if ((true)) return false;
if (net::cookie_util::IsForceThirdPartyCookieBlockingEnabled()) {
return false;
}
if ((true)) return true;
auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_);
diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
--- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
+++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc
@@ -141,17 +140,6 @@ diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_c
if (metadata.AreSitesInSameFirstPartySet()) {
switch (metadata.top_frame_entry()->site_type()) {
case net::SiteType::kPrimary:
diff --git a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc b/chrome/browser/tpcd/experiment/experiment_manager_impl.cc
--- a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc
+++ b/chrome/browser/tpcd/experiment/experiment_manager_impl.cc
@@ -177,6 +177,7 @@ void ExperimentManagerImpl::MaybeUpdateSyntheticTrialRegistration() {
}
std::optional<bool> ExperimentManagerImpl::IsClientEligible() const {
+ if ((true)) return std::nullopt;
if (kForceEligibleForTesting.Get()) {
return true;
}
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
@@ -164,7 +152,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
</message>
<message name="IDS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED" desc="3 of 3 possible states for the Third-party cookies setting. This text appears beneath the 'Third-party cookies' button label." >
Third-party cookies are blocked
@@ -688,7 +688,7 @@
@@ -691,7 +691,7 @@
A site you visit can embed content from other sites, for example, images, ads, and text. Cookies set by these other sites are called third-party cookies.
</message>
<message name="IDS_WEBSITE_SETTINGS_THIRD_PARTY_COOKIES_PAGE_ALLOW_RADIO_LABEL" desc="1 of 3 options the user has to configure cookies. See the cookies page for context: chrome://settings/cookies.">
@@ -176,7 +164,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc
--- a/components/content_settings/core/browser/cookie_settings.cc
+++ b/components/content_settings/core/browser/cookie_settings.cc
@@ -126,6 +126,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic(
@@ -115,6 +115,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic(
const GURL& first_party_url,
base::TimeDelta ttl,
bool use_schemeless_patterns) {
@@ -184,11 +172,13 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
if (url.is_empty() || first_party_url.is_empty()) {
return;
}
@@ -390,8 +391,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
@@ -352,10 +353,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
}
bool CookieSettings::MitigationsEnabledFor3pcdInternal() const {
- return AreThirdPartyCookiesLimited() ||
- return (base::FeatureList::IsEnabled(
- content_settings::features::kTrackingProtection3pcd) &&
- !is_incognito_) ||
- net::cookie_util::IsForceThirdPartyCookieBlockingEnabled();
+ return false;
}
@@ -197,7 +187,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc
--- a/components/content_settings/core/common/cookie_settings_base.cc
+++ b/components/content_settings/core/common/cookie_settings_base.cc
@@ -598,48 +598,11 @@ CookieSettingsBase::DecideAccess(const GURL& url,
@@ -597,48 +597,11 @@ CookieSettingsBase::DecideAccess(const GURL& url,
ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting};
}
@@ -246,7 +236,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
if (is_explicit_setting) {
return AllowAllCookies{
@@ -675,7 +638,7 @@ CookieSettingsBase::GetCookieSettingInternal(
@@ -674,7 +637,7 @@ CookieSettingsBase::GetCookieSettingInternal(
}
return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW,
/*allow_partitioned_cookies=*/true,
@@ -305,7 +295,7 @@ new file mode 100644
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
--- a/net/cookies/canonical_cookie.cc
+++ b/net/cookies/canonical_cookie.cc
@@ -1089,11 +1089,6 @@ CanonicalCookie::IsCanonicalForFromStorage() const {
@@ -1094,11 +1094,6 @@ CanonicalCookie::IsCanonicalForFromStorage() const {
return Fail(CanonicalizationFailure::kEmptyNameWithHiddenPrefix);
}
@@ -344,7 +334,7 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc
--- a/net/cookies/cookie_util.cc
+++ b/net/cookies/cookie_util.cc
@@ -803,6 +803,7 @@ bool IsCookiePartitionedValid(const GURL& url,
@@ -802,6 +802,7 @@ bool IsCookiePartitionedValid(const GURL& url,
bool secure,
bool is_partitioned,
bool partition_has_nonce) {
@@ -399,7 +389,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
--- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
@@ -816,6 +816,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
@@ -817,6 +817,14 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
if (!restore_old_session_cookies_)
DeleteSessionCookiesOnStartup();
@@ -430,7 +420,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -1652,6 +1652,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() {
@@ -1627,6 +1627,7 @@ bool URLRequestHttpJob::NeedsRetryWithStorageAccess() {
auto determine_storage_access_retry_outcome =
[&]() -> cookie_util::ActivateStorageAccessRetryOutcome {
using enum cookie_util::ActivateStorageAccessRetryOutcome;
@@ -441,7 +431,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc
--- a/services/network/cookie_settings.cc
+++ b/services/network/cookie_settings.cc
@@ -46,8 +46,7 @@ namespace network {
@@ -45,8 +45,7 @@ namespace network {
namespace {
bool ShouldApply3pcdRelatedReasons(const net::CanonicalCookie& cookie) {
@@ -451,7 +441,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti
}
bool IsValidType(ContentSettingsType type) {
@@ -125,8 +124,7 @@ bool IsOriginOpaqueHttpOrHttps(
@@ -124,8 +123,7 @@ bool IsOriginOpaqueHttpOrHttps(
// static
bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie,
const CookieSettingWithMetadata& setting) {
@@ -475,7 +465,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
--- a/services/network/restricted_cookie_manager.cc
+++ b/services/network/restricted_cookie_manager.cc
@@ -984,6 +984,12 @@ void RestrictedCookieManager::SetCookieFromString(
@@ -985,6 +985,12 @@ void RestrictedCookieManager::SetCookieFromString(
shared_memory_region = GetAndPrepareSharedMemoryRegion(url);
}
@@ -491,7 +481,7 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -2582,6 +2582,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
@@ -2588,6 +2588,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
auto determine_storage_access_load_outcome =
[&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome {
@@ -513,7 +503,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
--- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc
@@ -393,6 +393,7 @@ ScriptPromise<IDLUndefined> CookieStore::set(ScriptState* script_state,
@@ -413,6 +413,7 @@ ScriptPromise<IDLUndefined> CookieStore::set(ScriptState* script_state,
CookieInit* set_options = CookieInit::Create();
set_options->setName(name);
set_options->setValue(value);
@@ -521,7 +511,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t
return set(script_state, set_options, exception_state);
}
@@ -416,6 +417,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
@@ -436,6 +437,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
set_options->setName(name);
set_options->setValue(name.empty() ? "deleted" : "");
set_options->setExpires(0);
@@ -529,7 +519,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t
return DoWrite(script_state, set_options, exception_state);
}
@@ -431,6 +433,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
@@ -451,6 +453,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
set_options->setPath(options->path());
set_options->setSameSite(V8CookieSameSite::Enum::kStrict);
set_options->setPartitioned(options->partitioned());
File diff suppressed because it is too large Load Diff
@@ -68,7 +68,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
@@ -55,6 +55,11 @@ chrome_java_resources = [
@@ -53,6 +53,11 @@ chrome_java_resources = [
"java/res/drawable-hdpi/ic_exit_to_app_white_24dp.png",
"java/res/drawable-hdpi/ic_file_download_white_24dp.png",
"java/res/drawable-hdpi/ic_link_grey600_36dp.png",
@@ -80,7 +80,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/drawable-hdpi/ic_phone_googblue_36dp.png",
"java/res/drawable-hdpi/ic_photo_camera.png",
"java/res/drawable-hdpi/ic_place_googblue_36dp.png",
@@ -563,6 +568,7 @@ chrome_java_resources = [
@@ -538,6 +543,7 @@ chrome_java_resources = [
"java/res/layout/manage_sync_settings_bottom_bar.xml",
"java/res/layout/material_tooltip.xml",
"java/res/layout/multiline_spinner_item.xml",
@@ -88,7 +88,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/mv_tiles_layout.xml",
"java/res/layout/navigation_bubble.xml",
"java/res/layout/navigation_sheet.xml",
@@ -572,8 +578,10 @@ chrome_java_resources = [
@@ -547,8 +553,10 @@ chrome_java_resources = [
"java/res/layout/new_custom_tab_toolbar.xml",
"java/res/layout/new_tab_page_incognito.xml",
"java/res/layout/new_tab_page_layout.xml",
@@ -102,7 +102,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
@@ -630,6 +630,7 @@ chrome_java_sources = [
@@ -634,6 +634,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java",
"java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java",
"java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
@@ -110,7 +110,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java",
@@ -1059,6 +1060,7 @@ chrome_java_sources = [
@@ -1071,6 +1072,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java",
@@ -576,12 +576,12 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -3475,7 +3475,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
getStartupMetricsTracker(),
@@ -3472,7 +3472,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
mRootUiCoordinator.getExclusiveAccessManager(),
mBackPressManager,
- mMultiInstanceManager);
+ mMultiInstanceManager,
mMultiInstanceManager,
- mRecentlyClosedEntriesManager);
+ mRecentlyClosedEntriesManager,
+ mBookmarkManagerOpenerSupplier);
}
return mTabDelegateFactory;
@@ -589,7 +589,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
@@ -13,6 +13,7 @@ import org.chromium.build.annotations.Nullable;
@@ -14,6 +14,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
import org.chromium.chrome.browser.back_press.BackPressManager;
@@ -597,7 +597,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
@@ -56,6 +57,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -58,6 +59,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
import java.util.List;
import java.util.function.Supplier;
@@ -606,7 +606,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
/**
* {@link TabDelegateFactory} class to be used in all {@link Tab} instances owned by a {@link
* ChromeTabbedActivity}.
@@ -89,6 +92,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -92,6 +95,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private final ObservableSupplier<TopInsetCoordinator> mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
private final @Nullable ExclusiveAccessManager mExclusiveAccessManager;
@@ -615,30 +615,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
private @Nullable NativePageFactory mNativePageFactory;
private final BackPressManager mBackPressManager;
private final MultiInstanceManager mMultiInstanceManager;
@@ -122,7 +127,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
StartupMetricsTracker startupMetricsTracker,
@@ -128,7 +133,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@Nullable ExclusiveAccessManager exclusiveAccessManager,
BackPressManager backPressManager,
- MultiInstanceManager multiInstanceManager) {
+ MultiInstanceManager multiInstanceManager,
MultiInstanceManager multiInstanceManager,
- RecentlyClosedEntriesManager recentlyClosedEntriesManager) {
+ RecentlyClosedEntriesManager recentlyClosedEntriesManager,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mActivity = activity;
mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate;
mShareDelegateSupplier = shareDelegateSupplier;
@@ -152,6 +158,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mExclusiveAccessManager = exclusiveAccessManager;
@@ -160,6 +166,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mBackPressManager = backPressManager;
mMultiInstanceManager = multiInstanceManager;
mRecentlyClosedEntriesManager = recentlyClosedEntriesManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
@Override
@@ -224,7 +231,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mTopInsetCoordinatorSupplier,
@@ -235,7 +242,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mStartupMetricsTracker,
mBackPressManager,
- mMultiInstanceManager);
+ mMultiInstanceManager,
mMultiInstanceManager,
- mRecentlyClosedEntriesManager);
+ mRecentlyClosedEntriesManager,
+ mBookmarkManagerOpenerSupplier);
}
return mNativePageFactory.createNativePage(url, candidatePage, tab, pdfInfo);
@@ -700,7 +700,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java
@@ -150,7 +150,10 @@ public class IdentityDiscController
@@ -151,7 +151,10 @@ public class IdentityDiscController
mButtonData.setButtonSpec(
buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email));
@@ -723,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.base.lifetime.Destroyable;
import org.chromium.base.metrics.RecordUserAction;
@@ -31,6 +32,7 @@ import org.chromium.chrome.browser.app.ChromeActivity;
@@ -33,6 +34,7 @@ import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.back_press.BackPressManager;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
@@ -731,7 +731,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginAdapter;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -98,6 +100,7 @@ public class NativePageFactory {
@@ -104,6 +106,7 @@ public class NativePageFactory {
private final ObservableSupplier<EdgeToEdgeController> mEdgeToEdgeControllerSupplier;
private final ObservableSupplier<TopInsetCoordinator> mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
@@ -739,38 +739,38 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private @Nullable NewTabPageCreationTracker mNewTabPageCreationTracker;
private @Nullable NativePageBuilder mNativePageBuilder;
@@ -124,7 +127,8 @@ public class NativePageFactory {
ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
@@ -134,7 +137,8 @@ public class NativePageFactory {
StartupMetricsTracker startupMetricsTracker,
BackPressManager backPressManager,
- MultiInstanceManager multiInstanceManager) {
+ MultiInstanceManager multiInstanceManager,
MultiInstanceManager multiInstanceManager,
- RecentlyClosedEntriesManager recentlyClosedEntriesManager) {
+ RecentlyClosedEntriesManager recentlyClosedEntriesManager,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mActivity = activity;
mBottomSheetController = sheetController;
mBrowserControlsManager = browserControlsManager;
@@ -144,6 +148,7 @@ public class NativePageFactory {
mStartupMetricsTracker = startupMetricsTracker;
@@ -157,6 +161,7 @@ public class NativePageFactory {
mBackPressManager = backPressManager;
mMultiInstanceManager = multiInstanceManager;
mRecentlyClosedEntriesManager = recentlyClosedEntriesManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
private NativePageBuilder getBuilder() {
@@ -169,7 +174,8 @@ public class NativePageFactory {
mTopInsetCoordinatorSupplier,
@@ -185,7 +190,8 @@ public class NativePageFactory {
mStartupMetricsTracker,
mBackPressManager,
- mMultiInstanceManager);
+ mMultiInstanceManager,
mMultiInstanceManager,
- mRecentlyClosedEntriesManager);
+ mRecentlyClosedEntriesManager,
+ mBookmarkManagerOpenerSupplier);
}
return mNativePageBuilder;
}
@@ -204,9 +210,10 @@ public class NativePageFactory {
private final StartupMetricsTracker mStartupMetricsTracker;
@@ -223,9 +229,10 @@ public class NativePageFactory {
private final BackPressManager mBackPressManager;
private final MultiInstanceManager mMultiInstanceManager;
private final RecentlyClosedEntriesManager mRecentlyClosedEntriesManager;
+ private final ObservableSupplier<BookmarkManagerOpener> mBookmarkManagerOpenerSupplier;
public NativePageBuilder(
@@ -779,25 +779,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
Supplier<NewTabPageCreationTracker> newTabPageCreationTracker,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager,
@@ -225,7 +232,8 @@ public class NativePageFactory {
ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
@@ -247,7 +254,8 @@ public class NativePageFactory {
StartupMetricsTracker startupMetricsTracker,
BackPressManager backPressManager,
- MultiInstanceManager multiInstanceManager) {
+ MultiInstanceManager multiInstanceManager,
MultiInstanceManager multiInstanceManager,
- RecentlyClosedEntriesManager recentlyClosedEntriesManager) {
+ RecentlyClosedEntriesManager recentlyClosedEntriesManager,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mActivity = activity;
mNewTabPageCreationTracker = newTabPageCreationTracker;
mBottomSheetController = sheetController;
@@ -246,6 +254,7 @@ public class NativePageFactory {
mStartupMetricsTracker = startupMetricsTracker;
@@ -271,6 +279,7 @@ public class NativePageFactory {
mBackPressManager = backPressManager;
mMultiInstanceManager = multiInstanceManager;
mRecentlyClosedEntriesManager = recentlyClosedEntriesManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
protected NativePage buildNewTabPage(Tab tab, String url) {
@@ -288,7 +297,8 @@ public class NativePageFactory {
@@ -315,7 +324,8 @@ public class NativePageFactory {
mEdgeToEdgeControllerSupplier,
mTopInsetCoordinatorSupplier,
mStartupMetricsTracker,
@@ -822,8 +822,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -133,6 +133,9 @@ import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
@@ -137,6 +137,9 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.url.GURL;
+import androidx.annotation.NonNull;
@@ -832,7 +832,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
import java.util.List;
import java.util.function.Supplier;
@@ -534,7 +537,8 @@ public class NewTabPage
@@ -544,7 +547,8 @@ public class NewTabPage
ObservableSupplier<EdgeToEdgeController> edgeToEdgeControllerSupplier,
ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
StartupMetricsTracker startupMetricsTracker,
@@ -842,7 +842,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
mConstructedTimeNs = System.nanoTime();
TraceEvent.begin(TAG);
@@ -563,7 +567,7 @@ public class NewTabPage
@@ -573,7 +577,7 @@ public class NewTabPage
nativePageHost,
tabModelSelector,
mTab,
@@ -870,15 +870,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import org.chromium.chrome.browser.lens.LensMetrics;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.logo.LogoBridge.Logo;
@@ -60,6 +62,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
@@ -61,6 +63,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout;
import org.chromium.chrome.browser.suggestions.tile.TileGroup;
import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate;
+import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout;
import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate;
import org.chromium.chrome.browser.ui.signin.signin_promo.NtpSigninPromoCoordinator;
@@ -111,6 +114,8 @@ public class NewTabPageLayout extends LinearLayout
@@ -123,6 +126,8 @@ public class NewTabPageLayout extends LinearLayout
private @Nullable DisplayStyleObserver mDisplayStyleObserver;
private CallbackController mCallbackController = new CallbackController();
@@ -887,7 +887,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
/**
* Whether the tiles shown in the layout have finished loading.
* With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress.
@@ -123,7 +128,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -135,7 +140,7 @@ public class NewTabPageLayout extends LinearLayout
*/
private boolean mHasShownView;
@@ -896,7 +896,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
private boolean mSearchProviderIsGoogle;
private boolean mShowingNonStandardGoogleLogo;
private boolean mIsOmniboxMobileParityUpdateV2Enabled;
@@ -131,7 +136,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -143,7 +148,7 @@ public class NewTabPageLayout extends LinearLayout
private boolean mInitialized;
private float mUrlFocusChangePercent;
@@ -905,7 +905,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
private boolean mIsViewMoving;
/** Flag used to request some layout changes after the next layout pass is completed. */
@@ -308,6 +313,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -336,6 +341,7 @@ public class NewTabPageLayout extends LinearLayout
initializeMostVisitedTilesCoordinator(
mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate);
initializeDseIconView(shouldShowDseIcon());
@@ -913,7 +913,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
initializeSearchBoxTextView();
initializeVoiceSearchButton();
initializeLensButton();
@@ -742,8 +748,8 @@ public class NewTabPageLayout extends LinearLayout
@@ -784,8 +790,8 @@ public class NewTabPageLayout extends LinearLayout
private void calculateTabletMvtWidth(int totalWidth) {
if (mMvTilesContainerLayout.getVisibility() == GONE) return;
@@ -924,7 +924,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
updateMvtOnTablet();
}
@@ -793,7 +799,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -835,7 +841,7 @@ public class NewTabPageLayout extends LinearLayout
&& mInitialized) {
return;
}
@@ -933,7 +933,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
mSearchProviderIsGoogle = isGoogle;
if (!mSearchProviderIsGoogle) {
@@ -842,6 +848,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -879,6 +885,7 @@ public class NewTabPageLayout extends LinearLayout
* @param disable Whether to disable the animations.
*/
void setUrlFocusAnimationsDisabled(boolean disable) {
@@ -941,7 +941,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
if (disable == mDisableUrlFocusChangeAnimations) return;
mDisableUrlFocusChangeAnimations = disable;
if (!disable) onUrlFocusAnimationChanged();
@@ -1246,6 +1253,22 @@ public class NewTabPageLayout extends LinearLayout
@@ -1280,6 +1287,22 @@ public class NewTabPageLayout extends LinearLayout
return mMostVisitedTilesCoordinator;
}
@@ -1357,7 +1357,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
TileRenderer renderer,
PropertyModel propertyModel,
boolean isTablet,
@@ -214,12 +214,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
@@ -215,12 +215,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
@Override
public void onCustomTileCreation(Tile tile) {
@@ -1370,7 +1370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
}
public void onConfigurationChanged() {
@@ -329,7 +327,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
@@ -330,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl());
if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return;
@@ -1445,7 +1445,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
@@ -174,7 +174,7 @@ public class TileRenderer {
@@ -172,7 +172,7 @@ public class TileRenderer {
*/
public void renderTileSection(
List<Tile> sectionTiles,
@@ -1454,7 +1454,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
TileGroup.TileSetupDelegate setupDelegate) {
try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) {
// Map the old tile views by url so they can be reused later.
@@ -212,7 +212,7 @@ public class TileRenderer {
@@ -210,7 +210,7 @@ public class TileRenderer {
if (prevTile != null
&& (prevTile.getData().source == TileSource.CUSTOM_LINKS)
!= (tile.getData().source == TileSource.CUSTOM_LINKS)) {
@@ -1463,7 +1463,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
}
parent.addTile(tileView);
if (focusedUrl != null && focusedUrl.equals(tile.getUrl().getSpec())) {
@@ -228,7 +228,7 @@ public class TileRenderer {
@@ -226,7 +226,7 @@ public class TileRenderer {
if (shouldShowAddNewButton(sectionTiles)) {
TileView addCustomLinksButton = buildAddCustomLinksButton(parent, setupDelegate);
@@ -1472,7 +1472,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
}
}
}
@@ -263,7 +263,7 @@ public class TileRenderer {
@@ -261,7 +261,7 @@ public class TileRenderer {
*/
@VisibleForTesting
SuggestionsTileView buildTileView(
@@ -1481,7 +1481,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
SuggestionsTileView tileView =
(SuggestionsTileView)
LayoutInflater.from(parent.getContext())
@@ -330,7 +330,7 @@ public class TileRenderer {
@@ -324,7 +324,7 @@ public class TileRenderer {
return tileView;
}
@@ -1490,7 +1490,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
return (SuggestionsTileVerticalDivider)
LayoutInflater.from(parent.getContext())
.inflate(R.layout.suggestions_tile_vertical_divider, parent, false);
@@ -351,7 +351,7 @@ public class TileRenderer {
@@ -345,7 +345,7 @@ public class TileRenderer {
}
TileView buildAddCustomLinksButton(
@@ -1514,7 +1514,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
--- a/chrome/browser/engagement/important_sites_util.cc
+++ b/chrome/browser/engagement/important_sites_util.cc
@@ -60,7 +60,7 @@ static const int kTimesIgnoredForSuppression = 3;
@@ -59,7 +59,7 @@ static const int kTimesIgnoredForSuppression = 3;
// These are the maximum # of bookmarks we can use as signals. If the user has
// <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all
// bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks.
@@ -1526,9 +1526,9 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -354,6 +354,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kInstanceSwitcherV2,
@@ -348,6 +348,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kKeyboardEscBackNavigation,
&kLaunchCauseScreenOffFix,
&kLensOnQuickActionSearchWidget,
+ &kSimplifiedNTP,
&kLinkHoverStatusBar,
@@ -1537,18 +1537,18 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList {
@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList {
"MayLaunchUrlUsesSeparateStoragePartition";
public static final String MEDIA_INDICATORS_ANDROID = "MediaIndicatorsAndroid";
public static final String MINI_ORIGIN_BAR = "MiniOriginBar";
public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization";
+ public static final String SIMPLIFIED_NTP = "SimplifiedNTP";
public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox";
public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect";
public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP =
@@ -980,7 +981,7 @@ public abstract class ChromeFeatureList {
newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true);
public static final CachedFlag sLockTopControlsOnLargeTabletsV2 =
newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, false);
public static final String MOVE_TO_FRONT_IN_LAUNCH_INTENT_DISPATCHER =
@@ -961,7 +962,7 @@ public abstract class ChromeFeatureList {
newCachedFlag(
LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2,
/* defaultValue= */ false);
- public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true);
+ public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false);
public static final CachedFlag sMaliciousApkDownloadCheck =
@@ -1581,7 +1581,7 @@ diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4013,6 +4013,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -4027,6 +4027,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_RECENT_TABS" desc="Text for button to show 'Recent tabs', i.e. recently closed tabs and tabs that are open on other devices [CHAR_LIMIT=20]">
Recent tabs
</message>
@@ -1621,7 +1621,7 @@ diff --git a/components/ntp_tiles/custom_links_store.cc b/components/ntp_tiles/c
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -196,6 +196,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED);
@@ -184,6 +184,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED);
BASE_FEATURE(kDefaultTypedNavigationsToHttps,
"OmniboxDefaultTypedNavigationsToHttps",
enable_if(IS_IOS));
@@ -1629,18 +1629,18 @@ diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/
// Override the delay to create a spare renderer when the omnibox is focused
// on Android.
@@ -282,6 +283,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED);
@@ -270,6 +271,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED);
// Updates various NTP/Omnibox assets and descriptions for visual alignment on
// Android and iOS, V2.
BASE_FEATURE(kOmniboxMobileParityUpdateV2, ENABLED);
+SET_CROMITE_FEATURE_DISABLED(kOmniboxMobileParityUpdateV2);
#if BUILDFLAG(IS_IOS)
// Updates the search engine logo on NTP. iOS only.
// The features below allow tuning number of suggestions offered to users in
// specific contexts. These features are default enabled and are used to control
diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h
--- a/components/search_engines/template_url.h
+++ b/components/search_engines/template_url.h
@@ -802,9 +802,9 @@ class TemplateURL {
@@ -801,9 +801,9 @@ class TemplateURL {
}
const GURL& favicon_url() const { return data().favicon_url; }
@@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../ReaderModeToolbarButtonController.java | 4 ++--
.../ContextualPageActionController.java | 4 ++++
.../chrome/browser/settings/MainSettings.java | 9 +--------
.../chrome/browser/settings/MainSettings.java | 2 +-
.../segmentation_platform_config.cc | 1 +
.../strings/android_chrome_strings.grd | 3 +++
...tton_group_adaptive_toolbar_preference.xml | 9 +++++++++
@@ -20,13 +20,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../adaptive/AdaptiveToolbarStats.java | 2 ++
...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++-------
...ve-button-in-top-toolbar-customization.inc | 1 +
13 files changed, 43 insertions(+), 21 deletions(-)
13 files changed, 43 insertions(+), 14 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java
@@ -79,11 +79,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider
@@ -71,11 +71,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider
modalDialogManager,
AppCompatResources.getDrawable(context, R.drawable.ic_mobile_friendly_24dp),
context.getString(R.string.reader_mode_cpa_button_text),
@@ -38,12 +38,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R
- /* tooltipTextResId= */ R.string.show_reading_mode_text);
+ /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page);
mContext = context;
mActivityTabProvider = activityTabProvider;
mReaderModeIphControllerSupplier = readerModeIphControllerSupplier;
mActivityTabObserver =
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
@@ -292,6 +292,10 @@ public class ContextualPageActionController {
@@ -293,6 +293,10 @@ public class ContextualPageActionController {
&& mTabSupplier.get().getId() == tab.getId();
if (!isSameTab) return;
@@ -57,26 +57,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
@@ -350,14 +350,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
getContext(),
getProfile(),
/* androidPermissionDelegate= */ null,
- /* behavior= */ null)
- .recomputeUiState(
- uiState -> {
- // Don't show toolbar shortcut settings if disabled from finch.
- if (!uiState.canShowUi) {
- removePreferenceIfPresent(PREF_TOOLBAR_SHORTCUT);
- }
- });
+ /* behavior= */ null);
// LINT.ThenChange(//chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java:InitPrefToolbarShortcut)
@@ -343,7 +343,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
getContext(),
getProfile(),
(shouldShow) -> {
- if (!shouldShow) removePreferenceIfPresent(PREF_TOOLBAR_SHORTCUT);
+ if (!shouldShow) removePreferenceIfPresent(PREF_TOOLBAR_SHORTCUT); <-- check if needed
});
// LINT.IfChange(InitPrefUiTheme)
diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
--- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc
+++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc
@@ -74,6 +74,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56;
@@ -75,6 +75,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56;
#if BUILDFLAG(IS_ANDROID)
std::unique_ptr<Config> GetConfigForAdaptiveToolbar() {
@@ -87,7 +80,7 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5085,6 +5085,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -5108,6 +5108,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_READER_MODE_MESSAGE_BUTTON" desc="The label for the button to open the current page in reader mode.">
View
</message>
@@ -119,7 +112,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_grou
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java
@@ -361,7 +361,7 @@ public class AdaptiveToolbarButtonController
@@ -362,7 +362,7 @@ public class AdaptiveToolbarButtonController
}
private boolean isScreenWideEnoughForButton() {
@@ -205,7 +198,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
private @AdaptiveToolbarButtonVariant int mSelected;
private @AdaptiveToolbarButtonVariant int mAutoButtonCaption;
private @Nullable AdaptiveToolbarStatePredictor mStatePredictor;
@@ -68,6 +69,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -67,6 +68,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mAutoButton =
(RadioButtonWithDescription)
holder.findViewById(R.id.adaptive_option_based_on_usage);
@@ -213,7 +206,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mNewTabButton =
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_new_tab);
mShareButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_share);
@@ -75,6 +77,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -74,6 +76,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_voice_search);
mTranslateButton =
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_translate);
@@ -221,7 +214,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mAddToBookmarksButton =
(RadioButtonWithDescription)
holder.findViewById(R.id.adaptive_option_add_to_bookmarks);
@@ -82,6 +85,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -81,6 +84,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_read_aloud);
mPageSummaryButton =
(RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_page_summary);
@@ -230,7 +223,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mIsBound = true;
@@ -159,13 +164,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -158,13 +163,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mAutoButton.setDescriptionText(
getContext().getString(resId, getButtonString(uiState.autoButtonCaption)));
@@ -244,7 +237,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
updateVoiceButtonVisibility();
updateReadAloudButtonVisibility();
updatePageSummaryButtonVisibility();
@@ -193,6 +191,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -191,6 +189,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
mSelected = AdaptiveToolbarButtonVariant.READ_ALOUD;
} else if (mPageSummaryButton.isChecked()) {
mSelected = AdaptiveToolbarButtonVariant.PAGE_SUMMARY;
@@ -253,7 +246,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
} else {
assert false : "No matching setting found.";
}
@@ -232,6 +232,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -230,6 +230,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
return mReadAloudButton;
case AdaptiveToolbarButtonVariant.PAGE_SUMMARY:
return mPageSummaryButton;
@@ -262,7 +255,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
}
return null;
}
@@ -263,6 +265,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
@@ -261,6 +263,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut
case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER:
stringRes = R.string.menu_open_in_product_default;
break;
@@ -6,18 +6,27 @@ This reverts commit e72fc9b64116bf259e516096fcc60b58ae8ae1b3.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../policy/content/policy_blocklist_navigation_throttle.cc | 1 +
1 file changed, 1 insertion(+)
.../policy/content/policy_blocklist_navigation_throttle.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b/components/policy/content/policy_blocklist_navigation_throttle.cc
--- a/components/policy/content/policy_blocklist_navigation_throttle.cc
+++ b/components/policy/content/policy_blocklist_navigation_throttle.cc
@@ -59,6 +59,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() =
default;
@@ -67,7 +67,7 @@ bool PolicyBlocklistNavigationThrottle::IsViewSourceNavigation() {
bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() {
+ if ((true)) return false;
content::NavigationEntry* nav_entry =
navigation_handle()->GetNavigationEntry();
if (!nav_entry || !nav_entry->IsViewSourceMode()) {
PolicyBlocklistState
PolicyBlocklistNavigationThrottle::GetViewSourceNavigationBlocklistState() {
- CHECK(IsViewSourceNavigation());
+ CHECK(false);
GURL view_source_url =
GURL(std::string("view-source:") + navigation_handle()->GetURL().spec());
@@ -100,6 +100,7 @@ PolicyBlocklistNavigationThrottle::WillStartOrRedirectRequest(
// If the navigation is to view-source, check if the view-source:url should
// be blocked.
if (IsViewSourceNavigation()) {
+ if ((true)) return PROCEED;
PolicyBlocklistState view_source_blocklist_state =
GetViewSourceNavigationBlocklistState();
if (view_source_blocklist_state.url_blocklist_state ==
--
@@ -9,7 +9,7 @@ The feature can be disabled using the throttle-main-thread-to-60hz flag (enabled
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
cc/base/features.cc | 3 ++-
cc/base/features.cc | 9 ++-------
cc/scheduler/scheduler_state_machine.cc | 17 +++++++++++++++++
.../java/res/xml/privacy_preferences.xml | 6 ++++++
chrome/browser/about_flags.cc | 6 +++---
@@ -25,23 +25,29 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../Set-the-screen-frame-rate-to-60-Hz.inc | 7 +++++++
.../renderer/core/animation/animation_clock.cc | 11 ++++++++---
.../core/view_transition/view_transition.cc | 2 ++
16 files changed, 119 insertions(+), 12 deletions(-)
16 files changed, 119 insertions(+), 18 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Set-the-screen-frame-rate-to-60-Hz.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Set-the-screen-frame-rate-to-60-Hz.inc
diff --git a/cc/base/features.cc b/cc/base/features.cc
--- a/cc/base/features.cc
+++ b/cc/base/features.cc
@@ -135,7 +135,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT);
@@ -136,13 +136,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kInitImageDecodeLastUseTime, base::FEATURE_ENABLED_BY_DEFAULT);
-BASE_FEATURE(kThrottleMainFrameTo60Hz, base::FEATURE_DISABLED_BY_DEFAULT);
// Enabled on Android, after a field trial showed improvements.
-BASE_FEATURE(kThrottleMainFrameTo60Hz,
-#if BUILDFLAG(IS_ANDROID)
- base::FEATURE_ENABLED_BY_DEFAULT
-#else
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif
-);
+CROMITE_FEATURE(kThrottleMainFrameTo60Hz, "ThrottleMainFrameTo60Hz", base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kBoostFrameRateForUrgentMainFrame,
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -163,6 +163,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT);
#if BUILDFLAG(IS_ANDROID)
BASE_FEATURE(kThrottleMainFrameTo60HzWebView,
@@ -175,6 +169,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kRenderThrottleFrameRate, base::FEATURE_ENABLED_BY_DEFAULT);
const base::FeatureParam<int> kRenderThrottledFrameIntervalHz{
&kRenderThrottleFrameRate, "render-throttled-frame-interval-hz", 30};
@@ -52,7 +58,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc
--- a/cc/scheduler/scheduler_state_machine.cc
+++ b/cc/scheduler/scheduler_state_machine.cc
@@ -1548,6 +1548,15 @@ void SchedulerStateMachine::FrameIntervalUpdated(
@@ -1578,6 +1578,15 @@ void SchedulerStateMachine::FrameIntervalUpdated(
//
// Apply some slack, so that if for some reason the interval is a bit larger
// than 8.33333333333333ms, then we catch it still.
@@ -65,10 +71,10 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st
+ }
+ if ((true)) return;
+#endif
//
// Do not enable throttling for the synchronous compositor, as it hasn't been
// evaluated for this use case, as of 09/2025. The aim is to make sure that
@@ -1876,6 +1885,14 @@ base::TimeTicks SchedulerStateMachine::Now() const {
constexpr float kSlackFactor = .9;
bool fast_vsync_interval =
frame_interval < base::Hertz(120) * (1 / kSlackFactor);
@@ -1903,6 +1912,14 @@ base::TimeTicks SchedulerStateMachine::Now() const {
}
base::TimeDelta SchedulerStateMachine::MainFrameThrottledInterval() const {
@@ -86,7 +92,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -98,6 +98,12 @@ found in the LICENSE file.
@@ -92,6 +92,12 @@ found in the LICENSE file.
android:summary="@string/tab_switcher_list_mode_summary"
app:featureName="TabSwitcherListMode"
app:needRestart="true" />
@@ -102,7 +108,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -12052,9 +12052,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -11699,9 +11699,9 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(::features::kBlockRootWindowAccessibleNameChangeEvent)},
#endif // BUILDFLAG(IS_MAC)
@@ -118,7 +124,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -52,6 +52,7 @@
@@ -51,6 +51,7 @@
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM
@@ -126,7 +132,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "chrome/browser/after_startup_task_utils.h"
#include "chrome/browser/ai/ai_manager.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
@@ -305,6 +306,7 @@
@@ -302,6 +303,7 @@
#include "components/variations/variations_associated_data.h"
#include "components/variations/variations_switches.h"
#include "components/version_info/version_info.h"
@@ -134,7 +140,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "components/webapps/common/web_app_id.h"
#include "components/webui/chrome_urls/pref_names.h"
#include "content/public/browser/attribution_data_model.h"
@@ -2718,6 +2720,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
@@ -2720,6 +2722,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->AppendSwitchASCII(ash::switches::kHomedir, homedir.value());
#endif
@@ -167,10 +173,10 @@ new file mode 100644
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -97,6 +97,7 @@ const char kMaxOverlaysParam[] = "max_overlays";
@@ -84,6 +84,7 @@ const char kMaxOverlaysParam[] = "max_overlays";
BASE_FEATURE(kDelegatedCompositing, base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kAvoidDuplicateDelayBeginFrame, base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kAvoidDuplicateDelayBeginFrame, base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_ENABLED(kAvoidDuplicateDelayBeginFrame);
const char kDrawQuadSplit[] = "num_of_splits";
@@ -178,7 +184,7 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features.
diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/components/viz/common/frame_sinks/begin_frame_source.cc
--- a/components/viz/common/frame_sinks/begin_frame_source.cc
+++ b/components/viz/common/frame_sinks/begin_frame_source.cc
@@ -25,6 +25,7 @@
@@ -24,6 +24,7 @@
#include "base/tracing/protos/chrome_track_event.pbzero.h"
#include "components/viz/common/features.h"
#include "components/viz/common/frame_sinks/delay_based_time_source.h"
@@ -186,7 +192,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component
namespace viz {
@@ -250,7 +251,10 @@ BackToBackBeginFrameSource::BackToBackBeginFrameSource(
@@ -260,7 +261,10 @@ BackToBackBeginFrameSource::BackToBackBeginFrameSource(
time_source_->SetClient(this);
// The time_source_ ticks immediately, so we SetActive(true) for a single
// tick when we need it, and keep it as SetActive(false) otherwise.
@@ -198,7 +204,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component
}
BackToBackBeginFrameSource::~BackToBackBeginFrameSource() = default;
@@ -308,6 +312,14 @@ void BackToBackBeginFrameSource::OnTimerTick() {
@@ -318,6 +322,14 @@ void BackToBackBeginFrameSource::OnTimerTick() {
}
base::TimeTicks frame_time = time_source_->LastTickTime();
base::TimeDelta interval = max_vrr_interval_.value_or(vsync_interval_);
@@ -216,7 +222,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component
diff --git a/components/viz/common/frame_sinks/begin_frame_source.h b/components/viz/common/frame_sinks/begin_frame_source.h
--- a/components/viz/common/frame_sinks/begin_frame_source.h
+++ b/components/viz/common/frame_sinks/begin_frame_source.h
@@ -339,6 +339,7 @@ class VIZ_COMMON_EXPORT BackToBackBeginFrameSource
@@ -362,6 +362,7 @@ class VIZ_COMMON_EXPORT BackToBackBeginFrameSource
pending_begin_frame_observers_;
uint64_t next_sequence_number_;
base::TimeDelta vsync_interval_ = BeginFrameArgs::DefaultInterval();
@@ -227,7 +233,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.h b/components
diff --git a/components/viz/service/display/display.cc b/components/viz/service/display/display.cc
--- a/components/viz/service/display/display.cc
+++ b/components/viz/service/display/display.cc
@@ -33,6 +33,7 @@
@@ -32,6 +32,7 @@
#include "base/trace_event/traced_value.h"
#include "base/trace_event/typed_macros.h"
#include "build/build_config.h"
@@ -235,7 +241,7 @@ diff --git a/components/viz/service/display/display.cc b/components/viz/service/
#include "cc/base/math_util.h"
#include "cc/base/region.h"
#include "cc/base/simple_enclosed_region.h"
@@ -274,8 +275,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings,
@@ -272,8 +273,21 @@ void Display::PresentationGroupTiming::OnSwap(gfx::SwapTimings timings,
auto frame_latency = timings.swap_start - frame_time_;
if (frame_latency < base::Seconds(0)) {
@@ -319,7 +325,7 @@ diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.
#include "components/viz/common/features.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/service/display/display.h"
@@ -753,7 +754,10 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
@@ -757,7 +758,10 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
result);
interval = interval_and_compat.first;
gfx::SurfaceControlFrameRateCompatibility compat = interval_and_compat.second;
@@ -331,7 +337,7 @@ diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.
if (decided_display_interval_ == interval &&
decided_display_frame_rate_compat_ == compat) {
return;
@@ -775,7 +779,9 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
@@ -779,7 +783,9 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
return interval.interval;
}),
result);
@@ -385,7 +391,7 @@ diff --git a/third_party/blink/renderer/core/animation/animation_clock.cc b/thir
diff --git a/third_party/blink/renderer/core/view_transition/view_transition.cc b/third_party/blink/renderer/core/view_transition/view_transition.cc
--- a/third_party/blink/renderer/core/view_transition/view_transition.cc
+++ b/third_party/blink/renderer/core/view_transition/view_transition.cc
@@ -989,8 +989,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const {
@@ -998,8 +998,10 @@ CSSStyleSheet* ViewTransition::UAStyleSheet() const {
void ViewTransition::WillCommitCompositorFrame() {
// There should only be 1 commit when we're in the capturing phase and
// rendering is paused immediately after it finishes.
+29 -34
View File
@@ -4,9 +4,9 @@ Subject: WIN Disable updater
---
chrome/browser/active_use_util.h | 2 +-
chrome/browser/updater/BUILD.gn | 16 -------
.../browser/updater/browser_updater_client.cc | 46 +------------------
3 files changed, 2 insertions(+), 62 deletions(-)
chrome/browser/updater/BUILD.gn | 14 ------
.../browser/updater/browser_updater_client.cc | 43 +------------------
3 files changed, 2 insertions(+), 57 deletions(-)
diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h
--- a/chrome/browser/active_use_util.h
@@ -22,23 +22,21 @@ diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h
diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn
--- a/chrome/browser/updater/BUILD.gn
+++ b/chrome/browser/updater/BUILD.gn
@@ -31,22 +31,6 @@ if (is_win || is_mac) {
"//components/version_info",
@@ -38,20 +38,6 @@ source_set("updater") {
"//chrome/updater/mojom",
]
- if (is_win) {
- sources += [ "browser_updater_client_win.cc" ]
-
- if (enable_updater) {
- sources += [ "browser_updater_client_util_win.cc" ]
- } else {
- sources += [ "browser_updater_client_util_no_updater.cc" ]
- }
-
- sources += [
- "browser_updater_client_util_win.cc",
- "browser_updater_client_win.cc",
- "scheduler_win.cc",
- ]
- deps += [
- "//chrome/browser/google",
- "//chrome/install_static:install_static_util",
- "//chrome/installer/util:with_no_strings",
- "//chrome/updater:browser_sources",
- ]
- }
-
@@ -48,7 +46,7 @@ diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn
diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/updater/browser_updater_client.cc
--- a/chrome/browser/updater/browser_updater_client.cc
+++ b/chrome/browser/updater/browser_updater_client.cc
@@ -64,19 +64,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() {
@@ -57,19 +57,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() {
void BrowserUpdaterClient::Register(base::OnceClosure complete) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -57,8 +55,8 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u
- base::BindOnce(&BrowserUpdaterClient::GetRegistrationRequest, this),
- base::BindOnce(
- [](base::OnceCallback<void(int)> callback,
- scoped_refptr<updater::UpdateService> update_service,
- const updater::RegistrationRequest& request) {
- scoped_refptr<UpdateService> update_service,
- const RegistrationRequest& request) {
- update_service->RegisterApp(request, std::move(callback));
- },
- base::BindPostTaskToCurrentDefault(
@@ -68,23 +66,21 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u
}
void BrowserUpdaterClient::RegistrationCompleted(base::OnceClosure complete,
@@ -108,24 +95,6 @@ void BrowserUpdaterClient::CheckForUpdate(
base::RepeatingCallback<void(const updater::UpdateService::UpdateState&)>
@@ -101,22 +88,6 @@ void BrowserUpdaterClient::CheckForUpdate(
base::RepeatingCallback<void(const UpdateService::UpdateState&)>
version_updater_callback) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
- updater::UpdateService::UpdateState update_state;
- update_state.state =
- updater::UpdateService::UpdateState::State::kCheckingForUpdates;
- UpdateService::UpdateState update_state;
- update_state.state = UpdateService::UpdateState::State::kCheckingForUpdates;
- version_updater_callback.Run(update_state);
- update_service_->Update(
- GetAppId(), {}, updater::UpdateService::Priority::kForeground,
- updater::UpdateService::PolicySameVersionUpdate::kNotAllowed,
- GetAppId(), {}, UpdateService::Priority::kForeground,
- UpdateService::PolicySameVersionUpdate::kNotAllowed,
- /*language=*/{},
- base::BindPostTaskToCurrentDefault(
- base::BindRepeating([](const updater::UpdateService::UpdateState&
- state) {
- *GetLastOnDemandUpdateStateStorage() = state;
- base::BindRepeating([](const UpdateService::UpdateState& state) {
- GetLastOnDemandUpdateStateStorage() = state;
- return state;
- }).Then(version_updater_callback)),
- base::BindPostTaskToCurrentDefault(
@@ -93,22 +89,21 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u
}
void BrowserUpdaterClient::UpdateCompleted(
@@ -174,20 +143,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted(
@@ -163,19 +134,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted(
base::OnceCallback<void(bool)> callback,
const std::vector<updater::UpdateService::AppState>& apps) {
const std::vector<UpdateService::AppState>& apps) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- const auto updater = std::ranges::find_if(
- apps, [](const updater::UpdateService::AppState& state) {
- return base::EqualsCaseInsensitiveASCII(state.app_id,
- updater::kUpdaterAppId);
- const auto updater =
- std::ranges::find_if(apps, [](const UpdateService::AppState& state) {
- return base::EqualsCaseInsensitiveASCII(state.app_id, kUpdaterAppId);
- });
- if (updater != apps.end()) {
- *GetLastKnownUpdaterRegistrationStorage() = *updater;
- GetLastKnownUpdaterRegistrationStorage() = *updater;
- }
- const auto app =
- std::ranges::find_if(apps, &BrowserUpdaterClient::AppMatches);
- if (app != apps.end()) {
- *GetLastKnownBrowserRegistrationStorage() = *app;
- GetLastKnownBrowserRegistrationStorage() = *app;
- }
- std::move(callback).Run(app != apps.end());
+ std::move(callback).Run(true);