Patches for 140 (need work)

This commit is contained in:
Carmelo Messina
2025-08-30 12:52:14 +02:00
parent 054870731c
commit a048d60ff4
24 changed files with 3089 additions and 1598 deletions
+1 -2
View File
@@ -6,7 +6,7 @@ Force-use-vpython3-for-some-scripts.patch
Permit-PGO-for-debug-builds.patch
Fix-chromium-vanilla.patch
Final-patch-for-chromium-vanilla.patch
Restore-chrome-password-store.patch
Remove-EV-certificates.patch
do-not-hide-.orig-files.patch
do-not-add-suffix-to-package-name.patch
@@ -275,7 +275,6 @@ Enable-Global-Privacy-Control.patch
Enable-Do-Not-Track-by-default.patch
Media-fingerprinting-mitigations.patch
Use-BoringSSL-for-RandBytes.patch
Restore-chrome-password-store.patch
Disable-support-for-pointer-device-id.patch
Disable-CSS-blink-feature-support.patch
Close-Sessions-On-Ip-Change.patch
+101 -109
View File
@@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../java/res/xml/incognito_preferences.xml | 37 ++++
.../java/res/xml/privacy_preferences.xml | 5 +
.../AlwaysIncognitoLinkInterceptor.java | 54 ++++++
.../chrome/browser/ChromeTabbedActivity.java | 28 ++-
.../chrome/browser/ChromeTabbedActivity.java | 25 ++-
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 7 +-
.../ChromeContextMenuPopulator.java | 6 +-
@@ -69,7 +69,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/profiles/profile_selections.h | 7 +-
.../browser/ui/android/native_page/BUILD.gn | 2 +
.../browser/ui/native_page/NativePage.java | 22 ++-
.../browser/omnibox/LocationBarMediator.java | 10 +-
.../browser/omnibox/LocationBarMediator.java | 8 +
.../strings/android_chrome_strings.grd | 25 +++
.../browser/toolbar/LocationBarModel.java | 5 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
@@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../add-an-always-incognito-mode.inc | 1 +
.../add-an-always-incognito-mode.inc | 3 +
.../add-an-always-incognito-mode.inc | 1 +
69 files changed, 800 insertions(+), 113 deletions(-)
69 files changed, 797 insertions(+), 111 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -101,7 +101,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -639,6 +639,7 @@ chrome_java_resources = [
@@ -620,6 +620,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",
@@ -120,7 +120,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -902,6 +903,7 @@ chrome_java_sources = [
@@ -907,6 +908,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",
@@ -258,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.ExternalAppId;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.app.ChromeActivity;
@@ -761,14 +765,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -794,14 +798,19 @@ public class ChromeTabbedActivity extends ChromeActivity {
Profile profile = mTabModelSelector.getCurrentModel().getProfile();
// For saving non-incognito tab closures for Recent Tabs.
@@ -285,18 +285,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer creation of this helper so it triggers after TabGroupModelFilter observers.
mUndoRefocusHelper =
new UndoRefocusHelper(
@@ -2951,8 +2960,9 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3152,7 +3161,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
}
// We determine the model as soon as possible so every systems get initialized coherently.
boolean startIncognito =
- savedInstanceState != null
- && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false);
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
+ || (savedInstanceState != null
+ && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false));
mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mLayoutStateProviderSupplier);
- boolean startIncognito =
+ boolean startIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ||
(mSupportedProfileType == SupportedProfileType.OFF_THE_RECORD)
|| (mSupportedProfileType == SupportedProfileType.MIXED
&& savedInstanceState != null
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
@@ -308,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils;
import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
import org.chromium.chrome.browser.download.DownloadManagerService;
@@ -1981,6 +1982,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2000,6 +2001,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -345,25 +342,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -34,6 +34,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.shared_preferences.SharedPreferencesManager;
import org.chromium.base.supplier.Supplier;
@@ -41,6 +41,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
import org.chromium.chrome.browser.download.DownloadUtils;
@@ -370,6 +371,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
public List<Pair<Integer, ModelList>> buildContextMenu() {
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ContextMenuItemType;
@@ -420,6 +421,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
mShowEphemeralTabNewLabel = null;
mCustomActionMap.clear();
+ boolean always_incognito =
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
+
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
List<ModelList> groupedItems = new ArrayList<>();
if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) {
@@ -438,7 +442,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -489,7 +493,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
}
if (FirstRunStatus.getFirstRunFlowComplete()) {
@@ -424,15 +421,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -18,6 +18,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
@@ -21,6 +21,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -221,6 +222,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
openInChromeItemVisible = false;
tryAddingReadAloud = false;
}
@@ -445,7 +442,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
@@ -99,6 +99,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -101,6 +101,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.device.mojom.ScreenOrientationLockType;
import org.chromium.net.NetId;
@@ -472,15 +469,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
@@ -36,6 +36,7 @@ import org.chromium.base.FileUtils;
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
@@ -39,6 +39,7 @@ import org.chromium.base.Log;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.download.home.DownloadActivityLauncher;
@@ -78,6 +79,10 @@ import org.chromium.url.GURL;
@@ -82,6 +83,10 @@ import org.chromium.url.GURL;
import java.io.File;
@@ -489,9 +486,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
+import org.chromium.chrome.browser.preferences.Pref;
+
/** A class containing some utility static methods. */
@NullMarked
public class DownloadUtils {
private static final String TAG = "download";
@@ -303,7 +308,13 @@ public class DownloadUtils {
@@ -313,7 +318,13 @@ public class DownloadUtils {
public static boolean isAllowedToDownloadPage(Tab tab) {
if (tab == null) return false;
@@ -509,7 +506,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
@@ -302,7 +302,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -307,7 +307,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.generateFooterItems();
// Listen to changes in sign in state.
@@ -520,7 +517,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);
@@ -378,7 +380,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -383,7 +385,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.onDestroyed();
mLargeIconBridge.destroy();
mLargeIconBridge = null;
@@ -533,7 +530,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
@@ -56,6 +56,14 @@ import org.chromium.ui.base.Clipboard;
@@ -57,6 +57,14 @@ import org.chromium.ui.base.Clipboard;
import java.util.List;
import java.util.function.Function;
@@ -548,7 +545,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,
@@ -161,7 +169,7 @@ public class HistoryManager
@@ -162,7 +170,7 @@ public class HistoryManager
mUmaRecorder.recordOpenHistory();
// If incognito placeholder is shown, we don't need to create History UI elements.
@@ -557,7 +554,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
mSelectableListLayout = null;
mRootView = getIncognitoHistoryPlaceholderView();
return;
@@ -413,9 +421,22 @@ public class HistoryManager
@@ -415,9 +423,22 @@ public class HistoryManager
onBackPressStateChanged();
}
@@ -581,7 +578,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;
}
@@ -475,7 +496,7 @@ public class HistoryManager
@@ -477,7 +498,7 @@ public class HistoryManager
* @return True if manager handles this event, false if it decides to ignore.
*/
private boolean onBackPressed() {
@@ -634,7 +631,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
@@ -351,7 +352,8 @@ public class NativePageFactory {
@@ -371,7 +372,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito, PdfInfo pdfInfo) {
NativePage page;
@@ -647,7 +644,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
@@ -40,6 +40,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint;
@@ -44,6 +44,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.components.sync.SyncService;
import org.chromium.url.GURL;
@@ -663,7 +660,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -108,7 +117,8 @@ public class RecentTabsManager
@@ -113,7 +122,8 @@ public class RecentTabsManager
Profile profile,
Context context,
Runnable showHistoryManager) {
@@ -673,7 +670,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
mActiveTab = tab;
mTabModelSelector = tabModelSelector;
mShowHistoryManager = showHistoryManager;
@@ -291,6 +301,22 @@ public class RecentTabsManager
@@ -301,6 +311,22 @@ public class RecentTabsManager
*/
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
@@ -879,7 +876,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment;
@@ -47,6 +47,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment;
import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -887,7 +884,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation;
@@ -244,6 +245,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
@@ -226,6 +227,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
SigninAndHistorySyncActivityLauncherImpl.get(),
new SettingsCustomTabLauncherImpl()));
}
@@ -1006,15 +1003,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -25,6 +25,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.build.BuildConfig;
@@ -27,6 +27,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.build.annotations.Contract;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ai.AiAssistantService;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
@@ -219,7 +220,10 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
@@ -220,7 +221,10 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
// New Tab
@@ -1029,7 +1026,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/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
@@ -218,6 +218,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto
@@ -212,6 +212,8 @@ import org.chromium.content_public.common.ContentSwitches;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
@@ -1038,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.display.DisplayUtil;
@@ -1238,7 +1240,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1247,7 +1249,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1050,7 +1047,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
@@ -52,6 +52,10 @@ import org.chromium.ui.base.PageTransition;
@@ -53,6 +53,10 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -1061,9 +1058,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
/** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */
@NullMarked
public class ChromeTabCreator extends TabCreator
@@ -567,7 +571,6 @@ public class ChromeTabCreator extends TabCreator
@@ -580,7 +584,6 @@ public class ChromeTabCreator extends TabCreator
// TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome.
public Tab launchUrlFromExternalApp(
public @Nullable Tab launchUrlFromExternalApp(
LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) {
- assert !mIncognito;
// Don't re-use tabs for intents from Chrome. Note that this can be spoofed so shouldn't be
@@ -1092,16 +1089,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
@@ -54,6 +54,8 @@ import org.chromium.chrome.browser.tabwindow.TabWindowManager;
@@ -61,6 +61,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.content_public.browser.LoadUrlParams;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
@@ -844,6 +846,13 @@ public class TabPersistentStore {
import java.io.DataInputStream;
@@ -838,6 +840,13 @@ public class TabPersistentStore {
}
}
}
@@ -1126,7 +1123,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.tabwindow.TabWindowManagerSingleton;
import org.chromium.chrome.browser.back_press.BackPressManager;
@@ -856,7 +857,7 @@ public class ToolbarManager
@@ -859,7 +860,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
return ret;
}
@@ -1196,7 +1193,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;
@@ -104,7 +109,8 @@ std::vector<std::optional<base::Uuid>> StringsToUuids(
@@ -101,7 +106,8 @@ std::vector<std::optional<base::Uuid>> StringsToUuids(
void CreateHistoricalTab(
TabAndroid* tab_android,
@@ -1206,7 +1203,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!tab_android) {
return;
}
@@ -115,9 +121,14 @@ void CreateHistoricalTab(
@@ -112,9 +118,14 @@ void CreateHistoricalTab(
return;
}
@@ -1223,7 +1220,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!service) {
return;
}
@@ -181,7 +192,7 @@ void CreateHistoricalBulkClosure(
@@ -178,7 +189,7 @@ void CreateHistoricalBulkClosure(
per_tab_optional_tab_group_ids,
std::vector<raw_ptr<TabAndroid, VectorExperimental>> tabs,
std::vector<WebContentsStateByteBuffer> web_contents_state) {
@@ -1232,7 +1229,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
DCHECK_EQ(tab_group_ids.size(), group_titles.size());
DCHECK_EQ(tab_group_ids.size(), group_colors.size());
DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size());
@@ -294,11 +305,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
@@ -291,11 +302,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
JNIEnv* env,
const JavaParamRef<jobject>& jtab_android,
const JavaParamRef<jobject>& state,
@@ -1250,8 +1247,8 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -418,6 +418,15 @@ ChromeAutocompleteProviderClient::GetTabGroupSyncService() const {
return tab_groups::TabGroupSyncServiceFactory::GetForProfile(profile_);
@@ -427,6 +427,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const {
return AimEligibilityServiceFactory::GetForProfile(profile_);
}
+bool ChromeAutocompleteProviderClient::IsAlwaysIncognitoEnabled() const {
@@ -1269,9 +1266,9 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
@@ -96,6 +96,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
ProviderStateService* GetProviderStateService() const override;
tab_groups::TabGroupSyncService* GetTabGroupSyncService() const override;
@@ -99,6 +99,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient {
AimEligibilityService* GetAimEligibilityService() const override;
bool IsOffTheRecord() const override;
+ bool IsAlwaysIncognitoEnabled() const override;
bool IsIncognitoProfile() const override;
@@ -1387,7 +1384,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"
@@ -568,6 +571,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -598,6 +601,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1401,7 +1398,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return nullptr;
@@ -575,6 +585,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -605,6 +615,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@@ -1421,7 +1418,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/history/history_tab_helper.h
--- a/chrome/browser/history/history_tab_helper.h
+++ b/chrome/browser/history/history_tab_helper.h
@@ -15,6 +15,8 @@
@@ -17,6 +17,8 @@
#include "components/translate/core/browser/translate_driver.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
@@ -1430,8 +1427,8 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
namespace history {
struct HistoryAddPageArgs;
@@ -54,6 +56,11 @@ class HistoryTabHelper
void SetAppId(const std::string& app_id) { app_id_ = app_id; }
@@ -59,6 +61,11 @@ class HistoryTabHelper
std::optional<std::string> GetAppId() { return app_id_; }
#endif
+ static void RegisterProfilePrefs(PrefRegistrySimple* registry);
@@ -1442,7 +1439,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>;
@@ -91,9 +98,6 @@ class HistoryTabHelper
@@ -101,9 +108,6 @@ class HistoryTabHelper
void OnLanguageDetermined(
const translate::LanguageDetectionDetails& details) override;
@@ -1465,7 +1462,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/android/chrome_jni_headers/OfflinePageBridge_jni.h"
@@ -757,9 +760,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
@@ -731,9 +734,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
}
if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) {
@@ -1750,7 +1747,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
@@ -256,6 +256,7 @@
@@ -254,6 +254,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -1758,7 +1755,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"
@@ -2142,6 +2143,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2061,6 +2062,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1844,7 +1841,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
/** An interface for pages that will be using Android views instead of html/rendered Web content. */
@NullMarked
public interface NativePage {
@@ -179,7 +181,8 @@ public interface NativePage {
@@ -187,7 +189,8 @@ public interface NativePage {
*/
static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean hasPdfDownload) {
return url != null
@@ -1854,7 +1851,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -189,7 +192,7 @@ public interface NativePage {
@@ -197,7 +200,7 @@ public interface NativePage {
* not have chrome or chrome-native scheme.
*/
static boolean isChromePageUrl(GURL url, boolean isIncognito) {
@@ -1863,7 +1860,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -201,11 +204,12 @@ public interface NativePage {
@@ -209,11 +212,12 @@ public interface NativePage {
*/
// TODO(crbug.com/40549331) - Convert to using GURL.
static @NativePageType int nativePageType(
@@ -1878,7 +1875,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -219,7 +223,8 @@ public interface NativePage {
@@ -227,7 +231,8 @@ public interface NativePage {
GURL url,
@Nullable NativePage candidatePage,
boolean isIncognito,
@@ -1888,7 +1885,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
if (hasPdfDownload) {
// For navigation with associated pdf download (e.g. open a pdf link), pdf page should
// be created.
@@ -237,7 +242,7 @@ public interface NativePage {
@@ -245,7 +250,7 @@ public interface NativePage {
// created after the pdf document is re-downloaded in other parts of the code.
return NativePageType.NONE;
} else {
@@ -1897,7 +1894,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
}
@@ -249,7 +254,7 @@ public interface NativePage {
@@ -257,7 +262,7 @@ public interface NativePage {
* which do not have chrome or chrome-native scheme.
*/
private static @NativePageType int chromePageType(
@@ -1906,7 +1903,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
String host = url.getHost();
String scheme = url.getScheme();
if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme)
@@ -269,7 +274,8 @@ public interface NativePage {
@@ -277,7 +282,8 @@ public interface NativePage {
return NativePageType.DOWNLOADS;
} else if (UrlConstants.HISTORY_HOST.equals(host)) {
return NativePageType.HISTORY;
@@ -1919,7 +1916,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -91,6 +91,11 @@ import org.chromium.ui.base.WindowAndroid;
@@ -92,6 +92,11 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.interpolators.Interpolators;
import org.chromium.url.GURL;
@@ -1931,25 +1928,20 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.ArrayList;
import java.util.List;
import java.util.function.BooleanSupplier;
@@ -1300,10 +1305,13 @@ class LocationBarMediator
}
@@ -419,6 +424,9 @@ class LocationBarMediator
if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return;
Tab tab = mLocationBarDataProvider.getTab();
if (tab == null) return false;
if (tab == null) return;
+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile());
+ boolean historyEnabledInIncognito =
+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED);
// The save offline button should not be shown on native pages. Currently, trying to
// save an offline page in incognito crashes, so don't show it on incognito either.
return shouldShowPageActionButtons()
- && (!tab.isOffTheRecord()
+ && (!tab.isOffTheRecord() || historyEnabledInIncognito
|| ChromeFeatureList.isEnabled(
ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD));
}
boolean onNtp = UrlUtilities.isNtpUrl(tab.getUrl());
if (ChromeAccessibilityUtil.get().isAccessibilityEnabled()
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
@@ -6796,6 +6796,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -6554,6 +6554,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>
@@ -2073,7 +2065,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
@@ -4090,6 +4090,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -4108,6 +4108,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2089,7 +2081,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
@@ -111,10 +111,12 @@ void PrefProvider::RegisterProfilePrefs(
@@ -114,10 +114,12 @@ void PrefProvider::RegisterProfilePrefs(
PrefProvider::PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2102,7 +2094,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
store_last_modified_(store_last_modified),
clock_(base::DefaultClock::GetInstance()) {
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
@@ -137,11 +139,13 @@ PrefProvider::PrefProvider(PrefService* prefs,
@@ -140,11 +142,13 @@ PrefProvider::PrefProvider(PrefService* prefs,
WebsiteSettingsRegistry* website_settings =
WebsiteSettingsRegistry::GetInstance();
for (const WebsiteSettingsInfo* info : *website_settings) {
@@ -2139,7 +2131,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -269,6 +269,7 @@ struct ContentSettingEntry {
@@ -287,6 +287,7 @@ struct ContentSettingEntry {
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
bool is_off_the_record,
@@ -2147,7 +2139,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics)
@@ -278,6 +279,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -296,6 +297,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
#endif
prefs_(prefs),
is_off_the_record_(is_off_the_record),
@@ -2155,7 +2147,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
store_last_modified_(store_last_modified),
allow_invalid_secondary_pattern_for_testing_(false),
clock_(base::DefaultClock::GetInstance()) {
@@ -291,7 +293,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
policy_provider->AddObserver(this);
auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
@@ -2167,7 +2159,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h
--- a/components/content_settings/core/browser/host_content_settings_map.h
+++ b/components/content_settings/core/browser/host_content_settings_map.h
@@ -83,6 +83,7 @@ class HostContentSettingsMap : public content_settings::Observer,
@@ -84,6 +84,7 @@ class HostContentSettingsMap : public content_settings::Observer,
// profile or a guest session.
HostContentSettingsMap(PrefService* prefs,
bool is_off_the_record,
@@ -2175,7 +2167,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics);
@@ -511,6 +512,8 @@ class HostContentSettingsMap : public content_settings::Observer,
@@ -544,6 +545,8 @@ class HostContentSettingsMap : public content_settings::Observer,
// Whether this settings map is for an incognito or guest session.
bool is_off_the_record_;
@@ -2187,7 +2179,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc
--- a/components/omnibox/browser/autocomplete_provider_client.cc
+++ b/components/omnibox/browser/autocomplete_provider_client.cc
@@ -65,3 +65,7 @@ base::WeakPtr<AutocompleteProviderClient>
@@ -66,3 +66,7 @@ base::WeakPtr<AutocompleteProviderClient>
AutocompleteProviderClient::GetWeakPtr() {
return nullptr;
}
@@ -2198,7 +2190,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon
diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h
--- a/components/omnibox/browser/autocomplete_provider_client.h
+++ b/components/omnibox/browser/autocomplete_provider_client.h
@@ -152,6 +152,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
@@ -154,6 +154,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client {
virtual bool IsOffTheRecord() const = 0;
virtual bool IsIncognitoProfile() const = 0;
virtual bool IsGuestSession() const = 0;
@@ -2209,7 +2201,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
--- a/components/omnibox/browser/base_search_provider.cc
+++ b/components/omnibox/browser/base_search_provider.cc
@@ -413,7 +413,7 @@ bool BaseSearchProvider::CanSendSuggestRequest(
@@ -431,7 +431,7 @@ bool BaseSearchProvider::CanSendSuggestRequest(
// Don't make a suggest request if in incognito mode; unless for the Lens
// searchboxes.
@@ -2221,7 +2213,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -915,7 +915,8 @@ std::unique_ptr<network::SimpleURLLoader> SearchProvider::CreateSuggestLoader(
@@ -916,7 +916,8 @@ std::unique_ptr<network::SimpleURLLoader> SearchProvider::CreateSuggestLoader(
// is required.
// Request for suggestions in OTR contexts is not allowed; except for the Lens
// searchboxes.
@@ -37,9 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../preferences/ChromePreferenceKeys.java | 3 +
.../strings/android_chrome_strings.grd | 18 ++
chrome/common/BUILD.gn | 3 +
chrome/utility/BUILD.gn | 7 +-
.../utility/importer/bookmark_html_reader.cc | 28 +-
.../utility/importer/bookmark_html_reader.h | 8 +
chrome/utility/BUILD.gn | 5 +
.../headless_select_file_dialog.cc | 4 +
.../add-bookmark-import-export-actions.inc | 12 +
.../add-bookmark-import-export-actions.inc | 4 +
@@ -52,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
ui/shell_dialogs/select_file_dialog_linux.cc | 4 +
ui/shell_dialogs/select_file_dialog_linux.h | 2 +
ui/shell_dialogs/select_file_dialog_win.cc | 5 +
41 files changed, 905 insertions(+), 29 deletions(-)
39 files changed, 872 insertions(+), 24 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc
@@ -103,8 +101,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -55,7 +56,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
* {@link ChromeTabbedActivity}.
@@ -60,7 +61,7 @@ import java.util.List;
* ChromeTabbedActivity}.
*/
public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
- private final Activity mActivity;
@@ -112,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
@@ -85,7 +86,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -91,7 +92,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private NativePageFactory mNativePageFactory;
public TabbedModeTabDelegateFactory(
@@ -208,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
@@ -62,7 +63,7 @@ import org.chromium.ui.util.ColorUtils;
@@ -63,7 +64,7 @@ import org.chromium.ui.util.ColorUtils;
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
*/
public class NativePageFactory {
@@ -217,7 +215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final BrowserControlsManager mBrowserControlsManager;
private final Supplier<Tab> mCurrentTabSupplier;
@@ -85,7 +86,7 @@ public class NativePageFactory {
@@ -87,7 +88,7 @@ public class NativePageFactory {
private static NativePage sTestPage;
public NativePageFactory(
@@ -226,7 +224,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
@NonNull BottomSheetController sheetController,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull Supplier<Tab> currentTabSupplier,
@@ -157,7 +158,7 @@ public class NativePageFactory {
@@ -162,7 +163,7 @@ public class NativePageFactory {
@VisibleForTesting
static class NativePageBuilder {
@@ -235,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final Supplier<NewTabPageCreationTracker> mNewTabPageCreationTracker;
private final BrowserControlsManager mBrowserControlsManager;
@@ -262,7 +263,7 @@ public class NativePageFactory {
@@ -271,7 +272,7 @@ public class NativePageFactory {
mBrowserControlsManager,
mTabModelSelector,
mEdgeToEdgeControllerSupplier),
@@ -247,7 +245,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -248,6 +248,8 @@ static_library("browser") {
@@ -245,6 +245,8 @@ static_library("browser") {
"bluetooth/chrome_bluetooth_delegate_impl_client.h",
"bookmarks/bookmark_model_factory.cc",
"bookmarks/bookmark_model_factory.h",
@@ -256,7 +254,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bookmarks/chrome_bookmark_client.cc",
"bookmarks/chrome_bookmark_client.h",
"bookmarks/managed_bookmark_service_factory.cc",
@@ -1760,6 +1762,13 @@ static_library("browser") {
@@ -1721,6 +1723,13 @@ static_library("browser") {
]
}
@@ -270,7 +268,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
@@ -3684,8 +3693,6 @@ static_library("browser") {
@@ -3697,8 +3706,6 @@ static_library("browser") {
"bookmarks/bookmark_expanded_state_tracker.h",
"bookmarks/bookmark_expanded_state_tracker_factory.cc",
"bookmarks/bookmark_expanded_state_tracker_factory.h",
@@ -637,7 +635,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
void GetAllFoldersWithDepths(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& j_folders_obj,
@@ -390,6 +411,8 @@ class BookmarkBridge : public ProfileObserver,
@@ -385,6 +406,8 @@ class BookmarkBridge : public ProfileObserver,
void CreateOrDestroyAccountReadingListManagerIfNeeded();
const raw_ptr<Profile> profile_; // weak
@@ -646,7 +644,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
base::android::ScopedJavaGlobalRef<jobject> java_bookmark_model_;
const raw_ptr<bookmarks::BookmarkModel> bookmark_model_; // weak
const raw_ptr<bookmarks::ManagedBookmarkService>
@@ -404,6 +427,7 @@ class BookmarkBridge : public ProfileObserver,
@@ -399,6 +422,7 @@ class BookmarkBridge : public ProfileObserver,
std::unique_ptr<bookmarks::ScopedGroupBookmarkActions>
grouped_bookmark_actions_;
PrefChangeRegistrar pref_change_registrar_;
@@ -654,7 +652,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
// Information about the Partner bookmarks (must check for IsLoaded()).
// This is owned by profile.
@@ -437,6 +461,10 @@ class BookmarkBridge : public ProfileObserver,
@@ -432,6 +456,10 @@ class BookmarkBridge : public ProfileObserver,
base::TimeTicks load_start_time_;
bool loading_notification_sent_ = false;
@@ -724,7 +722,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/**
* Synchronously gets a list of bookmarks that match the specified search query.
*
@@ -1124,6 +1159,10 @@ class BookmarkBridge {
@@ -1108,6 +1143,10 @@ class BookmarkBridge {
void getChildIds(
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
@@ -784,7 +782,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
@@ -62,6 +62,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver;
@@ -63,6 +63,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.power_bookmarks.PowerBookmarkMeta;
import org.chromium.components.power_bookmarks.PowerBookmarkType;
@@ -793,7 +791,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
import org.chromium.ui.accessibility.AccessibilityState;
import org.chromium.ui.listmenu.ListMenu;
import org.chromium.ui.listmenu.ListMenuItemProperties;
@@ -80,6 +82,47 @@ import java.util.function.BooleanSupplier;
@@ -81,6 +83,47 @@ import java.util.function.BooleanSupplier;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -841,7 +839,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** Responsible for BookmarkManager business logic. */
// TODO(crbug.com/40256938): Remove BookmarkDelegate if possible.
@NullMarked
@@ -90,6 +133,9 @@ class BookmarkManagerMediator
@@ -91,6 +134,9 @@ class BookmarkManagerMediator
private static boolean sPreventLoadingForTesting;
@@ -851,7 +849,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** Keeps track of whether drag is enabled / active for bookmark lists. */
private class BookmarkDragStateDelegate implements DragStateDelegate {
private BookmarkDelegate mBookmarkDelegate;
@@ -596,6 +642,14 @@ class BookmarkManagerMediator
@@ -597,6 +643,14 @@ class BookmarkManagerMediator
mNativePage = nativePage;
}
@@ -866,7 +864,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** See BookmarkManager(Coordinator)#updateForUrl */
void updateForUrl(String url) {
// Bookmark model is null if the manager has been destroyed.
@@ -768,6 +822,235 @@ class BookmarkManagerMediator
@@ -769,6 +823,235 @@ class BookmarkManagerMediator
}
}
@@ -1196,7 +1194,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -140,6 +140,10 @@ class BookmarkToolbarMediator
@@ -139,6 +139,10 @@ class BookmarkToolbarMediator
mBookmarkDelegate = bookmarkDelegate;
mModel.set(
BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack);
@@ -1315,7 +1313,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
private boolean mLocationDialogManaged;
@@ -153,7 +153,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
@@ -154,7 +154,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
* Called after retrieved the download directory options.
* @param dirs An list of available download directories.
*/
@@ -1327,18 +1325,18 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -236,6 +236,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -251,6 +251,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kBatchTabRestore,
&kBlockIntentsWhileLocked,
&kBookmarkPaneAndroid,
+ &kBookmarksExportUseSaf,
&kBottomBrowserControlsRefactor,
&kTabClosureMethodRefactor,
&kBrowserControlsDebugging,
&kBrowserControlsEarlyResize,
&kCacheActivityTaskID,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -662,6 +662,7 @@ public abstract class ChromeFeatureList {
@@ -689,6 +689,7 @@ public abstract class ChromeFeatureList {
public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID =
"UseLibunwindstackNativeUnwinderAndroid";
public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService";
@@ -1401,7 +1399,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/** Whether Chrome is set as the default browser. Default value is false. */
public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser";
@@ -1008,6 +1010,7 @@ public final class ChromePreferenceKeys {
@@ -1017,6 +1019,7 @@ public final class ChromePreferenceKeys {
AUXILIARY_SEARCH_SCHEMA_VERSION,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1440,7 +1438,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -352,6 +352,9 @@ static_library("common_lib") {
@@ -339,6 +339,9 @@ static_library("common_lib") {
"chrome_descriptors_android.h",
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@@ -1453,16 +1451,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
--- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn
@@ -88,8 +88,6 @@ static_library("utility") {
if (!is_android) {
sources += [
- "importer/bookmark_html_reader.cc",
- "importer/bookmark_html_reader.h",
"importer/bookmarks_file_importer.cc",
"importer/bookmarks_file_importer.h",
"importer/external_process_importer_bridge.cc",
@@ -222,6 +220,11 @@ static_library("utility") {
@@ -222,6 +222,11 @@ static_library("utility") {
deps += [ "//chrome/services/pdf:lib" ]
}
@@ -1474,107 +1463,6 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
# NSS decryptor is not needed on ChromeOS.
if (!is_chromeos && use_nss_certs) {
sources += [
diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/importer/bookmark_html_reader.cc
--- a/chrome/utility/importer/bookmark_html_reader.cc
+++ b/chrome/utility/importer/bookmark_html_reader.cc
@@ -16,7 +16,9 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
+#if !BUILDFLAG(IS_ANDROID)
#include "chrome/utility/importer/favicon_reencode.h"
+#endif
#include "components/search_engines/search_terms_data.h"
#include "components/search_engines/template_url.h"
#include "components/user_data_importer/common/imported_bookmark_entry.h"
@@ -55,6 +57,7 @@ bool GetAttribute(const std::string& attribute_list,
return true;
}
+#if !BUILDFLAG(IS_ANDROID)
// Given the URL of a page and a favicon data URL, adds an appropriate record
// to the given favicon usage vector.
void DataURLToFaviconUsage(const GURL& link_url,
@@ -88,6 +91,7 @@ void DataURLToFaviconUsage(const GURL& link_url,
favicons->push_back(usage);
}
+#endif
} // namespace
@@ -108,14 +112,29 @@ static std::string stripDt(const std::string& lineDt) {
}
void ImportBookmarksFile(
- base::RepeatingCallback<bool(void)> cancellation_callback,
- base::RepeatingCallback<bool(const GURL&)> valid_url_callback,
+ const base::RepeatingCallback<bool(void)> cancellation_callback,
+ const base::RepeatingCallback<bool(const GURL&)> valid_url_callback,
const base::FilePath& file_path,
std::vector<user_data_importer::ImportedBookmarkEntry>* bookmarks,
std::vector<user_data_importer::SearchEngineInfo>* search_engines,
favicon_base::FaviconUsageDataList* favicons) {
std::string content;
- base::ReadFileToString(file_path, &content);
+ if (!base::ReadFileToString(file_path, &content)) {
+ LOG(ERROR) << "Could not directly read bookmarks import file";
+ return;
+ }
+
+ ImportBookmarksFile(cancellation_callback, valid_url_callback,
+ content, bookmarks, search_engines, favicons);
+}
+
+void ImportBookmarksFile(
+ base::RepeatingCallback<bool(void)> cancellation_callback,
+ base::RepeatingCallback<bool(const GURL&)> valid_url_callback,
+ const std::string& content,
+ std::vector<user_data_importer::ImportedBookmarkEntry>* bookmarks,
+ std::vector<user_data_importer::SearchEngineInfo>* search_engines,
+ favicon_base::FaviconUsageDataList* favicons) {
std::vector<std::string> lines = base::SplitString(
content, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
@@ -128,6 +147,7 @@ void ImportBookmarksFile(
std::vector<std::u16string> path;
size_t toolbar_folder_index = 0;
std::string charset = "UTF-8"; // If no charset is specified, assume utf-8.
+
for (size_t i = 0;
i < lines.size() &&
(cancellation_callback.is_null() || !cancellation_callback.Run());
@@ -219,10 +239,12 @@ void ImportBookmarksFile(
}
bookmarks->push_back(entry);
+#if !BUILDFLAG(IS_ANDROID)
// Save the favicon. DataURLToFaviconUsage will handle the case where
// there is no favicon.
if (favicons)
DataURLToFaviconUsage(url, favicon, favicons);
+#endif
continue;
}
diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/importer/bookmark_html_reader.h
--- a/chrome/utility/importer/bookmark_html_reader.h
+++ b/chrome/utility/importer/bookmark_html_reader.h
@@ -53,6 +53,14 @@ void ImportBookmarksFile(
std::vector<user_data_importer::SearchEngineInfo>* search_engines,
favicon_base::FaviconUsageDataList* favicons);
+void ImportBookmarksFile(
+ const base::RepeatingCallback<bool(void)> cancellation_callback,
+ const base::RepeatingCallback<bool(const GURL&)> valid_url_callback,
+ const std::string& content,
+ std::vector<user_data_importer::ImportedBookmarkEntry>* bookmarks,
+ std::vector<user_data_importer::SearchEngineInfo>* search_engines,
+ favicon_base::FaviconUsageDataList* favicons);
+
// Returns true if |url| should be imported as a search engine, i.e. because it
// has replacement terms. Chrome treats such bookmarks as search engines rather
// than true bookmarks.
diff --git a/components/headless/select_file_dialog/headless_select_file_dialog.cc b/components/headless/select_file_dialog/headless_select_file_dialog.cc
--- a/components/headless/select_file_dialog/headless_select_file_dialog.cc
+++ b/components/headless/select_file_dialog/headless_select_file_dialog.cc
@@ -1732,7 +1620,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
--- a/ui/shell_dialogs/select_file_dialog_android.cc
+++ b/ui/shell_dialogs/select_file_dialog_android.cc
@@ -175,6 +175,12 @@ void SelectFileDialogImpl::SelectFileImpl(
@@ -171,6 +171,12 @@ void SelectFileDialogImpl::SelectFileImpl(Type type,
owning_window->GetJavaObject());
}
@@ -1748,7 +1636,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/s
diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/select_file_dialog_android.h
--- a/ui/shell_dialogs/select_file_dialog_android.h
+++ b/ui/shell_dialogs/select_file_dialog_android.h
@@ -53,6 +53,8 @@ class SelectFileDialogImpl : public SelectFileDialog {
@@ -49,6 +49,8 @@ class SelectFileDialogImpl : public SelectFileDialog {
gfx::NativeWindow owning_window,
const GURL* caller) override;
@@ -52,18 +52,17 @@ See also: https://github.com/bromite/bromite/issues/1549
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
---
.../permissions/last_tab_standing_tracker.cc | 32 ++++++++
.../one_time_permissions_tracker.cc | 33 +++++++-
.../permissions/last_tab_standing_tracker.cc | 33 ++++++++
.../one_time_permissions_tracker.cc | 34 +++++++-
.../one_time_permissions_tracker.h | 5 +-
.../one_time_permissions_tracker_factory.cc | 2 +-
.../views/permissions/chip/chip_controller.cc | 2 +-
...exclusive_access_permission_prompt_view.cc | 2 +-
.../permission_prompt_bubble_base_view.cc | 2 +-
.../site_settings/PermissionInfo.java | 1 +
.../site_settings/SingleWebsiteSettings.java | 9 ++
.../android/website_preference_bridge.cc | 2 +-
.../strings/android/browser_ui_strings.grd | 5 ++
.../core/browser/content_settings_utils.cc | 42 ++++++++--
.../core/browser/content_settings_utils.cc | 44 ++++++++--
.../core/browser/content_settings_utils.h | 6 ++
.../core/common/content_settings_enums.mojom | 9 ++
.../page_info/PageInfoController.java | 4 +-
@@ -72,7 +71,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/page_info/page_info.cc | 2 +
components/page_info/page_info.h | 1 +
.../permissions/PermissionDialogDelegate.java | 13 +++
.../PermissionDialogModelFactory.java | 82 ++++++++++++++++++-
.../PermissionDialogModelFactory.java | 83 ++++++++++++++++++-
.../embedded_permission_prompt_android.cc | 3 +-
.../embedded_permission_prompt_android.h | 2 +-
.../permission_dialog_delegate.cc | 24 +++++-
@@ -80,17 +79,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../permission_prompt_android.cc | 8 +-
.../permission_prompt_android.h | 3 +-
.../android/permissions_android_strings.grd | 17 ++++
.../geolocation_permission_context_android.cc | 30 +++++--
.../geolocation_permission_context_android.cc | 27 ++++--
.../geolocation_permission_context_android.h | 10 ++-
.../embedded_permission_prompt_flow_model.cc | 2 +-
.../permissions/permission_context_base.cc | 64 +++++++++++++--
.../permissions/permission_context_base.cc | 64 ++++++++++++--
.../permissions/permission_context_base.h | 26 +++++-
components/permissions/permission_prompt.h | 3 +-
components/permissions/permission_request.cc | 34 +++++++-
components/permissions/permission_request.h | 18 +++-
.../permissions/permission_request_manager.cc | 45 ++++++----
.../permissions/permission_request_manager.h | 11 ++-
38 files changed, 506 insertions(+), 72 deletions(-)
37 files changed, 506 insertions(+), 73 deletions(-)
diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
--- a/chrome/browser/permissions/last_tab_standing_tracker.cc
@@ -128,13 +127,14 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br
LastTabStandingTracker::LastTabStandingTracker(content::BrowserContext* context)
: context_(context) {}
@@ -56,4 +82,10 @@ void LastTabStandingTracker::WebContentsUnloadedOrigin(
@@ -56,4 +82,11 @@ void LastTabStandingTracker::WebContentsUnloadedOrigin(
for (auto& observer : observer_list_) {
observer.OnLastPageFromOriginClosed(origin);
}
+ HostContentSettingsMap* content_settings =
+ permissions::PermissionsClient::Get()->GetSettingsMap(context_);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION_WITH_OPTIONS);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_MIC);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_CAMERA);
+ }
@@ -178,13 +178,14 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome
OneTimePermissionsTracker::~OneTimePermissionsTracker() = default;
OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default;
@@ -254,6 +280,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed(
@@ -254,6 +280,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed(
for (auto& observer : observer_list_) {
observer.OnLastPageFromOriginClosed(origin);
}
+ HostContentSettingsMap* content_settings =
+ permissions::PermissionsClient::Get()->GetSettingsMap(context_);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::GEOLOCATION_WITH_OPTIONS);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_MIC);
+ RemoveSessionSettings(content_settings, origin, ContentSettingsType::MEDIASTREAM_CAMERA);
}
@@ -232,7 +233,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc
diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrome/browser/ui/views/permissions/chip/chip_controller.cc
--- a/chrome/browser/ui/views/permissions/chip/chip_controller.cc
+++ b/chrome/browser/ui/views/permissions/chip/chip_controller.cc
@@ -224,7 +224,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) {
@@ -227,7 +227,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) {
active_chip_permission_request_manager_.value()->Accept();
break;
case permissions::PermissionAction::GRANTED_ONCE:
@@ -256,7 +257,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
@@ -297,7 +297,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
@@ -294,7 +294,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
delegate_->Accept();
return;
case PermissionDialogButton::kAcceptOnce:
@@ -265,21 +266,10 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v
return;
case PermissionDialogButton::kDeny:
#if BUILDFLAG(IS_CHROMEOS)
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
@@ -12,6 +12,7 @@ import org.chromium.components.content_settings.SessionModel;
import org.chromium.components.permissions.PermissionsAndroidFeatureList;
import org.chromium.components.permissions.PermissionsAndroidFeatureMap;
import org.chromium.content_public.browser.BrowserContextHandle;
+import org.chromium.components.content_settings.SessionModel;
import java.io.Serializable;
import java.util.Objects;
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
@@ -620,6 +620,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -630,6 +630,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
@RequiresNonNull({"mSite"})
@@ -291,9 +281,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void setUpClearDataPreference() {
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
long usage = mSite.getTotalUsage();
@@ -1292,6 +1297,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
.getDefaultColor());
@@ -1316,6 +1321,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
.getDefaultColor());
}
}
+ if (isSessionPermission(contentType)) {
+ switchPreference.setSummary(switchPreference.getSummary() + " " +
@@ -305,7 +295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
@@ -209,7 +209,7 @@ void GetOrigins(JNIEnv* env,
@@ -218,7 +218,7 @@ void GetOrigins(JNIEnv* env,
seen_origins.push_back(origin);
insertionFunc(env, static_cast<int>(content_type), list,
ConvertOriginToJavaString(env, origin), jembedder,
@@ -317,7 +307,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
@@ -643,6 +643,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>
@@ -332,7 +322,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
--- a/components/content_settings/core/browser/content_settings_utils.cc
+++ b/components/content_settings/core/browser/content_settings_utils.cc
@@ -157,6 +157,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) {
@@ -182,6 +182,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) {
return constraints.session_model() == mojom::SessionModel::DURABLE;
}
@@ -373,23 +363,25 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
+}
+
bool CanTrackLastVisit(ContentSettingsType type) {
// Last visit is not tracked for notification permission as it shouldn't be
// auto-revoked.
@@ -240,9 +276,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrants() {
DCHECK(WebsiteSettingsRegistry::GetInstance()->Get(type)) << type;
@@ -261,10 +297,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrants() {
ContentSettingsType::CAPTURED_SURFACE_CONTROL,
#endif
ContentSettingsType::KEYBOARD_LOCK,
- ContentSettingsType::GEOLOCATION,
- ContentSettingsType::GEOLOCATION_WITH_OPTIONS,
- ContentSettingsType::MEDIASTREAM_MIC,
- ContentSettingsType::MEDIASTREAM_CAMERA,
ContentSettingsType::HAND_TRACKING,
ContentSettingsType::SMART_CARD_DATA,
ContentSettingsType::AR,
@@ -258,9 +291,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrantsInHcsm() {
@@ -280,10 +312,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrantsInHcsm() {
ContentSettingsType::CAPTURED_SURFACE_CONTROL,
#endif
ContentSettingsType::KEYBOARD_LOCK,
- ContentSettingsType::GEOLOCATION,
- ContentSettingsType::GEOLOCATION_WITH_OPTIONS,
- ContentSettingsType::MEDIASTREAM_MIC,
- ContentSettingsType::MEDIASTREAM_CAMERA,
ContentSettingsType::HAND_TRACKING,
@@ -398,7 +390,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
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
@@ -73,6 +73,12 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints);
@@ -78,6 +78,12 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints);
// Returns whether the given type supports tracking last_visit timestamps.
bool CanTrackLastVisit(ContentSettingsType type);
@@ -433,7 +425,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
@@ -367,9 +367,9 @@ public class PageInfoController
@@ -378,9 +378,9 @@ public class PageInfoController
String name,
String nameMidSentence,
int type,
@@ -491,7 +483,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
--- a/components/page_info/android/page_info_controller_android.cc
+++ b/components/page_info/android/page_info_controller_android.cc
@@ -171,6 +171,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -186,6 +186,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
std::map<ContentSettingsType, ContentSetting>
user_specified_settings_to_display;
@@ -500,7 +492,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
for (const auto& permission : permission_info_list) {
if (base::Contains(permissions_to_display, permission.type)) {
@@ -179,6 +181,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -194,6 +196,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
if (setting_to_display) {
user_specified_settings_to_display[permission.type] =
*setting_to_display;
@@ -509,7 +501,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
}
}
}
@@ -195,7 +199,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -210,7 +214,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
ConvertUTF16ToJavaString(env, setting_title),
ConvertUTF16ToJavaString(env, setting_title_mid_sentence),
static_cast<jint>(permission),
@@ -519,7 +511,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
}
}
@@ -208,7 +213,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -223,7 +228,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title),
ConvertUTF16ToJavaString(env, object_title),
static_cast<jint>(chosen_object->ui_info->content_settings_type),
@@ -532,7 +524,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
@@ -1253,6 +1253,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1256,6 +1256,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
permission_info.is_one_time =
(info.metadata.session_model() ==
content_settings::mojom::SessionModel::ONE_TIME);
@@ -544,7 +536,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,
@@ -151,6 +151,7 @@ class PageInfo : private content_settings::CookieControlsObserver,
content_settings::SettingSource::kNone;
// Whether the permission is a one-time grant.
bool is_one_time = false;
@@ -555,15 +547,15 @@ diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
@@ -16,6 +16,7 @@ import org.chromium.build.annotations.NullMarked;
@@ -16,6 +16,7 @@ import org.jni_zero.NativeMethods;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.content_settings.ContentSettingsType;
import org.chromium.ui.base.WindowAndroid;
+import org.chromium.components.content_settings.LifetimeMode;
import java.util.ArrayList;
import java.util.Arrays;
@@ -72,6 +73,9 @@ public class PermissionDialogDelegate {
import java.util.List;
@@ -67,6 +68,9 @@ public class PermissionDialogDelegate {
// Prompt(screen) variant we want to display on the dialog.
private @EmbeddedPromptVariant int mEmbeddedPromptVariant;
@@ -573,8 +565,8 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
/**
* Defines a (potentially empty) list of ranges represented as pairs of <startIndex, endIndex>,
* which shall be used by the UI to format the specified ranges as bold text.
@@ -145,6 +149,15 @@ public class PermissionDialogDelegate {
.acceptThisTime(mNativeDelegatePtr, PermissionDialogDelegate.this);
@@ -139,6 +143,15 @@ public class PermissionDialogDelegate {
PermissionDialogDelegateJni.get().acceptThisTime(mNativeDelegatePtr);
}
+ public void setSelectedLifetimeOption(int idx) {
@@ -588,7 +580,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
+
public void onDeny() {
assert mNativeDelegatePtr != 0;
PermissionDialogDelegateJni.get().deny(mNativeDelegatePtr, PermissionDialogDelegate.this);
PermissionDialogDelegateJni.get().deny(mNativeDelegatePtr);
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java
@@ -611,7 +603,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
/** This class creates the model for the permission dialog. */
@NullMarked
class PermissionDialogModelFactory {
@@ -67,7 +79,75 @@ class PermissionDialogModelFactory {
@@ -67,7 +79,76 @@ class PermissionDialogModelFactory {
ModalDialogProperties.ButtonStyles.PRIMARY_FILLED_NEGATIVE_OUTLINE)
.with(ModalDialogProperties.CHANGE_CUSTOM_VIEW_OR_BUTTONS, true);
}
@@ -620,6 +612,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
+ PropertyModel pm = builder.build();
+ int[] types = delegate.getContentSettingsTypes();
+ if (contains(types, ContentSettingsType.GEOLOCATION) ||
+ contains(types, ContentSettingsType.GEOLOCATION_WITH_OPTIONS) ||
+ contains(types, ContentSettingsType.MEDIASTREAM_MIC) ||
+ contains(types, ContentSettingsType.MEDIASTREAM_CAMERA))
+ {
@@ -691,7 +684,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
@@ -119,7 +119,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() {
@@ -118,7 +118,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() {
delegate()->FinalizeCurrentRequests();
}
@@ -716,7 +709,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
@@ -139,6 +139,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() {
@@ -137,6 +137,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() {
static_cast<int>(permission_prompt_->GetEmbeddedPromptVariant()));
}
@@ -728,9 +721,9 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
// static
std::unique_ptr<PermissionDialogDelegate> PermissionDialogDelegate::Create(
content::WebContents* web_contents,
@@ -168,6 +173,13 @@ PermissionDialogDelegate::CreateForTesting(
void PermissionDialogDelegate::Accept(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
@@ -165,12 +170,22 @@ PermissionDialogDelegate::CreateForTesting(
void PermissionDialogDelegate::Accept(JNIEnv* env) {
CHECK(permission_prompt_);
+ content_settings::mojom::LifetimeMode lifetimeOption =
+ static_cast<content_settings::mojom::LifetimeMode>(
@@ -742,9 +735,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
permission_prompt_->Accept();
}
@@ -175,7 +187,10 @@ void PermissionDialogDelegate::AcceptThisTime(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
void PermissionDialogDelegate::AcceptThisTime(JNIEnv* env) {
CHECK(permission_prompt_);
- permission_prompt_->AcceptThisTime();
+ content_settings::mojom::LifetimeMode lifetimeOption =
@@ -753,10 +744,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
+ permission_prompt_->AcceptThisTime(lifetimeOption);
}
void PermissionDialogDelegate::Acknowledge(JNIEnv* env,
@@ -187,6 +202,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env,
void PermissionDialogDelegate::Deny(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
void PermissionDialogDelegate::Acknowledge(JNIEnv* env) {
@@ -180,6 +195,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env) {
void PermissionDialogDelegate::Deny(JNIEnv* env) {
CHECK(permission_prompt_);
+ content_settings::mojom::LifetimeMode lifetimeOption =
+ static_cast<content_settings::mojom::LifetimeMode>(
@@ -782,7 +773,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc
--- a/components/permissions/android/permission_prompt/permission_prompt_android.cc
+++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc
@@ -84,8 +84,12 @@ void PermissionPromptAndroid::Accept() {
@@ -85,8 +85,12 @@ void PermissionPromptAndroid::Accept() {
delegate_->Accept();
}
@@ -861,73 +852,71 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
bool is_default_search =
IsRequestingOriginDSE(request_data.requesting_origin);
if (decision == PermissionDecision::kAllow &&
@@ -209,7 +220,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin,
@@ -210,7 +221,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
request_data.embedding_origin,
std::move(callback), false /* persist */,
- PermissionDecision::kDeny);
+ PermissionDecision::kDeny, lifetime_option);
PermissionDecision::kDeny,
- request_data.prompt_options);
+ request_data.prompt_options, lifetime_option);
return;
}
@@ -229,7 +240,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin,
@@ -231,7 +242,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
request_data.embedding_origin,
std::move(callback), false /* persist */,
- PermissionDecision::kDeny);
+ PermissionDecision::kDeny, lifetime_option);
PermissionDecision::kDeny,
- request_data.prompt_options);
+ request_data.prompt_options, lifetime_option);
return;
}
@@ -241,13 +252,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
base::BindOnce(
@@ -244,13 +255,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
&GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown,
weak_factory_.GetWeakPtr(), request_data.requesting_origin,
- request_data.embedding_origin, persist, decision));
+ request_data.embedding_origin, persist, decision, lifetime_option));
request_data.embedding_origin, persist, decision,
- request_data.prompt_options));
+ request_data.prompt_options, lifetime_option));
return;
}
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin,
request_data.embedding_origin, std::move(callback),
- persist, decision);
+ persist, decision, lifetime_option);
- persist, decision, request_data.prompt_options);
+ persist, decision, request_data.prompt_options, lifetime_option);
}
content::PermissionResult
@@ -424,7 +435,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
@@ -427,7 +438,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
const GURL& requesting_origin,
const GURL& embedding_origin,
bool persist,
- PermissionDecision decision,
+ PermissionDecision decision, content_settings::mojom::LifetimeMode lifetime_option,
std::optional<PromptOptions> prompt_options,
LocationSettingsDialogOutcome prompt_outcome) {
bool is_default_search = IsRequestingOriginDSE(requesting_origin);
if (prompt_outcome == GRANTED) {
@@ -442,7 +453,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
FinishNotifyPermissionSet(
location_settings_dialog_request_id_, requesting_origin, embedding_origin,
- std::move(location_settings_dialog_callback_), persist, decision);
+ std::move(location_settings_dialog_callback_), persist, decision,
+ lifetime_option);
@@ -447,7 +458,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
FinishNotifyPermissionSet(location_settings_dialog_request_id_,
requesting_origin, embedding_origin,
std::move(location_settings_dialog_callback_),
- persist, decision, prompt_options);
+ persist, decision, prompt_options, lifetime_option);
location_settings_dialog_request_id_ =
PermissionRequestID(content::GlobalRenderFrameHostId(0, 0),
@@ -455,15 +467,15 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
const GURL& embedding_origin,
@@ -461,7 +472,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
BrowserPermissionCallback callback,
bool persist,
- PermissionDecision decision) {
- GeolocationPermissionContext::NotifyPermissionSet(
+ PermissionDecision decision, content_settings::mojom::LifetimeMode lifetime_option) {
+ GeolocationPermissionContext::NotifyPermissionSetWithLifetime(
PermissionRequestData(this, id,
content::PermissionRequestDescription(
content::PermissionDescriptorUtil::
CreatePermissionDescriptorForPermissionType(
blink::PermissionType::GEOLOCATION)),
requesting_origin),
PermissionDecision decision,
- std::optional<PromptOptions> prompt_options) {
+ std::optional<PromptOptions> prompt_options, content_settings::mojom::LifetimeMode lifetime_option) {
PermissionRequestData request_data(
this, id,
content::PermissionRequestDescription(
@@ -471,7 +482,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
request_data.prompt_options = prompt_options.value_or(std::monostate());
GeolocationPermissionContext::NotifyPermissionSet(
request_data,
- std::move(callback), persist, decision, /*is_final_decision=*/true);
+ std::move(callback), persist, decision, /*is_final_decision=*/true, lifetime_option);
}
@@ -949,20 +938,20 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
content::PermissionResult UpdatePermissionStatusWithDeviceStatus(
content::WebContents* web_contents,
content::PermissionResult result,
@@ -136,6 +142,7 @@ class GeolocationPermissionContextAndroid
const GURL& embedding_origin,
@@ -137,6 +143,7 @@ class GeolocationPermissionContextAndroid
bool persist,
PermissionDecision decision,
std::optional<PromptOptions> prompt_options,
+ content_settings::mojom::LifetimeMode lifetime_option,
LocationSettingsDialogOutcome prompt_outcome);
void FinishNotifyPermissionSet(const PermissionRequestID& id,
@@ -143,7 +150,8 @@ class GeolocationPermissionContextAndroid
const GURL& embedding_origin,
@@ -145,7 +152,8 @@ class GeolocationPermissionContextAndroid
BrowserPermissionCallback callback,
bool persist,
- PermissionDecision decision);
+ PermissionDecision decision,
PermissionDecision decision,
- std::optional<PromptOptions> prompt_options);
+ std::optional<PromptOptions> prompt_options,
+ content_settings::mojom::LifetimeMode lifetime_option);
std::unique_ptr<LocationSettings> location_settings_;
@@ -982,7 +971,7 @@ 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
@@ -257,6 +257,17 @@ PermissionContextBase::CreatePermissionRequest(
@@ -260,6 +260,17 @@ PermissionContextBase::CreatePermissionRequest(
std::move(request_finished_callback), UsesAutomaticEmbargo());
}
@@ -1000,7 +989,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
bool PermissionContextBase::UsesAutomaticEmbargo() const {
return true;
}
@@ -548,7 +559,8 @@ void PermissionContextBase::DecidePermission(
@@ -551,7 +562,8 @@ void PermissionContextBase::DecidePermission(
void PermissionContextBase::PermissionDecided(
PermissionDecision decision,
bool is_final_decision,
@@ -1010,7 +999,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
UserMadePermissionDecision(request_data.id, request_data.requesting_origin,
request_data.embedding_origin, decision);
@@ -561,11 +573,12 @@ void PermissionContextBase::PermissionDecided(
@@ -564,11 +576,12 @@ void PermissionContextBase::PermissionDecided(
// missing if a permission prompt was preignored and we already notified an
// origin about it.
if (request->second.second) {
@@ -1027,7 +1016,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
}
@@ -655,6 +668,30 @@ void PermissionContextBase::NotifyPermissionSet(
@@ -653,6 +666,30 @@ void PermissionContextBase::NotifyPermissionSet(
bool persist,
PermissionDecision decision,
bool is_final_decision) {
@@ -1058,7 +1047,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
// Note that rfh may be null, see crbug.com/426909787.
@@ -670,8 +707,8 @@ void PermissionContextBase::NotifyPermissionSet(
@@ -668,8 +705,8 @@ void PermissionContextBase::NotifyPermissionSet(
if (persist) {
// Clone new value, because we need it again for the callback.
@@ -1069,9 +1058,9 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
if (is_final_decision) {
@@ -708,6 +745,17 @@ void PermissionContextBase::UpdateSetting(
@@ -706,6 +743,17 @@ void PermissionContextBase::UpdateSetting(
const PermissionRequestData& request_data,
base::Value setting,
PermissionSetting setting,
bool is_one_time) {
+ UpdateSettingImpl(request_data, std::move(setting),
+ is_one_time,
@@ -1087,7 +1076,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_EQ(request_data.requesting_origin,
request_data.requesting_origin.DeprecatedGetOriginAsURL());
DCHECK_EQ(request_data.embedding_origin,
@@ -717,6 +765,8 @@ void PermissionContextBase::UpdateSetting(
@@ -715,6 +763,8 @@ void PermissionContextBase::UpdateSetting(
constraints.set_session_model(
is_one_time ? content_settings::mojom::SessionModel::ONE_TIME
: content_settings::mojom::SessionModel::DURABLE);
@@ -1128,7 +1117,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
+ bool use_lifetime_option,
+ content_settings::mojom::LifetimeMode lifetime_option);
virtual void UpdateSetting(const PermissionRequestData& request_data,
base::Value setting,
PermissionSetting setting,
bool is_one_time);
@@ -238,6 +255,12 @@ class PermissionContextBase : public content_settings::Observer {
PermissionRequest::PermissionDecidedCallback permission_decided_callback,
@@ -1156,7 +1145,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
diff --git a/components/permissions/permission_prompt.h b/components/permissions/permission_prompt.h
--- a/components/permissions/permission_prompt.h
+++ b/components/permissions/permission_prompt.h
@@ -68,8 +68,9 @@ class PermissionPrompt {
@@ -70,8 +70,9 @@ class PermissionPrompt {
virtual GURL GetEmbeddingOrigin() const = 0;
virtual void Accept() = 0;
@@ -1170,7 +1159,7 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions
diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc
--- a/components/permissions/permission_request.cc
+++ b/components/permissions/permission_request.cc
@@ -33,6 +33,16 @@ PermissionRequest::PermissionRequest(
@@ -36,6 +36,16 @@ PermissionRequest::PermissionRequest(
request_finished_callback_(std::move(request_finished_callback)),
uses_automatic_embargo_(uses_automatic_embargo) {}
@@ -1187,7 +1176,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
PermissionRequest::~PermissionRequest() {
std::move(request_finished_callback_).Run();
}
@@ -419,20 +429,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
@@ -424,20 +434,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
return request_type() == RequestType::kStorageAccess;
}
@@ -1233,7 +1222,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h
--- a/components/permissions/permission_request.h
+++ b/components/permissions/permission_request.h
@@ -47,6 +47,12 @@ class PermissionRequest {
@@ -52,6 +52,12 @@ class PermissionRequest {
bool /*is_final_decision*/,
const PermissionRequestData& /*request_data*/)>;
@@ -1246,7 +1235,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
// `permission_decided_callback` is called when the permission request is
// resolved by the user (see comment on PermissionDecidedCallback above).
// `request_finished_callback` is called when the permission request is being
@@ -61,6 +67,11 @@ class PermissionRequest {
@@ -66,6 +72,11 @@ class PermissionRequest {
base::OnceClosure request_finished_callback = base::DoNothing(),
bool uses_automatic_embargo = true);
@@ -1258,7 +1247,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
PermissionRequest(const PermissionRequest&) = delete;
PermissionRequest& operator=(const PermissionRequest&) = delete;
@@ -167,10 +178,10 @@ class PermissionRequest {
@@ -172,10 +183,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.
@@ -1271,7 +1260,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
@@ -224,6 +235,9 @@ class PermissionRequest {
@@ -237,6 +248,9 @@ class PermissionRequest {
// Called once a decision is made about the permission.
PermissionDecidedCallback permission_decided_callback_;
@@ -1284,7 +1273,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
--- a/components/permissions/permission_request_manager.cc
+++ b/components/permissions/permission_request_manager.cc
@@ -189,7 +189,7 @@ void PermissionRequestManager::AddRequest(
@@ -198,7 +198,7 @@ void PermissionRequestManager::AddRequest(
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDenyPermissionPrompts)) {
@@ -1293,7 +1282,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
return;
}
@@ -258,7 +258,7 @@ void PermissionRequestManager::AddRequest(
@@ -267,7 +267,7 @@ void PermissionRequestManager::AddRequest(
if (should_auto_approve_request) {
if (should_auto_approve_request == PermissionAction::GRANTED) {
@@ -1302,7 +1291,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
return;
}
@@ -623,7 +623,8 @@ void PermissionRequestManager::Accept() {
@@ -626,7 +626,8 @@ void PermissionRequestManager::Accept() {
(*requests_iter)->request_type(),
PermissionAction::GRANTED);
PermissionGrantedIncludingDuplicates(requests_iter->get(),
@@ -1312,7 +1301,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
#if !BUILDFLAG(IS_ANDROID)
std::optional<ContentSettingsType> content_settings_type =
@@ -641,7 +642,7 @@ void PermissionRequestManager::Accept() {
@@ -644,7 +645,7 @@ void PermissionRequestManager::Accept() {
CurrentRequestsDecided(PermissionAction::GRANTED);
}
@@ -1321,7 +1310,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_) {
return;
}
@@ -655,7 +656,8 @@ void PermissionRequestManager::AcceptThisTime() {
@@ -658,7 +659,8 @@ void PermissionRequestManager::AcceptThisTime() {
(*requests_iter)->request_type(),
PermissionAction::GRANTED_ONCE);
PermissionGrantedIncludingDuplicates(requests_iter->get(),
@@ -1331,7 +1320,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
NotifyRequestDecided(PermissionAction::GRANTED_ONCE);
@@ -663,6 +665,15 @@ void PermissionRequestManager::AcceptThisTime() {
@@ -666,6 +668,15 @@ void PermissionRequestManager::AcceptThisTime() {
}
void PermissionRequestManager::Deny() {
@@ -1347,7 +1336,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_) {
return;
}
@@ -685,7 +696,7 @@ void PermissionRequestManager::Deny() {
@@ -688,7 +699,7 @@ void PermissionRequestManager::Deny() {
StorePermissionActionForUMA((*requests_iter)->requesting_origin(),
(*requests_iter)->request_type(),
PermissionAction::DENIED);
@@ -1411,7 +1400,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
--- a/components/permissions/permission_request_manager.h
+++ b/components/permissions/permission_request_manager.h
@@ -165,8 +165,10 @@ class PermissionRequestManager
@@ -166,8 +166,10 @@ class PermissionRequestManager
GURL GetRequestingOrigin() const override;
GURL GetEmbeddingOrigin() const override;
void Accept() override;
@@ -1423,7 +1412,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
void Dismiss() override;
void Ignore() override;
void FinalizeCurrentRequests() override;
@@ -394,9 +396,12 @@ class PermissionRequestManager
@@ -413,9 +415,12 @@ class PermissionRequestManager
// Calls PermissionGranted on a request and all its duplicates.
void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
@@ -1436,6 +1425,6 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
+ bool is_one_time,
+ content_settings::mojom::LifetimeMode lifetime_option);
// Calls Cancelled on a request and all its duplicates.
void CancelledIncludingDuplicates(PermissionRequest* request,
bool is_final_decision = true);
void CancelRequestIncludingDuplicates(PermissionRequest* request,
bool is_final_decision = true);
--
@@ -29,14 +29,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../bookmarks/browser/bookmark_uuids.cc | 3 ++
components/bookmarks/browser/bookmark_uuids.h | 1 +
components/bookmarks/browser/model_loader.cc | 9 +++-
...ookmark_model_merger_comparison_metrics.cc | 4 ++
.../bookmark_specifics_conversions.cc | 1 +
27 files changed, 259 insertions(+), 14 deletions(-)
26 files changed, 255 insertions(+), 14 deletions(-)
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml
+++ b/chrome/android/java/res/values/ids.xml
@@ -177,6 +177,7 @@ found in the LICENSE file.
@@ -180,6 +180,7 @@ found in the LICENSE file.
<item type="id" name="menu_select_tabs" />
<item type="id" name="menu_item_content_filter_divider_line_id" />
<item type="id" name="menu_item_content_filter_help_center_id" />
@@ -55,26 +54,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -276,6 +277,9 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
@@ -287,6 +288,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
import org.chromium.chrome.browser.ui.extensions.ExtensionKeybindingRegistry;
import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridgeFactory;
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin;
import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig;
@@ -285,6 +289,8 @@ import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController;
import org.chromium.chrome.browser.usage_stats.UsageStatsService;
@@ -298,6 +302,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService;
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl;
import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl;
+import org.chromium.components.bookmarks.BookmarkId;
+import org.chromium.components.bookmarks.BookmarkItem;
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;
@@ -3497,6 +3503,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3739,6 +3745,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
getTabModelSelectorSupplier().get(),
closeAllTabsRunnable);
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -83,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion);
@@ -3610,6 +3618,41 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3863,6 +3871,41 @@ public class ChromeTabbedActivity extends ChromeActivity {
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
}
@@ -128,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -264,6 +264,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
@@ -270,6 +270,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
// Bookmarks
modelList.add(buildBookmarksItem());
@@ -143,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
// Recent Tabs
if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem());
@@ -423,6 +431,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
@@ -434,6 +442,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
modelList.add(buildCloseAllTabsItem());
if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem());
@@ -212,7 +211,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
const BookmarkNode* reading_list_node =
local_or_syncable_reading_list_manager_->GetRoot();
if (IsPermanentFolderVisible(
@@ -1337,6 +1368,17 @@ void BookmarkBridge::GetBookmarksOfType(
@@ -1306,6 +1337,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
}
@@ -244,7 +243,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
base::android::ScopedJavaLocalRef<jobject>
GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url);
const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl(
@@ -250,6 +254,10 @@ class BookmarkBridge : public ProfileObserver,
@@ -245,6 +249,10 @@ class BookmarkBridge : public ProfileObserver,
const base::android::JavaParamRef<jobject>& j_list,
jint type);
@@ -299,7 +298,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** Returns Id representing the special "other" folder from bookmark model. */
public @Nullable BookmarkId getOtherFolderId() {
ThreadUtils.assertOnUiThread();
@@ -898,6 +911,29 @@ class BookmarkBridge {
@@ -882,6 +895,29 @@ class BookmarkBridge {
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
}
@@ -329,7 +328,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/**
* Helper method to mark an item as read.
*
@@ -1115,6 +1151,9 @@ class BookmarkBridge {
@@ -1099,6 +1135,9 @@ class BookmarkBridge {
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(
long nativeBookmarkBridge, @JniType("GURL") GURL url);
@@ -339,7 +338,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
void getTopLevelFolderIds(
@@ -1136,6 +1175,8 @@ class BookmarkBridge {
@@ -1120,6 +1159,8 @@ class BookmarkBridge {
BookmarkId getRootFolderId(long nativeBookmarkBridge);
@@ -460,7 +459,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
@@ -4604,6 +4604,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -4355,6 +4355,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>
@@ -904,27 +903,6 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks
&sync_metadata_str)) {
details->set_local_or_syncable_sync_metadata_str(
std::move(sync_metadata_str));
diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
+++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
@@ -38,6 +38,7 @@ const char kOtherBookmarksTag[] = "other_bookmarks";
constexpr char16_t kBookmarkBarFolderName[] = u"__Bookmarks bar__";
constexpr char16_t kOtherBookmarksFolderName[] = u"__Other bookmarks__";
constexpr char16_t kMobileBookmarksFolderName[] = u"__Mobile bookmarks__";
+constexpr char16_t kTabsCollectionBookmarksFolderName[] = u"__Tabs collection__";
using RemoteForest = BookmarkModelMerger::RemoteForest;
using RemoteTreeNode = BookmarkModelMerger::RemoteTreeNode;
@@ -129,6 +130,9 @@ std::u16string_view GetBookmarkNodeTitle(const bookmarks::BookmarkNode* node) {
return kOtherBookmarksFolderName;
case bookmarks::BookmarkNode::MOBILE:
return kMobileBookmarksFolderName;
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
+ return kTabsCollectionBookmarksFolderName;
+
}
NOTREACHED();
}
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
+160 -153
View File
@@ -20,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
cc/trees/layer_tree_host.h | 4 ++
cc/trees/layer_tree_host_impl.cc | 4 +-
cc/trees/layer_tree_impl.cc | 30 ++++++++----
cc/trees/layer_tree_impl.h | 6 +++
cc/trees/layer_tree_impl.h | 7 ++-
cc/trees/property_tree.cc | 4 +-
.../java/res/xml/developer_preferences.xml | 4 ++
.../chrome/browser/WarmupManager.java | 2 +-
@@ -107,7 +107,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
ui/display/mojom/screen_info_mojom_traits.h | 4 ++
ui/display/screen_info.h | 1 +
ui/events/blink/blink_event_util.cc | 2 +-
97 files changed, 526 insertions(+), 137 deletions(-)
97 files changed, 526 insertions(+), 138 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Pixel-perfect-mode.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Pixel-perfect-mode.inc
@@ -117,7 +117,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/cc/input/input_handler.cc b/cc/input/input_handler.cc
--- a/cc/input/input_handler.cc
+++ b/cc/input/input_handler.cc
@@ -671,7 +671,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt(
@@ -670,7 +670,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt(
return result;
}
@@ -162,7 +162,7 @@ diff --git a/cc/layers/viewport.cc b/cc/layers/viewport.cc
diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_context.cc
--- a/cc/mojo_embedder/viz_layer_context.cc
+++ b/cc/mojo_embedder/viz_layer_context.cc
@@ -1238,7 +1238,7 @@ void VizLayerContext::SetVisible(bool visible) {
@@ -1242,7 +1242,7 @@ void VizLayerContext::SetVisible(bool visible) {
service_->SetVisible(visible);
}
@@ -196,7 +196,7 @@ diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -1348,7 +1348,7 @@ void LayerTreeHost::SetEventListenerProperties(
@@ -1347,7 +1347,7 @@ void LayerTreeHost::SetEventListenerProperties(
SetNeedsCommit();
}
@@ -205,7 +205,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
const gfx::Rect& device_viewport_rect,
float device_scale_factor,
const viz::LocalSurfaceId& local_surface_id_from_parent) {
@@ -1459,9 +1459,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) {
@@ -1458,9 +1458,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) {
void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
float min_page_scale_factor,
@@ -217,7 +217,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
pending_commit_state()->max_page_scale_factor == max_page_scale_factor)
return;
DCHECK_GE(page_scale_factor, min_page_scale_factor);
@@ -1477,6 +1479,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
@@ -1476,6 +1478,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
pending_commit_state()->page_scale_factor = page_scale_factor;
pending_commit_state()->min_page_scale_factor = min_page_scale_factor;
@@ -249,16 +249,16 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -2487,7 +2487,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() {
@@ -2472,7 +2472,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() {
return bounds;
}
-viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() {
+viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { // POI
viz::CompositorFrameMetadata metadata;
metadata.frame_token = ++next_frame_token_;
metadata.device_scale_factor = active_tree_->painted_device_scale_factor() *
@@ -2646,7 +2646,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() {
if (settings().trees_in_viz_in_viz_process) {
// In TreesInViz mode, this function is called in client process already,
@@ -2639,7 +2639,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() {
return metadata;
}
@@ -278,7 +278,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
max_page_scale_factor_(0),
external_page_scale_factor_(1.f),
device_scale_factor_(1.f),
@@ -449,7 +450,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls(
@@ -451,7 +452,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls(
}
}
@@ -287,7 +287,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
if (!InnerViewportScrollNode())
return;
@@ -527,8 +528,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() {
@@ -526,8 +527,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() {
// Adjust the outer viewport container as well, since adjusting only the
// inner may cause its bounds to exceed those of the outer, causing scroll
// clamping.
@@ -303,7 +303,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
property_trees->SetOuterViewportContainerBoundsDelta(scaled_bounds_delta);
// outer_viewport_container_bounds_delta and
@@ -819,6 +825,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) {
@@ -823,6 +829,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) {
PushPageScaleFromMainThread(commit_state.page_scale_factor,
commit_state.min_page_scale_factor,
@@ -311,7 +311,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
commit_state.max_page_scale_factor);
SetBrowserControlsParams(commit_state.browser_controls_params);
@@ -930,6 +937,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) {
@@ -934,6 +941,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) {
// Active tree already shares the page_scale_factor object with pending
// tree so only the limits need to be provided.
target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(),
@@ -319,7 +319,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
max_page_scale_factor());
target_tree->SetExternalPageScaleFactor(external_page_scale_factor_);
@@ -1311,19 +1319,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) {
@@ -1315,19 +1323,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) {
void LayerTreeImpl::PushPageScaleFromMainThread(float page_scale_factor,
float min_page_scale_factor,
@@ -343,7 +343,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
if (changed_page_scale) {
DidUpdatePageScale();
@@ -1332,12 +1342,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree(
@@ -1336,12 +1346,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree(
void LayerTreeImpl::PushPageScaleFactorAndLimits(const float* page_scale_factor,
float min_page_scale_factor,
@@ -358,7 +358,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
if (page_scale_factor) {
DCHECK(!IsActiveTree() || !host_impl_->pending_tree());
@@ -1442,12 +1453,15 @@ void LayerTreeImpl::PushBrowserControls(
@@ -1446,12 +1457,15 @@ void LayerTreeImpl::PushBrowserControls(
}
bool LayerTreeImpl::SetPageScaleFactorLimits(float min_page_scale_factor,
@@ -374,7 +374,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
max_page_scale_factor_ = max_page_scale_factor;
return true;
@@ -2366,7 +2380,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const {
@@ -2357,7 +2371,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const {
return scrollbars;
}
@@ -383,7 +383,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
const gfx::PointF& screen_space_point,
const gfx::Transform& local_space_to_screen_space_transform,
const gfx::Rect& local_space_rect,
@@ -2952,7 +2966,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound(
@@ -2943,7 +2957,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound(
return viewport_bound;
}
@@ -395,17 +395,24 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
--- a/cc/trees/layer_tree_impl.h
+++ b/cc/trees/layer_tree_impl.h
@@ -380,7 +380,9 @@ class CC_EXPORT LayerTreeImpl {
@@ -380,6 +380,7 @@ class CC_EXPORT LayerTreeImpl {
void SetPageScaleOnActiveTree(float active_page_scale);
void PushPageScaleFromMainThread(float page_scale_factor,
float min_page_scale_factor,
+ float browser_control_scale_factor,
float max_page_scale_factor);
+ float browser_control_scale_factor() const { return browser_control_scale_factor_; }
const LayerSelection& selection() const { return selection_; }
float current_page_scale_factor() const {
return page_scale_factor()->Current(IsActiveTree());
@@ -387,7 +388,7 @@ class CC_EXPORT LayerTreeImpl {
}
@@ -845,6 +847,7 @@ class CC_EXPORT LayerTreeImpl {
float min_page_scale_factor() const { return min_page_scale_factor_; }
float max_page_scale_factor() const { return max_page_scale_factor_; }
-
+ float browser_control_scale_factor() const { return browser_control_scale_factor_; }
float page_scale_delta() const { return page_scale_factor()->Delta(); }
SyncedScale* page_scale_factor();
@@ -849,6 +850,7 @@ class CC_EXPORT LayerTreeImpl {
void SetPageScaleFactorAndLimitsForDisplayTree(float page_scale_factor,
float min_page_scale_factor,
@@ -413,7 +420,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
float max_page_scale_factor);
LayerTreeHostImpl* host_impl() { return host_impl_; }
@@ -869,8 +872,10 @@ class CC_EXPORT LayerTreeImpl {
@@ -873,8 +875,10 @@ class CC_EXPORT LayerTreeImpl {
float ClampPageScaleFactorToLimits(float page_scale_factor) const;
void PushPageScaleFactorAndLimits(const float* page_scale_factor,
float min_page_scale_factor,
@@ -424,7 +431,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
float max_page_scale_factor);
void DidUpdatePageScale();
void PushBrowserControls(const float* top_controls_shown_ratio,
@@ -909,6 +914,7 @@ class CC_EXPORT LayerTreeImpl {
@@ -913,6 +917,7 @@ class CC_EXPORT LayerTreeImpl {
scoped_refptr<SyncedScale> page_scale_factor_;
float min_page_scale_factor_;
@@ -468,12 +475,12 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
@@ -312,7 +312,7 @@ public class WarmupManager {
Rect bounds = TabUtils.estimateContentSize(context);
int width = bounds.right - bounds.left;
@@ -321,7 +321,7 @@ public class WarmupManager {
int height = bounds.bottom - bounds.top;
- tab.getWebContents().setSize(width, height);
+ tab.getWebContents().setSize(width, height, 0);
webContents = tab.getWebContents();
assumeNonNull(webContents);
- webContents.setSize(width, height);
+ webContents.setSize(width, height, 0);
// Reparent the tab to detach it from the current activity.
ReparentingTask.from(tab).detach();
@@ -490,7 +497,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.BuildInfo;
@@ -509,7 +512,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -516,7 +519,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
// Ensure that mConfig is initialized before tablet mode changes.
mConfig = getResources().getConfiguration();
@@ -520,7 +527,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
@@ -925,7 +925,7 @@ public class CompositorViewHolder extends FrameLayout
@@ -929,7 +929,7 @@ public class CompositorViewHolder extends FrameLayout
int viewportInsets = controlsInsets + keyboardInset;
if (isAttachedToWindow(view)) {
@@ -529,7 +536,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp
// Dispatch the geometrychange JavaScript event to the page.
// TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer
@@ -945,7 +945,7 @@ public class CompositorViewHolder extends FrameLayout
@@ -949,7 +949,7 @@ public class CompositorViewHolder extends FrameLayout
MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
@@ -541,19 +548,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java
@@ -610,7 +610,7 @@ public class OverlayPanelContent {
@@ -617,7 +617,7 @@ public class OverlayPanelContent {
OverlayPanelContentJni.get()
.onPhysicalBackingSizeChanged(
mNativeOverlayPanelContentPtr, webContents, mContentViewWidth, viewHeight);
- mWebContents.setSize(mContentViewWidth, viewHeight);
+ mWebContents.setSize(mContentViewWidth, viewHeight, (mSubtractBarHeight ? mBarHeightPx : 0));
- assumeNonNull(mWebContents).setSize(mContentViewWidth, viewHeight);
+ assumeNonNull(mWebContents).setSize(mContentViewWidth, viewHeight, (mSubtractBarHeight ? mBarHeightPx : 0));
}
/** Destroy the native component of this class. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -1864,7 +1864,7 @@ class TabImpl implements Tab {
@@ -1869,7 +1869,7 @@ class TabImpl implements Tab {
// so that next onShow() call won't send a resize message with zero size
// to the renderer process. This prevents the size fluttering that may confuse
// Blink and break rendered result (see http://crbug.com/340987).
@@ -562,7 +569,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
if (bounds != null) {
assert mNativeTabAndroid != 0;
@@ -2237,7 +2237,7 @@ class TabImpl implements Tab {
@@ -2243,7 +2243,7 @@ class TabImpl implements Tab {
Supplier<CompositorViewHolder> compositorViewHolderSupplier =
assumeNonNull(getActivity()).getCompositorViewHolderSupplier();
View compositorView = compositorViewHolderSupplier.get();
@@ -607,7 +614,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
diff --git a/chrome/browser/android/bottombar/overlay_panel_content.cc b/chrome/browser/android/bottombar/overlay_panel_content.cc
--- a/chrome/browser/android/bottombar/overlay_panel_content.cc
+++ b/chrome/browser/android/bottombar/overlay_panel_content.cc
@@ -51,7 +51,7 @@ void OverlayPanelContent::OnPhysicalBackingSizeChanged(
@@ -53,7 +53,7 @@ void OverlayPanelContent::OnPhysicalBackingSizeChanged(
jint height) {
gfx::Size size(width, height);
web_contents->GetNativeView()->OnPhysicalBackingSizeChanged(size);
@@ -721,7 +728,7 @@ diff --git a/components/input/BUILD.gn b/components/input/BUILD.gn
+++ b/components/input/BUILD.gn
@@ -101,6 +101,7 @@ component("input") {
"//ui/events:gesture_detection",
"//ui/events/blink:blink",
"//ui/events/blink",
"//ui/events/gestures/blink",
+ "//tools/v8_context_snapshot:buildflags",
]
@@ -730,7 +737,7 @@ diff --git a/components/input/BUILD.gn b/components/input/BUILD.gn
diff --git a/components/input/android_input_helper.cc b/components/input/android_input_helper.cc
--- a/components/input/android_input_helper.cc
+++ b/components/input/android_input_helper.cc
@@ -132,7 +132,7 @@ void AndroidInputHelper::ProcessAckedTouchEvent(
@@ -144,7 +144,7 @@ void AndroidInputHelper::ProcessAckedTouchEvent(
}
}
@@ -836,7 +843,7 @@ diff --git a/components/input/render_widget_targeter.cc b/components/input/rende
diff --git a/components/thin_webview/internal/thin_webview.cc b/components/thin_webview/internal/thin_webview.cc
--- a/components/thin_webview/internal/thin_webview.cc
+++ b/components/thin_webview/internal/thin_webview.cc
@@ -107,7 +107,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) {
@@ -105,7 +105,7 @@ void ThinWebView::ResizeWebContents(const gfx::Size& size) {
return;
web_contents_->GetNativeView()->OnPhysicalBackingSizeChanged(size);
@@ -848,7 +855,7 @@ diff --git a/components/thin_webview/internal/thin_webview.cc b/components/thin_
diff --git a/components/viz/service/input/input_manager.cc b/components/viz/service/input/input_manager.cc
--- a/components/viz/service/input/input_manager.cc
+++ b/components/viz/service/input/input_manager.cc
@@ -399,7 +399,7 @@ const DisplayHitTestQueryMap& InputManager::GetDisplayHitTestQuery() const {
@@ -418,7 +418,7 @@ const DisplayHitTestQueryMap& InputManager::GetDisplayHitTestQuery() const {
return frame_sink_manager_->GetDisplayHitTestQuery();
}
@@ -884,7 +891,7 @@ diff --git a/components/viz/service/input/render_input_router_support_child_fram
diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/viz/service/layers/layer_context_impl.cc
--- a/components/viz/service/layers/layer_context_impl.cc
+++ b/components/viz/service/layers/layer_context_impl.cc
@@ -1757,7 +1757,7 @@ base::expected<void, std::string> LayerContextImpl::DoUpdateDisplayTree(
@@ -1781,7 +1781,7 @@ base::expected<void, std::string> LayerContextImpl::DoUpdateDisplayTree(
return base::unexpected("Invalid page scale factors");
}
layers.SetPageScaleFactorAndLimitsForDisplayTree(
@@ -896,7 +903,7 @@ diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/vi
diff --git a/content/browser/android/selection/selection_popup_controller.cc b/content/browser/android/selection/selection_popup_controller.cc
--- a/content/browser/android/selection/selection_popup_controller.cc
+++ b/content/browser/android/selection/selection_popup_controller.cc
@@ -182,7 +182,7 @@ void SelectionPopupController::MoveRangeSelectionExtent(
@@ -179,7 +179,7 @@ void SelectionPopupController::MoveRangeSelectionExtent(
web_contents_impl->MoveRangeSelectionExtent(gfx::ToRoundedPoint(extent));
}
@@ -905,7 +912,7 @@ diff --git a/content/browser/android/selection/selection_popup_controller.cc b/c
const gfx::PointF& base,
const gfx::PointF& extent) {
auto* web_contents_impl = static_cast<WebContentsImpl*>(web_contents());
@@ -303,7 +303,8 @@ bool SelectionPopupController::ShowSelectionMenu(
@@ -300,7 +300,8 @@ bool SelectionPopupController::ShowSelectionMenu(
is_password_type, jselected_text, params.selection_start_offset,
can_select_all, can_edit_richly, should_suggest,
static_cast<int>(params.source_type),
@@ -926,7 +933,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co
#include "third_party/blink/public/common/frame/frame_visual_properties.h"
#include "third_party/blink/public/common/input/web_input_event.h"
#include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom.h"
@@ -210,9 +211,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties(
@@ -215,9 +216,12 @@ void CrossProcessFrameConnector::SynchronizeVisualProperties(
render_widget_host->SetAutoResize(visual_properties.auto_resize_enabled,
visual_properties.min_size_for_auto_resize,
visual_properties.max_size_for_auto_resize);
@@ -940,7 +947,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co
visual_properties.is_pinch_gesture_active,
visual_properties.visible_viewport_size,
visual_properties.compositor_viewport,
@@ -465,7 +469,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews(
@@ -470,7 +474,7 @@ void CrossProcessFrameConnector::SetVisibilityForChildViews(
current_child_frame_host()->SetVisibilityForChildViews(visible);
}
@@ -949,7 +956,7 @@ diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/co
const gfx::Size& local_frame_size) {
has_size_ = true;
const float dsf = screen_infos_.current().device_scale_factor;
@@ -474,7 +478,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize(
@@ -479,7 +483,7 @@ void CrossProcessFrameConnector::SetLocalFrameSize(
gfx::ScaleToRoundedSize(local_frame_size, 1.f / dsf);
}
@@ -985,7 +992,7 @@ diff --git a/content/browser/renderer_host/input/touch_selection_controller_clie
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9204,7 +9204,7 @@ void RenderFrameHostImpl::ShowPopupMenu(
@@ -9260,7 +9260,7 @@ void RenderFrameHostImpl::ShowPopupMenu(
#endif
}
@@ -997,7 +1004,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1041,7 +1041,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() {
@@ -1055,7 +1055,20 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() {
blink::VisualProperties visual_properties;
visual_properties.screen_infos = GetScreenInfos();
auto& current_screen_info = visual_properties.screen_infos.mutable_current();
@@ -1019,7 +1026,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/
// For testing, override the raster color profile.
// Note: this needs to be done here and not earlier in the pipeline because
// Mac uses the display color space to update an NSSurface and this setting
@@ -1146,6 +1159,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() {
@@ -1160,6 +1173,13 @@ blink::VisualProperties RenderWidgetHostImpl::GetVisualProperties() {
visual_properties.compositing_scale_factor =
properties_from_parent_local_root_.compositing_scale_factor;
@@ -1033,7 +1040,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/
#if BUILDFLAG(IS_MAC)
// Only macOS cursor scaling affects CSS custom cursor images for now.
visual_properties.cursor_accessibility_scale_factor =
@@ -1326,8 +1346,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties(
@@ -1340,8 +1360,10 @@ bool RenderWidgetHostImpl::SynchronizeVisualProperties(
}
}
@@ -1046,7 +1053,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/
// If we do not have a valid viz::LocalSurfaceId then we are a child frame
// waiting on the id to be propagated from our parent. We cannot create a hash
@@ -3958,7 +3980,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged(
@@ -3987,7 +4009,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged(
// porting drag-and-drop calls to Mojo, so that RenderWidgetHostImpl bypasses
// RenderWidget to talk the the WebFrameWidget and needs to perform the scale
// operation itself.
@@ -1058,7 +1065,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -82,6 +82,7 @@
@@ -83,6 +83,7 @@
#include "content/public/browser/render_widget_host_iterator.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
@@ -1066,7 +1073,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
#include "third_party/blink/public/mojom/input/input_handler.mojom.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkCanvas.h"
@@ -951,7 +952,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
@@ -949,7 +950,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
? SK_ColorTRANSPARENT
: metadata.root_background_color.toSkColor());
@@ -1075,7 +1082,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
overscroll_controller_->OnFrameMetadataUpdated(
metadata.page_scale_factor, metadata.device_scale_factor,
metadata.scrollable_viewport_size, metadata.root_layer_size,
@@ -1262,6 +1263,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() {
@@ -1248,6 +1249,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() {
default_bounds_dip_.height() * scale_factor);
}
@@ -1085,10 +1092,10 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
+ DCHECK(size.width() == 0 || size.width() == 412 || size.height() == 412);
+ return size;
+ }
return view_.GetSizeDevicePx();
const float scale_factor = GetDeviceScaleFactor() / view_.GetDipScale();
return gfx::ScaleToCeiledSize(view_.GetSizeDevicePx(), scale_factor);
}
@@ -1286,6 +1293,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) {
@@ -1273,6 +1280,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) {
NOTREACHED();
}
@@ -1099,7 +1106,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
gfx::Size RenderWidgetHostViewAndroid::GetCompositorViewportPixelSize() {
if (!view_.parent()) {
if (default_bounds_dip_.IsEmpty()) {
@@ -1414,7 +1425,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const {
@@ -1408,7 +1419,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const {
: viz::SurfaceId();
}
@@ -1108,8 +1115,8 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
const gfx::PointF& point,
RenderWidgetHostViewInput* target_view,
gfx::PointF* transformed_point) {
@@ -1798,7 +1809,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const {
return delegated_frame_host_ && delegated_frame_host_->HasFallbackSurface();
@@ -1822,7 +1833,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const {
return delegated_frame_host_->HasFallbackSurface();
}
-void RenderWidgetHostViewAndroid::CopyFromSurface(
@@ -1120,7 +1127,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -159,6 +159,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
@@ -161,6 +161,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
gfx::Size GetRequestedRendererSizeDevicePx() override;
gfx::Size GetVisibleViewportSize() override;
gfx::Size GetVisibleViewportSizeDevicePx() override;
@@ -1154,7 +1161,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/con
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
--- a/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -274,6 +274,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -273,6 +273,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
// The size of the view's backing surface in non-DPI-adjusted pixels.
virtual gfx::Size GetCompositorViewportPixelSize();
@@ -1191,7 +1198,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -822,8 +822,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) {
@@ -826,8 +826,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) {
return Java_WebContentsImpl_createSize(env, size.width(), size.height());
}
@@ -1208,7 +1215,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
@@ -183,7 +183,7 @@ class CONTENT_EXPORT WebContentsAndroid {
@@ -185,7 +185,7 @@ class CONTENT_EXPORT WebContentsAndroid {
base::android::ScopedJavaLocalRef<jobject> GetFullscreenVideoSize(
JNIEnv* env);
@@ -1220,7 +1227,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -533,7 +533,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
@@ -527,7 +527,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
!command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise));
// CAUTION: Only add custom enabling logic here if it cannot
// be covered by the other functions.
@@ -1236,7 +1243,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -520,7 +520,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
@@ -519,7 +519,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
boolean canRichlyEdit,
boolean shouldSuggest,
int sourceType,
@@ -1246,7 +1253,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
RecordHistogram.recordEnumeratedHistogram(
"Android.ShowSelectionMenuSourceType",
sourceType,
@@ -531,6 +532,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
@@ -530,6 +531,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
mXDip = xDip;
mYDip = yDip;
mSelectionRect.set(left, top, right, offsetBottom);
@@ -1258,7 +1265,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -977,9 +977,9 @@ public class WebContentsImpl
@@ -982,9 +982,9 @@ public class WebContentsImpl
}
@Override
@@ -1270,7 +1277,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
}
@Override
@@ -1442,7 +1442,7 @@ public class WebContentsImpl
@@ -1436,7 +1436,7 @@ public class WebContentsImpl
Rect getFullscreenVideoSize(long nativeWebContentsAndroid);
@@ -1282,7 +1289,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -532,7 +532,7 @@ public interface WebContents extends Parcelable {
@@ -538,7 +538,7 @@ public interface WebContents extends Parcelable {
* @param width The width of the view.
* @param height The height of the view.
*/
@@ -1332,7 +1339,7 @@ new file mode 100644
diff --git a/services/viz/public/mojom/compositing/layer_context.mojom b/services/viz/public/mojom/compositing/layer_context.mojom
--- a/services/viz/public/mojom/compositing/layer_context.mojom
+++ b/services/viz/public/mojom/compositing/layer_context.mojom
@@ -74,6 +74,7 @@ struct LayerTreeUpdate {
@@ -81,6 +81,7 @@ struct LayerTreeUpdate {
// The page scale factors set by the tree's client. All must be positive,
// non-zero.
float page_scale_factor;
@@ -1426,7 +1433,7 @@ diff --git a/third_party/blink/public/mojom/widget/visual_properties.mojom b/thi
diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h
--- a/third_party/blink/public/web/web_view.h
+++ b/third_party/blink/public/web/web_view.h
@@ -238,6 +238,7 @@ class BLINK_EXPORT WebView {
@@ -243,6 +243,7 @@ class BLINK_EXPORT WebView {
// Minimum and Maximum as computed as a combination of default, page defined,
// UA, etc. constraints.
virtual float MinimumPageScaleFactor() const = 0;
@@ -1437,7 +1444,7 @@ diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/
diff --git a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc
--- a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc
+++ b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc
@@ -50,6 +50,7 @@ namespace {
@@ -49,6 +49,7 @@ namespace {
bool ShouldApplyNoise(CanvasRenderingContext* rendering_context,
scoped_refptr<StaticBitmapImage>& snapshot,
ExecutionContext* execution_context) {
@@ -1469,7 +1476,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -1247,8 +1247,19 @@ void WebViewImpl::UpdateICBAndResizeViewport(
@@ -1258,8 +1258,19 @@ void WebViewImpl::UpdateICBAndResizeViewport(
if (GetBrowserControls().PermittedState() ==
cc::BrowserControlsState::kBoth &&
!GetBrowserControls().ShrinkViewport()) {
@@ -1491,7 +1498,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
GetPageScaleConstraintsSet().DidChangeInitialContainingBlockSize(icb_size);
@@ -1328,7 +1339,8 @@ void WebViewImpl::DidUpdateBrowserControls() {
@@ -1339,7 +1350,8 @@ void WebViewImpl::DidUpdateBrowserControls() {
ResizeViewportAnchor::ResizeScope resize_scope(*resize_viewport_anchor_);
visual_viewport.SetBrowserControlsAdjustment(
@@ -1501,7 +1508,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
}
@@ -1392,7 +1404,7 @@ void WebViewImpl::ResizeWithBrowserControls(
@@ -1403,7 +1415,7 @@ void WebViewImpl::ResizeWithBrowserControls(
float bottom_controls_height,
bool browser_controls_shrink_layout) {
ResizeWithBrowserControls(
@@ -1510,7 +1517,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
{top_controls_height, GetBrowserControls().TopMinHeight(),
bottom_controls_height, GetBrowserControls().BottomMinHeight(),
GetBrowserControls().AnimateHeightChanges(),
@@ -1402,6 +1414,8 @@ void WebViewImpl::ResizeWithBrowserControls(
@@ -1413,6 +1425,8 @@ void WebViewImpl::ResizeWithBrowserControls(
void WebViewImpl::ResizeWithBrowserControls(
const gfx::Size& main_frame_widget_size,
const gfx::Size& visible_viewport_size,
@@ -1519,7 +1526,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
cc::BrowserControlsParams browser_controls_params) {
if (should_auto_resize_) {
// When auto-resizing only the viewport size comes from the browser, while
@@ -1410,6 +1424,11 @@ void WebViewImpl::ResizeWithBrowserControls(
@@ -1421,6 +1435,11 @@ void WebViewImpl::ResizeWithBrowserControls(
return;
}
@@ -1531,7 +1538,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
if (size_ == main_frame_widget_size &&
GetPage()->GetVisualViewport().Size() == visible_viewport_size &&
GetBrowserControls().Params() == browser_controls_params)
@@ -2098,7 +2117,7 @@ void WebViewImpl::DidAttachLocalMainFrame() {
@@ -2092,7 +2111,7 @@ void WebViewImpl::DidAttachLocalMainFrame() {
web_preferences_.prefers_reduced_motion);
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1540,7 +1547,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
// Prevent main frame updates while the main frame is loading until enough
// progress is made and BeginMainFrames are explicitly asked for.
scoped_defer_main_frame_update_ =
@@ -2903,7 +2922,7 @@ void WebViewImpl::RefreshPageScaleFactor() {
@@ -2900,7 +2919,7 @@ void WebViewImpl::RefreshPageScaleFactor() {
auto& viewport = GetPage()->GetVisualViewport();
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1549,7 +1556,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
}
@@ -2980,7 +2999,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints(
@@ -2977,7 +2996,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints(
TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame());
}
@@ -1558,7 +1565,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
if (should_auto_resize_ || !MainFrameImpl())
return;
@@ -3214,6 +3233,10 @@ float WebViewImpl::MinimumPageScaleFactor() const {
@@ -3211,6 +3230,10 @@ float WebViewImpl::MinimumPageScaleFactor() const {
return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale;
}
@@ -1569,7 +1576,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
float WebViewImpl::MaximumPageScaleFactor() const {
return GetPageScaleConstraintsSet().FinalConstraints().maximum_scale;
}
@@ -3263,7 +3286,7 @@ void WebViewImpl::SendResizeEventForMainFrame() {
@@ -3260,7 +3283,7 @@ void WebViewImpl::SendResizeEventForMainFrame() {
auto& viewport = GetPage()->GetVisualViewport();
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1578,7 +1585,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
}
}
@@ -3799,7 +3822,7 @@ void WebViewImpl::PageScaleFactorChanged() {
@@ -3800,7 +3823,7 @@ void WebViewImpl::PageScaleFactorChanged() {
DCHECK(viewport.IsActiveViewport());
MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits(
viewport.Scale(), viewport.IsPinchGestureActive(),
@@ -1590,7 +1597,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -168,6 +168,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -170,6 +170,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
void AdvanceFocus(bool reverse) override;
float PageScaleFactor() const override;
float MinimumPageScaleFactor() const override;
@@ -1598,7 +1605,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa
float MaximumPageScaleFactor() const override;
void SetDefaultPageScaleLimits(float min_scale, float max_scale) override;
void SetInitialPageScaleOverride(float) override;
@@ -282,6 +283,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -284,6 +285,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
// includes all browser controls params such as the min heights.
void ResizeWithBrowserControls(const gfx::Size& main_frame_widget_size,
const gfx::Size& visible_viewport_size,
@@ -1607,7 +1614,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa
cc::BrowserControlsParams);
// Requests a page-scale animation based on the specified point/rect.
@@ -820,6 +823,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -824,6 +827,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
// The upper bound on the size when auto-resizing.
gfx::Size max_auto_size_;
@@ -1619,7 +1626,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -1719,8 +1719,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) {
@@ -1720,8 +1720,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) {
}
float LocalFrameView::InputEventsScaleFactor() const {
@@ -1755,7 +1762,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_par
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -1954,6 +1954,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
@@ -1886,6 +1886,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
// All non-top-level Widgets (child local-root frames, GuestViews,
// etc.) propagate and consume the page scale factor as "external", meaning
// that it comes from the top level widget's page scale.
@@ -1765,7 +1772,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (!ForTopMostMainFrame()) {
// The main frame controls the page scale factor, from blink. For other
// frame widgets, the page scale from pinch zoom and compositing scale is
@@ -1961,7 +1964,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
@@ -1893,7 +1896,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
// blink doesn't need to know this page scale factor outside the main frame,
// the compositor does in order to produce its output at the correct scale.
float combined_scale_factor = visual_properties.page_scale_factor *
@@ -1774,7 +1781,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
widget_base_->LayerTreeHost()->SetExternalPageScaleFactor(
combined_scale_factor, visual_properties.is_pinch_gesture_active);
@@ -1974,7 +1977,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
@@ -1906,7 +1909,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties(
// Ensure the external scale factor in top-level widgets is reset as it may
// be leftover from when a widget was nested and was promoted to top level.
widget_base_->LayerTreeHost()->SetExternalPageScaleFactor(
@@ -1783,7 +1790,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
/*is_pinch_gesture_active=*/false);
}
@@ -2018,6 +2021,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
@@ -1950,6 +1953,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
new_compositor_viewport_pixel_rect,
device_scale_factor_for_testing_ / non_testing_device_scale_factor_);
}
@@ -1802,7 +1809,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (ForMainFrame()) {
if (size_ != new_size) {
@@ -2034,6 +2049,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
@@ -1966,6 +1981,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
size_.value(),
widget_base_->DIPsToCeiledBlinkSpace(
widget_base_->VisibleViewportSize()),
@@ -1811,7 +1818,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
visual_properties.browser_controls_params);
return;
}
@@ -2067,6 +2084,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
@@ -1999,6 +2016,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
View()->ResizeWithBrowserControls(
size_.value(), widget_base_->VisibleViewportSize(),
@@ -1820,7 +1827,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
visual_properties.browser_controls_params);
}
@@ -2442,6 +2461,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
@@ -2377,6 +2396,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
View()->ZoomFactorForViewportLayout() *
static_cast<float>(View()->ZoomLevelToZoomFactor(zoom_level)) *
static_cast<float>(css_zoom_factor);
@@ -1829,7 +1836,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (zoom_changed) {
// Set the layout shift exclusion window for the zoom level change.
if (LocalFrameView* view = document->View()) {
@@ -3491,6 +3512,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr<cc::Layer> layer) {
@@ -3429,6 +3450,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr<cc::Layer> layer) {
// be needed in setting the raster scale.
SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */,
View()->MinimumPageScaleFactor(),
@@ -1837,7 +1844,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
View()->MaximumPageScaleFactor());
}
@@ -4860,9 +4882,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
@@ -4798,9 +4820,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
float page_scale_factor,
bool is_pinch_gesture_active,
float minimum,
@@ -1849,7 +1856,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
// Only propagate page scale from the main frame.
if (ForMainFrame()) {
@@ -4986,7 +5009,10 @@ void WebFrameWidgetImpl::OrientationChanged() {
@@ -4924,7 +4947,10 @@ void WebFrameWidgetImpl::OrientationChanged() {
void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen(
const display::ScreenInfos& previous_original_screen_infos) {
display::ScreenInfo screen_info = widget_base_->GetScreenInfo();
@@ -1861,7 +1868,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
if (ShouldAutoDetermineCompositingToLCDTextSetting()) {
// This causes compositing state to be modified which dirties the
@@ -5182,7 +5208,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) {
@@ -5120,7 +5146,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) {
if (!device_scale_factor_for_testing_) {
non_testing_device_scale_factor_ =
@@ -1873,7 +1880,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
@@ -656,6 +656,7 @@ class CORE_EXPORT WebFrameWidgetImpl
@@ -655,6 +655,7 @@ class CORE_EXPORT WebFrameWidgetImpl
void SetPageScaleStateAndLimits(float page_scale_factor,
bool is_pinch_gesture_active,
float minimum,
@@ -1884,7 +1891,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/thi
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -2543,7 +2543,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) {
@@ -2547,7 +2547,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) {
dev_tools_agent_->PaintOverlays(context);
}
@@ -1893,7 +1900,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi
TRACE_EVENT0("blink", "WebLocalFrameImpl::createFrameView");
DCHECK(GetFrame()); // If frame() doesn't exist, we probably didn't init
@@ -3018,7 +3018,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal(
@@ -3022,7 +3022,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal(
std::move(context_menu_client), params);
}
@@ -1905,7 +1912,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -1628,6 +1628,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr<CanvasResource>&& image,
@@ -1569,6 +1569,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr<CanvasResource>&& image,
}
bool HTMLCanvasElement::ShouldAccelerate() const {
@@ -1928,7 +1935,7 @@ diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_part
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
--- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
@@ -1038,7 +1038,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride(
@@ -1081,7 +1081,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride(
// Ensure the override is applied immediately without having to wait for
// `WebFrameWidgetImpl::UpdateVisualProperties()` to be called.
GetWebViewImpl()->ResizeWithBrowserControls(
@@ -1941,7 +1948,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -1322,6 +1322,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) {
@@ -1309,6 +1309,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) {
if (SchemeRegistry::IsWebUIScheme(protocol) || disable_screen_emulated_) {
isEnabled = false;
}
@@ -1967,7 +1974,7 @@ diff --git a/third_party/blink/renderer/core/page/viewport_description.cc b/thir
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -465,16 +465,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
@@ -467,16 +467,17 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
}
}
@@ -1990,7 +1997,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -5910,6 +5910,10 @@
@@ -5857,6 +5857,10 @@
// If enabled, the `getDisplayMedia()` family of APIs will ask for NV12
// frames, which should trigger a zero-copy path in the tab capture code.
name: "ZeroCopyTabCapture",
@@ -2181,7 +2188,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox
diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc
--- a/third_party/blink/renderer/platform/widget/widget_base.cc
+++ b/third_party/blink/renderer/platform/widget/widget_base.cc
@@ -1683,7 +1683,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) {
@@ -1688,7 +1688,9 @@ void WidgetBase::RequestAnimationAfterDelayTimerFired(TimerBase*) {
client_->ScheduleAnimation(/*urgent=*/urgent_for_input);
}
@@ -2192,7 +2199,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p
return client_->GetOriginalScreenInfos().current().device_scale_factor;
}
@@ -1725,7 +1727,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo(
@@ -1730,7 +1732,7 @@ void WidgetBase::UpdateSurfaceAndScreenInfo(
// Note carefully that the DSF specified in |new_screen_info| is not the
// DSF used by the compositor during device emulation!
LayerTreeHost()->SetViewportRectAndScale(compositor_viewport_pixel_rect,
@@ -2201,7 +2208,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_p
local_surface_id_from_parent_);
// The VisualDeviceViewportIntersectionRect derives from the LayerTreeView's
// viewport size, which is set above.
@@ -1855,56 +1857,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) {
@@ -1860,56 +1862,56 @@ void WidgetBase::CountDroppedPointerDownForEventTiming(unsigned count) {
gfx::PointF WidgetBase::DIPsToBlinkSpace(const gfx::PointF& point) {
// TODO(danakj): Should this use non-original scale factor so it changes under
// emulation?
@@ -2295,25 +2302,25 @@ diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_f
diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
--- a/ui/android/event_forwarder.cc
+++ b/ui/android/event_forwarder.cc
@@ -138,7 +138,7 @@ jboolean EventForwarder::OnTouchEvent(JNIEnv* env,
// milliseconds timestamp.
base::TimeTicks down_time = base::TimeTicks::FromUptimeMillis(down_time_ms);
ui::MotionEventAndroidJava event(
- env, motion_event.obj(), 1.f / view_->GetDipScale(), 0.f, 0.f, 0.f,
+ env, motion_event.obj(), 1.f / view_->GetDipScaleFactor(), 0.f, 0.f, 0.f,
base::TimeTicks::FromJavaNanoTime(oldest_event_time_ns),
base::TimeTicks::FromJavaNanoTime(latest_event_time_ns), down_time,
android_action, pointer_count, history_size, action_index,
@@ -185,7 +185,7 @@ void EventForwarder::OnMouseEvent(JNIEnv* env,
/*pressure=*/pressure, /*orientation_rad=*/orientation, /*tilt_rad=*/tilt,
@@ -137,7 +137,7 @@ jboolean EventForwarder::OnTouchEvent(JNIEnv* env,
JNI_MotionEvent::Java_MotionEvent_getDownTime(env, motion_event));
auto event = ui::MotionEventAndroidFactory::CreateFromJava(
env, /*event=*/motion_event,
- /*pix_to_dip=*/1.f / view_->GetDipScale(),
+ /*pix_to_dip=*/1.f / view_->GetDipScaleFactor(),
/*ticks_x=*/0.f,
/*ticks_y=*/0.f,
/*tick_multiplier=*/0.f,
@@ -191,7 +191,7 @@ void EventForwarder::OnMouseEvent(
/*tool_type=*/android_tool_type);
ui::MotionEventAndroidJava event(
- env, nullptr /* event */, 1.f / view_->GetDipScale(), 0.f, 0.f, 0.f,
+ env, nullptr /* event */, 1.f / view_->GetDipScaleFactor(), 0.f, 0.f, 0.f,
base::TimeTicks::FromJavaNanoTime(time_ns), android_action,
1 /* pointer_count */, 0 /* history_size */, 0 /* action_index */,
android_action_button, 0 /* gesture_classification */,
@@ -211,7 +211,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env,
auto event = ui::MotionEventAndroidFactory::CreateFromJava(
env, /*event=*/motion_event,
- /*pix_to_dip=*/1.f / view_->GetDipScale(),
+ /*pix_to_dip=*/1.f / view_->GetDipScaleFactor(),
/*ticks_x=*/0.f,
/*ticks_y=*/0.f,
/*tick_multiplier=*/0.f,
@@ -225,7 +225,7 @@ void EventForwarder::OnDragEvent(JNIEnv* env,
const JavaParamRef<jstring>& j_text,
const JavaParamRef<jstring>& j_html,
const JavaParamRef<jstring>& j_url) {
@@ -2322,7 +2329,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
gfx::PointF location(x / dip_scale, y / dip_scale);
gfx::PointF root_location(screen_x / dip_scale, screen_y / dip_scale);
std::vector<std::u16string> mime_types;
@@ -228,7 +228,7 @@ jboolean EventForwarder::OnGestureEvent(JNIEnv* env,
@@ -240,7 +240,7 @@ jboolean EventForwarder::OnGestureEvent(JNIEnv* env,
jint type,
jlong time_ms,
jfloat scale) {
@@ -2331,16 +2338,16 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
auto size = view_->GetSizeDIPs();
float x = size.width() / 2;
float y = size.height() / 2;
@@ -258,7 +258,7 @@ jboolean EventForwarder::OnGenericMotionEvent(
// milliseconds timestamp.
@@ -270,7 +270,7 @@ jboolean EventForwarder::OnGenericMotionEvent(
base::TimeTicks down_time = base::TimeTicks::FromUptimeMillis(down_time_ms);
ui::MotionEventAndroidJava event(
- env, motion_event.obj(), 1.f / view_->GetDipScale(), 0.f, 0.f, 0.f,
+ env, motion_event.obj(), 1.f / view_->GetDipScaleFactor(), 0.f, 0.f, 0.f,
base::TimeTicks::FromJavaNanoTime(event_time_ns),
base::TimeTicks::FromJavaNanoTime(event_time_ns), down_time, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, false, &pointer0, nullptr, false);
@@ -301,7 +301,7 @@ void EventForwarder::DoubleTap(JNIEnv* env,
auto event = ui::MotionEventAndroidFactory::CreateFromJava(
env, /*event=*/motion_event,
- /*pix_to_dip=*/1.f / view_->GetDipScale(),
+ /*pix_to_dip=*/1.f / view_->GetDipScaleFactor(),
/*ticks_x=*/0.f,
/*ticks_y=*/0.f,
/*tick_multiplier=*/0.f,
@@ -323,7 +323,7 @@ void EventForwarder::DoubleTap(JNIEnv* env,
jlong time_ms,
jint x,
jint y) {
@@ -2349,7 +2356,7 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
view_->OnGestureEvent(GestureEventAndroid(
GESTURE_EVENT_TYPE_DOUBLE_TAP, gfx::PointF(x / dip_scale, y / dip_scale),
gfx::PointF(), time_ms, 0, 0, 0, 0, 0, /*target_viewport*/ true,
@@ -319,7 +319,7 @@ void EventForwarder::StartFling(JNIEnv* env,
@@ -340,7 +340,7 @@ void EventForwarder::StartFling(JNIEnv* env,
if (velocity_x == 0 && velocity_y == 0)
return;
@@ -2361,9 +2368,9 @@ diff --git a/ui/android/event_forwarder.cc b/ui/android/event_forwarder.cc
diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java
--- a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java
+++ b/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java
@@ -41,6 +41,12 @@ public class UiAndroidFeatureList {
@@ -47,6 +47,12 @@ public class UiAndroidFeatureList {
/* defaultValue= */ false,
/* defaultValueInTests= */ true);
/* defaultValueInTests= */ false);
+ public static final CachedFlag sPixelPerfect =
+ newCachedFlag(
@@ -2372,12 +2379,12 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/UiAndroidFeatureList.java
+ /* defaultValueInTests= */ false);
+
public static final List<CachedFlag> sFlagsCachedUiAndroid =
List.of(sAndroidWindowOcclusion, sAndroidWindowManagementWebApi);
}
List.of(
sAndroidWindowOcclusion,
diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java
--- a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java
@@ -33,6 +33,7 @@ import org.chromium.base.ThreadUtils;
@@ -34,6 +34,7 @@ import org.chromium.base.ThreadUtils;
import org.chromium.build.annotations.EnsuresNonNull;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -2385,7 +2392,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid.
import org.chromium.ui.util.XrUtils;
import java.util.Arrays;
@@ -330,6 +331,15 @@ import java.util.function.Consumer;
@@ -345,6 +346,15 @@ import java.util.function.Consumer;
float ydpi,
Display display) {
if (hasForcedDIPScale()) density = sForcedDIPScale.floatValue();
@@ -2424,7 +2431,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
child->DispatchOnSizeChanged();
}
@@ -488,7 +492,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up,
@@ -497,7 +501,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up,
env, delegate, direction_up, current_scroll_ratio);
}
@@ -2433,7 +2440,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
// Match-parent view must not receive size events.
DCHECK(!match_parent());
@@ -498,13 +502,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) {
@@ -507,13 +511,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) {
return;
}
@@ -2451,7 +2458,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
if (bounds_device_px_.size() == size_device_px) {
return;
}
@@ -512,12 +518,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) {
@@ -521,12 +527,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) {
bounds_device_px_.set_size(size_device_px);
float scale = GetDipScale();
@@ -2470,7 +2477,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
}
}
@@ -568,6 +577,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const {
@@ -577,6 +586,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const {
return bounds_device_px_.size();
}
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
chrome/browser/BUILD.gn | 7 +
.../browser/component_updater/registration.cc | 10 +
...droid-fonts-fingerprinting-mitigation.grdp | 9 +
chrome/renderer/BUILD.gn | 3 +
chrome/renderer/BUILD.gn | 4 +
.../installer_policies/BUILD.gn | 7 +
.../fonts_pack_component_installer.cc | 96 +
.../fonts_pack_component_installer.h | 60 +
@@ -34,15 +34,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
...ndroid-fonts-fingerprinting-mitigation.inc | 5 +
skia/BUILD.gn | 12 +
.../include/ports/SkFontConfigInterface.h | 2 +
.../skia/include/ports/SkFontMgr_android.h | 42 +-
.../skia/include/ports/SkFontMgr_android.h | 40 +-
.../skia/src/ports/SkFontConfigInterface.cpp | 4 +
.../ports/SkFontConfigInterface_direct.cpp | 5 +
.../src/ports/SkFontConfigInterface_direct.h | 1 +
.../skia/src/ports/SkFontMgr_android.cpp | 278 ++-
.../skia/src/ports/SkFontMgr_android.cpp | 274 ++-
.../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++
.../src/ports/SkFontMgr_android_parser.cpp | 49 +-
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
36 files changed, 2410 insertions(+), 79 deletions(-)
36 files changed, 2408 insertions(+), 76 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
@@ -54,7 +54,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -1033,6 +1033,9 @@ public final class ProductionSupportedFlagList {
@@ -1007,6 +1007,9 @@ public final class ProductionSupportedFlagList {
"Hides user preference on the system keyboard by setting the standard "
+ "eng layout and removing the layout information from the "
+ "javascript keyboard events."),
@@ -67,7 +67,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/common/Produc
diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc
--- a/android_webview/nonembedded/component_updater/registration.cc
+++ b/android_webview/nonembedded/component_updater/registration.cc
@@ -27,6 +27,9 @@
@@ -26,6 +26,9 @@
#include "components/update_client/update_client.h"
#include "mojo/public/cpp/base/proto_wrapper.h"
@@ -77,7 +77,7 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
namespace android_webview {
void RegisterComponentsForUpdate(
@@ -43,6 +46,12 @@ void RegisterComponentsForUpdate(
@@ -42,6 +45,12 @@ void RegisterComponentsForUpdate(
std::vector<std::unique_ptr<component_updater::ComponentInstallerPolicy>>
component_installer_list_cromite;
@@ -106,7 +106,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -7953,6 +7953,13 @@ static_library("browser") {
@@ -7944,6 +7944,13 @@ static_library("browser") {
}
}
@@ -123,7 +123,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
--- a/chrome/browser/component_updater/registration.cc
+++ b/chrome/browser/component_updater/registration.cc
@@ -117,10 +117,20 @@
@@ -115,10 +115,20 @@
#include "chrome/browser/component_updater/file_type_policies_component_installer.h"
#endif
@@ -161,20 +161,21 @@ new file mode 100644
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -292,6 +292,9 @@ static_library("renderer") {
"//ppapi/shared_impl",
]
@@ -258,6 +258,10 @@ static_library("renderer") {
deps += [ "//components/strings" ]
}
+ if (is_android) {
+ deps += [ "//components/services/font/public/cpp" ]
+ }
if (is_linux || is_chromeos) {
deps += [ "//components/services/font/public/cpp" ]
}
+ if (is_android) {
+ deps += [ "//components/services/font/public/cpp" ]
+ }
+
if (enable_pdf) {
deps += [
"//components/pdf/renderer",
diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn
--- a/components/component_updater/installer_policies/BUILD.gn
+++ b/components/component_updater/installer_policies/BUILD.gn
@@ -36,6 +36,13 @@ static_library("installer_policies_no_content_deps") {
@@ -38,6 +38,13 @@ static_library("installer_policies_no_content_deps") {
"trust_token_key_commitments_component_installer_policy.h",
]
@@ -614,7 +615,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2582,6 +2582,17 @@ source_set("browser") {
@@ -2600,6 +2600,17 @@ source_set("browser") {
]
}
@@ -632,7 +633,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
if (is_linux || is_chromeos) {
sources -=
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
@@ -2627,6 +2638,13 @@ source_set("browser") {
@@ -2645,6 +2656,13 @@ source_set("browser") {
]
}
@@ -649,7 +650,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
--- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
+++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
@@ -51,6 +51,11 @@
@@ -52,6 +52,11 @@
#include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h"
#endif
@@ -661,7 +662,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
#include "content/browser/font_service.h" // nogncheck
@@ -336,6 +341,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
@@ -348,6 +353,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
}
#endif
@@ -695,7 +696,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
--- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn
@@ -349,6 +349,10 @@ target(link_target_type, "renderer") {
@@ -346,6 +346,10 @@ target(link_target_type, "renderer") {
deps += [ "//services/screen_ai/public/mojom" ]
}
@@ -733,7 +734,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
using blink::Platform;
using blink::WebAudioDevice;
using blink::WebAudioLatencyHint;
@@ -179,6 +196,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) {
@@ -180,6 +197,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) {
NOTREACHED();
}
@@ -771,7 +772,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
} // namespace
//------------------------------------------------------------------------------
@@ -192,18 +240,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
@@ -193,18 +241,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
is_locked_to_site_(false),
main_thread_scheduler_(main_thread_scheduler),
next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
@@ -883,7 +884,7 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
#include <memory>
@@ -40,13 +45,46 @@ struct SkFontMgr_Android_CustomFonts {
@@ -40,9 +45,42 @@ struct SkFontMgr_Android_CustomFonts {
* system IO resources on initialization.
*/
bool fIsolated;
@@ -923,11 +924,6 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
};
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
// Deprecated
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom);
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom);
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom,
std::unique_ptr<SkFontScanner> scanner);
@@ -950,7 +946,7 @@ diff --git a/third_party/skia/src/ports/SkFontConfigInterface.cpp b/third_party/
diff --git a/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp b/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
--- a/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
+++ b/third_party/skia/src/ports/SkFontConfigInterface_direct.cpp
@@ -707,3 +707,8 @@ bool SkFontConfigInterfaceDirect::matchFamilyName(const char familyName[],
@@ -715,3 +715,8 @@ bool SkFontConfigInterfaceDirect::matchFamilyName(const char familyName[],
SkStreamAsset* SkFontConfigInterfaceDirect::openStream(const FontIdentity& identity) {
return SkStream::MakeFromFile(identity.fString.c_str()).release();
}
@@ -1073,7 +1069,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
class SkTypeface_AndroidSystem : public SkTypeface_proxy {
public:
static sk_sp<SkTypeface_AndroidSystem> Make(sk_sp<SkTypeface> realTypeface,
@@ -110,7 +196,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
@@ -109,7 +195,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
class SkFontStyleSet_Android : public SkFontStyleSet {
public:
explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner,
@@ -1083,7 +1079,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
const SkString* cannonicalFamilyName = nullptr;
if (!family.fNames.empty()) {
cannonicalFamilyName = &family.fNames[0];
@@ -119,38 +206,60 @@ public:
@@ -118,38 +205,60 @@ public:
// TODO? make this lazy
for (int i = 0; i < family.fFonts.size(); ++i) {
@@ -1167,7 +1163,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
}
uint32_t variant = family.fVariant;
@@ -161,13 +270,25 @@ public:
@@ -160,13 +269,25 @@ public:
// The first specified family name overrides the family name found in the font.
// TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return
// all of the specified family names in addition to the names found in the font.
@@ -1199,7 +1195,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
int weight = fontFile.fWeight != 0 ? fontFile.fWeight : fontStyle.weight();
SkFontStyle::Slant slant = fontStyle.slant();
switch (fontFile.fStyle) {
@@ -178,6 +299,19 @@ public:
@@ -177,6 +298,19 @@ public:
}
fontStyle = SkFontStyle(weight, fontStyle.width(), slant);
@@ -1219,7 +1215,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
fStyles.push_back(
SkTypeface_AndroidSystem::Make(proxy,
fontStyle, proxy->isFixedPitch(),
@@ -206,15 +340,18 @@ public:
@@ -205,15 +339,18 @@ public:
return fStyles[index];
}
@@ -1241,7 +1237,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
SkString fFallbackFor;
friend struct NameToFamily;
@@ -235,24 +372,26 @@ struct NameToFamily {
@@ -234,24 +371,26 @@ struct NameToFamily {
class SkFontMgr_Android : public SkFontMgr {
public:
@@ -1272,7 +1268,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
}
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
this->findDefaultStyleSet();
@@ -310,33 +449,53 @@ protected:
@@ -309,33 +448,53 @@ protected:
return sset->matchStyle(style);
}
@@ -1341,7 +1337,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
}
}
return nullptr;
@@ -359,7 +518,7 @@ protected:
@@ -358,7 +517,7 @@ protected:
for (int bcp47Index = bcp47Count; bcp47Index --> 0;) {
SkLanguage lang(bcp47[bcp47Index]);
while (!lang.getTag().isEmpty()) {
@@ -1350,7 +1346,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
style, SkToBool(elegant),
lang.getTag(), character);
@@ -370,7 +529,7 @@ protected:
@@ -369,7 +528,7 @@ protected:
lang = lang.getParent();
}
}
@@ -1359,7 +1355,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
style, SkToBool(elegant),
SkString(), character);
@@ -421,6 +580,7 @@ protected:
@@ -420,6 +579,7 @@ protected:
private:
std::unique_ptr<SkFontScanner> fScanner;
@@ -1367,7 +1363,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
sk_sp<SkFontStyleSet> fDefaultStyleSet;
@@ -442,7 +602,7 @@ private:
@@ -441,7 +601,7 @@ private:
}
sk_sp<SkFontStyleSet_Android> newSet =
@@ -1376,22 +1372,16 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
if (0 == newSet->count()) {
return;
}
@@ -487,11 +647,11 @@ static char const * const gSystemFontUseStrings[] = {
@@ -486,7 +646,7 @@ static char const * const gSystemFontUseStrings[] = {
} // namespace
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom) {
- return SkFontMgr_New_Android(custom, SkFontScanner_Make_FreeType());
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) {
+ return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType());
}
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, std::unique_ptr<SkFontScanner> scanner) {
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom, std::unique_ptr<SkFontScanner> scanner) {
if (custom) {
SkASSERT(0 <= custom->fSystemFontUse);
SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings));
@@ -501,5 +661,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
@@ -496,5 +656,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
custom->fFontsXml,
custom->fFallbackFontsXml);
}
@@ -45,8 +45,8 @@ Require: bromite-build-utils.patch
.../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++
...tomTriStateSiteSettingsPreferenceImpl.java | 24 +
.../ContentSettingsResources.java | 37 +-
.../site_settings/SingleCategorySettings.java | 60 ++-
.../site_settings/SingleWebsiteSettings.java | 58 ++-
.../site_settings/SingleCategorySettings.java | 57 ++-
.../site_settings/SingleWebsiteSettings.java | 53 ++-
.../site_settings/SiteSettings.java | 33 +-
.../site_settings/SiteSettingsCategory.java | 18 +-
.../site_settings/SiteSettingsDelegate.java | 2 +
@@ -85,7 +85,7 @@ Require: bromite-build-utils.patch
.../platform/web_content_settings_client.h | 13 +
.../execution_context/execution_context.cc | 16 +
.../execution_context/execution_context.h | 5 +
74 files changed, 1965 insertions(+), 112 deletions(-)
74 files changed, 1962 insertions(+), 107 deletions(-)
create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -99,7 +99,7 @@ Require: bromite-build-utils.patch
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
@@ -69,6 +69,10 @@ import org.chromium.url.GURL;
@@ -70,6 +70,10 @@ import org.chromium.url.GURL;
import java.util.List;
import java.util.Set;
@@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
/** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */
public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
private final Context mContext;
@@ -239,7 +243,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -247,7 +251,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@Override
public boolean isHelpAndFeedbackEnabled() {
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
}
@Override
@@ -377,6 +381,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -385,6 +389,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin);
}
@@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
diff --git a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc
--- a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc
+++ b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc
@@ -191,7 +191,7 @@ namespace {
@@ -190,7 +190,7 @@ namespace {
void GetGuestViewDefaultContentSettingRules(
bool incognito,
RendererContentSettingRules* rules) {
@@ -152,7 +152,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -295,6 +295,7 @@ build_webui("build") {
@@ -312,6 +312,7 @@ build_webui("build") {
"privacy_sandbox/privacy_sandbox_browser_proxy.ts",
"relaunch_mixin.ts",
"reset_page/reset_browser_proxy.ts",
@@ -160,7 +160,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
"route.ts",
"router.ts",
"safety_hub/safety_hub_browser_proxy.ts",
@@ -306,7 +307,6 @@ build_webui("build") {
@@ -326,7 +327,6 @@ build_webui("build") {
"site_settings/constants.ts",
"site_settings/site_settings_mixin.ts",
"site_settings/site_settings_prefs_browser_proxy.ts",
@@ -171,14 +171,12 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -1339,6 +1339,7 @@
@@ -1342,4 +1342,5 @@
</settings-subpage>
</template>
</template>
+ <div id="bromite-placeholder"/>
</settings-animated-pages>
<cr-toast id="deleteBrowsingDataToast" duration="5000">
<div>[[dbdDeletionConfirmationToastLabel_]]</div>
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
@@ -190,7 +188,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
interface BlockAutoplayStatus {
enabled: boolean;
@@ -79,8 +80,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
@@ -78,8 +79,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
return 'settings-privacy-page';
}
@@ -296,7 +294,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html
--- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html
+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.html
@@ -53,5 +53,17 @@
@@ -54,5 +54,17 @@
icon="[[blockOptionIcon]]"
no-collapse>
</settings-collapse-radio-button>
@@ -478,13 +476,12 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
import {ChooserType, ContentSetting, ContentSettingsTypes, SiteSettingSource} from './constants.js';
import {getTemplate} from './site_details_permission.html.js';
@@ -293,15 +294,28 @@ export class SiteDetailsPermissionElement extends
@@ -293,14 +294,27 @@ export class SiteDetailsPermissionElement extends
return '';
}
+ let obj = this.getSettingData(category);
if (defaultSetting === ContentSetting.ASK ||
defaultSetting === ContentSetting.IMPORTANT_CONTENT) {
if (defaultSetting === ContentSetting.ASK) {
+ if (obj) {
+ let v = this.askSettingString_(category, "");
+ if (v !== "") return "(Default) " + v;
@@ -507,7 +504,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
if (this.useCustomSoundLabels_(category)) {
return this.i18n('siteSettingsActionMuteDefault');
}
@@ -320,12 +334,40 @@ export class SiteDetailsPermissionElement extends
@@ -319,12 +333,40 @@ export class SiteDetailsPermissionElement extends
private blockSettingString_(
category: ContentSettingsTypes, blockString: string,
muteString: string): string {
@@ -548,7 +545,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
/**
* @return true if |this| should be hidden.
*/
@@ -416,6 +458,8 @@ export class SiteDetailsPermissionElement extends
@@ -415,6 +457,8 @@ export class SiteDetailsPermissionElement extends
private showAskSetting_(
category: ContentSettingsTypes, setting: ContentSetting,
source: SiteSettingSource): boolean {
@@ -736,16 +733,16 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1732,6 +1732,7 @@ static_library("ui") {
@@ -1634,6 +1634,7 @@ static_library("ui") {
"//components/commerce/core/mojom:mojo_bindings",
"//components/commerce/core/webui",
"//components/endpoint_fetcher:endpoint_fetcher",
"//components/endpoint_fetcher",
+ "//components/content_settings/core/browser:browser",
"//components/enterprise/common:files_scan_data",
"//components/feedback/proto",
"//components/headless/policy",
@@ -4950,6 +4951,7 @@ static_library("ui") {
"//components/power_bookmarks/core:core",
@@ -4821,6 +4822,7 @@ static_library("ui") {
"//components/power_bookmarks/core",
"//components/power_bookmarks/storage",
"//components/prefs",
+ "//components/strings:components_strings_grit",
@@ -772,7 +769,7 @@ diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/c
diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc
--- a/chrome/browser/ui/views/page_info/page_info_main_view.cc
+++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc
@@ -59,6 +59,7 @@
@@ -58,6 +58,7 @@
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/flex_layout.h"
#include "ui/views/vector_icons.h"
@@ -780,7 +777,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
#include "ui/views/view_class_properties.h"
#if BUILDFLAG(FULL_SAFE_BROWSING)
@@ -284,8 +285,20 @@ void PageInfoMainView::SetPermissionInfo(
@@ -282,8 +283,20 @@ void PageInfoMainView::SetPermissionInfo(
scroll_view->SetDrawOverflowIndicator(false);
auto* content_view =
scroll_view->SetContents(std::make_unique<views::View>());
@@ -803,7 +800,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW);
content_view->SetProperty(views::kElementIdentifierKey,
kPermissionsElementId);
@@ -300,11 +313,16 @@ void PageInfoMainView::SetPermissionInfo(
@@ -298,11 +311,16 @@ void PageInfoMainView::SetPermissionInfo(
}
}
@@ -820,7 +817,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
toggle_row->SetProperty(views::kCrossAxisAlignmentKey,
views::LayoutAlignment::kStretch);
syncable_permission_rows_.emplace(permission.type, toggle_row);
@@ -312,6 +330,8 @@ void PageInfoMainView::SetPermissionInfo(
@@ -310,6 +328,8 @@ void PageInfoMainView::SetPermissionInfo(
}
for (auto& object : chosen_object_info_list) {
@@ -829,7 +826,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b
// The view takes ownership of the object info.
auto object_view = std::make_unique<ChosenObjectView>(
std::move(object),
@@ -322,6 +342,10 @@ void PageInfoMainView::SetPermissionInfo(
@@ -320,6 +340,10 @@ void PageInfoMainView::SetPermissionInfo(
content_view->AddChildView(std::move(object_view)));
}
@@ -852,7 +849,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
#include "components/page_info/core/features.h"
#include "components/page_info/core/proto/about_this_site_metadata.pb.h"
#include "components/page_info/page_info.h"
@@ -292,7 +294,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -290,7 +292,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT
? info.default_setting
: info.setting;
@@ -867,7 +864,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
// For guard content settings and Automatic Picture-in-Picture, ASK is treated
// as an "on" state.
const bool show_blocked_badge =
@@ -593,6 +602,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
@@ -591,6 +600,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
icon = &vector_icons::kPrinterIcon;
break;
default:
@@ -888,7 +885,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.h
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h
@@ -100,6 +100,11 @@ class PageInfoViewFactory {
@@ -97,6 +97,11 @@ class PageInfoViewFactory {
const PageInfo::PermissionInfo& info,
bool blocked_on_system_level = false);
@@ -1216,7 +1213,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/common/password_manager_features.h"
@@ -3842,6 +3846,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3912,6 +3916,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1286,7 +1283,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/content_settings_types.h"
@@ -261,13 +263,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
{ContentSettingsType::SUSPICIOUS_NOTIFICATION_IDS, nullptr},
{ContentSettingsType::DEVICE_ATTRIBUTES, nullptr},
});
-static_assert(
@@ -1354,7 +1351,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
NOTREACHED() << static_cast<int32_t>(type)
<< " is not a recognized content settings type.";
}
@@ -673,6 +694,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
@@ -668,6 +689,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS);
}
@@ -1534,7 +1531,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
--- a/components/browser_ui/site_settings/android/BUILD.gn
+++ b/components/browser_ui/site_settings/android/BUILD.gn
@@ -151,6 +151,23 @@ android_library("java") {
@@ -156,6 +156,23 @@ android_library("java") {
":site_settings_jni_headers",
"//components/content_settings/android:java_pref_names_srcjar",
]
@@ -1558,7 +1555,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
}
android_library("javatests") {
@@ -200,6 +217,7 @@ robolectric_library("junit") {
@@ -205,6 +222,7 @@ robolectric_library("junit") {
}
android_resources("java_resources") {
@@ -1569,7 +1566,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
+++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
@@ -189,4 +189,11 @@ The order of the following items is from: http://crbug.com/610358.
@@ -193,4 +193,11 @@ The order of the following items is from: http://crbug.com/610358.
android:title="@string/safety_hub_autorevocation_toggle_title"
android:summary="@string/safety_hub_autorevocation_toggle_summary" />
@@ -2251,16 +2248,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
int icon,
int title,
@ContentSettingValues @Nullable Integer defaultEnabledValue,
@@ -636,6 +657,8 @@ public class ContentSettingsResources {
R.string.website_settings_vr_ask,
R.string.website_settings_vr_block);
@@ -662,6 +683,8 @@ public class ContentSettingsResources {
R.string.website_settings_window_management_ask,
R.string.website_settings_window_management_block);
}
+ ResourceItem ri = BromiteCustomContentSettingImpl.getResourceItem(contentType);
+ if (ri != null) return ri;
assert false; // NOTREACHED
return assumeNonNull(null);
}
@@ -794,6 +817,14 @@ public class ContentSettingsResources {
@@ -820,6 +843,14 @@ public class ContentSettingsResources {
return getResourceItem(contentType).getDefaultDisabledValue();
}
@@ -2275,7 +2272,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/**
* Returns the string resource id for a given ContentSetting to show with a permission category.
*
@@ -968,6 +999,8 @@ public class ContentSettingsResources {
@@ -994,6 +1025,8 @@ public class ContentSettingsResources {
*/
public static int @Nullable [] getTriStateSettingDescriptionIDs(
int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) {
@@ -2287,7 +2284,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -343,6 +343,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -344,6 +344,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
website.site()
.getContentSetting(
browserContextHandle, mCategory.getContentSettingsType());
@@ -2298,7 +2295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSetting != null) {
return ContentSettingValues.BLOCK == contentSetting;
}
@@ -531,6 +535,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -532,6 +536,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -2306,7 +2303,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureGlobalToggles();
if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) {
RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered");
@@ -566,7 +571,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -567,7 +572,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
if (queryHasChanged) getInfoForOrigins();
});
@@ -2316,7 +2313,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
MenuItem help =
menu.add(
Menu.NONE,
@@ -578,12 +584,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -579,12 +585,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getResources(),
R.drawable.ic_help_and_feedback,
getContext().getTheme()));
@@ -2358,34 +2355,37 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// OnPreferenceClickListener:
@@ -962,21 +981,18 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
default:
@@ -963,17 +982,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
break;
}
-
- int exceptionDialogMessageResourceId = getAddExceptionDialogMessageResourceId();
- assert allowSpecifyingExceptions == (exceptionDialogMessageResourceId != 0);
+ Boolean allow = BromiteCustomContentSettingImpl.allowSpecifyingExceptions(mCategory);
+ if (allow != null) allowSpecifyingExceptions = (boolean)allow;
if (allowSpecifyingExceptions) {
+ if (allow != null) shouldAddExceptionButton = (boolean)allow;
+
int exceptionDialogMessageResourceId = getAddExceptionDialogMessageResourceId();
assert shouldAddExceptionButton == (exceptionDialogMessageResourceId != 0);
if (shouldAddExceptionButton) {
int blockAddingExceptionsReasonResourceId =
mCategory.getBlockAddingExceptionsReasonResourceId();
- boolean enableAddExceptionButton =
- (!mCategory.isManaged()
- || mCategory.getType()
- == SiteSettingsCategory.Type.THIRD_PARTY_COOKIES);
+ int exceptionDialogMessageResourceId = getAddExceptionDialogMessageResourceId();
+ assert exceptionDialogMessageResourceId != 0;
getPreferenceScreen()
.addPreference(
new AddExceptionPreference(
- || mCategory.getType()
- == SiteSettingsCategory.Type.THIRD_PARTY_COOKIES)
- && blockAddingExceptionsReasonResourceId == 0;
String exceptionDialogMessage =
exceptionDialogMessageResourceId != 0
? getString(exceptionDialogMessageResourceId)
@@ -984,7 +1001,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getStyledContext(),
ADD_EXCEPTION_KEY,
getString(exceptionDialogMessageResourceId),
exceptionDialogMessage,
- enableAddExceptionButton,
+ true,
+ /*enableAddExceptionButton*/ true,
mCategory,
this));
}
@@ -1152,8 +1168,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1168,8 +1185,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
private boolean isBlocked() {
switch (mGlobalToggleLayout) {
case GlobalToggleLayout.TRI_STATE_TOGGLE:
@@ -2402,7 +2402,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE:
TriStateCookieSettingsPreference triStateCookieToggle =
@@ -1302,7 +1326,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1320,7 +1345,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (res_id != -1) {
infoText.setSummary(res_id);
} else {
@@ -2415,7 +2415,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
@@ -1341,6 +1369,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1359,6 +1388,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
screen.removePreference(mLocationTriStatePref);
}
@@ -2423,7 +2423,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
maybeShowReasonToggleDisabled(screen);
@@ -1553,6 +1582,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1571,6 +1601,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType);
}
triStateToggle.initialize(
@@ -2431,7 +2431,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
setting,
descriptionIds,
iconIds,
@@ -1712,6 +1742,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1730,6 +1761,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@ContentSettingValues
Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
@@ -2449,7 +2449,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
@@ -57,6 +57,7 @@ import java.util.Collection;
@@ -59,6 +59,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -2457,21 +2457,20 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/** Shows the permissions and other settings for a particular website. */
@NullMarked
@@ -188,7 +189,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
case ContentSettingsType.LOCAL_NETWORK_ACCESS:
return "local_network_access";
@@ -192,7 +193,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
case ContentSettingsType.WINDOW_MANAGEMENT:
return "window_management_permission_list";
default:
- return null;
+ return BromiteCustomContentSettingImpl.getProfilePrefKey(type);
}
}
@@ -594,8 +595,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -598,14 +599,27 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setupContentSettingsPreferences() {
Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER);
mMaxPermissionOrder = permissionsHeaderPref.getOrder();
- for (@ContentSettingsType.EnumType int type : SiteSettingsUtil.SETTINGS_ORDER) {
- Preference preference = new ChromeSwitchPreference(getStyledContext());
+ List<Integer> order = BromiteCustomContentSettingImpl.getSettingsOrder();
+ for (@ContentSettingsType.EnumType int type : order) {
+ @ContentSettingValues @Nullable Integer value =
@@ -2481,20 +2480,27 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ value = WebsitePreferenceBridge.getDefaultContentSetting(
+ getSiteSettingsDelegate().getBrowserContextHandle(), type);
+ }
+ Preference preference =
Preference preference =
+ BromiteCustomContentSettingImpl
+ .createWebSitePreference(type, getStyledContext(), value);
+ if (preference == null) {
+ preference = new ChromeSwitchPreference(getStyledContext());
+ preference =
(isOneTime(type)
&& PermissionsAndroidFeatureMap.isEnabled(
PermissionsAndroidFeatureList
.APPROXIMATE_GEOLOCATION_PERMISSION))
? new ChromeImageViewPreference(getStyledContext())
: new ChromeSwitchPreference(getStyledContext());
+ }
preference.setKey(getPreferenceKey(type));
if (type == ContentSettingsType.ADS) {
@@ -1280,20 +1294,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1290,7 +1304,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSettingValues @Nullable Integer value,
boolean isEmbargoed,
boolean isOneTime) {
- if (value == null) return;
+ @ContentSettingsType.EnumType
+ int content_type = getContentSettingsTypeFromPreferenceKey(preference.getKey());
+ BromiteCustomContentSetting cs =
+ BromiteCustomContentSettingImpl.getContentSetting(content_type);
@@ -2505,33 +2511,37 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ getSiteSettingsDelegate().getBrowserContextHandle(), content_type);
+ }
setUpPreferenceCommon(preference, value);
- ChromeSwitchPreference switchPreference = (ChromeSwitchPreference) preference;
- @ContentSettingsType.EnumType
- int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey());
- switchPreference.setChecked(value == getEnabledValue(contentType));
+ Preference switchPreference = preference;
+ if (preference instanceof ChromeSwitchPreference) {
+ ((ChromeSwitchPreference)switchPreference).setChecked(value != ContentSettingValues.BLOCK);
+ } else {
+ BromiteCustomContentSettingImpl.setWebSitePreferenceValue(content_type, preference, value);
+ }
switchPreference.setSummary(
preference.setOnPreferenceChangeListener(this);
@ContentSettingsType.EnumType
@@ -1298,7 +1321,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
preference.setSummary(
isEmbargoed
? getString(R.string.automatically_blocked)
- : getString(ContentSettingsResources.getCategorySummary(value, isOneTime)));
+ : getString(ContentSettingsResources.getCategorySummary(content_type, value, isOneTime)));
switchPreference.setOnPreferenceChangeListener(this);
- if (contentType == mHighlightedPermission) {
- switchPreference.setBackgroundColor(
+ @ContentSettingsType.EnumType
+ int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey());
+ if (preference instanceof ChromeSwitchPreference && contentType == mHighlightedPermission) {
+ ((ChromeSwitchPreference)switchPreference).setBackgroundColor(
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
.getDefaultColor());
}
@@ -1518,14 +1544,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (preference instanceof ChromeImageViewPreference) {
ChromeImageViewPreference oneTimePreference = (ChromeImageViewPreference) preference;
oneTimePreference.setImageView(
@@ -1313,10 +1336,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
oneTimePreference.setBackgroundColor(mHighlightColor);
}
} else {
- ChromeSwitchPreference switchPreference = (ChromeSwitchPreference) preference;
- switchPreference.setChecked(value == getEnabledValue(contentType));
- if (contentType == mHighlightedPermission) {
- switchPreference.setBackgroundColor(
+ Preference switchPreference = preference;
+ if (preference instanceof ChromeSwitchPreference) {
+ ((ChromeSwitchPreference)switchPreference).setChecked(value != ContentSettingValues.BLOCK);
+ } else {
+ BromiteCustomContentSettingImpl.setWebSitePreferenceValue(content_type, preference, value);
+ }
+ if (preference instanceof ChromeSwitchPreference && contentType == mHighlightedPermission) {
+ ((ChromeSwitchPreference)switchPreference).setBackgroundColor(
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
.getDefaultColor());
}
@@ -1542,14 +1569,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (newValue instanceof Boolean) {
permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK;
} else {
@@ -2622,25 +2632,25 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java
@@ -79,7 +79,7 @@ public class SiteSettingsCategory {
Type.JAVASCRIPT_OPTIMIZER,
@@ -80,7 +80,7 @@ public class SiteSettingsCategory {
Type.SERIAL_PORT,
Type.LOCAL_NETWORK_ACCESS,
Type.WINDOW_MANAGEMENT,
- Type.NUM_ENTRIES
+ Type.NUM_ENTRIES_CHROMIUM
})
@Retention(RetentionPolicy.SOURCE)
public @interface Type {
@@ -123,7 +123,7 @@ public class SiteSettingsCategory {
int LOCAL_NETWORK_ACCESS = 35;
@@ -125,7 +125,7 @@ public class SiteSettingsCategory {
int WINDOW_MANAGEMENT = 36;
/** Number of handled categories used for calculating array sizes. */
- int NUM_ENTRIES = 36;
+ int NUM_ENTRIES_CHROMIUM = 36;
- int NUM_ENTRIES = 37;
+ int NUM_ENTRIES_CHROMIUM = 37;
}
private final BrowserContextHandle mBrowserContextHandle;
@@ -174,6 +174,9 @@ public class SiteSettingsCategory {
@@ -176,6 +176,9 @@ public class SiteSettingsCategory {
} else {
permission = "";
}
@@ -2650,7 +2660,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return new SiteSettingsCategory(browserContextHandle, type, permission);
}
@@ -182,7 +185,7 @@ public class SiteSettingsCategory {
@@ -184,7 +187,7 @@ public class SiteSettingsCategory {
@ContentSettingsType.EnumType int contentSettingsType) {
assert contentSettingsType != -1;
assert Type.ALL_SITES == 0;
@@ -2659,7 +2669,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSettingsType(i) == contentSettingsType) {
return createFromType(browserContextHandle, i);
}
@@ -193,7 +196,7 @@ public class SiteSettingsCategory {
@@ -195,7 +198,7 @@ public class SiteSettingsCategory {
public static @Nullable SiteSettingsCategory createFromPreferenceKey(
BrowserContextHandle browserContextHandle, String preferenceKey) {
assert Type.ALL_SITES == 0;
@@ -2668,7 +2678,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (preferenceKey(i).equals(preferenceKey)) {
return createFromType(browserContextHandle, i);
}
@@ -274,8 +277,7 @@ public class SiteSettingsCategory {
@@ -278,8 +281,7 @@ public class SiteSettingsCategory {
case Type.TRACKING_PROTECTION:
return ContentSettingsType.DEFAULT; // Conversion unavailable.
}
@@ -2678,7 +2688,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
/**
@@ -372,8 +374,12 @@ public class SiteSettingsCategory {
@@ -378,8 +380,12 @@ public class SiteSettingsCategory {
case Type.ZOOM:
return "zoom";
default:
@@ -2694,7 +2704,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
@@ -203,6 +203,8 @@ public interface SiteSettingsDelegate {
@@ -208,6 +208,8 @@ public interface SiteSettingsDelegate {
*/
String getRelatedWebsiteSetOwner(String memberOrigin);
@@ -2769,19 +2779,19 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -115,7 +115,7 @@ public class WebsitePermissionsFetcher {
case ContentSettingsType.USB_GUARD:
return WebsitePermissionsType.CHOSEN_OBJECT_INFO;
@@ -124,7 +124,7 @@ public class WebsitePermissionsFetcher {
}
break;
default:
- return null;
+ return BromiteCustomContentSettingImpl.getPermissionsType(contentSettingsType);
}
return null;
}
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
@@ -321,7 +321,7 @@ public class WebsitePreferenceBridge {
@@ -317,7 +317,7 @@ public class WebsitePreferenceBridge {
case ContentSettingsType.PROTECTED_MEDIA_IDENTIFIER:
return true;
default:
@@ -2790,7 +2800,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -337,7 +337,6 @@ public class WebsitePreferenceBridge {
@@ -333,7 +333,6 @@ public class WebsitePreferenceBridge {
public static boolean isCategoryEnabled(
BrowserContextHandle browserContextHandle,
@ContentSettingsType.EnumType int contentSettingsType) {
@@ -2877,7 +2887,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s
diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn
--- a/components/content_settings/core/browser/BUILD.gn
+++ b/components/content_settings/core/browser/BUILD.gn
@@ -77,6 +77,13 @@ static_library("browser") {
@@ -83,6 +83,13 @@ static_library("browser") {
}
configs += [ "//build/config/compiler:wexit_time_destructors" ]
@@ -2900,7 +2910,7 @@ new file mode 100644
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -16,6 +16,7 @@
@@ -19,6 +19,7 @@
#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/features.h"
@@ -2908,10 +2918,10 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -864,6 +865,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_ANDROID,
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -872,6 +873,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
+#include "components/content_settings/core/browser/bromite_content_settings.inc"
}
@@ -2919,7 +2929,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc
--- a/components/content_settings/core/browser/content_settings_uma_util.cc
+++ b/components/content_settings/core/browser/content_settings_uma_util.cc
@@ -222,11 +222,7 @@ void RecordContentSettingsHistogram(const std::string& name,
@@ -224,11 +224,7 @@ void RecordContentSettingsHistogram(const std::string& name,
}
int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) {
@@ -2935,15 +2945,15 @@ diff --git a/components/content_settings/core/browser/content_settings_uma_util.
diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc
--- a/components/content_settings/core/browser/content_settings_utils.cc
+++ b/components/content_settings/core/browser/content_settings_utils.cc
@@ -16,6 +16,7 @@
#include "build/build_config.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -19,6 +19,7 @@
#include "components/content_settings/core/browser/permission_settings_info.h"
#include "components/content_settings/core/browser/permission_settings_registry.h"
#include "components/content_settings/core/browser/website_settings_registry.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/content_settings_utils.h"
@@ -125,6 +126,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) {
@@ -133,6 +134,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) {
void GetRendererContentSettingRules(const HostContentSettingsMap* map,
RendererContentSettingRules* rules) {
@@ -3060,7 +3070,7 @@ diff --git a/components/content_settings/core/common/BUILD.gn b/components/conte
}
source_set("unit_tests") {
@@ -91,6 +98,7 @@ mojom("content_settings_types") {
@@ -90,6 +97,7 @@ mojom("content_settings_types") {
sources = [ "content_settings_types.mojom" ]
public_deps = [ "//mojo/public/mojom/base" ]
@@ -3077,11 +3087,12 @@ new file mode 100644
diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc
--- a/components/content_settings/core/common/content_settings.cc
+++ b/components/content_settings/core/common/content_settings.cc
@@ -16,10 +16,11 @@
@@ -18,11 +18,12 @@
#include "components/content_settings/core/common/content_settings_metadata.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/content_settings_utils.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "third_party/abseil-cpp/absl/functional/overload.h"
namespace {
@@ -3090,7 +3101,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
const GURL& primary_url) {
std::erase_if(settings,
[&primary_url](const ContentSettingPatternSource& source) {
@@ -98,6 +99,13 @@ std::ostream& operator<<(std::ostream& os,
@@ -106,6 +107,13 @@ std::ostream& operator<<(std::ostream& os,
// static
bool RendererContentSettingRules::IsRendererContentSetting(
ContentSettingsType content_type) {
@@ -3104,7 +3115,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
return content_type == ContentSettingsType::IMAGES ||
content_type == ContentSettingsType::JAVASCRIPT ||
content_type == ContentSettingsType::POPUPS ||
@@ -107,7 +115,10 @@ bool RendererContentSettingRules::IsRendererContentSetting(
@@ -115,7 +123,10 @@ bool RendererContentSettingRules::IsRendererContentSetting(
void RendererContentSettingRules::FilterRulesByOutermostMainFrameURL(
const GURL& outermost_main_frame_url) {
@@ -3116,7 +3127,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
}
RendererContentSettingRules::RendererContentSettingRules() = default;
@@ -127,7 +138,20 @@ RendererContentSettingRules& RendererContentSettingRules::operator=(
@@ -135,7 +146,20 @@ RendererContentSettingRules& RendererContentSettingRules::operator=(
RendererContentSettingRules&& rules) = default;
bool RendererContentSettingRules::operator==(
@@ -3141,7 +3152,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -74,10 +74,22 @@ std::ostream& operator<<(std::ostream& os,
@@ -100,10 +100,22 @@ std::ostream& operator<<(std::ostream& os,
typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
@@ -3167,7 +3178,7 @@ diff --git a/components/content_settings/core/common/content_settings.h b/compon
diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom
--- a/components/content_settings/core/common/content_settings.mojom
+++ b/components/content_settings/core/common/content_settings.mojom
@@ -74,6 +74,11 @@ struct RuleMetaData {
@@ -73,6 +73,11 @@ struct RuleMetaData {
mojo_base.mojom.Value rule_options;
};
@@ -3179,7 +3190,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
// This mirrors the C++ type in content_settings.h.
struct ContentSettingPatternSource {
ContentSettingsPattern primary_pattern;
@@ -87,5 +92,6 @@ struct ContentSettingPatternSource {
@@ -86,5 +91,6 @@ struct ContentSettingPatternSource {
// This mirrors the C++ type in content_settings.h.
// TODO(crbug.com/40282541): This should be removed.
struct RendererContentSettingRules {
@@ -3189,7 +3200,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
--- a/components/content_settings/core/common/content_settings_mojom_traits.cc
+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
@@ -120,12 +120,22 @@ bool StructTraits<content_settings::mojom::ContentSettingPatternSourceDataView,
@@ -115,12 +115,22 @@ bool StructTraits<content_settings::mojom::ContentSettingPatternSourceDataView,
data.ReadMetadata(&out->metadata) && data.ReadSource(&out->source);
}
@@ -3254,10 +3265,10 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom
--- a/components/content_settings/core/common/content_settings_types.mojom
+++ b/components/content_settings/core/common/content_settings_types.mojom
@@ -491,5 +491,6 @@ enum ContentSettingsType {
// site. Used for recovering notification contents from the database if the
// user decides they would like to see all of these notifications.
SUSPICIOUS_NOTIFICATION_IDS,
@@ -498,5 +498,6 @@ enum ContentSettingsType {
// Setting for enabling the Device Attributes API. Spec link:
// https://wicg.github.io/WebApiDevice/device_attributes/
DEVICE_ATTRIBUTES,
+#include "components/content_settings/core/common/bromite_content_settings.inc"
};
// LINT.ThenChange(//components/content_settings/core/browser/content_settings_uma_util.cc:kHistogramValue)
@@ -3419,7 +3430,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/page_info/android/page_info_client.h"
@@ -169,6 +170,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -184,6 +185,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
permissions_to_display.push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS);
}
@@ -3435,7 +3446,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
std::map<ContentSettingsType, ContentSetting>
user_specified_settings_to_display;
std::map<ContentSettingsType, bool>
@@ -228,6 +238,14 @@ std::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
@@ -243,6 +253,14 @@ std::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
return permission.setting;
}
@@ -3461,7 +3472,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
@@ -1314,6 +1315,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1317,6 +1318,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
@@ -3476,7 +3487,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
// Note |ContentSettingsType::ADS| will show up regardless of its default
// value when it has been activated on the current origin.
if (info.type == ContentSettingsType::ADS) {
@@ -1430,7 +1439,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1433,7 +1442,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3508,7 +3519,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
#include "components/page_info/core/features.h"
#include "components/page_info/page_info.h"
#include "components/page_info/page_info_ui_delegate.h"
@@ -333,6 +334,13 @@ void CreateOppositeToDefaultSiteException(
@@ -317,6 +318,13 @@ void CreateOppositeToDefaultSiteException(
std::u16string GetPermissionAskStateString(ContentSettingsType type) {
int message_id = kInvalidResourceID;
@@ -3522,7 +3533,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
switch (type) {
case ContentSettingsType::GEOLOCATION:
message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK;
@@ -626,6 +634,12 @@ PageInfoUI::~PageInfoUI() = default;
@@ -615,6 +623,12 @@ PageInfoUI::~PageInfoUI() = default;
// static
std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -3535,7 +3546,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id);
@@ -636,6 +650,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -625,6 +639,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
// static
std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
ContentSettingsType type) {
@@ -3548,7 +3559,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
@@ -1077,6 +1097,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
@@ -1051,6 +1071,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
@@ -3629,7 +3640,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -43,6 +43,7 @@
@@ -42,6 +42,7 @@
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/v8_cache_options.mojom-blink-forward.h"
@@ -3637,7 +3648,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
#include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/execution_context/security_context.h"
@@ -102,6 +103,10 @@ class SecurityOrigin;
@@ -101,6 +102,10 @@ class SecurityOrigin;
class ScriptState;
class ScriptWrappable;
class TrustedTypePolicyFactory;
+20 -18
View File
@@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/aw_browser_main_parts.cc | 7 +++
.../component_updater/registration.cc | 12 +++--
.../nonembedded/webview_apk_application.cc | 2 +-
.../nonembedded/webview_apk_process.cc | 19 +++++---
.../nonembedded/webview_apk_process.cc | 20 +++++---
.../nonembedded/webview_apk_process.h | 4 +-
.../browser/component_updater/registration.cc | 2 +
.../component_updater/component_installer.cc | 48 +++++++++++--------
@@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../component_updater_url_constants.cc | 4 +-
.../component_updater/configurator_impl.cc | 8 +---
.../component_updater/configurator_impl.h | 2 -
components/crx_file/crx_build_action_main.cc | 11 +++--
components/crx_file/crx_build_action_main.cc | 10 +++-
components/crx_file/crx_verifier.cc | 16 +++++++
components/update_client/component.cc | 12 +++++
components/update_client/crx_downloader.cc | 5 ++
@@ -59,7 +59,7 @@ diff --git a/android_webview/browser/aw_browser_main_parts.cc b/android_webview/
diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc
--- a/android_webview/nonembedded/component_updater/registration.cc
+++ b/android_webview/nonembedded/component_updater/registration.cc
@@ -40,6 +40,9 @@ void RegisterComponentsForUpdate(
@@ -39,6 +39,9 @@ void RegisterComponentsForUpdate(
std::vector<std::unique_ptr<component_updater::ComponentInstallerPolicy>>
component_installer_list;
@@ -69,7 +69,7 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
component_installer_list.push_back(
std::make_unique<
component_updater::OriginTrialsComponentInstallerPolicy>());
@@ -111,14 +114,17 @@ void RegisterComponentsForUpdate(
@@ -96,14 +99,17 @@ void RegisterComponentsForUpdate(
}
base::RepeatingClosure barrier_closure = base::BarrierClosure(
@@ -93,7 +93,7 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
diff --git a/android_webview/nonembedded/webview_apk_application.cc b/android_webview/nonembedded/webview_apk_application.cc
--- a/android_webview/nonembedded/webview_apk_application.cc
+++ b/android_webview/nonembedded/webview_apk_application.cc
@@ -15,7 +15,7 @@ namespace android_webview {
@@ -14,7 +14,7 @@ namespace android_webview {
void JNI_WebViewApkApplication_InitializeGlobalsAndResources(JNIEnv* env) {
InitIcuAndResourceBundleBrowserSide();
@@ -105,7 +105,7 @@ diff --git a/android_webview/nonembedded/webview_apk_application.cc b/android_we
diff --git a/android_webview/nonembedded/webview_apk_process.cc b/android_webview/nonembedded/webview_apk_process.cc
--- a/android_webview/nonembedded/webview_apk_process.cc
+++ b/android_webview/nonembedded/webview_apk_process.cc
@@ -34,27 +34,34 @@ WebViewApkProcess* WebViewApkProcess::GetInstance() {
@@ -36,30 +36,36 @@ WebViewApkProcess* WebViewApkProcess::GetInstance() {
// static
// Must be called exactly once during the process startup.
@@ -133,16 +133,19 @@ diff --git a/android_webview/nonembedded/webview_apk_process.cc b/android_webvie
// `base::MessagePumpType::JAVA` so that the `SingleThreadExecutor` will bind
// to the java thread the `WebViewApkProcess` is created on.
- main_task_executor_ = std::make_unique<base::SingleThreadTaskExecutor>(
- base::MessagePumpType::JAVA);
+ if (!embedded) {
+ main_task_executor_ = std::make_unique<base::SingleThreadTaskExecutor>(
base::MessagePumpType::JAVA);
+ base::MessagePumpType::JAVA);
+ }
+
// WebView is not compatible with new compression protocols.
base::CommandLine::ForCurrentProcess()->AppendSwitch(
update_client::switches::kComponentUpdaterCompatProtocols);
- RegisterPathProvider();
+ if (!embedded) {
+ RegisterPathProvider();
+ }
- RegisterPathProvider();
component_updater::RegisterPathProvider(
/*components_system_root_key=*/android_webview::DIR_COMPONENTS_ROOT,
/*components_system_root_key_alt=*/android_webview::DIR_COMPONENTS_ROOT,
@@ -168,7 +171,7 @@ diff --git a/android_webview/nonembedded/webview_apk_process.h b/android_webview
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
--- a/chrome/browser/component_updater/registration.cc
+++ b/chrome/browser/component_updater/registration.cc
@@ -122,6 +122,8 @@ namespace component_updater {
@@ -120,6 +120,8 @@ namespace component_updater {
void RegisterComponentsForUpdate() {
auto* const cus = g_browser_process->component_updater();
@@ -443,29 +446,28 @@ diff --git a/components/component_updater/configurator_impl.h b/components/compo
diff --git a/components/crx_file/crx_build_action_main.cc b/components/crx_file/crx_build_action_main.cc
--- a/components/crx_file/crx_build_action_main.cc
+++ b/components/crx_file/crx_build_action_main.cc
@@ -14,6 +14,7 @@
@@ -9,6 +9,7 @@
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/logging.h"
+#include "base/strings/string_number_conversions.h"
#include "components/crx_file/crx_creator.h"
#include "crypto/rsa_private_key.h"
#include "crypto/keypair.h"
@@ -30,9 +31,13 @@ int main(int argc, char* argv[]) {
@@ -30,8 +31,13 @@ int main(int argc, char** raw_argv) {
VLOG(0) << "Failed to read key material from " << argv[3];
return -1;
}
+ auto signing_key = crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(
+ std::vector<uint8_t>(key_file.begin(), key_file.end()));
+ base::as_byte_span(key_file));
+ std::vector<uint8_t> public_key;
+ signing_key->ExportPublicKey(&public_key);
+ VLOG(0) << "Pubkey: " << base::HexEncode(public_key);
+
return static_cast<int>(crx_file::Create(
base::FilePath::FromASCII(argv[1]), base::FilePath::FromASCII(argv[2]),
- crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(
- std::vector<uint8_t>(key_file.begin(), key_file.end()))
- .get()));
- *crypto::keypair::PrivateKey::FromPrivateKeyInfo(
- base::as_byte_span(key_file))));
+ signing_key.get()));
}
diff --git a/components/crx_file/crx_verifier.cc b/components/crx_file/crx_verifier.cc
@@ -9,27 +9,29 @@ PartitionNelAndReportingByNetworkIsolationKey, kSplitCacheByNavigationInitiator
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../browser/net/profile_network_context_service.cc | 2 +-
.../browser/net/profile_network_context_service.cc | 4 ++--
.../Enable-network-isolation-features.inc | 9 +++++++++
.../Enable-network-isolation-features.inc | 1 +
net/http/http_cache.cc | 14 +++++++++-----
net/http/http_cache.h | 2 +-
5 files changed, 21 insertions(+), 7 deletions(-)
5 files changed, 22 insertions(+), 8 deletions(-)
create mode 100644 cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Enable-network-isolation-features.inc
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -1285,7 +1285,7 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) {
field_trial = base::FeatureList::GetFieldTrial(
net::features::kSplitCacheByIncludeCredentials);
current_field_trial_status +=
- (field_trial ? field_trial->group_name() : "None");
+ (field_trial ? field_trial->group_name() : "EnableFeatureForTests");
@@ -467,8 +467,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) {
experiment_parts.push_back(kDiskCacheExperimentNameNone);
// SplitCacheByIncludeCredentials experiment:
experiment_parts.push_back(credentials_field_trial
- ? credentials_field_trial->group_name()
- : kDiskCacheExperimentNameNone);
+ ? "EnableFeatureForTests"
+ : "EnableFeatureForTests");
if (disk_cache::InBackendExperiment()) {
if (disk_cache::InSimpleBackendExperimentGroup()) {
// Add the disk cache backend experiment group if active.
std::string_view backend_experiment = GetDiskCacheBackendExperimentString();
diff --git a/cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc b/cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc
new file mode 100644
--- /dev/null
@@ -53,7 +55,7 @@ new file mode 100644
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
--- a/net/http/http_cache.cc
+++ b/net/http/http_cache.cc
@@ -652,7 +652,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo* request) {
@@ -671,7 +671,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo* request) {
// static
// Generate a key that can be used inside the cache.
@@ -62,7 +64,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
const GURL& url,
int load_flags,
const NetworkIsolationKey& network_isolation_key,
@@ -690,8 +690,8 @@ std::string HttpCache::GenerateCacheKey(
@@ -709,8 +709,8 @@ std::string HttpCache::GenerateCacheKey(
const bool is_initiator_cross_site =
!net::SchemefulSite::IsSameSite(*initiator, url::Origin::Create(url));
if (is_initiator_cross_site) {
@@ -73,7 +75,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
}
}
isolation_key = base::StrCat(
@@ -706,9 +706,11 @@ std::string HttpCache::GenerateCacheKey(
@@ -725,9 +725,11 @@ std::string HttpCache::GenerateCacheKey(
// Strip out the reference, username, and password sections of the URL and
// concatenate with the credential_key, the post_key, and the network
// isolation key if we are splitting the cache.
@@ -86,7 +88,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
}
// static
@@ -731,11 +733,13 @@ HttpCache::GenerateCacheKeyForRequestWithAlternateURL(
@@ -750,11 +752,13 @@ HttpCache::GenerateCacheKeyForRequestWithAlternateURL(
const int64_t upload_data_identifier =
request->upload_data_stream ? request->upload_data_stream->identifier()
: int64_t(0);
@@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/profiles/profile_manager.cc | 11 +
chrome/browser/profiles/renderer_updater.cc | 19 +-
chrome/browser/profiles/renderer_updater.h | 3 +
.../browser/ui/webui/chrome_web_ui_configs.cc | 6 +
.../browser/ui/webui/chrome_web_ui_configs.cc | 7 +-
chrome/chrome_paks.gni | 2 +
chrome/common/renderer_configuration.mojom | 1 +
chrome/renderer/BUILD.gn | 6 +
@@ -135,11 +135,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../renderer/web_ui_injection_host.cc | 40 +
.../renderer/web_ui_injection_host.h | 31 +
.../strings/userscripts_strings.grdp | 54 ++
content/common/features.gni | 2 +-
.../Experimental-user-scripts-support.inc | 13 +
ipc/ipc_message_start.h | 1 +
tools/gritsettings/resource_ids.spec | 6 +
112 files changed, 10380 insertions(+), 3 deletions(-)
111 files changed, 10379 insertions(+), 3 deletions(-)
create mode 100644 components/user_scripts/README.md
create mode 100755 components/user_scripts/android/BUILD.gn
create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
@@ -233,7 +232,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -200,7 +200,11 @@ if (_is_default_toolchain) {
@@ -191,7 +191,11 @@ if (_is_default_toolchain) {
sources = chrome_java_resources
sources += [ "//chrome/android/java/res_app/layout/main.xml" ]
@@ -246,7 +245,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
":chrome_base_module_resources",
":ui_locale_string_resources",
"//chrome/android/webapk/libs/common:splash_resources",
@@ -704,6 +708,7 @@ if (_is_default_toolchain) {
@@ -701,6 +705,7 @@ if (_is_default_toolchain) {
"//components/ukm/android:java",
"//components/url_formatter/android:url_formatter_java",
"//components/user_prefs/android:java",
@@ -254,7 +253,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/variations:variations_java",
"//components/variations/android:variations_java",
"//components/viz/service:service_java",
@@ -1668,6 +1673,7 @@ if (_is_default_toolchain) {
@@ -1687,6 +1692,7 @@ if (_is_default_toolchain) {
java_group("chrome_public_non_pak_assets") {
deps = [
"//chrome/android/webapk/libs/runtime_library:runtime_library_assets",
@@ -265,7 +264,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -154,6 +154,11 @@ for the previous order (main_preferences_legacy). -->
@@ -153,6 +153,11 @@ for the previous order (main_preferences_legacy). -->
android:key="useragent_settings"
android:order="20"
android:title="@string/prefs_useragent_settings"/>
@@ -280,7 +279,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
@@ -76,6 +76,7 @@ import org.chromium.ui.base.DeviceFormFactor;
@@ -80,6 +80,7 @@ import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.MimeTypeUtils;
import org.chromium.ui.widget.Toast;
import org.chromium.url.GURL;
@@ -288,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
import java.io.File;
@@ -440,6 +441,11 @@ public class DownloadUtils {
@@ -451,6 +452,11 @@ public class DownloadUtils {
String referrer,
@DownloadOpenSource int source,
Context context) {
@@ -341,7 +340,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3662,6 +3662,13 @@ static_library("browser") {
@@ -3675,6 +3675,13 @@ static_library("browser") {
]
deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
}
@@ -358,7 +357,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -187,6 +187,7 @@
@@ -186,6 +186,7 @@
#include "components/ui_devtools/switches.h"
#include "components/variations/variations_switches.h"
#include "components/version_info/channel.h"
@@ -369,15 +368,15 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -280,6 +280,7 @@
@@ -278,6 +278,7 @@
#include "components/ntp_tiles/popular_sites_impl.h"
#include "components/permissions/contexts/geolocation_permission_context_android.h"
#include "components/webapps/browser/android/install_prompt_prefs.h"
+#include "components/user_scripts/browser/user_script_prefs.h"
#else // BUILDFLAG(IS_ANDROID)
#include "chrome/browser/contextual_cueing/contextual_cueing_prefs.h"
#include "chrome/browser/device_api/device_service_impl.h"
@@ -2088,6 +2089,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
#include "chrome/browser/gcm/gcm_product_util.h"
@@ -2007,6 +2008,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry);
omnibox::RegisterProfilePrefs(registry);
ZeroSuggestProvider::RegisterProfilePrefs(registry);
@@ -390,7 +389,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
--- a/chrome/browser/profiles/BUILD.gn
+++ b/chrome/browser/profiles/BUILD.gn
@@ -82,6 +82,9 @@ source_set("profile") {
@@ -83,6 +83,9 @@ source_set("profile") {
"//content/public/browser",
"//extensions/buildflags",
]
@@ -403,7 +402,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -583,6 +583,10 @@
@@ -590,6 +590,10 @@
#include "chrome/browser/net/nss_service_factory.h"
#endif
@@ -414,7 +413,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsProfiles>());
}
@@ -1415,6 +1419,9 @@ void ChromeBrowserMainExtraPartsProfiles::
@@ -1430,6 +1434,9 @@ void ChromeBrowserMainExtraPartsProfiles::
#endif
WebDataServiceFactory::GetInstance();
webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
@@ -516,7 +515,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profile
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -58,6 +58,9 @@
@@ -60,6 +60,9 @@
#include "chrome/browser/ui/webui/proxy_config_ui.h"
@@ -526,28 +525,31 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u
#if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER)
#include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h"
@@ -423,4 +426,7 @@ void RegisterChromeWebUIConfigs() {
@@ -430,7 +433,9 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(
std::make_unique<safe_browsing::ChromeSafeBrowsingUIConfig>());
#endif
-
+#if BUILDFLAG(IS_ANDROID)
+ map.AddWebUIConfig(std::make_unique<user_scripts::UserScriptsUIConfig>());
+#endif
}
#if BUILDFLAG(ENTERPRISE_WATERMARK)
map.AddWebUIConfig(std::make_unique<WatermarkUIConfig>());
#endif
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -149,6 +149,7 @@ template("chrome_extra_paks") {
"$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
@@ -152,6 +152,7 @@ template("chrome_extra_paks") {
"$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak",
"$root_gen_dir/third_party/blink/public/strings/permission_element_generated_strings.pak",
"$root_gen_dir/ui/resources/ui_lottie_resources.pak",
+ "$root_gen_dir/chrome/userscripts_browser_resources.pak",
"$root_gen_dir/ui/webui/resources/webui_resources.pak",
]
deps = [
@@ -169,6 +170,7 @@ template("chrome_extra_paks") {
"//third_party/blink/public:resources",
@@ -175,6 +176,7 @@ template("chrome_extra_paks") {
"//third_party/blink/public/strings:permission_element_generated_strings",
"//ui/resources:ui_lottie_resources_grd",
"//ui/webui/resources",
+ "//components/user_scripts/browser:userscripts_browser_resources_grit",
]
@@ -567,7 +569,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -235,6 +235,12 @@ static_library("renderer") {
@@ -231,6 +231,12 @@ static_library("renderer") {
"//v8",
]
@@ -583,7 +585,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -265,6 +265,11 @@
@@ -252,6 +252,11 @@
#include "chrome/renderer/media/chrome_key_systems.h"
#endif
@@ -595,7 +597,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
using autofill::AutofillAgent;
using autofill::PasswordAutofillAgent;
using autofill::PasswordGenerationAgent;
@@ -450,6 +455,14 @@ void ChromeContentRendererClient::RenderThreadStarted() {
@@ -417,6 +422,14 @@ void ChromeContentRendererClient::RenderThreadStarted() {
WebString::FromASCII(extensions::kExtensionScheme));
#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE)
@@ -610,8 +612,8 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
#if BUILDFLAG(ENABLE_SPELLCHECK)
if (!spellcheck_)
InitSpellCheck();
@@ -621,6 +634,15 @@ void ChromeContentRendererClient::RenderFrameCreated(
registry);
@@ -597,6 +610,15 @@ void ChromeContentRendererClient::RenderFrameCreated(
render_frame, std::make_unique<ChromePrintRenderFrameHelperDelegate>());
#endif
+#if BUILDFLAG(IS_ANDROID)
@@ -623,10 +625,10 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
+ }
+#endif
+
#if BUILDFLAG(ENABLE_PPAPI)
new PepperHelper(render_frame);
#if BUILDFLAG(ENABLE_PAINT_PREVIEW)
new paint_preview::PaintPreviewRecorderImpl(render_frame);
#endif
@@ -1669,6 +1691,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
@@ -1359,6 +1381,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -644,7 +646,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
}
void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
@@ -1678,6 +1711,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
@@ -1368,6 +1401,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -662,7 +664,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
}
void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
@@ -1687,6 +1731,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
@@ -1377,6 +1421,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -683,7 +685,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc
--- a/chrome/renderer/chrome_render_thread_observer.cc
+++ b/chrome/renderer/chrome_render_thread_observer.cc
@@ -55,6 +55,8 @@
@@ -54,6 +54,8 @@
#include "third_party/blink/public/web/web_security_policy.h"
#include "third_party/blink/public/web/web_view.h"
@@ -692,7 +694,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/
#if BUILDFLAG(IS_CHROMEOS)
#include "chrome/renderer/ash_merge_session_loader_throttle.h"
#endif
@@ -221,6 +223,9 @@ void ChromeRenderThreadObserver::SetConfiguration(
@@ -220,6 +222,9 @@ void ChromeRenderThreadObserver::SetConfiguration(
chrome::mojom::DynamicParamsPtr params) {
base::AutoLock lock(dynamic_params_lock_);
dynamic_params_ = std::move(params);
@@ -705,7 +707,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/
diff --git a/components/components_strings.grd b/components/components_strings.grd
--- a/components/components_strings.grd
+++ b/components/components_strings.grd
@@ -341,6 +341,7 @@
@@ -342,6 +342,7 @@
<part file="user_education_strings.grdp" />
<part file="version_ui_strings.grdp" />
<part file="webapps_strings.grdp" />
@@ -11363,16 +11365,6 @@ new file mode 100755
+ </message>
+
+</grit-part>
diff --git a/content/common/features.gni b/content/common/features.gni
--- a/content/common/features.gni
+++ b/content/common/features.gni
@@ -20,5 +20,5 @@ declare_args() {
mbi_mode = is_linux || is_chromeos || is_mac || is_win || is_android
# We allow legacy IPC to be enabled for Pepper usage.
- content_enable_legacy_ipc = enable_ppapi
+ content_enable_legacy_ipc = true
}
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Experimental-user-scripts-support.inc b/cromite_flags/chrome/browser/about_flags_cc/Experimental-user-scripts-support.inc
new file mode 100644
--- /dev/null
@@ -11394,18 +11386,18 @@ new file mode 100644
diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h
--- a/ipc/ipc_message_start.h
+++ b/ipc/ipc_message_start.h
@@ -17,6 +17,7 @@ enum IPCMessageStart {
WorkerMsgStart,
NaClMsgStart,
PpapiMsgStart,
@@ -14,6 +14,7 @@
enum IPCMessageStart {
AutomationMsgStart = 0,
TestMsgStart,
+ ExtensionMsgStart,
NaClHostMsgStart,
WorkerMsgStart,
LastIPCMsgStart // Must come last.
};
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -1162,6 +1162,12 @@
@@ -1186,6 +1186,12 @@
"META": {"sizes": {"includes": [30],}},
"includes": [7480],
},
+44 -46
View File
@@ -155,7 +155,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
<!-- The main_preferences file will be reordered with the upcoming autofill
options. Only the order changes. Each pref should exist here and in the layout
for the previous order (main_preferences_legacy). -->
@@ -99,11 +90,6 @@ for the previous order (main_preferences_legacy). -->
@@ -98,11 +89,6 @@ for the previous order (main_preferences_legacy). -->
android:key="autofill_options"
android:order="16"
android:title="@string/autofill_options_title" />
@@ -167,7 +167,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
<PreferenceCategory
android:key="advanced_section"
@@ -135,6 +121,11 @@ for the previous order (main_preferences_legacy). -->
@@ -134,6 +120,11 @@ for the previous order (main_preferences_legacy). -->
android:key="adblock"
android:order="13"
android:title="@string/prefs_adblock"/>
@@ -873,7 +873,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -6461,7 +6461,9 @@ ChromeContentBrowserClient::
@@ -6412,7 +6412,9 @@ ChromeContentBrowserClient::
}
bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -884,7 +884,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
if (!frame) {
return false;
@@ -6484,9 +6486,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -6435,9 +6437,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
}
void ChromeContentBrowserClient::CreateWebSocket(
@@ -899,7 +899,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -730,11 +730,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -715,11 +715,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
content::FrameTreeNodeId frame_tree_node_id,
const network::ResourceRequest& resource_request) override;
@@ -1189,7 +1189,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -249,7 +249,6 @@
@@ -255,7 +255,6 @@
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_features.h"
#include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h"
@@ -1197,7 +1197,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "components/adblock/content/browser/factories/content_security_policy_injector_factory.h"
#include "components/adblock/content/browser/factories/element_hider_factory.h"
#include "components/adblock/content/browser/factories/resource_classification_runner_factory.h"
@@ -936,7 +935,6 @@ void ChromeBrowserMainExtraPartsProfiles::
@@ -946,7 +945,6 @@ void ChromeBrowserMainExtraPartsProfiles::
// Makes manual testing possible.
FakeSmartCardDeviceServiceFactory::GetInstance();
#endif
@@ -1208,15 +1208,15 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -64,6 +64,7 @@ build_webui("build") {
@@ -66,6 +66,7 @@ build_webui("build") {
"ai_page/ai_tab_organization_subpage.ts",
"ai_page/history_search_page.ts",
"ai_page/offer_writing_help_page.ts",
+ "adblock_page/adblock_page.ts",
"appearance_page/appearance_fonts_page.ts",
"appearance_page/appearance_page_index.ts",
"appearance_page/appearance_page.ts",
"appearance_page/home_url_input.ts",
@@ -372,6 +373,7 @@ build_webui("build") {
@@ -392,6 +393,7 @@ build_webui("build") {
ts_definitions = [
"//tools/typescript/definitions/autofill_private.d.ts",
"//tools/typescript/definitions/chrome_event.d.ts",
@@ -1752,28 +1752,26 @@ new file mode 100644
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -51,6 +51,10 @@
</settings-section>
</template>
</template>
+ <settings-section page-title="Adblock"
+ section="adblock">
+ <settings-adblock-page prefs="{{prefs}}"></settings-adblock-page>
+ </settings-section>
<template is="dom-if" if="[[showPage_(pageVisibility_.autofill)]]"
restamp>
<settings-section page-title="$i18n{autofillPageTitle}"
@@ -8,4 +8,8 @@
section="privacy">
<settings-privacy-page prefs="{{prefs}}"></settings-privacy-page>
</settings-section>
+ <settings-section page-title="Adblock"
+ section="adblock">
+ <settings-adblock-page prefs="{{prefs}}"></settings-adblock-page>
+ </settings-section>
</div>
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.ts b/chrome/browser/resources/settings/basic_page/basic_page.ts
--- a/chrome/browser/resources/settings/basic_page/basic_page.ts
+++ b/chrome/browser/resources/settings/basic_page/basic_page.ts
@@ -15,6 +15,7 @@ import '../ai_page/ai_page.js';
// <if expr="enable_glic">
import '../glic_page/glic_page.js';
// </if>
@@ -16,6 +16,7 @@ import '../settings_page_styles.css.js';
import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import '../adblock_page/adblock_page.js';
import '../appearance_page/appearance_page.js';
import '../privacy_page/privacy_guide/privacy_guide_promo.js';
import '../privacy_page/privacy_page.js';
import {routes} from '../route.js';
import type {Route} from '../router.js';
import {RouteObserverMixin} from '../router.js';
diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts
--- a/chrome/browser/resources/settings/page_visibility.ts
+++ b/chrome/browser/resources/settings/page_visibility.ts
@@ -1782,14 +1780,14 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
export interface PageVisibility {
a11y?: boolean;
+ adblock?: boolean;
advancedSettings?: boolean;
ai?: boolean;
appearance?: boolean|AppearancePageVisibility;
autofill?: boolean;
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -228,6 +228,10 @@ function createRoutes(): SettingsRoutes {
r.FONTS = r.APPEARANCE.createChild('/fonts');
@@ -246,6 +246,10 @@ function createRoutes(): SettingsRoutes {
r.FONTS.hasMigratedToPlugin = true;
}
+ if (visibility.adblock !== false) {
@@ -1813,10 +1811,10 @@ diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resour
diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/resources/settings/settings.ts
--- a/chrome/browser/resources/settings/settings.ts
+++ b/chrome/browser/resources/settings/settings.ts
@@ -53,6 +53,7 @@ export {AppearanceBrowserProxy, AppearanceBrowserProxyImpl} from './appearance_p
export {SettingsAppearancePageElement, SystemTheme} from './appearance_page/appearance_page.js';
@@ -55,6 +55,7 @@ export {SettingsAppearancePageIndexElement} from './appearance_page/appearance_p
export {HomeUrlInputElement} from './appearance_page/home_url_input.js';
export {SettingsAutofillPageElement} from './autofill_page/autofill_page.js';
export {SettingsAutofillPageIndexElement} from './autofill_page/autofill_page_index.js';
+export {SettingsAdblockPageElement} from './adblock_page/adblock_page.js';
export {PasswordCheckReferrer, PasswordManagerImpl, PasswordManagerPage, PasswordManagerProxy} from './autofill_page/password_manager_proxy.js';
export {BaseMixin} from './base_mixin.js';
@@ -1833,7 +1831,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
+ Adblock
+ <cr-ripple></cr-ripple>
+ </a>
<if expr="not chromeos_ash">
<if expr="not is_chromeos">
<a role="menuitem" id="system" href="/system" class="cr-nav-menu-item"
hidden="[[!pageVisibility_.system]]">
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
@@ -1852,7 +1850,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json
--- a/chrome/common/extensions/api/_permission_features.json
+++ b/chrome/common/extensions/api/_permission_features.json
@@ -60,13 +60,6 @@
@@ -64,13 +64,6 @@
"5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool Dev.
]
},
@@ -1866,9 +1864,9 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com
"autofillPrivate": {
"channel": "trunk",
"extension_types": ["extension", "platform_app"],
@@ -400,13 +393,6 @@
"channel": "stable",
"command_line_switch": "extension-ai-data-collection"
@@ -426,13 +419,6 @@
// "desktop_android" is not supported.
"platforms": ["chromeos", "linux", "mac", "win"]
},
- "eyeoFilteringPrivate": {
- "channel": "stable",
@@ -12402,7 +12400,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -1153,7 +1153,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory(
@@ -1122,7 +1122,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory(
DCHECK(browser_context);
}
@@ -12411,7 +12409,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
return false;
}
@@ -1162,9 +1162,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
@@ -1131,9 +1131,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
}
void ContentBrowserClient::CreateWebSocket(
@@ -12426,7 +12424,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -2127,7 +2127,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2099,7 +2099,7 @@ class CONTENT_EXPORT ContentBrowserClient {
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner);
// Returns true when the embedder wants to intercept a websocket connection.
@@ -12435,7 +12433,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br
// Returns the WebSocket creation options.
virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame);
@@ -2149,9 +2149,11 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2121,9 +2121,11 @@ class CONTENT_EXPORT ContentBrowserClient {
// Always called on the UI thread and only when the Network Service is
// enabled.
virtual void CreateWebSocket(
@@ -12499,7 +12497,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/b
diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h
--- a/third_party/blink/renderer/core/css/style_engine.h
+++ b/third_party/blink/renderer/core/css/style_engine.h
@@ -282,6 +282,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected<StyleEngine>,
@@ -278,6 +278,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected<StyleEngine>,
const ComputedStyle* embedder_style) const;
void ViewportStyleSettingChanged();
@@ -12525,7 +12523,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_
diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc
--- a/third_party/blink/renderer/core/exported/web_document.cc
+++ b/third_party/blink/renderer/core/exported/web_document.cc
@@ -299,6 +299,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet(
@@ -300,6 +300,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet(
Document* document = Unwrap<Document>();
DCHECK(document);
@@ -12542,7 +12540,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa
auto* parsed_sheet = MakeGarbageCollected<StyleSheetContents>(
MakeGarbageCollected<CSSParserContext>(*document));
parsed_sheet->ParseString(source_code);
@@ -320,9 +330,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet(
@@ -321,9 +331,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet(
{SchedulingPolicy::DisableBackForwardCache()});
}
@@ -12555,7 +12553,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -2511,13 +2511,7 @@ void HTMLElement::setSpellcheck(bool enable) {
@@ -2618,13 +2618,7 @@ void HTMLElement::setSpellcheck(bool enable) {
}
void HTMLElement::click() {
+18 -26
View File
@@ -15,13 +15,13 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10
.../phishing_classifier/phishing_image_embedder.cc | 14 +++-----------
content/browser/browser_interface_binders.cc | 1 +
net/BUILD.gn | 1 +
services/webnn/dml/graph_impl_dml.cc | 2 ++
11 files changed, 16 insertions(+), 16 deletions(-)
services/webnn/dml/graph_impl_dml.cc | 1 +
11 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/BUILD.gn b/BUILD.gn
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -429,7 +429,6 @@ group("gn_all") {
@@ -422,7 +422,6 @@ group("gn_all") {
"//android_webview:empty_group",
"//android_webview/test",
"//android_webview/tools/automated_ui_tests:webview_ui_test_app_test_apk",
@@ -44,10 +44,10 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
@@ -288,6 +288,7 @@ static_library("safe_browsing") {
"//components/webdata/common",
@@ -290,6 +290,7 @@ static_library("safe_browsing") {
"//components/version_info",
"//content/public/browser",
"//services/preferences/public/mojom:mojom",
"//services/preferences/public/mojom",
+ "//third_party/flatbuffers:flatbuffers",
]
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin
diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn
--- a/components/component_updater/installer_policies/BUILD.gn
+++ b/components/component_updater/installer_policies/BUILD.gn
@@ -56,6 +56,7 @@ static_library("installer_policies_no_content_deps") {
@@ -60,6 +60,7 @@ static_library("installer_policies_no_content_deps") {
"//components/update_client",
"//mojo/public/cpp/base:protobuf_support",
"//services/network/public/cpp",
@@ -66,7 +66,7 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen
diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc
--- a/components/omnibox/browser/autocomplete_classifier.cc
+++ b/components/omnibox/browser/autocomplete_classifier.cc
@@ -127,8 +127,8 @@ void AutocompleteClassifier::Classify(
@@ -131,8 +131,8 @@ void AutocompleteClassifier::Classify(
metrics::OmniboxEventProto::PageClassification page_classification,
AutocompleteMatch* match,
GURL* alternate_nav_url) {
@@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc
--- a/components/omnibox/browser/omnibox_field_trial.cc
+++ b/components/omnibox/browser/omnibox_field_trial.cc
@@ -1007,11 +1007,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default;
@@ -895,11 +895,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default;
ScopedMLConfigForTesting::ScopedMLConfigForTesting()
: original_config_(std::make_unique<MLConfig>(GetMLConfig())) {
@@ -132,7 +132,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc
--- a/content/browser/browser_interface_binders.cc
+++ b/content/browser/browser_interface_binders.cc
@@ -381,6 +381,7 @@ void BindDateTimeChooserForFrame(
@@ -383,6 +383,7 @@ void BindDateTimeChooserForFrame(
void BindTextSuggestionHostForFrame(
RenderFrameHost* host,
mojo::PendingReceiver<blink::mojom::TextSuggestionHost> receiver) {
@@ -143,9 +143,9 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1802,6 +1802,7 @@ component("net") {
@@ -1814,6 +1814,7 @@ component("net") {
]
deps += [ "//sql:sql" ]
deps += [ "//sql" ]
}
+ # test: configs -= [ "//build/config/clang:find_bad_constructs" ]
}
@@ -154,20 +154,12 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
diff --git a/services/webnn/dml/graph_impl_dml.cc b/services/webnn/dml/graph_impl_dml.cc
--- a/services/webnn/dml/graph_impl_dml.cc
+++ b/services/webnn/dml/graph_impl_dml.cc
@@ -281,6 +281,7 @@ std::optional<AlignedByteLength<OperandId>> CalculateAlignedByteLength(
}
@@ -248,6 +248,7 @@ base::expected<void, mojom::ErrorPtr> CreateUnexpectedError(
// Same as above, but given a map of names to descriptors.
// Calculate the total byte length of buffers and the D3D12_RANGE for each
// buffer, all with the required alignment.
+[[maybe_unused]]
std::optional<AlignedByteLength<std::string>>
CalculateAlignedByteLengthFromDescriptors(
const base::flat_map<std::string, OperandDescriptor>&
@@ -389,6 +390,7 @@ UploadAndCreateConstantBufferBinding(
return key_to_buffer_binding_map;
}
+[[maybe_unused]]
HRESULT MapAndCopyInputDataToBuffer(
const base::flat_map<std::string, mojo_base::BigBuffer>& named_inputs,
const absl::flat_hash_map<std::string, D3D12_RANGE>&
std::optional<AlignedByteLength<OperandId>> CalculateAlignedByteLength(
const base::flat_map<OperandId, std::unique_ptr<WebNNConstantOperand>>&
constant_operands) {
--
@@ -120,7 +120,7 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -239,6 +239,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int,
@@ -244,6 +244,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int,
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCombineNewWindowIPCs);
@@ -134,7 +134,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -792,6 +792,7 @@ component("platform") {
@@ -799,6 +799,7 @@ component("platform") {
"fonts/simple_font_data.cc",
"fonts/simple_font_data.h",
"fonts/skia/font_cache_skia.cc",
@@ -153,7 +153,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/font_cache.h b/third_part
+ std::string& name, std::string& original_name);
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
static AtomicString GetFamilyNameForCharacter(SkFontMgr*,
static const FontPlatformData* CreateFontPlatformDataForCharacter(
diff --git a/third_party/blink/renderer/platform/fonts/skia/bromite_allowed_fonts.h b/third_party/blink/renderer/platform/fonts/skia/bromite_allowed_fonts.h
new file mode 100644
--- /dev/null
@@ -469,7 +469,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
// This function is called on android or when we are emulating android fonts on
// linux and the embedder has overriden the default fontManager with
@@ -201,7 +224,7 @@ const SimpleFontData* FontCache::GetLastResortFallbackFont(
@@ -215,7 +238,7 @@ const SimpleFontData* FontCache::GetLastResortFallbackFont(
sk_sp<SkTypeface> FontCache::CreateTypeface(
const FontDescription& font_description,
const FontFaceCreationParams& creation_params,
@@ -478,7 +478,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
// TODO(fuchsia): Revisit this and other font code for Fuchsia.
@@ -219,6 +242,16 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
@@ -233,6 +256,16 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
DCHECK_NE(family, font_family_names::kSystemUi);
// convert the name to utf8
name = family.Utf8();
@@ -495,7 +495,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
#if BUILDFLAG(IS_ANDROID)
// If this is a locale-specific family, try looking up locale-specific
@@ -226,15 +259,15 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
@@ -240,15 +273,15 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
if (const char* locale_family = GetLocaleSpecificFamilyName(family)) {
if (sk_sp<SkTypeface> typeface =
CreateLocaleSpecificTypeface(font_description, locale_family))
@@ -514,7 +514,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
}
#if !BUILDFLAG(IS_WIN)
@@ -244,6 +277,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
@@ -258,6 +291,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
float font_size,
AlternateFontName alternate_name) {
std::string name;
@@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
sk_sp<SkTypeface> typeface;
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -264,7 +298,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
@@ -278,7 +312,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
noto_color_emoji_from_gmscore)) {
typeface = CreateTypefaceFromUniqueName(creation_params);
} else {
+8 -8
View File
@@ -279,8 +279,8 @@ new file mode 100644
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -604,7 +604,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -610,7 +610,7 @@ void ContentSettingsRegistry::Init() {
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit",
- CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE,
@@ -291,7 +291,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -4191,12 +4191,17 @@ UrlInfo NavigationRequest::GetUrlInfo() {
@@ -4199,12 +4199,17 @@ UrlInfo NavigationRequest::GetUrlInfo() {
// Compute the WebExposedIsolationInfo that will be bundled into UrlInfo.
auto web_exposed_isolation_info = ComputeWebExposedIsolationInfo();
@@ -313,7 +313,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -3407,6 +3407,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
@@ -3387,6 +3387,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
if (IsJitDisabled()) {
command_line->AppendSwitchASCII(blink::switches::kJavaScriptFlags,
"--jitless");
@@ -326,7 +326,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
diff --git a/content/browser/site_info.cc b/content/browser/site_info.cc
--- a/content/browser/site_info.cc
+++ b/content/browser/site_info.cc
@@ -281,6 +281,13 @@ SiteInfo SiteInfo::CreateInternal(const IsolationContext& isolation_context,
@@ -329,6 +329,13 @@ SiteInfo SiteInfo::CreateInternal(const IsolationContext& isolation_context,
is_jitless =
is_jitless || GetContentClient()->browser()->IsJitDisabledForSite(
browser_context, lock_url_or_default);
@@ -337,9 +337,9 @@ diff --git a/content/browser/site_info.cc b/content/browser/site_info.cc
+ is_jitless = false;
+ }
+ }
are_v8_optimizations_disabled =
GetContentClient()->browser()->AreV8OptimizationsDisabledForSite(
browser_context, lock_url_or_default);
are_v8_optimizations_disabled = CheckAndCacheShouldDisableV8Optimization(
browser_context, isolation_context.browsing_instance_id(),
url::Origin::Create(lock_url_or_default));
diff --git a/content/browser/url_info.cc b/content/browser/url_info.cc
--- a/content/browser/url_info.cc
+++ b/content/browser/url_info.cc
File diff suppressed because it is too large Load Diff
@@ -10,18 +10,18 @@ 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 | 63 ++++++++++++++++++-
storage/browser/blob/blob_url_store_impl.h | 13 ++++
storage/browser/blob/blob_url_store_impl.cc | 57 +++++++++++++++++--
storage/browser/blob/blob_url_store_impl.h | 11 +++-
storage/browser/blob/features.cc | 1 +
.../public/mojom/blob/blob_url_store.mojom | 8 ++-
.../core/fileapi/public_url_manager.cc | 17 +++++
7 files changed, 101 insertions(+), 4 deletions(-)
.../core/fileapi/public_url_manager.cc | 21 ++++++-
7 files changed, 92 insertions(+), 9 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
@@ -12792,6 +12792,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL(
@@ -12939,6 +12939,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL(
}
bool RenderFrameHostImpl::IsFullCookieAccessAllowed() {
@@ -39,7 +39,7 @@ 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
@@ -106,6 +106,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() {
@@ -113,6 +113,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() {
}
}
@@ -70,10 +70,10 @@ 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,
@@ -120,6 +144,14 @@ void BlobURLStoreImpl::Register(
@@ -123,6 +147,13 @@ void BlobURLStoreImpl::Register(
std::move(callback).Run();
return;
}
+ // LOG(INFO) << "---BlobURLStoreImpl Register"
+ // << " url=" << url
+ // << " storage_key_origin=" << storage_key_.GetDebugString()
@@ -81,11 +81,10 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
+ // << " render_process_host_id_=" << render_process_host_id_
+ // << " unsafe_top_level_site=" << (unsafe_top_level_site.has_value() ? unsafe_top_level_site->GetDebugString() : "<none>")
+ // << " unsafe_agent_cluster_id=" << unsafe_agent_cluster_id.ToString();
+
if (registry_)
registry_->AddUrlMapping(url, std::move(blob), storage_key_,
renderer_origin_, render_process_host_id_,
@@ -145,7 +177,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
@@ -148,7 +179,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
features::kBlockCrossPartitionBlobUrlFetching) &&
!partitioning_disabled_by_policy_;
@@ -94,51 +93,31 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
has_storage_access_handle &&
mapping_status ==
BlobUrlRegistry::MappingStatus::
@@ -156,26 +188,38 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
@@ -158,7 +189,9 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
const GURL& url,
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
- mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver) {
+ mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
+ const base::UnguessableToken& unsafe_agent_cluster_id,
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
ResolveAsURLLoaderFactoryCallback callback) {
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site) {
if (!registry_) {
BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
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;
+ }
const BlobUrlRegistry::MappingStatus mapping_status =
registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), storage_key_);
if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) {
if (ShouldPartitionBlobUrlAccess(has_storage_access_handle,
mapping_status)) {
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory blocked" << url;
partitioning_blob_url_closure_.Run(url,
blink::mojom::PartitioningBlobURLInfo::
kBlockedCrossPartitionFetching);
@@ -187,6 +231,12 @@ void BlobURLStoreImpl::FinishResolveAsURLLoaderFactory(
partitioning_blob_url_closure_.Run(url, std::nullopt);
@@ -181,6 +214,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) {
if (ShouldPartitionBlobUrlAccess(has_storage_access_handle,
mapping_status)) {
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory blocked" << url;
partitioning_blob_url_closure_.Run(
url, blink::mojom::PartitioningBlobURLInfo::
kBlockedCrossPartitionFetching);
@@ -192,6 +226,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
}
}
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory blocked by IsSamePartition" << url;
+ BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
+ std::move(callback).Run(std::nullopt, std::nullopt);
+ return;
@@ -146,75 +125,68 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory allowed " << url;
BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url,
std::move(receiver));
// When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and
@@ -201,6 +251,8 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
}
@@ -199,7 +240,9 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
void BlobURLStoreImpl::ResolveAsBlobURLToken(
const GURL& url,
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
bool is_top_level_navigation,
- bool is_top_level_navigation) {
+ bool is_top_level_navigation,
+ const base::UnguessableToken& unsafe_agent_cluster_id,
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
ResolveAsBlobURLTokenCallback callback) {
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site) {
// This function is known to be heap allocation heavy and performance
// critical. Extra memory safety checks can introduce regression
@@ -212,6 +264,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
return;
// (https://crbug.com/414710225) and these are disabled here.
@@ -216,6 +259,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
storage_key_);
if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) {
+ // LOG(INFO) << "---ResolveAsBlobURLToken blocked" << url;
if (ShouldPartitionBlobUrlAccess(has_storage_access_handle,
mapping_status)) {
partitioning_blob_url_closure_.Run(
@@ -226,12 +270,17 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
partitioning_blob_url_closure_.Run(url, std::nullopt);
}
}
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());
}
@@ -220,8 +273,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,
ResolveAsBlobURLTokenCallback callback,
bool has_storage_access_handle) {
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
+ // LOG(INFO) << "---ResolveAsBlobURLToken blocked by IsSamePartition" << url;
+ std::move(callback).Run(std::nullopt);
+ return;
+ }
if (!is_top_level_navigation) {
const BlobUrlRegistry::MappingStatus mapping_status =
registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
mojo::PendingRemote<blink::mojom::Blob> blob = registry_->GetBlobFromUrl(url);
if (!blob) {
return;
}
-
+ // LOG(INFO) << "---ResolveAsBlobURLToken allowed " << url;
new BlobURLTokenImpl(registry_, url, std::move(blob), std::move(token));
}
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
@@ -60,11 +60,15 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
void ResolveAsURLLoaderFactory(
const GURL& url,
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
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;
override;
void ResolveAsBlobURLToken(
const GURL& url,
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
bool is_top_level_navigation,
- bool is_top_level_navigation) override;
+ bool is_top_level_navigation,
+ const base::UnguessableToken& unsafe_agent_cluster_id,
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
ResolveAsBlobURLTokenCallback callback) override;
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site) override;
private:
@@ -81,6 +85,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);
@@ -88,9 +94,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);
// Checks if the passed in url is a valid blob url for this blob url store.
@@ -77,6 +81,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
bool has_storage_access_handle,
BlobUrlRegistry::MappingStatus mapping_status);
+ bool IsSamePartition(
+ const GURL& blob_url,
@@ -227,10 +199,10 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b
diff --git a/storage/browser/blob/features.cc b/storage/browser/blob/features.cc
--- a/storage/browser/blob/features.cc
+++ b/storage/browser/blob/features.cc
@@ -18,6 +18,7 @@ BASE_FEATURE(kBlockCrossPartitionBlobUrlFetching,
#else
@@ -10,6 +10,7 @@ namespace features {
BASE_FEATURE(kBlockCrossPartitionBlobUrlFetching,
"BlockCrossPartitionBlobUrlFetching",
base::FEATURE_ENABLED_BY_DEFAULT);
#endif
+SET_CROMITE_FEATURE_ENABLED(kBlockCrossPartitionBlobUrlFetching);
// Please keep features in alphabetical order.
@@ -238,32 +210,32 @@ diff --git a/storage/browser/blob/features.cc b/storage/browser/blob/features.cc
diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_party/blink/public/mojom/blob/blob_url_store.mojom
--- a/third_party/blink/public/mojom/blob/blob_url_store.mojom
+++ b/third_party/blink/public/mojom/blob/blob_url_store.mojom
@@ -37,7 +37,9 @@ interface BlobURLStore {
@@ -33,7 +33,9 @@ interface BlobURLStore {
// both the blob URL and all other references to the blob have been dropped.
ResolveAsURLLoaderFactory(
url.mojom.Url url,
- pending_receiver<network.mojom.URLLoaderFactory> factory) => (
- pending_receiver<network.mojom.URLLoaderFactory> factory);
+ pending_receiver<network.mojom.URLLoaderFactory> factory,
+ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id,
+ network.mojom.SchemefulSite? unsafe_top_level_site) => (
// TODO(https://crbug.com/1224926): Remove these once experiment is over.
mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id,
network.mojom.SchemefulSite? unsafe_top_level_site);
@@ -48,7 +50,9 @@ interface BlobURLStore {
+ network.mojom.SchemefulSite? unsafe_top_level_site);
// Resolves a public Blob URL into a BlobURLToken. The BlobURLToken can be
// used by the browser process to securely look up the blob a URL used to
@@ -41,7 +43,9 @@ interface BlobURLStore {
// As long as the token is alive, the resolved blob will also be kept alive.
ResolveAsBlobURLToken(url.mojom.Url url,
pending_receiver<BlobURLToken> token,
- bool is_top_level_navigation) => (
- 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);
+ network.mojom.SchemefulSite? unsafe_top_level_site);
};
// A token representing a Blob URL. The browser process can use this to look up
diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/third_party/blink/renderer/core/fileapi/public_url_manager.cc
--- a/third_party/blink/renderer/core/fileapi/public_url_manager.cc
+++ b/third_party/blink/renderer/core/fileapi/public_url_manager.cc
@@ -63,6 +63,21 @@ static void RemoveFromNullOriginMapIfNecessary(const KURL& blob_url) {
@@ -61,6 +61,21 @@ static void RemoveFromNullOriginMapIfNecessary(const KURL& blob_url) {
BlobURLNullOriginMap::GetInstance()->Remove(blob_url);
}
@@ -285,20 +257,24 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi
} // namespace
PublicURLManager::PublicURLManager(ExecutionContext* execution_context)
@@ -269,6 +284,7 @@ void PublicURLManager::Resolve(
@@ -208,7 +223,8 @@ void PublicURLManager::Resolve(
GetBlobURLStore().ResolveAsURLLoaderFactory(
url, std::move(factory_receiver),
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()),
WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext())));
DCHECK(url.ProtocolIs("blob"));
- GetBlobURLStore().ResolveAsURLLoaderFactory(url, std::move(factory_receiver));
+ GetBlobURLStore().ResolveAsURLLoaderFactory(url, std::move(factory_receiver),
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()));
}
@@ -293,6 +309,7 @@ void PublicURLManager::ResolveAsBlobURLToken(
void PublicURLManager::ResolveAsBlobURLToken(
@@ -221,7 +237,8 @@ void PublicURLManager::ResolveAsBlobURLToken(
DCHECK(url.ProtocolIs("blob"));
GetBlobURLStore().ResolveAsBlobURLToken(
url, std::move(token_receiver), is_top_level_navigation,
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()),
WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext())));
GetBlobURLStore().ResolveAsBlobURLToken(url, std::move(token_receiver),
- is_top_level_navigation);
+ is_top_level_navigation,
+ GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()));
}
void PublicURLManager::ContextDestroyed() {
--
@@ -12,18 +12,20 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../insecure_private_network.grdp | 18 ++++
.../insecure_private_network.inc | 25 +++++
.../INSECURE_PRIVATE_NETWORK.inc | 3 +
services/network/cors/cors_url_loader.cc | 8 +-
.../network/private_network_access_checker.cc | 16 +++-
7 files changed, 188 insertions(+), 11 deletions(-)
...rivate-network-access-content-settings.inc | 1 +
services/network/cors/cors_url_loader.cc | 2 +-
services/network/public/cpp/features.cc | 2 +-
8 files changed, 175 insertions(+), 5 deletions(-)
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteInsecurePrivateNetworkContentSetting.java
create mode 100644 components/browser_ui/strings/bromite_content_settings/insecure_private_network.grdp
create mode 100644 components/content_settings/core/browser/bromite_content_settings/insecure_private_network.inc
create mode 100644 components/content_settings/core/common/bromite_content_settings/INSECURE_PRIVATE_NETWORK.inc
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Private-network-access-content-settings.inc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1351,6 +1351,31 @@ bool IsDefaultSearchEngine(Profile* profile, const GURL& url) {
@@ -1348,6 +1348,31 @@ bool IsDefaultSearchEngine(Profile* profile, const GURL& url) {
url);
}
@@ -55,7 +57,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
} // namespace
// static
@@ -7640,12 +7665,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride
@@ -7582,12 +7607,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride
ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy(
content::BrowserContext* browser_context,
const url::Origin& origin) {
@@ -235,10 +237,16 @@ new file mode 100644
+ // Stores whether to allow insecure websites to make private network requests.
+ // See also: https://wicg.github.io/cors-rfc1918
+ INSECURE_PRIVATE_NETWORK,
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Private-network-access-content-settings.inc b/cromite_flags/services/network/public/cpp/features_cc/Private-network-access-content-settings.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/services/network/public/cpp/features_cc/Private-network-access-content-settings.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_ENABLED(kLocalNetworkAccessChecks);
diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc
--- a/services/network/cors/cors_url_loader.cc
+++ b/services/network/cors/cors_url_loader.cc
@@ -1090,7 +1090,7 @@ std::optional<URLLoaderCompletionStatus> CorsURLLoader::ConvertPreflightResult(
@@ -1067,7 +1067,7 @@ std::optional<URLLoaderCompletionStatus> CorsURLLoader::ConvertPreflightResult(
}
// Private Network Access warning: ignore net and CORS errors.
@@ -247,61 +255,16 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co
CHECK(ShouldIgnorePrivateNetworkAccessErrors(
request_.required_ip_address_space));
CHECK_EQ(*reason, PreflightRequiredReason::kPrivateNetworkAccess);
@@ -1403,12 +1403,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors(
if (!state) {
return false;
}
- // When the PNA permission prompt shown, we should always respect the
- // preflight results, otherwise it would be a bypass of mixed content checker.
- if (PrivateNetworkAccessChecker::NeedPermission(
- request_.url, state->is_web_secure_context, target_address_space)) {
- return false;
- }
return state->private_network_request_policy ==
mojom::PrivateNetworkRequestPolicy::kPreflightWarn;
}
diff --git a/services/network/private_network_access_checker.cc b/services/network/private_network_access_checker.cc
--- a/services/network/private_network_access_checker.cc
+++ b/services/network/private_network_access_checker.cc
@@ -7,6 +7,7 @@
#include "base/feature_list.h"
#include "base/metrics/histogram_functions.h"
#include "net/base/transport_info.h"
+#include "net/base/url_util.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/ip_address_space_util.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h"
@@ -20,6 +21,13 @@
namespace network {
namespace {
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
--- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc
@@ -236,7 +236,7 @@ BASE_FEATURE_PARAM(bool,
kLocalNetworkAccessChecksWarn,
&kLocalNetworkAccessChecks,
/*name=*/"LocalNetworkAccessChecksWarn",
- /*default_value=*/true);
+ /*default_value=*/false);
+bool IsReservedIPAddress(const std::string host) {
+ net::IPAddress address;
+ if (!net::ParseURLHostnameToAddress(host, &address))
+ return false;
+ return !address.IsPubliclyRoutable();
+}
+
using Result = PrivateNetworkAccessCheckResult;
using Policy = mojom::PrivateNetworkRequestPolicy;
@@ -260,11 +268,17 @@ bool PrivateNetworkAccessChecker::NeedPermission(
const GURL& url,
bool is_web_secure_context,
mojom::IPAddressSpace target_address_space) {
- return base::FeatureList::IsEnabled(
+ bool need_permission = base::FeatureList::IsEnabled(
network::features::kPrivateNetworkAccessPermissionPrompt) &&
is_web_secure_context && !network::IsUrlPotentiallyTrustworthy(url) &&
(target_address_space == mojom::IPAddressSpace::kLocal ||
target_address_space == mojom::IPAddressSpace::kPrivate);
+ std::string host = url.host();
+ if (IsReservedIPAddress(host) || host == "0.0.0.0" ||
+ host == "[::1]" || net::HostStringIsLocalhost(host)) {
+ need_permission = true;
+ }
+ return need_permission;
}
} // namespace network
// Enables Local Network Access checks for WebRTC.
// Blocks local network requests without user permission to prevent exploitation
--
+2 -2
View File
@@ -37,7 +37,7 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
#endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
} // namespace
@@ -116,7 +128,6 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) {
@@ -114,7 +126,6 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) {
//
bool EVRootCAMetadata::IsEVPolicyOID(bssl::der::Input policy_oid) const {
@@ -56,5 +56,5 @@ diff --git a/net/cert/ev_root_ca_metadata.h b/net/cert/ev_root_ca_metadata.h
+//#define PLATFORM_USES_CHROMIUM_EV_METADATA
#endif
namespace base {
namespace bssl {
--
+186 -135
View File
@@ -8,15 +8,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/chrome_java_resources.gni | 1 +
chrome/android/chrome_java_sources.gni | 2 +
.../java/res/layout/mv_tiles_container.xml | 3 +-
.../java/res/layout/mv_tiles_layout.xml | 13 +-
.../java/res/layout/mv_tiles_container.xml | 39 +++
.../java/res/layout/mv_tiles_layout.xml | 16 +-
.../java/res/layout/new_tab_page_layout.xml | 7 +
.../new_tab_page_tile_grid_placeholder.xml | 8 +-
.../new_tab_page_tile_grid_placeholder.xml | 43 +++
.../android/java/res/layout/ntp_shortcuts.xml | 65 ++++
chrome/android/java/res/values/attrs.xml | 4 +
chrome/android/java/res/values/dimens.xml | 2 +
.../chrome/browser/ChromeTabbedActivity.java | 3 +-
.../browser/TabbedModeTabDelegateFactory.java | 9 +-
.../browser/TabbedModeTabDelegateFactory.java | 10 +-
.../feedback/ChromeFeedbackCollector.java | 1 +
.../feedback/SimplifiedNtpFeedbackSource.java | 38 +++
.../identity_disc/IdentityDiscController.java | 5 +-
@@ -41,7 +41,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../Restore-Simplified-NTP-launch.inc | 12 +
.../Restore-Simplified-NTP-launch.inc | 5 +
.../Restore-Simplified-NTP-launch.inc | 1 +
35 files changed, 538 insertions(+), 55 deletions(-)
35 files changed, 615 insertions(+), 53 deletions(-)
create mode 100644 chrome/android/java/res/layout/mv_tiles_container.xml
create mode 100644 chrome/android/java/res/layout/new_tab_page_tile_grid_placeholder.xml
create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java
@@ -52,8 +54,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -554,6 +554,7 @@ chrome_java_resources = [
"java/res/layout/new_tab_page_tile_grid_placeholder.xml",
@@ -535,6 +535,7 @@ chrome_java_resources = [
"java/res/layout/new_tab_page_layout.xml",
"java/res/layout/one_line_list_item.xml",
"java/res/layout/open_full_chrome_history_header.xml",
+ "java/res/layout/ntp_shortcuts.xml",
@@ -63,7 +65,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -595,6 +595,7 @@ chrome_java_sources = [
@@ -606,6 +606,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java",
"java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java",
"java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
@@ -71,7 +73,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java",
@@ -1007,6 +1008,7 @@ chrome_java_sources = [
@@ -1012,6 +1013,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java",
@@ -80,22 +82,53 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesProperties.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesViewBinder.java",
diff --git a/chrome/android/java/res/layout/mv_tiles_container.xml b/chrome/android/java/res/layout/mv_tiles_container.xml
--- a/chrome/android/java/res/layout/mv_tiles_container.xml
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/res/layout/mv_tiles_container.xml
@@ -31,7 +31,8 @@ found in the LICENSE file.
<!-- Site suggestion tile grid placeholder -->
<ViewStub
android:id="@+id/mv_tiles_placeholder_stub"
- android:layout_width="wrap_content"
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<!-- A site suggestion tile. -->
+<FrameLayout android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/mv_tiles_container"
+ android:visibility="gone"
+ android:orientation="vertical"
+ android:layout_gravity="center_horizontal"
+ android:layout_marginTop="@dimen/mvt_container_top_margin"
+ android:layout_marginLeft="@dimen/mvt_container_lateral_margin"
+ android:layout_marginRight="@dimen/mvt_container_lateral_margin"
+ android:paddingTop="@dimen/mvt_container_top_padding"
+ android:paddingBottom="@dimen/mvt_container_bottom_padding"
+ android:background="@drawable/home_surface_ui_background"
+ app:layout_scrollFlags="scroll">
+
+ <ViewStub
+ android:id="@+id/mv_tiles_layout_stub"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout="@layout/mv_tiles_layout" />
+
+ <!-- Site suggestion tile grid placeholder -->
+ <ViewStub
+ android:id="@+id/mv_tiles_placeholder_stub"
+ android:layout_gravity="center_horizontal"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/tile_grid_placeholder"
android:layout="@layout/new_tab_page_tile_grid_placeholder" />
+ android:layout_height="wrap_content"
+ android:inflatedId="@+id/tile_grid_placeholder"
+ android:layout="@layout/new_tab_page_tile_grid_placeholder" />
+</FrameLayout>
diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android/java/res/layout/mv_tiles_layout.xml
--- a/chrome/android/java/res/layout/mv_tiles_layout.xml
+++ b/chrome/android/java/res/layout/mv_tiles_layout.xml
@@ -5,14 +5,9 @@ Use of this source code is governed by a BSD-style license that can be
@@ -5,17 +5,9 @@ Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
@@ -105,6 +138,9 @@ diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android
+ android:id="@+id/mv_tiles_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/home_surface_ui_background"
- android:paddingTop="@dimen/mvt_container_top_padding"
- android:paddingBottom="@dimen/mvt_container_bottom_padding"
- android:scrollbars="none">
-
- <org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout
@@ -128,43 +164,56 @@ diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/and
+ android:inflatedId="@+id/shortcuts"
+ android:layout="@layout/ntp_shortcuts" />
+
<!-- Middle spacer -->
<View
android:id="@+id/ntp_middle_spacer"
<ViewStub
android:id="@+id/mv_tiles_layout_stub"
android:inflatedId="@+id/mv_tiles_container"
diff --git a/chrome/android/java/res/layout/new_tab_page_tile_grid_placeholder.xml b/chrome/android/java/res/layout/new_tab_page_tile_grid_placeholder.xml
--- a/chrome/android/java/res/layout/new_tab_page_tile_grid_placeholder.xml
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/res/layout/new_tab_page_tile_grid_placeholder.xml
@@ -17,14 +17,14 @@ found in the LICENSE file.
android:orientation="vertical">
<ImageView
- android:layout_width="wrap_content"
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright 2015 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<!-- The view shown when there are no most visited items in document mode:
+ "Nothing to see here..." -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:padding="16dp"
+ android:orientation="vertical">
+
+ <ImageView
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
tools:ignore="ContentDescription"
android:src="@drawable/ic_most_visited_placeholder" />
<TextView
- android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="15dp"
+ tools:ignore="ContentDescription"
+ android:src="@drawable/ic_most_visited_placeholder" />
+
+ <TextView
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:color="#c8c8c8"
@@ -33,11 +33,11 @@ found in the LICENSE file.
android:textSize="16sp" />
<TextView
- android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:color="#c8c8c8"
+ android:gravity="center_horizontal"
+ android:text="@string/most_visited_placeholder_title"
+ android:textSize="16sp" />
+
+ <TextView
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="#c8c8c8"
android:gravity="center_horizontal"
android:text="@string/most_visited_placeholder_summary"
android:textSize="12sp" />
-</LinearLayout>
\ No newline at end of file
+ android:layout_height="wrap_content"
+ android:color="#c8c8c8"
+ android:gravity="center_horizontal"
+ android:text="@string/most_visited_placeholder_summary"
+ android:textSize="12sp" />
+
+</LinearLayout>
diff --git a/chrome/android/java/res/layout/ntp_shortcuts.xml b/chrome/android/java/res/layout/ntp_shortcuts.xml
new file mode 100644
@@ -253,7 +302,7 @@ diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -129,6 +129,8 @@ found in the LICENSE file.
@@ -122,6 +122,8 @@ found in the LICENSE file.
<dimen name="find_in_page_popup_margin_end">62dp</dimen>
<!-- NTP dimensions -->
@@ -265,12 +314,12 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -3118,7 +3118,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
getToolbarManager().getTabStripHeightSupplier(),
mModuleRegistrySupplier,
@@ -3322,7 +3322,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
mEdgeToEdgeControllerSupplier,
- getStartupMetricsTracker());
+ getStartupMetricsTracker(),
mTopInsetCoordinatorSupplier,
getStartupMetricsTracker(),
- mRootUiCoordinator.getExclusiveAccessManager());
+ mRootUiCoordinator.getExclusiveAccessManager(),
+ mBookmarkManagerOpenerSupplier);
}
return mTabDelegateFactory;
@@ -286,36 +335,37 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
@@ -82,6 +83,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private final OneshotSupplier<ModuleRegistry> mModuleRegistrySupplier;
private final ObservableSupplier<EdgeToEdgeController> mEdgeToEdgeControllerSupplier;
@@ -89,6 +90,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private final ObservableSupplier<TopInsetCoordinator> mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
@Nullable private final ExclusiveAccessManager mExclusiveAccessManager;
+ private final ObservableSupplier<BookmarkManagerOpener> mBookmarkManagerOpenerSupplier;
+
private NativePageFactory mNativePageFactory;
@@ -111,7 +113,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@NonNull ObservableSupplier<Integer> tabStripHeightSupplier,
@NonNull OneshotSupplier<ModuleRegistry> moduleRegistrySupplier,
public TabbedModeTabDelegateFactory(
@@ -119,7 +122,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@NonNull ObservableSupplier<EdgeToEdgeController> edgeToEdgeControllerSupplier,
- StartupMetricsTracker startupMetricsTracker) {
+ StartupMetricsTracker startupMetricsTracker,
ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
StartupMetricsTracker startupMetricsTracker,
- @Nullable ExclusiveAccessManager exclusiveAccessManager) {
+ @Nullable ExclusiveAccessManager exclusiveAccessManager,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mActivity = activity;
mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate;
mShareDelegateSupplier = shareDelegateSupplier;
@@ -138,6 +141,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mModuleRegistrySupplier = moduleRegistrySupplier;
mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier;
@@ -148,6 +152,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier;
mStartupMetricsTracker = startupMetricsTracker;
mExclusiveAccessManager = exclusiveAccessManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
@Override
@@ -204,7 +208,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mTabStripHeightSupplier,
@@ -218,7 +223,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mModuleRegistrySupplier,
mEdgeToEdgeControllerSupplier,
mTopInsetCoordinatorSupplier,
- mStartupMetricsTracker);
+ mStartupMetricsTracker,
+ mBookmarkManagerOpenerSupplier);
@@ -379,7 +429,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java
@@ -167,7 +167,10 @@ public class IdentityDiscController
@@ -146,7 +146,10 @@ public class IdentityDiscController
mButtonData.setButtonSpec(
buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email));
@@ -402,45 +452,45 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
@@ -81,6 +82,7 @@ public class NativePageFactory {
private final OneshotSupplier<ModuleRegistry> mModuleRegistrySupplier;
@@ -83,6 +84,7 @@ public class NativePageFactory {
private final ObservableSupplier<EdgeToEdgeController> mEdgeToEdgeControllerSupplier;
private final ObservableSupplier<TopInsetCoordinator> mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
+ private final ObservableSupplier<BookmarkManagerOpener> mBookmarkManagerOpenerSupplier;
private NewTabPageCreationTracker mNewTabPageCreationTracker;
private NativePageBuilder mNativePageBuilder;
@@ -103,7 +105,8 @@ public class NativePageFactory {
@NonNull ObservableSupplier<Integer> tabStripHeightSupplier,
@@ -106,7 +108,8 @@ public class NativePageFactory {
@NonNull OneshotSupplier<ModuleRegistry> moduleRegistrySupplier,
@NonNull ObservableSupplier<EdgeToEdgeController> edgeToEdgeControllerSupplier,
@NonNull ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
- @NonNull StartupMetricsTracker startupMetricsTracker) {
+ @NonNull StartupMetricsTracker startupMetricsTracker,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mActivity = activity;
mBottomSheetController = sheetController;
mBrowserControlsManager = browserControlsManager;
@@ -121,6 +124,7 @@ public class NativePageFactory {
mModuleRegistrySupplier = moduleRegistrySupplier;
@@ -125,6 +128,7 @@ public class NativePageFactory {
mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier;
mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier;
mStartupMetricsTracker = startupMetricsTracker;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
private NativePageBuilder getBuilder() {
@@ -144,7 +148,8 @@ public class NativePageFactory {
mTabStripHeightSupplier,
@@ -149,7 +153,8 @@ public class NativePageFactory {
mModuleRegistrySupplier,
mEdgeToEdgeControllerSupplier,
mTopInsetCoordinatorSupplier,
- mStartupMetricsTracker);
+ mStartupMetricsTracker,
+ mBookmarkManagerOpenerSupplier);
}
return mNativePageBuilder;
}
@@ -177,9 +182,10 @@ public class NativePageFactory {
private final OneshotSupplier<ModuleRegistry> mModuleRegistrySupplier;
@@ -183,9 +188,10 @@ public class NativePageFactory {
private final ObservableSupplier<EdgeToEdgeController> mEdgeToEdgeControllerSupplier;
private final ObservableSupplier<TopInsetCoordinator> mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
+ private final ObservableSupplier<BookmarkManagerOpener> mBookmarkManagerOpenerSupplier;
@@ -450,28 +500,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
Supplier<NewTabPageCreationTracker> newTabPageCreationTracker,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager,
@@ -196,7 +202,8 @@ public class NativePageFactory {
ObservableSupplier<Integer> tabStripHeightSupplier,
@@ -203,7 +209,8 @@ public class NativePageFactory {
OneshotSupplier<ModuleRegistry> moduleRegistrySupplier,
ObservableSupplier<EdgeToEdgeController> edgeToEdgeControllerSupplier,
ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
- StartupMetricsTracker startupMetricsTracker) {
+ StartupMetricsTracker startupMetricsTracker,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mActivity = activity;
mNewTabPageCreationTracker = newTabPageCreationTracker;
mBottomSheetController = sheetController;
@@ -215,6 +222,7 @@ public class NativePageFactory {
mModuleRegistrySupplier = moduleRegistrySupplier;
@@ -223,6 +230,7 @@ public class NativePageFactory {
mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier;
mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier;
mStartupMetricsTracker = startupMetricsTracker;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
protected NativePage buildNewTabPage(Tab tab, String url) {
@@ -252,7 +260,8 @@ public class NativePageFactory {
mTabStripHeightSupplier,
@@ -261,7 +269,8 @@ public class NativePageFactory {
mModuleRegistrySupplier,
mEdgeToEdgeControllerSupplier,
mTopInsetCoordinatorSupplier,
- mStartupMetricsTracker);
+ mStartupMetricsTracker,
+ mBookmarkManagerOpenerSupplier);
@@ -493,7 +543,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -116,6 +116,9 @@ import org.chromium.ui.base.DeviceFormFactor;
@@ -125,6 +125,9 @@ import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -503,17 +553,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
import java.util.List;
/** Provides functionality when the user interacts with the NTP. */
@@ -483,7 +486,8 @@ public class NewTabPage
ObservableSupplier<Integer> tabStripHeightSupplier,
@@ -503,7 +506,8 @@ public class NewTabPage
OneshotSupplier<ModuleRegistry> moduleRegistrySupplier,
ObservableSupplier<EdgeToEdgeController> edgeToEdgeControllerSupplier,
ObservableSupplier<TopInsetCoordinator> topInsetCoordinatorSupplier,
- StartupMetricsTracker startupMetricsTracker) {
+ StartupMetricsTracker startupMetricsTracker,
+ @NonNull ObservableSupplier<BookmarkManagerOpener> bookmarkManagerOpenerSupplier) {
mConstructedTimeNs = System.nanoTime();
TraceEvent.begin(TAG);
@@ -507,7 +511,7 @@ public class NewTabPage
@@ -528,7 +532,7 @@ public class NewTabPage
SuggestionsNavigationDelegate navigationDelegate =
new SuggestionsNavigationDelegate(
@@ -525,23 +575,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -14,6 +14,7 @@ import android.text.Editable;
@@ -13,6 +13,7 @@ import android.graphics.Rect;
import android.text.Editable;
import android.util.AttributeSet;
import android.view.DragEvent;
import android.view.LayoutInflater;
+import android.view.ViewStub;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
@@ -39,6 +40,7 @@ import org.chromium.chrome.browser.composeplate.ComposeplateUtils;
import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
@@ -41,6 +42,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.lens.LensEntryPoint;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lens.LensMetrics;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.logo.LogoBridge.Logo;
@@ -54,7 +56,7 @@ import org.chromium.chrome.browser.profiles.Profile;
@@ -58,7 +60,7 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
import org.chromium.chrome.browser.suggestions.tile.TileGroup;
import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate;
@@ -550,7 +600,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider;
import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate;
import org.chromium.chrome.browser.util.BrowserUiUtils;
@@ -99,6 +101,8 @@ public class NewTabPageLayout extends LinearLayout
@@ -103,6 +105,8 @@ public class NewTabPageLayout extends LinearLayout
private @Nullable DisplayStyleObserver mDisplayStyleObserver;
private CallbackController mCallbackController = new CallbackController();
@@ -559,7 +609,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
/**
* Whether the tiles shown in the layout have finished loading.
* With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress.
@@ -111,7 +115,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -115,7 +119,7 @@ public class NewTabPageLayout extends LinearLayout
*/
private boolean mHasShownView;
@@ -567,16 +617,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
+ private boolean mSearchProviderHasLogo = false;
private boolean mSearchProviderIsGoogle;
private boolean mShowingNonStandardGoogleLogo;
@@ -278,6 +282,7 @@ public class NewTabPageLayout extends LinearLayout
private boolean mIsOmniboxMobileParityUpdateV2Enabled;
@@ -300,6 +304,7 @@ public class NewTabPageLayout extends LinearLayout
initializeMostVisitedTilesCoordinator(
mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate);
initializeDseIconView(searchProviderIsGoogle);
initializeDseIconView(shouldShowDseIcon());
+ initializeShortcuts();
initializeSearchBoxTextView();
initializeVoiceSearchButton();
initializeLensButton();
@@ -632,7 +637,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -684,7 +689,7 @@ public class NewTabPageLayout extends LinearLayout
if (mInitialTileNum == null) {
mInitialTileNum =
@@ -585,7 +635,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
}
int currentOrientation = getResources().getConfiguration().orientation;
@@ -700,7 +705,7 @@ public class NewTabPageLayout extends LinearLayout
@@ -752,7 +757,7 @@ public class NewTabPageLayout extends LinearLayout
&& mInitialized) {
return;
}
@@ -594,7 +644,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
mSearchProviderIsGoogle = isGoogle;
if (!mSearchProviderIsGoogle) {
@@ -1096,6 +1101,22 @@ public class NewTabPageLayout extends LinearLayout
@@ -1181,6 +1186,22 @@ public class NewTabPageLayout extends LinearLayout
return mMostVisitedTilesCoordinator;
}
@@ -632,7 +682,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
@@ -22,16 +22,41 @@ import org.chromium.ui.base.PageTransition;
@@ -23,17 +23,42 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.GURL;
@@ -645,6 +695,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
+import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener;
+
/** Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. */
@NullMarked
public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl {
+ private final @NonNull ObservableSupplier<BookmarkManagerOpener> mBookmarkManagerOpenerSupplier;
@@ -678,10 +729,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java
@@ -64,15 +64,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver
@@ -65,15 +65,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver
mActivity = activity;
mActivityLifecycleDispatcher = activityLifecycleDispatcher;
((ViewStub) mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout_stub)).inflate();
- MostVisitedTilesLayout tilesLayout =
+ MostVisitedTilesGridLayout tilesLayout =
mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout);
@@ -990,33 +1041,33 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
@@ -45,7 +45,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl
@@ -44,7 +44,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
private final Resources mResources;
private final UiConfig mUiConfig;
- private final MostVisitedTilesLayout mMvTilesLayout;
+ private final MostVisitedTilesGridLayout mMvTilesLayout;
private final ViewStub mNoMvPlaceholderStub;
private final PropertyModel mModel;
private final boolean mIsTablet;
@@ -68,7 +68,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl
private final int mTileViewLandscapePadding;
@@ -67,7 +67,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
public MostVisitedTilesMediator(
Resources resources,
UiConfig uiConfig,
- MostVisitedTilesLayout mvTilesLayout,
+ MostVisitedTilesGridLayout mvTilesLayout,
ViewStub noMvPlaceholderStub,
TileRenderer renderer,
PropertyModel propertyModel,
@@ -174,7 +174,6 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl
boolean isTablet,
@@ -211,7 +211,6 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
@Override
public void onCustomTileCreation(Tile tile) {
- mMvTilesLayout.ensureTileIsInViewOnNextLayout(tile.getIndex());
}
public void onConfigurationChanged() {
@@ -303,7 +302,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl
@Override
@@ -329,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl());
if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return;
@@ -1027,25 +1078,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java
@@ -64,7 +64,7 @@ class TileDragDelegateImpl implements TileGroup.TileDragDelegate, TileDragSessio
@@ -74,7 +74,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate
private static final float DOMINATE_TRESHOLD_RATIO = 0.4f;
// Parent container for dragged tiles.
- private final MostVisitedTilesLayout mMvTilesLayout;
+ private final MostVisitedTilesGridLayout mMvTilesLayout;
private final float mTileWidthPx;
private final @Px float mTileWidthPx;
@@ -85,7 +85,7 @@ class TileDragDelegateImpl implements TileGroup.TileDragDelegate, TileDragSessio
// Runnable to cancel tile movement that might not have completed yet, due to animation.
private @Nullable Runnable mPendingChangeCanceller;
@@ -100,7 +100,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate
// (e.g., for Swap Flow, to allow fast repeated keyboard-triggered swaps) the action.
private @Nullable Runnable mPendingChangeFinalizer;
- public TileDragDelegateImpl(MostVisitedTilesLayout mvTilesLayout) {
+ public TileDragDelegateImpl(MostVisitedTilesGridLayout mvTilesLayout) {
mMvTilesLayout = mvTilesLayout;
Resources res = mMvTilesLayout.getResources();
mTileWidthPx = res.getDimensionPixelSize(R.dimen.tile_view_width);
@@ -187,7 +187,7 @@ class TileDragDelegateImpl implements TileGroup.TileDragDelegate, TileDragSessio
@@ -269,7 +269,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate
@Override
public SiteSuggestion getTileViewData(TileView view) {
@@ -1053,11 +1104,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
+ return null;
}
private void cancelPendingChange() {
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
@@ -170,7 +170,7 @@ public class TileRenderer {
@@ -174,7 +174,7 @@ public class TileRenderer {
*/
public void renderTileSection(
List<Tile> sectionTiles,
@@ -1066,7 +1117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
TileGroup.TileSetupDelegate setupDelegate) {
try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) {
// Map the old tile views by url so they can be reused later.
@@ -238,7 +238,7 @@ public class TileRenderer {
@@ -263,7 +263,7 @@ public class TileRenderer {
*/
@VisibleForTesting
SuggestionsTileView buildTileView(
@@ -1075,16 +1126,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
SuggestionsTileView tileView =
(SuggestionsTileView)
LayoutInflater.from(parent.getContext())
@@ -308,7 +308,7 @@ public class TileRenderer {
@@ -330,7 +330,7 @@ public class TileRenderer {
return tileView;
}
- View buildDivider(TilesLinearLayout parent) {
+ View buildDivider(MostVisitedTilesGridLayout parent) {
return (View)
- SuggestionsTileVerticalDivider buildDivider(TilesLinearLayout parent) {
+ SuggestionsTileVerticalDivider buildDivider(MostVisitedTilesGridLayout parent) {
return (SuggestionsTileVerticalDivider)
LayoutInflater.from(parent.getContext())
.inflate(R.layout.suggestions_tile_vertical_divider, parent, false);
@@ -329,7 +329,7 @@ public class TileRenderer {
@@ -351,7 +351,7 @@ public class TileRenderer {
}
TileView buildAddCustomLinksButton(
@@ -1096,7 +1147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TilesLinearLayout.java
@@ -24,7 +24,7 @@ import java.util.List;
@@ -26,7 +26,7 @@ import java.util.List;
* #getChildCount()} and {@link #getChildAt()}.
*/
@NullMarked
@@ -1120,7 +1171,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -327,6 +327,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -339,6 +339,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kIncognitoScreenshot,
&kInstanceSwitcherV2,
&kKeyboardEscBackNavigation,
@@ -1131,15 +1182,15 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -457,6 +457,7 @@ public abstract class ChromeFeatureList {
"MayLaunchUrlUsesSeparateStoragePartition";
public static final String MINI_ORIGIN_BAR = "MiniOriginBar";
@@ -475,6 +475,7 @@ public abstract class ChromeFeatureList {
public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP =
"MitigateLegacySearchEnginePromoOverlap";
public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization";
+ public static final String SIMPLIFIED_NTP = "SimplifiedNTP";
public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox";
public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect";
public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP =
@@ -886,7 +887,7 @@ public abstract class ChromeFeatureList {
@@ -932,7 +933,7 @@ public abstract class ChromeFeatureList {
/* defaultValueInTests= */ true);
public static final CachedFlag sLockBackPressHandlerAtStart =
newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true);
File diff suppressed because it is too large Load Diff
@@ -19,8 +19,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -405,7 +405,7 @@ config("compiler") {
} else if ((is_posix && !is_nacl) || is_fuchsia) {
@@ -440,7 +440,7 @@ config("compiler") {
} else if (is_posix || is_fuchsia) {
if (current_os != "aix") {
# Not available on aix.
- cflags += [ "-fstack-protector" ]
+22 -22
View File
@@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -4313,6 +4313,7 @@
@@ -4337,6 +4337,7 @@
},
{
name: "opacity",
@@ -290,7 +290,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
compositable: true,
@@ -4320,7 +4321,6 @@
@@ -4344,7 +4345,6 @@
field_template: "primitive",
default_value: "1.0",
type_name: "float",
@@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -1102,7 +1102,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) {
@@ -1113,7 +1113,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) {
page_popup_ = WebPagePopupImpl::Create(
std::move(popup_widget_host), std::move(widget_host),
std::move(widget_receiver), this, agent_group_scheduler,
@@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -1595,7 +1595,12 @@ int LocalDOMWindow::outerHeight() const {
@@ -1613,7 +1613,12 @@ int LocalDOMWindow::outerHeight() const {
if (frame->IsInFencedFrameTree()) {
return innerHeight();
}
@@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
Page* page = frame->GetPage();
if (!page)
return 0;
@@ -1620,7 +1625,12 @@ int LocalDOMWindow::outerWidth() const {
@@ -1638,7 +1643,12 @@ int LocalDOMWindow::outerWidth() const {
if (frame->IsInFencedFrameTree()) {
return innerWidth();
}
@@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
Page* page = frame->GetPage();
if (!page)
return 0;
@@ -1824,7 +1834,8 @@ double LocalDOMWindow::devicePixelRatio() const {
@@ -1842,7 +1852,8 @@ double LocalDOMWindow::devicePixelRatio() const {
if (!GetFrame())
return 0.0;
@@ -448,8 +448,8 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
+ return GetFrame()->DevicePixelRatio(/*with_zoom_factor*/false);
}
void LocalDOMWindow::scrollBy(double x, double y) const {
@@ -2446,6 +2457,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
ScriptPromise<IDLUndefined> LocalDOMWindow::scrollBy(ScriptState* script_state,
@@ -2483,6 +2494,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
if (!completed_url.IsEmpty() || result.new_window)
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
@@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
// TODO(japhet): window-open-noopener.html?_top and several tests in
// html/browsers/windows/browsing-context-names/ appear to require that
// the special case target names (_top, _parent, _self) ignore opener
@@ -2497,6 +2525,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow(
@@ -2534,6 +2562,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow(
DCHECK(result.new_window);
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
@@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -1662,6 +1662,10 @@ void LocalFrame::RestoreScrollOffsets() {
@@ -1661,6 +1661,10 @@ void LocalFrame::RestoreScrollOffsets() {
saved_scroll_offsets_ = nullptr;
}
@@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
void LocalFrame::SetLayoutZoomFactor(float factor) {
SetZoomFactors(factor, text_zoom_factor_, css_zoom_factor_);
}
@@ -1850,12 +1854,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() {
@@ -1849,12 +1853,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() {
return mojo_handler_->GetDevicePosture();
}
@@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
return ratio;
}
@@ -3410,6 +3418,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) {
@@ -3409,6 +3417,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) {
DCHECK(!GetDocument() || !GetDocument()->Printing());
DCHECK(IsMainFrame());
@@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -443,7 +443,8 @@ class CORE_EXPORT LocalFrame final
@@ -434,7 +434,8 @@ class CORE_EXPORT LocalFrame final
void SetInViewSourceMode(bool = true);
void SetLayoutZoomFactor(float);
@@ -547,7 +547,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
void SetTextZoomFactor(float);
float TextZoomFactor() const { return text_zoom_factor_; }
void SetCssZoomFactor(float);
@@ -452,7 +453,7 @@ class CORE_EXPORT LocalFrame final
@@ -443,7 +444,7 @@ class CORE_EXPORT LocalFrame final
float text_zoom_factor,
float css_zoom_factor);
@@ -556,7 +556,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
// Informs the local root's document and its local descendant subtree that a
// media query value changed.
@@ -1112,6 +1113,7 @@ class CORE_EXPORT LocalFrame final
@@ -1102,6 +1103,7 @@ class CORE_EXPORT LocalFrame final
unsigned did_run_detach_impl_ : 1 = false;
float layout_zoom_factor_;
@@ -662,10 +662,10 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -2027,6 +2027,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
@@ -1959,6 +1959,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
if (auto* device_emulator = DeviceEmulator()) {
device_emulator->UpdateVisualProperties(visual_properties);
if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) {
DeviceEmulator()->UpdateVisualProperties(visual_properties);
+ // Shink the view according to browsercontrols
+ size_ = widget_base_->DIPsToCeiledBlinkSpace(
+ device_emulator->ViewWindowSize());
@@ -734,7 +734,7 @@ diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -109,6 +109,12 @@
@@ -108,6 +108,12 @@
#include "ui/color/color_provider_utils.h"
#include "ui/gfx/geometry/insets_conversions.h"
@@ -747,7 +747,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
namespace blink {
namespace {
@@ -1306,7 +1312,94 @@ void Page::UpdateAcceleratedCompositingSettings() {
@@ -1293,7 +1299,94 @@ void Page::UpdateAcceleratedCompositingSettings() {
}
}
@@ -856,7 +856,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren
private:
friend class ScopedPagePauser;
class CloseTaskHandler;
@@ -726,6 +730,11 @@ class CORE_EXPORT Page final : public GarbageCollected<Page>,
@@ -724,6 +728,11 @@ class CORE_EXPORT Page final : public GarbageCollected<Page>,
// browser side FrameTree has the FrameTree::Type of kFencedFrame.
bool is_fenced_frame_tree_ = false;
@@ -871,7 +871,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -1970,6 +1970,12 @@ class ComputedStyle final : public ComputedStyleBase {
@@ -2003,6 +2003,12 @@ class ComputedStyle final : public ComputedStyleBase {
IsRunningBackdropFilterAnimationOnCompositor();
}
+55 -75
View File
@@ -9,7 +9,7 @@ Based on Chromium 133.0.6943.49
README.md | 12 +
base/threading/thread_restrictions.h | 9 +
base/trace_event/builtin_categories.h | 1 +
components/BUILD.gn | 7 +
components/BUILD.gn | 4 +
components/adblock/BUILD.gn | 36 +
components/adblock/CHANGELOG.md | 746 +++++++++
components/adblock/LICENSE | 674 ++++++++
@@ -348,7 +348,7 @@ Based on Chromium 133.0.6943.49
content/shell/browser/shell.cc | 9 +
content/shell/browser/shell_browser_context.h | 7 +
.../shell/browser/shell_browser_main_parts.cc | 10 +-
...web_request_proxying_url_loader_factory.cc | 5 +
...web_request_proxying_url_loader_factory.cc | 6 +-
net/url_request/redirect_info.h | 8 +
.../network/public/cpp/net_ipc_param_traits.h | 5 +
.../blink/public/mojom/frame/frame.mojom | 8 +
@@ -357,7 +357,7 @@ Based on Chromium 133.0.6943.49
.../renderer/core/exported/web_document.cc | 50 +
.../core/frame/local_frame_mojo_handler.cc | 12 +
.../core/frame/local_frame_mojo_handler.h | 5 +
.../blink/renderer/core/html/html_element.cc | 12 +-
.../blink/renderer/core/html/html_element.cc | 8 +-
.../url_loader/mojo_url_loader_client.cc | 6 +-
tools/eyeo/generate_interdiffs.sh | 150 ++
tools/eyeo/generate_modules.sh | 259 +++
@@ -365,7 +365,7 @@ Based on Chromium 133.0.6943.49
tools/eyeo/update_git_grafts.py | 138 ++
tools/gritsettings/resource_ids.spec | 12 +
.../histograms/metadata/extensions/enums.xml | 8 +-
361 files changed, 48844 insertions(+), 8 deletions(-)
361 files changed, 48837 insertions(+), 9 deletions(-)
create mode 100644 components/adblock/BUILD.gn
create mode 100644 components/adblock/CHANGELOG.md
create mode 100644 components/adblock/LICENSE
@@ -700,7 +700,7 @@ Based on Chromium 133.0.6943.49
diff --git a/DEPS b/DEPS
--- a/DEPS
+++ b/DEPS
@@ -277,6 +277,7 @@ vars = {
@@ -278,6 +278,7 @@ vars = {
'download_libvpx_testdata': False,
'android_git': 'https://android.googlesource.com',
@@ -708,9 +708,9 @@ diff --git a/DEPS b/DEPS
'aomedia_git': 'https://aomedia.googlesource.com',
'boringssl_git': 'https://boringssl.googlesource.com',
'chrome_git': 'https://chrome-internal.googlesource.com',
@@ -512,6 +513,11 @@ vars = {
@@ -521,6 +522,11 @@ vars = {
# and whatever else without interference from each other.
'compiler_rt_revision': '2a4f69a118bdc5d03c415de1b9b166b2f1d4084f',
'clusterfuzz_data_revision':'392cb8a05c3db5963d09b615987fe5fcb081088e',
+ # Three lines of non-changing comments so that
+ # the commit queue can handle CLs rolling feed
@@ -719,8 +719,8 @@ diff --git a/DEPS b/DEPS
+
# If you change this, also update the libc++ revision in
# //buildtools/deps_revisions.gni.
'libcxx_revision': '2c359c239b138a20a03f798e47889448ef131c22',
@@ -1567,6 +1573,10 @@ deps = {
'libcxx_revision': 'adbb4a5210ae2a8a4e27fa6199221156c02a9b1a',
@@ -1604,6 +1610,10 @@ deps = {
'condition': 'checkout_android and checkout_src_internal',
},
@@ -729,7 +729,7 @@ diff --git a/DEPS b/DEPS
+ },
+
'src/docs/website': {
'url': Var('chromium_git') + '/website.git' + '@' + 'a812d22617824ad2cd291e110378ccec5ae7735f',
'url': Var('chromium_git') + '/website.git' + '@' + 'a89f6810f6a5b0e11e4ec00387e9f97e8f6c23ae',
},
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
@@ -786,7 +786,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri
#ifndef BASE_THREADING_THREAD_RESTRICTIONS_H_
#define BASE_THREADING_THREAD_RESTRICTIONS_H_
@@ -170,6 +174,9 @@ class OverlayProcessorWebView;
@@ -172,6 +176,9 @@ class OverlayProcessorWebView;
class ScopedAllowInitGLBindings;
class VizCompositorThreadRunnerWebView;
} // namespace android_webview
@@ -796,7 +796,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri
namespace ash {
class LoginEventRecorder;
class StartupCustomizationDocument;
@@ -661,6 +668,8 @@ class BASE_EXPORT ScopedAllowBlocking {
@@ -654,6 +661,8 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class ::BrowserStateDirectoryBuilder;
#endif
@@ -808,7 +808,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
--- a/base/trace_event/builtin_categories.h
+++ b/base/trace_event/builtin_categories.h
@@ -128,6 +128,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
@@ -131,6 +131,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
perfetto::Category("exo"),
perfetto::Category("extensions"),
perfetto::Category("explore_sites"),
@@ -819,17 +819,7 @@ diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_ca
diff --git a/components/BUILD.gn b/components/BUILD.gn
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -1,6 +1,9 @@
# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+#
+# This source code is a part of eyeo Chromium SDK.
+# Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file.
import("//base/debug/debug.gni")
import("//build/config/chrome_build.gni")
@@ -182,6 +185,7 @@ test("components_unittests") {
@@ -184,6 +184,7 @@ test("components_unittests") {
deps = [
"//base",
@@ -837,7 +827,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
"//components/affiliations/core/browser:unit_tests",
"//components/aggregation_service:unit_tests",
"//components/apdu:unit_tests",
@@ -962,6 +966,7 @@ test("components_unittests") {
@@ -966,6 +967,7 @@ test("components_unittests") {
repack("components_tests_pak") {
sources = [
@@ -845,7 +835,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
"$root_gen_dir/components/arc/input_overlay_resources.pak",
"$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak",
"$root_gen_dir/components/components_resources.pak",
@@ -978,6 +983,7 @@ repack("components_tests_pak") {
@@ -984,6 +986,7 @@ repack("components_tests_pak") {
# TODO(b/207518736): Input overlay resources will be changed to proto soon,
# thus not going to move this resource pak to under ash.
"//chromeos/ash/experiences/arc/input_overlay/resources:resources_grit",
@@ -853,7 +843,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
"//components/autofill/core/browser:autofill_address_rewriter_resources",
"//components/metrics:server_urls_grd",
"//components/omnibox/resources:omnibox_pedal_synonyms",
@@ -1080,6 +1086,7 @@ if (use_blink) {
@@ -1088,6 +1091,7 @@ if (use_blink) {
deps = [
"//base",
"//base/test:test_support",
@@ -50253,12 +50243,12 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow
#include "content/browser/loader/navigation_url_loader_impl.h"
#include <map>
@@ -1254,7 +1258,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect(
LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect",
resource_request_->is_outermost_main_frame);
net::Error error = net::OK;
- if (!bypass_redirect_checks_ &&
+ if (!bypass_redirect_checks_ && !redirect_info.bypass_redirect_checks &&
@@ -1526,7 +1530,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect(
? head->bypass_redirect_checks
: bypass_redirect_checks_;
- if (!bypass_redirect_checks &&
+ if (!bypass_redirect_checks && !redirect_info.bypass_redirect_checks &&
!IsSafeRedirectTarget(url_, redirect_info.new_url)) {
error = net::ERR_UNSAFE_REDIRECT;
} else if (--redirect_limit_ == 0) {
@@ -50276,7 +50266,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
#include "content/browser/renderer_host/render_frame_host_impl.h"
@@ -3567,6 +3571,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod(
@@ -3607,6 +3611,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod(
std::move(callback));
}
@@ -50303,7 +50293,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br
#ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_
#define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_
@@ -500,6 +504,10 @@ class CONTENT_EXPORT RenderFrameHostImpl
@@ -498,6 +502,10 @@ class CONTENT_EXPORT RenderFrameHostImpl
const std::u16string& method_name,
base::Value::List arguments,
JavaScriptResultCallback callback) override;
@@ -50328,7 +50318,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser
#ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
#define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
@@ -557,6 +561,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener,
@@ -556,6 +560,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener {
virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level,
const std::string& message) = 0;
@@ -50377,7 +50367,7 @@ diff --git a/content/public/test/fake_local_frame.cc b/content/public/test/fake_
#include "content/public/test/fake_local_frame.h"
@@ -99,6 +103,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint(
@@ -97,6 +101,9 @@ void FakeLocalFrame::RequestVideoFrameAtWithBoundsHint(
void FakeLocalFrame::PluginActionAt(const gfx::Point& location,
blink::mojom::PluginActionType action) {}
@@ -50401,7 +50391,7 @@ diff --git a/content/public/test/fake_local_frame.h b/content/public/test/fake_l
#ifndef CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_
#define CONTENT_PUBLIC_TEST_FAKE_LOCAL_FRAME_H_
@@ -80,6 +84,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame {
@@ -79,6 +83,7 @@ class FakeLocalFrame : public blink::mojom::LocalFrame {
RequestVideoFrameAtWithBoundsHintCallback callback) override;
void PluginActionAt(const gfx::Point& location,
blink::mojom::PluginActionType action) override;
@@ -50422,7 +50412,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
import("//build/config/cast.gni")
import("//build/config/chromeos/ui_mode.gni")
@@ -162,6 +165,10 @@ inspector_protocol_generate("protocol_sources") {
@@ -167,6 +170,10 @@ inspector_protocol_generate("protocol_sources") {
static_library("content_shell_lib") {
testonly = true
sources = [
@@ -50433,7 +50423,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"browser/protocol/browser_handler.cc",
"browser/protocol/browser_handler.h",
"browser/protocol/domain_handler.h",
@@ -231,6 +238,7 @@ static_library("content_shell_lib") {
@@ -236,6 +243,7 @@ static_library("content_shell_lib") {
"browser/shell_platform_delegate_android.cc",
"browser/shell_web_contents_view_delegate_android.cc",
]
@@ -50441,7 +50431,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
}
if (is_mac) {
@@ -312,6 +320,8 @@ static_library("content_shell_lib") {
@@ -317,6 +325,8 @@ static_library("content_shell_lib") {
"//base",
"//base:base_static",
"//cc/base",
@@ -50450,7 +50440,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"//components/cdm/renderer",
"//components/custom_handlers",
"//components/custom_handlers:test_support",
@@ -332,6 +342,7 @@ static_library("content_shell_lib") {
@@ -337,6 +347,7 @@ static_library("content_shell_lib") {
"//components/prefs",
"//components/services/storage/test_api",
"//components/url_formatter",
@@ -50458,7 +50448,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"//components/variations",
"//components/variations/service",
"//components/web_cache/renderer",
@@ -424,6 +435,7 @@ static_library("content_shell_lib") {
@@ -428,6 +439,7 @@ static_library("content_shell_lib") {
"//mojo/public/java/system:test_support",
"//ui/android",
]
@@ -50466,7 +50456,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
}
if (shell_use_toolkit_views) {
@@ -515,6 +527,8 @@ repack("pak") {
@@ -523,6 +535,8 @@ repack("pak") {
sources = [
"$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak",
@@ -50475,7 +50465,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
"$root_gen_dir/components/ukm_resources.pak",
"$root_gen_dir/content/attribution_internals_resources.pak",
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
@@ -547,6 +561,8 @@ repack("pak") {
@@ -556,6 +570,8 @@ repack("pak") {
deps = [
":resources",
"//base/tracing/protos:chrome_track_event_resources",
@@ -50483,7 +50473,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
+ "//components/adblock/core/resources:adblock_resources",
"//components/ukm/debug:resources",
"//content:content_resources",
"//content/browser/resources:resources",
"//content/browser/resources",
diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_main_delegate.cc
--- a/content/shell/app/shell_main_delegate.cc
+++ b/content/shell/app/shell_main_delegate.cc
@@ -50507,7 +50497,7 @@ diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_
#include "content/shell/common/shell_content_client.h"
#include "content/shell/common/shell_paths.h"
#include "content/shell/common/shell_switches.h"
@@ -464,7 +468,7 @@ ContentBrowserClient* ShellMainDelegate::CreateContentBrowserClient() {
@@ -466,7 +470,7 @@ ContentBrowserClient* ShellMainDelegate::CreateContentBrowserClient() {
return browser_client_.get();
}
#endif
@@ -50834,11 +50824,12 @@ diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_
#include "extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h"
#include <memory>
@@ -452,6 +456,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect(
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT);
@@ -464,7 +468,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect(
head->bypass_redirect_checks = true;
}
if (redirect_url_ != redirect_info.new_url &&
+ !redirect_info.bypass_redirect_checks &&
- if (!redirect_url_comes_from_extension &&
+ if (!redirect_url_comes_from_extension && !redirect_info.bypass_redirect_checks &&
!IsRedirectSafe(request_.url, redirect_info.new_url,
info_->is_navigation_request)) {
OnNetworkError(CreateURLLoaderCompletionStatus(net::ERR_UNSAFE_REDIRECT));
@@ -50856,7 +50847,7 @@ diff --git a/net/url_request/redirect_info.h b/net/url_request/redirect_info.h
#ifndef NET_URL_REQUEST_REDIRECT_INFO_H_
#define NET_URL_REQUEST_REDIRECT_INFO_H_
@@ -83,6 +87,10 @@ struct NET_EXPORT RedirectInfo {
@@ -89,6 +93,10 @@ struct NET_EXPORT RedirectInfo {
// True if this is a redirect from Signed Exchange to its fallback URL.
bool is_signed_exchange_fallback_redirect = false;
@@ -50881,7 +50872,7 @@ diff --git a/services/network/public/cpp/net_ipc_param_traits.h b/services/netwo
#ifndef SERVICES_NETWORK_PUBLIC_CPP_NET_IPC_PARAM_TRAITS_H_
#define SERVICES_NETWORK_PUBLIC_CPP_NET_IPC_PARAM_TRAITS_H_
@@ -275,6 +279,7 @@ IPC_STRUCT_TRAITS_BEGIN(net::RedirectInfo)
@@ -277,6 +281,7 @@ IPC_STRUCT_TRAITS_BEGIN(net::RedirectInfo)
IPC_STRUCT_TRAITS_MEMBER(new_referrer)
IPC_STRUCT_TRAITS_MEMBER(insecure_scheme_was_upgraded)
IPC_STRUCT_TRAITS_MEMBER(is_signed_exchange_fallback_redirect)
@@ -50903,7 +50894,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin
module blink.mojom;
@@ -983,6 +987,10 @@ interface LocalFrame {
@@ -1010,6 +1014,10 @@ interface LocalFrame {
// the given point in the view coordinate space.
PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action);
@@ -50928,7 +50919,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub
#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_
#define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_
@@ -151,6 +155,14 @@ class BLINK_EXPORT WebDocument : public WebNode {
@@ -152,6 +156,14 @@ class BLINK_EXPORT WebDocument : public WebNode {
WebCssOrigin = WebCssOrigin::kAuthor,
BackForwardCacheAware = BackForwardCacheAware::kAllow);
@@ -50972,7 +50963,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_
diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc
--- a/third_party/blink/renderer/core/exported/web_document.cc
+++ b/third_party/blink/renderer/core/exported/web_document.cc
@@ -277,6 +277,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet(
@@ -278,6 +278,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet(
return injection_key;
}
@@ -51072,7 +51063,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_
@@ -114,6 +118,7 @@ class LocalFrameMojoHandler
@@ -113,6 +117,7 @@ class LocalFrameMojoHandler
void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level,
const WTF::String& message,
bool discard_duplicates) final;
@@ -51083,18 +51074,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -23,6 +23,10 @@
*
*/
+// This source code is a part of eyeo Chromium SDK.
+// Use of this source code is governed by the GPLv3 that can be found in the
+// components/adblock/LICENSE file.
+
#include "third_party/blink/renderer/core/html/html_element.h"
#include "base/containers/enum_set.h"
@@ -2507,7 +2511,13 @@ void HTMLElement::setSpellcheck(bool enable) {
@@ -2618,7 +2618,13 @@ void HTMLElement::setSpellcheck(bool enable) {
}
void HTMLElement::click() {
@@ -51123,15 +51103,15 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur
#include "third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h"
#include <iterator>
@@ -390,7 +394,7 @@ void MojoURLLoaderClient::OnReceiveRedirect(
OnComplete(network::URLLoaderCompletionStatus(net::ERR_ABORTED));
@@ -391,7 +395,7 @@ void MojoURLLoaderClient::OnReceiveRedirect(
return;
}
- if (!bypass_redirect_checks_ &&
+ if (!bypass_redirect_checks_ && !redirect_info.bypass_redirect_checks &&
!Platform::Current()->IsRedirectSafe(GURL(last_loaded_url_),
redirect_info.new_url)) {
OnComplete(network::URLLoaderCompletionStatus(net::ERR_UNSAFE_REDIRECT));
redirect_info.new_url,
redirect_info.original_initiator)) {
diff --git a/tools/eyeo/generate_interdiffs.sh b/tools/eyeo/generate_interdiffs.sh
new file mode 100755
--- /dev/null
@@ -51773,7 +51753,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_
# This file is used to assign starting resource ids for resources and strings
# used by Chromium. This is done to ensure that resource ids are unique
# across all the grd files. If you are adding a new grd file, please add
@@ -1168,6 +1172,14 @@
@@ -1192,6 +1196,14 @@
"components/user_scripts/browser/resources/browser_resources.grd": {
"includes": [7620],
},
@@ -51811,7 +51791,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr
<int value="23" label="DELETED_AUDIO_MODEM_ON_TRANSMIT_FAIL"/>
<int value="24" label="DELETED_AUDIO_ON_DEVICE_CHANGED"/>
<int value="25" label="AUDIO_ON_DEVICES_CHANGED"/>
@@ -3211,6 +3215,8 @@ Called by update_extension_permission.py.-->
@@ -3221,6 +3225,8 @@ Called by update_extension_permission.py.-->
<int value="261" label="kOmniboxDirectInput"/>
<int value="262" label="kExperimentalActor"/>
<int value="263" label="kEnterpriseLogin"/>