From 558348760fa8742f7fd8f4221b8c4a39670e8441 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 15 Jan 2026 12:59:11 +0100 Subject: [PATCH] Drop patch in 144 --- build/cromite_patches_list.txt | 6 - ...port-v144-android-extensions-changes.patch | 954 ------------------ .../Block-qjz9zk-or-trk-requests.patch | 277 ----- ...k-for-the-presence-of-use-remoteexec.patch | 18 - .../Follow-only-system-dark-mode.patch | 24 - ...formanceNavigationTiming-privacy-fix.patch | 50 - .../exit-on-failure-of-inclusion.patch | 32 - 7 files changed, 1361 deletions(-) delete mode 100644 build/patches/Backport-v144-android-extensions-changes.patch delete mode 100644 build/patches/Block-qjz9zk-or-trk-requests.patch delete mode 100644 build/patches/Do-not-check-for-the-presence-of-use-remoteexec.patch delete mode 100644 build/patches/Follow-only-system-dark-mode.patch delete mode 100644 build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch delete mode 100644 build/patches/exit-on-failure-of-inclusion.patch diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 16153152..ec6b0c0a 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -1,5 +1,4 @@ Do-not-link-with-libatomic.patch -Do-not-check-for-the-presence-of-use-remoteexec.patch bromite-build-utils.patch Add-cromite-flags-support.patch Force-use-vpython3-for-some-scripts.patch @@ -10,7 +9,6 @@ Restore-chrome-password-store.patch Remove-EV-certificates.patch do-not-hide-.orig-files.patch do-not-add-suffix-to-package-name.patch -exit-on-failure-of-inclusion.patch Move-some-account-settings-back-to-privacy-settings.patch kill-Vision.patch kill-Location-fall-back-to-system.patch @@ -99,7 +97,6 @@ Block-gateway-attacks-via-websockets.patch Enable-darken-websites-checkbox-in-themes.patch Remove-blocklisted-URLs-upon-bookmark-creation.patch Disable-the-DIAL-repeating-discovery.patch -Block-qjz9zk-or-trk-requests.patch Hardening-against-incognito-mode-detection.patch Restore-Simplified-NTP-launch.patch Add-option-to-use-home-page-as-NTP.patch @@ -156,7 +153,6 @@ Enable-Certificate-Transparency.patch Invalidate-components-public-key.patch Improve-plain-text-rendering-on-mobile.patch Remove-segmentation-platform.patch -Follow-only-system-dark-mode.patch Remove-window-name-on-cross-origin-navigation.patch Remove-preload-of-com.google.android.gms.fonts.patch Partition-Blink-memory-cache.patch @@ -310,7 +306,6 @@ Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch # temporary or wip patches -Temp-PerformanceNavigationTiming-privacy-fix.patch Temp-disable-predictive-back-gesture.patch TEMP-Add-a-log-to-track-strange-behavior.patch Temp-guard-FileSystemAccessPersistentPermissions.patch @@ -331,5 +326,4 @@ Eyeo-Adblock-for-Cromite.patch # extension patches Experimental-support-for-extensions-on-Android.patch -Backport-v144-android-extensions-changes.patch Enable-extension-in-incognito.patch diff --git a/build/patches/Backport-v144-android-extensions-changes.patch b/build/patches/Backport-v144-android-extensions-changes.patch deleted file mode 100644 index b4a19d39..00000000 --- a/build/patches/Backport-v144-android-extensions-changes.patch +++ /dev/null @@ -1,954 +0,0 @@ -From: uazo -Date: Thu, 6 Nov 2025 13:22:24 +0000 -Subject: Backport-v144-android-extensions-changes - -Enable support for anonymous browsing. -Backport of bugid -7089957: extensions Use BrowserWindowInterface in ExtensionViewHost -https://chromium-review.googlesource.com/c/chromium/src/+/7089957 - -7126008: Destroy ExtensionWindowControllerBridge when its Profile is destroyed -https://chromium-review.googlesource.com/c/chromium/src/+/7126008 ---- - .../chrome/browser/ChromeTabbedActivity.java | 1 + - .../chrome/browser/app/ChromeActivity.java | 12 ++ - .../customtabs/BaseCustomTabActivity.java | 1 + - .../BaseCustomTabRootUiCoordinator.java | 5 + - .../tabbed_mode/TabbedRootUiCoordinator.java | 2 + - .../browser/toolbar/ToolbarManager.java | 4 + - .../chrome/browser/ui/RootUiCoordinator.java | 6 + - chrome/android/junit/BUILD.gn | 1 + - ...aseCustomTabRootUiCoordinatorUnitTest.java | 4 + - .../extensions/extension_view_host_factory.cc | 127 +++++++++--------- - .../extensions/extension_view_host_factory.h | 17 +-- - chrome/browser/ui/android/extensions/BUILD.gn | 1 + - .../extension_action_popup_contents.cc | 9 +- - .../ExtensionActionPopupContents.java | 14 +- - .../extensions/windowing/internal/BUILD.gn | 1 + - .../ExtensionWindowControllerBridgeImpl.java | 45 ++++++- - chrome/browser/ui/android/toolbar/BUILD.gn | 2 + - .../ExtensionActionListCoordinator.java | 10 +- - .../ExtensionActionListMediator.java | 16 ++- - .../ExtensionActionListMediatorTest.java | 11 +- - .../ExtensionToolbarCoordinator.java | 5 + - .../ExtensionToolbarCoordinatorImpl.java | 4 + - 22 files changed, 201 insertions(+), 97 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -2937,6 +2937,7 @@ public class ChromeTabbedActivity extends ChromeActivity { - mLayoutStateProviderSupplier, - getBrowserControlsManager(), - getWindowAndroid(), -+ getChromeAndroidTaskSupplier(), - getLifecycleDispatcher(), - getLayoutManagerSupplier(), - /* menuOrKeyboardActionController= */ this, -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 -@@ -62,6 +62,7 @@ import org.chromium.base.metrics.RecordUserAction; - import org.chromium.base.shared_preferences.SharedPreferencesManager; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.supplier.OneshotSupplierImpl; - import org.chromium.base.supplier.UnownedUserDataSupplier; - import org.chromium.chrome.R; -@@ -447,6 +448,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity - - private @Nullable TabStateThemeResourceProvider mThemeResourceProvider; - -+ private final OneshotSupplierImpl mChromeAndroidTaskSupplier = -+ new OneshotSupplierImpl<>(); -+ - protected ChromeActivity() { - mManualFillingComponentSupplier.set(ManualFillingComponentFactory.createComponent()); - sNextActivityId++; -@@ -1093,9 +1097,17 @@ public abstract class ChromeActivity extends AsyncInitializationActivity - if (extensionWindowControllerBridge != null) { - chromeAndroidTask.addFeature(extensionWindowControllerBridge); - } -+ -+ // 4. Make the ChromeAndroidTask available via OneshotSupplier. -+ mChromeAndroidTaskSupplier.set(chromeAndroidTask); - } - } - -+ /** Returns an {@link OneshotSupplier} for {@link ChromeAndroidTask}. */ -+ protected final OneshotSupplier getChromeAndroidTaskSupplier() { -+ return mChromeAndroidTaskSupplier; -+ } -+ - @Override - public void onStartWithNative() { - assert mNativeInitialized : "onStartWithNative was called before native was initialized."; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -364,6 +364,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { - getTabModelSelectorSupplier(), - getBrowserControlsManager(), - getWindowAndroid(), -+ getChromeAndroidTaskSupplier(), - getLifecycleDispatcher(), - getLayoutManagerSupplier(), - /* menuOrKeyboardActionController= */ this, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java -@@ -30,6 +30,7 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.base.supplier.OneShotCallback; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.supplier.OneshotSupplierImpl; - import org.chromium.base.supplier.SupplierUtils; - import org.chromium.chrome.R; -@@ -96,6 +97,7 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker; - import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator; - import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; - import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; - import org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarCoordinator; -@@ -160,6 +162,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - * @param tabModelSelectorSupplier Supplies the {@link TabModelSelector}. - * @param browserControlsManager Manages the browser controls. - * @param windowAndroid The current {@link WindowAndroid}. -+ * @param chromeAndroidTaskSupplier Supplies an {@link ChromeAndroidTask}. - * @param activityLifecycleDispatcher Allows observation of the activity lifecycle. - * @param layoutManagerSupplier Supplies the {@link LayoutManager}. - * @param menuOrKeyboardActionController Controls the menu or keyboard action controller. -@@ -200,6 +203,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - @NonNull ObservableSupplier tabModelSelectorSupplier, - @NonNull BrowserControlsManager browserControlsManager, - @NonNull ActivityWindowAndroid windowAndroid, -+ @NonNull OneshotSupplier chromeAndroidTaskSupplier, - @NonNull ActivityLifecycleDispatcher activityLifecycleDispatcher, - @NonNull ObservableSupplier layoutManagerSupplier, - @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController, -@@ -245,6 +249,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { - new OneshotSupplierImpl<>(), - browserControlsManager, - windowAndroid, -+ chromeAndroidTaskSupplier, - activityLifecycleDispatcher, - layoutManagerSupplier, - menuOrKeyboardActionController, -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 -@@ -411,6 +411,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - @NonNull OneshotSupplier layoutStateProviderOneshotSupplier, - @NonNull BrowserControlsManager browserControlsManager, - @NonNull ActivityWindowAndroid windowAndroid, -+ @NonNull OneshotSupplier chromeAndroidTaskSupplier, - @NonNull ActivityLifecycleDispatcher activityLifecycleDispatcher, - @NonNull ObservableSupplier layoutManagerSupplier, - @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController, -@@ -461,6 +462,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { - layoutStateProviderOneshotSupplier, - browserControlsManager, - windowAndroid, -+ chromeAndroidTaskSupplier, - activityLifecycleDispatcher, - layoutManagerSupplier, - menuOrKeyboardActionController, -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -184,6 +184,7 @@ import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoord - import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator; - import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; - import org.chromium.chrome.browser.ui.appmenu.MenuButtonDelegate; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; - import org.chromium.chrome.browser.ui.native_page.NativePage; - import org.chromium.chrome.browser.ui.system.StatusBarColorController; -@@ -748,6 +749,7 @@ public class ToolbarManager - * @param omniboxFocusStateSupplier Supplier to access the focus state of the omnibox. - * @param promoShownOneshotSupplier Supplier for whether a promo was shown on startup. - * @param windowAndroid The {@link WindowAndroid} associated with the ToolbarManager. -+ * @param chromeAndroidTaskSupplier Supplier of the {@link ChromeAndroidTask}. - * @param isInOverviewModeSupplier Supplies whether the app is currently in overview mode. - * @param modalDialogManagerSupplier Supplies the {@link ModalDialogManager}. - * @param statusBarColorController The {@link StatusBarColorController} for the app. -@@ -800,6 +802,7 @@ public class ToolbarManager - ObservableSupplier omniboxFocusStateSupplier, - OneshotSupplier promoShownOneshotSupplier, - WindowAndroid windowAndroid, -+ OneshotSupplier chromeAndroidTaskSupplier, - Supplier isInOverviewModeSupplier, - Supplier modalDialogManagerSupplier, - StatusBarColorController statusBarColorController, -@@ -1127,6 +1130,7 @@ public class ToolbarManager - mActivity, - extensionToolbarStub, - windowAndroid, -+ chromeAndroidTaskSupplier, - (ObservableSupplier) profileSupplier, - (ObservableSupplier) tabProvider, - mTabCreatorManager.getTabCreator(false), -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -166,6 +166,7 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinatorFactory; - import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; - import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler; - import org.chromium.chrome.browser.ui.appmenu.AppMenuObserver; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator; -@@ -262,6 +263,7 @@ public class RootUiCoordinator - protected @Nullable AppMenuCoordinator mAppMenuCoordinator; - private final MenuOrKeyboardActionController mMenuOrKeyboardActionController; - protected final ActivityWindowAndroid mWindowAndroid; -+ private final OneshotSupplier mChromeAndroidTaskSupplier; - - protected final ActivityTabProvider mActivityTabProvider; - protected ObservableSupplier mShareDelegateSupplier; -@@ -401,6 +403,7 @@ public class RootUiCoordinator - * @param layoutStateProviderOneshotSupplier Supplier of the {@link LayoutStateProvider}. - * @param browserControlsManager Manages the browser controls. - * @param windowAndroid The current {@link WindowAndroid}. -+ * @param chromeAndroidTaskSupplier Supplies an {@link ChromeAndroidTask}. - * @param activityLifecycleDispatcher Allows observation of the activity lifecycle. - * @param layoutManagerSupplier Supplies the {@link LayoutManager}. - * @param menuOrKeyboardActionController Controls the menu or keyboard action controller. -@@ -446,6 +449,7 @@ public class RootUiCoordinator - @NonNull OneshotSupplier layoutStateProviderOneshotSupplier, - @NonNull BrowserControlsManager browserControlsManager, - @NonNull ActivityWindowAndroid windowAndroid, -+ @NonNull OneshotSupplier chromeAndroidTaskSupplier, - @NonNull ActivityLifecycleDispatcher activityLifecycleDispatcher, - @NonNull ObservableSupplier layoutManagerSupplier, - @NonNull MenuOrKeyboardActionController menuOrKeyboardActionController, -@@ -478,6 +482,7 @@ public class RootUiCoordinator - mCallbackController = new CallbackController(); - mActivity = activity; - mWindowAndroid = windowAndroid; -+ mChromeAndroidTaskSupplier = chromeAndroidTaskSupplier; - setupUnownedUserDataSuppliers(); - mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener; - mBrowserControlsManager = browserControlsManager; -@@ -1715,6 +1720,7 @@ public class RootUiCoordinator - mOmniboxFocusStateSupplier, - mPromoShownOneshotSupplier, - mWindowAndroid, -+ mChromeAndroidTaskSupplier, - mIsInOverviewModeSupplier, - mModalDialogManagerSupplier, - mStatusBarColorController, -diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn ---- a/chrome/android/junit/BUILD.gn -+++ b/chrome/android/junit/BUILD.gn -@@ -205,6 +205,7 @@ if (is_android) { - "//chrome/browser/ui/android/signin:java", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java", -+ "//chrome/browser/ui/browser_window/public/android:java", - "//chrome/browser/ui/messages/android:java", - "//chrome/browser/uid/android:java", - "//chrome/browser/url_constants/android:java", -diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinatorUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinatorUnitTest.java ---- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinatorUnitTest.java -+++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinatorUnitTest.java -@@ -39,6 +39,7 @@ import org.chromium.base.TimeUtils; - import org.chromium.base.UnownedUserDataHost; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.test.BaseRobolectricTestRunner; - import org.chromium.base.test.util.Batch; - import org.chromium.base.test.util.Features.DisableFeatures; -@@ -74,6 +75,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreatorManager; - import org.chromium.chrome.browser.tabmodel.TabModelSelector; - import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker; - import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; - import org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarCoordinator; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -123,6 +125,7 @@ public final class BaseCustomTabRootUiCoordinatorUnitTest { - mBrowserStateBrowserControlsVisibilityDelegate; - - @Mock private ActivityWindowAndroid mWindowAndroid; -+ @Mock private OneshotSupplier mChromeAndroidTask; - @Mock private ActivityLifecycleDispatcher mActivityLifecycleDispatcher; - @Mock private ObservableSupplier mLayoutManagerSupplier; - @Mock private MenuOrKeyboardActionController mMenuOrKeyboardActionController; -@@ -196,6 +199,7 @@ public final class BaseCustomTabRootUiCoordinatorUnitTest { - mTabModelSelectorSupplier, - mBrowserControlsManager, - mWindowAndroid, -+ mChromeAndroidTask, - mActivityLifecycleDispatcher, - mLayoutManagerSupplier, - mMenuOrKeyboardActionController, -diff --git a/chrome/browser/extensions/extension_view_host_factory.cc b/chrome/browser/extensions/extension_view_host_factory.cc ---- a/chrome/browser/extensions/extension_view_host_factory.cc -+++ b/chrome/browser/extensions/extension_view_host_factory.cc -@@ -12,6 +12,7 @@ - #include "chrome/browser/profiles/profile.h" - #include "chrome/browser/ui/browser_finder.h" - #include "chrome/browser/ui/browser_window/public/browser_window_features.h" -+#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" - #include "chrome/common/url_constants.h" - #include "content/public/browser/keyboard_event_processing_result.h" - #include "content/public/browser/web_contents.h" -@@ -21,9 +22,9 @@ - #include "extensions/common/manifest_handlers/incognito_info.h" - #include "extensions/common/mojom/view_type.mojom.h" - --#if !BUILDFLAG(IS_ANDROID) -+#if BUILDFLAG(ENABLE_EXTENSIONS) - #include "chrome/browser/ui/browser.h" --#endif // !BUILDFLAG(IS_ANDROID) -+#endif // BUILDFLAG(ENABLE_EXTENSIONS) - - static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); - -@@ -31,51 +32,7 @@ namespace extensions { - - namespace { - --#if BUILDFLAG(IS_ANDROID) -- --// Delegate for ExtensionViewHost on Android. --class ExtensionViewHostDelegateAndroid : public ExtensionViewHost::Delegate { -- public: -- ExtensionViewHostDelegateAndroid() = default; -- ExtensionViewHostDelegateAndroid(const ExtensionViewHostDelegateAndroid&) = -- delete; -- ExtensionViewHostDelegateAndroid& operator=( -- const ExtensionViewHostDelegateAndroid&) = delete; -- ~ExtensionViewHostDelegateAndroid() override = default; -- -- content::WebContents* OpenURL( -- const content::OpenURLParams& params, -- base::OnceCallback -- navigation_handle_callback) override { -- // TODO(cbrug.com/385987224): Implement this method for Android. -- NOTIMPLEMENTED(); -- return nullptr; -- } -- -- content::KeyboardEventProcessingResult PreHandleKeyboardEvent( -- content::WebContents* source, -- const input::NativeWebKeyboardEvent& event) override { -- // TODO(cbrug.com/385987224): Implement this method for Android. -- NOTIMPLEMENTED(); -- return content::KeyboardEventProcessingResult::NOT_HANDLED; -- } -- -- std::unique_ptr OpenEyeDropper( -- content::RenderFrameHost* frame, -- content::EyeDropperListener* listener) override { -- // TODO(cbrug.com/385987224): Implement this method for Android. -- NOTIMPLEMENTED(); -- return nullptr; -- } -- -- WindowController* GetExtensionWindowController() const override { -- // TODO(cbrug.com/385987224): Implement this method for Android. -- NOTIMPLEMENTED(); -- return nullptr; -- } --}; -- --#else // BUILDFLAG(IS_ANDROID) -+#if BUILDFLAG(ENABLE_EXTENSIONS) - - // Delegate for ExtensionViewHost attached to a specific browser window. - class ExtensionViewHostBrowserDelegate : public ExtensionViewHost::Delegate { -@@ -175,7 +132,52 @@ class ExtensionViewHostTabDelegate : public ExtensionViewHost::Delegate { - - raw_ptr web_contents_; - }; --#endif // BUILDFLAG(IS_ANDROID) -+ -+#else // BUILDFLAG(ENABLE_EXTENSIONS) -+ -+// Delegate for ExtensionViewHost on Android. -+class ExtensionViewHostDelegateAndroid : public ExtensionViewHost::Delegate { -+ public: -+ ExtensionViewHostDelegateAndroid() = default; -+ ExtensionViewHostDelegateAndroid(const ExtensionViewHostDelegateAndroid&) = -+ delete; -+ ExtensionViewHostDelegateAndroid& operator=( -+ const ExtensionViewHostDelegateAndroid&) = delete; -+ ~ExtensionViewHostDelegateAndroid() override = default; -+ -+ content::WebContents* OpenURL( -+ const content::OpenURLParams& params, -+ base::OnceCallback -+ navigation_handle_callback) override { -+ // TODO(cbrug.com/385987224): Implement this method for Android. -+ NOTIMPLEMENTED(); -+ return nullptr; -+ } -+ -+ content::KeyboardEventProcessingResult PreHandleKeyboardEvent( -+ content::WebContents* source, -+ const input::NativeWebKeyboardEvent& event) override { -+ // TODO(cbrug.com/385987224): Implement this method for Android. -+ NOTIMPLEMENTED(); -+ return content::KeyboardEventProcessingResult::NOT_HANDLED; -+ } -+ -+ std::unique_ptr OpenEyeDropper( -+ content::RenderFrameHost* frame, -+ content::EyeDropperListener* listener) override { -+ // TODO(cbrug.com/385987224): Implement this method for Android. -+ NOTIMPLEMENTED(); -+ return nullptr; -+ } -+ -+ WindowController* GetExtensionWindowController() const override { -+ // TODO(cbrug.com/385987224): Implement this method for Android. -+ NOTIMPLEMENTED(); -+ return nullptr; -+ } -+}; -+ -+#endif // BUILDFLAG(ENABLE_EXTENSIONS) - - // Creates a new ExtensionHost with its associated view, grouping it in the - // appropriate SiteInstance (and therefore process) based on the URL and -@@ -264,28 +266,23 @@ std::unique_ptr CreateViewHost( - - } // namespace - --#if BUILDFLAG(IS_ANDROID) -- - // static - std::unique_ptr ExtensionViewHostFactory::CreatePopupHost( - const GURL& url, -- Profile* profile) { -- return CreateViewHost(url, profile, mojom::ViewType::kExtensionPopup, -- std::make_unique()); --} -- --#else // BUILDFLAG(IS_ANDROID) -- --// static --std::unique_ptr ExtensionViewHostFactory::CreatePopupHost( -- const GURL& url, -- Browser* browser) { -+ BrowserWindowInterface* browser) { - DCHECK(browser); -- return CreateViewHost( -- url, browser->profile(), mojom::ViewType::kExtensionPopup, -- std::make_unique(browser)); -+#if BUILDFLAG(ENABLE_EXTENSIONS) -+ auto delegate = std::make_unique( -+ browser->GetBrowserForMigrationOnly()); -+#else // BUILDFLAG(ENABLE_EXTENSIONS) -+ auto delegate = std::make_unique(); -+#endif // BUILDFLAG(ENABLE_EXTENSIONS) -+ return CreateViewHost(url, browser->GetProfile(), -+ mojom::ViewType::kExtensionPopup, std::move(delegate)); - } - -+#if BUILDFLAG(ENABLE_EXTENSIONS) -+ - // static - std::unique_ptr - ExtensionViewHostFactory::CreateSidePanelHost( -@@ -311,6 +308,6 @@ ExtensionViewHostFactory::CreateSidePanelHost( - std::move(delegate)); - } - --#endif // BUILDFLAG(IS_ANDROID) -+#endif // BUILDFLAG(ENABLE_EXTENSIONS) - - } // namespace extensions -diff --git a/chrome/browser/extensions/extension_view_host_factory.h b/chrome/browser/extensions/extension_view_host_factory.h ---- a/chrome/browser/extensions/extension_view_host_factory.h -+++ b/chrome/browser/extensions/extension_view_host_factory.h -@@ -12,10 +12,8 @@ - - static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); - --class Browser; - class BrowserWindowInterface; - class GURL; --class Profile; - - namespace tabs { - class TabInterface; -@@ -33,19 +31,14 @@ class ExtensionViewHostFactory { - ExtensionViewHostFactory(const ExtensionViewHostFactory&) = delete; - ExtensionViewHostFactory& operator=(const ExtensionViewHostFactory&) = delete; - --#if BUILDFLAG(IS_ANDROID) - // Creates a new ExtensionHost with its associated view, grouping it in the - // appropriate SiteInstance (and therefore process) based on the URL and - // profile. -- static std::unique_ptr CreatePopupHost(const GURL& url, -- Profile* profile); --#else // BUILDFLAG(IS_ANDROID) -- // Creates a new ExtensionHost with its associated view, grouping it in the -- // appropriate SiteInstance (and therefore process) based on the URL and -- // profile. -- static std::unique_ptr CreatePopupHost(const GURL& url, -- Browser* browser); -+ static std::unique_ptr CreatePopupHost( -+ const GURL& url, -+ BrowserWindowInterface* browser); - -+#if BUILDFLAG(ENABLE_EXTENSIONS) - // Creates a new ExtensionHost with its associated view, grouping it in the - // appropriate SiteInstance (and therefore process) based on the URL and - // profile. -@@ -54,7 +47,7 @@ class ExtensionViewHostFactory { - const GURL& url, - BrowserWindowInterface* browser, - tabs::TabInterface* tab_interface); --#endif // BUILDFLAG(IS_ANDROID) -+#endif // BUILDFLAG(ENABLE_EXTENSIONS) - }; - - } // namespace extensions -diff --git a/chrome/browser/ui/android/extensions/BUILD.gn b/chrome/browser/ui/android/extensions/BUILD.gn ---- a/chrome/browser/ui/android/extensions/BUILD.gn -+++ b/chrome/browser/ui/android/extensions/BUILD.gn -@@ -24,6 +24,7 @@ android_library("java") { - "//chrome/browser/tab:java", - "//chrome/browser/tabmodel:java", - "//chrome/browser/ui/android/theme:java", -+ "//chrome/browser/ui/browser_window/public/android:java", - "//components/browser_ui/widget/android:java", - "//third_party/android_deps:material_design_java", - "//ui/android:ui_full_java", -diff --git a/chrome/browser/ui/android/extensions/extension_action_popup_contents.cc b/chrome/browser/ui/android/extensions/extension_action_popup_contents.cc ---- a/chrome/browser/ui/android/extensions/extension_action_popup_contents.cc -+++ b/chrome/browser/ui/android/extensions/extension_action_popup_contents.cc -@@ -9,6 +9,7 @@ - #include "chrome/browser/extensions/extension_view_host.h" - #include "chrome/browser/extensions/extension_view_host_factory.h" - #include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/ui/browser_window/internal/android/android_browser_window.h" - #include "content/public/browser/render_widget_host_view.h" - #include "content/public/browser/web_contents.h" - #include "extensions/browser/extension_action.h" -@@ -135,9 +136,13 @@ void ExtensionActionPopupContents::HandleCloseExtensionHost( - // popup. - static ScopedJavaLocalRef JNI_ExtensionActionPopupContents_Create( - JNIEnv* env, -- Profile* profile, -+ jlong browser_window_interface_ptr, - std::string& action_id, - int tab_id) { -+ BrowserWindowInterface* browser = -+ reinterpret_cast(browser_window_interface_ptr); -+ Profile* profile = browser->GetProfile(); -+ - ExtensionRegistry* registry = ExtensionRegistry::Get(profile); - DCHECK(registry); - -@@ -154,7 +159,7 @@ static ScopedJavaLocalRef JNI_ExtensionActionPopupContents_Create( - GURL popup_url = action->GetPopupUrl(tab_id); - - std::unique_ptr host = -- ExtensionViewHostFactory::CreatePopupHost(popup_url, profile); -+ ExtensionViewHostFactory::CreatePopupHost(popup_url, browser); - DCHECK(host); - - // The ExtensionActionPopupContents C++ object's lifetime is managed by its -diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionPopupContents.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionPopupContents.java ---- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionPopupContents.java -+++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionPopupContents.java -@@ -12,7 +12,7 @@ import org.jni_zero.NativeMethods; - import org.chromium.base.lifetime.Destroyable; - import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; --import org.chromium.chrome.browser.profiles.Profile; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.content_public.browser.WebContents; - - /** -@@ -50,8 +50,10 @@ public class ExtensionActionPopupContents implements Destroyable { - } - - /** Creates an {@link ExtensionActionPopupContents} instance. */ -- public static ExtensionActionPopupContents create(Profile profile, String actionId, int tabId) { -- return ExtensionActionPopupContentsJni.get().create(profile, actionId, tabId); -+ public static ExtensionActionPopupContents create( -+ ChromeAndroidTask task, String actionId, int tabId) { -+ return ExtensionActionPopupContentsJni.get() -+ .create(task.getOrCreateNativeBrowserWindowPtr(), actionId, tabId); - } - - /** -@@ -138,15 +140,13 @@ public class ExtensionActionPopupContents implements Destroyable { - /** - * Creates the native ExtensionActionPopupContents object and returns its Java peer. - * -- * @param profile The {@link Profile} associated with the extension. -+ * @param androidBrowserWindowPtr The address of a native {@code BrowserWindowInterface}. - * @param actionId The ID of the extension action. - * @param tabId The ID of the tab context. - * @return The Java {@link ExtensionActionPopupContents} object, or {@code null} on failure. - */ - ExtensionActionPopupContents create( -- @JniType("Profile*") Profile profile, -- @JniType("std::string") String actionId, -- int tabId); -+ long androidBrowserWindowPtr, @JniType("std::string") String actionId, int tabId); - - /** - * Destroys the native ExtensionActionPopupContents object. -diff --git a/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn b/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn ---- a/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn -+++ b/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn -@@ -38,6 +38,7 @@ android_library("java") { - ] - deps = [ - "//build/android:build_java", -+ "//chrome/browser/profiles/android:java", - "//chrome/browser/ui/android/extensions/windowing:java", - "//chrome/browser/ui/browser_window/public/android:java", - "//third_party/androidx:androidx_annotation_annotation_java", -diff --git a/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java b/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java ---- a/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java -+++ b/chrome/browser/ui/android/extensions/windowing/internal/java/src/org/chromium/chrome/browser/ui/extensions/windowing/ExtensionWindowControllerBridgeImpl.java -@@ -11,6 +11,8 @@ import org.jni_zero.CalledByNative; - import org.jni_zero.NativeMethods; - - import org.chromium.build.annotations.NullMarked; -+import org.chromium.chrome.browser.profiles.Profile; -+import org.chromium.chrome.browser.profiles.ProfileManager; - import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - - import java.util.ArrayList; -@@ -19,7 +21,8 @@ import java.util.Map; - - /** Implements {@link ExtensionWindowControllerBridge}. */ - @NullMarked --final class ExtensionWindowControllerBridgeImpl implements ExtensionWindowControllerBridge { -+final class ExtensionWindowControllerBridgeImpl -+ implements ExtensionWindowControllerBridge, ProfileManager.Observer { - - /** - * Events received by the native singleton {@code WindowControllerListObserverForTesting}. -@@ -82,6 +85,7 @@ final class ExtensionWindowControllerBridgeImpl implements ExtensionWindowContro - assert mNativeExtensionWindowControllerBridge == 0 - : "ExtensionWindowControllerBridge is already added to a task."; - -+ ProfileManager.addObserver(this); - mNativeExtensionWindowControllerBridge = - ExtensionWindowControllerBridgeImplJni.get() - .create( -@@ -91,10 +95,8 @@ final class ExtensionWindowControllerBridgeImpl implements ExtensionWindowContro - - @Override - public void onTaskRemoved() { -- if (mNativeExtensionWindowControllerBridge != 0) { -- ExtensionWindowControllerBridgeImplJni.get() -- .destroy(mNativeExtensionWindowControllerBridge); -- } -+ destroyNativeExtensionWindowControllerBridge(); -+ ProfileManager.removeObserver(this); - } - - @Override -@@ -113,6 +115,32 @@ final class ExtensionWindowControllerBridgeImpl implements ExtensionWindowContro - } - } - -+ @Override -+ public void onProfileAdded(Profile profile) {} -+ -+ @Override -+ public void onProfileDestroyed(Profile profile) { -+ // This is a short-term fix for http://crbug.com/450234852. -+ // -+ // The native extension code is cross-platform and depends on BrowserWindowInterface. Per -+ // documentation of BrowserWindowInterface::GetProfile(), cross-platform code assumes -+ // BrowserWindowInterface will always be destroyed *before* its Profile. -+ // -+ // See: -+ // https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_window/public/browser_window_interface.h;l=108;drc=c8dc70b538f1bb0862f1be58237d6e945ee81819 -+ // -+ // However, on Android, http://crbug.com/450234852 reveals a case where the Profile is -+ // destroyed before its BrowserWindowInterface, which caused native extension code to -+ // dereference an invalid Profile pointer. -+ // -+ // To avoid this issue, we destroy the native objects for extensions as soon as the native -+ // Profile is about to be destroyed. The long-term fix should be to correct the object -+ // destruction order for the case described in http://crbug.com/450234852. -+ if (profile == mChromeAndroidTask.getProfile()) { -+ destroyNativeExtensionWindowControllerBridge(); -+ } -+ } -+ - long getNativePtrForTesting() { - return mNativeExtensionWindowControllerBridge; - } -@@ -123,6 +151,13 @@ final class ExtensionWindowControllerBridgeImpl implements ExtensionWindowContro - .getExtensionWindowIdForTesting(mNativeExtensionWindowControllerBridge); // IN-TEST - } - -+ private void destroyNativeExtensionWindowControllerBridge() { -+ if (mNativeExtensionWindowControllerBridge != 0) { -+ ExtensionWindowControllerBridgeImplJni.get() -+ .destroy(mNativeExtensionWindowControllerBridge); -+ } -+ } -+ - @CalledByNative - private void clearNativePtr() { - mNativeExtensionWindowControllerBridge = 0; -diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn ---- a/chrome/browser/ui/android/toolbar/BUILD.gn -+++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -189,6 +189,7 @@ android_library("java") { - "//chrome/browser/ui/android/omnibox:java_resources", - "//chrome/browser/ui/android/pdf:java", - "//chrome/browser/ui/android/theme:java", -+ "//chrome/browser/ui/browser_window/public/android:java", - "//chrome/browser/url_constants/android:java", - "//chrome/browser/user_education:java", - "//chrome/browser/util:java", -@@ -478,6 +479,7 @@ robolectric_library("junit") { - "//chrome/browser/ui/android/omnibox:java_resources", - "//chrome/browser/ui/android/theme:java", - "//chrome/browser/ui/android/toolbar:java_resources", -+ "//chrome/browser/ui/browser_window/public/android:java", - "//chrome/browser/user_education:java", - "//chrome/test/android:chrome_java_unit_test_support", - "//components/browser_ui/bottomsheet/android:java", -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListCoordinator.java -@@ -10,11 +10,13 @@ import android.view.LayoutInflater; - import org.chromium.base.lifetime.Destroyable; - import org.chromium.base.lifetime.LifetimeAssert; - import org.chromium.base.supplier.ObservableSupplier; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionButtonProperties.ListItemType; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.extensions.R; - import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.listmenu.ListMenuButton; -@@ -37,6 +39,7 @@ public class ExtensionActionListCoordinator implements Destroyable { - Context context, - ExtensionActionListContainer container, - WindowAndroid windowAndroid, -+ OneshotSupplier taskSupplier, - ObservableSupplier profileSupplier, - ObservableSupplier currentTabSupplier) { - mContainer = container; -@@ -44,7 +47,12 @@ public class ExtensionActionListCoordinator implements Destroyable { - mModels = new ModelList(); - mMediator = - new ExtensionActionListMediator( -- context, windowAndroid, mModels, profileSupplier, currentTabSupplier); -+ context, -+ windowAndroid, -+ mModels, -+ taskSupplier, -+ profileSupplier, -+ currentTabSupplier); - mAdapter = - new ViewGroupAdapter.Builder(mContainer, mModels) - .registerType( -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediator.java -@@ -12,6 +12,7 @@ import org.chromium.base.Log; - import org.chromium.base.lifetime.Destroyable; - import org.chromium.base.lifetime.LifetimeAssert; - import org.chromium.base.supplier.ObservableSupplier; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; - import org.chromium.chrome.browser.extensions.ContextMenuSource; -@@ -19,6 +20,7 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.toolbar.MenuBuilderHelper; - import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionButtonProperties.ListItemType; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.extensions.ExtensionAction; - import org.chromium.chrome.browser.ui.extensions.ExtensionActionContextMenuBridge; - import org.chromium.chrome.browser.ui.extensions.ExtensionActionPopupContents; -@@ -38,6 +40,7 @@ class ExtensionActionListMediator implements Destroyable { - private final Context mContext; - private final WindowAndroid mWindowAndroid; - private final ModelList mModels; -+ private final OneshotSupplier mTaskSupplier; - private final ExtensionActionsUpdateHelper mExtensionActionsUpdateHelper; - - private final ActionsUpdateDelegate mActionsUpdateDelegate = new ActionsUpdateDelegate(); -@@ -50,11 +53,13 @@ class ExtensionActionListMediator implements Destroyable { - Context context, - WindowAndroid windowAndroid, - ModelList models, -+ OneshotSupplier taskSupplier, - ObservableSupplier profileSupplier, - ObservableSupplier currentTabSupplier) { - mContext = context; - mWindowAndroid = windowAndroid; - mModels = models; -+ mTaskSupplier = taskSupplier; - - mExtensionActionsUpdateHelper = - new ExtensionActionsUpdateHelper( -@@ -103,16 +108,19 @@ class ExtensionActionListMediator implements Destroyable { - // button while its popup is open. - closePopup(); - -- Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab(); -- Profile profile = mExtensionActionsUpdateHelper.getProfile(); -+ ChromeAndroidTask task = mTaskSupplier.get(); -+ if (task == null) { -+ return; -+ } - -- if (profile == null || currentTab == null) { -+ Tab currentTab = mExtensionActionsUpdateHelper.getCurrentTab(); -+ if (currentTab == null) { - return; - } - int tabId = currentTab.getId(); - - ExtensionActionPopupContents contents = -- ExtensionActionPopupContents.create(profile, actionId, tabId); -+ ExtensionActionPopupContents.create(task, actionId, tabId); - assert mCurrentPopup == null; - mCurrentPopup = - new ExtensionActionPopup(mContext, mWindowAndroid, buttonView, actionId, contents); -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListMediatorTest.java -@@ -39,12 +39,14 @@ import org.mockito.junit.MockitoRule; - import org.robolectric.annotation.LooperMode; - - import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.OneshotSupplierImpl; - import org.chromium.base.test.BaseRobolectricTestRunner; - import org.chromium.chrome.browser.extensions.ContextMenuSource; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.MockTab; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionButtonProperties.ListItemType; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.extensions.ExtensionActionContextMenuBridge; - import org.chromium.chrome.browser.ui.extensions.ExtensionActionContextMenuBridgeJni; - import org.chromium.chrome.browser.ui.extensions.FakeExtensionActionsBridge; -@@ -86,6 +88,7 @@ public class ExtensionActionListMediatorTest { - private FakeExtensionActionsBridge.ProfileModel mProfileModel; - private MockTab mTab1; - private MockTab mTab2; -+ private OneshotSupplierImpl mTaskSupplier; - private ObservableSupplierImpl mProfileSupplier; - private ObservableSupplierImpl mCurrentTabSupplier; - private ModelList mModels; -@@ -108,12 +111,18 @@ public class ExtensionActionListMediatorTest { - mTab2 = new MockTab(TAB2_ID, mProfile); - mTab1.setWebContentsOverrideForTesting(mWebContents); - mTab2.setWebContentsOverrideForTesting(mWebContents); -+ mTaskSupplier = new OneshotSupplierImpl<>(); - mProfileSupplier = new ObservableSupplierImpl<>(); - mCurrentTabSupplier = new ObservableSupplierImpl<>(); - mModels = new ModelList(); - mMediator = - new ExtensionActionListMediator( -- context, mWindowAndroid, mModels, mProfileSupplier, mCurrentTabSupplier); -+ context, -+ mWindowAndroid, -+ mModels, -+ mTaskSupplier, -+ mProfileSupplier, -+ mCurrentTabSupplier); - - // Wait for the main thread to settle. - shadowOf(Looper.getMainLooper()).idle(); -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinator.java -@@ -11,6 +11,7 @@ import android.view.ViewStub; - import org.chromium.base.ServiceLoaderUtil; - import org.chromium.base.lifetime.Destroyable; - import org.chromium.base.supplier.ObservableSupplier; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.Initializer; - import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; -@@ -18,6 +19,7 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tabmodel.TabCreator; - import org.chromium.chrome.browser.theme.ThemeColorProvider; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.ui.base.WindowAndroid; - - /** -@@ -40,6 +42,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable { - Context context, - ViewStub extensionToolbarStub, - WindowAndroid windowAndroid, -+ OneshotSupplier taskSupplier, - ObservableSupplier profileSupplier, - ObservableSupplier currentTabSupplier, - TabCreator tabCreator, -@@ -53,6 +56,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable { - context, - extensionToolbarStub, - windowAndroid, -+ taskSupplier, - profileSupplier, - currentTabSupplier, - tabCreator, -@@ -71,6 +75,7 @@ public interface ExtensionToolbarCoordinator extends Destroyable { - Context context, - ViewStub extensionToolbarStub, - WindowAndroid windowAndroid, -+ OneshotSupplier taskSupplier, - ObservableSupplier profileSupplier, - ObservableSupplier currentTabSupplier, - TabCreator tabCreator, -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java -@@ -13,6 +13,7 @@ import android.widget.LinearLayout; - import org.chromium.base.Callback; - import org.chromium.base.lifetime.LifetimeAssert; - import org.chromium.base.supplier.ObservableSupplier; -+import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; - import org.chromium.build.annotations.ServiceImpl; -@@ -20,6 +21,7 @@ import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.tab.Tab; - import org.chromium.chrome.browser.tabmodel.TabCreator; - import org.chromium.chrome.browser.theme.ThemeColorProvider; -+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask; - import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge; - import org.chromium.chrome.browser.ui.extensions.ExtensionUi; - import org.chromium.chrome.browser.ui.extensions.R; -@@ -44,6 +46,7 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina - Context context, - ViewStub extensionToolbarStub, - WindowAndroid windowAndroid, -+ OneshotSupplier taskSupplier, - ObservableSupplier profileSupplier, - ObservableSupplier currentTabSupplier, - TabCreator tabCreator, -@@ -63,6 +66,7 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina - context, - container.findViewById(R.id.extension_action_list), - windowAndroid, -+ taskSupplier, - profileSupplier, - currentTabSupplier); - mExtensionsMenuCoordinator = --- diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch deleted file mode 100644 index 2771f753..00000000 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ /dev/null @@ -1,277 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 30 Oct 2019 11:50:13 +0100 -Subject: Block 'qjz9zk' or 'trk:' requests - -An info bar is displayed unless the --disable-trkbar command-line flag or the chrome://flag option is used. -This patch is based on Iridium's 'net: add "trk:" scheme and help identify URLs being retrieved' - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../chrome_autocomplete_scheme_classifier.cc | 1 + - chrome/browser/history/history_utils.cc | 1 + - chrome/browser/ui/singleton_tabs.cc | 5 ++++ - .../omnibox/browser/autocomplete_input.cc | 8 ++++- - components/url_formatter/url_fixer.cc | 4 +++ - .../child_process_security_policy_impl.cc | 1 + - net/BUILD.gn | 2 ++ - net/url_request/trk_protocol_handler.cc | 25 ++++++++++++++++ - net/url_request/trk_protocol_handler.h | 30 +++++++++++++++++++ - net/url_request/url_request.cc | 8 +++++ - .../url_request_context_builder.cc | 3 ++ - url/url_constants.h | 1 + - url/url_util.cc | 2 ++ - 13 files changed, 90 insertions(+), 1 deletion(-) - create mode 100644 net/url_request/trk_protocol_handler.cc - create mode 100644 net/url_request/trk_protocol_handler.h - -diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc ---- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc -+++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc -@@ -72,6 +72,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme( - if (base::IsStringASCII(scheme) && - (ProfileIOData::IsHandledProtocol(scheme) || - base::EqualsCaseInsensitiveASCII(scheme, content::kViewSourceScheme) || -+ base::EqualsCaseInsensitiveASCII(scheme, url::kTraceScheme) || - base::EqualsCaseInsensitiveASCII(scheme, url::kJavaScriptScheme) || - base::EqualsCaseInsensitiveASCII(scheme, url::kDataScheme))) { - return metrics::OmniboxInputType::URL; -diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/history_utils.cc ---- a/chrome/browser/history/history_utils.cc -+++ b/chrome/browser/history/history_utils.cc -@@ -22,6 +22,7 @@ bool CanAddURLToHistory(const GURL& url) { - url.SchemeIs(content::kChromeUIScheme) || - url.SchemeIs(content::kChromeUIUntrustedScheme) || - url.SchemeIs(content::kViewSourceScheme) || -+ url.SchemeIs(url::kTraceScheme) || - url.SchemeIs(chrome::kChromeNativeScheme) || - url.SchemeIs(chrome::kChromeSearchScheme) || - url.SchemeIs(dom_distiller::kDomDistillerScheme)) -diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc ---- a/chrome/browser/ui/singleton_tabs.cc -+++ b/chrome/browser/ui/singleton_tabs.cc -@@ -144,6 +144,11 @@ int GetIndexOfExistingTab(BrowserWindowInterface* browser, - continue; - } - -+ // trk: URLs must not be rewritten -+ if (tab_url.SchemeIs(url::kTraceScheme)) { -+ continue; -+ } -+ - GURL rewritten_tab_url = tab_url; - content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( - &rewritten_tab_url, browser->GetProfile()); -diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc ---- a/components/omnibox/browser/autocomplete_input.cc -+++ b/components/omnibox/browser/autocomplete_input.cc -@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { - bool HasScheme(const std::u16string& input, const char* scheme) { - std::string utf8_input(base::UTF16ToUTF8(input)); - url::Component view_source_scheme; -+ -+ if (url::FindAndCompareScheme(utf8_input, url::kTraceScheme, &view_source_scheme)) { -+ return false; -+ } - if (url::FindAndCompareScheme(utf8_input, kViewSourceScheme, - &view_source_scheme)) { - utf8_input.erase(0, view_source_scheme.end() + 1); - } -+ - return url::FindAndCompareScheme(utf8_input, scheme, nullptr); - } - -@@ -580,7 +585,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( - // For the view-source and blob schemes, we should emphasize the host of the - // URL qualified by the view-source or blob prefix. - if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) || -- base::EqualsCaseInsensitiveASCII(scheme_str, url::kBlobScheme)) && -+ base::EqualsCaseInsensitiveASCII(scheme_str, url::kBlobScheme) || -+ base::EqualsCaseInsensitiveASCII(scheme_str, url::kTraceScheme)) && - (static_cast(text.length()) > after_scheme_and_colon)) { - // Obtain the URL prefixed by view-source or blob and parse it. - std::u16string real_url(text.substr(after_scheme_and_colon)); -diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc ---- a/components/url_formatter/url_fixer.cc -+++ b/components/url_formatter/url_fixer.cc -@@ -598,6 +598,10 @@ GURL FixupURLInternal(const std::string& text, - } - } - -+ if (scheme == url::kTraceScheme) { -+ return GURL(); -+ } -+ - // We handle the file scheme separately. - if (scheme == url::kFileScheme) { - return GURL(parts.scheme.is_valid() ? text : FixupPath(text)); -diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc ---- a/content/browser/child_process_security_policy_impl.cc -+++ b/content/browser/child_process_security_policy_impl.cc -@@ -969,6 +969,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() - RegisterPseudoScheme(url::kJavaScriptScheme); - RegisterPseudoScheme(kViewSourceScheme); - RegisterPseudoScheme(kGoogleChromeScheme); -+ RegisterWebSafeScheme(url::kTraceScheme); - } - - ChildProcessSecurityPolicyImpl::~ChildProcessSecurityPolicyImpl() = default; -diff --git a/net/BUILD.gn b/net/BUILD.gn ---- a/net/BUILD.gn -+++ b/net/BUILD.gn -@@ -1147,6 +1147,8 @@ component("net") { - "url_request/url_request_http_job.cc", - "url_request/url_request_http_job.h", - "url_request/url_request_interceptor.cc", -+ "url_request/trk_protocol_handler.cc", -+ "url_request/trk_protocol_handler.h", - "url_request/url_request_interceptor.h", - "url_request/url_request_job.cc", - "url_request/url_request_job.h", -diff --git a/net/url_request/trk_protocol_handler.cc b/net/url_request/trk_protocol_handler.cc -new file mode 100644 ---- /dev/null -+++ b/net/url_request/trk_protocol_handler.cc -@@ -0,0 +1,25 @@ -+// Copyright (c) 2018 The ungoogled-chromium Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#include "net/url_request/trk_protocol_handler.h" -+ -+#include "base/logging.h" -+#include "net/base/net_errors.h" -+#include "net/url_request/url_request_error_job.h" -+ -+namespace net { -+ -+TrkProtocolHandler::TrkProtocolHandler() = default; -+ -+std::unique_ptr TrkProtocolHandler::CreateJob( -+ URLRequest* request) const { -+ LOG(ERROR) << "Blocked URL in TrkProtocolHandler: " << request->original_url(); -+ return std::make_unique(request, ERR_BLOCKED_BY_CLIENT); -+} -+ -+bool TrkProtocolHandler::IsSafeRedirectTarget(const GURL& location) const { -+ return true; -+} -+ -+} // namespace net -diff --git a/net/url_request/trk_protocol_handler.h b/net/url_request/trk_protocol_handler.h -new file mode 100644 ---- /dev/null -+++ b/net/url_request/trk_protocol_handler.h -@@ -0,0 +1,30 @@ -+// Copyright (c) 2018 The ungoogled-chromium Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#ifndef NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_ -+#define NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_ -+ -+#include "base/compiler_specific.h" -+#include "net/base/net_export.h" -+#include "net/url_request/url_request_job_factory.h" -+ -+namespace net { -+ -+class URLRequestJob; -+ -+// Implements a ProtocolHandler for Trk jobs. -+class NET_EXPORT TrkProtocolHandler -+ : public URLRequestJobFactory::ProtocolHandler { -+ public: -+ TrkProtocolHandler(const TrkProtocolHandler&) = delete; -+ TrkProtocolHandler& operator=(const TrkProtocolHandler&) = delete; -+ -+ TrkProtocolHandler(); -+ std::unique_ptr CreateJob(URLRequest* request) const override; -+ bool IsSafeRedirectTarget(const GURL& location) const override; -+}; -+ -+} // namespace net -+ -+#endif // NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_ -diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc ---- a/net/url_request/url_request.cc -+++ b/net/url_request/url_request.cc -@@ -15,6 +15,7 @@ - #include "base/notreached.h" - #include "base/rand_util.h" - #include "base/strings/utf_string_conversions.h" -+#include "base/strings/string_util.h" - #include "base/synchronization/lock.h" - #include "base/task/single_thread_task_runner.h" - #include "base/types/optional_util.h" -@@ -55,6 +56,7 @@ - #include "net/url_request/url_request_redirect_job.h" - #include "url/gurl.h" - #include "url/origin.h" -+#include "url/url_constants.h" - - namespace net { - -@@ -650,6 +652,12 @@ URLRequest::URLRequest(base::PassKey pass_key, - // Sanity check out environment. - DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); - -+ if (!url.SchemeIs(url::kTraceScheme) && -+ base::EndsWith(url.host(), "qjz9zk", base::CompareCase::INSENSITIVE_ASCII)) { -+ LOG(ERROR) << "Block URL in URLRequest: " << url; -+ url_chain_[0] = GURL(url::kTraceScheme + (":" + url.possibly_invalid_spec())); -+ } -+ - context->url_requests()->insert(this); - net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, - [&](NetLogCaptureMode capture_mode) { -diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc ---- a/net/url_request/url_request_context_builder.cc -+++ b/net/url_request/url_request_context_builder.cc -@@ -55,6 +55,7 @@ - #include "net/socket/network_binding_client_socket_factory.h" - #include "net/ssl/ssl_config_service_defaults.h" - #include "net/url_request/static_http_user_agent_settings.h" -+#include "net/url_request/trk_protocol_handler.h" - #include "net/url_request/url_request_context.h" - #include "net/url_request/url_request_job_factory.h" - #include "url/url_constants.h" -@@ -619,6 +620,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { - job_factory->SetProtocolHandler(scheme_handler.first, - std::move(scheme_handler.second)); - } -+ job_factory->SetProtocolHandler(url::kTraceScheme, -+ std::make_unique()); - protocol_handlers_.clear(); - - context->set_job_factory(std::move(job_factory)); -diff --git a/url/url_constants.h b/url/url_constants.h ---- a/url/url_constants.h -+++ b/url/url_constants.h -@@ -34,6 +34,7 @@ inline constexpr char16_t kDataScheme16[] = u"data"; - inline constexpr char kDrivefsScheme[] = "drivefs"; - inline constexpr char kFileScheme[] = "file"; - inline constexpr char16_t kFileScheme16[] = u"file"; -+inline constexpr char kTraceScheme[] = "trk"; - inline constexpr char kFileSystemScheme[] = "filesystem"; - inline constexpr char16_t kFileSystemScheme16[] = u"filesystem"; - inline constexpr char kFtpScheme[] = "ftp"; -diff --git a/url/url_util.cc b/url/url_util.cc ---- a/url/url_util.cc -+++ b/url/url_util.cc -@@ -54,6 +54,7 @@ struct SchemeRegistry { - std::vector standard_schemes = { - {kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, - {kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, -+ {kTraceScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, - // Yes, file URLs can have a hostname, so file URLs should be handled as - // "standard". File URLs never have a port as specified by the SchemeType - // field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file -@@ -99,6 +100,7 @@ struct SchemeRegistry { - kAboutScheme, - kJavaScriptScheme, - kDataScheme, -+ kTraceScheme, - }; - - // Schemes that can be sent CORS requests. --- diff --git a/build/patches/Do-not-check-for-the-presence-of-use-remoteexec.patch b/build/patches/Do-not-check-for-the-presence-of-use-remoteexec.patch deleted file mode 100644 index 156452cd..00000000 --- a/build/patches/Do-not-check-for-the-presence-of-use-remoteexec.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: uazo -Date: Mon, 3 Mar 2025 12:04:53 +0000 -Subject: Do not check for the presence of use_remoteexec - ---- - build/toolchain/remoteexec_defaults.gni | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build/toolchain/remoteexec_defaults.gni b/build/toolchain/remoteexec_defaults.gni ---- a/build/toolchain/remoteexec_defaults.gni -+++ b/build/toolchain/remoteexec_defaults.gni -@@ -1,4 +1,4 @@ - # rbe.gni and autoninja.py will read this file to get the default - # value of use_reclient. - use_reclient_on_siso = false --use_reclient_on_ninja = true -+use_reclient_on_ninja = false --- diff --git a/build/patches/Follow-only-system-dark-mode.patch b/build/patches/Follow-only-system-dark-mode.patch deleted file mode 100644 index 8705cf7f..00000000 --- a/build/patches/Follow-only-system-dark-mode.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: krlvm <51774833+krlvm@users.noreply.github.com> -Date: Mon, 4 Jul 2022 16:14:37 +0300 -Subject: Follow only system dark mode - -Follow only system dark mode preference when theme is set to system default - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../browser/night_mode/GlobalNightModeStateController.java | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java ---- a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java -+++ b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java -@@ -128,7 +128,7 @@ class GlobalNightModeStateController - } - - private void updateNightMode() { -- boolean powerSaveModeOn = mPowerSaveModeMonitor.powerSavingIsOn(); -+ boolean powerSaveModeOn = false; - final int theme = NightModeUtils.getThemeSetting(); - final boolean newNightModeOn = - (theme == ThemeType.SYSTEM_DEFAULT --- diff --git a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch deleted file mode 100644 index fec3749b..00000000 --- a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: uazo -Date: Wed, 11 Oct 2023 09:40:53 +0000 -Subject: Temp PerformanceNavigationTiming privacy fix - -License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ---- - .../renderer/core/timing/performance_navigation_timing.cc | 2 ++ - .../blink/renderer/core/timing/performance_resource_timing.cc | 3 ++- - 2 files changed, 4 insertions(+), 1 deletion(-) - -diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc ---- a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc -+++ b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc -@@ -89,6 +89,7 @@ void PerformanceNavigationTiming::OnBodyLoadFinished( - - V8NavigationEntropy::Enum PerformanceNavigationTiming::GetSystemEntropy() - const { -+ if ((true)) return V8NavigationEntropy::Enum::kHigh; - DocumentLoader* loader = GetDocumentLoader(); - switch (document_load_timing_values_->system_entropy_at_navigation_start) { - case mojom::blink::SystemEntropy::kHigh: -@@ -195,6 +196,7 @@ V8NavigationTimingType PerformanceNavigationTiming::type() const { - } - - AtomicString PerformanceNavigationTiming::deliveryType() const { -+ if ((true)) return g_empty_atom; - switch (navigation_delivery_type_) { - case NavigationDeliveryType::kDefault: - return GetDeliveryType(); -diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing.cc b/third_party/blink/renderer/core/timing/performance_resource_timing.cc ---- a/third_party/blink/renderer/core/timing/performance_resource_timing.cc -+++ b/third_party/blink/renderer/core/timing/performance_resource_timing.cc -@@ -161,7 +161,7 @@ AtomicString PerformanceResourceTiming::GetDeliveryType() const { - } - return info_->cache_state == mojom::blink::CacheState::kNone - ? g_empty_atom -- : delivery_type_names::kCache; -+ : g_empty_atom; - } - - AtomicString PerformanceResourceTiming::deliveryType() const { -@@ -202,6 +202,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( - returnedProtocol = g_empty_atom; - } - -+ returnedProtocol = g_empty_atom; - return returnedProtocol; - } - --- diff --git a/build/patches/exit-on-failure-of-inclusion.patch b/build/patches/exit-on-failure-of-inclusion.patch deleted file mode 100644 index 8df2c7f9..00000000 --- a/build/patches/exit-on-failure-of-inclusion.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Fri, 6 Apr 2018 10:29:05 +0200 -Subject: exit on failure of inclusion - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - chrome/installer/linux/debian/build.sh | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/chrome/installer/linux/debian/build.sh b/chrome/installer/linux/debian/build.sh ---- a/chrome/installer/linux/debian/build.sh -+++ b/chrome/installer/linux/debian/build.sh -@@ -250,15 +250,15 @@ DEB_CHANGELOG="${TMPFILEDIR}/changelog" - DEB_FILES="${TMPFILEDIR}/files" - DEB_CONTROL="${TMPFILEDIR}/control" - --source ${OUTPUTDIR}/installer/common/installer.include -+source ${OUTPUTDIR}/installer/common/installer.include || exit $? - - get_version_info - VERSIONFULL="${VERSION}-${PACKAGE_RELEASE}" - - if [ "$BRANDING" = "google_chrome" ]; then -- source "${OUTPUTDIR}/installer/common/google-chrome.info" -+ source "${OUTPUTDIR}/installer/common/google-chrome.info" || exit $? - else -- source "${OUTPUTDIR}/installer/common/chromium-browser.info" -+ source "${OUTPUTDIR}/installer/common/chromium-browser.info" || exit $? - fi - eval $(sed -e "s/^\([^=]\+\)=\(.*\)$/\1='\2'/" \ - "${OUTPUTDIR}/installer/theme/BRANDING") ---