Patches for v137 (need some work)

This commit is contained in:
Carmelo Messina
2025-05-23 17:00:40 +02:00
parent 7ac442f18e
commit d2be0313f0
15 changed files with 611 additions and 612 deletions
@@ -4,19 +4,22 @@ Subject: Add Alt+D hotkey to focus address bar
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 2 ++
1 file changed, 2 insertions(+)
.../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -628,6 +628,8 @@ public class KeyboardShortcuts {
R.string.keyboard_shortcut_address_bar,
KeyEvent.KEYCODE_L,
KeyEvent.META_CTRL_ON);
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
shortcutGroups.add(chromeFeatureShortcutGroup);
@@ -830,6 +830,11 @@ public class KeyboardShortcuts {
KeyEvent.KEYCODE_B,
(KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON));
}
+ addShortcut(context,
+ shortcutGroupsById.get(R.string.keyboard_shortcut_chrome_feature_group_header),
+ R.string.keyboard_shortcut_address_bar,
+ KeyEvent.KEYCODE_D,
+ KeyEvent.META_ALT_ON);
return new ArrayList<>(shortcutGroupsById.values());
}
KeyboardShortcutGroup webpageShortcutGroup =
--
+143 -113
View File
@@ -26,12 +26,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../AlwaysIncognitoLinkInterceptor.java | 54 ++++++
.../chrome/browser/ChromeTabbedActivity.java | 28 ++-
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 28 ++-
.../AppMenuPropertiesDelegateImpl.java | 7 +-
.../ChromeContextMenuPopulator.java | 6 +-
.../CustomTabActivityLifecycleUmaTracker.java | 39 -----
.../CustomTabAppMenuPropertiesDelegate.java | 4 +
.../CustomTabIntentDataProvider.java | 10 ++
.../browser/download/DownloadUtils.java | 16 +-
.../browser/download/DownloadUtils.java | 13 +-
.../history/HistoryContentManager.java | 7 +-
.../browser/history/HistoryManager.java | 27 ++-
.../chrome/browser/history/HistoryPage.java | 16 ++
@@ -42,6 +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 | 17 +-
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
.../tabmodel/TabModelSelectorImpl.java | 3 +
@@ -68,6 +69,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/profiles/profile_selections.h | 7 +-
.../browser/ui/android/native_page/BUILD.gn | 2 +
.../browser/ui/native_page/NativePage.java | 22 ++-
.../browser/omnibox/LocationBarMediator.java | 12 +-
.../strings/android_chrome_strings.grd | 25 +++
.../browser/toolbar/LocationBarModel.java | 5 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
@@ -86,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 +
67 files changed, 796 insertions(+), 112 deletions(-)
69 files changed, 800 insertions(+), 113 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
@@ -99,7 +101,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -645,6 +645,7 @@ chrome_java_resources = [
@@ -648,6 +648,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences_legacy.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/personalize_google_services_preferences.xml",
@@ -118,7 +120,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -880,6 +881,7 @@ chrome_java_sources = [
@@ -898,6 +899,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
@@ -171,7 +173,7 @@ new file mode 100644
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -91,6 +91,11 @@ found in the LICENSE file.
@@ -90,6 +90,11 @@ found in the LICENSE file.
android:key="secure_dns"
android:title="@string/settings_secure_dns_title"
android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" />
@@ -245,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
@@ -72,6 +72,10 @@ import org.chromium.base.task.TaskTraits;
@@ -73,6 +73,10 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.UsedByReflection;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
@@ -256,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;
@@ -705,14 +709,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -720,14 +724,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
Profile profile = mTabModelSelector.getCurrentModel().getProfile();
// For saving non-incognito tab closures for Recent Tabs.
@@ -283,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer creation of this helper so it triggers after TabGroupModelFilter observers.
mUndoRefocusHelper =
new UndoRefocusHelper(
@@ -2733,8 +2742,9 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -2798,8 +2807,9 @@ public class ChromeTabbedActivity extends ChromeActivity {
// We determine the model as soon as possible so every systems get initialized coherently.
boolean startIncognito =
@@ -304,9 +306,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils;
import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
import org.chromium.chrome.browser.download.DownloadManagerService;
import org.chromium.chrome.browser.download.DownloadUtils;
@@ -1977,6 +1978,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -1967,6 +1968,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -319,58 +321,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
@@ -41,6 +41,8 @@ import org.chromium.build.BuildConfig;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ai.AiAssistantService;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
import org.chromium.chrome.browser.commerce.ShoppingServiceFactory;
@@ -106,6 +108,10 @@ import java.util.ArrayList;
@@ -89,6 +89,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import org.chromium.components.prefs.PrefService;
+import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.chrome.browser.preferences.Pref;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -617,6 +623,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ if (always_incognito) {
+ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id);
+ if (newTabOption != null)
+ newTabOption.setVisible(false);
+ }
+
// We have to iterate all menu items since same menu item ID may be associated with more
// than one menu items.
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -676,7 +689,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
- item.setVisible(!isIncognito);
+ if (always_incognito) {
+ PrefService prefService =
+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ item.setVisible(historyEnabledInIncognito);
+ }
+ else
+ item.setVisible(!isIncognito);
}
if (item.getItemId() == R.id.menu_select_tabs) {
item.setVisible(isMenuSelectTabsVisible);
@@ -884,8 +905,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -494,8 +496,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
&& !isNativePage
&& !isFileScheme
&& !isContentScheme
@@ -385,7 +345,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
@@ -29,6 +29,7 @@ import org.chromium.base.ContextUtils;
@@ -31,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.shared_preferences.SharedPreferencesManager;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
@@ -393,7 +353,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.ListItemType;
@@ -293,6 +294,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -347,6 +348,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
public List<Pair<Integer, ModelList>> buildContextMenu() {
mShowEphemeralTabNewLabel = null;
@@ -403,7 +363,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) {
@@ -350,7 +354,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -417,7 +421,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
}
if (FirstRunStatus.getFirstRunFlowComplete()) {
@@ -472,7 +432,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder;
@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
openInChromeItemVisible = false;
tryAddingReadAloud = false;
}
@@ -485,7 +445,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
@@ -86,6 +86,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -93,6 +93,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.device.mojom.ScreenOrientationLockType;
import org.chromium.net.NetId;
@@ -531,24 +491,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
/** A class containing some utility static methods. */
public class DownloadUtils {
private static final String TAG = "download";
@@ -302,7 +307,16 @@ public class DownloadUtils {
// Offline pages isn't supported in Incognito. This should be checked before calling
// OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found
// for incognito profile.
- if (tab.isIncognito()) return false;
+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ if (always_incognito) {
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ if (historyEnabledInIncognito == false)
+ return false;
+ } else {
+ if (tab.isIncognito()) return false;
+ }
@@ -302,7 +307,13 @@ public class DownloadUtils {
public static boolean isAllowedToDownloadPage(Tab tab) {
if (tab == null) return false;
// Check if the page url is supported for saving. Only HTTP and HTTPS pages are allowed.
if (!OfflinePageBridge.canSavePage(tab.getUrl())) return false;
- if (tab.isIncognito()
+ boolean historyEnabledInIncognito = false;
+ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ }
+ if (tab.isIncognito() && !historyEnabledInIncognito
&& !ChromeFeatureList.isEnabled(
ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD)) {
return false;
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
@@ -917,7 +874,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation;
@@ -239,6 +240,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
@@ -244,6 +245,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
SigninAndHistorySyncActivityLauncherImpl.get(),
new SettingsCustomTabLauncherImpl()));
}
@@ -1033,10 +990,51 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
void createHistoricalGroup(
TabModel model,
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
@@ -24,6 +24,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.build.BuildConfig;
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;
@@ -316,6 +317,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+ if (always_incognito) {
+ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id);
+ if (newTabOption != null)
+ newTabOption.setVisible(false);
+ }
+
// We have to iterate all menu items since same menu item ID may be associated with more
// than one menu items.
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -375,7 +383,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
- item.setVisible(!isIncognito);
+ if (always_incognito) {
+ boolean historyEnabledInIncognito =
+ UserPrefs.get(currentTab.getProfile()).getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ item.setVisible(historyEnabledInIncognito);
+ }
+ else {
+ item.setVisible(!isIncognito);
+ }
}
if (item.getItemId() == R.id.menu_select_tabs) {
item.setVisible(isMenuSelectTabsVisible);
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
@@ -201,6 +201,8 @@ import org.chromium.ui.InsetObserver;
@@ -207,6 +207,8 @@ import org.chromium.ui.InsetObserver;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
@@ -1045,7 +1043,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.dragdrop.DragDropGlobalState;
@@ -1174,7 +1176,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1182,7 +1184,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1068,7 +1066,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}. */
public class ChromeTabCreator extends TabCreator
implements NeedsTabModel, NeedsTabModelOrderController {
@@ -520,7 +524,6 @@ public class ChromeTabCreator extends TabCreator
@@ -523,7 +527,6 @@ public class ChromeTabCreator extends TabCreator
// TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome.
public Tab launchUrlFromExternalApp(
LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) {
@@ -1085,9 +1083,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
import org.chromium.base.supplier.Supplier;
+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;
import org.chromium.chrome.browser.profiles.ProfileProvider;
@@ -121,6 +122,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
@@ -119,6 +120,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
ProfileProvider profileProvider = mProfileProviderSupplier.get();
assert profileProvider != null;
@@ -1099,7 +1097,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
@@ -50,6 +50,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager;
@@ -51,6 +51,8 @@ import org.chromium.chrome.browser.tabwindow.TabWindowManager;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.content_public.browser.LoadUrlParams;
@@ -1108,7 +1106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
@@ -833,6 +835,13 @@ public class TabPersistentStore {
@@ -835,6 +837,13 @@ public class TabPersistentStore {
}
}
}
@@ -1131,9 +1129,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
import org.chromium.chrome.browser.back_press.BackPressManager;
@@ -754,7 +755,7 @@ public class ToolbarManager
@@ -807,7 +808,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
return ret;
}
@@ -1257,8 +1255,8 @@ 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
@@ -376,6 +376,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
return ProviderStateServiceFactory::GetForProfile(profile_);
@@ -409,6 +409,15 @@ ChromeAutocompleteProviderClient::GetTabGroupSyncService() const {
return tab_groups::TabGroupSyncServiceFactory::GetForProfile(profile_);
}
+bool ChromeAutocompleteProviderClient::IsAlwaysIncognitoEnabled() const {
@@ -1276,9 +1274,9 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
@@ -89,6 +89,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
OnDeviceTailModelService* GetOnDeviceTailModelService() const override;
@@ -96,6 +96,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
ProviderStateService* GetProviderStateService() const override;
tab_groups::TabGroupSyncService* GetTabGroupSyncService() const override;
bool IsOffTheRecord() const override;
+ bool IsAlwaysIncognitoEnabled() const override;
bool IsIncognitoProfile() const override;
@@ -1344,7 +1342,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
#include "components/content_settings/core/browser/content_settings_pref_provider.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/permissions/features.h"
@@ -105,9 +106,25 @@ scoped_refptr<RefcountedKeyedService>
@@ -117,9 +118,25 @@ scoped_refptr<RefcountedKeyedService>
GetForProfile(original_profile);
bool should_record_metrics = profiles::IsRegularUserProfile(profile);
@@ -1371,9 +1369,9 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c
/*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(),
should_record_metrics));
@@ -116,6 +133,9 @@ scoped_refptr<RefcountedKeyedService>
settings_map->RegisterProvider(ProviderType::kWebuiAllowlistProvider,
std::move(allowlist_provider));
@@ -137,6 +154,9 @@ scoped_refptr<RefcountedKeyedService>
std::move(component_extension_provider));
#endif // BUILDFLAG(IS_CHROMEOS)
+ if (always_incognito_enabled)
+ return settings_map;
@@ -1394,7 +1392,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"
@@ -549,6 +552,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -570,6 +573,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1408,7 +1406,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return nullptr;
@@ -556,6 +566,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -577,6 +587,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@@ -1757,7 +1755,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -244,6 +244,7 @@
@@ -252,6 +252,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -1765,7 +1763,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"
@@ -2008,6 +2009,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2033,6 +2034,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1923,10 +1921,42 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
return NativePageType.RECENT_TABS;
} else if (UrlConstants.EXPLORE_HOST.equals(host)) {
return NativePageType.EXPLORE;
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
@@ -89,6 +89,10 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.interpolators.Interpolators;
import org.chromium.url.GURL;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.components.prefs.PrefService;
+
import java.util.ArrayList;
import java.util.List;
import java.util.function.BooleanSupplier;
@@ -1223,10 +1227,16 @@ class LocationBarMediator
}
Tab tab = mLocationBarDataProvider.getTab();
if (tab == null) return false;
+ boolean historyEnabledInIncognito = false;
+ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
+ }
// The save offline button should not be shown on native pages. Currently, trying to
// save an offline page in incognito crashes, so don't show it on incognito either.
return shouldShowPageActionButtons()
- && (!tab.isOffTheRecord()
+ && (!tab.isOffTheRecord() || historyEnabledInIncognito
|| ChromeFeatureList.isEnabled(
ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD));
}
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
@@ -6574,6 +6574,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -6647,6 +6647,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>
@@ -1961,7 +1991,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
@@ -160,6 +160,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -163,6 +163,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
protected GURL mVisibleGurl = GURL.emptyGURL();
protected String mFormattedFullUrl;
protected String mUrlForDisplay;
@@ -1969,12 +1999,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
// notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same
// document navigation. The first call is usually necessary, which updates the UrlBar to reflect
@@ -183,7 +184,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -186,7 +187,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
Context context,
NewTabPageDelegate newTabPageDelegate,
@NonNull UrlFormatter urlFormatter,
- @NonNull OfflineStatus offlineStatus) {
+ @NonNull OfflineStatus offlineStatus,
UrlFormatter urlFormatter,
- OfflineStatus offlineStatus) {
+ OfflineStatus offlineStatus,
+ boolean isAlwaysIncognito) {
+ mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check
mContext = context;
@@ -2050,7 +2080,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
@@ -4070,6 +4070,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -4097,6 +4097,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2116,7 +2146,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
@@ -247,6 +247,7 @@ struct ContentSettingEntry {
@@ -268,6 +268,7 @@ struct ContentSettingEntry {
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
bool is_off_the_record,
@@ -2124,7 +2154,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics)
@@ -256,6 +257,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -277,6 +278,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
#endif
prefs_(prefs),
is_off_the_record_(is_off_the_record),
@@ -2132,7 +2162,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()) {
@@ -269,7 +271,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -290,7 +292,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
policy_provider->AddObserver(this);
auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
@@ -2164,7 +2194,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
@@ -51,3 +51,7 @@ base::WeakPtr<AutocompleteProviderClient>
@@ -53,3 +53,7 @@ base::WeakPtr<AutocompleteProviderClient>
AutocompleteProviderClient::GetWeakPtr() {
return nullptr;
}
@@ -2175,7 +2205,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon
diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h
--- a/components/omnibox/browser/autocomplete_provider_client.h
+++ b/components/omnibox/browser/autocomplete_provider_client.h
@@ -143,6 +143,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
@@ -152,6 +152,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
virtual bool IsOffTheRecord() const = 0;
virtual bool IsIncognitoProfile() const = 0;
virtual bool IsGuestSession() const = 0;
@@ -2186,7 +2216,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
--- a/components/omnibox/browser/base_search_provider.cc
+++ b/components/omnibox/browser/base_search_provider.cc
@@ -394,7 +394,7 @@ bool BaseSearchProvider::CanSendSuggestRequest(
@@ -392,7 +392,7 @@ bool BaseSearchProvider::CanSendSuggestRequest(
// Don't make a suggest request if in incognito mode; unless for the Lens
// searchboxes.
@@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
<item android:id="@+id/recent_tabs_menu_id"
android:title="@string/menu_recent_tabs"
android:icon="@drawable/devices_black_24dp" />
@@ -204,6 +208,9 @@ found in the LICENSE file.
@@ -207,6 +211,9 @@ found in the LICENSE file.
<item android:id="@id/tinker_tank_menu_id"
android:title="@string/menu_tinker_tank"
android:icon="@drawable/ic_add_box_rounded_corner" />
@@ -58,15 +58,15 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
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
@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.bookmarks.bar.BookmarkBarUtils;
@@ -102,6 +102,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
+import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -263,12 +264,17 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator;
@@ -273,6 +274,9 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator;
import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
@@ -75,7 +75,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin;
import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController;
import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig;
@@ -282,6 +286,8 @@ import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController;
import org.chromium.chrome.browser.usage_stats.UsageStatsService;
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
import org.chromium.chrome.browser.xr.XrLayoutStateObserver;
@@ -84,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.edge_to_edge.SystemBarColorHelper;
import org.chromium.components.browser_ui.edge_to_edge.TabbedSystemBarColorHelper;
@@ -3233,6 +3239,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3316,6 +3322,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
getTabModelSelectorSupplier().get(),
closeAllTabsRunnable);
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -93,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
Runnable closeAllTabsRunnable =
@@ -3331,6 +3339,41 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3418,6 +3426,41 @@ public class ChromeTabbedActivity extends ChromeActivity {
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
}
@@ -180,7 +181,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(),
};
@@ -531,6 +559,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
@@ -546,6 +574,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
top_level_folders.push_back(other_node);
}
@@ -189,8 +190,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
+
const BookmarkNode* reading_list_node =
local_or_syncable_reading_list_manager_->GetRoot();
if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) {
@@ -1256,6 +1287,17 @@ void BookmarkBridge::GetBookmarksOfType(
if (IsPermanentFolderVisible(
@@ -1273,6 +1304,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
}
@@ -211,7 +212,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
@@ -79,6 +79,10 @@ class BookmarkBridge : public ProfileObserver,
@@ -106,6 +106,10 @@ class BookmarkBridge : public ProfileObserver,
jboolean AreAccountBookmarkFoldersActive(JNIEnv* env);
@@ -222,7 +223,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
base::android::ScopedJavaLocalRef<jobject>
GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url);
const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl(
@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver,
@@ -250,6 +254,10 @@ class BookmarkBridge : public ProfileObserver,
const base::android::JavaParamRef<jobject>& j_list,
jint type);
@@ -260,7 +261,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
private final Profile mProfile;
@@ -383,6 +386,16 @@ class BookmarkBridge {
@@ -384,6 +387,16 @@ class BookmarkBridge {
return mMobileFolderId;
}
@@ -277,7 +278,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** Returns Id representing the special "other" folder from bookmark model. */
public BookmarkId getOtherFolderId() {
ThreadUtils.assertOnUiThread();
@@ -894,6 +907,29 @@ class BookmarkBridge {
@@ -895,6 +908,29 @@ class BookmarkBridge {
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
}
@@ -307,7 +308,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/**
* Helper method to mark an item as read.
*
@@ -1111,6 +1147,9 @@ class BookmarkBridge {
@@ -1112,6 +1148,9 @@ class BookmarkBridge {
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(
long nativeBookmarkBridge, @JniType("GURL") GURL url);
@@ -317,7 +318,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
void getTopLevelFolderIds(
@@ -1132,6 +1171,8 @@ class BookmarkBridge {
@@ -1133,6 +1172,8 @@ class BookmarkBridge {
BookmarkId getRootFolderId(long nativeBookmarkBridge);
@@ -406,7 +407,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr
NOTREACHED();
case bookmarks::BookmarkNode::BOOKMARK_BAR:
@@ -291,6 +292,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() {
@@ -303,6 +304,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() {
switch (tracked_type_) {
case bookmarks::BookmarkNode::URL:
case bookmarks::BookmarkNode::FOLDER:
@@ -417,7 +418,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView
@@ -88,7 +88,7 @@ public class DownloadLocationCustomView extends ScrollView
mDirectoryAdapter.update();
}
@@ -426,7 +427,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
mTitle.setText(title);
}
@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView
@@ -96,7 +96,7 @@ public class DownloadLocationCustomView extends ScrollView
mSubtitleView.setText(subtitle);
}
@@ -438,7 +439,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4497,6 +4497,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -4525,6 +4525,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs
</message>
@@ -713,7 +714,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -835,7 +835,7 @@ bool BookmarkModel::HasBookmarks() const {
@@ -890,7 +890,7 @@ bool BookmarkModel::HasBookmarks() const {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
@@ -722,7 +723,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
}
bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1167,6 +1167,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
@@ -1222,6 +1222,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
@@ -735,10 +736,10 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
+++ b/components/bookmarks/browser/bookmark_model.h
@@ -150,6 +150,12 @@ class BookmarkModel : public BookmarkUndoProvider,
// bookmarks in the account storage).
const BookmarkNode* account_mobile_node() const;
const BookmarkPermanentNode* account_mobile_node() const;
+ // Returns the 'mobile' node. This is NULL until loaded.
+ const BookmarkNode* tabs_collection_node() const {
+ const BookmarkPermanentNode* tabs_collection_node() const {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ return tabs_collection_node_;
+ }
@@ -4,19 +4,20 @@ Subject: Add menu item to view source
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../android/java/res/menu/custom_tabs_menu.xml | 3 +++
chrome/android/java/res/menu/main_menu.xml | 3 +++
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
.../chrome/browser/app/ChromeActivity.java | 5 +++++
.../appmenu/AppMenuPropertiesDelegateImpl.java | 18 ++++++++++++++++++
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
.../android/strings/android_chrome_strings.grd | 4 ++++
7 files changed, 36 insertions(+)
.../android/java/res/menu/custom_tabs_menu.xml | 3 +++
chrome/android/java/res/menu/main_menu.xml | 3 +++
.../chrome/browser/ChromeTabbedActivity.java | 2 ++
.../chrome/browser/app/ChromeActivity.java | 5 +++++
.../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
.../TabbedAppMenuPropertiesDelegate.java | 2 +-
.../android/strings/android_chrome_strings.grd | 4 ++++
8 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
@@ -58,6 +58,9 @@ found in the LICENSE file.
@@ -69,6 +69,9 @@ found in the LICENSE file.
<item android:id="@+id/universal_install"
android:title="@string/menu_add_to_homescreen"
android:orderInCategory="2" />
@@ -29,7 +30,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -128,6 +128,9 @@ found in the LICENSE file.
@@ -131,6 +131,9 @@ found in the LICENSE file.
<item android:id="@+id/universal_install"
android:title="@string/menu_add_to_homescreen"
android:icon="@drawable/ic_add_to_home_screen" />
@@ -42,7 +43,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
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
@@ -3273,6 +3273,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3356,6 +3356,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -54,7 +55,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
@@ -2556,6 +2556,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2563,6 +2563,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
return doOpenWebApk(currentTab);
}
@@ -69,16 +70,8 @@ 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
@@ -595,6 +595,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isNativePage, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage);
+ updateViewSourceMenuItem(menu, currentTab);
updateAutoDarkMenuItem(menu, currentTab, isNativePage);
@@ -1336,6 +1337,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
findInPageMenuRow.setVisible(itemVisible);
@@ -862,6 +862,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
}
}
+ /**
@@ -104,7 +97,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/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
@@ -304,6 +304,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -320,6 +320,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem(
menu, currentTab, requestDesktopSiteVisible, isNativePage);
@@ -112,10 +105,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
}
}
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
@@ -296,7 +296,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
isNativePage, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage);
-
+ updateViewSourceMenuItem(menu, currentTab);
updateAutoDarkMenuItem(menu, currentTab, isNativePage);
// Only display reader mode settings menu option if the current page is in reader mode.
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
@@ -318,6 +318,10 @@ CHAR_LIMIT guidelines:
@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines:
Collaboration
</message>
+55 -41
View File
@@ -15,13 +15,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
.../search_engine_choice_utils.cc | 5 +--
.../search_engines/search_engine_type.h | 5 +++
.../template_url_prepopulate_data.cc | 15 ++++++-
.../template_url_prepopulate_data.h | 7 ----
.../template_url_prepopulate_data.cc | 21 +++++++++-
.../template_url_prepopulate_data.h | 9 -----
tools/json_to_struct/json_to_struct.gni | 9 +++++
tools/json_to_struct/json_to_struct.py | 26 ++++++++----
tools/json_to_struct/struct_generator.py | 10 +++--
tools/variations/fieldtrial_to_struct.py | 4 +-
13 files changed, 108 insertions(+), 26 deletions(-)
13 files changed, 114 insertions(+), 28 deletions(-)
create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png
create mode 100644 components/search_engines/cromite/BUILD.gn
create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json
@@ -67,15 +67,15 @@ diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/c
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
--- a/components/search_engines/BUILD.gn
+++ b/components/search_engines/BUILD.gn
@@ -73,6 +73,7 @@ static_library("search_engines") {
@@ -72,6 +72,7 @@ static_library("search_engines") {
"//third_party/metrics_proto",
"//third_party/omnibox_proto",
"//third_party/search_engines_data:prepopulated_engines",
"//third_party/search_engines_data:regional_settings",
+ "cromite:cromite_prepopulated_engines",
]
deps = [
@@ -159,6 +160,7 @@ source_set("search_engine_utils") {
@@ -158,6 +159,7 @@ source_set("search_engine_utils") {
":search_engine_type",
"//components/google/core/common",
"//third_party/search_engines_data:prepopulated_engines",
@@ -83,7 +83,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL
]
deps = [ "//url" ]
@@ -242,6 +244,7 @@ source_set("unit_tests") {
@@ -246,6 +248,7 @@ source_set("unit_tests") {
"//testing/gmock",
"//testing/gtest",
"//third_party/search_engines_data:prepopulated_engines",
@@ -153,7 +153,7 @@ new file mode 100644
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
@@ -183,10 +183,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
@@ -187,10 +187,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
}
void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
@@ -188,49 +188,61 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -30,6 +30,8 @@
@@ -28,6 +28,8 @@
#include "components/search_engines/template_url_data_util.h"
#include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h"
#include "third_party/search_engines_data/resources/definitions/regional_settings.h"
+#include "components/search_engines/cromite/cromite_prepopulated_engines.h"
+
namespace TemplateURLPrepopulateData {
// Helpers --------------------------------------------------------------------
@@ -85,11 +87,10 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id,
generator.seed(profile_seed);
std::shuffle(t_urls.begin(), t_urls.end(), generator);
- CHECK_LE(t_urls.size(), kMaxEeaPrepopulatedEngines);
return t_urls;
@@ -123,7 +125,7 @@ int GetDataVersion(PrefService* prefs) {
kCurrentDataVersion;
}
-std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLData(
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLDataChromium(
CountryId country_id,
PrefService& prefs) {
if (regional_capabilities::HasSearchEngineCountryListOverride()) {
@@ -115,6 +116,16 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLData(
-std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEnginesChromium(
PrefService& prefs,
std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*>
regional_prepopulated_engines) {
@@ -139,6 +141,17 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
&PrepopulatedEngineToTemplateURLData);
}
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedTemplateURLData(
+ CountryId country_id,
+ PrefService& prefs) {
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
+ PrefService& prefs,
+ std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*>
+ regional_prepopulated_engines) {
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
+ GetPrepopulatedTemplateURLDataChromium(country_id, prefs);
+ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines);
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
+ return t_urls;
+}
+
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class SearchProviderOverrideStatus {
std::unique_ptr<TemplateURLData> GetPrepopulatedEngine(
PrefService& prefs,
std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*>
@@ -160,9 +173,13 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
return std::vector<std::unique_ptr<TemplateURLData>>();
}
- return base::ToVector(
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls =
+ base::ToVector(
regional_capabilities::GetPrepopulatedEngines(country_id, prefs),
&PrepopulatedEngineToTemplateURLData);
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
+ return t_urls;
}
#endif
diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h
--- a/components/search_engines/template_url_prepopulate_data.h
+++ b/components/search_engines/template_url_prepopulate_data.h
@@ -32,13 +32,6 @@ struct PrepopulatedEngine;
@@ -27,15 +27,6 @@ struct PrepopulatedEngine;
extern const int kMaxPrepopulatedEngineID;
@@ -239,11 +251,13 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone
-//
-// Note: If this is increased, please also increase the declared variant count
-// for the `Search.ChoiceScreenShowedEngineAt.Index{Index}` histogram.
-// TODO(crbug.com/408932087): Investigate moving it to the file that actually
-// populates these, `//c/regional_capabilities/r*c*_util.cc`.
-inline constexpr size_t kMaxEeaPrepopulatedEngines = 8;
-
// The maximum number of prepopulated search engines that can be returned in
// in the rest of the world by `GetPrepopulatedEngines()`.
inline constexpr size_t kMaxRowPrepopulatedEngines = 5;
// TODO(crbug.com/408932087): Investigate deduping it with the constant
diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni
--- a/tools/json_to_struct/json_to_struct.gni
+++ b/tools/json_to_struct/json_to_struct.gni
@@ -273,7 +287,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json
diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py
--- a/tools/json_to_struct/json_to_struct.py
+++ b/tools/json_to_struct/json_to_struct.py
@@ -100,7 +100,7 @@ def _GenerateHeaderGuard(h_filename):
@@ -103,7 +103,7 @@ def _GenerateHeaderGuard(h_filename):
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
@@ -282,7 +296,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
"""Generates the .h file containing the definition of the structure specified
by the schema.
@@ -136,11 +136,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
@@ -139,11 +139,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
f.write(u'#include "%s"\n' % header)
f.write(u'\n')
@@ -299,7 +313,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
schema['type_name'], schema['schema']))
f.write(u'\n')
@@ -175,7 +179,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
@@ -170,7 +174,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
f.write(u'#endif // %s\n' % header_guard)
@@ -308,7 +322,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
"""Generates the .cc file containing the static initializers for the
of the elements specified in the description.
@@ -210,7 +214,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
@@ -205,7 +209,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
f.write(element_generator.GenerateElements(schema['type_name'],
schema['schema'], description))
@@ -316,8 +330,8 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
+ if excludetype == False and not aggregation.export_items:
f.write('\n} // anonymous namespace \n\n')
if aggregation.kind == AggregationKind.ARRAY:
@@ -315,7 +319,7 @@ def GenerateClass(basepath,
aggregated = GenerateCCAggregation(schema['type_name'], aggregation)
@@ -292,7 +296,7 @@ def GenerateClass(basepath,
def GenerateStruct(basepath, output_root, namespace, schema, description,
@@ -326,7 +340,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
"""Generates a C++ struct from a JSON description.
Args:
@@ -334,8 +338,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
@@ -311,8 +315,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
"""
year = int(year) if year else datetime.now().year
head = HEAD % (year, schema_filename, description_filename)
@@ -337,7 +351,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
if __name__ == '__main__':
parser = optparse.OptionParser(
@@ -350,11 +354,17 @@ if __name__ == '__main__':
@@ -327,11 +331,17 @@ if __name__ == '__main__':
parser.add_option('-s', '--schema', help='path to the schema file, '
'mandatory.')
parser.add_option('-o', '--output', help='output filename, ')
@@ -355,7 +369,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
description_filename = os.path.normpath(args[0])
root, ext = os.path.splitext(description_filename)
shortroot = opts.output if opts.output else os.path.split(root)[1]
@@ -371,4 +381,4 @@ if __name__ == '__main__':
@@ -348,4 +358,4 @@ if __name__ == '__main__':
schema = _Load(opts.schema)
description = _Load(description_filename)
GenerateStruct(basepath, output_root, opts.namespace, schema, description,
@@ -395,7 +409,7 @@ diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/str
diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
--- a/tools/variations/fieldtrial_to_struct.py
+++ b/tools/variations/fieldtrial_to_struct.py
@@ -232,14 +232,14 @@ def main(arguments):
@@ -235,14 +235,14 @@ def main(arguments):
json_to_struct.GenerateStruct(
basepath, output_root, opts.namespace, schema, description,
os.path.split(description_filename)[1], os.path.split(opts.schema)[1],
@@ -48,7 +48,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -254,6 +254,7 @@ chrome_java_sources = [
@@ -260,6 +260,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java",
@@ -74,7 +74,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -190,6 +190,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
@@ -198,6 +198,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
@@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
@@ -1780,7 +1781,11 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -1803,7 +1804,11 @@ public class ChromeTabbedActivity extends ChromeActivity {
Intent intent = getIntent();
boolean hadCipherData =
@@ -334,7 +334,7 @@ new file mode 100644
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -2228,6 +2228,16 @@
@@ -2227,6 +2227,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for delete browsing data button in Privacy options">
Delete browsing data
</message>
@@ -420,7 +420,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
@@ -311,8 +311,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() {
@@ -324,8 +324,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() {
void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy(
bool keep_browser_alive) {
@@ -448,7 +448,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
if (!data_types.empty() &&
IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref(
@@ -421,6 +438,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() {
@@ -434,6 +451,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() {
bool ChromeBrowsingDataLifetimeManager::
IsConditionSatisfiedForBrowsingDataRemoval(
const syncer::UserSelectableTypeSet sync_types) {
@@ -515,7 +515,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -541,6 +541,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -543,6 +543,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::kNumber;
@@ -594,7 +594,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
void ProfileManager::DoFinalInitForServices(Profile* profile,
bool go_off_the_record) {
if (!do_final_services_init_ ||
@@ -2121,7 +2134,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
@@ -2119,7 +2132,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
Profile* original_profile = profile->GetOriginalProfile();
// Do nothing if the closed window is not the last window of the same profile.
for (Browser* browser_iter : *BrowserList::GetInstance()) {
@@ -691,7 +691,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1590,6 +1590,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1581,6 +1581,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_ANDROID_APP_HISTORY_OPEN_FULL_OTHER_FORMS" desc="The informational message at the top of the history page letting users know that app-specific history may be missing some entries, followed by the info on the other forms of browing history.">
Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;link&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/link&gt;</ph>.
</message>
@@ -718,7 +718,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1910,6 +1910,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
@@ -1945,6 +1945,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
@@ -748,7 +748,7 @@ diff --git a/components/browsing_data/content/browsing_data_helper.cc b/componen
diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/core/BUILD.gn
--- a/components/browsing_data/core/BUILD.gn
+++ b/components/browsing_data/core/BUILD.gn
@@ -61,6 +61,10 @@ if (is_android) {
@@ -62,6 +62,10 @@ if (is_android) {
visibility = [ ":*" ]
sources = [ "browsing_data_utils.h" ]
}
@@ -759,7 +759,7 @@ diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/c
java_cpp_enum("cookie_or_cache_deletion_choice_javagen") {
# External code should depend on ":java" instead.
visibility = [ ":*" ]
@@ -70,6 +74,7 @@ if (is_android) {
@@ -71,6 +75,7 @@ if (is_android) {
android_library("java") {
srcjar_deps = [
":browsing_data_utils_javagen",
@@ -826,7 +826,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
--- a/components/browsing_data/core/browsing_data_utils.cc
+++ b/components/browsing_data/core/browsing_data_utils.cc
@@ -341,6 +341,37 @@ bool GetDeletionPreferenceFromDataType(
@@ -407,6 +407,37 @@ bool GetDeletionPreferenceFromDataType(
BrowsingDataType data_type,
ClearBrowsingDataTab clear_browsing_data_tab,
std::string* out_pref) {
@@ -976,7 +976,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_service_impl.cc
--- a/content/browser/btm/btm_service_impl.cc
+++ b/content/browser/btm/btm_service_impl.cc
@@ -221,7 +221,7 @@ class StateClearer : public BrowsingDataRemover::Observer {
@@ -210,7 +210,7 @@ class StateClearer : public BrowsingDataRemover::Observer {
remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX;
remover->RemoveWithFilterAndReply(
base::Time::Min(), base::Time::Max(),
@@ -988,7 +988,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1528,6 +1528,7 @@ void StoragePartitionImpl::Initialize(
@@ -1511,6 +1511,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
@@ -999,7 +999,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage
diff --git a/content/public/browser/browsing_data_remover.h b/content/public/browser/browsing_data_remover.h
--- a/content/public/browser/browsing_data_remover.h
+++ b/content/public/browser/browsing_data_remover.h
@@ -151,14 +151,19 @@ class BrowsingDataRemover {
@@ -151,9 +151,11 @@ class BrowsingDataRemover {
static constexpr DataType DATA_TYPE_RELATED_WEBSITE_SETS_PERMISSIONS = 1
<< 24;
@@ -1010,9 +1010,11 @@ diff --git a/content/public/browser/browsing_data_remover.h b/content/public/bro
- static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 25;
+ static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 26;
// Interest group data that should be cleared in response to user action,
// but not Clear-Site-Site data.
@@ -167,6 +169,9 @@ class BrowsingDataRemover {
// Embedders can add more datatypes beyond this point.
static constexpr DataType DATA_TYPE_CONTENT_END =
DATA_TYPE_DEVICE_BOUND_SESSIONS;
static constexpr DataType DATA_TYPE_CONTENT_END = DATA_TYPE_PRERENDER_CACHE;
+ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_DEVICE_BOUND_SESSIONS,
+ "Please check.");
@@ -38,15 +38,15 @@ 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/contextmenu/AwContextMenuItemDelegate.java b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
--- a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
+++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java
@@ -11,6 +11,7 @@ import android.net.Uri;
import org.chromium.base.IntentUtils;
@@ -12,6 +12,7 @@ import org.chromium.base.IntentUtils;
import org.chromium.build.annotations.NullMarked;
import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate;
import org.chromium.components.embedder_support.contextmenu.ContextMenuParams;
+import org.chromium.content_public.common.Referrer;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.Clipboard;
import org.chromium.url.GURL;
@@ -52,6 +53,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -54,6 +55,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate {
IntentUtils.safeStartActivity(mActivity, intent);
}
@@ -59,7 +59,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml
+++ b/chrome/android/java/res/values/ids.xml
@@ -99,6 +99,7 @@ found in the LICENSE file.
@@ -104,6 +104,7 @@ found in the LICENSE file.
<!-- Menu item IDs for FullscreenActivities -->
<item type="id" name="contextmenu_open_in_chrome" />
@@ -98,29 +98,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
@@ -118,8 +118,9 @@ class ChromeContextMenuItem {
int SAVE_PAGE = 35;
int SHARE_PAGE = 36;
int PRINT_PAGE = 37;
+ int FOLLOW_LINK = 38;
@@ -127,8 +127,9 @@ class ChromeContextMenuItem {
int RELOAD = 40;
// Developer Group
int INSPECT_ELEMENT = 41;
+ int FOLLOW_LINK = 42;
// ALWAYS UPDATE!
- int NUM_ENTRIES = 38;
+ int NUM_ENTRIES = 39;
- int NUM_ENTRIES = 42;
+ int NUM_ENTRIES = 43;
}
/** Mapping from {@link Item} to the ID found in the ids.xml. */
@@ -162,6 +163,7 @@ class ChromeContextMenuItem {
R.id.contextmenu_save_page, // Item.SAVE_PAGE
R.id.contextmenu_share_page, // Item.SHARE_PAGE
R.id.contextmenu_print_page, // Item.PRINT_PAGE
@@ -175,6 +176,7 @@ class ChromeContextMenuItem {
R.id.contextmenu_forward, // Item.FORWARD
R.id.contextmenu_reload, // Item.RELOAD
R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
};
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
@@ -204,6 +206,7 @@ class ChromeContextMenuItem {
R.string.contextmenu_save_page, // Item.SAVE_PAGE
R.string.contextmenu_share_page, // Item.SHARE_PAGE
R.string.contextmenu_print_page, // Item.PRINT_PAGE
@@ -221,6 +223,7 @@ class ChromeContextMenuItem {
R.string.contextmenu_forward, // Item.FORWARD
R.string.contextmenu_reload, // Item.RELOAD
R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
};
@@ -128,8 +128,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -318,6 +318,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -380,6 +380,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
if (mParams.isAnchor()) {
ModelList linkGroup = new ModelList();
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
@@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
if (FirstRunStatus.getFirstRunFlowComplete()
&& !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
@@ -734,6 +737,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -817,6 +820,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
getProfile(),
false);
});
@@ -150,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -323,6 +323,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -356,6 +356,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
mTab.loadUrl(loadUrlParams);
}
@@ -168,27 +168,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -350,6 +350,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -367,6 +367,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabGroupEntryPointsAndroid,
&kTabGroupParityBottomSheetAndroid,
&kToolbarPhoneCleanup,
+ &blink::features::kShowAlwaysContextMenuOnLinks,
&kTabStateFlatBuffer,
&kTabStripContextMenuAndroid,
&kTabStripGroupCollapseAndroid,
&kTabStripGroupDragDropAndroid,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -423,6 +423,8 @@ public abstract class ChromeFeatureList {
@@ -438,6 +438,8 @@ public abstract class ChromeFeatureList {
"DisableToolbarSwipeUp";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom";
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
+ "ShowAlwaysContextMenuOnLinks";
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid";
public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
"NotificationPermissionBottomSheet";
@@ -805,6 +807,8 @@ public abstract class ChromeFeatureList {
@@ -809,6 +811,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
public static final CachedFlag sMoveTopToolbarToBottom =
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
@@ -197,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
public static final CachedFlag sPostGetMyMemoryStateToBackground =
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true);
@@ -970,6 +974,7 @@ public abstract class ChromeFeatureList {
@@ -978,6 +982,7 @@ public abstract class ChromeFeatureList {
sTabWindowManagerReportIndicesMismatch,
sTraceBinderIpc,
sUseChimeAndroidSdk,
@@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1739,6 +1739,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1725,6 +1725,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DISABLE_TOOLBAR_SWIPE_UP" desc="Summary of the preference that allows the user to disable toolbar swipeup.">
Disable toolbar swipe up
</message>
@@ -221,7 +221,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
@@ -3313,6 +3319,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -3326,6 +3332,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
Open in new Chrome tab
</message>
@@ -249,7 +249,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -52,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -54,6 +54,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
@@ -259,7 +259,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -138,6 +141,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -143,6 +146,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue());
mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
@@ -272,7 +272,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -219,6 +228,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -224,6 +233,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
} else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue);
mDelegate.requestRestart(getActivity());
@@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
Frame* target_frame =
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::interestTargetElement() {
@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::InterestTargetElement() const {
html_names::kInteresttargetAttr);
}
@@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
@@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
Element* interestTargetElement() override;
Element* InterestTargetElement() const override;
void Trace(Visitor*) const override;
+ void HandleClick(MouseEvent&, bool do_not_show_context_menu = false);
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1481,6 +1481,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
@@ -1482,6 +1482,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
}
}
@@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
std::vector<GURL> urls;
frame_host->ForEachRenderFrameHostImplWithAction(
@@ -1494,6 +1495,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
@@ -1495,6 +1496,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
});
return urls;
}
@@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -15823,12 +15823,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
@@ -15967,12 +15967,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
}
}
}
@@ -284,7 +284,7 @@ diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_
diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
--- a/net/reporting/reporting_service.cc
+++ b/net/reporting/reporting_service.cc
@@ -225,6 +225,12 @@ class ReportingServiceImpl : public ReportingService {
@@ -236,6 +236,12 @@ class ReportingServiceImpl : public ReportingService {
int depth,
base::TimeTicks queued_ticks,
ReportingTargetType target_type) {
@@ -300,7 +300,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
diff --git a/services/network/network_context.h b/services/network/network_context.h
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -481,14 +481,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -485,14 +485,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const GURL& url,
const std::optional<base::UnguessableToken>& reporting_source,
const net::NetworkAnonymizationKey& network_anonymization_key,
@@ -332,7 +332,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
@@ -1761,7 +1761,6 @@ mojom("mojom") {
@@ -1791,7 +1791,6 @@ mojom("mojom") {
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
if (enable_reporting) {
@@ -343,7 +343,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1227,6 +1227,7 @@ interface NetworkContext {
@@ -1230,6 +1230,7 @@ interface NetworkContext {
// provided `network_anonymization_key`.
//
// Spec: https://w3c.github.io/reporting/#concept-reports
@@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueReport(string type,
string group,
url.mojom.Url url,
@@ -1234,6 +1235,7 @@ interface NetworkContext {
@@ -1237,6 +1238,7 @@ interface NetworkContext {
NetworkAnonymizationKey network_anonymization_key,
mojo_base.mojom.DictionaryValue body);
@@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueEnterpriseReport(string type,
string group,
url.mojom.Url url,
@@ -1244,6 +1246,7 @@ interface NetworkContext {
@@ -1247,6 +1249,7 @@ interface NetworkContext {
// Note that this queued report will never be delivered if no reporting
// endpoint matching is registered for with the provided
// `network_anonymization_key`.
@@ -377,8 +377,8 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
+#include "net/net_buildflags.h"
#include "base/containers/contains.h"
#include "base/debug/dump_without_crashing.h"
#include "services/network/public/cpp/web_sandbox_flags.h"
@@ -1345,6 +1346,7 @@ void ContentSecurityPolicy::ReportViolation(
#include "base/feature_list.h"
@@ -1303,6 +1304,7 @@ void ContentSecurityPolicy::ReportViolation(
return;
}
@@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
PostViolationReport(violation_data, context_frame, report_endpoints,
use_reporting_api);
@@ -1352,6 +1354,7 @@ void ContentSecurityPolicy::ReportViolation(
@@ -1310,6 +1312,7 @@ void ContentSecurityPolicy::ReportViolation(
// `context_frame` (i.e. we're not processing 'frame-ancestors').
if (delegate_ && !context_frame)
delegate_->DispatchViolationEvent(*violation_data, element);
@@ -405,7 +405,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
#include "services/network/public/mojom/source_location.mojom-blink.h"
@@ -2761,9 +2762,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
@@ -2772,9 +2773,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
}
@@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
@@ -659,7 +660,9 @@ class CORE_EXPORT LocalFrame final
@@ -662,7 +663,9 @@ class CORE_EXPORT LocalFrame final
return client_hints_preferences_;
}
@@ -16,14 +16,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../core/browser/supervised_user_pref_store.cc | 1 +
.../core/browser/supervised_user_preferences.cc | 6 +++++-
.../core/browser/supervised_user_service.cc | 5 +----
.../supervised_user/core/browser/supervised_user_utils.cc | 1 +
components/supervised_user/core/common/features.cc | 5 ++++-
14 files changed, 15 insertions(+), 31 deletions(-)
13 files changed, 14 insertions(+), 31 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -789,7 +789,6 @@ if (current_toolchain == default_toolchain) {
@@ -803,7 +803,6 @@ if (_is_default_toolchain) {
"//components/offline_pages/core:offline_page_model_enums_java",
"//components/sharing_message:sharing_dialog_type_generated_enum",
"//components/sharing_message:sharing_send_message_result_generated_enum",
@@ -76,7 +75,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
--- a/chrome/browser/profiles/profile_attributes_entry.cc
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
@@ -469,7 +469,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
@@ -467,7 +467,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
}
std::string ProfileAttributesEntry::GetSupervisedUserId() const {
@@ -121,7 +120,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
#if !BUILDFLAG(IS_ANDROID)
if (profile->IsNewProfile()) {
profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false);
@@ -1977,9 +1973,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
@@ -1975,9 +1971,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -196,7 +195,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc
--- a/components/supervised_user/core/browser/supervised_user_service.cc
+++ b/components/supervised_user/core/browser/supervised_user_service.cc
@@ -91,10 +91,6 @@ void SupervisedUserService::Init() {
@@ -92,10 +92,6 @@ void SupervisedUserService::Init() {
DCHECK(settings_service_->IsReady());
pref_change_registrar_.Init(&user_prefs_.get());
@@ -204,10 +203,10 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc
- prefs::kSupervisedUserId,
- base::BindRepeating(&SupervisedUserService::OnSupervisedUserIdChanged,
- base::Unretained(this)));
SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get()));
}
@@ -161,6 +157,7 @@ SupervisedUserService::SupervisedUserService(
pref_change_registrar_.Add(
policy::policy_prefs::kIncognitoModeAvailability,
base::BindRepeating(
@@ -183,6 +179,7 @@ void SupervisedUserService::SetSettingsServiceActive(bool active) {
}
void SupervisedUserService::SetActive(bool active) {
@@ -215,29 +214,18 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc
if (active_ == active) {
return;
}
diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc
--- a/components/supervised_user/core/browser/supervised_user_utils.cc
+++ b/components/supervised_user/core/browser/supervised_user_utils.cc
@@ -314,6 +314,7 @@ GURL NormalizeUrl(const GURL& url) {
}
bool AreWebFilterPrefsDefault(const PrefService& pref_service) {
+ if ((true)) return true;
return pref_service
.FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior)
->IsDefaultValue() ||
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
--- a/components/supervised_user/core/common/features.cc
+++ b/components/supervised_user/core/common/features.cc
@@ -102,7 +102,6 @@ BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop,
"EnableExtensionsPermissionsForSupervisedUsersOnDesktop",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -35,7 +35,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals,
#else
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
-
#if BUILDFLAG(ENABLE_EXTENSIONS)
BASE_FEATURE(kExposedParentalControlNeededForExtensionInstallation,
"ExposedParentalControlNeededForExtensionInstallation",
@@ -191,4 +190,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl,
#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
BUILDFLAG(IS_WIN)
const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000;
@@ -141,4 +140,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl,
#endif
);
+61 -65
View File
@@ -16,8 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
chrome/app/extensions_strings.grdp | 6 ++
.../developer_private_api.cc | 28 +++++++++
.../developer_private/developer_private_api.h | 3 +
.../developer_private_functions_desktop.cc | 1 +
.../developer_private_functions_shared.cc | 7 ++-
.../developer_private_functions_shared.cc | 8 ++-
.../profile_info_generator.cc | 3 +
.../webstore_private/webstore_private_api.cc | 15 ++++-
.../extensions/chrome_extension_system.cc | 1 +
@@ -50,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
extensions/common/extension_features.cc | 14 +++++
extensions/common/extension_features.h | 2 +
.../definitions/developer_private.d.ts | 2 +
37 files changed, 252 insertions(+), 108 deletions(-)
36 files changed, 252 insertions(+), 108 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
@@ -72,9 +71,9 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -21,6 +21,12 @@
#include "extensions/browser/permissions_manager.h"
#endif // !BUILDFLAG(IS_ANDROID)
@@ -24,6 +24,12 @@
#include "extensions/browser/app_window/app_window_registry.h"
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
+#include "chrome/browser/about_flags.h"
+#include "chrome/browser/browser_process.h"
@@ -85,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
namespace extensions {
namespace developer = api::developer_private;
@@ -62,6 +68,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
@@ -65,6 +71,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
return g_developer_private_api_factory.Pointer();
}
@@ -127,10 +126,10 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
// Convenience method to get the DeveloperPrivateAPI for a profile.
static DeveloperPrivateAPI* Get(content::BrowserContext* context);
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_desktop.cc
@@ -210,6 +210,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
@@ -300,6 +300,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
ExtensionUpdater::CheckParams params;
params.fetch_priority = DownloadFetchPriority::kForeground;
params.install_immediately = true;
@@ -138,10 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
params.callback =
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
updater->CheckNow(std::move(params));
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
@@ -360,7 +360,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
@@ -438,7 +439,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
const developer::ProfileConfigurationUpdate& update = params->update;
@@ -150,7 +146,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
Profile* profile = Profile::FromBrowserContext(browser_context());
CHECK(profile);
if (supervised_user::AreExtensionsPermissionsEnabled(profile)) {
@@ -377,6 +377,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
@@ -455,6 +456,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
}
#endif // !BUILDFLAG(IS_ANDROID)
@@ -165,17 +161,17 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
diff --git a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
--- a/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
+++ b/chrome/browser/extensions/api/developer_private/profile_info_generator.cc
@@ -7,6 +7,7 @@
#include "build/build_config.h"
@@ -9,6 +9,7 @@
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/supervised_user/supervised_user_browser_utils.h"
+#include "chrome/browser/extensions/api/developer_private/developer_private_api.h"
#include "chrome/common/pref_names.h"
#include "components/policy/core/common/policy_pref_names.h"
#include "components/prefs/pref_service.h"
@@ -46,6 +47,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) {
@@ -44,6 +45,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) {
->DidUserAcknowledgeNoticeGlobally();
#endif // !BUILDFLAG(IS_ANDROID)
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
+ info.is_extension_autoupdate_enabled =
+ DeveloperPrivateAPI::IsExtensionAutoupdateEnabled();
@@ -185,7 +181,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
@@ -66,6 +66,7 @@
@@ -61,6 +61,7 @@
#include "extensions/browser/extension_util.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/common/extension.h"
@@ -193,7 +189,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/permissions_parser.h"
@@ -222,6 +223,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
@@ -224,6 +225,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
// there was previously stored data, or an empty string otherwise. The Set will
// overwrite any previous login.
std::string GetWebstoreLogin(Profile* profile) {
@@ -202,7 +198,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) {
return profile->GetPrefs()->GetString(kWebstoreLogin);
}
@@ -229,11 +232,15 @@ std::string GetWebstoreLogin(Profile* profile) {
@@ -231,11 +234,15 @@ std::string GetWebstoreLogin(Profile* profile) {
}
void SetWebstoreLogin(Profile* profile, const std::string& login) {
@@ -218,7 +214,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
switch (status) {
case kCanRequest:
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
@@ -1156,7 +1163,8 @@ ExtensionFunction::ResponseAction
@@ -1160,7 +1167,8 @@ ExtensionFunction::ResponseAction
WebstorePrivateIsInIncognitoModeFunction::Run() {
Profile* profile = Profile::FromBrowserContext(browser_context());
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
@@ -228,7 +224,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
}
WebstorePrivateIsPendingCustodianApprovalFunction::
@@ -1252,11 +1260,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
@@ -1256,11 +1264,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
recent_navigations_to_collect);
@@ -247,7 +243,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc
--- a/chrome/browser/extensions/chrome_extension_system.cc
+++ b/chrome/browser/extensions/chrome_extension_system.cc
@@ -85,6 +85,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
@@ -92,6 +92,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
Profile* profile,
const Extension* extension,
UninstallReason reason) {
@@ -271,7 +267,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
--- a/chrome/browser/extensions/extension_management.cc
+++ b/chrome/browser/extensions/extension_management.cc
@@ -386,6 +386,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
@@ -391,6 +391,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy(
const Extension* extension) {
@@ -295,16 +291,16 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -248,8 +248,6 @@ ExtensionService::ExtensionService(
@@ -244,8 +244,6 @@ ExtensionService::ExtensionService(
UpgradeDetector::GetInstance()->AddObserver(this);
#endif
- cws_info_service_observation_.Observe(CWSInfoService::Get(profile_));
-
ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this);
if (autoupdate_enabled) {
@@ -1020,7 +1018,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
@@ -756,7 +754,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
// unpublished extensions should not be enabled. This update allows
// unpublished extensions to be disabled sooner rather than waiting till the
// next regularly scheduled fetch.
@@ -327,15 +323,15 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
--- a/chrome/browser/extensions/updater/extension_updater.cc
+++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -53,6 +53,7 @@
#include "extensions/browser/updater/extension_update_data.h"
@@ -56,6 +56,7 @@
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_id.h"
+#include "extensions/common/extension_features.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/extension_updater_uma.h"
#include "extensions/common/extension_urls.h"
@@ -223,6 +224,10 @@ void ExtensionUpdater::Start() {
@@ -229,6 +230,10 @@ void ExtensionUpdater::Start() {
DCHECK(!weak_ptr_factory_.HasWeakPtrs());
DCHECK(registry_);
alive_ = true;
@@ -346,7 +342,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
// Check soon, and set up the first delayed check.
if (!g_skip_scheduled_checks_for_tests) {
if (g_should_immediately_update)
@@ -359,7 +364,8 @@ void ExtensionUpdater::AddToDownloader(
@@ -386,7 +391,8 @@ void ExtensionUpdater::AddToDownloader(
const Extension& extension = **extension_iter;
const ExtensionId& extension_id = extension.id();
if (!Manifest::IsAutoUpdateableLocation(extension.location())) {
@@ -356,7 +352,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue;
}
// An extension might be overwritten by policy, and have its update url
@@ -373,7 +379,7 @@ void ExtensionUpdater::AddToDownloader(
@@ -400,7 +406,7 @@ void ExtensionUpdater::AddToDownloader(
continue;
}
@@ -365,7 +361,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params->update_info[extension_id] =
GetExtensionUpdateData(extension_id);
} else if (AddExtensionToDownloader(extension, request_id,
@@ -412,6 +418,12 @@ bool ExtensionUpdater::AddExtensionToDownloader(
@@ -437,6 +443,12 @@ bool ExtensionUpdater::AddExtensionToDownloader(
}
void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -378,7 +374,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
CHECK(enabled_);
if (params.ids.empty()) {
// Checking all extensions. Cancel pending DoCheckSoon() call if there's
@@ -421,7 +433,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -446,7 +458,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
int request_id = next_request_id_++;
@@ -387,7 +383,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
if (params.ids.empty())
NotifyStarted();
@@ -494,7 +506,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -514,7 +526,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
update_check_params.update_info[pending_id] =
GetExtensionUpdateData(pending_id);
} else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) {
@@ -396,7 +392,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue;
}
// We have to mark high-priority extensions (such as policy-forced
@@ -504,7 +516,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -524,7 +536,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
// See https://crbug.com/904600 and https://crbug.com/965686.
const bool is_high_priority_extension_pending =
pending_extension_manager->HasHighPriorityPendingExtension();
@@ -405,7 +401,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[pending_id] =
GetExtensionUpdateData(pending_id);
update_check_params.update_info[pending_id].is_corrupt_reinstall =
@@ -527,6 +539,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -547,6 +559,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
LOG(WARNING) << "Corrupt extension with id " << pending_id
<< " will be reinstalled with ExtensionDownloader.";
}
@@ -414,7 +410,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
} else {
InstallStageTracker::Get(profile_)->ReportFailure(
pending_id,
@@ -539,13 +553,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -559,13 +573,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
AddToDownloader(&registry_->disabled_extensions(), pending_ids, request_id,
params.fetch_priority, &update_check_params);
ExtensionSet remotely_disabled_extensions;
@@ -428,7 +424,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id,
params.fetch_priority, &update_check_params);
} else {
@@ -553,7 +560,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -573,7 +580,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
const Extension* extension =
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
if (extension) {
@@ -437,7 +433,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[id] = GetExtensionUpdateData(id);
} else if (AddExtensionToDownloader(*extension, request_id,
params.fetch_priority)) {
@@ -697,7 +704,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
@@ -717,7 +724,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
file.extension_id, InstallStageTracker::Stage::INSTALLING);
UpdatePingData(file.extension_id, ping);
@@ -446,7 +442,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
FetchedCRXFile fetched(file, file_ownership_passed, request_ids,
std::move(callback));
@@ -708,6 +715,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
@@ -728,6 +735,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id,
DownloadPingData* ping_data) {
@@ -454,7 +450,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
DCHECK(alive_);
ping_data->rollcall_days =
CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id));
@@ -823,7 +831,7 @@ bool ExtensionUpdater::CanUseUpdateService(
@@ -840,7 +848,7 @@ bool ExtensionUpdater::CanUseUpdateService(
void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) {
std::set<int> request_ids;
@@ -463,7 +459,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
<< crx_file.info.path.value();
// The delegate is now responsible for cleaning up the temp file at
@@ -1031,7 +1039,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
@@ -1048,7 +1056,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
InProgressCheck& request = requests_in_progress_[request_id];
if (!request.in_progress_ids.empty() || request.awaiting_update_service)
return; // This request is not done yet.
@@ -475,7 +471,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
--- a/chrome/browser/extensions/updater/extension_updater.h
+++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -82,6 +82,8 @@ class ExtensionUpdater : public KeyedService,
@@ -93,6 +93,8 @@ class ExtensionUpdater : public KeyedService,
// right away.
bool install_immediately = false;
@@ -484,7 +480,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow
// An extension update check can be originated by a user or by a scheduled
// task. When the value of |fetch_priority| is FOREGROUND, the update
// request was initiated by a user.
@@ -371,6 +373,8 @@ class ExtensionUpdater : public KeyedService,
@@ -402,6 +404,8 @@ class ExtensionUpdater : public KeyedService,
base::TimeDelta frequency_;
bool will_check_soon_ = false;
@@ -508,7 +504,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
@@ -594,7 +594,7 @@ void WebstoreInstaller::StartDownload(
@@ -591,7 +591,7 @@ void WebstoreInstaller::StartDownload(
traffic_annotation));
params->set_file_path(file);
params->set_initiator(render_frame_host->GetLastCommittedOrigin());
@@ -693,7 +689,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
#include "chrome/browser/extensions/manifest_v2_experiment_manager.h"
#include "chrome/browser/extensions/mv2_experiment_stage.h"
#include "chrome/browser/extensions/permissions_url_constants.h"
@@ -379,6 +380,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
@@ -380,6 +381,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
{"itemSuspiciousInstallLearnMore",
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
@@ -702,7 +698,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
@@ -463,6 +466,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
@@ -472,6 +475,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
"hostPermissionsLearnMoreLink",
extension_permissions_constants::kRuntimeHostPermissionsHelpURL);
source->AddBoolean(kInDevModeKey, in_dev_mode);
@@ -850,8 +846,8 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
+}
+
std::vector<management::LaunchType> GetAvailableLaunchTypes(
const Extension& extension,
const ManagementAPIDelegate* delegate) {
const Extension& extension) {
std::vector<management::LaunchType> launch_type_list;
@@ -269,6 +294,8 @@ void AddExtensionInfo(const Extension* source_extension,
const ExtensionSet& extensions,
ExtensionInfoList* extension_list,
@@ -861,7 +857,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
for (ExtensionSet::const_iterator iter = extensions.begin();
iter != extensions.end(); ++iter) {
const Extension& extension = **iter;
@@ -314,10 +341,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
@@ -311,10 +338,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
std::optional<management::Get::Params> params =
management::Get::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
@@ -873,7 +869,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!target_extension) {
return RespondNow(Error(keys::kNoExtensionError, params->id));
}
@@ -338,8 +364,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
@@ -335,8 +361,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension =
@@ -883,7 +879,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) {
return RespondNow(Error(keys::kNoExtensionError, params->id));
}
@@ -407,8 +432,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
@@ -404,8 +429,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
}
const Extension* extension =
@@ -893,7 +889,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) {
return RespondNow(Error(keys::kNoExtensionError, params->id));
}
@@ -550,8 +574,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() {
@@ -547,8 +571,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() {
// Extension could have been uninstalled externally while previous check was
// happening.
const Extension* extension =
@@ -904,7 +900,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) {
FinishEnable(Error(keys::kNoExtensionError));
return;
@@ -594,8 +618,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() {
@@ -591,8 +615,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() {
// Extension can be uninstalled externally while the previous check was
// happening async.
const Extension* extension =
@@ -915,7 +911,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) {
FinishEnable(Error(keys::kNoExtensionError));
return;
@@ -739,8 +763,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone(
@@ -736,8 +760,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone(
}
const Extension* ManagementSetEnabledFunction::GetExtension() {
@@ -926,7 +922,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
}
ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default;
@@ -765,8 +789,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
@@ -762,8 +786,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
->GetDelegate();
target_extension_id_ = target_extension_id;
const Extension* target_extension =
@@ -936,7 +932,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
ExtensionRegistry::EVERYTHING);
if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) {
return RespondNow(Error(keys::kNoExtensionError, target_extension_id_));
@@ -831,8 +854,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
@@ -828,8 +851,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
// The extension can be uninstalled in another window while the UI was
// showing. Do nothing in that case.
const Extension* target_extension =
@@ -946,7 +942,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
ExtensionRegistry::EVERYTHING);
std::string error;
bool success = false;
@@ -912,8 +934,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
@@ -909,8 +931,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
management::CreateAppShortcut::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension =
@@ -956,7 +952,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) {
return RespondNow(Error(
ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id)));
@@ -967,8 +988,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
@@ -964,8 +985,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
management::SetLaunchType::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension =
@@ -1205,7 +1201,7 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc
@@ -209,4 +209,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative,
@@ -231,4 +231,18 @@ BASE_FEATURE(kExtensionBrowserNamespaceAlternative,
"ExtensionBrowserNamespaceAlternative",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1227,7 +1223,7 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h
@@ -252,6 +252,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode);
@@ -266,6 +266,8 @@ BASE_DECLARE_FEATURE(kDebuggerAPIRestrictedToDevMode);
// `loadTimes` , `csi`, etc. or deprecated APIs (e.g. `app`).
BASE_DECLARE_FEATURE(kExtensionBrowserNamespaceAlternative);
@@ -151,7 +151,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele
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
@@ -1574,4 +1574,5 @@
@@ -1595,4 +1595,5 @@
</settings-subpage>
</template>
</template>
@@ -263,7 +263,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
/**
* Add all of the child routes that originate from the privacy route,
@@ -170,6 +171,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
@@ -172,6 +173,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS =
r.SITE_SETTINGS.createChild('localNetworkAccess');
}
@@ -315,13 +315,13 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
type: Object,
value: SiteContentRadioSetting,
@@ -114,6 +119,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
blockOptionLabel: string;
blockOptionSubLabel: string;
blockOptionIcon: string;
+ askOptionLabel: string;
+ askOptionSubLabel: string;
+ askOptionIcon: string;
private pref_: chrome.settingsPrivate.PrefObject<number>;
declare blockOptionLabel: string;
declare blockOptionSubLabel: string;
declare blockOptionIcon: string;
+ declare askOptionLabel: string;
+ declare askOptionSubLabel: string;
+ declare askOptionIcon: string;
declare private pref_: chrome.settingsPrivate.PrefObject<number>;
selected: boolean;
@@ -125,6 +133,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -370,7 +370,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
@@ -333,4 +333,5 @@
@@ -334,4 +334,5 @@
label="$i18n{siteSettingsLocalNetworkAccess}">
</site-details-permission>
</template>
@@ -710,7 +710,7 @@ 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
@@ -1802,6 +1802,7 @@ static_library("ui") {
@@ -1816,6 +1816,7 @@ static_library("ui") {
"//components/commerce/core/mojom:mojo_bindings",
"//components/commerce/core/webui",
"//components/endpoint_fetcher:endpoint_fetcher",
@@ -718,7 +718,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
"//components/enterprise/common:files_scan_data",
"//components/feedback/proto",
"//components/headless/policy",
@@ -5028,6 +5029,7 @@ static_library("ui") {
@@ -5054,6 +5055,7 @@ static_library("ui") {
"//components/power_bookmarks/storage",
"//components/prefs",
"//components/reading_list/features:flags",
@@ -862,7 +862,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.h
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h
@@ -96,6 +96,11 @@ class PageInfoViewFactory {
@@ -97,6 +97,11 @@ class PageInfoViewFactory {
const PageInfo::PermissionInfo& info,
bool blocked_on_system_level = false);
@@ -1177,7 +1177,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/buildflag.h"
@@ -76,6 +77,9 @@
@@ -75,6 +76,9 @@
#include "components/dom_distiller/core/dom_distiller_features.h"
#include "components/google/core/common/google_util.h"
#include "components/history/core/common/pref_names.h"
@@ -1187,7 +1187,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"
@@ -3822,6 +3826,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3841,6 +3845,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1256,7 +1256,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/content_settings_types.h"
@@ -251,13 +253,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
@@ -258,13 +260,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
{ContentSettingsType::REVOKED_DISRUPTIVE_NOTIFICATION_PERMISSIONS, nullptr},
});
@@ -1277,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
struct SiteSettingSourceStringMapping {
SiteSettingSource source;
@@ -505,6 +507,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
@@ -526,6 +528,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
return true;
}
}
@@ -1291,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
return false;
}
@@ -518,11 +527,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
@@ -539,11 +548,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
return entry.type;
}
}
@@ -1317,7 +1317,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
for (const auto& entry : kContentSettingsTypeGroupNames) {
if (type == entry.type) {
// Content setting types that aren't represented in the settings UI
@@ -537,7 +559,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) {
@@ -558,7 +580,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) {
return entry.name ? entry.name : std::string_view();
}
}
@@ -1325,7 +1325,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
NOTREACHED() << static_cast<int32_t>(type)
<< " is not a recognized content settings type.";
}
@@ -649,6 +670,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
@@ -670,6 +691,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS);
}
@@ -1342,7 +1342,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
@@ -87,6 +87,7 @@ android_resources("java_resources") {
@@ -88,6 +88,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",
@@ -1536,7 +1536,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
+ allow_missing_resources = true
sources = [
"java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png",
"java/res/drawable-hdpi/permission_background_sync.png",
"java/res/drawable-hdpi/permission_popups.png",
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
@@ -2192,8 +2192,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private final int mIcon;
private final int mIconBlocked;
private final int mTitle;
@@ -54,7 +54,29 @@ public class ContentSettingsResources {
private int mEnabledDescriptionText;
@@ -53,7 +53,29 @@ public class ContentSettingsResources {
private final int mDisabledPrimaryText;
private int mDisabledDescriptionText;
- ResourceItem(
@@ -2223,7 +2223,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
int icon,
int title,
@ContentSettingValues @Nullable Integer defaultEnabledValue,
@@ -641,6 +663,8 @@ public class ContentSettingsResources {
@@ -629,6 +651,8 @@ public class ContentSettingsResources {
R.string.website_settings_vr_ask,
R.string.website_settings_vr_block);
}
@@ -2232,7 +2232,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false; // NOTREACHED
return assumeNonNull(null);
}
@@ -799,6 +823,14 @@ public class ContentSettingsResources {
@@ -787,6 +811,14 @@ public class ContentSettingsResources {
return getResourceItem(contentType).getDefaultDisabledValue();
}
@@ -2247,7 +2247,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.
*
@@ -973,6 +1005,8 @@ public class ContentSettingsResources {
@@ -961,6 +993,8 @@ public class ContentSettingsResources {
*/
public static int @Nullable [] getTriStateSettingDescriptionIDs(
int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) {
@@ -2259,7 +2259,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/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
@@ -341,6 +341,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -343,6 +343,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
website.site()
.getContentSetting(
browserContextHandle, mCategory.getContentSettingsType());
@@ -2270,7 +2270,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSetting != null) {
return ContentSettingValues.BLOCK == contentSetting;
}
@@ -529,6 +533,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -531,6 +535,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -2278,7 +2278,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");
@@ -564,7 +569,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -566,7 +571,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
if (queryHasChanged) getInfoForOrigins();
});
@@ -2288,7 +2288,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
MenuItem help =
menu.add(
Menu.NONE,
@@ -576,12 +582,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -578,12 +584,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getResources(),
R.drawable.ic_help_and_feedback,
getContext().getTheme()));
@@ -2309,7 +2309,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
getSiteSettingsDelegate()
.launchProtectedContentHelpAndFeedbackActivity(getActivity());
@@ -657,6 +671,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -659,6 +673,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
BrowserContextHandle browserContextHandle =
getSiteSettingsDelegate().getBrowserContextHandle();
PrefService prefService = UserPrefs.get(browserContextHandle);
@@ -2321,7 +2321,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();
@@ -841,7 +860,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -837,7 +856,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;
}
@@ -2330,7 +2330,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// OnPreferenceClickListener:
@@ -962,10 +981,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -957,10 +976,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
default:
break;
}
@@ -2345,7 +2345,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
getPreferenceScreen()
.addPreference(
new AddExceptionPreference(
@@ -1150,8 +1170,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1145,8 +1165,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
private boolean isBlocked() {
switch (mGlobalToggleLayout) {
case GlobalToggleLayout.TRI_STATE_TOGGLE:
@@ -2362,7 +2362,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE:
TriStateCookieSettingsPreference triStateCookieToggle =
@@ -1298,7 +1326,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1293,7 +1321,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (res_id != -1) {
infoText.setSummary(res_id);
} else {
@@ -2375,15 +2375,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
@@ -1337,6 +1369,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1332,6 +1364,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
screen.removePreference(mLocationTriStatePref);
}
+ BromiteCustomContentSettingImpl.configureGlobalToggles(mCategory, this);
if (permissionBlockedByOs) {
maybeShowOsWarning(screen);
@@ -1526,6 +1559,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
maybeShowReasonToggleDisabled(screen);
@@ -1544,6 +1577,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType);
}
triStateToggle.initialize(
@@ -2391,7 +2391,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
setting,
descriptionIds,
iconIds,
@@ -1685,6 +1719,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1703,6 +1737,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@ContentSettingValues
Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
@@ -2417,7 +2417,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
@@ -185,7 +186,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -186,7 +187,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
case ContentSettingsType.FILE_SYSTEM_WRITE_GUARD:
return "file_system_write_guard_permission_list";
default:
@@ -2426,7 +2426,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -591,8 +592,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -592,8 +593,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setupContentSettingsPreferences() {
Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER);
mMaxPermissionOrder = permissionsHeaderPref.getOrder();
@@ -2450,7 +2450,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
preference.setKey(getPreferenceKey(type));
if (type == ContentSettingsType.ADS) {
@@ -1273,20 +1287,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1274,20 +1288,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSettingValues @Nullable Integer value,
boolean isEmbargoed,
boolean isOneTime) {
@@ -2491,7 +2491,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
.getDefaultColor());
}
@@ -1507,14 +1533,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1512,14 +1538,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (newValue instanceof Boolean) {
permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK;
} else {
@@ -2826,7 +2826,7 @@ new file mode 100644
diff --git a/components/content_settings/android/BUILD.gn b/components/content_settings/android/BUILD.gn
--- a/components/content_settings/android/BUILD.gn
+++ b/components/content_settings/android/BUILD.gn
@@ -87,6 +87,7 @@ android_library("content_settings_enums_java") {
@@ -59,6 +59,7 @@ android_library("content_settings_enums_java") {
}
java_cpp_enum("content_settings_enums_javagen") {
@@ -2868,7 +2868,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -871,6 +872,7 @@ void ContentSettingsRegistry::Init() {
@@ -873,6 +874,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_ANDROID,
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -2879,7 +2879,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc
--- a/components/content_settings/core/browser/content_settings_uma_util.cc
+++ b/components/content_settings/core/browser/content_settings_uma_util.cc
@@ -216,11 +216,7 @@ void RecordContentSettingsHistogram(const std::string& name,
@@ -218,11 +218,7 @@ void RecordContentSettingsHistogram(const std::string& name,
}
int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) {
@@ -2918,7 +2918,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
+ rules->settings_rules.push_back(rule);
+ }
+ }
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
#if !BUILDFLAG(IS_IOS)
rules->mixed_content_rules =
map->GetSettingsForOneType(ContentSettingsType::MIXEDSCRIPT);
diff --git a/components/content_settings/core/browser/website_settings_info.h b/components/content_settings/core/browser/website_settings_info.h
@@ -3422,7 +3422,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
@@ -1271,6 +1272,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1281,6 +1282,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
@@ -3437,7 +3437,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) {
@@ -1387,7 +1396,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1397,7 +1406,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3546,7 +3546,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t
namespace blink {
class WebURL;
@@ -43,6 +48,14 @@ class WebContentSettingsClient {
@@ -42,6 +47,14 @@ class WebContentSettingsClient {
// Blocks until done.
virtual bool AllowStorageAccessSync(StorageType storage_type) { return true; }
+34 -50
View File
@@ -13,11 +13,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/chrome_content_browser_client.cc | 5 ++++-
.../first_party_sets_navigation_throttle.cc | 2 +-
.../first_party_sets_policy_service.cc | 3 ++-
chrome/browser/prefs/browser_prefs.cc | 2 +-
.../privacy_sandbox_service_impl.cc | 2 +-
.../privacy_sandbox_service_impl.cc | 3 ++-
.../privacy_sandbox_settings_delegate.cc | 1 +
.../settings/privacy_page/cookies_page.ts | 2 +-
.../privacy_sandbox/privacy_sandbox_prompt.cc | 1 +
.../site_settings/RwsCookieSettings.java | 4 ++--
.../history/core/browser/history_backend.cc | 13 +------------
.../privacy_sandbox_attestations.cc | 2 --
@@ -33,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../features_cc/Disable-privacy-sandbox.inc | 1 +
.../features_cc/Disable-privacy-sandbox.inc | 1 +
third_party/blink/common/features.cc | 1 +
23 files changed, 52 insertions(+), 33 deletions(-)
21 files changed, 51 insertions(+), 32 deletions(-)
create mode 100644 cromite_flags/content/common/features_cc/Disable-privacy-sandbox.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-privacy-sandbox.inc
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-privacy-sandbox.inc
@@ -42,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.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
@@ -3509,6 +3509,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
@@ -3546,6 +3546,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -52,7 +50,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
Profile* profile = Profile::FromBrowserContext(browser_context);
auto* privacy_sandbox_settings =
@@ -8252,7 +8255,7 @@ bool ChromeContentBrowserClient::ShouldDisableOriginAgentClusterDefault(
@@ -8303,7 +8306,7 @@ bool ChromeContentBrowserClient::ShouldDisableOriginAgentClusterDefault(
}
bool ChromeContentBrowserClient::WillProvidePublicFirstPartySets() {
@@ -93,22 +91,18 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc
if (service_state_ == ServiceState::kPermanentlyDisabled) {
OnReadyToNotifyDelegates(net::FirstPartySetsContextConfig(),
net::FirstPartySetsCacheFilter());
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -1221,7 +1221,7 @@ void RegisterProfilePrefsForMigration(
#if BUILDFLAG(IS_CHROMEOS)
// Deprecated 04/2024.
registry->RegisterBooleanPref(kMetricsUserInheritOwnerConsent, true);
- registry->RegisterBooleanPref(kGlanceablesEnabled, true);
+ registry->RegisterBooleanPref(kGlanceablesEnabled, false);
// Deprecated 05/2024.
registry->RegisterBooleanPref(kAccessibilityMouseKeysShortcutToPauseEnabled,
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
@@ -1203,7 +1203,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() {
@@ -734,6 +734,7 @@ bool PrivacySandboxServiceImpl::
PrivacySandboxService::PromptType
// TODO(crbug.com/352575567): Use the SurfaceType passed in.
PrivacySandboxServiceImpl::GetRequiredPromptType(SurfaceType surface_type) {
+ if ((true)) return PromptType::kNone;
// We delay emitting the metrics here so the profile manager can finish
// setting up and retrieving the profile buckets.
if (should_emit_dark_launch_startup_metrics_) {
@@ -1133,7 +1134,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() {
void PrivacySandboxServiceImpl::SetRelatedWebsiteSetsDataAccessEnabled(
bool enabled) {
pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled,
@@ -131,7 +125,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.ts b/chrome/browser/resources/settings/privacy_page/cookies_page.ts
--- a/chrome/browser/resources/settings/privacy_page/cookies_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/cookies_page.ts
@@ -272,7 +272,7 @@ export class SettingsCookiesPageElement extends SettingsCookiesPageElementBase {
@@ -249,7 +249,7 @@ export class SettingsCookiesPageElement extends SettingsCookiesPageElementBase {
}
private relatedWebsiteSetsToggleDisabled_() {
@@ -140,20 +134,10 @@ diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.ts b/ch
CookieControlsMode.BLOCK_THIRD_PARTY;
}
diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc
--- a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc
+++ b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc
@@ -8,5 +8,6 @@
void ShowPrivacySandboxPrompt(Browser* browser,
PrivacySandboxService::PromptType prompt_type) {
+ if ((true)) return;
ShowPrivacySandboxDialog(browser, prompt_type);
}
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/RwsCookieSettings.java
@@ -135,7 +135,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment
@@ -148,7 +148,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment
mAllowRwsPreference.setChecked(
getSiteSettingsDelegate().isRelatedWebsiteSetsDataAccessEnabled());
@@ -162,7 +146,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
mAllowRwsPreference.setEnabled(false);
}
mAllowRwsPreference.setOnPreferenceChangeListener(this);
@@ -151,7 +151,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment
@@ -164,7 +164,7 @@ public class RwsCookieSettings extends BaseSiteSettingsFragment
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
if (ALLOW_RWS_COOKIE_PREFERENCE.equals(key)) {
@@ -197,7 +181,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
--- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
@@ -406,8 +406,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed(
@@ -467,8 +467,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed(
if (attestations_map.has_value() &&
(!file_version_.IsValid() || file_version_.CompareTo(version) < 0)) {
// Parsing succeeded and the attestations file has newer version.
@@ -209,7 +193,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san
diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc
--- a/components/privacy_sandbox/privacy_sandbox_features.cc
+++ b/components/privacy_sandbox/privacy_sandbox_features.cc
@@ -288,4 +288,7 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToSchemaV2,
@@ -278,4 +278,7 @@ BASE_FEATURE(kPrivacySandboxMigratePrefsToSchemaV2,
BASE_FEATURE(kPrivacySandboxFirstTimeNoticeV2,
"PrivacySandboxFirstTimeNoticeV2",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -220,7 +204,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
@@ -25,7 +25,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -24,7 +24,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false);
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled,
false);
@@ -229,7 +213,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr
registry->RegisterTimePref(prefs::kPrivacySandboxTopicsDataAccessibleSince,
base::Time());
@@ -50,7 +50,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -49,7 +49,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
prefs::kPrivacySandboxRelatedWebsiteSetsDataAccessAllowedInitialized,
false);
registry->RegisterBooleanPref(
@@ -250,7 +234,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
}
// static
@@ -262,7 +262,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() {
@@ -257,7 +257,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() {
return finch_prioritized_topics_;
}
@@ -260,7 +244,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
Status status = GetM1TopicAllowedStatus();
JoinHistogram(kIsTopicsAllowedHistogram, status);
return IsAllowed(status);
@@ -294,7 +295,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext(
@@ -289,7 +290,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext(
return IsAllowed(status);
}
@@ -270,7 +254,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
const auto& blocked_topics =
pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics);
@@ -497,6 +499,7 @@ bool PrivacySandboxSettingsImpl::
@@ -500,6 +502,7 @@ bool PrivacySandboxSettingsImpl::
void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed(
const std::string& top_frame_etld_plus1,
bool allowed) {
@@ -278,7 +262,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
ScopedDictPrefUpdate scoped_pref_update(
pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked);
@@ -566,7 +569,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings(
@@ -569,7 +572,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings(
}
bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed(
@@ -288,7 +272,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
ScopedDictPrefUpdate scoped_pref_update(
pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked);
auto& pref_data = scoped_pref_update.Get();
@@ -916,7 +920,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting(
@@ -902,7 +906,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting(
delegate_ = std::move(delegate);
}
@@ -300,7 +284,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince,
base::Time::Now());
@@ -929,6 +936,7 @@ PrivacySandboxSettingsImpl::Status
@@ -915,6 +922,7 @@ PrivacySandboxSettingsImpl::Status
PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
const url::Origin& top_frame_origin,
const GURL& url) const {
@@ -308,7 +292,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
// Relying on |host_content_settings_map_| instead of |cookie_settings_|
// allows to query whether the site associated with the |url| is allowed to
// access Site data (aka ContentSettingsType::COOKIES) without considering any
@@ -943,6 +951,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
@@ -929,6 +937,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
PrivacySandboxSettingsImpl::Status
PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus(
bool should_ignore_restriction /*=false*/) const {
@@ -319,18 +303,18 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc
--- a/components/privacy_sandbox/tracking_protection_prefs.cc
+++ b/components/privacy_sandbox/tracking_protection_prefs.cc
@@ -53,9 +53,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
// TODO(https://b/333527273): Deprecate
@@ -24,9 +24,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
// TODO(https://b/333527273): The following prefs should be deprecated.
// Still in use for Mode B.
registry->RegisterBooleanPref(
- prefs::kBlockAll3pcToggleEnabled, false,
+ prefs::kBlockAll3pcToggleEnabled, false, // with true enables FPS
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
- registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false);
+ registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); // with true enables FPS
registry->RegisterBooleanPref(prefs::kAllowAll3pcToggleEnabled, false);
registry->RegisterIntegerPref(
prefs::kTrackingProtectionLevel,
prefs::kTrackingProtectionOnboardingStatus,
static_cast<int>(TrackingProtectionOnboardingStatus::kIneligible));
diff --git a/components/signin/public/identity_manager/account_capabilities.cc b/components/signin/public/identity_manager/account_capabilities.cc
--- a/components/signin/public/identity_manager/account_capabilities.cc
+++ b/components/signin/public/identity_manager/account_capabilities.cc
@@ -365,7 +349,7 @@ diff --git a/content/browser/shared_storage/shared_storage_document_service_impl
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -1677,7 +1677,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation(
@@ -1676,7 +1676,7 @@ bool ContentBrowserClient::ShouldPreconnectNavigation(
}
bool ContentBrowserClient::IsFirstPartySetsEnabled() {
@@ -401,7 +385,7 @@ new file mode 100644
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -2845,6 +2845,7 @@ BASE_FEATURE(kNoReferrerForPreloadFromSubresource,
@@ -2858,6 +2858,7 @@ BASE_FEATURE(kNoReferrerForPreloadFromSubresource,
// constants for features in the section above.
bool IsAllowURNsInIframeEnabled() {
@@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/content_autofill_driver.cc | 11 +++
.../content/browser/content_autofill_driver.h | 10 +++
.../content_autofill_driver_factory.cc | 12 +++
.../content/renderer/autofill_agent.cc | 6 ++
.../content/renderer/autofill_agent.cc | 4 +
.../renderer/password_autofill_agent.cc | 5 +-
.../browser/foundations/autofill_driver.h | 2 +
.../foundations/autofill_driver_factory.cc | 4 +
@@ -48,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../autofill/core/common/autofill_features.h | 22 -----
.../autofill/core/common/autofill_prefs.cc | 4 +-
.../autofill/core/common/autofill_prefs.h | 5 ++
33 files changed, 277 insertions(+), 165 deletions(-)
33 files changed, 275 insertions(+), 165 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,7 +190,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/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
@@ -473,8 +473,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
@@ -474,8 +474,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
private void updateAutofillPreferences() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
@@ -203,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
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
@@ -101,6 +101,13 @@ import java.lang.annotation.RetentionPolicy;
@@ -103,6 +103,13 @@ import java.lang.annotation.RetentionPolicy;
import java.nio.ByteBuffer;
import java.util.Objects;
@@ -217,7 +217,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.
@@ -1061,6 +1068,11 @@ class TabImpl implements Tab {
@@ -1081,6 +1088,11 @@ class TabImpl implements Tab {
for (TabObserver observer : mObservers) observer.onDestroyed(this);
mObservers.clear();
@@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mUserDataHost.destroy();
mTabViewManager.destroy();
hideNativePage(false, null);
@@ -1354,6 +1366,7 @@ class TabImpl implements Tab {
@@ -1385,6 +1397,7 @@ class TabImpl implements Tab {
* @return iff the AutofillProvider should provide a ViewStructure when prompted.
*/
boolean providesAutofillStructure() {
@@ -237,7 +237,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
if (!ChromeFeatureList.isEnabled(
AutofillFeatures.AUTOFILL_VIRTUAL_VIEW_STRUCTURE_ANDROID)) {
return false;
@@ -2139,16 +2152,21 @@ class TabImpl implements Tab {
@@ -2169,16 +2182,21 @@ class TabImpl implements Tab {
* @return true if the the provider is available for the given WebContents.
*/
private boolean prepareAutofillProvider(WebContents newWebContents) {
@@ -265,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mAutofillProvider =
new AutofillProvider(
getContext(),
@@ -2157,7 +2175,16 @@ class TabImpl implements Tab {
@@ -2187,7 +2205,16 @@ class TabImpl implements Tab {
getContext().getString(R.string.app_name));
TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid);
}
@@ -286,7 +286,7 @@ 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
@@ -3624,28 +3624,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = {
@@ -3789,28 +3789,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = {
std::size(kLinkPreviewTriggerTypeLongPress), nullptr}};
#endif // !BUILDFLAG(IS_ANDROID)
@@ -315,7 +315,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
const FeatureEntry::FeatureParam
kPrerender2WarmUpCompositorTriggerPointDidCommitLoad[] = {
{"trigger_point", "did_commit_load"}};
@@ -6143,15 +6121,6 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6345,15 +6323,6 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_ANDROID)
@@ -334,7 +334,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
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
@@ -389,8 +389,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
@@ -419,8 +419,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
->MaybeInitKeyboardSuppressor();
return;
}
@@ -347,7 +347,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
@@ -148,7 +148,7 @@ android_library("bottom_sheet_utils_java") {
@@ -149,7 +149,7 @@ android_library("bottom_sheet_utils_java") {
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/autofill/AddressNormalizerFactory.java",
@@ -359,7 +359,7 @@ 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
@@ -55,8 +55,8 @@ public class AutofillClientProviderUtils {
@@ -79,8 +79,8 @@ public class AutofillClientProviderUtils {
* @return {@link AndroidAutofillAvailabilityStatus.AVAILABLE} if Android Autofill can be used
* or a reason why it can't.
*/
@@ -372,9 +372,9 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse
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
@@ -847,12 +847,6 @@ const char kAutofillVcnEnrollRequestTimeoutDescription[] =
"VCN enrollment request. Upon timeout, the client will terminate the VCN "
"enrollment UI, but the request may still succeed server-side.";
@@ -869,12 +869,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";
@@ -388,9 +388,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
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
@@ -497,9 +497,6 @@ extern const char kAutofillUploadCardRequestTimeoutDescription[];
extern const char kAutofillVcnEnrollRequestTimeoutName[];
extern const char kAutofillVcnEnrollRequestTimeoutDescription[];
@@ -510,9 +510,6 @@ extern const char kAutofillVcnEnrollRequestTimeoutDescription[];
extern const char kAutofillVcnEnrollStrikeExpiryTimeName[];
extern const char kAutofillVcnEnrollStrikeExpiryTimeDescription[];
-extern const char kAutofillVirtualViewStructureAndroidName[];
-extern const char kAutofillVirtualViewStructureAndroidDescription[];
@@ -401,7 +401,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
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
@@ -700,6 +700,12 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
@@ -703,6 +703,12 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
<message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
Save passwords
</message>
@@ -597,7 +597,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
if (event == EVENT_INPUT_SHOWN) manager.notifyInputUiChange();
}
}
@@ -99,6 +100,7 @@ public class AutofillManagerWrapper {
@@ -102,6 +103,7 @@ public class AutofillManagerWrapper {
// Uses Exception to catch various cases. (refer to crbug.com/1186406)
Log.e(TAG, "getAutofillServiceComponentName", e);
}
@@ -605,7 +605,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
if (componentName != null) {
mPackageName = componentName.getPackageName();
mIsAwGCurrentAutofillService =
@@ -266,7 +268,7 @@ public class AutofillManagerWrapper {
@@ -274,7 +276,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.
@@ -614,7 +614,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
}
public static boolean isLoggable() {
@@ -279,6 +281,7 @@ public class AutofillManagerWrapper {
@@ -287,6 +289,7 @@ 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);
@@ -770,7 +770,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com
content::RenderFrameHost* render_frame_host() { return &*render_frame_host_; }
const content::RenderFrameHost* render_frame_host() const {
return &*render_frame_host_;
@@ -306,6 +312,10 @@ class ContentAutofillDriver : public AutofillDriver,
@@ -305,6 +311,10 @@ class ContentAutofillDriver : public AutofillDriver,
// The factory that created this driver. Outlives `this`.
const raw_ref<ContentAutofillDriverFactory> owner_;
@@ -813,7 +813,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -1431,12 +1431,16 @@ void AutofillAgent::ShowSuggestions(
@@ -1529,14 +1529,18 @@ void AutofillAgent::ShowSuggestions(
password_generation_agent_->ShowPasswordGenerationSuggestions(
input_element, form_cache)) {
is_popup_possibly_visible_ = true;
@@ -821,23 +821,11 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
return;
+#endif
}
if (password_autofill_agent_->ShowSuggestions(input_element, trigger_source,
form_cache)) {
is_popup_possibly_visible_ = true;
bool password_agent_handled_request = TryShowPasswordSuggestions(
input_element, IsPasswordsAutofillManuallyTriggered(trigger_source),
password_request);
+#if !BUILDFLAG(IS_ANDROID)
return;
+#endif
}
// Password field elements should only have suggestions shown by the
@@ -1444,11 +1448,13 @@ void AutofillAgent::ShowSuggestions(
// `FormControlTypeForAutofill()` because we are interested in whether the
// field is *currently* a password field, not whether it has ever been a
// password field.
+#if !BUILDFLAG(IS_ANDROID)
if (input_element.FormControlType() == // nocheck
blink::mojom::FormControlType::kInputPassword &&
!config_.query_password_suggestions) {
if (password_agent_handled_request) {
return;
}
+#endif
@@ -847,7 +835,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
--- a/components/autofill/content/renderer/password_autofill_agent.cc
+++ b/components/autofill/content/renderer/password_autofill_agent.cc
@@ -849,7 +849,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
@@ -853,7 +853,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
void PasswordAutofillAgent::TrackAutofilledElement(
const WebFormControlElement& element) {
@@ -888,7 +876,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
@@ -225,6 +225,8 @@ class AutofillManager
@@ -222,6 +222,8 @@ class AutofillManager
LifecycleState new_state,
base::PassKey<AutofillDriverFactory> pass_key);
@@ -900,7 +888,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
@@ -703,6 +703,8 @@ base::WeakPtr<AutofillManager> BrowserAutofillManager::GetWeakPtr() {
@@ -712,6 +712,8 @@ base::WeakPtr<AutofillManager> BrowserAutofillManager::GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
@@ -912,7 +900,7 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.h b/components/autofill/core/browser/foundations/browser_autofill_manager.h
--- a/components/autofill/core/browser/foundations/browser_autofill_manager.h
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager.h
@@ -117,6 +117,8 @@ class BrowserAutofillManager : public AutofillManager {
@@ -119,6 +119,8 @@ class BrowserAutofillManager : public AutofillManager {
~BrowserAutofillManager() override;
@@ -924,10 +912,10 @@ 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
@@ -840,7 +840,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider,
@@ -850,7 +850,7 @@ BASE_FEATURE(kAutofillThirdPartyModeContentProvider,
BASE_FEATURE(kAutofillVirtualViewStructureAndroid,
"AutofillVirtualViewStructureAndroid",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
-
+SET_CROMITE_FEATURE_ENABLED(kAutofillVirtualViewStructureAndroid);
#endif // BUILDFLAG(IS_ANDROID)
@@ -936,7 +924,7 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a
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
@@ -295,28 +295,6 @@ COMPONENT_EXPORT(AUTOFILL)
@@ -308,28 +308,6 @@ COMPONENT_EXPORT(AUTOFILL)
BASE_DECLARE_FEATURE(kAutofillThirdPartyModeContentProvider);
COMPONENT_EXPORT(AUTOFILL)
BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid);
@@ -977,7 +965,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
registry->RegisterIntegerPref(kAutocompleteLastVersionRetentionPolicy, 0);
registry->RegisterStringPref(kAutofillUploadEncodingSeed, "");
registry->RegisterDictionaryPref(kAutofillVoteUploadEvents);
@@ -86,7 +88,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -87,7 +89,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
false);
#if BUILDFLAG(IS_ANDROID)
@@ -989,7 +977,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
@@ -98,6 +98,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] =
@@ -104,6 +104,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] =
// retention policy was run.
inline constexpr char kAutocompleteLastVersionRetentionPolicy[] =
"autocomplete.retention_policy_last_version";
@@ -38,7 +38,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../template_url_table_model.cc | 9 +-
.../search_engines/template_url_table_model.h | 6 +-
.../browser/ui/webui/chrome_web_ui_configs.cc | 8 +
chrome/browser/ui/webui/favicon_source.cc | 14 +
chrome/browser/ui/webui/favicon_source.cc | 12 +
chrome/browser/ui/webui/favicon_source.h | 2 +
.../webui/settings/search_engines_handler.cc | 28 +-
.../webui/settings/search_engines_handler.h | 3 +-
@@ -77,7 +77,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
ui/webui/resources/images/BUILD.gn | 2 +-
ui/webui/resources/js/BUILD.gn | 2 +-
ui/webui/resources/js/load_time_data.ts | 17 +-
70 files changed, 1152 insertions(+), 69 deletions(-)
70 files changed, 1150 insertions(+), 69 deletions(-)
create mode 100644 chrome/app/settings_strings_android.grdp
create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml
create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc
@@ -140,7 +140,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
@@ -2398,6 +2398,9 @@
@@ -2397,6 +2397,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>
@@ -418,7 +418,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
@@ -3562,6 +3562,9 @@ static_library("browser") {
@@ -3573,6 +3573,9 @@ static_library("browser") {
"//components/user_scripts/android",
]
}
@@ -431,7 +431,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc
--- a/chrome/browser/chrome_browser_interface_binders.cc
+++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -84,6 +84,9 @@
@@ -88,6 +88,9 @@
#endif
#if BUILDFLAG(IS_ANDROID)
@@ -444,7 +444,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser
diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/browser/chrome_browser_interface_binders_webui.cc
--- a/chrome/browser/chrome_browser_interface_binders_webui.cc
+++ b/chrome/browser/chrome_browser_interface_binders_webui.cc
@@ -65,6 +65,12 @@
@@ -70,6 +70,12 @@
#include "components/signin/public/base/signin_switches.h"
#endif
@@ -457,7 +457,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"
@@ -470,6 +476,15 @@ void PopulateChromeWebUIFrameBinders(
@@ -477,6 +483,15 @@ void PopulateChromeWebUIFrameBinders(
}
#endif
@@ -473,7 +473,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
#if !BUILDFLAG(IS_ANDROID)
RegisterWebUIControllerInterfaceBinder<
search_engine_choice::mojom::PageHandlerFactory, SearchEngineChoiceUI>(
@@ -601,6 +616,9 @@ void PopulateChromeWebUIFrameBinders(
@@ -611,6 +626,9 @@ void PopulateChromeWebUIFrameBinders(
RegisterWebUIControllerInterfaceBinder<suggest_internals::mojom::PageHandler,
SuggestInternalsUI>(map);
@@ -483,7 +483,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
RegisterWebUIControllerInterfaceBinder<
customize_color_scheme_mode::mojom::
CustomizeColorSchemeModeHandlerFactory,
@@ -621,6 +639,9 @@ void PopulateChromeWebUIFrameBinders(
@@ -631,6 +649,9 @@ void PopulateChromeWebUIFrameBinders(
CertificateManagerUI>(map);
#endif // BUILDFLAG(CHROME_ROOT_STORE_CERT_MANAGEMENT_UI)
@@ -596,13 +596,13 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
actionButtonText_: String,
cancelButtonHidden_: Boolean,
@@ -79,6 +80,7 @@ export class SettingsSearchEngineEditDialogElement extends
private searchEngine_: string;
private keyword_: string;
private queryUrl_: string;
+ private suggestionUrl_: string;
private dialogTitle_: string;
private actionButtonText_: string;
private cancelButtonHidden_: boolean;
declare private searchEngine_: string;
declare private keyword_: string;
declare private queryUrl_: string;
+ declare private suggestionUrl_: string;
declare private dialogTitle_: string;
declare private actionButtonText_: string;
declare private cancelButtonHidden_: boolean;
@@ -108,7 +110,7 @@ export class SettingsSearchEngineEditDialogElement extends
this.searchEngine_ = this.model.name;
this.keyword_ = this.model.keyword;
@@ -801,8 +801,8 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b
+if (!is_android) {
source_set("background") {
public = [
"ntp_background_data.h",
@@ -60,6 +61,7 @@ source_set("background") {
"ntp_background_service_factory.h",
@@ -58,6 +59,7 @@ source_set("background") {
"//ui/gfx/codec",
]
}
@@ -854,7 +854,7 @@ new file mode 100644
diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java
--- a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java
+++ b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineSettings.java
@@ -8,6 +8,10 @@ import android.os.Bundle;
@@ -9,6 +9,10 @@ import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
@@ -865,16 +865,16 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
import androidx.fragment.app.ListFragment;
import org.chromium.base.supplier.ObservableSupplier;
@@ -16,6 +20,8 @@ import org.chromium.chrome.browser.profiles.Profile;
@@ -19,6 +23,8 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.regional_capabilities.RegionalCapabilitiesServiceFactory;
import org.chromium.chrome.browser.search_engines.R;
import org.chromium.chrome.browser.settings.ProfileDependentSetting;
+import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
+import org.chromium.components.browser_ui.settings.SettingsNavigation;
import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
import org.chromium.components.browser_ui.settings.SettingsFragment;
import org.chromium.components.regional_capabilities.RegionalCapabilitiesService;
@@ -57,6 +63,21 @@ public class SearchEngineSettings extends ListFragment
@@ -62,6 +68,21 @@ public class SearchEngineSettings extends ListFragment
return mPageTitle;
}
@@ -894,12 +894,12 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
+ }
+
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
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
@@ -699,6 +699,12 @@ static_library("ui") {
@@ -702,6 +702,12 @@ static_library("ui") {
"//v8:v8_version",
]
@@ -912,10 +912,10 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
if (is_chrome_branded) {
deps += [ "//components/plus_addresses/resources:vector_icons" ]
}
@@ -986,6 +992,21 @@ static_library("ui") {
# TODO(b/335257259): Resolve circular deps.
# Any circular includes must depend on the target "//chrome/browser:browser_public_dependencies".
allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ]
@@ -1000,6 +1006,21 @@ static_library("ui") {
"android/toolbar/extension_actions_bridge_factory.h",
]
}
+ sources += [
+ "webui/settings/settings_ui_android.cc",
+ "webui/settings/settings_ui_android.h",
@@ -1058,7 +1058,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chro
diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc
--- a/chrome/browser/ui/search_engines/template_url_table_model.cc
+++ b/chrome/browser/ui/search_engines/template_url_table_model.cc
@@ -206,7 +206,8 @@ void TemplateURLTableModel::Remove(size_t index) {
@@ -207,7 +207,8 @@ void TemplateURLTableModel::Remove(size_t index) {
void TemplateURLTableModel::Add(size_t index,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1068,7 +1068,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro
DCHECK(index <= RowCount());
DCHECK(!url.empty());
TemplateURLData data;
@@ -214,13 +215,15 @@ void TemplateURLTableModel::Add(size_t index,
@@ -215,13 +216,15 @@ void TemplateURLTableModel::Add(size_t index,
data.SetKeyword(keyword);
data.SetURL(url);
data.is_active = TemplateURLData::ActiveStatus::kTrue;
@@ -1085,7 +1085,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro
DCHECK(index <= RowCount());
DCHECK(!url.empty());
TemplateURL* template_url = GetTemplateURL(index);
@@ -229,7 +232,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index,
@@ -230,7 +233,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index,
DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url ||
template_url->SupportsReplacement(
template_url_service_->search_terms_data()));
@@ -1118,7 +1118,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrom
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -60,6 +60,11 @@
@@ -61,6 +61,11 @@
#include "components/user_scripts/browser/ui/user_scripts_ui.h"
#endif
@@ -1130,7 +1130,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u
#if BUILDFLAG(ENABLE_NACL)
#include "chrome/browser/ui/webui/nacl_ui.h"
#endif
@@ -409,4 +414,7 @@ void RegisterChromeWebUIConfigs() {
@@ -420,4 +425,7 @@ void RegisterChromeWebUIConfigs() {
#if BUILDFLAG(IS_ANDROID)
map.AddWebUIConfig(std::make_unique<user_scripts::UserScriptsUIConfig>());
#endif
@@ -1141,19 +1141,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u
diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc
--- a/chrome/browser/ui/webui/favicon_source.cc
+++ b/chrome/browser/ui/webui/favicon_source.cc
@@ -22,9 +22,11 @@
#include "components/history/core/browser/top_sites.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
+#if !BUILDFLAG(IS_ANDROID)
#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/manifest.h"
+#endif
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/resource/resource_scale_factor.h"
@@ -226,6 +228,7 @@ bool FaviconSource::ShouldServiceRequest(
@@ -230,6 +230,7 @@ bool FaviconSource::ShouldServiceRequest(
render_process_id);
}
@@ -1161,7 +1149,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
ui::NativeTheme* FaviconSource::GetNativeTheme(
const content::WebContents::Getter& wc_getter) {
#if BUILDFLAG(IS_ANDROID)
@@ -234,6 +237,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme(
@@ -238,6 +239,7 @@ ui::NativeTheme* FaviconSource::GetNativeTheme(
return webui::GetNativeThemeDeprecated(wc_getter.Run());
#endif
}
@@ -1169,7 +1157,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
void FaviconSource::OnFaviconDataAvailable(
content::URLDataSource::GotDataCallback callback,
@@ -257,7 +261,11 @@ void FaviconSource::SendDefaultResponse(
@@ -261,7 +263,11 @@ void FaviconSource::SendDefaultResponse(
parsed.device_scale_factor,
parsed.force_light_mode
? false
@@ -1181,7 +1169,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
return;
}
int icon_size = std::ceil(parsed.size_in_dip * parsed.device_scale_factor);
@@ -277,7 +285,11 @@ void FaviconSource::SendDefaultResponse(
@@ -281,7 +287,11 @@ void FaviconSource::SendDefaultResponse(
SendDefaultResponse(std::move(callback), 16, 1.0f,
force_light_mode
? false
@@ -1193,15 +1181,15 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui
}
void FaviconSource::SendDefaultResponse(
@@ -287,6 +299,7 @@ void FaviconSource::SendDefaultResponse(
bool dark_mode) {
@@ -292,6 +302,7 @@ void FaviconSource::SendDefaultResponse(
base::UmaHistogramBoolean(kDefaultResponseHistogramName, true);
int resource_id;
switch (size_in_dip) {
+#if !BUILDFLAG(IS_ANDROID)
case 64:
resource_id =
dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64;
@@ -295,6 +308,7 @@ void FaviconSource::SendDefaultResponse(
@@ -300,6 +311,7 @@ void FaviconSource::SendDefaultResponse(
resource_id =
dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32;
break;
@@ -1248,7 +1236,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
// Dummy number used for indicating that a new search engine is added.
const int kNewSearchEngineIndex = -1;
@@ -225,9 +228,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -252,9 +255,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
table_model->GetText(index,
IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN));
dict.Set("keyword", table_model->GetKeywordToDisplay(index));
@@ -1260,7 +1248,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
dict.Set("urlLocked", ((template_url->prepopulate_id() > 0) ||
(template_url->starter_pack_id() > 0)));
GURL icon_url = template_url->favicon_url();
@@ -235,6 +239,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -262,6 +266,8 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("iconURL", icon_url.spec());
}
@@ -1269,7 +1257,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
// The icons that are used for search engines in the EEA region are bundled
// with Chrome. We use the favicon service for countries outside the EEA
// region to guarantee having icons for all search engines.
@@ -253,6 +259,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -280,6 +286,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("iconPath", base::StrCat({icon_path, "@2x"}));
}
}
@@ -1277,7 +1265,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
dict.Set("modelIndex", base::checked_cast<int>(index));
@@ -269,6 +276,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -296,6 +303,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("isOmniboxExtension", type == TemplateURL::OMNIBOX_API_EXTENSION);
dict.Set("isPrepopulated", template_url->prepopulate_id() > 0);
dict.Set("isStarterPack", template_url->starter_pack_id() > 0);
@@ -1285,7 +1273,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
if (type == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION ||
type == TemplateURL::OMNIBOX_API_EXTENSION) {
const extensions::Extension* extension =
@@ -285,6 +293,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -312,6 +320,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("extension", std::move(ext_info));
}
}
@@ -1293,7 +1281,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
return dict;
}
@@ -403,12 +412,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted(
@@ -414,12 +423,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted(
void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1310,7 +1298,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
}
edit_controller_.reset();
@@ -438,6 +448,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name,
@@ -449,6 +459,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name,
is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value));
} else if (field_name.compare(kQueryUrlField) == 0) {
is_valid = edit_controller_->IsURLValid(field_value);
@@ -1319,7 +1307,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
} else {
NOTREACHED();
}
@@ -460,18 +472,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
@@ -471,18 +483,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
return;
}
@@ -1359,7 +1347,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
@@ -2452,6 +2452,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
@@ -2484,6 +2484,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
@@ -1368,7 +1356,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},
@@ -3819,6 +3821,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3838,6 +3840,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
AddSystemStrings(html_source);
#endif
@@ -1861,7 +1849,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
@@ -168,6 +168,17 @@ template("chrome_extra_paks") {
@@ -169,6 +169,17 @@ template("chrome_extra_paks") {
sources += invoker.additional_paks
}
@@ -1917,7 +1905,7 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b
diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc
--- a/components/search_engines/search_engines_switches.cc
+++ b/components/search_engines/search_engines_switches.cc
@@ -45,6 +45,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
@@ -51,6 +51,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
BASE_FEATURE(kSearchEngineChoiceTrigger,
"SearchEngineChoiceTrigger",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -1991,7 +1979,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
@@ -256,7 +256,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
@@ -260,7 +260,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
TemplateURL* AddWithOverrides(std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -2001,7 +1989,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.
@@ -342,7 +343,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
@@ -346,7 +347,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
void ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -2280,7 +2268,7 @@ diff --git a/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn b/ui/w
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
--- a/ui/webui/resources/cr_elements/BUILD.gn
+++ b/ui/webui/resources/cr_elements/BUILD.gn
@@ -37,7 +37,7 @@ build_webui("build") {
@@ -33,7 +33,7 @@ build_webui("build") {
"cr_tabs/cr_tabs.css",
]
@@ -2288,17 +2276,17 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele
+ if ((!is_ios) || is_desktop_android) {
web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ]
non_web_component_files += [
@@ -145,7 +145,7 @@ build_webui("build") {
ts_files += [
@@ -141,7 +141,7 @@ build_webui("build") {
]
}
- if (!is_android && !is_ios) {
+ if (!is_ios) {
non_web_component_files += [
ts_files += [
"cr_container_shadow_mixin.ts",
"cr_radio_button/cr_radio_button_mixin.ts",
@@ -241,7 +241,7 @@ build_webui("build") {
@@ -237,7 +237,7 @@ build_webui("build") {
"../js:build_ts",
"//third_party/lit/v3_0:build_ts",
]
@@ -3,26 +3,26 @@ Date: Mon, 3 Mar 2025 14:33:03 +0000
Subject: Temporarily disable Tab Group Sync Android
---
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +-
.../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 --
components/saved_tab_groups/public/features.cc | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -841,7 +841,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sTabClosureMethodRefactor =
newCachedFlag(TAB_CLOSURE_METHOD_REFACTOR, false);
public static final CachedFlag sTabGroupPaneAndroid =
- newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ true);
+ newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ false);
public static final CachedFlag sTabStateFlatBuffer =
newCachedFlag(
TAB_STATE_FLAT_BUFFER,
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
@@ -985,8 +985,6 @@ public class ChromeTabbedActivity extends ChromeActivity {
builder.registerPane(
PaneId.INCOGNITO_TAB_SWITCHER,
LazyOneshotSupplier.fromSupplier(() -> createTabSwitcherPane(true)));
- builder.registerPane(
- PaneId.TAB_GROUPS, LazyOneshotSupplier.fromSupplier(this::createTabGroupsPane));
if (ChromeFeatureList.sCrossDeviceTabPaneAndroid.isEnabled()) {
builder.registerPane(
PaneId.CROSS_DEVICE,
diff --git a/components/saved_tab_groups/public/features.cc b/components/saved_tab_groups/public/features.cc
--- a/components/saved_tab_groups/public/features.cc
+++ b/components/saved_tab_groups/public/features.cc
@@ -140,4 +140,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() {
@@ -136,4 +136,7 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() {
return base::Seconds(time_in_seconds);
}