Patches for v136 (need some work)
This commit is contained in:
@@ -99,7 +99,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
|
||||
@@ -643,6 +643,7 @@ chrome_java_resources = [
|
||||
@@ -645,6 +645,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 +118,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",
|
||||
@@ -879,6 +880,7 @@ chrome_java_sources = [
|
||||
@@ -880,6 +881,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",
|
||||
@@ -245,7 +245,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
|
||||
@@ -71,6 +71,10 @@ import org.chromium.base.task.TaskTraits;
|
||||
@@ -72,6 +72,10 @@ import org.chromium.base.task.TaskTraits;
|
||||
import org.chromium.build.annotations.UsedByReflection;
|
||||
import org.chromium.cc.input.BrowserControlsState;
|
||||
import org.chromium.chrome.R;
|
||||
@@ -253,10 +253,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
+import org.chromium.components.user_prefs.UserPrefs;
|
||||
+import org.chromium.chrome.browser.preferences.Pref;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.IntentHandler.ExternalAppId;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.app.ChromeActivity;
|
||||
import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics;
|
||||
@@ -727,14 +731,19 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
@@ -705,14 +709,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
||||
|
||||
Profile profile = mTabModelSelector.getCurrentModel().getProfile();
|
||||
// For saving non-incognito tab closures for Recent Tabs.
|
||||
@@ -273,17 +273,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
+ mTabModelSelector
|
||||
.getTabGroupModelFilterProvider()
|
||||
- .getTabGroupModelFilter(false));
|
||||
- mHistoricalTabModelObserver.addSecodaryTabModelSupplier(
|
||||
- mHistoricalTabModelObserver.addSecondaryTabModelSupplier(
|
||||
- ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel);
|
||||
-
|
||||
+ .getTabGroupModelFilter(alwaysIncognito));
|
||||
+ mHistoricalTabModelObserver.addSecodaryTabModelSupplier(
|
||||
+ mHistoricalTabModelObserver.addSecondaryTabModelSupplier(
|
||||
+ ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel);
|
||||
+ }
|
||||
// Defer creation of this helper so it triggers after TabGroupModelFilter observers.
|
||||
mUndoRefocusHelper =
|
||||
new UndoRefocusHelper(
|
||||
@@ -2614,8 +2623,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
@@ -2733,8 +2742,9 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
||||
|
||||
// We determine the model as soon as possible so every systems get initialized coherently.
|
||||
boolean startIncognito =
|
||||
@@ -298,15 +298,15 @@ 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
|
||||
@@ -94,6 +94,7 @@ import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver;
|
||||
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerHandler;
|
||||
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH
|
||||
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
||||
import org.chromium.chrome.browser.device.DeviceClassManager;
|
||||
import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils;
|
||||
import org.chromium.chrome.browser.download.DownloadManagerService;
|
||||
import org.chromium.chrome.browser.download.DownloadUtils;
|
||||
@@ -1953,6 +1954,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -1977,6 +1978,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
@@ -319,16 +319,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
|
||||
@@ -38,6 +38,8 @@ import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.build.BuildConfig;
|
||||
@@ -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;
|
||||
@@ -102,6 +104,10 @@ import java.util.ArrayList;
|
||||
@@ -106,6 +108,10 @@ import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
@@ -339,7 +339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
/**
|
||||
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
|
||||
* items based on activity state.
|
||||
@@ -609,6 +615,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -617,6 +623,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
|
||||
@@ -353,7 +353,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
// 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;
|
||||
@@ -672,7 +685,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -676,7 +689,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
|
||||
if (item.getItemId() == R.id.recent_tabs_menu_id) {
|
||||
@@ -370,7 +370,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
|
||||
}
|
||||
if (item.getItemId() == R.id.menu_select_tabs) {
|
||||
item.setVisible(isMenuSelectTabsVisible);
|
||||
@@ -877,8 +898,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
@@ -884,8 +905,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
&& !isNativePage
|
||||
&& !isFileScheme
|
||||
&& !isContentScheme
|
||||
@@ -393,7 +393,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;
|
||||
@@ -277,6 +278,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -293,6 +294,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
public List<Pair<Integer, ModelList>> buildContextMenu() {
|
||||
mShowEphemeralTabNewLabel = null;
|
||||
|
||||
@@ -402,8 +402,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
+
|
||||
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
|
||||
|
||||
if (mParams.isAnchor()) {
|
||||
@@ -287,6 +291,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) {
|
||||
@@ -320,6 +324,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (mMode == ContextMenuMode.NORMAL) {
|
||||
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
|
||||
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
|
||||
@@ -411,7 +411,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
|
||||
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
|
||||
}
|
||||
@@ -317,7 +322,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -350,7 +355,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
}
|
||||
}
|
||||
if (FirstRunStatus.getFirstRunFlowComplete()) {
|
||||
@@ -503,7 +503,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
@@ -1183,6 +1186,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
@@ -1197,6 +1200,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
return getInitialActivityWidth() > 0;
|
||||
}
|
||||
|
||||
@@ -539,7 +539,7 @@ 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";
|
||||
@@ -298,7 +303,16 @@ public class DownloadUtils {
|
||||
@@ -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.
|
||||
@@ -560,7 +560,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
|
||||
@@ -300,7 +300,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
|
||||
@@ -302,7 +302,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
|
||||
mHistoryAdapter.generateFooterItems();
|
||||
|
||||
// Listen to changes in sign in state.
|
||||
@@ -571,7 +571,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
|
||||
// Create PrefChangeRegistrar to receive notifications on preference changes.
|
||||
mPrefChangeRegistrar = PrefServiceUtil.createFor(profile);
|
||||
@@ -376,7 +378,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
|
||||
@@ -378,7 +380,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
|
||||
mHistoryAdapter.onDestroyed();
|
||||
mLargeIconBridge.destroy();
|
||||
mLargeIconBridge = null;
|
||||
@@ -584,7 +584,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
|
||||
@@ -55,6 +55,14 @@ import org.chromium.ui.base.Clipboard;
|
||||
@@ -54,6 +54,14 @@ import org.chromium.ui.base.Clipboard;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -599,7 +599,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
/** Combines and manages the different UI components of browsing history. */
|
||||
public class HistoryManager
|
||||
implements OnMenuItemClickListener,
|
||||
@@ -157,7 +165,7 @@ public class HistoryManager
|
||||
@@ -156,7 +164,7 @@ public class HistoryManager
|
||||
|
||||
mUmaRecorder.recordOpenHistory();
|
||||
// If incognito placeholder is shown, we don't need to create History UI elements.
|
||||
@@ -608,7 +608,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
mSelectableListLayout = null;
|
||||
mRootView = getIncognitoHistoryPlaceholderView();
|
||||
return;
|
||||
@@ -425,9 +433,22 @@ public class HistoryManager
|
||||
@@ -406,9 +414,22 @@ public class HistoryManager
|
||||
onBackPressStateChanged();
|
||||
}
|
||||
|
||||
@@ -632,7 +632,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
|
||||
// If Incognito placeholder is shown no need to call any destroy method.
|
||||
return;
|
||||
}
|
||||
@@ -487,7 +508,7 @@ public class HistoryManager
|
||||
@@ -468,7 +489,7 @@ public class HistoryManager
|
||||
* @return True if manager handles this event, false if it decides to ignore.
|
||||
*/
|
||||
private boolean onBackPressed() {
|
||||
@@ -925,9 +925,9 @@ 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;
|
||||
@@ -238,6 +239,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
mModalDialogManagerSupplier,
|
||||
SigninAndHistorySyncActivityLauncherImpl.get()));
|
||||
@@ -239,6 +240,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
SigninAndHistorySyncActivityLauncherImpl.get(),
|
||||
new SettingsCustomTabLauncherImpl()));
|
||||
}
|
||||
+ if (fragment instanceof INeedSnackbarManager) {
|
||||
+ ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier);
|
||||
@@ -1005,7 +1005,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -190,14 +192,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
||||
@@ -189,14 +191,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
||||
CollectionUtil.integerCollectionToIntArray(savedStateVersions));
|
||||
}
|
||||
|
||||
@@ -1023,7 +1023,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -205,7 +208,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
||||
@@ -204,7 +207,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
||||
* internal Chrome scheme, about:blank, or a native page and it cannot be incognito.
|
||||
*/
|
||||
private boolean shouldSave(Tab tab) {
|
||||
@@ -1032,7 +1032,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
||||
// Check the secondary tab model to see if the tab was moved instead of deleted.
|
||||
if (tabIdExistsInSecondaryModel(tab.getId())) return false;
|
||||
|
||||
@@ -295,7 +298,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
||||
@@ -293,7 +296,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
|
||||
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
@@ -1044,7 +1044,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/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
|
||||
@@ -191,6 +191,8 @@ import org.chromium.ui.InsetObserver;
|
||||
@@ -201,6 +201,8 @@ import org.chromium.ui.InsetObserver;
|
||||
import org.chromium.ui.UiUtils;
|
||||
import org.chromium.ui.base.ActivityWindowAndroid;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
@@ -1053,7 +1053,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;
|
||||
@@ -1148,7 +1150,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
@@ -1174,7 +1176,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
() -> {
|
||||
mTabCreatorManagerSupplier
|
||||
.get()
|
||||
@@ -1065,7 +1065,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
@@ -46,6 +46,10 @@ import org.chromium.ui.base.PageTransition;
|
||||
@@ -49,6 +49,10 @@ import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.url.GURL;
|
||||
|
||||
@@ -1074,9 +1074,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
+import org.chromium.chrome.browser.tab.TabObserver;
|
||||
+
|
||||
/** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */
|
||||
public class ChromeTabCreator extends TabCreator {
|
||||
private final Activity mActivity;
|
||||
@@ -502,7 +506,6 @@ public class ChromeTabCreator extends TabCreator {
|
||||
public class ChromeTabCreator extends TabCreator
|
||||
implements NeedsTabModel, NeedsTabModelOrderController {
|
||||
@@ -520,7 +524,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) {
|
||||
@@ -1095,19 +1095,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
|
||||
import org.chromium.chrome.browser.flags.ActivityType;
|
||||
import org.chromium.chrome.browser.ntp.RecentlyClosedBridge;
|
||||
import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
@@ -118,6 +119,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
|
||||
@@ -121,6 +122,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
|
||||
ProfileProvider profileProvider = mProfileProviderSupplier.get();
|
||||
assert profileProvider != null;
|
||||
|
||||
+ AlwaysIncognitoLinkInterceptor.migrateSettingToNative();
|
||||
+
|
||||
ChromeTabCreator regularTabCreator =
|
||||
(ChromeTabCreator) getTabCreatorManager().getTabCreator(false);
|
||||
ChromeTabCreator incognitoTabCreator =
|
||||
TabCreator regularTabCreator = getTabCreatorManager().getTabCreator(false);
|
||||
TabCreator incognitoTabCreator = getTabCreatorManager().getTabCreator(true);
|
||||
mRecentlyClosedBridge =
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
|
||||
@@ -49,6 +49,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager;
|
||||
@@ -50,6 +50,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager;
|
||||
import org.chromium.components.embedder_support.util.UrlUtilities;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
|
||||
@@ -1116,7 +1116,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;
|
||||
@@ -832,6 +834,13 @@ public class TabPersistentStore {
|
||||
@@ -833,6 +835,13 @@ public class TabPersistentStore {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1133,7 +1133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
|
||||
@@ -44,6 +44,7 @@ import org.chromium.base.supplier.Supplier;
|
||||
@@ -47,6 +47,7 @@ import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.cc.input.BrowserControlsState;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
@@ -1141,7 +1141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
|
||||
import org.chromium.chrome.browser.IntentHandler;
|
||||
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
|
||||
import org.chromium.chrome.browser.back_press.BackPressManager;
|
||||
@@ -748,7 +749,7 @@ public class ToolbarManager
|
||||
@@ -754,7 +755,7 @@ public class ToolbarManager
|
||||
TraceEvent.end("isOfflinePage");
|
||||
return ret;
|
||||
}
|
||||
@@ -1211,7 +1211,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
|
||||
using base::android::JavaParamRef;
|
||||
using base::android::JavaRef;
|
||||
using base::android::ScopedJavaLocalRef;
|
||||
@@ -107,7 +112,8 @@ std::vector<std::optional<base::Uuid>> StringsToUuids(
|
||||
@@ -104,7 +109,8 @@ std::vector<std::optional<base::Uuid>> StringsToUuids(
|
||||
|
||||
void CreateHistoricalTab(
|
||||
TabAndroid* tab_android,
|
||||
@@ -1221,7 +1221,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
|
||||
if (!tab_android) {
|
||||
return;
|
||||
}
|
||||
@@ -118,9 +124,14 @@ void CreateHistoricalTab(
|
||||
@@ -115,9 +121,14 @@ void CreateHistoricalTab(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1238,16 +1238,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
|
||||
if (!service) {
|
||||
return;
|
||||
}
|
||||
@@ -186,7 +197,7 @@ void CreateHistoricalBulkClosure(
|
||||
std::vector<int> per_tab_root_id,
|
||||
@@ -181,7 +192,7 @@ void CreateHistoricalBulkClosure(
|
||||
per_tab_optional_tab_group_ids,
|
||||
std::vector<raw_ptr<TabAndroid, VectorExperimental>> tabs,
|
||||
std::vector<WebContentsStateByteBuffer> web_contents_state) {
|
||||
- DCHECK(model);
|
||||
+ if (!model) return;
|
||||
DCHECK_EQ(root_ids.size(), group_titles.size());
|
||||
DCHECK_EQ(root_ids.size(), group_colors.size());
|
||||
DCHECK_EQ(root_ids.size(), optional_tab_group_ids.size());
|
||||
@@ -318,11 +329,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
|
||||
DCHECK_EQ(tab_group_ids.size(), group_titles.size());
|
||||
DCHECK_EQ(tab_group_ids.size(), group_colors.size());
|
||||
DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size());
|
||||
@@ -294,11 +305,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& jtab_android,
|
||||
const JavaParamRef<jobject>& state,
|
||||
@@ -1265,7 +1265,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
|
||||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -374,6 +374,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
|
||||
@@ -376,6 +376,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
|
||||
return ProviderStateServiceFactory::GetForProfile(profile_);
|
||||
}
|
||||
|
||||
@@ -1402,7 +1402,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"
|
||||
@@ -511,6 +514,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
@@ -549,6 +552,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
|
||||
history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
|
||||
@@ -1416,7 +1416,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
|
||||
if (profile->IsOffTheRecord())
|
||||
return nullptr;
|
||||
|
||||
@@ -518,6 +528,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
@@ -556,6 +566,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
|
||||
profile, ServiceAccessType::IMPLICIT_ACCESS);
|
||||
}
|
||||
|
||||
@@ -1457,7 +1457,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
|
||||
private:
|
||||
explicit HistoryTabHelper(content::WebContents* web_contents);
|
||||
friend class content::WebContentsUserData<HistoryTabHelper>;
|
||||
@@ -89,9 +96,6 @@ class HistoryTabHelper
|
||||
@@ -91,9 +98,6 @@ class HistoryTabHelper
|
||||
void OnLanguageDetermined(
|
||||
const translate::LanguageDetectionDetails& details) override;
|
||||
|
||||
@@ -1765,7 +1765,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
|
||||
@@ -245,6 +245,7 @@
|
||||
@@ -244,6 +244,7 @@
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
|
||||
@@ -1773,7 +1773,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"
|
||||
@@ -2010,6 +2011,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
@@ -2008,6 +2009,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
|
||||
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
|
||||
variations::VariationsService::RegisterProfilePrefs(registry);
|
||||
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
|
||||
@@ -1934,7 +1934,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
|
||||
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
|
||||
@@ -6528,6 +6528,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
@@ -6574,6 +6574,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>
|
||||
@@ -1991,7 +1991,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn
|
||||
--- a/chrome/browser/ui/messages/android/BUILD.gn
|
||||
+++ b/chrome/browser/ui/messages/android/BUILD.gn
|
||||
@@ -28,6 +28,7 @@ android_library("java") {
|
||||
@@ -27,6 +27,7 @@ android_library("java") {
|
||||
srcjar_deps = [ ":jni_headers" ]
|
||||
sources = [
|
||||
"java/src/org/chromium/chrome/browser/ui/messages/infobar/SimpleConfirmInfoBarBuilder.java",
|
||||
@@ -2058,7 +2058,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
|
||||
@@ -4071,6 +4071,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
|
||||
@@ -4070,6 +4070,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
|
||||
"net.out_of_process_system_dns_resolution_enabled";
|
||||
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@ diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_pro
|
||||
diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
|
||||
--- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
|
||||
+++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
|
||||
@@ -269,7 +269,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
|
||||
@@ -266,7 +266,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
|
||||
delegate_->Accept();
|
||||
return;
|
||||
case PermissionDialogButton::kAcceptOnce:
|
||||
@@ -279,7 +279,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
|
||||
@@ -603,6 +603,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
|
||||
@@ -617,6 +617,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
|
||||
}
|
||||
|
||||
@RequiresNonNull({"mSite"})
|
||||
@@ -290,8 +290,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
+
|
||||
private void setUpClearDataPreference() {
|
||||
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
|
||||
assumeNonNull(preference);
|
||||
@@ -1195,6 +1200,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
|
||||
long usage = mSite.getTotalUsage();
|
||||
@@ -1285,6 +1290,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
|
||||
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
|
||||
.getDefaultColor());
|
||||
}
|
||||
@@ -317,7 +317,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
|
||||
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
|
||||
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
|
||||
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
|
||||
@@ -637,6 +637,11 @@
|
||||
@@ -646,6 +646,11 @@
|
||||
<message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
|
||||
URL truncated
|
||||
</message>
|
||||
@@ -384,8 +384,8 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
|
||||
- ContentSettingsType::MEDIASTREAM_CAMERA,
|
||||
ContentSettingsType::HAND_TRACKING,
|
||||
ContentSettingsType::SMART_CARD_DATA,
|
||||
}};
|
||||
@@ -256,9 +289,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrantsInHcsm() {
|
||||
ContentSettingsType::AR,
|
||||
@@ -258,9 +291,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrantsInHcsm() {
|
||||
ContentSettingsType::CAPTURED_SURFACE_CONTROL,
|
||||
#endif
|
||||
ContentSettingsType::KEYBOARD_LOCK,
|
||||
@@ -393,8 +393,8 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
|
||||
- ContentSettingsType::MEDIASTREAM_MIC,
|
||||
- ContentSettingsType::MEDIASTREAM_CAMERA,
|
||||
ContentSettingsType::HAND_TRACKING,
|
||||
}};
|
||||
return *types;
|
||||
ContentSettingsType::AR,
|
||||
ContentSettingsType::VR,
|
||||
diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h
|
||||
--- a/components/content_settings/core/browser/content_settings_utils.h
|
||||
+++ b/components/content_settings/core/browser/content_settings_utils.h
|
||||
@@ -433,7 +433,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo
|
||||
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
|
||||
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
|
||||
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
|
||||
@@ -385,9 +385,9 @@ public class PageInfoController
|
||||
@@ -386,9 +386,9 @@ public class PageInfoController
|
||||
String name,
|
||||
String nameMidSentence,
|
||||
int type,
|
||||
@@ -448,7 +448,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
|
||||
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
|
||||
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
|
||||
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
|
||||
@@ -44,8 +44,9 @@ public class PermissionParamsListBuilder {
|
||||
@@ -48,8 +48,9 @@ public class PermissionParamsListBuilder {
|
||||
}
|
||||
|
||||
public void addPermissionEntry(
|
||||
@@ -460,18 +460,18 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
|
||||
}
|
||||
|
||||
public void clearPermissionEntries() {
|
||||
@@ -86,6 +87,10 @@ public class PermissionParamsListBuilder {
|
||||
permissionParams.warningTextResource =
|
||||
R.string.page_info_android_permission_blocked;
|
||||
@@ -85,6 +86,10 @@ public class PermissionParamsListBuilder {
|
||||
} else {
|
||||
warningTextResource = R.string.page_info_android_permission_blocked;
|
||||
}
|
||||
+ if (permission.is_user_session) {
|
||||
+ permissionParams.warningTextResource =
|
||||
+ R.string.page_info_android_permission_session_permission;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,13 +132,15 @@ public class PermissionParamsListBuilder {
|
||||
} else {
|
||||
assert permission.setting == ContentSettingValues.ASK
|
||||
@@ -121,13 +126,15 @@ public class PermissionParamsListBuilder {
|
||||
public final String nameMidSentence;
|
||||
public final int type;
|
||||
public final @ContentSettingValues int setting;
|
||||
@@ -532,7 +532,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
|
||||
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
|
||||
--- a/components/page_info/page_info.cc
|
||||
+++ b/components/page_info/page_info.cc
|
||||
@@ -1197,6 +1197,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
|
||||
@@ -1210,6 +1210,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
|
||||
permission_info.is_one_time =
|
||||
(info.metadata.session_model() ==
|
||||
content_settings::mojom::SessionModel::ONE_TIME);
|
||||
@@ -544,7 +544,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
|
||||
diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
|
||||
--- a/components/page_info/page_info.h
|
||||
+++ b/components/page_info/page_info.h
|
||||
@@ -150,6 +150,7 @@ class PageInfo : private content_settings::CookieControlsObserver,
|
||||
@@ -149,6 +149,7 @@ class PageInfo : private content_settings::CookieControlsObserver,
|
||||
content_settings::SettingSource::kNone;
|
||||
// Whether the permission is a one-time grant.
|
||||
bool is_one_time = false;
|
||||
@@ -691,7 +691,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
|
||||
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
|
||||
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
|
||||
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
|
||||
@@ -109,7 +109,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() {
|
||||
@@ -117,7 +117,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() {
|
||||
delegate()->FinalizeCurrentRequests();
|
||||
}
|
||||
|
||||
@@ -704,7 +704,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio
|
||||
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
|
||||
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
|
||||
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h
|
||||
@@ -44,7 +44,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid {
|
||||
@@ -45,7 +45,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid {
|
||||
const override;
|
||||
void Closing() override;
|
||||
void Accept() override;
|
||||
@@ -984,8 +984,8 @@ diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/c
|
||||
diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc
|
||||
--- a/components/permissions/permission_context_base.cc
|
||||
+++ b/components/permissions/permission_context_base.cc
|
||||
@@ -267,6 +267,17 @@ const PermissionRequest* PermissionContextBase::FindPermissionRequest(
|
||||
return request->second.first.get();
|
||||
@@ -271,6 +271,17 @@ GURL PermissionContextBase::GetEffectiveEmbedderOrigin(
|
||||
return PermissionUtil::GetLastCommittedOriginAsURL(rfh->GetMainFrame());
|
||||
}
|
||||
|
||||
+std::unique_ptr<PermissionRequest>
|
||||
@@ -1002,7 +1002,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
content::PermissionResult PermissionContextBase::GetPermissionStatus(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const GURL& requesting_origin,
|
||||
@@ -526,7 +537,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
|
||||
@@ -530,7 +541,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
|
||||
const GURL& embedding_origin,
|
||||
ContentSetting content_setting,
|
||||
bool is_one_time,
|
||||
@@ -1012,7 +1012,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
|
||||
content_setting == CONTENT_SETTING_BLOCK ||
|
||||
content_setting == CONTENT_SETTING_DEFAULT);
|
||||
@@ -541,13 +553,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
|
||||
@@ -545,13 +557,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
|
||||
// missing if a permission prompt was preignored and we already notified an
|
||||
// origin about it.
|
||||
if (request->second.second) {
|
||||
@@ -1031,7 +1031,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
}
|
||||
}
|
||||
|
||||
@@ -628,11 +641,27 @@ void PermissionContextBase::NotifyPermissionSet(
|
||||
@@ -632,11 +645,27 @@ void PermissionContextBase::NotifyPermissionSet(
|
||||
ContentSetting content_setting,
|
||||
bool is_one_time,
|
||||
bool is_final_decision) {
|
||||
@@ -1060,7 +1060,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
}
|
||||
|
||||
if (is_final_decision) {
|
||||
@@ -673,6 +702,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
@@ -677,6 +706,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
const GURL& embedding_origin,
|
||||
ContentSetting content_setting,
|
||||
bool is_one_time) {
|
||||
@@ -1076,7 +1076,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
|
||||
DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
|
||||
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
|
||||
@@ -682,6 +720,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
@@ -686,6 +724,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
|
||||
constraints.set_session_model(
|
||||
is_one_time ? content_settings::mojom::SessionModel::ONE_TIME
|
||||
: content_settings::mojom::SessionModel::DURABLE);
|
||||
@@ -1129,7 +1129,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
|
||||
// Implementors can override this method to avoid using automatic embargo.
|
||||
virtual bool UsesAutomaticEmbargo() const;
|
||||
|
||||
@@ -249,7 +269,8 @@ class PermissionContextBase : public content_settings::Observer {
|
||||
@@ -253,7 +273,8 @@ class PermissionContextBase : public content_settings::Observer {
|
||||
const GURL& embedding_origin,
|
||||
ContentSetting content_setting,
|
||||
bool is_one_time,
|
||||
@@ -1171,7 +1171,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
|
||||
PermissionRequest::~PermissionRequest() {
|
||||
DCHECK(delete_callback_.is_null());
|
||||
}
|
||||
@@ -404,19 +412,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
|
||||
@@ -423,19 +431,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
|
||||
return request_type() == RequestType::kStorageAccess;
|
||||
}
|
||||
|
||||
@@ -1237,7 +1237,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
|
||||
PermissionRequest(const PermissionRequest&) = delete;
|
||||
PermissionRequest& operator=(const PermissionRequest&) = delete;
|
||||
|
||||
@@ -162,10 +171,10 @@ class PermissionRequest {
|
||||
@@ -169,10 +178,10 @@ class PermissionRequest {
|
||||
// If |is_one_time| is true the permission will last until all tabs of
|
||||
// |origin| are closed or navigated away from, and then the permission will
|
||||
// automatically expire after 1 day.
|
||||
@@ -1250,7 +1250,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
|
||||
|
||||
// Called when the user has cancelled the permission request. This
|
||||
// corresponds to a denial, but is segregated in case the context needs to
|
||||
@@ -221,6 +230,9 @@ class PermissionRequest {
|
||||
@@ -228,6 +237,9 @@ class PermissionRequest {
|
||||
// Called once a decision is made about the permission.
|
||||
PermissionDecidedCallback permission_decided_callback_;
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../bookmarks/android/bookmark_bridge.h | 8 ++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 41 ++++++++++++++++++
|
||||
.../browser/bookmarks/bookmark_html_writer.cc | 14 +++++-
|
||||
.../bookmark_merged_surface_service.cc | 3 ++
|
||||
.../bookmark_merged_surface_service.cc | 2 +
|
||||
.../bookmarks/bookmark_parent_folder.cc | 1 +
|
||||
.../permanent_folder_ordering_tracker.cc | 2 +
|
||||
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
||||
.../strings/android_chrome_strings.grd | 3 ++
|
||||
@@ -29,12 +30,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/bookmarks/browser/bookmark_uuids.h | 1 +
|
||||
components/bookmarks/browser/model_loader.cc | 8 +++-
|
||||
.../bookmark_specifics_conversions.cc | 1 +
|
||||
25 files changed, 243 insertions(+), 14 deletions(-)
|
||||
26 files changed, 243 insertions(+), 14 deletions(-)
|
||||
|
||||
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
|
||||
@@ -74,6 +74,10 @@ found in the LICENSE file.
|
||||
@@ -77,6 +77,10 @@ found in the LICENSE file.
|
||||
<item android:id="@+id/all_bookmarks_menu_id"
|
||||
android:title="@string/menu_bookmarks"
|
||||
android:icon="@drawable/btn_star_filled" />
|
||||
@@ -45,7 +46,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" />
|
||||
@@ -198,6 +202,9 @@ found in the LICENSE file.
|
||||
@@ -204,6 +208,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 +59,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
|
||||
@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
import org.chromium.chrome.browser.bookmarks.bar.BookmarkBarUtils;
|
||||
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;
|
||||
@@ -253,12 +254,17 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator;
|
||||
@@ -263,12 +264,17 @@ 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;
|
||||
@@ -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;
|
||||
@@ -3103,6 +3109,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
@@ -3233,6 +3239,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 =
|
||||
@@ -3191,6 +3199,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
@@ -3331,6 +3339,41 @@ public class ChromeTabbedActivity extends ChromeActivity {
|
||||
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
|
||||
}
|
||||
|
||||
@@ -387,27 +388,30 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc
|
||||
@@ -32,6 +32,7 @@ BookmarkParentFolder GetBookmarkParentFolderFromPermanentType(
|
||||
BookmarkNode::Type type) {
|
||||
switch (type) {
|
||||
@@ -108,6 +108,8 @@ BookmarkMergedSurfaceService::BookmarkMergedSurfaceService(
|
||||
BookmarkMergedSurfaceService::~BookmarkMergedSurfaceService() {
|
||||
for (auto& observer : observers_) {
|
||||
observer.BookmarkMergedSurfaceServiceBeingDeleted();
|
||||
+ case BookmarkNode::Type::TABS_COLLECTION:
|
||||
+ NOTREACHED();
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_parent_folder.cc b/chrome/browser/bookmarks/bookmark_parent_folder.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_parent_folder.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_parent_folder.cc
|
||||
@@ -18,6 +18,7 @@ BookmarkParentFolder GetBookmarkParentFolderFromPermanentNode(
|
||||
CHECK(node->is_permanent_node());
|
||||
switch (node->type()) {
|
||||
case bookmarks::BookmarkNode::URL:
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
NOTREACHED();
|
||||
case bookmarks::BookmarkNode::FOLDER:
|
||||
// TODO(crbug.com/381252292): Consider extending type with a value
|
||||
@@ -70,6 +71,8 @@ std::optional<PermanentFolderType> GetIfPermanentFolderType(
|
||||
|
||||
case BookmarkNode::Type::URL:
|
||||
NOTREACHED();
|
||||
+ case BookmarkNode::Type::TABS_COLLECTION:
|
||||
+ NOTREACHED();
|
||||
}
|
||||
NOTREACHED();
|
||||
}
|
||||
diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc
|
||||
--- a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc
|
||||
+++ b/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc
|
||||
@@ -23,6 +23,7 @@ bool IsValidTrackedType(BookmarkNode::Type type) {
|
||||
@@ -26,6 +26,7 @@ bool IsValidTrackedType(BookmarkNode::Type type) {
|
||||
switch (type) {
|
||||
case bookmarks::BookmarkNode::URL:
|
||||
case bookmarks::BookmarkNode::FOLDER:
|
||||
@@ -415,7 +419,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr
|
||||
NOTREACHED();
|
||||
|
||||
case bookmarks::BookmarkNode::BOOKMARK_BAR:
|
||||
@@ -235,6 +236,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() {
|
||||
@@ -291,6 +292,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() {
|
||||
switch (tracked_type_) {
|
||||
case bookmarks::BookmarkNode::URL:
|
||||
case bookmarks::BookmarkNode::FOLDER:
|
||||
@@ -447,7 +451,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
|
||||
@@ -4487,6 +4487,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
@@ -4497,6 +4497,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>
|
||||
|
||||
@@ -14,15 +14,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
components/search_engines/cromite/BUILD.gn | 12 ++++++
|
||||
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
|
||||
.../search_engine_choice_utils.cc | 5 +--
|
||||
.../search_engine_countries-inc.cc | 2 +
|
||||
.../search_engines/search_engine_type.h | 5 +++
|
||||
.../template_url_prepopulate_data.cc | 3 +-
|
||||
.../template_url_prepopulate_data.cc | 5 ++-
|
||||
.../template_url_prepopulate_data.h | 7 ----
|
||||
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 +-
|
||||
14 files changed, 99 insertions(+), 25 deletions(-)
|
||||
13 files changed, 99 insertions(+), 25 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
|
||||
@@ -68,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
|
||||
@@ -72,6 +72,7 @@ static_library("search_engines") {
|
||||
"//third_party/metrics_proto",
|
||||
@@ -73,6 +73,7 @@ static_library("search_engines") {
|
||||
"//third_party/omnibox_proto",
|
||||
"//third_party/search_engines_data:prepopulated_engines",
|
||||
"//third_party/search_engines_data:regional_settings",
|
||||
+ "cromite:cromite_prepopulated_engines",
|
||||
]
|
||||
|
||||
deps = [
|
||||
@@ -157,6 +158,7 @@ source_set("search_engine_utils") {
|
||||
@@ -159,6 +160,7 @@ source_set("search_engine_utils") {
|
||||
":search_engine_type",
|
||||
"//components/google/core/common",
|
||||
"//third_party/search_engines_data:prepopulated_engines",
|
||||
@@ -84,7 +83,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL
|
||||
]
|
||||
|
||||
deps = [ "//url" ]
|
||||
@@ -237,6 +239,7 @@ source_set("unit_tests") {
|
||||
@@ -242,6 +244,7 @@ source_set("unit_tests") {
|
||||
"//testing/gmock",
|
||||
"//testing/gtest",
|
||||
"//third_party/search_engines_data:prepopulated_engines",
|
||||
@@ -154,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
|
||||
@@ -182,10 +182,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
|
||||
@@ -183,10 +183,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
|
||||
}
|
||||
|
||||
void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
|
||||
@@ -166,29 +165,19 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice
|
||||
}
|
||||
|
||||
void RecordChoiceScreenPositionsCountryMismatch(bool has_mismatch) {
|
||||
diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc
|
||||
--- a/components/search_engines/search_engine_countries-inc.cc
|
||||
+++ b/components/search_engines/search_engine_countries-inc.cc
|
||||
@@ -1453,5 +1453,7 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
for (size_t i = 0; i < num_engines; i++) {
|
||||
t_url.push_back(engines[i]);
|
||||
}
|
||||
+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen});
|
||||
+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light});
|
||||
return t_url;
|
||||
}
|
||||
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
||||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -94,10 +94,15 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_STARTPAGE = 75,
|
||||
SEARCH_ENGINE_STARTER_PACK_PAGE = 76,
|
||||
@@ -97,11 +97,16 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_MCAFEE = 77,
|
||||
+ SEARCH_ENGINE_GOOGLE_EN = 78,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 79,
|
||||
SEARCH_ENGINE_FREESPOKE = 78,
|
||||
SEARCH_ENGINE_KAGI = 79,
|
||||
+ SEARCH_ENGINE_GOOGLE_EN = 80,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 81,
|
||||
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
// LINT.ThenChange(//tools/metrics/histograms/enums.xml:OmniboxSearchEngineType)
|
||||
|
||||
+static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1),
|
||||
+ "Please check this patch");
|
||||
@@ -199,16 +188,25 @@ 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
|
||||
@@ -28,6 +28,8 @@
|
||||
#include "components/version_info/version_info.h"
|
||||
@@ -30,6 +30,8 @@
|
||||
#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 --------------------------------------------------------------------
|
||||
@@ -67,7 +69,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryID country_id,
|
||||
@@ -53,6 +55,8 @@ const RegionalSettings& GetRegionalSettings(CountryId country_id) {
|
||||
iter = kRegionalSettings.find(CountryId());
|
||||
}
|
||||
|
||||
+ t_url.push_back({SearchEngineTier::kTopEngines, &googleen});
|
||||
+ t_url.push_back({SearchEngineTier::kTopEngines, &duckduckgo_light});
|
||||
return *iter->second;
|
||||
}
|
||||
|
||||
@@ -85,7 +89,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id,
|
||||
generator.seed(profile_seed);
|
||||
std::shuffle(t_urls.begin(), t_urls.end(), generator);
|
||||
|
||||
@@ -219,7 +217,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
||||
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
|
||||
@@ -31,13 +31,6 @@ struct PrepopulatedEngine;
|
||||
@@ -32,13 +32,6 @@ struct PrepopulatedEngine;
|
||||
|
||||
extern const int kMaxPrepopulatedEngineID;
|
||||
|
||||
@@ -236,7 +234,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone
|
||||
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
|
||||
@@ -25,6 +25,11 @@ template("json_to_struct") {
|
||||
@@ -39,6 +39,11 @@ template("json_to_struct") {
|
||||
action_name = target_name + "_action"
|
||||
source_set_name = target_name
|
||||
|
||||
@@ -248,7 +246,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json
|
||||
action(action_name) {
|
||||
visibility = [ ":$source_set_name" ]
|
||||
script = "//tools/json_to_struct/json_to_struct.py"
|
||||
@@ -49,6 +54,10 @@ template("json_to_struct") {
|
||||
@@ -61,6 +66,10 @@ template("json_to_struct") {
|
||||
"--namespace=" + invoker.namespace,
|
||||
"--schema=" + rebase_path(invoker.schema_file, root_build_dir),
|
||||
]
|
||||
@@ -262,7 +260,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
|
||||
@@ -97,7 +97,7 @@ def _GenerateHeaderGuard(h_filename):
|
||||
@@ -100,7 +100,7 @@ def _GenerateHeaderGuard(h_filename):
|
||||
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
|
||||
|
||||
|
||||
@@ -271,7 +269,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.
|
||||
|
||||
@@ -133,11 +133,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
@@ -136,11 +136,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
f.write(u'#include "%s"\n' % header)
|
||||
f.write(u'\n')
|
||||
|
||||
@@ -288,7 +286,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')
|
||||
|
||||
@@ -162,7 +166,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
@@ -175,7 +179,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
|
||||
f.write(u'#endif // %s\n' % header_guard)
|
||||
|
||||
|
||||
@@ -297,16 +295,16 @@ 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.
|
||||
|
||||
@@ -191,7 +195,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||
@@ -210,7 +214,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
|
||||
f.write(element_generator.GenerateElements(schema['type_name'],
|
||||
schema['schema'], description))
|
||||
|
||||
- if 'generate_array' in description:
|
||||
+ if excludetype == False and 'generate_array' in description:
|
||||
f.write(u'\n')
|
||||
f.write(
|
||||
u'const %s* const array_%s[] = {\n' %
|
||||
@@ -283,7 +287,7 @@ def GenerateClass(basepath,
|
||||
- if not aggregation.export_items:
|
||||
+ 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,
|
||||
|
||||
|
||||
def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||
@@ -315,7 +313,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:
|
||||
@@ -302,8 +306,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
|
||||
@@ -334,8 +338,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)
|
||||
@@ -326,7 +324,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = optparse.OptionParser(
|
||||
@@ -318,11 +322,17 @@ if __name__ == '__main__':
|
||||
@@ -350,11 +354,17 @@ if __name__ == '__main__':
|
||||
parser.add_option('-s', '--schema', help='path to the schema file, '
|
||||
'mandatory.')
|
||||
parser.add_option('-o', '--output', help='output filename, ')
|
||||
@@ -344,7 +342,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]
|
||||
@@ -339,4 +349,4 @@ if __name__ == '__main__':
|
||||
@@ -371,4 +381,4 @@ if __name__ == '__main__':
|
||||
schema = _Load(opts.schema)
|
||||
description = _Load(description_filename)
|
||||
GenerateStruct(basepath, output_root, opts.namespace, schema, description,
|
||||
|
||||
@@ -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
|
||||
@@ -253,6 +253,7 @@ chrome_java_sources = [
|
||||
@@ -254,6 +254,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
|
||||
@@ -186,6 +186,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
@@ -190,6 +190,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;
|
||||
@@ -1700,7 +1701,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
@@ -1780,7 +1781,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
|
||||
@@ -2200,6 +2200,16 @@
|
||||
@@ -2228,6 +2228,16 @@
|
||||
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for delete browsing data button in Privacy options">
|
||||
Delete browsing data
|
||||
</message>
|
||||
@@ -354,7 +354,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -103,6 +103,7 @@
|
||||
@@ -104,6 +104,7 @@
|
||||
#include "components/enterprise/data_controls/core/browser/features.h"
|
||||
#include "components/enterprise/obfuscation/core/utils.h"
|
||||
#include "components/error_page/common/error_page_switches.h"
|
||||
@@ -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
|
||||
@@ -538,6 +538,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
@@ -541,6 +541,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
|
||||
settings_api::PrefType::kNumber;
|
||||
|
||||
@@ -542,7 +542,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
|
||||
diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
--- a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
+++ b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
@@ -54,10 +54,15 @@ public class ProfileManagerUtils {
|
||||
@@ -56,11 +56,16 @@ public class ProfileManagerUtils {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -550,8 +550,9 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
|
||||
+ ProfileManagerUtilsJni.get().removeBrowsingDataAtStart();
|
||||
+ }
|
||||
+
|
||||
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
public interface Natives {
|
||||
void flushPersistentDataForAllProfiles();
|
||||
|
||||
void removeSessionCookiesForAllProfiles();
|
||||
@@ -573,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b
|
||||
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
|
||||
--- a/chrome/browser/profiles/profile_manager.cc
|
||||
+++ b/chrome/browser/profiles/profile_manager.cc
|
||||
@@ -1441,6 +1441,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
@@ -1442,6 +1442,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -593,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_ ||
|
||||
@@ -2114,7 +2127,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
|
||||
@@ -2121,7 +2134,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()) {
|
||||
@@ -671,7 +672,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
|
||||
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
|
||||
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
|
||||
@@ -222,6 +222,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -214,6 +214,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
value: () =>
|
||||
[loadTimeData.getString('basicPageTitle'),
|
||||
loadTimeData.getString('advancedPageTitle'),
|
||||
@@ -679,7 +680,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
],
|
||||
},
|
||||
|
||||
@@ -343,6 +344,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -335,6 +336,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
}
|
||||
this.clearButtonDisabled_ =
|
||||
this.getSelectedDataTypes_(page as HTMLElement).length === 0;
|
||||
@@ -690,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
|
||||
@@ -1584,6 +1584,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1590,6 +1590,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"><link></ph>myactivity.google.com<ph name="END_LINK"></link></ph>.
|
||||
</message>
|
||||
@@ -717,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
|
||||
@@ -1919,6 +1919,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
@@ -1910,6 +1910,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
|
||||
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
|
||||
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
|
||||
@@ -825,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
|
||||
@@ -335,6 +335,37 @@ bool GetDeletionPreferenceFromDataType(
|
||||
@@ -341,6 +341,37 @@ bool GetDeletionPreferenceFromDataType(
|
||||
BrowsingDataType data_type,
|
||||
ClearBrowsingDataTab clear_browsing_data_tab,
|
||||
std::string* out_pref) {
|
||||
@@ -937,7 +938,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co
|
||||
// Description of database tables:
|
||||
//
|
||||
// icon_mapping
|
||||
@@ -507,6 +511,14 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
|
||||
@@ -508,6 +512,14 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
|
||||
|
||||
bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin,
|
||||
base::Time end) {
|
||||
@@ -967,7 +968,7 @@ diff --git a/components/favicon/core/favicon_database.h b/components/favicon/cor
|
||||
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
|
||||
--- a/components/search_engines/template_url_service.cc
|
||||
+++ b/components/search_engines/template_url_service.cc
|
||||
@@ -862,6 +862,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
|
||||
@@ -893,6 +893,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
|
||||
if (turl->date_created() >= created_after &&
|
||||
(created_before.is_null() || turl->date_created() < created_before) &&
|
||||
turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 &&
|
||||
@@ -990,7 +991,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s
|
||||
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
|
||||
--- a/content/browser/storage_partition_impl.cc
|
||||
+++ b/content/browser/storage_partition_impl.cc
|
||||
@@ -1527,6 +1527,7 @@ void StoragePartitionImpl::Initialize(
|
||||
@@ -1528,6 +1528,7 @@ void StoragePartitionImpl::Initialize(
|
||||
.AppendASCII("Code Cache");
|
||||
}
|
||||
DCHECK_GE(settings.size_in_bytes(), 0);
|
||||
|
||||
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java
|
||||
--- a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java
|
||||
+++ b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java
|
||||
@@ -127,7 +127,7 @@ class GlobalNightModeStateController
|
||||
@@ -128,7 +128,7 @@ class GlobalNightModeStateController
|
||||
}
|
||||
|
||||
private void updateNightMode() {
|
||||
|
||||
@@ -69,7 +69,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
|
||||
#include "components/metrics/single_sample_metrics.h"
|
||||
#include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h"
|
||||
#include "components/services/storage/public/cpp/buckets/bucket_id.h"
|
||||
@@ -3281,8 +3282,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
|
||||
@@ -3363,8 +3364,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
|
||||
PropagateBrowserCommandLineToRenderer(browser_command_line, command_line);
|
||||
|
||||
// Pass on the browser locale.
|
||||
|
||||
@@ -42,7 +42,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b
|
||||
diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
|
||||
--- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
|
||||
+++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
|
||||
@@ -2436,7 +2436,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document,
|
||||
@@ -2522,7 +2522,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document,
|
||||
if (!cached_resource) {
|
||||
cached_resource = MemoryCache::Get()->ResourceForURL(
|
||||
url, document->Fetcher()->GetCacheIdentifier(
|
||||
@@ -66,7 +66,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b
|
||||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
@@ -851,6 +851,8 @@ void FrameFetchContext::PopulateResourceRequestBeforeCacheAccess(
|
||||
@@ -866,6 +866,8 @@ void FrameFetchContext::PopulateResourceRequestBeforeCacheAccess(
|
||||
if (document_loader_->ForceFetchCacheMode()) {
|
||||
request.SetCacheMode(*document_loader_->ForceFetchCacheMode());
|
||||
}
|
||||
@@ -154,7 +154,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t
|
||||
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
|
||||
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
|
||||
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
|
||||
@@ -1026,7 +1026,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData(
|
||||
@@ -1027,7 +1027,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData(
|
||||
}
|
||||
|
||||
const String cache_identifier = GetCacheIdentifier(
|
||||
@@ -164,7 +164,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
|
||||
// Most off-main-thread resource fetches use Resource::kRaw and don't reach
|
||||
// this point, but off-main-thread module fetches might.
|
||||
if (IsMainThread()) {
|
||||
@@ -1482,7 +1483,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params,
|
||||
@@ -1483,7 +1484,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params,
|
||||
params.Url(),
|
||||
GetCacheIdentifier(
|
||||
params.Url(),
|
||||
@@ -174,7 +174,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
|
||||
if (resource) {
|
||||
policy = DetermineRevalidationPolicy(resource_type, params, *resource,
|
||||
is_static_data);
|
||||
@@ -1814,7 +1816,8 @@ Resource* ResourceFetcher::CreateResourceForLoading(
|
||||
@@ -1815,7 +1817,8 @@ Resource* ResourceFetcher::CreateResourceForLoading(
|
||||
const ResourceFactory& factory) {
|
||||
const String cache_identifier =
|
||||
GetCacheIdentifier(params.GetResourceRequest().Url(),
|
||||
@@ -184,7 +184,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
|
||||
DCHECK(!IsMainThread() || params.IsStaleRevalidation() ||
|
||||
!MemoryCache::Get()->ResourceForURL(params.GetResourceRequest().Url(),
|
||||
cache_identifier));
|
||||
@@ -2927,11 +2930,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() {
|
||||
@@ -2938,11 +2941,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() {
|
||||
}
|
||||
|
||||
String ResourceFetcher::GetCacheIdentifier(const KURL& url,
|
||||
@@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
|
||||
}
|
||||
|
||||
// Requests that can be satisfied via `archive_` (i.e. MHTML) or
|
||||
@@ -2946,7 +2985,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url,
|
||||
@@ -2957,7 +2996,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url,
|
||||
return bundle->GetCacheIdentifier();
|
||||
}
|
||||
|
||||
|
||||
@@ -8,15 +8,28 @@ or, if not defined, by the same agent cluster.
|
||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../renderer_host/render_frame_host_impl.cc | 2 +
|
||||
.../Partition-blobs-by-top-frame-URL.inc | 1 +
|
||||
storage/browser/blob/blob_url_store_impl.cc | 51 +++++++++++++++++++
|
||||
storage/browser/blob/blob_url_store_impl.h | 11 ++++
|
||||
storage/browser/blob/blob_url_store_impl.cc | 71 ++++++++++++++++++-
|
||||
storage/browser/blob/blob_url_store_impl.h | 13 ++++
|
||||
storage/browser/blob/features.cc | 1 +
|
||||
.../public/mojom/blob/blob_url_store.mojom | 12 +++--
|
||||
.../core/fileapi/public_url_manager.cc | 18 +++++++
|
||||
6 files changed, 91 insertions(+), 3 deletions(-)
|
||||
.../public/mojom/blob/blob_url_store.mojom | 8 ++-
|
||||
.../core/fileapi/public_url_manager.cc | 17 +++++
|
||||
7 files changed, 110 insertions(+), 3 deletions(-)
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc
|
||||
|
||||
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
|
||||
@@ -12683,6 +12683,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL(
|
||||
}
|
||||
|
||||
bool RenderFrameHostImpl::DoesDocumentHaveStorageAccess() {
|
||||
+ // 6313600: [Blob URL] Allow contexts with a StorageAccessHandle
|
||||
+ // to bypass Blob URL partitioning | https://chromium-review.googlesource.com/c/chromium/src/+/6313600
|
||||
return StorageAccessHandle::DoesDocumentHaveStorageAccess(this);
|
||||
}
|
||||
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc b/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -26,7 +39,24 @@ new file mode 100644
|
||||
diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc
|
||||
--- a/storage/browser/blob/blob_url_store_impl.cc
|
||||
+++ b/storage/browser/blob/blob_url_store_impl.cc
|
||||
@@ -91,6 +91,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() {
|
||||
@@ -21,6 +21,16 @@
|
||||
|
||||
namespace storage {
|
||||
|
||||
+namespace {
|
||||
+
|
||||
+// this code only serves to break the build in v137
|
||||
+// when https://chromium-review.googlesource.com/c/chromium/src/+/6430562 is inserted.
|
||||
+// (UAZO) BlobURLStoreImpl::ShouldPartitionBlobUrlAccess => true
|
||||
+[[maybe_unused]] bool IsBlobUrlAccessCrossPartitionSameOrigin(
|
||||
+ BlobUrlRegistry::MappingStatus mapping_status) {
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
// Self deletes when the last binding to it is closed.
|
||||
class BlobURLTokenImpl : public blink::mojom::BlobURLToken {
|
||||
public:
|
||||
@@ -93,6 +103,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +87,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
void BlobURLStoreImpl::Register(
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob,
|
||||
const GURL& url,
|
||||
@@ -105,6 +129,14 @@ void BlobURLStoreImpl::Register(
|
||||
@@ -107,6 +141,14 @@ void BlobURLStoreImpl::Register(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -72,7 +102,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
if (registry_)
|
||||
registry_->AddUrlMapping(url, std::move(blob), storage_key_,
|
||||
renderer_origin_, render_process_host_id_,
|
||||
@@ -125,6 +157,8 @@ void BlobURLStoreImpl::Revoke(const GURL& url) {
|
||||
@@ -127,21 +169,32 @@ void BlobURLStoreImpl::Revoke(const GURL& url) {
|
||||
void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
@@ -81,15 +111,40 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
ResolveAsURLLoaderFactoryCallback callback) {
|
||||
if (!registry_) {
|
||||
BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
|
||||
@@ -140,6 +174,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
return;
|
||||
}
|
||||
- FinishResolveAsURLLoaderFactory(url, std::move(receiver), std::move(callback),
|
||||
+ FinishResolveAsURLLoaderFactory(url, std::move(receiver),
|
||||
+ unsafe_agent_cluster_id, unsafe_top_level_site,
|
||||
+ std::move(callback),
|
||||
storage_access_check_callback_.Run());
|
||||
}
|
||||
|
||||
void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsURLLoaderFactoryCallback callback,
|
||||
bool has_storage_access_handle) {
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
|
||||
+ std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
if (registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
|
||||
storage_key_) ==
|
||||
BlobUrlRegistry::MappingStatus::kNotMappedCrossPartitionSameOrigin) {
|
||||
@@ -150,6 +203,7 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory(
|
||||
features::kBlockCrossPartitionBlobUrlFetching) &&
|
||||
!partitioning_disabled_by_policy_;
|
||||
if (feature_and_policy_check) {
|
||||
if (feature_and_policy_check && !has_storage_access_handle) {
|
||||
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory blocked" << url;
|
||||
partitioning_blob_url_closure_.Run(url,
|
||||
blink::mojom::PartitioningBlobURLInfo::
|
||||
kBlockedCrossPartitionFetching);
|
||||
@@ -152,6 +187,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
@@ -162,6 +216,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory(
|
||||
partitioning_blob_url_closure_.Run(url, std::nullopt);
|
||||
}
|
||||
|
||||
@@ -98,23 +153,35 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
+ std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory allowed " << url;
|
||||
BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url,
|
||||
std::move(receiver));
|
||||
// When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and
|
||||
@@ -166,12 +208,18 @@ void BlobURLStoreImpl::ResolveForNavigation(
|
||||
@@ -175,6 +235,8 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory(
|
||||
void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
bool is_top_level_navigation,
|
||||
ResolveAsBlobURLTokenCallback callback) {
|
||||
if (!registry_) {
|
||||
@@ -182,6 +244,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
return;
|
||||
}
|
||||
FinishResolveAsBlobURLToken(url, std::move(token), is_top_level_navigation,
|
||||
+ unsafe_agent_cluster_id, unsafe_top_level_site,
|
||||
std::move(callback),
|
||||
storage_access_check_callback_.Run());
|
||||
}
|
||||
@@ -190,8 +253,14 @@ void BlobURLStoreImpl::FinishResolveAsBlobURLToken(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
bool is_top_level_navigation,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) {
|
||||
if (!registry_) {
|
||||
std::move(callback).Run(std::nullopt);
|
||||
return;
|
||||
}
|
||||
|
||||
ResolveAsBlobURLTokenCallback callback,
|
||||
bool has_storage_access_handle) {
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ std::move(callback).Run(std::nullopt);
|
||||
+ return;
|
||||
@@ -122,50 +189,42 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
if (!is_top_level_navigation &&
|
||||
(registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
|
||||
storage_key_) ==
|
||||
@@ -203,12 +251,15 @@ void BlobURLStoreImpl::ResolveForNavigation(
|
||||
void BlobURLStoreImpl::ResolveForWorkerScriptFetch(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) {
|
||||
if (!registry_) {
|
||||
std::move(callback).Run(std::nullopt);
|
||||
return;
|
||||
}
|
||||
ResolveForNavigation(url, std::move(token), /*is_top_level_navigation=*/false,
|
||||
+ unsafe_agent_cluster_id, unsafe_top_level_site,
|
||||
std::move(callback));
|
||||
}
|
||||
|
||||
diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/blob_url_store_impl.h
|
||||
--- a/storage/browser/blob/blob_url_store_impl.h
|
||||
+++ b/storage/browser/blob/blob_url_store_impl.h
|
||||
@@ -57,15 +57,21 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
@@ -60,11 +60,15 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
void ResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsURLLoaderFactoryCallback callback) override;
|
||||
void ResolveForNavigation(
|
||||
void ResolveAsBlobURLToken(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
bool is_top_level_navigation,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) override;
|
||||
void ResolveForWorkerScriptFetch(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveForNavigationCallback callback) override;
|
||||
ResolveAsBlobURLTokenCallback callback) override;
|
||||
|
||||
private:
|
||||
@@ -75,6 +81,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
// `Revoke()`.
|
||||
bool BlobUrlIsValid(const GURL& url, const char* method) const;
|
||||
@@ -77,6 +81,8 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
void FinishResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsURLLoaderFactoryCallback callback,
|
||||
bool has_storage_access_handle);
|
||||
|
||||
@@ -84,9 +90,16 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
bool is_top_level_navigation,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
ResolveAsBlobURLTokenCallback callback,
|
||||
bool has_storage_access_handle);
|
||||
|
||||
+ bool IsSamePartition(
|
||||
+ const GURL& blob_url,
|
||||
@@ -202,22 +261,11 @@ diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_pa
|
||||
network.mojom.SchemefulSite? unsafe_top_level_site);
|
||||
@@ -48,7 +50,9 @@ interface BlobURLStore {
|
||||
// As long as the token is alive, the resolved blob will also be kept alive.
|
||||
ResolveForNavigation(url.mojom.Url url,
|
||||
ResolveAsBlobURLToken(url.mojom.Url url,
|
||||
pending_receiver<BlobURLToken> token,
|
||||
- bool is_top_level_navigation) => (
|
||||
+ bool is_top_level_navigation,
|
||||
+ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id,
|
||||
+ network.mojom.SchemefulSite? unsafe_top_level_site) => (
|
||||
// TODO(https://crbug.com/1224926): Remove this once experiment is over.
|
||||
mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id);
|
||||
|
||||
@@ -59,7 +63,9 @@ interface BlobURLStore {
|
||||
// currently intended for use when fetching a dedicated / shared worker
|
||||
// script.
|
||||
ResolveForWorkerScriptFetch(url.mojom.Url url,
|
||||
- pending_receiver<BlobURLToken> token) => (
|
||||
+ pending_receiver<BlobURLToken> token,
|
||||
+ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id,
|
||||
+ network.mojom.SchemefulSite? unsafe_top_level_site) => (
|
||||
// TODO(https://crbug.com/1224926): Remove this once experiment is over.
|
||||
mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id);
|
||||
@@ -255,20 +303,12 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi
|
||||
WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext())));
|
||||
}
|
||||
|
||||
@@ -293,6 +309,7 @@ void PublicURLManager::ResolveForNavigation(
|
||||
@@ -293,6 +309,7 @@ void PublicURLManager::ResolveAsBlobURLToken(
|
||||
|
||||
GetBlobURLStore().ResolveForNavigation(
|
||||
GetBlobURLStore().ResolveAsBlobURLToken(
|
||||
url, std::move(token_receiver), is_top_level_navigation,
|
||||
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()),
|
||||
WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext())));
|
||||
}
|
||||
|
||||
@@ -319,6 +336,7 @@ void PublicURLManager::ResolveForWorkerScriptFetch(
|
||||
|
||||
GetBlobURLStore().ResolveForWorkerScriptFetch(
|
||||
url, std::move(token_receiver),
|
||||
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()),
|
||||
WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext())));
|
||||
}
|
||||
|
||||
--
|
||||
|
||||
@@ -13,15 +13,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/android/java/res/values/styles.xml | 24 ++
|
||||
.../DefaultSearchEngineFirstRunFragment.java | 3 -
|
||||
.../browser/firstrun/FirstRunActivity.java | 23 +-
|
||||
.../firstrun/FirstRunFlowSequencer.java | 61 +---
|
||||
.../firstrun/FirstRunFlowSequencer.java | 60 +---
|
||||
.../browser/firstrun/FirstRunUtils.java | 1 +
|
||||
.../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++
|
||||
.../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++
|
||||
.../signin/ChildAccountStatusSupplier.java | 3 +
|
||||
.../signin/ChildAccountStatusSupplier.java | 4 +
|
||||
...creenSigninAndHistorySyncActivityBase.java | 6 +-
|
||||
.../browser/locale/LocaleManagerDelegate.java | 5 +-
|
||||
.../Welcome-screen.grdp | 27 ++
|
||||
15 files changed, 918 insertions(+), 80 deletions(-)
|
||||
15 files changed, 919 insertions(+), 79 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java
|
||||
@@ -30,7 +30,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
|
||||
@@ -514,6 +514,7 @@ chrome_java_resources = [
|
||||
@@ -516,6 +516,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/find_in_page.xml",
|
||||
"java/res/layout/find_toolbar.xml",
|
||||
"java/res/layout/fre_tos_privacy_disclaimer.xml",
|
||||
@@ -41,9 +41,9 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -597,6 +597,8 @@ chrome_java_sources = [
|
||||
@@ -602,6 +602,8 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
|
||||
"java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java",
|
||||
"java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java",
|
||||
"java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java",
|
||||
+ "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java",
|
||||
+ "java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java",
|
||||
@@ -302,7 +302,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
|
||||
import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout;
|
||||
import org.chromium.chrome.browser.ui.signin.SigninUtils;
|
||||
@@ -234,7 +233,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -235,7 +234,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
/** Creates first page and sets up adapter. Should result UI being shown on the screen. */
|
||||
private void createFirstPage() {
|
||||
BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage();
|
||||
@@ -311,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN);
|
||||
mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages);
|
||||
mPager.setAdapter(mPagerAdapter);
|
||||
@@ -259,7 +258,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -260,7 +259,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
//
|
||||
// TODO(b/245912657): explicitly sign in supervised users in {@link
|
||||
// FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker.
|
||||
@@ -319,7 +319,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
|
||||
mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties);
|
||||
|
||||
@@ -274,18 +272,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -275,18 +273,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN);
|
||||
}
|
||||
|
||||
@@ -338,7 +338,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
if (mPagerAdapter != null) {
|
||||
mPagerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
@@ -697,11 +683,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -707,11 +693,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) {
|
||||
assert mNativeInitializationPromise.isFulfilled();
|
||||
|
||||
@@ -422,7 +422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -167,14 +135,10 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -167,9 +135,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
}
|
||||
|
||||
private void maybeProcessFreEnvironmentPreNative() {
|
||||
@@ -431,13 +431,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
-
|
||||
if (mIsFlowKnown) return;
|
||||
mIsFlowKnown = true;
|
||||
|
||||
Bundle freProperties = new Bundle();
|
||||
- freProperties.putBoolean(SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, mIsChild);
|
||||
|
||||
onFlowIsKnown(freProperties);
|
||||
}
|
||||
@@ -185,8 +149,8 @@ public abstract class FirstRunFlowSequencer {
|
||||
onFlowIsKnown(mIsChild);
|
||||
@@ -181,8 +146,8 @@ public abstract class FirstRunFlowSequencer {
|
||||
* @param freProperties Resulting FRE properties bundle.
|
||||
*/
|
||||
public void updateFirstRunProperties(Bundle freProperties) {
|
||||
@@ -448,7 +443,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
assert freProperties != null;
|
||||
freProperties.putBoolean(
|
||||
FirstRunActivity.SHOW_HISTORY_SYNC_PAGE, shouldShowHistorySyncOptIn());
|
||||
@@ -205,8 +169,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -201,8 +166,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
|
||||
// Mark the FRE flow as complete.
|
||||
FirstRunStatus.setFirstRunFlowComplete(true);
|
||||
@@ -457,7 +452,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -305,9 +267,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -301,9 +264,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
Log.d(TAG, "Redirecting user through FRE.");
|
||||
CrashKeys.getInstance().set(CrashKeyIndex.FIRST_RUN, "yes");
|
||||
|
||||
@@ -467,7 +462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
if (inSameTask) {
|
||||
FreIntentCreator intentCreator = new FreIntentCreator();
|
||||
Intent freIntent =
|
||||
@@ -333,13 +292,17 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -329,13 +289,17 @@ public abstract class FirstRunFlowSequencer {
|
||||
if (!(caller instanceof Activity)) {
|
||||
freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
@@ -1182,13 +1177,14 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java
|
||||
@@ -41,7 +41,10 @@ public class ChildAccountStatusSupplier implements OneshotSupplier<Boolean> {
|
||||
@@ -41,7 +41,11 @@ public class ChildAccountStatusSupplier implements OneshotSupplier<Boolean> {
|
||||
*/
|
||||
public ChildAccountStatusSupplier(
|
||||
AccountManagerFacade accountManagerFacade, AppRestrictionSupplier appRestrictionInfo) {
|
||||
+ mHasRestriction = false;
|
||||
+ mChildAccountStatusFromAccountManagerFacade = false;
|
||||
mChildAccountStatusStartTime = SystemClock.elapsedRealtime();
|
||||
+ mValue.set(false);
|
||||
+ if ((true)) return;
|
||||
|
||||
appRestrictionInfo.getHasAppRestriction(this::onAppRestrictionDetected);
|
||||
@@ -1196,7 +1192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAcc
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
|
||||
@@ -25,8 +25,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
@@ -24,8 +24,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
import org.chromium.chrome.browser.ui.system.StatusBarColorController;
|
||||
import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
|
||||
import org.chromium.components.policy.PolicyService;
|
||||
@@ -1205,7 +1201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre
|
||||
|
||||
/** Base class for First run experience and fullscreen signin and history sync promos. */
|
||||
public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncInitializationActivity
|
||||
@@ -92,9 +90,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn
|
||||
@@ -91,9 +89,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn
|
||||
@Override
|
||||
@CallSuper
|
||||
public void triggerLayoutInflation() {
|
||||
@@ -1219,7 +1215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre
|
||||
diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java
|
||||
--- a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java
|
||||
+++ b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java
|
||||
@@ -375,8 +375,9 @@ public class LocaleManagerDelegate {
|
||||
@@ -384,8 +384,9 @@ public class LocaleManagerDelegate {
|
||||
|
||||
/** @see LocaleManager#getSearchEnginesForPromoDialog */
|
||||
public List<TemplateUrl> getSearchEnginesForPromoDialog(@SearchEnginePromoType int promoType) {
|
||||
|
||||
Reference in New Issue
Block a user