Patches for 141 (need works)

This commit is contained in:
Carmelo Messina
2025-09-29 11:51:24 +02:00
parent 8e5a82cb9e
commit 5a30f6fe3a
14 changed files with 838 additions and 1091 deletions
+122 -131
View File
@@ -28,11 +28,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 7 +-
.../ChromeContextMenuPopulator.java | 6 +-
.../CustomTabActivityLifecycleUmaTracker.java | 39 ----
.../CustomTabActivityLifecycleUmaTracker.java | 31 ----
.../CustomTabAppMenuPropertiesDelegate.java | 4 +
.../CustomTabIntentDataProvider.java | 10 +
.../browser/download/DownloadUtils.java | 13 +-
.../history/HistoryContentManager.java | 7 +-
.../history/HistoryContentManager.java | 9 +-
.../browser/history/HistoryManager.java | 27 ++-
.../chrome/browser/history/HistoryPage.java | 16 ++
.../native_page/NativePageFactory.java | 4 +-
@@ -42,7 +42,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../HistoricalTabModelObserver.java | 5 +-
.../tab/tab_restore/HistoricalTabSaver.java | 2 +-
.../tab_restore/HistoricalTabSaverImpl.java | 17 +-
.../TabbedAppMenuPropertiesDelegate.java | 6 +-
.../TabbedAppMenuPropertiesDelegate.java | 4 +-
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
.../tabmodel/TabModelSelectorImpl.java | 3 +
@@ -71,7 +71,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/ui/native_page/NativePage.java | 22 ++-
.../browser/omnibox/LocationBarMediator.java | 8 +
.../strings/android_chrome_strings.grd | 25 +++
.../browser/toolbar/LocationBarModel.java | 5 +-
.../browser/toolbar/LocationBarModel.java | 4 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
.../snackbar/INeedSnackbarManager.java | 28 +++
.../search_engine_tab_helper.cc | 6 +
@@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../add-an-always-incognito-mode.inc | 1 +
.../add-an-always-incognito-mode.inc | 3 +
.../add-an-always-incognito-mode.inc | 1 +
69 files changed, 797 insertions(+), 111 deletions(-)
69 files changed, 794 insertions(+), 105 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -101,8 +101,8 @@ 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
@@ -620,6 +620,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences_legacy.xml",
@@ -624,6 +624,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/personalize_google_services_preferences.xml",
+ "java/res/xml/incognito_preferences.xml",
@@ -120,8 +120,8 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -908,6 +909,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
@@ -916,6 +917,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
+ "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java",
@@ -247,7 +247,7 @@ new file mode 100644
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
@@ -74,6 +74,10 @@ import org.chromium.build.annotations.Nullable;
@@ -73,6 +73,10 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.build.annotations.UsedByReflection;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
@@ -258,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.ExternalAppId;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.app.ChromeActivity;
@@ -794,14 +798,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -803,14 +807,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
Profile profile = mTabModelSelector.getCurrentModel().getProfile();
// For saving non-incognito tab closures for Recent Tabs.
@@ -285,9 +285,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer creation of this helper so it triggers after TabGroupModelFilter observers.
mUndoRefocusHelper =
new UndoRefocusHelper(
@@ -3137,7 +3146,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
}
@@ -3228,7 +3237,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
// We determine SupportedProfileType in onPreCreate().
// We determine the model as soon as possible so every systems get initialized coherently.
- boolean startIncognito =
+ boolean startIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ||
@@ -297,7 +297,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
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid;
@@ -305,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils;
import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
import org.chromium.chrome.browser.download.DownloadManagerService;
@@ -2000,6 +2001,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2028,6 +2029,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -318,16 +318,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -88,6 +88,8 @@ import java.lang.annotation.RetentionPolicy;
import java.util.Iterator;
@@ -91,6 +91,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -606,8 +608,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
@@ -620,8 +622,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
&& !isNativePage
&& !isFileScheme
&& !isContentScheme
@@ -342,7 +342,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -41,6 +41,7 @@ import org.chromium.base.supplier.Supplier;
@@ -39,6 +39,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
@@ -350,7 +350,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ContextMenuItemType;
@@ -420,6 +421,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -425,6 +426,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
mShowEphemeralTabNewLabel = null;
mCustomActionMap.clear();
@@ -372,21 +372,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
@@ -63,45 +63,6 @@ public class CustomTabActivityLifecycleUmaTracker
@@ -62,37 +62,6 @@ public class CustomTabActivityLifecycleUmaTracker
private boolean mIsInitialResume = true;
private void recordIncognitoLaunchReason() {
- // TODO(crbug.com/352525607): Separate Ephemeral and Incognito CCT metrics.
- @IntentHandler.IncognitoCctCallerId int incognitoCctCallerId;
- if (mIntentDataProvider.getCustomTabMode() == CustomTabProfileType.INCOGNITO) {
- incognitoCctCallerId =
- ((IncognitoCustomTabIntentDataProvider) mIntentDataProvider)
- .getFeatureIdForMetricsCollection();
- } else {
- incognitoCctCallerId =
- ((EphemeralCustomTabIntentDataProvider) mIntentDataProvider)
- .getFeatureIdForMetricsCollection();
- }
- /*@IncognitoCctCallerId*/ int incognitoCctCallerId =
- mIntentDataProvider.getFeatureIdForMetricsCollection();
-
- RecordHistogram.recordEnumeratedHistogram(
- "CustomTabs.IncognitoCctCallerId",
@@ -421,7 +413,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/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -21,6 +21,7 @@ import org.chromium.base.supplier.Supplier;
@@ -20,6 +20,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
@@ -442,7 +434,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/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
@@ -101,6 +101,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -104,6 +104,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.device.mojom.ScreenOrientationLockType;
import org.chromium.net.NetId;
@@ -452,7 +444,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -1260,6 +1263,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -1263,6 +1266,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
return getInitialActivityWidth() > 0;
}
@@ -488,8 +480,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
/** A class containing some utility static methods. */
@NullMarked
public class DownloadUtils {
@@ -313,7 +318,13 @@ public class DownloadUtils {
public static boolean isAllowedToDownloadPage(Tab tab) {
@@ -314,7 +319,13 @@ public class DownloadUtils {
public static boolean isAllowedToDownloadPage(@Nullable Tab tab) {
if (tab == null) return false;
- if (tab.isIncognito()
@@ -506,22 +498,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
@@ -307,7 +307,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -308,8 +308,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.generateFooterItems();
// Listen to changes in sign in state.
- IdentityServicesProvider.get().getSigninManager(profile).addSignInStateObserver(this);
- assumeNonNull(IdentityServicesProvider.get().getSigninManager(profile))
- .addSignInStateObserver(this);
+ // getSigninManager is null in incognito
+ if (IdentityServicesProvider.get().getSigninManager(profile) != null)
+ IdentityServicesProvider.get().getSigninManager(profile).addSignInStateObserver(this);
// Create PrefChangeRegistrar to receive notifications on preference changes.
mPrefChangeRegistrar = PrefServiceUtil.createFor(profile);
@@ -383,7 +385,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -386,8 +387,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.onDestroyed();
mLargeIconBridge.destroy();
mLargeIconBridge = null;
- IdentityServicesProvider.get().getSigninManager(mProfile).removeSignInStateObserver(this);
- assumeNonNull(IdentityServicesProvider.get().getSigninManager(mProfile))
- .removeSignInStateObserver(this);
+ if (IdentityServicesProvider.get().getSigninManager(mProfile) != null)
+ IdentityServicesProvider.get().getSigninManager(mProfile).removeSignInStateObserver(this);
mPrefChangeRegistrar.destroy();
@@ -530,9 +524,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -57,6 +57,14 @@ import org.chromium.ui.base.Clipboard;
import java.util.List;
@@ -61,6 +61,14 @@ import java.util.List;
import java.util.function.Function;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.profiles.Profile;
@@ -543,9 +537,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+import org.chromium.chrome.browser.preferences.Pref;
+
/** Combines and manages the different UI components of browsing history. */
@NullMarked
public class HistoryManager
implements OnMenuItemClickListener,
@@ -162,7 +170,7 @@ public class HistoryManager
@@ -166,7 +174,7 @@ public class HistoryManager
mUmaRecorder.recordOpenHistory();
// If incognito placeholder is shown, we don't need to create History UI elements.
@@ -554,7 +548,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
mSelectableListLayout = null;
mRootView = getIncognitoHistoryPlaceholderView();
return;
@@ -415,9 +423,22 @@ public class HistoryManager
@@ -451,9 +459,22 @@ public class HistoryManager
onBackPressStateChanged();
}
@@ -578,7 +572,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
// If Incognito placeholder is shown no need to call any destroy method.
return;
}
@@ -477,7 +498,7 @@ public class HistoryManager
@@ -514,7 +535,7 @@ public class HistoryManager
* @return True if manager handles this event, false if it decides to ignore.
*/
private boolean onBackPressed() {
@@ -590,9 +584,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
@@ -17,6 +17,14 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.embedder_support.util.UrlConstants;
@@ -20,6 +20,14 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.profiles.Profile;
@@ -603,9 +597,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+import org.chromium.chrome.browser.preferences.Pref;
+
/** Native page for managing browsing history. */
@NullMarked
public class HistoryPage extends BasicNativePage {
private HistoryManager mHistoryManager;
@@ -45,6 +53,14 @@ public class HistoryPage extends BasicNativePage {
@@ -49,6 +57,14 @@ public class HistoryPage extends BasicNativePage {
String url) {
super(host);
@@ -618,21 +612,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+ }
+
Uri uri = Uri.parse(url);
assert uri.getHost().equals(UrlConstants.HISTORY_HOST);
assert UrlConstants.HISTORY_HOST.equals(uri.getHost());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -19,6 +19,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
@@ -371,7 +372,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito, PdfInfo pdfInfo) {
@@ -379,7 +380,8 @@ public class NativePageFactory {
@Nullable PdfInfo pdfInfo) {
NativePage page;
- switch (NativePage.nativePageType(url, candidatePage, isIncognito, pdfInfo != null)) {
@@ -876,7 +870,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
@@ -49,6 +49,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment;
@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment;
import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -897,9 +891,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java
@@ -32,6 +32,8 @@ import java.util.HashMap;
import java.util.List;
@@ -32,6 +32,8 @@ import java.util.List;
import java.util.Set;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
@@ -933,9 +927,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java
@@ -30,6 +30,8 @@ import java.util.Arrays;
import java.util.Collections;
@@ -30,6 +30,8 @@ import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
@@ -991,7 +985,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
// Check the secondary tab model to see if the tab was moved instead of deleted.
if (tabIdExistsInSecondaryModel(tab.getId())) return false;
@@ -293,7 +296,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -294,7 +297,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@NativeMethods
interface Natives {
@@ -1003,30 +997,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -27,6 +27,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.build.annotations.Contract;
@@ -27,6 +27,7 @@ import org.chromium.build.annotations.Contract;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ai.AiAssistantService;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
@@ -220,7 +221,10 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
@@ -221,7 +222,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
// New Tab
- modelList.add(buildNewTabItem());
// When the feature is enabled, show either "New Incognito tab" in incognito mode
// or "New tab" in normal mode. When the feature is disabled, show both.
- if (!IncognitoUtils.shouldOpenIncognitoAsWindow() || !isIncognitoShowing()) {
+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ if (!always_incognito) {
+ modelList.add(buildNewTabItem());
+ }
// New Incognito Tab
modelList.add(buildNewIncognitoTabItem());
+ if (!always_incognito || !IncognitoUtils.shouldOpenIncognitoAsWindow() || !isIncognitoShowing()) {
modelList.add(buildNewTabItem());
}
if (!IncognitoUtils.shouldOpenIncognitoAsWindow() || isIncognitoShowing()) {
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
@@ -212,6 +212,8 @@ import org.chromium.content_public.common.ContentSwitches;
@@ -210,6 +210,8 @@ import org.chromium.content_public.common.ContentSwitches;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
@@ -1035,7 +1027,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.display.DisplayUtil;
@@ -1247,7 +1249,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1270,7 +1272,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1047,9 +1039,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -53,6 +53,10 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -55,6 +55,10 @@ import org.chromium.url.GURL;
import java.util.Collections;
import java.util.function.Supplier;
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
@@ -1058,7 +1050,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
/** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */
@NullMarked
public class ChromeTabCreator extends TabCreator
@@ -580,7 +584,6 @@ public class ChromeTabCreator extends TabCreator
@@ -584,7 +588,6 @@ public class ChromeTabCreator extends TabCreator
// TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome.
public @Nullable Tab launchUrlFromExternalApp(
LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) {
@@ -1069,15 +1061,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
@@ -17,6 +17,7 @@ import org.chromium.build.annotations.EnsuresNonNull;
import org.chromium.build.annotations.Initializer;
@@ -20,6 +20,7 @@ import org.chromium.build.annotations.Initializer;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.ntp.RecentlyClosedBridge;
@@ -127,6 +128,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
@@ -139,6 +140,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
ProfileProvider profileProvider = mProfileProviderSupplier.get();
assert profileProvider != null;
@@ -1115,7 +1107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -50,6 +50,7 @@ import org.chromium.base.supplier.Supplier;
@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
@@ -1123,12 +1115,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
import org.chromium.chrome.browser.back_press.BackPressManager;
@@ -859,7 +860,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
@@ -866,7 +867,7 @@ public class ToolbarManager
return ret;
}
- });
+ }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
},
- mToolbarPositionSupplier);
+ mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mControlContainer = controlContainer;
mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline);
@@ -1142,9 +1134,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
/** Stores info about a web app. */
@NullMarked
public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider {
private final Drawable mCloseButtonIcon;
@@ -46,6 +48,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -47,6 +49,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
private final ColorProviderImpl mDarkColorProvider;
private @DisplayMode.EnumType int mResolvedDisplayMode = DisplayMode.UNDEFINED;
@@ -1153,7 +1145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
/** Returns the toolbar color to use if a custom color is not specified by the webapp. */
public static int getDefaultToolbarColor() {
return Color.WHITE;
@@ -81,6 +85,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -82,6 +86,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
mWebappExtras = webappExtras;
mWebApkExtras = webApkExtras;
mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP;
@@ -1164,7 +1156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
}
@Override
@@ -176,6 +184,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -177,6 +185,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
return mWebApkExtras;
}
@@ -1229,7 +1221,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
DCHECK_EQ(tab_group_ids.size(), group_titles.size());
DCHECK_EQ(tab_group_ids.size(), group_colors.size());
DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size());
@@ -291,11 +302,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
@@ -292,11 +303,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
JNIEnv* env,
const JavaParamRef<jobject>& jtab_android,
const JavaParamRef<jobject>& state,
@@ -1247,7 +1239,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -427,6 +427,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const {
@@ -460,6 +460,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const {
return AimEligibilityServiceFactory::GetForProfile(profile_);
}
@@ -1374,7 +1366,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
--- a/chrome/browser/history/history_tab_helper.cc
+++ b/chrome/browser/history/history_tab_helper.cc
@@ -45,6 +45,9 @@
@@ -48,6 +48,9 @@
#include "components/feed/core/v2/public/feed_api.h" // nogncheck
#include "components/feed/core/v2/public/feed_service.h" // nogncheck
#include "content/public/browser/web_contents.h"
@@ -1384,7 +1376,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -598,6 +601,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -612,6 +615,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1398,7 +1390,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return nullptr;
@@ -605,6 +615,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -619,6 +629,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@@ -1482,7 +1474,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom
diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
--- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
+++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
@@ -24,6 +24,9 @@
@@ -23,6 +23,9 @@
#include "components/keyed_service/core/simple_dependency_manager.h"
#include "components/offline_pages/core/model/offline_page_model_taskified.h"
#include "components/offline_pages/core/offline_page_metadata_store.h"
@@ -1492,7 +1484,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
namespace offline_pages {
@@ -55,13 +58,15 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
@@ -54,13 +57,15 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()});
@@ -1510,7 +1502,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
// If base::PathService::Get returns false, the temporary_archives_dir will be
// empty, and no temporary pages will be saved during this chrome lifecycle.
base::FilePath temporary_archives_dir;
@@ -70,7 +75,6 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
@@ -69,7 +74,6 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
temporary_archives_dir.Append(chrome::kOfflinePageArchivesDirname);
}
@@ -1518,7 +1510,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
auto archive_manager = std::make_unique<DownloadArchiveManager>(
temporary_archives_dir, persistent_archives_dir,
DownloadPrefs::GetDefaultDownloadDirectory(), background_task_runner,
@@ -88,4 +92,14 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
@@ -87,4 +91,14 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
return model;
}
@@ -1755,7 +1747,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
#include "chrome/browser/android/preferences/browser_prefs_android.h"
@@ -2061,6 +2062,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2138,6 +2139,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1860,12 +1852,12 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -209,11 +212,12 @@ public interface NativePage {
*/
// TODO(crbug.com/40549331) - Convert to using GURL.
static @NativePageType int nativePageType(
- String url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload) {
+ String url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload,
@@ -212,11 +215,12 @@ public interface NativePage {
String url,
@Nullable NativePage candidatePage,
boolean isIncognito,
- boolean hasPdfDownload) {
+ boolean hasPdfDownload,
+ boolean isAlwaysIncognito) {
if (url == null) return NativePageType.NONE;
@@ -1875,7 +1867,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -227,7 +231,8 @@ public interface NativePage {
@@ -230,7 +234,8 @@ public interface NativePage {
GURL url,
@Nullable NativePage candidatePage,
boolean isIncognito,
@@ -1885,7 +1877,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
if (hasPdfDownload) {
// For navigation with associated pdf download (e.g. open a pdf link), pdf page should
// be created.
@@ -245,7 +250,7 @@ public interface NativePage {
@@ -248,7 +253,7 @@ public interface NativePage {
// created after the pdf document is re-downloaded in other parts of the code.
return NativePageType.NONE;
} else {
@@ -1894,7 +1886,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
}
@@ -257,7 +262,7 @@ public interface NativePage {
@@ -260,7 +265,7 @@ public interface NativePage {
* which do not have chrome or chrome-native scheme.
*/
private static @NativePageType int chromePageType(
@@ -1903,7 +1895,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
String host = url.getHost();
String scheme = url.getScheme();
if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme)
@@ -277,7 +282,8 @@ public interface NativePage {
@@ -280,7 +285,8 @@ public interface NativePage {
return NativePageType.DOWNLOADS;
} else if (UrlConstants.HISTORY_HOST.equals(host)) {
return NativePageType.HISTORY;
@@ -1916,8 +1908,8 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -92,6 +92,11 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.interpolators.Interpolators;
@@ -97,6 +97,11 @@ import org.chromium.ui.interpolators.Interpolators;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.url.GURL;
+import org.chromium.components.user_prefs.UserPrefs;
@@ -1928,7 +1920,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.ArrayList;
import java.util.List;
import java.util.function.BooleanSupplier;
@@ -419,6 +424,9 @@ class LocationBarMediator
@@ -437,6 +442,9 @@ class LocationBarMediator
if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return;
Tab tab = mLocationBarDataProvider.getTab();
if (tab == null) return;
@@ -1941,7 +1933,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -6675,6 +6675,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -6627,6 +6627,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_QUICK_DELETE_DIALOG_COOKIES_CACHE_AND_OTHER_SITE_DATA_TEXT" desc="Text indicating that browsing data like cookies, cache, and other site data would be deleted.">
Cookies, cache, and other site data
</message>
@@ -1976,7 +1968,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -165,6 +165,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -168,6 +168,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
protected GURL mVisibleGurl = GURL.emptyGURL();
protected String mFormattedFullUrl;
protected String mUrlForDisplay;
@@ -1984,14 +1976,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
// notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same
// document navigation. The first call is usually necessary, which updates the UrlBar to reflect
@@ -188,7 +189,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
Context context,
@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
NewTabPageDelegate newTabPageDelegate,
UrlFormatter urlFormatter,
- OfflineStatus offlineStatus) {
+ OfflineStatus offlineStatus,
OfflineStatus offlineStatus,
- ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier) {
+ ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier,
+ boolean isAlwaysIncognito) {
+ mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check
mContext = context;
mNtpDelegate = newTabPageDelegate;
mUrlFormatter = urlFormatter;
@@ -2065,7 +2056,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -4108,6 +4108,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -4095,6 +4095,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2131,7 +2122,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -287,6 +287,7 @@ struct ContentSettingEntry {
@@ -288,6 +288,7 @@ struct ContentSettingEntry {
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
bool is_off_the_record,
@@ -2139,7 +2130,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics)
@@ -296,6 +297,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -297,6 +298,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
#endif
prefs_(prefs),
is_off_the_record_(is_off_the_record),
@@ -2147,7 +2138,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
store_last_modified_(store_last_modified),
allow_invalid_secondary_pattern_for_testing_(false),
clock_(base::DefaultClock::GetInstance()) {
@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -310,7 +312,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
policy_provider->AddObserver(this);
auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
@@ -2167,7 +2158,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics);
@@ -544,6 +545,8 @@ class HostContentSettingsMap : public content_settings::Observer,
@@ -551,6 +552,8 @@ class HostContentSettingsMap : public content_settings::Observer,
// Whether this settings map is for an incognito or guest session.
bool is_off_the_record_;
@@ -2179,7 +2170,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc
--- a/components/omnibox/browser/autocomplete_provider_client.cc
+++ b/components/omnibox/browser/autocomplete_provider_client.cc
@@ -66,3 +66,7 @@ base::WeakPtr<AutocompleteProviderClient>
@@ -74,3 +74,7 @@ base::WeakPtr<AutocompleteProviderClient>
AutocompleteProviderClient::GetWeakPtr() {
return nullptr;
}
@@ -2213,7 +2204,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -916,7 +916,8 @@ std::unique_ptr<network::SimpleURLLoader> SearchProvider::CreateSuggestLoader(
@@ -921,7 +921,8 @@ std::unique_ptr<network::SimpleURLLoader> SearchProvider::CreateSuggestLoader(
// is required.
// Request for suggestions in OTR contexts is not allowed; except for the Lens
// searchboxes.
+23 -5
View File
@@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
base/android/feature_map.cc | 5 +
.../base/cached_flags/ValuesReturned.java | 2 +-
base/feature_list.cc | 76 ++++++++
base/feature_list.h | 80 +++++++-
base/feature_list.h | 98 +++++++++-
build/android/gyp/java_cpp_features.py | 17 ++
chrome/android/java/res/values/values.xml | 3 +
.../java/res/xml/privacy_preferences.xml | 4 +
@@ -106,7 +106,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
third_party/blink/public/common/features.h | 1 +
ui/base/ui_base_features.cc | 1 +
ui/base/ui_base_features.h | 1 +
93 files changed, 832 insertions(+), 32 deletions(-)
93 files changed, 850 insertions(+), 32 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp
@@ -326,7 +326,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
// Some characters are not allowed to appear in feature names or the
// associated field trial names, as they are used as special characters for
// command-line serialization. This function checks that the strings are ASCII
@@ -815,4 +825,70 @@ class BASE_EXPORT FeatureList {
@@ -815,4 +825,88 @@ class BASE_EXPORT FeatureList {
} // namespace base
@@ -388,13 +388,31 @@ diff --git a/base/feature_list.h b/base/feature_list.h
+ _Pragma("clang diagnostic pop") \
+ static_assert(true, "") /* for a semicolon requirement */
+
+#define BASE_FEATURE_DISABLED(feature, name, default_state) \
+#define BASE_FEATURE_DISABLED_3_ARGS(feature, name, default_state) \
+ BASE_FEATURE(feature, name, default_state); \
+ static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state")
+
+#define BASE_FEATURE_ENABLED(feature, name, default_state) \
+#define BASE_FEATURE_DISABLED_2_ARGS(name, default_state) \
+ BASE_FEATURE(name, default_state); \
+ static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state")
+
+#define GET_BASE_FEATURE_DISABLED_MACRO(_1, _2, _3, NAME, ...) NAME
+#define BASE_FEATURE_DISABLED(...) \
+ GET_BASE_FEATURE_DISABLED_MACRO(__VA_ARGS__, BASE_FEATURE_DISABLED_3_ARGS, \
+ BASE_FEATURE_DISABLED_2_ARGS)(__VA_ARGS__)
+
+#define BASE_FEATURE_ENABLED_3_ARGS(feature, name, default_state) \
+ BASE_FEATURE(feature, name, default_state); \
+ static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state")
+
+#define BASE_FEATURE_ENABLED_2_ARGS(name, default_state) \
+ BASE_FEATURE(name, default_state); \
+ static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state")
+
+#define GET_BASE_FEATURE_ENABLED_MACRO(_1, _2, _3, NAME, ...) NAME
+#define BASE_FEATURE_ENABLED(...) \
+ GET_BASE_FEATURE_ENABLED_MACRO(__VA_ARGS__, BASE_FEATURE_ENABLED_3_ARGS, \
+ BASE_FEATURE_ENABLED_2_ARGS)(__VA_ARGS__)
+
#endif // BASE_FEATURE_LIST_H_
diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp_features.py
@@ -99,15 +99,15 @@ 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/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
@@ -62,6 +62,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeFieldTrialImpl;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController;
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager;
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider;
@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
import org.chromium.components.browser_ui.util.AutomotiveUtils;
@@ -142,6 +143,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
@@ -119,15 +119,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
@@ -69,6 +69,7 @@ import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.net.NetId;
@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.LayoutInflaterUtils;
+import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.display.DisplayUtil;
import org.chromium.url.GURL;
@@ -491,7 +492,9 @@ public class WarmupManager {
@@ -472,7 +473,9 @@ public class WarmupManager {
ControlContainer controlContainer = mainView.findViewById(R.id.control_container);
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
@@ -170,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -791,7 +791,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -803,7 +803,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
// Inflate the correct toolbar layout for the device.
int toolbarLayoutId = getToolbarLayoutId();
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
@@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
@@ -127,6 +127,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
@@ -130,6 +130,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
import org.chromium.components.tab_group_sync.TriggerSource;
import org.chromium.components.tab_groups.TabGroupColorId;
import org.chromium.ui.accessibility.AccessibilityState;
@@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.util.ColorUtils;
@@ -4955,8 +4956,13 @@ public class StripLayoutHelper
@@ -5147,8 +5148,13 @@ public class StripLayoutHelper
mCloseButtonMenu.setAnchorView(tabView);
// 3. Set the vertical offset to align the close button menu with bottom of the tab strip
int tabHeight = mManagerHost.getHeight();
@@ -219,7 +219,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
@@ -495,7 +496,10 @@ public class StripLayoutHelperManager
@@ -498,7 +499,10 @@ public class StripLayoutHelperManager
mIsLayoutOptimizationsEnabled =
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(
/* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext));
@@ -234,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
@@ -111,6 +111,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
@@ -120,6 +120,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
if (mNativePtr == 0) return;
final boolean visible = yOffset > -layoutHelper.getHeight();
@@ -252,15 +252,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
@@ -16,6 +16,7 @@ import org.chromium.base.library_loader.LibraryProcessType;
import org.chromium.base.task.ChainedTasks;
import org.chromium.base.task.TaskTraits;
@@ -18,6 +18,7 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.signin.SigninCheckerProvider;
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
@@ -106,6 +107,7 @@ public class ChromeBrowserInitializer {
@@ -109,6 +110,7 @@ public class ChromeBrowserInitializer {
public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) {
ThreadUtils.checkUiThread();
if (parts.isActivityFinishingOrDestroyed()) return;
@@ -271,7 +271,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -747,7 +747,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -762,7 +762,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@Override
public int getControlContainerHeightResource() {
@@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -108,6 +108,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
@@ -107,6 +107,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.pdf.PdfPage;
@@ -319,7 +319,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -317,6 +317,7 @@ public final class ChromePreferenceKeys {
@@ -321,6 +321,7 @@ public final class ChromePreferenceKeys {
/** Whether the app-specific history info text was already seen by users. */
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
"Chrome.History.AppSpecificInfoSeen";
@@ -371,8 +371,8 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c
--- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
+++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
@@ -42,6 +42,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider;
import org.chromium.ui.display.DisplayUtil;
import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider;
import org.chromium.ui.insets.CaptionBarInsetsRectProvider;
+import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.insets.InsetObserver;
@@ -389,7 +389,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -833,7 +833,7 @@ public class LocationBarCoordinator
@@ -862,7 +862,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -401,7 +401,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1531,6 +1531,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1483,6 +1483,13 @@ Your Google account may have other forms of browsing history like searches and a
Privacy guide explanation closed
</message>
@@ -422,24 +422,25 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container
android:id="@+id/control_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="@dimen/control_container_height" >
+ android:minHeight="@dimen/control_container_height_cromite" >
- android:minHeight="@dimen/control_container_height">
+ android:minHeight="@dimen/control_container_height_cromite">
<view
class="org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer$ToolbarViewResourceFrameLayout"
@@ -20,20 +20,20 @@ found in the LICENSE file.
class="org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer$ToolbarViewResourceCoordinatorLayout"
@@ -20,7 +20,7 @@ found in the LICENSE file.
<ViewStub
android:id="@+id/toolbar_stub"
android:layout_width="match_parent"
- android:layout_marginTop="@dimen/tab_strip_height"
+ android:layout_marginTop="@dimen/tab_strip_height_cromite"
android:layout_marginBottom="@dimen/toolbar_hairline_height"
android:layout_height="@dimen/toolbar_height_no_shadow" />
<org.chromium.chrome.browser.toolbar.ToolbarHairlineView
android:id="@+id/toolbar_hairline"
@@ -29,13 +29,13 @@ found in the LICENSE file.
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/control_container_height" />
app:layout_anchorGravity="bottom"
- />
+ android:layout_marginTop="@dimen/control_container_height_cromite" />
<ViewStub
@@ -491,11 +492,11 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro
+ <dimen name="tab_strip_reserved_top_padding_tabletui">2dp</dimen>
<dimen name="ntp_search_box_height">64dp</dimen>
<dimen name="ntp_search_box_height_tall">72dp</dimen>
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
@@ -27,7 +27,7 @@ public interface ControlContainer {
@@ -26,7 +26,7 @@ public interface ControlContainer {
*
* @param toolbarLayoutId The ID of the toolbar layout to use.
*/
@@ -515,7 +516,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PorterDuff;
@@ -163,8 +164,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
@@ -165,8 +166,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
@Override
@Initializer
@@ -545,7 +546,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
@@ -66,6 +66,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp;
@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp;
import org.chromium.components.feature_engagement.Tracker;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.util.MotionEventUtils;
@@ -553,7 +554,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.ui.util.TokenHolder;
import org.chromium.url.GURL;
@@ -594,7 +595,9 @@ public abstract class ToolbarLayout extends FrameLayout
@@ -581,7 +582,9 @@ public abstract class ToolbarLayout extends FrameLayout
* not have a tab strip.
*/
protected int getTabStripHeightFromResource() {
@@ -38,11 +38,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../skia/src/ports/SkFontConfigInterface.cpp | 4 +
.../ports/SkFontConfigInterface_direct.cpp | 5 +
.../src/ports/SkFontConfigInterface_direct.h | 1 +
.../skia/src/ports/SkFontMgr_android.cpp | 279 ++-
.../skia/src/ports/SkFontMgr_android.cpp | 277 ++-
.../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++
.../src/ports/SkFontMgr_android_parser.cpp | 49 +-
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
36 files changed, 2415 insertions(+), 76 deletions(-)
36 files changed, 2414 insertions(+), 75 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
@@ -54,7 +54,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -1007,6 +1007,9 @@ public final class ProductionSupportedFlagList {
@@ -1009,6 +1009,9 @@ public final class ProductionSupportedFlagList {
"Hides user preference on the system keyboard by setting the standard "
+ "eng layout and removing the layout information from the "
+ "javascript keyboard events."),
@@ -106,7 +106,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -7951,6 +7951,13 @@ static_library("browser") {
@@ -8005,6 +8005,13 @@ static_library("browser") {
}
}
@@ -161,7 +161,7 @@ new file mode 100644
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -258,6 +258,10 @@ static_library("renderer") {
@@ -264,6 +264,10 @@ static_library("renderer") {
deps += [ "//components/strings" ]
}
@@ -615,7 +615,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2600,6 +2600,17 @@ source_set("browser") {
@@ -2614,6 +2614,17 @@ source_set("browser") {
]
}
@@ -633,7 +633,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
if (is_linux || is_chromeos) {
sources -=
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
@@ -2645,6 +2656,13 @@ source_set("browser") {
@@ -2659,6 +2670,13 @@ source_set("browser") {
]
}
@@ -696,7 +696,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -346,6 +346,10 @@ target(link_target_type, "renderer") {
@@ -347,6 +347,10 @@ target(link_target_type, "renderer") {
deps += [ "//services/screen_ai/public/mojom" ]
}
@@ -734,7 +734,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
using blink::Platform;
using blink::WebAudioDevice;
using blink::WebAudioLatencyHint;
@@ -180,6 +197,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) {
@@ -174,6 +191,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) {
NOTREACHED();
}
@@ -772,7 +772,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
} // namespace
//------------------------------------------------------------------------------
@@ -193,18 +241,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
@@ -187,18 +235,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
is_locked_to_site_(false),
main_thread_scheduler_(main_thread_scheduler),
next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
@@ -838,7 +838,7 @@ new file mode 100644
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -463,6 +463,18 @@ component("skia") {
@@ -467,6 +467,18 @@ component("skia") {
sources += skia_ports_fci_sources
}
@@ -1257,7 +1257,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
: fScanner(std::move(scanner)) {
+ custom_ = std::move(custom_in);
+ auto* custom = custom_.get();
SkTDArray<FontFamily*> families;
std::vector<std::unique_ptr<FontFamily>> families;
if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) {
SkString base(custom->fBasePath);
SkFontMgr_Android_Parser::GetCustomFontFamilies(
@@ -1278,22 +1278,24 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
}
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
this->findDefaultStyleSet();
@@ -309,33 +449,53 @@ protected:
return sset->matchStyle(style);
@@ -306,12 +446,12 @@ protected:
}
enum class NameType { Self, Fallback };
- static sk_sp<SkTypeface_AndroidSystem> find_family_style_character(
+ sk_sp<SkTypeface> find_family_style_character(
const SkString& familyName,
const TArray<NameToFamily, true>& fallbackNameToFamilyMap,
const TArray<NameToFamily, true>& nameToFamilyMap,
NameType nameType,
const SkFontStyle& style, bool elegant,
- const SkString& langTag, SkUnichar character)
+ const SkString& langTag, SkUnichar character) const
{
for (int i = 0; i < fallbackNameToFamilyMap.size(); ++i) {
SkFontStyleSet_Android* family = fallbackNameToFamilyMap[i].styleSet;
if (familyName != family->fFallbackFor) {
continue;
for (auto&& nameToFamily : nameToFamilyMap) {
SkFontStyleSet_Android* family = nameToFamily.styleSet;
@@ -322,22 +462,42 @@ protected:
continue;
}
}
- sk_sp<SkTypeface_AndroidSystem> face(family->matchAStyle(style));
+ if (custom_) {
@@ -1334,38 +1336,29 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ {
+ continue;
+ }
+
+ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) {
+ continue;
+ }
- if (face->unicharToGlyph(character) != 0) {
- return face;
+ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) {
+ continue;
+ }
+
+ if (face->unicharToGlyph(character) != 0) {
+ return face;
+ }
}
}
return nullptr;
@@ -358,7 +518,7 @@ protected:
for (int bcp47Index = bcp47Count; bcp47Index --> 0;) {
SkLanguage lang(bcp47[bcp47Index]);
while (!lang.getTag().isEmpty()) {
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface =
+ sk_sp<SkTypeface> matchingTypeface =
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
style, SkToBool(elegant),
lang.getTag(), character);
@@ -369,7 +529,7 @@ protected:
lang = lang.getParent();
}
}
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface =
+ sk_sp<SkTypeface> matchingTypeface =
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
style, SkToBool(elegant),
SkString(), character);
@@ -420,6 +580,7 @@ protected:
@@ -352,7 +512,7 @@ protected:
// The variant 'default' means 'compact and elegant'.
// As a result, it is not possible to know the variant context from the font alone.
// TODO: add 'is_elegant' and 'is_compact' bits to 'style' request.
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface;
+ sk_sp<SkTypeface> matchingTypeface;
SkString familyNameString(familyName);
for (const SkString& currentFamilyName : { familyNameString, SkString() }) {
// The first time match anything elegant, second time anything not elegant.
@@ -432,6 +592,7 @@ protected:
private:
std::unique_ptr<SkFontScanner> fScanner;
@@ -1373,7 +1366,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
sk_sp<SkFontStyleSet> fDefaultStyleSet;
@@ -441,7 +602,7 @@ private:
@@ -453,7 +614,7 @@ private:
}
sk_sp<SkFontStyleSet_Android> newSet =
@@ -1382,7 +1375,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
if (0 == newSet->count()) {
return;
}
@@ -486,7 +647,11 @@ static char const * const gSystemFontUseStrings[] = {
@@ -499,7 +660,11 @@ static char const * const gSystemFontUseStrings[] = {
} // namespace
@@ -1395,7 +1388,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
if (custom) {
SkASSERT(0 <= custom->fSystemFontUse);
SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings));
@@ -496,5 +661,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
@@ -509,5 +674,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
custom->fFontsXml,
custom->fFallbackFontsXml);
}
@@ -3050,10 +3043,10 @@ new file mode 100644
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
@@ -652,14 +652,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = {
* families array. Returns the version of the file, negative if the file does not exist.
@@ -654,14 +654,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = {
*/
static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& families,
static int parse_config_file(const char* filename,
std::vector<std::unique_ptr<FontFamily>>& families,
- const SkString& basePath, bool isFallback)
+ const SkString& basePath, bool isFallback,
+ const SkFontMgr_Android_CustomFonts* custom = nullptr)
@@ -3084,7 +3077,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
return -1;
}
@@ -691,8 +704,8 @@ static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& famil
@@ -693,8 +706,8 @@ static int parse_config_file(const char* filename,
SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n");
return -1;
}
@@ -3095,57 +3088,59 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
XML_Status status = XML_ParseBuffer(parser, len, done);
if (XML_STATUS_ERROR == status) {
XML_Error error = XML_GetErrorCode(parser);
@@ -765,8 +778,10 @@ static void append_fallback_font_families_for_locale(SkTDArray<FontFamily*>& fal
}
@@ -768,8 +781,10 @@ static void append_fallback_font_families_for_locale(
static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts,
- const SkString& basePath)
+ const SkString& basePath,
static void append_system_fallback_font_families(
std::vector<std::unique_ptr<FontFamily>>& fallbackFonts,
- const SkString& basePath)
+ const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom)
{
+ if (custom) return;
parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true);
append_fallback_font_families_for_locale(fallbackFonts,
LOCALE_FALLBACK_FONTS_SYSTEM_DIR,
@@ -774,8 +789,10 @@ static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbac
}
@@ -778,8 +793,10 @@ static void append_system_fallback_font_families(
static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts,
- const SkString& basePath)
+ const SkString& basePath,
static void mixin_vendor_fallback_font_families(
std::vector<std::unique_ptr<FontFamily>>& fallbackFonts,
- const SkString& basePath)
+ const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom)
{
+ if (custom) return;
SkTDArray<FontFamily*> vendorFonts;
std::vector<std::unique_ptr<FontFamily>> vendorFonts;
parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true);
append_fallback_font_families_for_locale(vendorFonts,
@@ -806,7 +823,8 @@ static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallback
}
@@ -811,7 +828,8 @@ static void mixin_vendor_fallback_font_families(
}
-void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies) {
+void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
+ const SkFontMgr_Android_CustomFonts* custom) {
void SkFontMgr_Android_Parser::GetSystemFontFamilies(
- std::vector<std::unique_ptr<FontFamily>>& fontFamilies)
+ std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
+ const SkFontMgr_Android_CustomFonts* custom)
{
// Version 21 of the system font configuration does not need any fallback configuration files.
SkString basePath(getenv("ANDROID_ROOT"));
basePath.append(SK_FONT_FILE_PREFIX, sizeof(SK_FONT_FILE_PREFIX) - 1);
@@ -817,22 +835,23 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fon
@@ -823,8 +841,8 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(
// Append all the fallback fonts to system fonts
SkTDArray<FontFamily*> fallbackFonts;
std::vector<std::unique_ptr<FontFamily>> fallbackFonts;
- append_system_fallback_font_families(fallbackFonts, basePath);
- mixin_vendor_fallback_font_families(fallbackFonts, basePath);
+ append_system_fallback_font_families(fallbackFonts, basePath, custom);
+ mixin_vendor_fallback_font_families(fallbackFonts, basePath, custom);
fontFamilies.append(fallbackFonts.size(), fallbackFonts.begin());
}
void SkFontMgr_Android_Parser::GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom,
const char* fontsXml,
const char* fallbackFontsXml,
const char* langFallbackFontsDir)
fontFamilies.insert(fontFamilies.end(),
std::make_move_iterator(fallbackFonts.begin()),
std::make_move_iterator(fallbackFonts.end()));
@@ -833,15 +851,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(
void SkFontMgr_Android_Parser::GetCustomFontFamilies(
std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom,
const char* fontsXml,
const char* fallbackFontsXml,
const char* langFallbackFontsDir)
{
if (fontsXml) {
- parse_config_file(fontsXml, fontFamilies, basePath, false);
@@ -3160,7 +3155,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.h
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h
@@ -15,6 +15,7 @@
@@ -17,6 +17,7 @@
#include "include/private/base/SkTArray.h"
#include "include/private/base/SkTDArray.h"
#include "src/core/SkTHash.h"
@@ -3168,16 +3163,16 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party
#include <climits>
#include <limits>
@@ -105,11 +106,13 @@ struct FontFamily {
@@ -109,11 +110,13 @@ struct FontFamily {
namespace SkFontMgr_Android_Parser {
/** Parses system font configuration files and appends result to fontFamilies. */
-void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies);
+void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
-void GetSystemFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies);
+void GetSystemFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
+ const SkFontMgr_Android_CustomFonts* custom);
/** Parses font configuration files and appends result to fontFamilies. */
void GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies,
void GetCustomFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom,
const char* fontsXml,
@@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -16,6 +16,7 @@
@@ -17,6 +17,7 @@
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/mediastream/media_devices.h"
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
@@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/web_audio_latency_hint.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
@@ -678,7 +679,9 @@ double AudioContext::baseLatency() const {
@@ -850,7 +851,9 @@ double AudioContext::baseLatency() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_);
DCHECK(destination());
@@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/platform/platform.h"
@@ -710,6 +711,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
@@ -774,6 +775,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
return To<LocalDOMWindow>(GetExecutionContext());
}
@@ -170,25 +170,18 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h"
@@ -156,6 +157,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize]);
+ value = BaseAudioContext::ShuffleAudioData(value, i);
UNSAFE_TODO(destination[i]) = value;
@@ -117,7 +118,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
for (unsigned i = 0; i < len; ++i) {
const float linear_value = UNSAFE_TODO(source[i]);
const double db_mag = audio_utilities::LinearToDecibels(linear_value);
- UNSAFE_TODO(destination[i]) = static_cast<float>(db_mag);
+ auto v = static_cast<float>(db_mag);
+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i);
}
}
@@ -183,6 +185,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize]);
+ value = BaseAudioContext::ShuffleAudioData(value, i);
+
// Scale from nominal -1 -> +1 to unsigned byte.
double scaled_value = 128 * (value + 1);
@@ -306,6 +310,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
double scaled_value =
}
@@ -158,6 +160,8 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
const double scaled_value =
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
@@ -196,20 +189,27 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
// Clip to valid range.
UNSAFE_TODO(destination[i]) =
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
@@ -324,7 +330,8 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
for (unsigned i = 0; i < len; ++i) {
float linear_value = UNSAFE_TODO(source[i]);
double db_mag = audio_utilities::LinearToDecibels(linear_value);
- UNSAFE_TODO(destination[i]) = static_cast<float>(db_mag);
+ auto v = static_cast<float>(db_mag);
+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i);
@@ -188,6 +192,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize]);
+ value = BaseAudioContext::ShuffleAudioData(value, i);
UNSAFE_TODO(destination[i]) = value;
}
}
}
@@ -215,6 +220,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize]);
+ value = BaseAudioContext::ShuffleAudioData(value, i);
+
// Scale from nominal -1 -> +1 to unsigned byte.
const double scaled_value = 128 * (value + 1);
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
@@ -575,9 +575,8 @@
@@ -594,9 +594,8 @@
{
// AudioContext.playoutStats interface.
// https://chromestatus.com/feature/5172818344148992
@@ -109,9 +109,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
+import android.net.Uri;
+
/** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */
@NullMarked
public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
private final Context mContext;
@@ -247,7 +251,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -243,7 +247,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@Override
public boolean isHelpAndFeedbackEnabled() {
@@ -120,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
}
@Override
@@ -385,6 +389,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -381,6 +385,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin);
}
@@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
diff --git a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc
--- a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc
+++ b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc
@@ -190,7 +190,7 @@ namespace {
@@ -191,7 +191,7 @@ namespace {
void GetGuestViewDefaultContentSettingRules(
bool incognito,
RendererContentSettingRules* rules) {
@@ -153,7 +153,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -312,6 +312,7 @@ build_webui("build") {
@@ -319,6 +319,7 @@ build_webui("build") {
"privacy_sandbox/privacy_sandbox_browser_proxy.ts",
"relaunch_mixin.ts",
"reset_page/reset_browser_proxy.ts",
@@ -161,7 +161,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
"route.ts",
"router.ts",
"safety_hub/safety_hub_browser_proxy.ts",
@@ -326,7 +327,6 @@ build_webui("build") {
@@ -333,7 +334,6 @@ build_webui("build") {
"site_settings/constants.ts",
"site_settings/site_settings_mixin.ts",
"site_settings/site_settings_prefs_browser_proxy.ts",
@@ -172,16 +172,16 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -1342,4 +1342,5 @@
</settings-subpage>
@@ -982,4 +982,5 @@
</template>
</template>
</template>
</if>
+ <div id="bromite-placeholder"/>
</settings-animated-pages>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
@@ -55,6 +55,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_
@@ -54,6 +54,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_
import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js';
import {getTemplate} from './privacy_page.html.js';
@@ -189,7 +189,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
interface BlockAutoplayStatus {
enabled: boolean;
@@ -78,8 +79,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
@@ -77,8 +78,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
return 'settings-privacy-page';
}
@@ -284,9 +284,9 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
/**
* Add all of the child routes that originate from the privacy route,
@@ -156,6 +157,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS =
@@ -175,6 +176,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS.createChild('localNetworkAccess');
r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS.hasMigratedToPlugin = true;
}
+ setupContentSettingsRoutes(r);
}
@@ -391,7 +391,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -334,4 +334,5 @@
@@ -331,4 +331,5 @@
label="$i18n{siteSettingsLocalNetworkAccess}">
</site-details-permission>
</template>
@@ -676,7 +676,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util.
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -47,7 +47,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
@@ -50,7 +50,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
}
// The following list is ordered alphabetically by |id|. The order in which
// these appear in the UI is determined elsewhere in this file.
@@ -685,7 +685,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
{
route: routes.SITE_SETTINGS_ADS,
id: Id.ADS,
@@ -450,10 +450,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
@@ -451,10 +451,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
icon: 'privacy:cookie',
},
];
@@ -722,7 +722,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]):
CategoryListItem[] {
const map = getCategoryItemMap();
@@ -543,7 +569,7 @@ export class SettingsSiteSettingsPageElement extends
@@ -545,7 +571,7 @@ export class SettingsSiteSettingsPageElement extends
Id.IMAGES,
Id.POPUPS,
]),
@@ -734,15 +734,15 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1634,6 +1634,7 @@ static_library("ui") {
@@ -1542,6 +1542,7 @@ static_library("ui") {
"//components/commerce/core/mojom:mojo_bindings",
"//components/commerce/core/webui",
"//components/endpoint_fetcher",
+ "//components/content_settings/core/browser:browser",
"//components/enterprise/common:files_scan_data",
"//components/feedback/proto",
"//components/headless/policy",
@@ -4821,6 +4822,7 @@ static_library("ui") {
"//components/headless/console_message_logger",
@@ -4672,6 +4673,7 @@ static_library("ui") {
"//components/power_bookmarks/core",
"//components/power_bookmarks/storage",
"//components/prefs",
@@ -770,7 +770,7 @@ diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/c
diff --git a/chrome/browser/ui/views/page_info/page_info_bubble_view.cc b/chrome/browser/ui/views/page_info/page_info_bubble_view.cc
--- a/chrome/browser/ui/views/page_info/page_info_bubble_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_bubble_view.cc
@@ -256,7 +256,7 @@ void PageInfoBubbleView::OpenMainPage(base::OnceClosure initialized_callback) {
@@ -231,7 +231,7 @@ void PageInfoBubbleView::OpenMainPage(base::OnceClosure initialized_callback) {
auto* close_button = page_container_->GetViewByID(
PageInfoViewFactory::VIEW_ID_PAGE_INFO_CLOSE_BUTTON);
@@ -790,7 +790,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
#include "ui/views/view_class_properties.h"
#if BUILDFLAG(FULL_SAFE_BROWSING)
@@ -282,8 +283,20 @@ void PageInfoMainView::SetPermissionInfo(
@@ -284,8 +285,20 @@ void PageInfoMainView::SetPermissionInfo(
scroll_view->SetDrawOverflowIndicator(false);
auto* content_view =
scroll_view->SetContents(std::make_unique<views::View>());
@@ -813,7 +813,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW);
content_view->SetProperty(views::kElementIdentifierKey,
kPermissionsElementId);
@@ -298,11 +311,16 @@ void PageInfoMainView::SetPermissionInfo(
@@ -300,11 +313,16 @@ void PageInfoMainView::SetPermissionInfo(
}
}
@@ -830,7 +830,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
toggle_row->SetProperty(views::kCrossAxisAlignmentKey,
views::LayoutAlignment::kStretch);
syncable_permission_rows_.emplace(permission.type, toggle_row);
@@ -310,6 +328,8 @@ void PageInfoMainView::SetPermissionInfo(
@@ -312,6 +330,8 @@ void PageInfoMainView::SetPermissionInfo(
}
for (auto& object : chosen_object_info_list) {
@@ -839,7 +839,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
// The view takes ownership of the object info.
auto object_view = std::make_unique<ChosenObjectView>(
std::move(object),
@@ -320,6 +340,10 @@ void PageInfoMainView::SetPermissionInfo(
@@ -322,6 +342,10 @@ void PageInfoMainView::SetPermissionInfo(
content_view->AddChildView(std::move(object_view)));
}
@@ -853,8 +853,8 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
@@ -28,6 +28,8 @@
#include "chrome/browser/ui/views/page_info/page_info_security_content_view.h"
@@ -30,6 +30,8 @@
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/cookie_controls_state.h"
+#include "components/content_settings/core/browser/website_settings_info.h"
@@ -862,22 +862,22 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
#include "components/page_info/core/features.h"
#include "components/page_info/core/proto/about_this_site_metadata.pb.h"
#include "components/page_info/page_info.h"
@@ -290,7 +292,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT
? info.default_setting
: info.setting;
@@ -291,7 +293,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
bool blocked_on_system_level) {
PermissionSetting setting =
permission.setting.value_or(permission.default_setting);
+ return GetPermissionIcon(info, blocked_on_system_level, setting);
+}
+// static
+const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
+ const PageInfo::PermissionInfo& info,
+ const PageInfo::PermissionInfo& permission,
+ bool blocked_on_system_level,
+ ContentSetting setting) {
auto* info = content_settings::PermissionSettingsRegistry::GetInstance()->Get(
permission.type);
// For guard content settings and Automatic Picture-in-Picture, ASK is treated
// as an "on" state.
const bool show_blocked_badge =
@@ -591,6 +600,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -595,6 +604,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
icon = &vector_icons::kPrinterIcon;
break;
default:
@@ -945,8 +945,8 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
namespace {
@@ -75,17 +100,12 @@ PermissionToggleRowView::PermissionToggleRowView(
// instead of adding it as the only child.
@@ -73,17 +98,12 @@ PermissionToggleRowView::PermissionToggleRowView(
navigation_handler_(navigation_handler) {
SetUseDefaultFillLayout(true);
row_view_ = AddChildView(std::make_unique<RichControlsContainerView>());
+ row_view_->SetCrossAxisAlignment(views::LayoutAlignment::kCenter);
@@ -964,7 +964,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
if (permission.requesting_origin.has_value()) {
std::u16string requesting_origin_string;
switch (permission.type) {
@@ -183,6 +203,90 @@ void PermissionToggleRowView::UpdatePermission(
@@ -181,6 +201,90 @@ void PermissionToggleRowView::UpdatePermission(
UpdateUiOnPermissionChanged();
}
@@ -1055,7 +1055,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
void PermissionToggleRowView::OnToggleButtonPressed() {
PageInfoUI::ToggleBetweenAllowAndBlock(permission_);
PermissionChanged();
@@ -191,27 +295,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() {
@@ -189,27 +293,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() {
void PermissionToggleRowView::AddToggleButton(
const std::u16string& toggle_accessible_name,
int icon_label_spacing) {
@@ -1090,7 +1090,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
}
void PermissionToggleRowView::InitForUserSource(
@@ -253,12 +349,6 @@ void PermissionToggleRowView::InitForUserSource(
@@ -251,12 +347,6 @@ void PermissionToggleRowView::InitForUserSource(
auto spacer_view = std::make_unique<views::View>();
spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size));
spacer_view_ = row_view_->AddControl(std::move(spacer_view));
@@ -1103,7 +1103,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
}
}
}
@@ -284,6 +374,14 @@ void PermissionToggleRowView::InitForManagedSource(
@@ -282,6 +372,14 @@ void PermissionToggleRowView::InitForManagedSource(
}
void PermissionToggleRowView::UpdateUiOnPermissionChanged() {
@@ -1116,9 +1116,9 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c
+ }
+
if (blocked_on_system_level_label_) {
if (permission_.setting == CONTENT_SETTING_DEFAULT) {
if (!permission_.setting) {
permission_blocked_on_system_level_ = false;
@@ -329,6 +427,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() {
@@ -326,6 +424,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() {
}
}
}
@@ -1226,7 +1226,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/common/password_manager_features.h"
@@ -3912,6 +3916,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3855,6 +3859,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1381,7 +1381,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn
--- a/components/browser_ui/settings/android/BUILD.gn
+++ b/components/browser_ui/settings/android/BUILD.gn
@@ -88,6 +88,7 @@ android_resources("java_resources") {
@@ -92,6 +92,7 @@ android_resources("java_resources") {
"java/res/layout/managed_disclaimer_preference_for_radio_groups.xml",
"java/res/layout/preference_chrome_image_view.xml",
"java/res/layout/preference_spinner.xml",
@@ -1544,7 +1544,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
--- a/components/browser_ui/site_settings/android/BUILD.gn
+++ b/components/browser_ui/site_settings/android/BUILD.gn
@@ -156,6 +156,23 @@ android_library("java") {
@@ -153,6 +153,23 @@ android_library("java") {
":site_settings_jni_headers",
"//components/content_settings/android:java_pref_names_srcjar",
]
@@ -1568,7 +1568,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
}
android_library("javatests") {
@@ -205,6 +222,7 @@ robolectric_library("junit") {
@@ -202,6 +219,7 @@ robolectric_library("junit") {
}
android_resources("java_resources") {
@@ -1579,7 +1579,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
+++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
@@ -193,4 +193,11 @@ The order of the following items is from: http://crbug.com/610358.
@@ -197,4 +197,11 @@ The order of the following items is from: http://crbug.com/610358.
android:title="@string/safety_hub_autorevocation_toggle_title"
android:summary="@string/safety_hub_autorevocation_toggle_summary" />
@@ -2260,7 +2260,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ public ResourceItem(
int icon,
int title,
@ContentSettingValues @Nullable Integer defaultEnabledValue,
@ContentSetting @Nullable Integer defaultEnabledValue,
@@ -662,6 +683,8 @@ public class ContentSettingsResources {
R.string.website_settings_window_management_ask,
R.string.website_settings_window_management_block);
@@ -2270,8 +2270,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false; // NOTREACHED
return assumeNonNull(null);
}
@@ -820,6 +843,14 @@ public class ContentSettingsResources {
return getResourceItem(contentType).getDefaultDisabledValue();
@@ -824,6 +847,14 @@ public class ContentSettingsResources {
return getCategorySummary(value, isOneTime, /* isApproximateGeolocation= */ false);
}
+ public static int getCategorySummary(int contentType,
@@ -2285,7 +2285,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/**
* Returns the string resource id for a given ContentSetting to show with a permission category.
*
@@ -994,6 +1025,8 @@ public class ContentSettingsResources {
@@ -1002,6 +1033,8 @@ public class ContentSettingsResources {
*/
public static int @Nullable [] getTriStateSettingDescriptionIDs(
int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) {
@@ -2297,18 +2297,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -344,6 +344,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
website.site()
.getContentSetting(
browserContextHandle, mCategory.getContentSettingsType());
+ if (contentSetting != null &&
+ BromiteCustomContentSettingImpl.processOnBlockList(contentSetting, contentSetting)) {
+ return BromiteCustomContentSettingImpl.isOnBlockList(contentSetting, website, contentSetting);
+ }
if (contentSetting != null) {
return ContentSettingValues.BLOCK == contentSetting;
}
@@ -532,6 +536,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -349,6 +349,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
@ContentSetting
Integer contentSetting = website.site().getContentSetting(browserContextHandle, type);
+ if (contentSetting != null &&
+ BromiteCustomContentSettingImpl.processOnBlockList(type, contentSetting)) {
+ return BromiteCustomContentSettingImpl.isOnBlockList(type, website, contentSetting);
+ }
if (contentSetting != null) {
return ContentSetting.BLOCK == contentSetting;
}
@@ -540,6 +544,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -2316,7 +2316,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureGlobalToggles();
if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) {
RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered");
@@ -567,7 +572,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -575,7 +580,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
if (queryHasChanged) getInfoForOrigins();
});
@@ -2326,7 +2326,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
MenuItem help =
menu.add(
Menu.NONE,
@@ -579,12 +585,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -587,12 +593,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getResources(),
R.drawable.ic_help_and_feedback,
getContext().getTheme()));
@@ -2347,9 +2347,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
getSiteSettingsDelegate()
.launchProtectedContentHelpAndFeedbackActivity(getActivity());
@@ -664,6 +678,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
BrowserContextHandle browserContextHandle =
getSiteSettingsDelegate().getBrowserContextHandle();
@@ -671,6 +685,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
public boolean onPreferenceChange(Preference preference, Object newValue) {
BrowserContextHandle browserContextHandle = getBrowserContextHandle();
PrefService prefService = UserPrefs.get(browserContextHandle);
+ if (BromiteCustomContentSettingImpl.onPreferenceChange(mCategory,
+ browserContextHandle, preference, newValue) == true) {
@@ -2359,7 +2359,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey())
|| BINARY_TOGGLE_KEY.equals(preference.getKey())) {
assert !mCategory.isManaged();
@@ -842,7 +861,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -845,7 +864,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? R.string.website_settings_add_site_description_javascript_optimizer_block
: R.string.website_settings_add_site_description_javascript_optimizer_allow;
}
@@ -2412,10 +2412,10 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
TriStateSiteSettingsPreference triStateToggle =
getPreferenceScreen().findPreference(TRI_STATE_TOGGLE_KEY);
+ if (triStateToggle == null) return true;
return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK);
case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE:
TriStateCookieSettingsPreference triStateCookieToggle =
@@ -1320,7 +1345,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1322,7 +1347,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (res_id != -1) {
infoText.setSummary(res_id);
} else {
@@ -2428,7 +2428,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
@@ -1359,6 +1388,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1361,6 +1390,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
screen.removePreference(mLocationTriStatePref);
}
@@ -2436,7 +2436,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
maybeShowReasonToggleDisabled(screen);
@@ -1571,6 +1601,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1569,6 +1599,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType);
}
triStateToggle.initialize(
@@ -2444,9 +2444,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
setting,
descriptionIds,
iconIds,
@@ -1730,6 +1761,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@ContentSettingValues
Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
@@ -1743,6 +1774,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
value = site.getContentSetting(browserContextHandle, contentSettingsType);
}
+ AlertDialog.Builder alertDialogBuilder =
+ BromiteCustomContentSettingImpl.buildPreferenceDialog(site, contentSettingsType,
@@ -2462,7 +2462,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -59,6 +59,7 @@ import java.util.Collection;
@@ -56,6 +56,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -2470,7 +2470,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/** Shows the permissions and other settings for a particular website. */
@NullMarked
@@ -192,7 +193,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -196,7 +197,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
case ContentSettingsType.WINDOW_MANAGEMENT:
return "window_management_permission_list";
default:
@@ -2479,7 +2479,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -598,14 +599,27 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -596,14 +597,27 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setupContentSettingsPreferences() {
Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER);
mMaxPermissionOrder = permissionsHeaderPref.getOrder();
@@ -2508,8 +2508,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
preference.setKey(getPreferenceKey(type));
if (type == ContentSettingsType.ADS) {
@@ -1290,7 +1304,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSettingValues @Nullable Integer value,
@@ -1199,7 +1213,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSetting @Nullable Integer value,
boolean isEmbargoed,
boolean isOneTime) {
- if (value == null) return;
@@ -2526,16 +2526,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
setUpPreferenceCommon(preference, value);
preference.setOnPreferenceChangeListener(this);
@ContentSettingsType.EnumType
@@ -1298,7 +1321,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
preference.setSummary(
@@ -1211,7 +1234,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
isEmbargoed
? getString(R.string.automatically_blocked)
- : getString(ContentSettingsResources.getCategorySummary(value, isOneTime)));
+ : getString(ContentSettingsResources.getCategorySummary(content_type, value, isOneTime)));
: getString(
- ContentSettingsResources.getCategorySummary(
+ ContentSettingsResources.getCategorySummary(content_type,
value, isOneTime, isApproximateGeolocation)));
if (preference instanceof ChromeImageViewPreference) {
ChromeImageViewPreference oneTimePreference = (ChromeImageViewPreference) preference;
oneTimePreference.setImageView(
@@ -1313,10 +1336,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1237,10 +1260,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
oneTimePreference.setBackgroundColor(mHighlightColor);
}
} else {
@@ -2554,9 +2554,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
.getDefaultColor());
}
@@ -1542,14 +1569,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1532,7 +1559,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (newValue instanceof Boolean) {
permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK;
permission = (Boolean) newValue ? getEnabledValue(type) : ContentSetting.BLOCK;
} else {
- permission = (Integer) newValue;
+ Integer newPermission =
@@ -2568,19 +2568,20 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ permission = (Integer) newValue;
}
assumeNonNull(mSite).setContentSetting(browserContextHandle, type, permission);
// In Clank, one time grants are only possible via prompt, not via page
if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) {
@@ -1553,7 +1586,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
// info.
preference.setSummary(
- getString(ContentSettingsResources.getCategorySummary(permission, false)));
+ getString(ContentSettingsResources.getCategorySummary(type, permission, false)));
preference.setIcon(getContentSettingsIcon(type, permission));
if (mWebsiteSettingsObserver != null) {
getString(
- ContentSettingsResources.getCategorySummary(
+ ContentSettingsResources.getCategorySummary(type,
permission,
false,
type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
@@ -57,6 +57,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -55,6 +55,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
SettingsUtils.addPreferencesFromResource(this, R.xml.site_settings_preferences);
mPageTitle.set(getContext().getString(R.string.prefs_site_settings));
@@ -2588,7 +2589,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configurePreferences();
updatePreferenceStates();
}
@@ -87,7 +88,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -85,7 +86,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
// Remove unsupported settings categories.
for (@SiteSettingsCategory.Type int type = 0;
@@ -2597,7 +2598,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
type++) {
if (!getSiteSettingsDelegate().isCategoryVisible(type)) {
Preference pref = findPreference(type);
@@ -113,7 +114,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -102,7 +103,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@CookieControlsMode
int cookieControlsMode =
UserPrefs.get(browserContextHandle).getInteger(COOKIE_CONTROLS_MODE);
@@ -2606,7 +2607,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
Preference p = findPreference(prefCategory);
int contentType = SiteSettingsCategory.contentSettingsType(prefCategory);
// p can be null if the Preference was removed in configurePreferences.
@@ -191,20 +192,22 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -176,20 +177,22 @@ public class SiteSettings extends BaseSiteSettingsFragment
} else if (Type.ZOOM == prefCategory) {
// Don't want to set a summary for Zoom because we don't want any message to display
// under the Zoom row on site settings.
@@ -2615,7 +2616,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
- ContentSettingsResources.getCategorySummary(
- setting, /* isOneTime= */ false));
} else {
- @ContentSettingValues
- @ContentSetting
- Integer defaultForToggle =
- checked
- ? ContentSettingsResources.getDefaultEnabledValue(contentType)
@@ -2629,7 +2630,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ if (summary != 0) {
+ p.setSummary(summary);
+ } else {
+ @ContentSettingValues
+ @ContentSetting
+ Integer defaultForToggle =
+ checked
+ ? ContentSettingsResources.getDefaultEnabledValue(contentType)
@@ -2645,25 +2646,25 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
@@ -80,7 +80,7 @@ public class SiteSettingsCategory {
Type.SERIAL_PORT,
@@ -82,7 +82,7 @@ public class SiteSettingsCategory {
Type.LOCAL_NETWORK_ACCESS,
Type.WINDOW_MANAGEMENT,
Type.AUTO_PICTURE_IN_PICTURE,
- Type.NUM_ENTRIES
+ Type.NUM_ENTRIES_CHROMIUM
})
@Retention(RetentionPolicy.SOURCE)
public @interface Type {
@@ -125,7 +125,7 @@ public class SiteSettingsCategory {
int WINDOW_MANAGEMENT = 36;
@@ -128,7 +128,7 @@ public class SiteSettingsCategory {
int AUTO_PICTURE_IN_PICTURE = 37;
/** Number of handled categories used for calculating array sizes. */
- int NUM_ENTRIES = 37;
+ int NUM_ENTRIES_CHROMIUM = 37;
- int NUM_ENTRIES = 38;
+ int NUM_ENTRIES_CHROMIUM = 38;
}
private final BrowserContextHandle mBrowserContextHandle;
@@ -176,6 +176,9 @@ public class SiteSettingsCategory {
@@ -179,6 +179,9 @@ public class SiteSettingsCategory {
} else {
permission = "";
}
@@ -2673,7 +2674,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return new SiteSettingsCategory(browserContextHandle, type, permission);
}
@@ -184,7 +187,7 @@ public class SiteSettingsCategory {
@@ -187,7 +190,7 @@ public class SiteSettingsCategory {
@ContentSettingsType.EnumType int contentSettingsType) {
assert contentSettingsType != -1;
assert Type.ALL_SITES == 0;
@@ -2682,7 +2683,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSettingsType(i) == contentSettingsType) {
return createFromType(browserContextHandle, i);
}
@@ -195,7 +198,7 @@ public class SiteSettingsCategory {
@@ -198,7 +201,7 @@ public class SiteSettingsCategory {
public static @Nullable SiteSettingsCategory createFromPreferenceKey(
BrowserContextHandle browserContextHandle, String preferenceKey) {
assert Type.ALL_SITES == 0;
@@ -2691,7 +2692,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (preferenceKey(i).equals(preferenceKey)) {
return createFromType(browserContextHandle, i);
}
@@ -278,8 +281,7 @@ public class SiteSettingsCategory {
@@ -283,8 +286,7 @@ public class SiteSettingsCategory {
case Type.TRACKING_PROTECTION:
return ContentSettingsType.DEFAULT; // Conversion unavailable.
}
@@ -2701,7 +2702,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
/**
@@ -378,8 +380,12 @@ public class SiteSettingsCategory {
@@ -385,8 +387,12 @@ public class SiteSettingsCategory {
case Type.ZOOM:
return "zoom";
default:
@@ -2717,7 +2718,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
@@ -208,6 +208,8 @@ public interface SiteSettingsDelegate {
@@ -203,6 +203,8 @@ public interface SiteSettingsDelegate {
*/
String getRelatedWebsiteSetOwner(String memberOrigin);
@@ -2732,7 +2733,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
@@ -16,6 +16,7 @@ import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.browser_ui.widget.RadioButtonWithDescription;
import org.chromium.components.content_settings.ContentSettingValues;
import org.chromium.components.content_settings.ContentSetting;
+import org.chromium.components.content_settings.ContentSettingsType;
/** A 3-state Allowed/Ask/Blocked radio group Preference used for SiteSettings. */
@@ -2750,7 +2751,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
*/
public void initialize(
+ @ContentSettingsType.EnumType int contentType,
@ContentSettingValues int setting,
@ContentSetting int setting,
int @Nullable [] descriptionIds,
int @Nullable [] iconIds,
boolean isPermissionSiteSettingsRadioButtonFeatureEnabled,
@@ -2759,7 +2760,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
mSetting = setting;
mDescriptionIds = descriptionIds;
mIconIds = iconIds;
@@ -92,6 +96,13 @@ public class TriStateSiteSettingsPreference extends Preference
@@ -94,6 +98,13 @@ public class TriStateSiteSettingsPreference extends Preference
mRadioGroup = (RadioGroup) holder.findViewById(R.id.radio_button_layout);
mRadioGroup.setOnCheckedChangeListener(this);
@@ -2776,7 +2777,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
@@ -344,7 +344,11 @@ public final class Website implements WebsiteEntry {
@@ -361,7 +361,11 @@ public final class Website implements WebsiteEntry {
RecordUserAction.record("SoundContentSetting.UnmuteBy.SiteSettings");
}
}
@@ -2792,7 +2793,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -124,7 +124,7 @@ public class WebsitePermissionsFetcher {
@@ -128,7 +128,7 @@ public class WebsitePermissionsFetcher {
}
break;
default:
@@ -2804,7 +2805,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
@@ -317,7 +317,7 @@ public class WebsitePreferenceBridge {
@@ -318,7 +318,7 @@ public class WebsitePreferenceBridge {
case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER:
return true;
default:
@@ -2813,7 +2814,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -333,7 +333,6 @@ public class WebsitePreferenceBridge {
@@ -334,7 +334,6 @@ public class WebsitePreferenceBridge {
public static boolean isCategoryEnabled(
BrowserContextHandle browserContextHandle,
@ContentSettingsType.EnumType int contentSettingsType) {
@@ -2931,7 +2932,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -872,6 +873,7 @@ void ContentSettingsRegistry::Init() {
@@ -879,6 +880,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -3165,7 +3166,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -100,10 +100,22 @@ std::ostream& operator<<(std::ostream& os,
@@ -98,10 +98,22 @@ std::ostream& operator<<(std::ostream& os,
typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
@@ -3398,7 +3399,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
@@ -193,6 +193,15 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont
@@ -203,6 +203,15 @@ public class PageInfoPermissionsController extends PageInfoPreferenceSubpageCont
: perm1.nameMidSentence.toString());
}
@@ -3417,10 +3418,10 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
@@ -109,6 +109,14 @@ public class PermissionParamsListBuilder {
@@ -100,6 +100,14 @@ public class PermissionParamsListBuilder {
nameStringMidSentence.setSpan(
span, 0, nameStringMidSentence.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
boolean allowed = permission.setting != ContentSettingValues.BLOCK;
+ if (permission.setting == ContentSettingValues.ASK) {
+ allowed = false;
+ }
@@ -3435,15 +3436,15 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
--- a/components/page_info/android/page_info_controller_android.cc
+++ b/components/page_info/android/page_info_controller_android.cc
@@ -14,6 +14,7 @@
#include "base/feature_list.h"
@@ -15,6 +15,7 @@
#include "base/notimplemented.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/content_settings/core/browser/permission_settings_registry.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/page_info/android/page_info_client.h"
@@ -184,6 +185,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
#include "components/content_settings/core/common/features.h"
@@ -197,6 +198,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
permissions_to_display.push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS);
}
@@ -3456,10 +3457,10 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
+ }
+ }
+
std::map<ContentSettingsType, ContentSetting>
std::map<ContentSettingsType, /*allowed*/ bool>
user_specified_settings_to_display;
std::map<ContentSettingsType, bool>
@@ -243,6 +253,14 @@ std::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
@@ -259,6 +269,14 @@ std::optional<PermissionSetting> PageInfoControllerAndroid::GetSettingToDisplay(
return permission.setting;
}
@@ -3477,7 +3478,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -22,6 +22,7 @@
@@ -23,6 +23,7 @@
#include "base/values.h"
#include "build/build_config.h"
#include "components/browsing_data/content/browsing_data_helper.h"
@@ -3485,8 +3486,8 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
@@ -1317,6 +1318,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
@@ -1367,6 +1368,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// via `HasContentSettingChangedViaPageInfo(type)`.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
+ content_settings::WebsiteSettingsRegistry* website_settings =
@@ -3500,7 +3501,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
// Note |ContentSettingsType::ADS| will show up regardless of its default
// value when it has been activated on the current origin.
if (info.type == ContentSettingsType::ADS) {
@@ -1433,7 +1442,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1494,7 +1503,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3524,15 +3525,15 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_info_ui.cc
--- a/components/page_info/page_info_ui.cc
+++ b/components/page_info/page_info_ui.cc
@@ -18,6 +18,7 @@
#include "build/build_config.h"
@@ -16,6 +16,7 @@
#include "components/content_settings/core/browser/permission_settings_registry.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/page_info/core/features.h"
#include "components/page_info/page_info.h"
#include "components/page_info/page_info_ui_delegate.h"
@@ -317,6 +318,13 @@ void CreateOppositeToDefaultSiteException(
#include "components/page_info/page_info_ui.h"
@@ -252,6 +253,13 @@ void CreateOppositeToDefaultSiteException(
std::u16string GetPermissionAskStateString(ContentSettingsType type) {
int message_id = kInvalidResourceID;
@@ -3546,7 +3547,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
switch (type) {
case ContentSettingsType::GEOLOCATION:
message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK;
@@ -615,6 +623,12 @@ PageInfoUI::~PageInfoUI() = default;
@@ -550,6 +558,12 @@ PageInfoUI::~PageInfoUI() = default;
// static
std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -3559,7 +3560,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id);
@@ -625,6 +639,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -560,6 +574,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
// static
std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
ContentSettingsType type) {
@@ -3572,7 +3573,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
@@ -1051,6 +1071,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
@@ -948,6 +968,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
+29 -74
View File
@@ -6,25 +6,23 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 5 ----
chrome/android/chrome_java_sources.gni | 1 -
.../android/java/res/xml/main_preferences.xml | 3 +-
.../android/java/res/xml/main_preferences.xml | 2 +-
.../PasswordCheckupLauncher.java | 25 ----------------
.../settings/FragmentDependencyProvider.java | 30 -------------------
.../chrome/browser/settings/MainSettings.java | 2 +-
.../settings/SettingsNavigationImpl.java | 13 ++------
.../settings/SettingsNavigationImpl.java | 3 +-
chrome/browser/BUILD.gn | 1 -
chrome/browser/safety_check/android/BUILD.gn | 2 --
.../safety_check/SafetyCheckBridge.java | 4 +--
.../suggestions/action/OmniboxPedal.java | 3 --
chrome/browser/ui/tab_helpers.cc | 2 +-
.../site_settings/SiteSettings.java | 2 +-
.../Disable-safety-check.inc | 1 +
14 files changed, 10 insertions(+), 84 deletions(-)
12 files changed, 6 insertions(+), 73 deletions(-)
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-safety-check.inc
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -459,7 +459,6 @@ if (_is_default_toolchain) {
@@ -457,7 +457,6 @@ if (_is_default_toolchain) {
"//chrome/browser/recent_tabs:java",
"//chrome/browser/regional_capabilities/android:java",
"//chrome/browser/safe_browsing/android:java",
@@ -32,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",
@@ -1136,8 +1135,6 @@ if (_is_default_toolchain) {
@@ -1138,8 +1137,6 @@ if (_is_default_toolchain) {
"//chrome/browser/recent_tabs:junit",
"//chrome/browser/recent_tabs/internal:junit",
"//chrome/browser/safe_browsing/android:junit",
@@ -41,7 +39,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/search_engines/android:junit",
"//chrome/browser/search_resumption:junit",
"//chrome/browser/serial/android:junit",
@@ -1425,8 +1422,6 @@ if (_is_default_toolchain) {
@@ -1426,8 +1423,6 @@ if (_is_default_toolchain) {
"//chrome/browser/quick_delete:javatests",
"//chrome/browser/renderer_host/android:javatests",
"//chrome/browser/safe_browsing/android:javatests",
@@ -53,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
@@ -942,7 +942,6 @@ chrome_java_sources = [
@@ -950,7 +950,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",
@@ -64,20 +62,19 @@ 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
@@ -58,7 +58,8 @@ for the previous order (main_preferences_legacy). -->
android:fragment="org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment"
android:key="safety_check"
android:order="9"
- android:title="@string/prefs_safety_check"/>
+ android:title="@string/prefs_safety_check"
+ app:isPreferenceVisible="false" />
<Preference
@@ -54,7 +54,7 @@ found in the LICENSE file.
android:fragment="org.chromium.chrome.browser.safety_hub.SafetyHubFragment"
android:key="safety_hub"
android:order="10"
- android:title="@string/prefs_safety_check"/>
+ android:title="@string/prefs_safety_check" app:isPreferenceVisible="false"/>
<PreferenceCategory
android:key="autofill_section"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupLauncher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupLauncher.java
@@ -10,7 +10,6 @@ import org.chromium.base.supplier.ObservableSupplierImpl;
@@ -8,7 +8,6 @@ import org.jni_zero.CalledByNative;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.profiles.Profile;
@@ -85,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
import org.chromium.chrome.browser.settings.SettingsCustomTabLauncherImpl;
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
import org.chromium.components.browser_ui.settings.SettingsNavigation.SettingsFragment;
@@ -26,38 +25,14 @@ public class PasswordCheckupLauncher {
@@ -23,37 +22,13 @@ public class PasswordCheckupLauncher {
WindowAndroid windowAndroid,
@PasswordCheckReferrer int passwordCheckReferrer,
@Nullable String accountEmail) {
@@ -101,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
- passwordManagerHelper.showPasswordCheckup(
- windowAndroid.getContext().get(),
- passwordCheckReferrer,
- getModalDialogManagerSupplier(windowAndroid),
- () -> windowAndroid.getModalDialogManager(),
- accountEmail,
- new SettingsCustomTabLauncherImpl());
}
@@ -122,12 +119,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
- SettingsNavigationFactory.createSettingsNavigation()
- .startSettings(windowAndroid.getContext().get(), SettingsFragment.SAFETY_CHECK);
}
private static ObservableSupplier<ModalDialogManager> getModalDialogManagerSupplier(
}
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
@@ -34,13 +34,6 @@ import org.chromium.chrome.browser.privacy_sandbox.ChromeTrackingProtectionDeleg
@@ -35,13 +35,6 @@ import org.chromium.chrome.browser.privacy_sandbox.ChromeTrackingProtectionDeleg
import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment;
import org.chromium.chrome.browser.privacy_sandbox.TopicsManageFragment;
import org.chromium.chrome.browser.profiles.Profile;
@@ -187,48 +183,31 @@ 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
@@ -306,7 +306,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
@@ -312,7 +312,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
removePreferenceIfPresent(PREF_UI_THEME);
}
- if (BuildInfo.getInstance().isAutomotive) {
+ if (((true)) || BuildInfo.getInstance().isAutomotive) {
getPreferenceScreen().removePreference(findPreference(PREF_SAFETY_CHECK));
- if (DeviceInfo.isAutomotive()) {
+ if (((true)) || isAutomotive()) {
getPreferenceScreen().removePreference(findPreference(PREF_SAFETY_HUB));
} else if (!ChromeFeatureList.sSafetyHub.isEnabled()) {
} else {
findPreference(PREF_SAFETY_HUB)
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
@@ -18,8 +18,6 @@ import org.chromium.chrome.browser.autofill.settings.FinancialAccountsManagement
@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragm
import org.chromium.chrome.browser.autofill.settings.FinancialAccountsManagementFragment;
import org.chromium.chrome.browser.autofill.settings.NonCardPaymentMethodsManagementFragment;
import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
-import org.chromium.chrome.browser.safety_hub.SafetyHubFragment;
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;
@@ -47,10 +45,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
ClearBrowsingDataFragment.createFragmentArgs(context.getClass().getName());
break;
case SettingsFragment.SAFETY_CHECK:
- if (!ChromeFeatureList.sSafetyHub.isEnabled()) {
- fragmentArgs = SafetyCheckSettingsFragment.createBundle(true);
- }
- break;
+ return;
case SettingsFragment.MAIN:
case SettingsFragment.PAYMENT_METHODS:
case SettingsFragment.SITE:
@@ -110,11 +105,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
@@ -106,7 +105,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
case SettingsFragment.PAYMENT_METHODS:
return AutofillPaymentMethodsFragment.class;
case SettingsFragment.SAFETY_CHECK:
- if (ChromeFeatureList.sSafetyHub.isEnabled()) {
- return SafetyHubFragment.class;
- } else {
- return SafetyCheckSettingsFragment.class;
- }
- return SafetyHubFragment.class;
+ return null;
case SettingsFragment.SITE:
return SiteSettings.class;
@@ -236,7 +215,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
@@ -3458,7 +3458,6 @@ static_library("browser") {
@@ -3449,7 +3449,6 @@ static_library("browser") {
"//chrome/browser/recent_tabs:jni_headers",
"//chrome/browser/regional_capabilities",
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
@@ -297,30 +276,6 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
case OmniboxPedalId.MANAGE_SITE_SETTINGS:
delegate.openSettingsPage(SettingsFragment.SITE);
break;
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -571,7 +571,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
tpcd::trial::ValidityService::MaybeCreateForWebContents(web_contents);
TrustedVaultEncryptionKeysTabHelper::CreateForWebContents(web_contents);
#if BUILDFLAG(IS_ANDROID)
- if (base::FeatureList::IsEnabled(features::kSafetyHub)) {
+ if (((true)) || base::FeatureList::IsEnabled(features::kSafetyHub)) {
auto* service = RevokedPermissionsServiceFactory::GetForProfile(profile);
if (service) {
RevokedPermissionsService::TabHelper::CreateForWebContents(web_contents,
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
@@ -96,7 +96,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
}
// Remove the permission autorevocation preference if Safety Hub is not enabled.
- if (!getSiteSettingsDelegate().isSafetyHubEnabled()) {
+ if (((false)) && !getSiteSettingsDelegate().isSafetyHubEnabled()) {
Preference autorevocationPref =
findPreference(PERMISSION_AUTOREVOCATION_PREF);
getPreferenceScreen().removePreference(autorevocationPref);
diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-safety-check.inc b/cromite_flags/chrome/common/chrome_features_cc/Disable-safety-check.inc
new file mode 100644
--- /dev/null
+103 -217
View File
@@ -15,41 +15,38 @@ See also: https://github.com/bromite/bromite/issues/547
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../settings/PasswordSettings.java | 83 +++++++++++-
.../chrome/browser/settings/MainSettings.java | 2 +-
.../chromium/chrome/browser/tab/TabImpl.java | 41 +++++-
chrome/browser/about_flags.cc | 33 -----
chrome/browser/android/tab_android.cc | 3 +-
chrome/browser/autofill/android/BUILD.gn | 2 +-
.../autofill/AutofillClientProviderUtils.java | 2 +-
...AutofillThirdPartyModeContentProvider.java | 1 +
chrome/browser/flag_descriptions.cc | 6 -
chrome/browser/flag_descriptions.h | 3 -
.../strings/android_chrome_strings.grd | 6 +
.../ui/autofill/autofill_client_provider.cc | 124 +-----------------
.../ui/autofill/autofill_client_provider.h | 6 -
chrome/browser/ui/tab_helpers.cc | 4 +-
components/android_autofill/browser/BUILD.gn | 1 +
.../browser/android_autofill_manager.cc | 2 +
.../browser/android_autofill_manager.h | 2 +
.../autofill/AutofillManagerWrapper.java | 5 +-
.../components/autofill/AutofillProvider.java | 7 +
.../BrowserSelectionActionMenuDelegate.java | 68 ++++++++++
.../browser/content_autofill_driver.cc | 11 ++
.../content/browser/content_autofill_driver.h | 10 ++
.../content_autofill_driver_factory.cc | 12 ++
.../content/renderer/autofill_agent.cc | 5 +
.../renderer/password_autofill_agent.cc | 5 +-
.../browser/foundations/autofill_driver.h | 2 +
.../foundations/autofill_driver_factory.cc | 4 +
.../browser/foundations/autofill_manager.h | 2 +
.../foundations/browser_autofill_manager.cc | 2 +
.../foundations/browser_autofill_manager.h | 2 +
.../autofill/core/common/autofill_features.cc | 2 +-
.../autofill/core/common/autofill_features.h | 22 ----
.../autofill/core/common/autofill_prefs.cc | 4 +-
.../autofill/core/common/autofill_prefs.h | 5 +
34 files changed, 277 insertions(+), 212 deletions(-)
.../settings/PasswordSettings.java | 83 +++++++++++++++-
.../chrome/browser/settings/MainSettings.java | 16 +--
.../chromium/chrome/browser/tab/TabImpl.java | 42 ++++++--
chrome/browser/about_flags.cc | 3 -
chrome/browser/android/tab_android.cc | 3 +-
chrome/browser/autofill/android/BUILD.gn | 2 +-
.../autofill/AutofillClientProviderUtils.java | 2 +-
...AutofillThirdPartyModeContentProvider.java | 1 +
.../strings/android_chrome_strings.grd | 6 ++
.../ui/autofill/autofill_client_provider.cc | 97 +------------------
.../ui/autofill/autofill_client_provider.h | 6 --
chrome/browser/ui/tab_helpers.cc | 4 +-
components/android_autofill/browser/BUILD.gn | 1 +
.../browser/android_autofill_manager.cc | 2 +
.../browser/android_autofill_manager.h | 2 +
.../autofill/AutofillManagerWrapper.java | 5 +-
.../components/autofill/AutofillProvider.java | 7 ++
.../BrowserSelectionActionMenuDelegate.java | 68 +++++++++++++
.../browser/content_autofill_driver.cc | 11 +++
.../content/browser/content_autofill_driver.h | 10 ++
.../content_autofill_driver_factory.cc | 12 +++
.../content/renderer/autofill_agent.cc | 5 +
.../renderer/password_autofill_agent.cc | 5 +-
.../browser/foundations/autofill_driver.h | 2 +
.../foundations/autofill_driver_factory.cc | 4 +
.../browser/foundations/autofill_manager.h | 2 +
.../foundations/browser_autofill_manager.cc | 2 +
.../foundations/browser_autofill_manager.h | 2 +
.../autofill/core/common/autofill_features.cc | 2 +-
.../autofill/core/common/autofill_prefs.cc | 4 +-
.../autofill/core/common/autofill_prefs.h | 5 +
31 files changed, 278 insertions(+), 138 deletions(-)
create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -190,21 +187,35 @@ 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/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
@@ -442,7 +442,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
@@ -456,20 +456,8 @@ public class MainSettings extends ChromeBaseSettingsFragment
}
private void updateAutofillPreferences() {
- if (ChromeFeatureList.isEnabled(AutofillFeatures.AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID)) {
+ if ((false)) {
addPreferenceIfAbsent(PREF_AUTOFILL_SECTION);
addPreferenceIfAbsent(PREF_AUTOFILL_OPTIONS);
Preference preference = findPreference(PREF_AUTOFILL_OPTIONS);
- addPreferenceIfAbsent(PREF_AUTOFILL_SECTION);
- addPreferenceIfAbsent(PREF_AUTOFILL_OPTIONS);
- Preference autofillOptionsPreference = findPreference(PREF_AUTOFILL_OPTIONS);
- autofillOptionsPreference.setFragment(null);
- autofillOptionsPreference.setOnPreferenceClickListener(
- unused -> {
- SettingsNavigationFactory.createSettingsNavigation()
- .startSettings(
- getContext(),
- AutofillOptionsFragment.class,
- AutofillOptionsFragment.createRequiredArgs(
- AutofillOptionsReferrer.SETTINGS));
- return true; // Means event is consumed.
- });
+ removePreferenceIfPresent(PREF_AUTOFILL_SECTION);
+ removePreferenceIfPresent(PREF_AUTOFILL_OPTIONS);
findPreference(PREF_AUTOFILL_PAYMENTS)
.setOnPreferenceClickListener(
preference ->
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -113,6 +113,13 @@ import java.lang.annotation.RetentionPolicy;
import java.nio.ByteBuffer;
@@ -116,6 +116,13 @@ import java.nio.ByteBuffer;
import java.util.Objects;
import java.util.function.Supplier;
+import org.chromium.components.autofill.AutofillSelectionMenuItemHelper;
+import org.chromium.components.autofill.BrowserSelectionActionMenuDelegate;
@@ -216,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
@@ -1133,6 +1140,11 @@ class TabImpl implements Tab {
@@ -1131,6 +1138,11 @@ class TabImpl implements Tab {
for (TabObserver observer : mObservers) observer.onDestroyed(this);
mObservers.clear();
@@ -228,15 +239,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mUserDataHost.destroy();
mTabViewManager.destroy();
hideNativePage(false, null);
@@ -1443,6 +1455,7 @@ class TabImpl implements Tab {
@@ -1448,7 +1460,7 @@ class TabImpl implements Tab {
* @return iff the AutofillProvider should provide a ViewStructure when prompted.
*/
boolean providesAutofillStructure() {
-
+ if ((true)) return true;
if (!ChromeFeatureList.isEnabled(
AutofillFeatures.AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID)) {
if (mProfile == null || !mProfile.isNativeInitialized()) {
return false;
@@ -2249,16 +2262,21 @@ class TabImpl implements Tab {
}
@@ -2251,16 +2263,21 @@ class TabImpl implements Tab {
* @return true if the the provider is available for the given WebContents.
*/
private boolean prepareAutofillProvider(WebContents newWebContents) {
@@ -261,10 +273,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
- } else {
+ assert isInitialized();
+ if (mAutofillProvider == null) {
// TODO: crbug.com/432447902 — Provide only an activity context and push changes.
mAutofillProvider =
new AutofillProvider(
getContext(),
@@ -2267,7 +2285,16 @@ class TabImpl implements Tab {
@@ -2270,7 +2287,16 @@ class TabImpl implements Tab {
getContext().getString(R.string.app_name));
TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid);
}
@@ -285,57 +297,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
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
@@ -3990,28 +3990,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = {
std::size(kLinkPreviewTriggerTypeLongPress), nullptr}};
@@ -3984,9 +3984,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = {
#endif // !BUILDFLAG(IS_ANDROID)
-#if BUILDFLAG(IS_ANDROID)
-inline constexpr flags_ui::FeatureEntry::FeatureParam
- kAutofillVirtualViewStructureAndroidSkipCompatibilityCheck = {
- autofill::features::
- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck.name,
- "skip_all_checks"};
-inline constexpr flags_ui::FeatureEntry::FeatureParam
- kAutofillVirtualViewStructureAndroidOnlySkipAwgCheck = {
- autofill::features::
- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck.name,
- "only_skip_awg_check"};
-
-inline constexpr flags_ui::FeatureEntry::FeatureVariation
- kAutofillVirtualViewStructureVariation[] = {
- {" without any compatibility check",
- &kAutofillVirtualViewStructureAndroidSkipCompatibilityCheck, 1,
- nullptr},
- {" without AwG restriction",
- &kAutofillVirtualViewStructureAndroidOnlySkipAwgCheck, 1, nullptr}};
#if BUILDFLAG(IS_ANDROID)
-
-#endif // BUILDFLAG(IS_ANDROID)
-
const FeatureEntry::FeatureParam kGroupSuggestionEnableRecentlyOpenedOnly[] = {
{"group_suggestion_enable_recently_opened", "true"},
{"group_suggestion_enable_switch_between", "false"},
@@ -6618,17 +6596,6 @@ const FeatureEntry kFeatureEntries[] = {
SINGLE_VALUE_TYPE(ui_devtools::switches::kEnableUiDevTools)},
#endif // BUILDFLAG(IS_CHROMEOS)
-#if BUILDFLAG(IS_ANDROID)
- {"enable-autofill-virtual-view-structure",
- flag_descriptions::kAutofillVirtualViewStructureAndroidName,
- flag_descriptions::kAutofillVirtualViewStructureAndroidDescription,
- kOsAndroid,
- FEATURE_WITH_PARAMS_VALUE_TYPE(
- autofill::features::kAutofillVirtualViewStructureAndroid,
- kAutofillVirtualViewStructureVariation,
- "Skip AutofillService Check")},
-#endif
-
#if BUILDFLAG(IS_CHROMEOS)
{"enable-touchscreen-calibration",
flag_descriptions::kTouchscreenCalibrationName,
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
@@ -444,8 +444,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
@@ -449,8 +449,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
->MaybeInitKeyboardSuppressor();
return;
}
@@ -348,7 +323,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/android/BUILD.gn
--- a/chrome/browser/autofill/android/BUILD.gn
+++ b/chrome/browser/autofill/android/BUILD.gn
@@ -164,7 +164,7 @@ android_library("bottom_sheet_utils_java") {
@@ -163,7 +163,7 @@ android_library("bottom_sheet_utils_java") {
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/autofill/AddressNormalizerFactory.java",
@@ -360,12 +335,13 @@ diff --git a/chrome/browser/autofill/android/BUILD.gn b/chrome/browser/autofill/
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java
+++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java
@@ -82,8 +82,8 @@ public class AutofillClientProviderUtils {
@@ -77,9 +77,9 @@ public class AutofillClientProviderUtils {
* @return {@link AndroidAutofillAvailabilityStatus.AVAILABLE} if Android Autofill can be used
* or a reason why it can't.
*/
- @CalledByNative
public static int getAndroidAutofillFrameworkAvailability(PrefService prefs) {
public static int getAndroidAutofillFrameworkAvailability(
@JniType("PrefService*") PrefService prefs) {
+ if ((true)) return AndroidAutofillAvailabilityStatus.AVAILABLE;
if (sAndroidAutofillFrameworkAvailabilityForTesting != null) {
return sAndroidAutofillFrameworkAvailabilityForTesting;
@@ -381,35 +357,6 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse
if (createContentUri().equals(uri)) {
final String[] columns = {AUTOFILL_THIRD_PARTY_MODE_COLUMN};
MatrixCursor cursor = new MatrixCursor(columns, 1);
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -988,12 +988,6 @@ const char kAutofillVcnEnrollStrikeExpiryTimeDescription[] =
"When enabled, changes the amount of time required for VCN enrollment "
"prompt strikes to expire.";
-const char kAutofillVirtualViewStructureAndroidName[] =
- "Enable the setting to provide a virtual view structure for Autofill";
-const char kAutofillVirtualViewStructureAndroidDescription[] =
- "When enabled, a setting allows to switch to using Android Autofill. Chrome"
- " then provides a virtual view structure but no own suggestions.";
-
const char kAutoPictureInPictureForVideoPlaybackName[] =
"Auto picture in picture for video playback";
const char kAutoPictureInPictureForVideoPlaybackDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -597,9 +597,6 @@ extern const char kAutofillUploadCardRequestTimeoutDescription[];
extern const char kAutofillVcnEnrollStrikeExpiryTimeName[];
extern const char kAutofillVcnEnrollStrikeExpiryTimeDescription[];
-extern const char kAutofillVirtualViewStructureAndroidName[];
-extern const char kAutofillVirtualViewStructureAndroidDescription[];
-
extern const char kAutoPictureInPictureForVideoPlaybackName[];
extern const char kAutoPictureInPictureForVideoPlaybackDescription[];
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
@@ -429,18 +376,18 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc
--- a/chrome/browser/ui/autofill/autofill_client_provider.cc
+++ b/chrome/browser/ui/autofill/autofill_client_provider.cc
@@ -17,123 +17,17 @@
#include "base/android/jni_string.h"
#include "base/task/thread_pool.h"
#include "chrome/browser/autofill/android/android_autofill_availability_status.h"
-#include "chrome/browser/autofill/android/jni_headers/AutofillClientProviderUtils_jni.h"
@@ -20,94 +20,15 @@
#include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
#include "components/android_autofill/browser/android_autofill_client.h"
#include "components/prefs/android/pref_service_android.h"
-
-// Must come after all headers that specialize FromJniType() / ToJniType().
-#include "chrome/browser/autofill/android/jni_headers/AutofillClientProviderUtils_jni.h"
#endif // BUILDFLAG(IS_ANDROID)
namespace autofill {
-namespace {
-
-#if BUILDFLAG(IS_ANDROID)
-void RecordAvailabilityStatus(AndroidAutofillAvailabilityStatus availability) {
- base::UmaHistogramEnumeration("Autofill.AndroidAutofillAvailabilityStatus",
@@ -471,18 +418,15 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
-void SetSharedPrefForDeepLink() {
- Java_AutofillClientProviderUtils_setAutofillOptionsDeepLinkPref(
- base::android::AttachCurrentThread(),
- base::FeatureList::IsEnabled(
- autofill::features::kAutofillVirtualViewStructureAndroid) &&
- base::FeatureList::IsEnabled(
- autofill::features::kAutofillDeepLinkAutofillOptions));
-}
-
- base::FeatureList::IsEnabled(
- autofill::features::kAutofillDeepLinkAutofillOptions));
-}
-// Sets a shared pref that allows external apps to use a ContentResolver to
-// figure out whether Chrome is using platform autofill over the default.
-void SetSharedPrefForSettingsContentProvider(bool uses_platform_autofill) {
- if (base::FeatureList::IsEnabled(
- autofill::features::kAutofillVirtualViewStructureAndroid) &&
- base::FeatureList::IsEnabled(
- autofill::features::kAutofillThirdPartyModeContentProvider)) {
- Java_AutofillClientProviderUtils_setThirdPartyModePref(
- base::android::AttachCurrentThread(), uses_platform_autofill);
@@ -494,35 +438,9 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
-
-AndroidAutofillAvailabilityStatus GetAndroidAutofillAvailabilityStatus(
- PrefService& prefs) {
- AndroidAutofillAvailabilityStatus availability = static_cast<
- AndroidAutofillAvailabilityStatus>(
- return static_cast<AndroidAutofillAvailabilityStatus>(
- Java_AutofillClientProviderUtils_getAndroidAutofillFrameworkAvailability(
- base::android::AttachCurrentThread(), prefs.GetJavaObject()));
- // Check whether the returned availability is affected by feature parameters
- // that skip some checks on this client.
- switch (availability) {
- case AndroidAutofillAvailabilityStatus::kAndroidAutofillServiceIsGoogle:
- if (features::kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck
- .Get() ==
- features::VirtualViewStructureSkipChecks::kOnlySkipAwGCheck) {
- availability = AndroidAutofillAvailabilityStatus::kAvailable;
- }
- ABSL_FALLTHROUGH_INTENDED; // No skip-awg-check but skip-all may apply.
- case AndroidAutofillAvailabilityStatus::kAndroidAutofillManagerNotAvailable:
- case AndroidAutofillAvailabilityStatus::kAndroidAutofillNotSupported:
- case AndroidAutofillAvailabilityStatus::kUnknownAndroidAutofillService:
- if (features::kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck
- .Get() ==
- features::VirtualViewStructureSkipChecks::kSkipAllChecks) {
- availability = AndroidAutofillAvailabilityStatus::kAvailable;
- }
- return availability;
- case AndroidAutofillAvailabilityStatus::kAvailable:
- case AndroidAutofillAvailabilityStatus::kSettingTurnedOff:
- case AndroidAutofillAvailabilityStatus::kNotAllowedByPolicy:
- return availability;
- }
- NOTREACHED();
- base::android::AttachCurrentThread(), &prefs));
-}
-#endif // BUILDFLAG(IS_ANDROID)
-
@@ -555,7 +473,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
#endif // BUILDFLAG(IS_ANDROID)
}
@@ -141,15 +35,7 @@ AutofillClientProvider::~AutofillClientProvider() = default;
@@ -115,15 +36,7 @@ AutofillClientProvider::~AutofillClientProvider() = default;
void AutofillClientProvider::CreateClientForWebContents(
content::WebContents* web_contents) {
@@ -571,7 +489,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
}
#if BUILDFLAG(IS_ANDROID)
@@ -161,12 +47,6 @@ void AutofillClientProvider::RegisterSyntheticFieldTrialForPackage(
@@ -135,12 +48,6 @@ void AutofillClientProvider::RegisterSyntheticFieldTrialForPackage(
}
void AutofillClientProvider::DelayRegisteringFieldTrialForA11yDeprecation() {
@@ -610,7 +528,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -385,9 +385,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -391,9 +391,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
web_contents);
ChainedBackNavigationTracker::CreateForWebContents(web_contents);
chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents);
@@ -667,15 +585,15 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
if (event == EVENT_INPUT_SHOWN) manager.notifyInputUiChange();
}
}
@@ -129,6 +130,7 @@ public class AutofillManagerWrapper {
@@ -120,6 +121,7 @@ public class AutofillManagerWrapper {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
ComponentName componentName = getAutofillServiceComponentName(autofillManager);
ComponentName componentName = getAutofillServiceComponentName(mAutofillManager);
+ if (isLoggable()) log("componentName=" + componentName);
if (componentName != null) {
mPackageName = componentName.getPackageName();
mIsAwGCurrentAutofillService =
@@ -350,7 +352,7 @@ public class AutofillManagerWrapper {
@@ -352,7 +354,7 @@ public class AutofillManagerWrapper {
/** Always check isLoggable() before call this method. */
public static void log(String log) {
// Log.i() instead of Log.d() is used here because Log.d() is stripped out in release build.
@@ -684,7 +602,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
}
public static boolean isLoggable() {
@@ -364,5 +366,6 @@ public class AutofillManagerWrapper {
@@ -366,5 +368,6 @@ public class AutofillManagerWrapper {
// NOTE: See the comment on TAG above for why this is still AwAutofillManager.
// Check the system setting directly.
sIsLoggable = android.util.Log.isLoggable(TAG, Log.DEBUG);
@@ -694,9 +612,9 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java
--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java
+++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillProvider.java
@@ -220,6 +220,10 @@ public class AutofillProvider {
/** @return whether query autofill suggestion. */
@@ -252,6 +252,10 @@ public class AutofillProvider {
* @return whether query autofill suggestion.
*/
public boolean shouldQueryAutofillSuggestion() {
+ AutofillManagerWrapper.log("---shouldQueryAutofillSuggestion" +
+ " mRequest != null=" + (mRequest != null) +
@@ -705,7 +623,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
return mRequest != null
&& mRequest.getFocusField() != null
&& !getAutofillManagerWrapper().isAutofillInputUiShowing();
@@ -228,6 +232,7 @@ public class AutofillProvider {
@@ -260,6 +264,7 @@ public class AutofillProvider {
public boolean shouldOfferPasskeyEntry() {
if (!AndroidAutofillFeatures.ANDROID_AUTOFILL_VIRTUAL_VIEW_STRUCTURE_PASSKEY_LONG_PRESS
.isEnabled()) {
@@ -713,7 +631,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
return false;
}
return AutofillProviderJni.get().hasPasskeyRequest(mNativeAutofillProvider);
@@ -240,6 +245,7 @@ public class AutofillProvider {
@@ -272,6 +277,7 @@ public class AutofillProvider {
}
public void queryAutofillSuggestion() {
@@ -721,7 +639,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
if (shouldQueryAutofillSuggestion()) {
FocusField focusField = mRequest.getFocusField();
getAutofillManagerWrapper()
@@ -302,6 +308,7 @@ public class AutofillProvider {
@@ -334,6 +340,7 @@ public class AutofillProvider {
float width,
float height,
boolean hasServerPrediction) {
@@ -953,7 +871,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_driver_factor
diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h
--- a/components/autofill/core/browser/foundations/autofill_manager.h
+++ b/components/autofill/core/browser/foundations/autofill_manager.h
@@ -223,6 +223,8 @@ class AutofillManager
@@ -225,6 +225,8 @@ class AutofillManager
LifecycleState new_state,
base::PassKey<AutofillDriverFactory> pass_key);
@@ -965,7 +883,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.cc b/components/autofill/core/browser/foundations/browser_autofill_manager.cc
--- a/components/autofill/core/browser/foundations/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager.cc
@@ -753,6 +753,8 @@ base::WeakPtr<AutofillManager> BrowserAutofillManager::GetWeakPtr() {
@@ -809,6 +809,8 @@ base::WeakPtr<AutofillManager> BrowserAutofillManager::GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
@@ -989,51 +907,19 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
@@ -948,7 +948,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider,
BASE_FEATURE(kAutofillVirtualViewStructureAndroid,
"AutofillVirtualViewStructureAndroid",
@@ -935,7 +935,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid,
BASE_FEATURE(kAutofillThirdPartyModeContentProvider,
"AutofillThirdPartyModeContentProvider",
base::FEATURE_ENABLED_BY_DEFAULT);
-
+SET_CROMITE_FEATURE_ENABLED(kAutofillVirtualViewStructureAndroid);
#endif // BUILDFLAG(IS_ANDROID)
namespace test {
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h
--- a/components/autofill/core/common/autofill_features.h
+++ b/components/autofill/core/common/autofill_features.h
@@ -338,28 +338,6 @@ COMPONENT_EXPORT(AUTOFILL)
BASE_DECLARE_FEATURE(kAutofillThirdPartyModeContentProvider);
COMPONENT_EXPORT(AUTOFILL)
BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid);
-
-// Used as param for `kAutofillVirtualViewStructureAndroid` to allow
-// skipping certain checks when testing manually.
-enum class VirtualViewStructureSkipChecks {
- kDontSkip = 0,
- kSkipAllChecks = 1,
- kOnlySkipAwGCheck = 2,
-};
-
-inline constexpr base::FeatureParam<VirtualViewStructureSkipChecks>::Option
- kVirtualViewStructureSkipChecksOption[] = {
- {VirtualViewStructureSkipChecks::kDontSkip, "dont_skip"},
- {VirtualViewStructureSkipChecks::kSkipAllChecks, "skip_all_checks"},
- {VirtualViewStructureSkipChecks::kOnlySkipAwGCheck,
- "only_skip_awg_check"},
-};
-inline constexpr base::FeatureParam<VirtualViewStructureSkipChecks>
- kAutofillVirtualViewStructureAndroidSkipsCompatibilityCheck{
- &kAutofillVirtualViewStructureAndroid, "skip_compatibility_check",
- VirtualViewStructureSkipChecks::kDontSkip,
- &kVirtualViewStructureSkipChecksOption};
-
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_APPLE)
// Defines if the "Your Saved Info" page is eligible to be shown in Chrome
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
@@ -56,6 +56,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -62,6 +62,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(kAutofillCreditCardFidoAuthOfferCheckboxState,
true);
#endif
@@ -1042,7 +928,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
registry->RegisterIntegerPref(kAutocompleteLastVersionRetentionPolicy, 0);
registry->RegisterStringPref(kAutofillUploadEncodingSeed, "");
registry->RegisterDictionaryPref(kAutofillVoteUploadEvents);
@@ -95,7 +97,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -101,7 +103,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_ANDROID)
@@ -1054,7 +940,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
--- a/components/autofill/core/common/autofill_prefs.h
+++ b/components/autofill/core/common/autofill_prefs.h
@@ -110,6 +110,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] =
@@ -118,6 +118,11 @@ inline constexpr char kAutofillNameAndEmailProfileNotSelectedCounter[] =
// retention policy was run.
inline constexpr char kAutocompleteLastVersionRetentionPolicy[] =
"autocomplete.retention_policy_last_version";
@@ -91,17 +91,17 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -12,6 +12,9 @@ import android.os.Bundle;
import androidx.annotation.Nullable;
@@ -11,6 +11,9 @@ import android.os.Bundle;
import androidx.fragment.app.Fragment;
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.customtabs.CustomTabActivity;
+
import org.chromium.base.IntentUtils;
import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragment;
import org.chromium.chrome.browser.autofill.settings.FinancialAccountsManagementFragment;
@@ -31,6 +34,13 @@ public class SettingsNavigationImpl implements SettingsNavigation {
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -32,6 +35,13 @@ public class SettingsNavigationImpl implements SettingsNavigation {
/** Instantiated through SettingsNavigationFactory. */
SettingsNavigationImpl() {}
@@ -130,7 +130,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
<!-- Support Tool strings -->
<if expr="not is_android">
<part file="support_tool_strings.grdp" />
@@ -509,7 +514,7 @@ are declared in tools/grit/grit_args.gni.
@@ -527,7 +532,7 @@ are declared in tools/grit/grit_args.gni.
Disable
</message>
<!-- Search strings are only used in webui. These aren't needed on android unless are enabled. -->
@@ -142,7 +142,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -2236,6 +2236,9 @@
@@ -2218,6 +2218,9 @@
<message name="IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION" desc="Label for explaining the format of the URL that should be entered by the user in the add/edit search engine dialog.">
URL with <ph name="SPECIAL_SYMBOL">%s</ph> in place of query
</message>
@@ -420,7 +420,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3698,6 +3698,9 @@ static_library("browser") {
@@ -3706,6 +3706,9 @@ static_library("browser") {
"//components/user_scripts/android",
]
}
@@ -459,7 +459,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h"
#include "chrome/browser/ui/webui/feed_internals/feed_internals_ui.h"
@@ -497,6 +503,15 @@ void PopulateChromeWebUIFrameBinders(
@@ -503,6 +509,15 @@ void PopulateChromeWebUIFrameBinders(
}
#endif
@@ -475,7 +475,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
#if !BUILDFLAG(IS_ANDROID)
RegisterWebUIControllerInterfaceBinder<
actor_internals::mojom::PageHandlerFactory, ActorInternalsUI>(map);
@@ -653,6 +668,9 @@ void PopulateChromeWebUIFrameBinders(
@@ -660,6 +675,9 @@ void PopulateChromeWebUIFrameBinders(
RegisterWebUIControllerInterfaceBinder<suggest_internals::mojom::PageHandler,
SuggestInternalsUI>(map);
@@ -485,7 +485,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
RegisterWebUIControllerInterfaceBinder<
password_manager::mojom::PageHandlerFactory, PasswordManagerUI>(map);
@@ -676,6 +694,9 @@ void PopulateChromeWebUIFrameBinders(
@@ -683,6 +701,9 @@ void PopulateChromeWebUIFrameBinders(
CertificateManagerUI>(map);
#endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
@@ -510,7 +510,7 @@ diff --git a/chrome/browser/extensions/extension_util.h b/chrome/browser/extensi
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -27,6 +27,13 @@ group("resources") {
@@ -28,6 +28,13 @@ group("resources") {
public_deps += [ ":component_extension_resources" ]
}
@@ -936,7 +936,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -680,7 +680,11 @@ static_library("ui") {
@@ -671,7 +671,11 @@ static_library("ui") {
deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ]
}
}
@@ -949,7 +949,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
# TODO(crbug.com/413572035): Move into build files of the actual
# modules depending on this. eg: autofill, user_education.
if (is_chrome_branded) {
@@ -969,6 +973,25 @@ static_library("ui") {
@@ -985,6 +989,25 @@ static_library("ui") {
"//extensions/browser:extension_action_enums",
]
}
@@ -1171,7 +1171,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"
#endif
@@ -439,4 +444,7 @@ void RegisterChromeWebUIConfigs() {
@@ -441,4 +446,7 @@ void RegisterChromeWebUIConfigs() {
#if BUILDFLAG(ENTERPRISE_WATERMARK)
map.AddWebUIConfig(std::make_unique<WatermarkUIConfig>());
#endif
@@ -1388,7 +1388,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2571,6 +2571,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
@@ -2560,6 +2560,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
@@ -1397,7 +1397,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
{"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT},
{"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE},
{"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE},
@@ -3906,7 +3908,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3849,7 +3851,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
AddSiteSettingsStrings(html_source, profile);
AddSiteDataPageStrings(html_source, profile);
AddStorageAccessStrings(html_source);
@@ -1890,7 +1890,7 @@ new file mode 100644
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -190,6 +190,17 @@ template("chrome_extra_paks") {
@@ -189,6 +189,17 @@ template("chrome_extra_paks") {
deps += [ "//chrome/browser/resources:component_extension_resources" ]
}
@@ -1957,7 +1957,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
--- a/components/search_engines/template_url.cc
+++ b/components/search_engines/template_url.cc
@@ -2079,6 +2079,10 @@ void TemplateURL::SetURL(const std::string& url) {
@@ -2125,6 +2125,10 @@ void TemplateURL::SetURL(const std::string& url) {
url_ref().InvalidateCachedValues();
}
@@ -1971,7 +1971,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin
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
@@ -989,6 +989,7 @@ class TemplateURL {
@@ -1007,6 +1007,7 @@ class TemplateURL {
bool CreatedByRegulatoryProgram() const;
void SetURL(const std::string& url);
@@ -2020,7 +2020,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h
--- a/components/search_engines/template_url_service.h
+++ b/components/search_engines/template_url_service.h
@@ -255,7 +255,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
@@ -259,7 +259,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
TemplateURL* AddWithOverrides(std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -2030,7 +2030,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc
// Removes the keyword from the model. This deletes the supplied TemplateURL.
// This fails if the supplied template_url is the default search provider.
@@ -341,7 +342,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
@@ -345,7 +346,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
void ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -2136,7 +2136,7 @@ diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD.
diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc
--- a/ui/base/template_expressions.cc
+++ b/ui/base/template_expressions.cc
@@ -20,6 +20,7 @@
@@ -16,6 +16,7 @@
#include "base/notreached.h"
#include "base/strings/escape.h"
#include "base/values.h"
@@ -2144,7 +2144,7 @@ diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc
#if DCHECK_IS_ON()
#include "third_party/re2/src/re2/re2.h" // nogncheck
@@ -171,11 +172,25 @@ bool ReplaceTemplateExpressionsInternal(
@@ -168,11 +169,25 @@ bool ReplaceTemplateExpressionsInternal(
std::string key(source.substr(current_pos, key_end - current_pos));
CHECK(!key.empty());
File diff suppressed because it is too large Load Diff
@@ -51,7 +51,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
@@ -3692,7 +3692,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
@@ -3825,7 +3825,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
scoped_refptr<content_settings::CookieSettings> cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
if (!cookie_settings) {
@@ -77,7 +77,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
@@ -1127,16 +1127,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
@@ -1130,16 +1130,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.
@@ -114,7 +114,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
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
@@ -220,6 +220,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed(
@@ -221,6 +221,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed(
const url::Origin& embedding_origin,
const net::SchemefulSite& embedding_site,
const net::SchemefulSite& requesting_site) {
@@ -122,7 +122,7 @@ diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_c
CHECK(browser_context);
if (!rfh->IsFeatureEnabled(
network::mojom::PermissionsPolicyFeature::kIdentityCredentialsGet)) {
@@ -466,6 +467,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial(
@@ -482,6 +483,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial(
std::unique_ptr<permissions::PermissionRequestData> request_data,
permissions::BrowserPermissionCallback callback,
net::FirstPartySetMetadata metadata) {
@@ -162,17 +162,17 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
- Third-party cookies are allowed
+ Third-party cookies are partitioned
</message>
<message name="IDS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED_INCOGNITO" desc="2 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 in Incognito mode
@@ -658,7 +658,7 @@
Allow third-party cookies
<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
@@ -667,7 +667,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_SUB_LABEL" desc="This string appears as a sub label beneath the 'Allow all cookies' label. It summarizes the result of choosing this option.">
- Sites will work normally
<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.">
- Allow third-party cookies
+ Partitions all cookies by top frame url
</message>
<message name="IDS_WEBSITE_SETTINGS_THIRD_PARTY_COOKIES_PAGE_BLOCK_INCOGNITO_RADIO_LABEL" desc="2 of 3 options the user has to configure cookies. See the cookies page for context: chrome://settings/cookies. For more about Incognito mode, see https://support.google.com/chrome?p=incognito.">
Block third-party cookies in Incognito mode
<message name="IDS_WEBSITE_SETTINGS_THIRD_PARTY_COOKIES_PAGE_BLOCK_RADIO_LABEL" desc="3 of 3 options the user has to configure cookies. See the cookies page for context: chrome://settings/cookies">
Block third-party cookies
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
@@ -184,7 +184,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
if (url.is_empty() || first_party_url.is_empty()) {
return;
}
@@ -402,8 +403,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
@@ -398,8 +399,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
}
bool CookieSettings::MitigationsEnabledFor3pcdInternal() const {
@@ -506,7 +506,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti
diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc
--- a/services/network/cors/cors_url_loader.cc
+++ b/services/network/cors/cors_url_loader.cc
@@ -903,6 +903,7 @@ void CorsURLLoader::StartRequest() {
@@ -909,6 +909,7 @@ void CorsURLLoader::StartRequest() {
}
if (request_.credentials_mode == mojom::CredentialsMode::kInclude &&
@@ -533,7 +533,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
@@ -2544,6 +2544,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
@@ -2550,6 +2550,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
auto determine_storage_access_load_outcome =
[&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome {
@@ -554,7 +554,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
@@ -386,6 +386,7 @@ ScriptPromise<IDLUndefined> CookieStore::set(ScriptState* script_state,
@@ -393,6 +393,7 @@ ScriptPromise<IDLUndefined> CookieStore::set(ScriptState* script_state,
CookieInit* set_options = CookieInit::Create();
set_options->setName(name);
set_options->setValue(value);
@@ -562,7 +562,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t
return set(script_state, set_options, exception_state);
}
@@ -409,6 +410,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
@@ -416,6 +417,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
set_options->setName(name);
set_options->setValue(name.empty() ? "deleted" : "");
set_options->setExpires(0);
@@ -570,7 +570,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t
return DoWrite(script_state, set_options, exception_state);
}
@@ -424,6 +426,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
@@ -431,6 +433,7 @@ ScriptPromise<IDLUndefined> CookieStore::Delete(
set_options->setPath(options->path());
set_options->setSameSite(V8CookieSameSite::Enum::kStrict);
set_options->setPartitioned(options->partitioned());
@@ -10,11 +10,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/blob/blob_memory_controller.cc | 20 ++++++++++---------
.../browser/quota/quota_device_info_helper.cc | 17 ++++++++++++++--
.../approximated_device_memory.cc | 7 ++++++-
.../frame/navigator_concurrent_hardware.cc | 16 ++++++---------
.../frame/navigator_concurrent_hardware.cc | 18 ++++++-----------
.../measure_memory_controller.cc | 5 +++++
.../blink/renderer/core/timing/memory_info.cc | 14 ++++++++++---
.../core/timing/window_performance.cc | 2 +-
10 files changed, 66 insertions(+), 26 deletions(-)
10 files changed, 66 insertions(+), 28 deletions(-)
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Remove-support-for-device-memory-and-cpu-recovery.inc
create mode 100644 cromite_flags/third_party/blink/common/features_h/Remove-support-for-device-memory-and-cpu-recovery.inc
@@ -59,28 +59,28 @@ new file mode 100644
diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc
--- a/storage/browser/blob/blob_memory_controller.cc
+++ b/storage/browser/blob/blob_memory_controller.cc
@@ -54,6 +54,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation;
@@ -55,6 +55,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation;
using QuotaAllocationTask = BlobMemoryController::QuotaAllocationTask;
using DiskSpaceFuncPtr = BlobMemoryController::DiskSpaceFuncPtr;
+// static
+#if BUILDFLAG(IS_ANDROID)
+float approximated_device_memory_gb_ = 4.0;
+constexpr base::ByteCount approximated_device_memory_gb_ = GiB(4.0);
+constexpr int64_t approximated_device_disk_size = 8ull * 1024 * 1024 * 1024;
+#else
+float approximated_device_memory_gb_ = 8.0;
+constexpr base::ByteCount approximated_device_memory_gb_ = GiB(8.0);
+constexpr int64_t approximated_device_disk_size = 200ull * 1024 * 1024 * 1024;
+#endif
+
File::Error CreateBlobDirectory(const FilePath& blob_storage_dir) {
File::Error error = File::FILE_OK;
base::CreateDirectoryAndGetError(blob_storage_dir, &error);
@@ -83,23 +92,16 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl(
int64_t disk_size = 0ull;
uint64_t memory_size = optional_memory_size_for_testing
? optional_memory_size_for_testing.value()
- : base::SysInfo::AmountOfPhysicalMemory();
+ : approximated_device_memory_gb_;
@@ -85,22 +94,15 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl(
uint64_t memory_size =
optional_memory_size_for_testing
? optional_memory_size_for_testing.value()
- : base::SysInfo::AmountOfPhysicalMemory().InBytesUnsigned();
+ : approximated_device_memory_gb_.InBytesUnsigned();
if (disk_enabled && CreateBlobDirectory(storage_dir) == base::File::FILE_OK)
- disk_size = base::SysInfo::AmountOfTotalDiskSpace(storage_dir);
+ disk_size = approximated_device_disk_size;
@@ -91,8 +91,7 @@ diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/bl
if (memory_size > 0) {
-#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && \
- defined(ARCH_CPU_64_BITS)
constexpr size_t kTwoGigabytes = 2ull * 1024 * 1024 * 1024;
limits.max_blob_in_memory_space = kTwoGigabytes;
limits.max_blob_in_memory_space = base::GiB(2).InBytesUnsigned();
-#elif BUILDFLAG(IS_ANDROID)
- limits.max_blob_in_memory_space = static_cast<size_t>(memory_size / 100);
-#else
@@ -112,10 +111,10 @@ diff --git a/storage/browser/quota/quota_device_info_helper.cc b/storage/browser
+
+// static
+#if BUILDFLAG(IS_ANDROID)
+float approximated_device_memory_gb_ = 4.0;
+constexpr base::ByteCount approximated_device_memory_gb_ = GiB(4.0);
+constexpr int64_t approximated_device_disk_size = 8ull * 1024 * 1024 * 1024;
+#else
+float approximated_device_memory_gb_ = 8.0;
+constexpr base::ByteCount approximated_device_memory_gb_ = GiB(8.0);
+constexpr int64_t approximated_device_disk_size = 200ull * 1024 * 1024 * 1024;
+#endif
+
@@ -132,8 +131,8 @@ diff --git a/storage/browser/quota/quota_device_info_helper.cc b/storage/browser
}
uint64_t QuotaDeviceInfoHelper::AmountOfPhysicalMemory() const {
- return base::SysInfo::AmountOfPhysicalMemory();
+ return approximated_device_memory_gb_;
- return base::SysInfo::AmountOfPhysicalMemory().InBytesUnsigned();
+ return approximated_device_memory_gb_.InBytesUnsigned();
}
} // namespace storage
@@ -163,7 +162,7 @@ diff --git a/third_party/blink/common/device_memory/approximated_device_memory.c
diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc b/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc
--- a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc
+++ b/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc
@@ -3,22 +3,18 @@
@@ -3,26 +3,20 @@
// found in the LICENSE file.
#include "third_party/blink/renderer/core/frame/navigator_concurrent_hardware.h"
@@ -174,18 +173,22 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware
namespace blink {
-namespace {
-
-// TODO(435582603): Hard-coding this to a common value is a reasonable start,
-// but it likely makes sense to vary the hard-coded number by platform and
-// form-factor in order to maintain plausibility over time.
-constexpr unsigned kReducedHardwareConcurrencyValue = 8u;
-
} // namespace
unsigned NavigatorConcurrentHardware::hardwareConcurrency() const {
- if (RuntimeEnabledFeatures::ReduceHardwareConcurrencyEnabled()) {
- return kReducedHardwareConcurrencyValue;
- }
- return static_cast<unsigned>(base::SysInfo::NumberOfProcessors());
+#if BUILDFLAG(IS_ANDROID)
+ return static_cast<unsigned>(2);
+ return static_cast<unsigned>(4);
+#else
+ return static_cast<unsigned>(8);
+#endif
@@ -195,7 +198,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware
diff --git a/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc b/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc
--- a/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc
+++ b/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc
@@ -8,6 +8,7 @@
@@ -10,6 +10,7 @@
#include "base/rand_util.h"
#include "components/performance_manager/public/mojom/coordination_unit.mojom-blink.h"
#include "services/metrics/public/cpp/ukm_builders.h"
@@ -203,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/timing/measure_memory/measure_memor
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
#include "third_party/blink/renderer/bindings/core/v8/to_v8_traits.h"
@@ -85,6 +86,10 @@ enum class ApiStatus {
@@ -86,6 +87,10 @@ enum class ApiStatus {
};
ApiStatus CheckMeasureMemoryAvailability() {
@@ -6,16 +6,16 @@ Avoid displaying info about intrusive ads
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../site_settings/SingleWebsiteSettings.java | 52 ++++++++++++-------
.../site_settings/SingleWebsiteSettings.java | 51 ++++++++++++-------
.../browser_ui/site_settings/Website.java | 14 ++++-
.../bromite_content_settings/javascript.inc | 4 ++
3 files changed, 50 insertions(+), 20 deletions(-)
3 files changed, 50 insertions(+), 19 deletions(-)
create mode 100644 components/content_settings/core/browser/bromite_content_settings/javascript.inc
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -628,6 +628,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -626,6 +626,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
setUpSoundPreference(preference);
} else if (type == ContentSettingsType.JAVASCRIPT) {
setUpJavascriptPreference(preference);
@@ -23,16 +23,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ setUpCookiesPreference(preference);
} else if (type == ContentSettingsType.GEOLOCATION) {
setUpLocationPreference(preference);
} else if (type == ContentSettingsType.NOTIFICATIONS) {
@@ -1212,18 +1214,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
} else if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) {
@@ -1110,17 +1112,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setUpAdsInformationalBanner() {
// Add the informational banner which shows at the top of the UI if ad blocking is
// activated on this site.
- boolean adBlockingActivated =
- SiteSettingsCategory.adsCategoryEnabled()
- && WebsitePreferenceBridge.getAdBlockingActivated(
- getSiteSettingsDelegate().getBrowserContextHandle(),
- mSite.getAddress().getOrigin())
- getBrowserContextHandle(), mSite.getAddress().getOrigin())
- && findPreference(assumeNonNull(getPreferenceKey(ContentSettingsType.ADS)))
- != null;
-
@@ -43,8 +42,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
@RequiresNonNull({"mSite"})
@@ -1449,12 +1441,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSettingValues
@@ -1440,12 +1433,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSetting
@Nullable Integer currentValue =
mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT);
- // If Javascript is blocked by default, then always show a Javascript permission.
@@ -52,18 +51,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
- if ((currentValue == null)
- && !WebsitePreferenceBridge.isCategoryEnabled(
- browserContextHandle, ContentSettingsType.JAVASCRIPT)) {
- currentValue = ContentSettingValues.BLOCK;
- currentValue = ContentSetting.BLOCK;
+ // Always show the Javascript permission
+ if (currentValue == null) {
+ currentValue =
+ WebsitePreferenceBridge.isCategoryEnabled(
+ browserContextHandle, ContentSettingsType.JAVASCRIPT)
+ ? ContentSettingValues.ALLOW
+ : ContentSettingValues.BLOCK;
+ : ContentSetting.BLOCK;
}
// Not possible to embargo JAVASCRIPT.
setupContentSettingsPreference(
@@ -1464,6 +1457,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1455,6 +1449,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
isOneTime(ContentSettingsType.JAVASCRIPT));
}
@@ -92,8 +91,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+
/**
* Updates the ads list preference based on whether the site is a candidate for blocking. This
* has some custom behavior.
@@ -1483,9 +1499,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
* has some custom behavior. 1. If the site is a candidate and has activation, the permission
@@ -1472,9 +1489,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
// If the ad blocker is activated, then this site will have ads blocked unless there is an
// explicit permission disallowing the blocking.
@@ -101,17 +100,17 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
- WebsitePreferenceBridge.getAdBlockingActivated(
- browserContextHandle, mSite.getAddress().getOrigin());
+ boolean activated = true;
@ContentSettingValues
@ContentSetting
@Nullable Integer permission =
mSite.getContentSetting(browserContextHandle, ContentSettingsType.ADS);
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
@@ -299,7 +299,19 @@ public final class Website implements WebsiteEntry {
@@ -316,7 +316,19 @@ public final class Website implements WebsiteEntry {
new ContentSettingException(
ContentSettingsType.ADS,
getAddress().getOrigin(),
- ContentSettingValues.BLOCK,
- ContentSetting.BLOCK,
+ value,
+ ProviderType.NONE,
+ /* isEmbargoed= */ false);
+16 -120
View File
@@ -4,127 +4,23 @@ Subject: kill Auth
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../signin/SystemAccountManagerDelegate.java | 78 +------------------
1 file changed, 4 insertions(+), 74 deletions(-)
.../components/signin/AccountManagerFacadeProvider.java | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
--- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
+++ b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
@@ -24,9 +24,6 @@ import android.os.PatternMatcher;
import android.os.Process;
import android.os.SystemClock;
diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java b/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java
--- a/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java
+++ b/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java
@@ -24,11 +24,7 @@ public class AccountManagerFacadeProvider {
private static final AccountManagerFacade INSTANCE;
-import com.google.android.gms.auth.GoogleAuthException;
-import com.google.android.gms.auth.GoogleAuthUtil;
-
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
@@ -94,18 +91,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
@Override
public Account[] getAccountsSynchronous() throws AccountManagerDelegateException {
- if (!isGooglePlayServicesAvailable()) {
- throw new AccountManagerDelegateException("Can't use Google Play Services");
- }
- if (hasGetAccountsPermission()) {
- long startTime = SystemClock.elapsedRealtime();
- Account[] accounts =
- mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
- RecordHistogram.recordTimesHistogram(
- "Signin.AndroidGetAccountsTime_AccountManager",
- SystemClock.elapsedRealtime() - startTime);
- return accounts;
- }
// Don't report any accounts if we don't have permission.
// TODO(crbug.com/40942462): Throw an exception if permission was denied.
return new Account[] {};
@@ -116,43 +101,13 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
public AccessTokenData getAccessToken(Account account, String authTokenScope)
throws AuthException {
ThreadUtils.assertOnBackgroundThread();
- assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type);
- try {
- return new AccessTokenData(
- GoogleAuthUtil.getTokenWithNotification(
- ContextUtils.getApplicationContext(), account, authTokenScope, null));
- } catch (GoogleAuthException ex) {
- // This case includes a UserRecoverableNotifiedException, but most clients will have
- // their own retry mechanism anyway.
- throw new AuthException(
- "Error while getting token for scope '" + authTokenScope + "'",
- ex,
- new GoogleServiceAuthError(
- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS));
- } catch (IOException ex) {
- throw new AuthException(
- "Error while getting token for scope '" + authTokenScope + "'",
- ex,
- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED));
- }
+ throw new AuthException(AuthException.NONTRANSIENT,
+ "Error while getting token for scope '" + authTokenScope + "'",
+ new IOException());
static {
- AccountManagerDelegate delegate =
- ServiceLoaderUtil.maybeCreate(AccountManagerDelegate.class);
- if (delegate == null) {
- delegate = new NullAccountManagerDelegate();
- }
+ delegate = new NullAccountManagerDelegate();
INSTANCE = new AccountManagerFacadeImpl(delegate);
}
}
@Override
public void invalidateAccessToken(String authToken) throws AuthException {
- try {
- GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken);
- } catch (GoogleAuthException ex) {
- throw new AuthException(
- "Error while invalidating access token",
- ex,
- new GoogleServiceAuthError(
- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS));
- } catch (IOException ex) {
- throw new AuthException(
- "Error while invalidating access token",
- ex,
- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED));
- }
}
@Override
@@ -168,24 +123,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
@SuppressLint("MissingPermission")
@Override
public void createAddAccountIntent(Callback<@Nullable Intent> callback) {
- AccountManagerCallback<Bundle> accountManagerCallback =
- accountManagerFuture -> {
- try {
- Bundle bundle = accountManagerFuture.getResult();
- callback.onResult(bundle.getParcelable(AccountManager.KEY_INTENT));
- } catch (OperationCanceledException | IOException | AuthenticatorException e) {
- Log.e(TAG, "Error while creating an intent to add an account: ", e);
- callback.onResult(null);
- }
- };
- mAccountManager.addAccount(
- GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE,
- null,
- null,
- null,
- null,
- accountManagerCallback,
- null);
}
// No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs
@@ -219,14 +156,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
@Override
public @Nullable GaiaId getAccountGaiaId(String accountEmail) {
- try {
- return new GaiaId(
- GoogleAuthUtil.getAccountId(
- ContextUtils.getApplicationContext(), accountEmail));
- } catch (IOException | GoogleAuthException ex) {
- Log.e(TAG, "SystemAccountManagerDelegate.getAccountGaiaId", ex);
- return null;
- }
+ return null;
}
@Override
--