diff --git a/android/brave_java_resources.gni b/android/brave_java_resources.gni index e0498901b98b..ccb5f9bfa508 100644 --- a/android/brave_java_resources.gni +++ b/android/brave_java_resources.gni @@ -690,6 +690,12 @@ brave_java_resources = [ "java/res/layout/binance_spinner_dropdown_item.xml", "java/res/layout/binance_spinner_item.xml", "java/res/layout/binance_summary_item.xml", + "java/res/layout/bottom_control_container.xml", + "java/res/layout/bottom_toolbar.xml", + "java/res/layout/bottom_toolbar_browsing.xml", + "java/res/layout/bottom_toolbar_menu_button.xml", + "java/res/layout/bottom_toolbar_tab_switcher.xml", + "java/res/layout/icon_row_menu_footer.xml", "java/res/layout/brave_ads_existing_user_dialog_layout.xml", "java/res/layout/brave_ads_new_user_dialog_layout.xml", "java/res/layout/brave_bookmark_toolbar.xml", @@ -756,6 +762,7 @@ brave_java_resources = [ "java/res/layout/ntp_widget_list_item_layout.xml", "java/res/layout/qa_code_check.xml", "java/res/layout/report_broken_site_layout.xml", + "java/res/layout/toolbar_space.xml", "java/res/layout/top_sites_layout.xml", "java/res/layout/tracker_item_layout.xml", "java/res/layout/user_wallet_activity.xml", diff --git a/android/brave_java_sources.gni b/android/brave_java_sources.gni index 6916e16aff3e..d7977e110d44 100644 --- a/android/brave_java_sources.gni +++ b/android/brave_java_sources.gni @@ -12,6 +12,7 @@ import("//brave/components/safetynet/java_sources.gni") import("//components/feed/features.gni") brave_java_sources = [ + "../../brave/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java", "../../brave/android/java/org/chromium/chrome/browser/BraveAppHooks.java", "../../brave/android/java/org/chromium/chrome/browser/BraveBadge.java", "../../brave/android/java/org/chromium/chrome/browser/BraveFeatureList.java", @@ -142,17 +143,37 @@ brave_java_sources = [ "../../brave/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java", "../../brave/android/java/org/chromium/chrome/browser/site_settings/DesktopModePreferences.java", "../../brave/android/java/org/chromium/chrome/browser/site_settings/PlayYTVideoInBrowserPreferences.java", + "../../brave/android/java/org/chromium/chrome/browser/suggestions/tile/BraveTileView.java", "../../brave/android/java/org/chromium/chrome/browser/sync/BraveAndroidSyncSettings.java", "../../brave/android/java/org/chromium/chrome/browser/sync/settings/BraveManageSyncSettings.java", + "../../brave/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java", "../../brave/android/java/org/chromium/chrome/browser/tabmodel/BraveTabCreator.java", "../../brave/android/java/org/chromium/chrome/browser/toolbar/BraveHomeButton.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java", "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java", - "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarConfiguration.java", - "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarCoordinator.java", - "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarVariationManager.java", - "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBrowsingModeBottomToolbarCoordinator.java", - "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveSearchAccelerator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomTabSwitcherActionMenuCoordinator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarLinearLayout.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarMediator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarModel.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarViewBinder.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/ShareButton.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarCoordinator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarMediator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarModel.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarViewBinder.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTCoordinatorPhone.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTPhone.java", "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java", "../../brave/android/java/org/chromium/chrome/browser/ui/brave_tricks/checkbox_to_switch/CheckBoxPreference.java", "../../brave/android/java/org/chromium/chrome/browser/ui/messages/infobar/BraveSimpleConfirmInfoBarBuilder.java", "../../brave/android/java/org/chromium/chrome/browser/upgrade/BravePackageReplacedBroadcastReceiver.java", @@ -180,7 +201,6 @@ brave_java_sources = [ "../../brave/android/java/org/chromium/chrome/browser/widget/crypto/binance/ConvertAsset.java", "../../brave/android/java/org/chromium/chrome/browser/widget/crypto/binance/CryptoWidgetBottomSheetDialogFragment.java", "../../brave/android/java/org/chromium/chrome/browser/widget/crypto/binance/CryptoWidgetTabAdapter.java", - "../../brave/android/java/org/chromium/chrome/browser/widget/tile/BraveTileWithTextView.java", ] if (brave_rewards_enabled || enable_brave_referrals) { @@ -191,10 +211,6 @@ if (brave_ads_enabled) { brave_java_sources += brave_ads_java_sources } -if (enable_feed_in_chrome) { - brave_java_sources += [ "//brave/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java" ] -} - if (enable_brave_sync) { brave_java_sources += [ "../../brave/android/java/org/chromium/chrome/browser/BraveSyncInformers.java", @@ -206,5 +222,7 @@ if (enable_brave_sync) { brave_components_browser_ui_site_settings_android_java = [ "//brave/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BraveSiteSettingsPreferencesBase.java" ] +brave_browser_ui_android_appmenu_internal_sources = [ "//brave/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java" ] + brave_java_base_sources = [ "//brave/android/java/org/chromium/base/BraveCommandLineInitUtil.java" ] diff --git a/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java b/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java index 56276e20f00d..3acc5b487531 100644 --- a/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java +++ b/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java @@ -15,7 +15,6 @@ import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; -import org.chromium.chrome.browser.feed.action.FeedActionHandler; import org.chromium.chrome.browser.feed.library.api.host.action.ActionApi; import org.chromium.chrome.browser.feed.shared.FeedSurfaceDelegate; import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate; @@ -37,13 +36,13 @@ public class BraveFeedSurfaceCoordinator extends FeedSurfaceCoordinator { public BraveFeedSurfaceCoordinator(Activity activity, SnackbarManager snackbarManager, TabModelSelector tabModelSelector, Supplier tabProvider, @Nullable SnapScrollHelper snapScrollHelper, @Nullable View ntpHeader, - @Nullable SectionHeaderView sectionHeaderView, FeedActionHandler.Options actionOptions, + @Nullable SectionHeaderView sectionHeaderView, FeedV1ActionOptions actionOptions, boolean showDarkBackground, FeedSurfaceDelegate delegate, @Nullable NativePageNavigationDelegate pageNavigationDelegate, Profile profile, - boolean isPlaceholderShown, BottomSheetController bottomSheetController) { + boolean isPlaceholderRequested, BottomSheetController bottomSheetController) { super(activity, snackbarManager, tabModelSelector, tabProvider, snapScrollHelper, ntpHeader, sectionHeaderView, actionOptions, showDarkBackground, delegate, - pageNavigationDelegate, profile, isPlaceholderShown, bottomSheetController); + pageNavigationDelegate, profile, isPlaceholderRequested, bottomSheetController); } @Override diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags index 03b577a33292..89b58c743a17 100644 --- a/android/java/apk_for_test.flags +++ b/android/java/apk_for_test.flags @@ -73,3 +73,54 @@ -keep class org.chromium.base.CommandLineInitUtil { *** initCommandLine(...); } + +-keep class org.chromium.chrome.browser.ui.appmenu.AppMenu { + *** getPopupPosition(...); +} + +-keep class org.chromium.chrome.browser.toolbar.bottom.BottomControlsCoordinator { + *** mMediator; +} + +-keep class org.chromium.chrome.browser.toolbar.ToolbarManager { + *** mBottomControlsCoordinator; + *** mBrowserControlsSizer; + *** mFullscreenManager; + *** mActivityTabProvider; + *** mAppThemeColorProvider; + *** mShareDelegateSupplier; + *** mScrimCoordinator; + *** mActivity; + *** mShowStartSurfaceSupplier; + *** mOverviewModeBehaviorSupplier; + *** mMenuButtonCoordinator; + *** mToolbarTabController; + *** mLocationBar; + *** mActionModeController; + *** mLocationBarModel; + *** mToolbar; + *** mBookmarkBridgeSupplier; + *** onOrientationChange(...); + *** updateButtonStatus(...); + *** updateBookmarkButtonStatus(...); + *** updateReloadState(...); +} + +-keep class org.chromium.chrome.browser.toolbar.top.TopToolbarCoordinator { + *** mTabSwitcherModeCoordinatorPhone; + *** mOptionalButtonController; +} + +-keep class org.chromium.chrome.browser.toolbar.top.TabSwitcherModeTTCoordinatorPhone { + *** mTabSwitcherModeToolbar; +} + +-keep class org.chromium.chrome.browser.toolbar.top.TabSwitcherModeTTPhone { + *** mNewTabViewButton; + *** mNewTabImageButton; + *** mToggleTabStackButton; + *** mMenuButton; + *** mShouldShowNewTabVariation; + *** updateNewTabButtonVisibility(...); + *** shouldShowIncognitoToggle(...); +} diff --git a/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java b/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java index e63e0acb8edf..b58932b14202 100644 --- a/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java +++ b/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java @@ -15,6 +15,7 @@ import androidx.appcompat.content.res.AppCompatResources; import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.BraveFeatureList; @@ -29,6 +30,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.toolbar.ToolbarManager; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; +import org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator; import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate; import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler; @@ -40,7 +42,7 @@ public BraveTabbedAppMenuPropertiesDelegate(Context context, MultiWindowModeStateDispatcher multiWindowModeStateDispatcher, TabModelSelector tabModelSelector, ToolbarManager toolbarManager, View decorView, AppMenuDelegate appMenuDelegate, - @Nullable ObservableSupplier overviewModeBehaviorSupplier, + OneshotSupplier overviewModeBehaviorSupplier, ObservableSupplier bookmarkBridgeSupplier) { super(context, activityTabProvider, multiWindowModeStateDispatcher, tabModelSelector, toolbarManager, decorView, appMenuDelegate, overviewModeBehaviorSupplier, @@ -58,6 +60,11 @@ public void prepareMenu(Menu menu, AppMenuHandler handler) { // and removed when menu is dismissed. if (!shouldShowPageMenu()) return; + if (isMenuButtonInBottomToolbar()) { + // Do not show icon row on top when menu itself is on bottom + menu.findItem(R.id.icon_row_menu_id).setVisible(false).setEnabled(false); + } + // Brave donesn't show help menu item in app menu. menu.findItem(R.id.help_id).setVisible(false).setEnabled(false); @@ -126,4 +133,28 @@ public void onFooterViewInflated(AppMenuHandler appMenuHandler, View view) { shareButton.setContentDescription(mContext.getString(R.string.share)); } } + + @Override + public boolean shouldShowHeader(int maxMenuHeight) { + if (isMenuButtonInBottomToolbar()) return false; + return super.shouldShowHeader(maxMenuHeight); + } + + @Override + public boolean shouldShowFooter(int maxMenuHeight) { + if (isMenuButtonInBottomToolbar()) return true; + return super.shouldShowFooter(maxMenuHeight); + } + + @Override + public int getFooterResourceId() { + if (isMenuButtonInBottomToolbar()) { + return shouldShowPageMenu() ? R.layout.icon_row_menu_footer : 0; + } + return super.getFooterResourceId(); + } + + private boolean isMenuButtonInBottomToolbar() { + return BraveMenuButtonCoordinator.isMenuFromBottom(); + } } diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java index a2b96e9b54a2..bd866411ae05 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java @@ -13,7 +13,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.feed.BraveFeedSurfaceCoordinator; -import org.chromium.chrome.browser.feed.FeedProcessScopeFactory; +import org.chromium.chrome.browser.feed.shared.FeedFeatures; import org.chromium.chrome.browser.feed.shared.FeedSurfaceProvider; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.profiles.Profile; @@ -52,7 +52,7 @@ protected void initializeMainView(Activity activity, Supplier tabProvider, // Override surface provider Profile profile = Profile.fromWebContents(mTab.getWebContents()); - assert !FeedProcessScopeFactory.isFeedProcessEnabled(); + assert !FeedFeatures.isFeedEnabled(); mFeedSurfaceProvider = new BraveFeedSurfaceCoordinator(activity, snackbarManager, tabModelSelector, tabProvider, new SnapScrollHelper(mNewTabPageManager, mNewTabPageLayout), mNewTabPageLayout, diff --git a/android/java/org/chromium/chrome/browser/omnibox/suggestions/editurl/BraveEditUrlSuggestionProcessor.java b/android/java/org/chromium/chrome/browser/omnibox/suggestions/editurl/BraveEditUrlSuggestionProcessor.java index e5ddb02bd4d3..92e21966ed9e 100644 --- a/android/java/org/chromium/chrome/browser/omnibox/suggestions/editurl/BraveEditUrlSuggestionProcessor.java +++ b/android/java/org/chromium/chrome/browser/omnibox/suggestions/editurl/BraveEditUrlSuggestionProcessor.java @@ -11,8 +11,8 @@ import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestion; +import org.chromium.chrome.browser.omnibox.suggestions.SuggestionHost; import org.chromium.chrome.browser.omnibox.suggestions.UrlBarDelegate; -import org.chromium.chrome.browser.omnibox.suggestions.basic.SuggestionHost; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.ui.favicon.LargeIconBridge; diff --git a/android/java/org/chromium/chrome/browser/settings/AppearancePreferences.java b/android/java/org/chromium/chrome/browser/settings/AppearancePreferences.java index 4e5ff7f7e21b..ce7d0ddcc80d 100644 --- a/android/java/org/chromium/chrome/browser/settings/AppearancePreferences.java +++ b/android/java/org/chromium/chrome/browser/settings/AppearancePreferences.java @@ -9,6 +9,7 @@ import android.content.SharedPreferences; import android.os.Bundle; + import androidx.preference.Preference; import org.chromium.base.ContextUtils; @@ -20,10 +21,11 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.night_mode.NightModeUtils; import org.chromium.chrome.browser.preferences.BravePreferenceKeys; +import org.chromium.chrome.browser.settings.BravePreferenceFragment; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; +import org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsUtils; -import org.chromium.chrome.browser.settings.BravePreferenceFragment; import org.chromium.ui.base.DeviceFormFactor; public class AppearancePreferences extends BravePreferenceFragment @@ -120,6 +122,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { .putBoolean(BravePreferenceKeys.BRAVE_BOTTOM_TOOLBAR_ENABLED_KEY, !originalStatus) .apply(); + BraveMenuButtonCoordinator.setMenuFromBottom(!originalStatus); BraveRelaunchUtils.askForRelaunch(getActivity()); } else if (PREF_HIDE_BRAVE_REWARDS_ICON.equals(key)) { SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); diff --git a/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java b/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java index d10c8468c759..193ac83da2c3 100644 --- a/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java +++ b/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java @@ -6,6 +6,7 @@ package org.chromium.chrome.browser.signin; import org.chromium.base.annotations.CalledByNative; +import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; import org.chromium.chrome.browser.sync.AndroidSyncSettings; import org.chromium.components.signin.AccountTrackerService; @@ -40,6 +41,6 @@ private static SigninManager create(long nativeSigninManagerAndroid, assert identityMutator != null; return new BraveSigninManager(nativeSigninManagerAndroid, accountTrackerService, identityManager, identityMutator, - AndroidSyncSettings.get(), ExternalAuthUtils.getInstance()); + AndroidSyncSettings.get(), AppHooks.get().getExternalAuthUtils()); } } diff --git a/android/java/org/chromium/chrome/browser/widget/tile/BraveTileWithTextView.java b/android/java/org/chromium/chrome/browser/suggestions/tile/BraveTileView.java similarity index 81% rename from android/java/org/chromium/chrome/browser/widget/tile/BraveTileWithTextView.java rename to android/java/org/chromium/chrome/browser/suggestions/tile/BraveTileView.java index 90b35f5fec9b..79959d7e8aa5 100644 --- a/android/java/org/chromium/chrome/browser/widget/tile/BraveTileWithTextView.java +++ b/android/java/org/chromium/chrome/browser/suggestions/tile/BraveTileView.java @@ -3,25 +3,26 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -package org.chromium.chrome.browser.widget.tile; +package org.chromium.chrome.browser.suggestions.tile; import android.content.Context; +import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.TextView; import org.chromium.chrome.R; import org.chromium.chrome.browser.BraveRewardsHelper; import org.chromium.chrome.browser.ChromeTabbedActivity; +import org.chromium.chrome.browser.ntp_background_images.util.NTPUtil; +import org.chromium.chrome.browser.ntp_background_images.util.SponsoredImageUtil; import org.chromium.chrome.browser.preferences.BravePref; -import org.chromium.components.user_prefs.UserPrefs; import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.suggestions.tile.TileWithTextView; +import org.chromium.chrome.browser.suggestions.tile.TileView; import org.chromium.chrome.browser.tabmodel.TabModel; -import org.chromium.chrome.browser.ntp_background_images.util.SponsoredImageUtil; -import org.chromium.chrome.browser.ntp_background_images.util.NTPUtil; +import org.chromium.components.user_prefs.UserPrefs; -public class BraveTileWithTextView extends TileWithTextView { - public BraveTileWithTextView(Context context, AttributeSet attrs) { +public class BraveTileView extends TileView { + public BraveTileView(Context context, AttributeSet attrs) { super(context, attrs); } diff --git a/android/java/org/chromium/chrome/browser/sync/BraveAndroidSyncSettings.java b/android/java/org/chromium/chrome/browser/sync/BraveAndroidSyncSettings.java index 08359cfa2e7d..e52df3e51d31 100644 --- a/android/java/org/chromium/chrome/browser/sync/BraveAndroidSyncSettings.java +++ b/android/java/org/chromium/chrome/browser/sync/BraveAndroidSyncSettings.java @@ -5,15 +5,16 @@ package org.chromium.chrome.browser.sync; +import android.accounts.Account; + import org.chromium.chrome.browser.sync.ProfileSyncService; -import org.chromium.components.sync.SyncContentResolverDelegate; // see org.brave.bytecode.BraveAndroidSyncSettingsAdapter public class BraveAndroidSyncSettings extends AndroidSyncSettings { private boolean mMasterSyncEnabled; - public BraveAndroidSyncSettings(SyncContentResolverDelegate syncContentResolverDelegate) { - super(syncContentResolverDelegate); + public BraveAndroidSyncSettings(Account account) { + super(account); } // Chromium's AndroidSyncSettings.mChromeSyncEnabled is never set to true diff --git a/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java b/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java new file mode 100644 index 000000000000..586b6fb0e3f5 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java @@ -0,0 +1,50 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.tabbed_mode; + +import org.chromium.base.Callback; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.bookmarks.BookmarkBridge; +import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.share.ShareDelegate; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; + +public class BraveTabbedRootUiCoordinator extends TabbedRootUiCoordinator { + public BraveTabbedRootUiCoordinator(ChromeActivity activity, + Callback onOmniboxFocusChangedListener, + ObservableSupplier intentWithEffect, + ObservableSupplier shareDelegateSupplier, + ActivityTabProvider tabProvider, + ObservableSupplierImpl ephemeralTabCoordinatorSupplier, + ObservableSupplier profileSupplier, + ObservableSupplier bookmarkBridgeSupplier, + OneshotSupplier overviewModeBehaviorSupplier, + Supplier contextualSearchManagerSupplier, + ObservableSupplier tabModelSelectorSupplier) { + super(activity, onOmniboxFocusChangedListener, intentWithEffect, shareDelegateSupplier, + tabProvider, ephemeralTabCoordinatorSupplier, profileSupplier, + bookmarkBridgeSupplier, overviewModeBehaviorSupplier, + contextualSearchManagerSupplier, tabModelSelectorSupplier); + } + + @Override + protected void initializeToolbar() { + super.initializeToolbar(); + + if (BottomToolbarConfiguration.isBottomToolbarEnabled()) { + getToolbarManager().enableBottomControls(); + } + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java new file mode 100644 index 000000000000..2336716ead6f --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java @@ -0,0 +1,204 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar; + +import android.content.res.Configuration; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewStub; + +import androidx.annotation.Nullable; + +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.base.Callback; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.bookmarks.BookmarkBridge; +import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer; +import org.chromium.chrome.browser.compositor.Invalidator; +import org.chromium.chrome.browser.compositor.layouts.LayoutManager; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.findinpage.FindToolbarManager; +import org.chromium.chrome.browser.fullscreen.FullscreenManager; +import org.chromium.chrome.browser.identity_disc.IdentityDiscController; +import org.chromium.chrome.browser.omnibox.LocationBar; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.share.ShareDelegate; +import org.chromium.chrome.browser.tab.SadTab; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.toolbar.bottom.BottomControlsCoordinator; +import org.chromium.chrome.browser.toolbar.bottom.BottomTabSwitcherActionMenuCoordinator; +import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; +import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager; +import org.chromium.chrome.browser.toolbar.bottom.BraveBottomControlsCoordinator; +import org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator; +import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; +import org.chromium.chrome.browser.toolbar.top.ActionModeController; +import org.chromium.chrome.browser.toolbar.top.BraveTopToolbarCoordinator; +import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback; +import org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer; +import org.chromium.chrome.browser.toolbar.top.TopToolbarCoordinator; +import org.chromium.chrome.browser.ui.TabObscuringHandler; +import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator; +import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; + +import java.util.List; + +public class BraveToolbarManager extends ToolbarManager { + private BottomControlsCoordinator mBottomControlsCoordinator; + private BrowserControlsSizer mBrowserControlsSizer; + private FullscreenManager mFullscreenManager; + private ActivityTabProvider mActivityTabProvider; + private AppThemeColorProvider mAppThemeColorProvider; + private ObservableSupplier mShareDelegateSupplier; + private ScrimCoordinator mScrimCoordinator; + private ChromeActivity mActivity; + private Supplier mShowStartSurfaceSupplier; + private OneshotSupplier mOverviewModeBehaviorSupplier; + private MenuButtonCoordinator mMenuButtonCoordinator; + private ToolbarTabControllerImpl mToolbarTabController; + private LocationBar mLocationBar; + private ActionModeController mActionModeController; + private LocationBarModel mLocationBarModel; + private TopToolbarCoordinator mToolbar; + private ObservableSupplier mBookmarkBridgeSupplier; + + private boolean mIsBottomToolbarVisible; + private View mRootBottomView; + + public BraveToolbarManager(ChromeActivity activity, BrowserControlsSizer controlsSizer, + FullscreenManager fullscreenManager, ToolbarControlContainer controlContainer, + Invalidator invalidator, Callback urlFocusChangedCallback, + ThemeColorProvider themeColorProvider, TabObscuringHandler tabObscuringHandler, + ObservableSupplier shareDelegateSupplier, + IdentityDiscController identityDiscController, + List buttonDataProviders, ActivityTabProvider tabProvider, + ScrimCoordinator scrimCoordinator, ToolbarActionModeCallback toolbarActionModeCallback, + FindToolbarManager findToolbarManager, ObservableSupplier profileSupplier, + ObservableSupplier bookmarkBridgeSupplier, + @Nullable Supplier canAnimateNativeBrowserControls, + OneshotSupplier overviewModeBehaviorSupplier, + OneshotSupplier appMenuCoordinatorSupplier, + boolean shouldShowUpdateBadge, + ObservableSupplier tabModelSelectorSupplier) { + super(activity, controlsSizer, fullscreenManager, controlContainer, invalidator, + urlFocusChangedCallback, themeColorProvider, tabObscuringHandler, + shareDelegateSupplier, identityDiscController, buttonDataProviders, tabProvider, + scrimCoordinator, toolbarActionModeCallback, findToolbarManager, profileSupplier, + bookmarkBridgeSupplier, canAnimateNativeBrowserControls, + overviewModeBehaviorSupplier, appMenuCoordinatorSupplier, shouldShowUpdateBadge, + tabModelSelectorSupplier); + } + + @Override + public void enableBottomControls() { + ViewStub viewStub = mActivity.findViewById(R.id.bottom_controls_stub); + viewStub.setOnInflateListener((stub, inflated) -> { mRootBottomView = inflated; }); + mBottomControlsCoordinator = new BraveBottomControlsCoordinator( + BottomTabSwitcherActionMenuCoordinator.createOnLongClickListener( + id -> mActivity.onOptionsItemSelected(id, null)), + mBrowserControlsSizer, mFullscreenManager, viewStub, mActivityTabProvider, + mAppThemeColorProvider, mShareDelegateSupplier, + mMenuButtonCoordinator.getMenuButtonHelperSupplier(), mShowStartSurfaceSupplier, + mToolbarTabController::openHomepage, + (reason) + -> setUrlBarFocus(true, reason), + mOverviewModeBehaviorSupplier, mScrimCoordinator); + ((BraveBottomControlsCoordinator) mBottomControlsCoordinator).setRootView(mRootBottomView); + boolean isBottomToolbarVisible = BottomToolbarConfiguration.isBottomToolbarEnabled() + && mActivity.getResources().getConfiguration().orientation + != Configuration.ORIENTATION_LANDSCAPE; + setBottomToolbarVisible(isBottomToolbarVisible); + } + + @Override + public void initializeWithNative(LayoutManager layoutManager, + OnClickListener tabSwitcherClickHandler, OnClickListener newTabClickHandler, + OnClickListener bookmarkClickHandler, OnClickListener customTabsBackClickHandler, + Supplier showStartSurfaceSupplier) { + super.initializeWithNative(layoutManager, tabSwitcherClickHandler, newTabClickHandler, + bookmarkClickHandler, customTabsBackClickHandler, showStartSurfaceSupplier); + + if (mBottomControlsCoordinator != null) { + ApiCompatibilityUtils.setAccessibilityTraversalBefore( + mLocationBar.getContainerView(), R.id.bottom_toolbar); + } + } + + @Override + public @Nullable View getMenuButtonView() { + if (mMenuButtonCoordinator.getMenuButton() == null) { + // Return fake view instead of null to avoid NullPointerException as some code within + // Chromium doesn't check for null. + return new View(mActivity); + } + return super.getMenuButtonView(); + } + + protected void onOrientationChange(int newOrientation) { + if (mActionModeController != null) mActionModeController.showControlsOnOrientationChange(); + + if (mBottomControlsCoordinator != null + && BottomToolbarConfiguration.isBottomToolbarEnabled()) { + boolean isBottomToolbarVisible = newOrientation != Configuration.ORIENTATION_LANDSCAPE; + setBottomToolbarVisible(isBottomToolbarVisible); + } + } + + protected void updateButtonStatus() { + Tab currentTab = mLocationBarModel.getTab(); + boolean tabCrashed = currentTab != null && SadTab.isShowing(currentTab); + + mToolbar.updateButtonVisibility(); + mToolbar.updateBackButtonVisibility(currentTab != null && currentTab.canGoBack()); + mToolbar.updateForwardButtonVisibility(currentTab != null && currentTab.canGoForward()); + updateReloadState(tabCrashed); + updateBookmarkButtonStatus(); + + if (mToolbar.getMenuButtonWrapper() != null && !isBottomToolbarVisible()) { + mToolbar.getMenuButtonWrapper().setVisibility(View.VISIBLE); + } + } + + protected void updateBookmarkButtonStatus() { + Tab currentTab = mLocationBarModel.getTab(); + BookmarkBridge bridge = mBookmarkBridgeSupplier.get(); + boolean isBookmarked = + currentTab != null && bridge != null && bridge.hasBookmarkIdForTab(currentTab); + boolean editingAllowed = + currentTab == null || bridge == null || bridge.isEditBookmarksEnabled(); + mToolbar.updateBookmarkButton(isBookmarked, editingAllowed); + + if (mBottomControlsCoordinator instanceof BraveBottomControlsCoordinator) { + ((BraveBottomControlsCoordinator) mBottomControlsCoordinator) + .updateBookmarkButton(isBookmarked, editingAllowed); + } + } + + protected void updateReloadState(boolean tabCrashed) { + assert (false); + } + + private void setBottomToolbarVisible(boolean visible) { + mIsBottomToolbarVisible = visible; + Boolean isMenuFromBottom = + mIsBottomToolbarVisible && BottomToolbarConfiguration.isBottomToolbarEnabled(); + BraveMenuButtonCoordinator.setMenuFromBottom(isMenuFromBottom); + if (mToolbar instanceof BraveTopToolbarCoordinator) { + ((BraveTopToolbarCoordinator) mToolbar).onBottomToolbarVisibilityChanged(visible); + } + mBottomControlsCoordinator.setBottomControlsVisible(visible); + } + + public boolean isBottomToolbarVisible() { + return mIsBottomToolbarVisible; + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java index 9d3cf1e1f3d3..0df0c1b459b4 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BookmarksButton.java @@ -1,6 +1,7 @@ -// Copyright 2019 The Brave Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.chromium.chrome.browser.toolbar.bottom; @@ -14,16 +15,17 @@ import org.chromium.base.ApiCompatibilityUtils; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; -import org.chromium.chrome.browser.ThemeColorProvider; -import org.chromium.chrome.browser.ThemeColorProvider.ThemeColorObserver; -import org.chromium.chrome.browser.ThemeColorProvider.TintObserver; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.TintObserver; +import org.chromium.ui.widget.ChromeImageButton; /** * The bookmarks button. */ -public class BookmarksButton extends ShareButton implements ThemeColorObserver, TintObserver { +public class BookmarksButton extends ChromeImageButton implements ThemeColorObserver, TintObserver { /** A provider that notifies components when the theme color changes.*/ private ThemeColorProvider mThemeColorProvider; private ColorStateList mCurrentTint; @@ -33,7 +35,6 @@ public BookmarksButton(Context context, AttributeSet attrs) { setImageDrawable(ContextCompat.getDrawable(context, R.drawable.btn_bookmark)); } - @Override public void destroy() { if (mThemeColorProvider != null) { mThemeColorProvider.removeThemeColorObserver(this); @@ -42,7 +43,6 @@ public void destroy() { } } - @Override public void setThemeColorProvider(ThemeColorProvider themeColorProvider) { mThemeColorProvider = themeColorProvider; mThemeColorProvider.addThemeColorObserver(this); @@ -72,17 +72,10 @@ public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) { } setEnabled(editingAllowed); } - - @Override - public void setActivityTabProvider(ActivityTabProvider activityTabProvider) { - // sergz: Do nothing here, was added just to avoid extra patching - } - @Override public void setOverviewModeBehavior(OverviewModeBehavior overviewModeBehavior) { } - @Override public void updateButtonEnabledState(Tab tab) { } } diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomTabSwitcherActionMenuCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomTabSwitcherActionMenuCoordinator.java new file mode 100644 index 000000000000..f10faae96177 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomTabSwitcherActionMenuCoordinator.java @@ -0,0 +1,52 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.view.View; +import android.view.View.OnLongClickListener; + +import org.chromium.base.Callback; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.toolbar.top.TabSwitcherActionMenuCoordinator; +import org.chromium.ui.modelutil.MVCListAdapter.ModelList; +import org.chromium.ui.widget.RectProvider; +import org.chromium.ui.widget.ViewRectProvider; + +/** + * The main coordinator for the Tab Switcher Action Menu on the bottom toolbar, + * responsible for creating the popup menu and building a list of menu items. + */ +public class BottomTabSwitcherActionMenuCoordinator extends TabSwitcherActionMenuCoordinator { + public static OnLongClickListener createOnLongClickListener(Callback onItemClicked) { + return createOnLongClickListener( + new BottomTabSwitcherActionMenuCoordinator(), onItemClicked); + } + + @Override + public ModelList buildMenuItems() { + ModelList itemList = new ModelList(); + itemList.add(buildListItemByMenuItemType(MenuItemType.NEW_TAB)); + itemList.add(buildListItemByMenuItemType(MenuItemType.NEW_INCOGNITO_TAB)); + itemList.add(buildListItemByMenuItemType(MenuItemType.DIVIDER)); + itemList.add(buildListItemByMenuItemType(MenuItemType.CLOSE_TAB)); + return itemList; + } + + @Override + protected RectProvider getRectProvider(View anchorView) { + ViewRectProvider rectProvider = new ViewRectProvider(anchorView); + rectProvider.setIncludePadding(true); + + // space between the icon and the border of the wrapper + int toolbarHeight = anchorView.getHeight(); + int iconHeight = + anchorView.getResources().getDimensionPixelSize(R.dimen.toolbar_icon_height); + int padding = (toolbarHeight - iconHeight) / 2; + rectProvider.setInsetPx(0, padding, padding / 2, 0); + + return rectProvider; + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarConfiguration.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java similarity index 87% rename from android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarConfiguration.java rename to android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java index 30fd8902920b..37261d3dbc45 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarConfiguration.java +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java @@ -15,12 +15,18 @@ import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.preferences.BravePreferenceKeys; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; +import org.chromium.ui.base.DeviceFormFactor; -public class BraveBottomToolbarConfiguration { +public class BottomToolbarConfiguration { private static final int SMALL_SCREEN_WIDTH = 360; private static final int SMALL_SCREEN_HEIGHT = 640; public static boolean isBottomToolbarEnabled() { + if (DeviceFormFactor.isNonMultiDisplayContextOnTablet( + ContextUtils.getApplicationContext())) { + return false; + } SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); if (sharedPreferences.getBoolean( BravePreferenceKeys.BRAVE_BOTTOM_TOOLBAR_SET_KEY, false)) { diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java new file mode 100644 index 000000000000..c25ec4cf184c --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java @@ -0,0 +1,384 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.content.Context; +import android.content.res.Resources; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnLongClickListener; +import android.view.ViewGroup; +import android.view.ViewStub; + +import org.chromium.base.Callback; +import org.chromium.base.CallbackController; +import org.chromium.base.ContextUtils; +import org.chromium.base.metrics.RecordUserAction; +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.Supplier; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.app.BraveActivity; +import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver; +import org.chromium.chrome.browser.feature_engagement.TrackerFactory; +import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.chrome.browser.omnibox.LocationBar; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.share.ShareDelegate; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; +import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil; +import org.chromium.chrome.browser.toolbar.HomeButton; +import org.chromium.chrome.browser.toolbar.TabCountProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.bottom.BookmarksButton; +import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarNewTabButton; +import org.chromium.chrome.browser.toolbar.bottom.SearchAccelerator; +import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; +import org.chromium.chrome.browser.util.TabUtils; +import org.chromium.components.feature_engagement.EventConstants; +import org.chromium.components.feature_engagement.Tracker; +import org.chromium.ui.widget.Toast; + +/** + * The root coordinator for the bottom toolbar. It has two sub-components: the browsing mode bottom + * toolbar and the tab switcher mode bottom toolbar. + */ +class BottomToolbarCoordinator implements View.OnLongClickListener { + /** The browsing mode bottom toolbar component */ + protected final BrowsingModeBottomToolbarCoordinator mBrowsingModeCoordinator; + + /** The tab switcher mode bottom toolbar component */ + private TabSwitcherBottomToolbarCoordinator mTabSwitcherModeCoordinator; + + /** The tab switcher mode bottom toolbar stub that will be inflated when native is ready. */ + private final ViewStub mTabSwitcherModeStub; + + /** A provider that notifies components when the theme color changes.*/ + private final ThemeColorProvider mThemeColorProvider; + + /** The overview mode manager. */ + protected OverviewModeBehavior mOverviewModeBehavior; + protected OverviewModeObserver mOverviewModeObserver; + + /** The activity tab provider. */ + private ActivityTabProvider mTabProvider; + + private final ObservableSupplier mShareDelegateSupplier; + private final Callback mShareDelegateSupplierCallback; + private ObservableSupplierImpl mShareButtonListenerSupplier = + new ObservableSupplierImpl<>(); + private final Supplier mShowStartSurfaceCallable; + private CallbackController mCallbackController = new CallbackController(); + private AppMenuButtonHelper mMenuButtonHelper; + private BottomControlsMediator mBottomControlsMediator; + private Runnable mOriginalHomeButtonRunnable; + private final ScrollingBottomViewResourceFrameLayout mScrollingBottomView; + private HomeButton mHomeButton; + private BookmarksButton mBookmarksButton; + private SearchAccelerator mSearchAccelerator; + private BottomToolbarNewTabButton mNewTabButton; + + private final Context mContext = ContextUtils.getApplicationContext(); + + /** + * Build the coordinator that manages the bottom toolbar. + * @param stub The bottom toolbar {@link ViewStub} to inflate. + * @param tabProvider The {@link ActivityTabProvider} used for making the IPH. + * @param themeColorProvider The {@link ThemeColorProvider} for the bottom toolbar. + * @param shareDelegateSupplier The supplier for the {@link ShareDelegate} the bottom controls + * should use to share content. + * @param showStartSurfaceCallable The action that opens the start surface, returning true if + * the start surface is shown. + * @param openHomepageAction The action that opens the homepage. + * @param setUrlBarFocusAction The function that sets Url bar focus. The first argument is + * @param overviewModeBehaviorSupplier Supplier for the overview mode manager. + * @param menuButtonHelperSupplier + */ + BottomToolbarCoordinator(ScrollingBottomViewResourceFrameLayout scrollingBottomView, + ViewStub stub, ActivityTabProvider tabProvider, + OnLongClickListener tabsSwitcherLongClickListner, ThemeColorProvider themeColorProvider, + ObservableSupplier shareDelegateSupplier, + Supplier showStartSurfaceCallable, Runnable openHomepageAction, + Callback setUrlBarFocusAction, + OneshotSupplier overviewModeBehaviorSupplier, + AppMenuButtonHelper menuButtonHelper, + BottomControlsMediator bottomControlsMediator) { + View root = stub.inflate(); + + overviewModeBehaviorSupplier.onAvailable(mCallbackController.makeCancelable( + (overviewModeBehavior) -> { setOverviewModeBehavior(overviewModeBehavior); })); + + mShowStartSurfaceCallable = showStartSurfaceCallable; + final OnClickListener homeButtonListener = v -> { + openHomepageAction.run(); + }; + + final OnClickListener searchAcceleratorListener = v -> { + RecordUserAction.record("MobileToolbarOmniboxAcceleratorTap"); + + // Only switch to HomePage when overview is showing. + if (mOverviewModeBehavior != null && mOverviewModeBehavior.overviewVisible()) { + mShowStartSurfaceCallable.get(); + } + setUrlBarFocusAction.onResult(LocationBar.OmniboxFocusReason.ACCELERATOR_TAP); + }; + + mBrowsingModeCoordinator = new BrowsingModeBottomToolbarCoordinator(root, tabProvider, + homeButtonListener, searchAcceleratorListener, mShareButtonListenerSupplier, + tabsSwitcherLongClickListner, overviewModeBehaviorSupplier); + + mTabSwitcherModeStub = root.findViewById(R.id.bottom_toolbar_tab_switcher_mode_stub); + + mThemeColorProvider = themeColorProvider; + mTabProvider = tabProvider; + + mShareDelegateSupplier = shareDelegateSupplier; + mShareDelegateSupplierCallback = this::onShareDelegateAvailable; + mShareDelegateSupplier.addObserver(mShareDelegateSupplierCallback); + + mMenuButtonHelper = menuButtonHelper; + mBottomControlsMediator = bottomControlsMediator; + mOriginalHomeButtonRunnable = openHomepageAction; + mScrollingBottomView = scrollingBottomView; + } + + /** + * Initialize the bottom toolbar with the components that had native initialization + * dependencies. + *

+ * Calling this must occur after the native library have completely loaded. + * @param tabSwitcherListener An {@link OnClickListener} that is triggered when the + * tab switcher button is clicked. + * @param newTabClickListener An {@link OnClickListener} that is triggered when the + * new tab button is clicked. + * @param tabCountProvider Updates the tab count number in the tab switcher button and in the + * incognito toggle tab layout. + * @param incognitoStateProvider Notifies components when incognito mode is entered or exited. + * @param topToolbarRoot The root {@link ViewGroup} of the top toolbar. + * @param closeAllTabsAction The runnable that closes all tabs in the current tab model. + */ + void initializeWithNative(OnClickListener tabSwitcherListener, + OnClickListener newTabClickListener, TabCountProvider tabCountProvider, + IncognitoStateProvider incognitoStateProvider, ViewGroup topToolbarRoot, + Runnable closeAllTabsAction) { + final OnClickListener closeTabsClickListener = v -> { + final boolean isIncognito = incognitoStateProvider.isIncognitoSelected(); + if (isIncognito) { + RecordUserAction.record("MobileToolbarCloseAllIncognitoTabsButtonTap"); + } else { + RecordUserAction.record("MobileToolbarCloseAllRegularTabsButtonTap"); + } + + closeAllTabsAction.run(); + }; + + mBrowsingModeCoordinator.initializeWithNative(newTabClickListener, tabSwitcherListener, + mMenuButtonHelper, tabCountProvider, mThemeColorProvider, incognitoStateProvider); + mTabSwitcherModeCoordinator = new TabSwitcherBottomToolbarCoordinator(mTabSwitcherModeStub, + topToolbarRoot, incognitoStateProvider, mThemeColorProvider, newTabClickListener, + closeTabsClickListener, mMenuButtonHelper, tabCountProvider); + + // Do not change bottom bar if StartSurface Single Pane is enabled and HomePage is not + // customized. + if (!ReturnToChromeExperimentsUtil.shouldShowStartSurfaceAsTheHomePage() + && BottomToolbarVariationManager.shouldBottomToolbarBeVisibleInOverviewMode()) { + mOverviewModeObserver = new EmptyOverviewModeObserver() { + @Override + public void onOverviewModeStartedShowing(boolean showToolbar) { + if (mBottomControlsMediator instanceof BraveBottomControlsMediator) { + ((BraveBottomControlsMediator) mBottomControlsMediator) + .setCompositedViewVisibile(false); + } + BrowsingModeBottomToolbarCoordinator browsingModeCoordinator = + (BrowsingModeBottomToolbarCoordinator) mBrowsingModeCoordinator; + browsingModeCoordinator.getSearchAccelerator().setVisibility(View.GONE); + if (BottomToolbarVariationManager.isShareButtonOnBottom()) { + browsingModeCoordinator.getShareButton().setVisibility(View.GONE); + } + if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { + browsingModeCoordinator.getHomeButton().setVisibility(View.INVISIBLE); + } + if (BottomToolbarVariationManager.isBookmarkButtonOnBottom()) { + browsingModeCoordinator.getBookmarkButton().setVisibility(View.INVISIBLE); + } + if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { + browsingModeCoordinator.getTabSwitcherButtonView().setVisibility( + View.INVISIBLE); + } + if (BottomToolbarVariationManager.isNewTabButtonOnBottom()) { + browsingModeCoordinator.getNewTabButtonParent().setVisibility(View.VISIBLE); + } + } + + @Override + public void onOverviewModeStartedHiding( + boolean showToolbar, boolean delayAnimation) { + BrowsingModeBottomToolbarCoordinator browsingModeCoordinator = + (BrowsingModeBottomToolbarCoordinator) mBrowsingModeCoordinator; + browsingModeCoordinator.getSearchAccelerator().setVisibility(View.VISIBLE); + if (BottomToolbarVariationManager.isShareButtonOnBottom()) { + browsingModeCoordinator.getShareButton().setVisibility(View.VISIBLE); + browsingModeCoordinator.getShareButton().updateButtonEnabledState( + mTabProvider.get()); + } + if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { + browsingModeCoordinator.getHomeButton().setVisibility(View.VISIBLE); + browsingModeCoordinator.getHomeButton().updateButtonEnabledState( + mTabProvider.get()); + } + if (BottomToolbarVariationManager.isBookmarkButtonOnBottom()) { + browsingModeCoordinator.getBookmarkButton().setVisibility(View.VISIBLE); + } + if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { + browsingModeCoordinator.getTabSwitcherButtonView().setVisibility( + View.VISIBLE); + } + if (BottomToolbarVariationManager.isNewTabButtonOnBottom()) { + browsingModeCoordinator.getNewTabButtonParent().setVisibility(View.GONE); + } + } + + @Override + public void onOverviewModeFinishedHiding() { + if (mBottomControlsMediator instanceof BraveBottomControlsMediator) { + ((BraveBottomControlsMediator) mBottomControlsMediator) + .setCompositedViewVisibile(true); + } + } + }; + } + + View root = (View) topToolbarRoot.getParent(); + View bottomToolbarBrowsing = root.findViewById(R.id.bottom_toolbar_browsing); + View bottomToolbarButtons = root.findViewById(R.id.bottom_toolbar_buttons); + + mHomeButton = bottomToolbarBrowsing.findViewById(R.id.bottom_home_button); + if (mHomeButton != null) { + mHomeButton.setOnLongClickListener(this); + + final OnClickListener homeButtonListener = v -> { + final boolean isHomepageEnabled = HomepageManager.isHomepageEnabled(); + if (isHomepageEnabled) { + mOriginalHomeButtonRunnable.run(); + } else { + newTabClickListener.onClick(v); + } + }; + + mHomeButton.setOnClickListener(homeButtonListener); + } + + mBookmarksButton = bottomToolbarBrowsing.findViewById(R.id.bottom_bookmark_button); + if (mBookmarksButton != null) { + mBookmarksButton.setOnLongClickListener(this); + } + + mSearchAccelerator = bottomToolbarBrowsing.findViewById(R.id.search_accelerator); + if (mSearchAccelerator != null) { + mSearchAccelerator.setOnLongClickListener(this); + } + + mNewTabButton = bottomToolbarButtons.findViewById(R.id.bottom_new_tab_button); + if (mNewTabButton != null) { + mNewTabButton.setOnLongClickListener(this); + } + + ChromeActivity activity = BraveActivity.getBraveActivity(); + if (mScrollingBottomView != null && activity != null) { + mScrollingBottomView.setSwipeDetector( + activity.getCompositorViewHolder().getLayoutManager().getToolbarSwipeHandler()); + } + } + + /** + * @param isVisible Whether the bottom toolbar is visible. + */ + void setBottomToolbarVisible(boolean isVisible) { + if (mTabSwitcherModeCoordinator != null) { + mTabSwitcherModeCoordinator.showToolbarOnTop(!isVisible); + } + mBrowsingModeCoordinator.onVisibilityChanged(isVisible); + } + + /** + * Clean up any state when the bottom toolbar is destroyed. + */ + void destroy() { + mBrowsingModeCoordinator.destroy(); + if (mTabSwitcherModeCoordinator != null) { + mTabSwitcherModeCoordinator.destroy(); + mTabSwitcherModeCoordinator = null; + } + if (mOverviewModeBehavior != null) { + mOverviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver); + mOverviewModeBehavior = null; + } + mThemeColorProvider.destroy(); + mShareDelegateSupplier.removeObserver(mShareDelegateSupplierCallback); + } + + private void onShareDelegateAvailable(ShareDelegate shareDelegate) { + final OnClickListener shareButtonListener = v -> { + if (BottomToolbarVariationManager.isShareButtonOnBottom()) { + RecordUserAction.record("MobileBottomToolbarShareButton"); + } + + Tab tab = mTabProvider.get(); + shareDelegate.share(tab, /*shareDirectly=*/false); + }; + + mShareButtonListenerSupplier.set(shareButtonListener); + } + + private void setOverviewModeBehavior(OverviewModeBehavior overviewModeBehavior) { + assert overviewModeBehavior != null; + assert mOverviewModeBehavior + == null + : "TODO(https://crbug.com/1084528): the overview mode manager should set at most once."; + mOverviewModeBehavior = overviewModeBehavior; + mOverviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver); + } + + public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) { + if (mBrowsingModeCoordinator != null) { + ((BrowsingModeBottomToolbarCoordinator) mBrowsingModeCoordinator) + .updateBookmarkButton(isBookmarked, editingAllowed); + } + } + + @Override + public boolean onLongClick(View v) { + String description = ""; + Resources resources = mContext.getResources(); + + if (v == mHomeButton) { + // It is currently a new tab button when homepage is disabled. + if (!HomepageManager.isHomepageEnabled()) { + TabUtils.showTabPopupMenu(mContext, v); + return true; + } + + description = resources.getString(R.string.accessibility_toolbar_btn_home); + } else if (v == mBookmarksButton) { + description = resources.getString(R.string.accessibility_toolbar_btn_bookmark); + } else if (v == mSearchAccelerator) { + description = + resources.getString(R.string.accessibility_toolbar_btn_search_accelerator); + } else if (v == mNewTabButton) { + TabUtils.showTabPopupMenu(mContext, v); + return true; + } + + return Toast.showAnchoredToast(mContext, v, description); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java new file mode 100644 index 000000000000..85551992b39d --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java @@ -0,0 +1,113 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; + +import androidx.annotation.StringRes; + +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider.IncognitoStateObserver; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.TintObserver; +import org.chromium.chrome.browser.toolbar.ToolbarColors; +import org.chromium.ui.widget.ChromeImageButton; + +/** + * The tab switcher new tab button. + */ +class BottomToolbarNewTabButton extends ChromeImageButton + implements IncognitoStateObserver, ThemeColorObserver, TintObserver { + /** The gray pill background behind the plus icon. */ + private Drawable mBackground; + + /** The {@link Resources} used to compute the background color. */ + private final Resources mResources; + + /** A provider that notifies when incognito mode is entered or exited. */ + private IncognitoStateProvider mIncognitoStateProvider; + + /** A provider that notifies when the theme color changes.*/ + private ThemeColorProvider mThemeColorProvider; + + public BottomToolbarNewTabButton(Context context, AttributeSet attrs) { + super(context, attrs); + + mResources = context.getResources(); + } + + @Override + public void setBackground(Drawable background) { + super.setBackground(background); + mBackground = background; + } + + /** + * Clean up any state when the new tab button is destroyed. + */ + void destroy() { + if (mIncognitoStateProvider != null) { + mIncognitoStateProvider.removeObserver(this); + mIncognitoStateProvider = null; + } + if (mThemeColorProvider != null) { + mThemeColorProvider.removeThemeColorObserver(this); + mThemeColorProvider.removeTintObserver(this); + mThemeColorProvider = null; + } + } + + void setIncognitoStateProvider(IncognitoStateProvider incognitoStateProvider) { + mIncognitoStateProvider = incognitoStateProvider; + mIncognitoStateProvider.addIncognitoStateObserverAndTrigger(this); + } + + @Override + public void onIncognitoStateChanged(boolean isIncognito) { + @StringRes + int resId = isIncognito ? R.string.accessibility_toolbar_btn_new_incognito_tab + : R.string.accessibility_toolbar_btn_new_tab; + setContentDescription(getResources().getText(resId)); + updateBackground(); + } + + void setThemeColorProvider(ThemeColorProvider themeColorProvider) { + mThemeColorProvider = themeColorProvider; + mThemeColorProvider.addThemeColorObserver(this); + mThemeColorProvider.addTintObserver(this); + } + + @Override + public void onThemeColorChanged(int primaryColor, boolean shouldAnimate) { + updateBackground(); + } + + @Override + public void onTintChanged(ColorStateList tint, boolean useLight) { + ApiCompatibilityUtils.setImageTintList(this, tint); + updateBackground(); + } + + private void updateBackground() { + if (mThemeColorProvider == null || mIncognitoStateProvider == null || mBackground == null) { + return; + } + mBackground.setColorFilter( + ToolbarColors.getTextBoxColorForToolbarBackgroundInNonNativePage(mResources, + mThemeColorProvider.getThemeColor(), + mThemeColorProvider.useLight() + && mIncognitoStateProvider.isIncognitoSelected()), + PorterDuff.Mode.SRC_IN); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java new file mode 100644 index 000000000000..1a9bdf8e96db --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java @@ -0,0 +1,83 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import androidx.annotation.StringDef; +import androidx.annotation.VisibleForTesting; + +import org.chromium.chrome.browser.flags.CachedFeatureFlags; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.StringCachedFieldTrialParameter; +import org.chromium.chrome.browser.incognito.IncognitoUtils; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; +import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * The variation manager helps figure out the current variation and the visibility of buttons on + * bottom toolbar. Every operation related to the variation, e.g. getting variation value, should be + * through {@link BottomToolbarVariationManager} rather than calling {@link CachedFeatureFlags}. + */ +public class BottomToolbarVariationManager { + /** + * @return Whether or not share button should be visible on the top toolbar in portrait mode + * in the current variation. + */ + public static boolean isShareButtonOnBottom() { + return false; + } + + /** + * @return Whether or not new tab button should be visible on the bottom toolbar + * in portrait mode in the current variation. + */ + public static boolean isNewTabButtonOnBottom() { + return BottomToolbarConfiguration.isBottomToolbarEnabled(); + } + + /** + * @return Whether or not menu button should be visible on the top toolbar + * in portrait mode in the current variation. + */ + public static boolean isMenuButtonOnBottom() { + return BottomToolbarConfiguration.isBottomToolbarEnabled(); + } + + /** + * @return Whether or not bottom toolbar should be visible in overview mode of portrait mode + * in the current variation. + */ + public static boolean shouldBottomToolbarBeVisibleInOverviewMode() { + return BottomToolbarConfiguration.isBottomToolbarEnabled(); + } + + /** + * @return Whether or not home button should be visible in top toolbar of portrait mode + * in current variation. + */ + public static boolean isHomeButtonOnBottom() { + return BottomToolbarConfiguration.isBottomToolbarEnabled(); + } + + /** + * @return Whether or not tab switcher button should be visible in bottom toolbar + * of portrait mode in current variation. + */ + public static boolean isTabSwitcherOnBottom() { + return BottomToolbarConfiguration.isBottomToolbarEnabled(); + } + + /** + * @return Whether or not bookmark button should be visible in bottom toolbar + * of portrait mode in current variation. + */ + public static boolean isBookmarkButtonOnBottom() { + return BottomToolbarConfiguration.isBottomToolbarEnabled(); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java new file mode 100644 index 000000000000..fe97838aa3a5 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java @@ -0,0 +1,129 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnLongClickListener; +import android.view.ViewGroup; +import android.view.ViewStub; + +import androidx.annotation.Nullable; + +import org.chromium.base.Callback; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneShotCallback; +import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer; +import org.chromium.chrome.browser.compositor.layouts.LayoutManager; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.fullscreen.FullscreenManager; +import org.chromium.chrome.browser.share.ShareDelegate; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; +import org.chromium.chrome.browser.toolbar.TabCountProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; +import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; +import org.chromium.ui.base.WindowAndroid; +import org.chromium.ui.resources.ResourceManager; + +public class BraveBottomControlsCoordinator extends BottomControlsCoordinator { + private BottomControlsMediator mMediator; + + private @Nullable BottomToolbarCoordinator mBottomToolbarCoordinator; + private OnLongClickListener mTabSwitcherLongclickListener; + private ActivityTabProvider mTabProvider; + private ThemeColorProvider mThemeColorProvider; + private ObservableSupplier mShareDelegateSupplier; + private AppMenuButtonHelper mMenuButtonHelper; + private Supplier mShowStartSurfaceCallable; + private Runnable mOpenHomepageAction; + private Callback mSetUrlBarFocusAction; + private OneshotSupplier mOverviewModeBehaviorSupplier; + private ScrollingBottomViewResourceFrameLayout mRoot; + + public BraveBottomControlsCoordinator(OnLongClickListener tabSwitcherLongclickListener, + BrowserControlsSizer controlsSizer, FullscreenManager fullscreenManager, ViewStub stub, + ActivityTabProvider tabProvider, ThemeColorProvider themeColorProvider, + ObservableSupplier shareDelegateSupplier, + ObservableSupplier menuButtonHelperSupplier, + Supplier showStartSurfaceCallable, Runnable openHomepageAction, + Callback setUrlBarFocusAction, + OneshotSupplier overviewModeBehaviorSupplier, + ScrimCoordinator scrimCoordinator) { + super(controlsSizer, fullscreenManager, stub, tabProvider, themeColorProvider, + shareDelegateSupplier, menuButtonHelperSupplier, showStartSurfaceCallable, + openHomepageAction, setUrlBarFocusAction, overviewModeBehaviorSupplier, + scrimCoordinator); + + mTabSwitcherLongclickListener = tabSwitcherLongclickListener; + mTabProvider = tabProvider; + mThemeColorProvider = themeColorProvider; + mShareDelegateSupplier = shareDelegateSupplier; + mShowStartSurfaceCallable = showStartSurfaceCallable; + mOpenHomepageAction = openHomepageAction; + mSetUrlBarFocusAction = setUrlBarFocusAction; + mOverviewModeBehaviorSupplier = overviewModeBehaviorSupplier; + new OneShotCallback<>(menuButtonHelperSupplier, (menuButtonHelper) -> { + if (menuButtonHelper != null) { + mMenuButtonHelper = menuButtonHelper; + } + }); + } + + public void setRootView(View root) { + assert (root != null); + mRoot = (ScrollingBottomViewResourceFrameLayout) root; + } + + @Override + public void initializeWithNative(ChromeActivity chromeActivity, ResourceManager resourceManager, + LayoutManager layoutManager, OnClickListener tabSwitcherListener, + OnClickListener newTabClickListener, WindowAndroid windowAndroid, + TabCountProvider tabCountProvider, IncognitoStateProvider incognitoStateProvider, + ViewGroup topToolbarRoot, Runnable closeAllTabsAction) { + super.initializeWithNative(chromeActivity, resourceManager, layoutManager, + tabSwitcherListener, newTabClickListener, windowAndroid, tabCountProvider, + incognitoStateProvider, topToolbarRoot, closeAllTabsAction); + + if (BottomToolbarConfiguration.isBottomToolbarEnabled()) { + mBottomToolbarCoordinator = new BottomToolbarCoordinator(mRoot, + mRoot.findViewById(R.id.bottom_toolbar_stub), mTabProvider, + mTabSwitcherLongclickListener, mThemeColorProvider, mShareDelegateSupplier, + mShowStartSurfaceCallable, mOpenHomepageAction, mSetUrlBarFocusAction, + mOverviewModeBehaviorSupplier, mMenuButtonHelper, mMediator); + + mBottomToolbarCoordinator.initializeWithNative(tabSwitcherListener, newTabClickListener, + tabCountProvider, incognitoStateProvider, topToolbarRoot, closeAllTabsAction); + } + } + + @Override + public void setBottomControlsVisible(boolean isVisible) { + super.setBottomControlsVisible(isVisible); + + if (mBottomToolbarCoordinator != null) { + mBottomToolbarCoordinator.setBottomToolbarVisible(isVisible); + } + } + + @Override + public void destroy() { + super.destroy(); + + if (mBottomToolbarCoordinator != null) mBottomToolbarCoordinator.destroy(); + } + + public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) { + if (mBottomToolbarCoordinator != null) { + mBottomToolbarCoordinator.updateBookmarkButton(isBookmarked, editingAllowed); + } + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java new file mode 100644 index 000000000000..642709a69c4c --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java @@ -0,0 +1,25 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer; +import org.chromium.chrome.browser.fullscreen.FullscreenManager; +import org.chromium.ui.modelutil.PropertyModel; + +class BraveBottomControlsMediator extends BottomControlsMediator { + private final PropertyModel mModel; + + BraveBottomControlsMediator(PropertyModel model, BrowserControlsSizer controlsSizer, + FullscreenManager fullscreenManager, int bottomControlsHeight) { + super(model, controlsSizer, fullscreenManager, bottomControlsHeight); + + mModel = model; + } + + public void setCompositedViewVisibile(boolean visible) { + mModel.set(BottomControlsProperties.COMPOSITED_VIEW_VISIBLE, visible); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarCoordinator.java deleted file mode 100644 index 9d51546118a5..000000000000 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarCoordinator.java +++ /dev/null @@ -1,203 +0,0 @@ -/* Copyright (c) 2019 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.chromium.chrome.browser.toolbar.bottom; - -import android.content.Context; -import android.content.res.Resources; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.View.OnLongClickListener; -import android.view.ViewGroup; -import android.view.ViewStub; - -import org.chromium.base.Callback; -import org.chromium.base.ContextUtils; -import org.chromium.base.supplier.ObservableSupplier; -import org.chromium.base.supplier.Supplier; -import org.chromium.chrome.R; -import org.chromium.chrome.browser.ActivityTabProvider; -import org.chromium.chrome.browser.ThemeColorProvider; -import org.chromium.chrome.browser.app.BraveActivity; -import org.chromium.chrome.browser.app.ChromeActivity; -import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; -import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; -import org.chromium.chrome.browser.homepage.HomepageManager; -import org.chromium.chrome.browser.share.ShareDelegate; -import org.chromium.chrome.browser.toolbar.HomeButton; -import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; -import org.chromium.chrome.browser.toolbar.TabCountProvider; -import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarNewTabButton; -import org.chromium.chrome.browser.toolbar.bottom.SearchAccelerator; -import org.chromium.chrome.browser.toolbar.bottom.ShareButton; -import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; -import org.chromium.chrome.browser.util.TabUtils; -import org.chromium.ui.widget.Toast; - -public class BraveBottomToolbarCoordinator - extends BottomToolbarCoordinator implements View.OnLongClickListener { - private HomeButton mHomeButton; - private ShareButton mBookmarksButton; - private SearchAccelerator mSearchAccelerator; - private BottomToolbarNewTabButton mNewTabButton; - private ActivityTabProvider mBraveTabProvider; - private Runnable mOriginalHomeButtonRunnable; - private final ScrollingBottomViewResourceFrameLayout rootView; - - private final Context mContext = ContextUtils.getApplicationContext(); - - BraveBottomToolbarCoordinator(ScrollingBottomViewResourceFrameLayout root, ViewStub stub, - ActivityTabProvider tabProvider, OnLongClickListener tabsSwitcherLongClickListner, - ThemeColorProvider themeColorProvider, - ObservableSupplier shareDelegateSupplier, - Supplier showStartSurfaceCallable, Runnable openHomepageAction, - Callback setUrlBarFocusAction, - ObservableSupplier overviewModeBehaviorSupplier, - ObservableSupplier menuButtonHelperSupplier) { - super(stub, tabProvider, tabsSwitcherLongClickListner, themeColorProvider, - shareDelegateSupplier, showStartSurfaceCallable, openHomepageAction, - setUrlBarFocusAction, overviewModeBehaviorSupplier, menuButtonHelperSupplier); - mBraveTabProvider = tabProvider; - mOriginalHomeButtonRunnable = openHomepageAction; - rootView = root; - } - - @Override - public boolean onLongClick(View v) { - String description = ""; - Resources resources = mContext.getResources(); - - if (v == mHomeButton) { - // It is currently a new tab button when homepage is disabled. - if (!HomepageManager.isHomepageEnabled()) { - TabUtils.showTabPopupMenu(mContext, v); - return true; - } - - description = resources.getString(R.string.accessibility_toolbar_btn_home); - } else if (v == mBookmarksButton) { - description = resources.getString(R.string.accessibility_toolbar_btn_bookmark); - } else if (v == mSearchAccelerator) { - description = - resources.getString(R.string.accessibility_toolbar_btn_search_accelerator); - } else if (v == mNewTabButton) { - TabUtils.showTabPopupMenu(mContext, v); - return true; - } - - return Toast.showAnchoredToast(mContext, v, description); - } - - @Override - void initializeWithNative(OnClickListener tabSwitcherListener, - OnClickListener newTabClickListener, TabCountProvider tabCountProvider, - IncognitoStateProvider incognitoStateProvider, ViewGroup topToolbarRoot, - Runnable closeAllTabsAction) { - super.initializeWithNative(tabSwitcherListener, newTabClickListener, tabCountProvider, - incognitoStateProvider, topToolbarRoot, closeAllTabsAction); - - View root = (View) topToolbarRoot.getParent(); - View bottom_toolbar_browsing = root.findViewById(R.id.bottom_toolbar_browsing); - View bottom_toolbar_buttons = root.findViewById(R.id.bottom_toolbar_buttons); - - mHomeButton = bottom_toolbar_browsing.findViewById(R.id.bottom_home_button); - if (mHomeButton != null) { - mHomeButton.setOnLongClickListener(this); - - final OnClickListener homeButtonListener = v -> { - final boolean isHomepageEnabled = HomepageManager.isHomepageEnabled(); - if (isHomepageEnabled) { - mOriginalHomeButtonRunnable.run(); - } else { - newTabClickListener.onClick(v); - } - }; - - mHomeButton.setOnClickListener(homeButtonListener); - } - - mBookmarksButton = bottom_toolbar_browsing.findViewById(R.id.bottom_bookmark_button); - if (mBookmarksButton != null) { - mBookmarksButton.setOnLongClickListener(this); - } - - mSearchAccelerator = bottom_toolbar_browsing.findViewById(R.id.search_accelerator); - if (mSearchAccelerator != null) { - mSearchAccelerator.setOnLongClickListener(this); - } - - mNewTabButton = bottom_toolbar_buttons.findViewById(R.id.bottom_new_tab_button); - if (mNewTabButton != null) { - mNewTabButton.setOnLongClickListener(this); - } - - if (mOverviewModeObserver != null) { - if (mOverviewModeBehavior != null) { - // We create new observer here so remove previous - mOverviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver); - } - mOverviewModeObserver = new EmptyOverviewModeObserver() { - @Override - public void onOverviewModeStartedShowing(boolean showToolbar) { - BraveBrowsingModeBottomToolbarCoordinator browsingModeCoordinator = - (BraveBrowsingModeBottomToolbarCoordinator)mBrowsingModeCoordinator; - browsingModeCoordinator.getSearchAccelerator().setVisibility(View.GONE); - if (BottomToolbarVariationManager.isShareButtonOnBottom()) { - browsingModeCoordinator.getShareButton().setVisibility(View.GONE); - } - if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { - browsingModeCoordinator.getHomeButton().setVisibility(View.INVISIBLE); - } - if (BraveBottomToolbarVariationManager.isBraveVariation()) { - browsingModeCoordinator.getBookmarkButton().setVisibility(View.INVISIBLE); - } - if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { - browsingModeCoordinator.getTabSwitcherButtonView().setVisibility(View.INVISIBLE); - } - if (BottomToolbarVariationManager.isNewTabButtonOnBottom()) { - browsingModeCoordinator.getNewTabButtonParent().setVisibility(View.VISIBLE); - } - } - - @Override - public void onOverviewModeStartedHiding( - boolean showToolbar, boolean delayAnimation) { - BraveBrowsingModeBottomToolbarCoordinator browsingModeCoordinator = - (BraveBrowsingModeBottomToolbarCoordinator)mBrowsingModeCoordinator; - browsingModeCoordinator.getSearchAccelerator().setVisibility(View.VISIBLE); - if (BottomToolbarVariationManager.isShareButtonOnBottom()) { - browsingModeCoordinator.getShareButton().setVisibility(View.VISIBLE); - browsingModeCoordinator.getShareButton().updateButtonEnabledState( - mBraveTabProvider.get()); - } - if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { - browsingModeCoordinator.getHomeButton().setVisibility(View.VISIBLE); - browsingModeCoordinator.getHomeButton().updateButtonEnabledState( - mBraveTabProvider.get()); - } - if (BraveBottomToolbarVariationManager.isBraveVariation()) { - browsingModeCoordinator.getBookmarkButton().setVisibility(View.VISIBLE); - } - if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { - browsingModeCoordinator.getTabSwitcherButtonView().setVisibility(View.VISIBLE); - } - if (BottomToolbarVariationManager.isNewTabButtonOnBottom()) { - browsingModeCoordinator.getNewTabButtonParent().setVisibility(View.GONE); - } - } - }; - if (mOverviewModeBehavior != null) { - mOverviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver); - } - } - - BraveActivity braveActivity = BraveActivity.getBraveActivity(); - if (rootView != null && braveActivity != null) { - rootView.setSwipeDetector(braveActivity.getCompositorViewHolder() - .getLayoutManager() - .getToolbarSwipeHandler()); - } - } -} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarVariationManager.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarVariationManager.java deleted file mode 100644 index 37ce4b63de14..000000000000 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomToolbarVariationManager.java +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.chromium.chrome.browser.toolbar.bottom; - -import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; - -/** - * Brave's extension for BottomToolbarVariationManager - */ -public class BraveBottomToolbarVariationManager - extends BottomToolbarVariationManager { - private static String sBraveVariation; - - private static @Variations String getBraveVariation() { - if (sBraveVariation != null) return sBraveVariation; - sBraveVariation = BOTTOM_TOOLBAR_VARIATION.getValue(); - return sBraveVariation; - } - - public static boolean isBraveVariation() { - return BottomToolbarConfiguration.isBottomToolbarEnabled() - && getBraveVariation().equals(Variations.NONE); - } -} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBrowsingModeBottomToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBrowsingModeBottomToolbarCoordinator.java deleted file mode 100644 index 711807ba59a3..000000000000 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBrowsingModeBottomToolbarCoordinator.java +++ /dev/null @@ -1,100 +0,0 @@ -/* Copyright (c) 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.chromium.chrome.browser.toolbar.bottom; - -import android.view.View; -import android.view.View.OnClickListener; -import android.view.View.OnLongClickListener; - -import org.chromium.base.supplier.ObservableSupplier; -import org.chromium.chrome.R; -import org.chromium.chrome.browser.ActivityTabProvider; -import org.chromium.chrome.browser.ThemeColorProvider; -import org.chromium.chrome.browser.app.BraveActivity; -import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; -import org.chromium.chrome.browser.tab.TabImpl; -import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; -import org.chromium.chrome.browser.toolbar.TabCountProvider; -import org.chromium.chrome.browser.toolbar.menu_button.MenuButton; -import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; - -/** - * Brave's extension to BrowsingModeBottomToolbarCoordinator. - */ -public class BraveBrowsingModeBottomToolbarCoordinator - extends BrowsingModeBottomToolbarCoordinator { - private final BrowsingModeBottomToolbarLinearLayout mBraveToolbarRoot; - private final ActivityTabProvider mBraveTabProvider; - private final BookmarksButton mBookmarkButton; - private final MenuButton mMenuButton; - private final BottomToolbarNewTabButton mBraveNewTabButton; - - BraveBrowsingModeBottomToolbarCoordinator(View root, ActivityTabProvider tabProvider, - OnClickListener homeButtonListener, OnClickListener searchAcceleratorListener, - ObservableSupplier shareButtonListenerSupplier, - OnLongClickListener tabSwitcherLongClickListener, - ObservableSupplier overviewModeBehaviorSupplier) { - super(root, tabProvider, homeButtonListener, searchAcceleratorListener, - shareButtonListenerSupplier, tabSwitcherLongClickListener, - overviewModeBehaviorSupplier); - mBraveTabProvider = tabProvider; - mBraveToolbarRoot = root.findViewById(R.id.bottom_toolbar_browsing); - mBraveNewTabButton = mBraveToolbarRoot.findViewById(R.id.bottom_new_tab_button); - mBookmarkButton = mBraveToolbarRoot.findViewById(R.id.bottom_bookmark_button); - if (BraveBottomToolbarVariationManager.isBraveVariation()) { - mBookmarkButton.setVisibility(View.VISIBLE); - getNewTabButtonParent().setVisibility(View.GONE); - OnClickListener bookmarkClickHandler = v -> { - TabImpl tab = (TabImpl) mBraveTabProvider.get(); - BraveActivity activity = BraveActivity.getBraveActivity(); - if (tab == null || activity == null) { - assert false; - return; - } - activity.addOrEditBookmark(tab); - }; - mBookmarkButton.setOnClickListener(bookmarkClickHandler); - } - mMenuButton = mBraveToolbarRoot.findViewById(R.id.menu_button_wrapper); - if (!BottomToolbarVariationManager.isMenuButtonOnBottom()) { - mMenuButton.setVisibility(View.GONE); - } - } - - @Override - public void initializeWithNative(OnClickListener newTabListener, - OnClickListener tabSwitcherListener, AppMenuButtonHelper menuButtonHelper, - TabCountProvider tabCountProvider, ThemeColorProvider themeColorProvider, - IncognitoStateProvider incognitoStateProvider) { - super.initializeWithNative(newTabListener, tabSwitcherListener, menuButtonHelper, - tabCountProvider, themeColorProvider, incognitoStateProvider); - mBookmarkButton.setThemeColorProvider(themeColorProvider); - - mMenuButton.setAppMenuButtonHelper(menuButtonHelper); - mMenuButton.setThemeColorProvider(themeColorProvider); - } - - public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) { - if (mBookmarkButton != null) { - mBookmarkButton.updateBookmarkButton(isBookmarked, editingAllowed); - } - } - - @Override - public void destroy() { - super.destroy(); - mBookmarkButton.destroy(); - mMenuButton.destroy(); - } - - View getNewTabButtonParent() { - return (View)mBraveNewTabButton.getParent(); - } - - BookmarksButton getBookmarkButton() { - return mBookmarkButton; - } -} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveSearchAccelerator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveSearchAccelerator.java deleted file mode 100644 index b097c05b5a88..000000000000 --- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveSearchAccelerator.java +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (c) 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.chromium.chrome.browser.toolbar.bottom; - -import android.content.Context; -import android.graphics.Color; -import android.util.AttributeSet; - -/** - * The Brave's search accelerator extension. - */ -class BraveSearchAccelerator extends SearchAccelerator { - public BraveSearchAccelerator(Context context, AttributeSet attrs) { - super(context, attrs); - setBackgroundColor(Color.TRANSPARENT); - } -} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java new file mode 100644 index 000000000000..dd5edd0ac03f --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java @@ -0,0 +1,310 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnLongClickListener; + +import org.chromium.base.Callback; +import org.chromium.base.CallbackController; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.ActivityTabProvider.HintlessActivityTabObserver; +import org.chromium.chrome.browser.app.BraveActivity; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.feature_engagement.TrackerFactory; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tab.TabImpl; +import org.chromium.chrome.browser.tab.TabUtils; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; +import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil; +import org.chromium.chrome.browser.toolbar.HomeButton; +import org.chromium.chrome.browser.toolbar.TabCountProvider; +import org.chromium.chrome.browser.toolbar.TabSwitcherButtonCoordinator; +import org.chromium.chrome.browser.toolbar.TabSwitcherButtonView; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.menu_button.MenuButton; +import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; +import org.chromium.components.feature_engagement.FeatureConstants; +import org.chromium.components.feature_engagement.Tracker; +import org.chromium.ui.modelutil.PropertyModelChangeProcessor; + +/** + * The coordinator for the browsing mode bottom toolbar. This class has two primary components, + * an Android view that handles user actions and a composited texture that draws when the controls + * are being scrolled off-screen. The Android version does not draw unless the controls offset is 0. + */ +public class BrowsingModeBottomToolbarCoordinator { + /** The mediator that handles events from outside the browsing mode bottom toolbar. */ + private final BrowsingModeBottomToolbarMediator mMediator; + + /** The home button that lives in the bottom toolbar. */ + private final HomeButton mHomeButton; + + /** The share button that lives in the bottom toolbar. */ + private final ShareButton mShareButton; + + /** The new tab button that lives in the bottom toolbar. */ + private final BottomToolbarNewTabButton mNewTabButton; + + /** The search accelerator that lives in the bottom toolbar. */ + private final SearchAccelerator mSearchAccelerator; + + /** The tab switcher button component that lives in the bottom toolbar. */ + private final TabSwitcherButtonCoordinator mTabSwitcherButtonCoordinator; + + /** The tab switcher button view that lives in the bottom toolbar. */ + private final TabSwitcherButtonView mTabSwitcherButtonView; + + /** The view group that includes all views shown on browsing mode */ + private final BrowsingModeBottomToolbarLinearLayout mToolbarRoot; + + /** The model for the browsing mode bottom toolbar that holds all of its state. */ + private final BrowsingModeBottomToolbarModel mModel; + + /** The callback to be exectured when the share button on click listener is available. */ + private Callback mShareButtonListenerSupplierCallback; + + /** The supplier for the share button on click listener. */ + private ObservableSupplier mShareButtonListenerSupplier; + + /** The activity tab provider that used for making the IPH. */ + private final ActivityTabProvider mTabProvider; + + private CallbackController mCallbackController = new CallbackController(); + private final BookmarksButton mBookmarkButton; + private final MenuButton mMenuButton; + private ThemeColorProvider mThemeColorProvider; + + /** + * Build the coordinator that manages the browsing mode bottom toolbar. + * @param root The root {@link View} for locating the views to inflate. + * @param tabProvider The {@link ActivityTabProvider} used for making the IPH. + * @param homeButtonListener The {@link OnClickListener} for the home button. + * @param searchAcceleratorListener The {@link OnClickListener} for the search accelerator. + * @param shareButtonListener The {@link OnClickListener} for the share button. + * @param overviewModeBehaviorSupplier Supplier for the overview mode manager. + */ + BrowsingModeBottomToolbarCoordinator(View root, ActivityTabProvider tabProvider, + OnClickListener homeButtonListener, OnClickListener searchAcceleratorListener, + ObservableSupplier shareButtonListenerSupplier, + OnLongClickListener tabSwitcherLongClickListener, + OneshotSupplier overviewModeBehaviorSupplier) { + mModel = new BrowsingModeBottomToolbarModel(); + mToolbarRoot = root.findViewById(R.id.bottom_toolbar_browsing); + mTabProvider = tabProvider; + + PropertyModelChangeProcessor.create( + mModel, mToolbarRoot, new BrowsingModeBottomToolbarViewBinder()); + + mMediator = new BrowsingModeBottomToolbarMediator(mModel); + + mHomeButton = mToolbarRoot.findViewById(R.id.bottom_home_button); + mHomeButton.setOnClickListener(homeButtonListener); + mHomeButton.setActivityTabProvider(mTabProvider); + + mNewTabButton = mToolbarRoot.findViewById(R.id.bottom_new_tab_button); + + mShareButton = mToolbarRoot.findViewById(R.id.bottom_share_button); + + mSearchAccelerator = mToolbarRoot.findViewById(R.id.search_accelerator); + mSearchAccelerator.setOnClickListener(searchAcceleratorListener); + + // TODO(amaralp): Make this adhere to MVC framework. + mTabSwitcherButtonView = mToolbarRoot.findViewById(R.id.bottom_tab_switcher_button); + mTabSwitcherButtonCoordinator = new TabSwitcherButtonCoordinator(mTabSwitcherButtonView); + + mTabSwitcherButtonView.setOnLongClickListener(tabSwitcherLongClickListener); + if (BottomToolbarVariationManager.isNewTabButtonOnBottom()) { + mNewTabButton.setVisibility(View.VISIBLE); + } + if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { + mHomeButton.setVisibility(View.VISIBLE); + } + + if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { + mTabSwitcherButtonView.setVisibility(View.VISIBLE); + } + if (BottomToolbarVariationManager.isShareButtonOnBottom()) { + mShareButton.setVisibility(View.VISIBLE); + mShareButtonListenerSupplierCallback = shareButtonListener -> { + mShareButton.setOnClickListener(shareButtonListener); + }; + mShareButtonListenerSupplier = shareButtonListenerSupplier; + mShareButton.setActivityTabProvider(mTabProvider); + mShareButtonListenerSupplier.addObserver(mShareButtonListenerSupplierCallback); + } + + overviewModeBehaviorSupplier.onAvailable( + mCallbackController.makeCancelable((overviewModeBehavior) -> { + setOverviewModeBehavior(overviewModeBehavior); + })); + + mBookmarkButton = mToolbarRoot.findViewById(R.id.bottom_bookmark_button); + if (BottomToolbarVariationManager.isBookmarkButtonOnBottom()) { + mBookmarkButton.setVisibility(View.VISIBLE); + getNewTabButtonParent().setVisibility(View.GONE); + OnClickListener bookmarkClickHandler = v -> { + TabImpl tab = (TabImpl) mTabProvider.get(); + BraveActivity activity = BraveActivity.getBraveActivity(); + if (tab == null || activity == null) { + assert false; + return; + } + activity.addOrEditBookmark(tab); + }; + mBookmarkButton.setOnClickListener(bookmarkClickHandler); + } + + mMenuButton = mToolbarRoot.findViewById(R.id.menu_button_wrapper); + if (!BottomToolbarVariationManager.isMenuButtonOnBottom()) { + mMenuButton.setVisibility(View.GONE); + } + } + + /** + * @param isVisible Whether the bottom toolbar is visible. + */ + void onVisibilityChanged(boolean isVisible) {} + + /** + * Initialize the bottom toolbar with the components that had native initialization + * dependencies. + *

+ * Calling this must occur after the native library have completely loaded. + * @param tabSwitcherListener An {@link OnClickListener} that is triggered when the + * tab switcher button is clicked. + * @param menuButtonHelper An {@link AppMenuButtonHelper} that is triggered when the + * menu button is clicked. + * @param tabCountProvider Updates the tab count number in the tab switcher button. + * @param themeColorProvider Notifies components when theme color changes. + * @param incognitoStateProvider Notifies components when incognito state changes. + */ + void initializeWithNative(OnClickListener newTabListener, OnClickListener tabSwitcherListener, + AppMenuButtonHelper menuButtonHelper, TabCountProvider tabCountProvider, + ThemeColorProvider themeColorProvider, IncognitoStateProvider incognitoStateProvider) { + mThemeColorProvider = themeColorProvider; + mMediator.setThemeColorProvider(themeColorProvider); + if (BottomToolbarVariationManager.isNewTabButtonOnBottom()) { + mNewTabButton.setOnClickListener(newTabListener); + mNewTabButton.setThemeColorProvider(themeColorProvider); + mNewTabButton.setIncognitoStateProvider(incognitoStateProvider); + } + if (BottomToolbarVariationManager.isHomeButtonOnBottom()) { + mHomeButton.setThemeColorProvider(themeColorProvider); + } + + if (BottomToolbarVariationManager.isShareButtonOnBottom()) { + mShareButton.setThemeColorProvider(themeColorProvider); + } + + mSearchAccelerator.setThemeColorProvider(themeColorProvider); + mSearchAccelerator.setIncognitoStateProvider(incognitoStateProvider); + + if (BottomToolbarVariationManager.isTabSwitcherOnBottom()) { + mTabSwitcherButtonCoordinator.setTabSwitcherListener(tabSwitcherListener); + mTabSwitcherButtonCoordinator.setThemeColorProvider(themeColorProvider); + mTabSwitcherButtonCoordinator.setTabCountProvider(tabCountProvider); + } + + mBookmarkButton.setThemeColorProvider(themeColorProvider); + + mMenuButton.setAppMenuButtonHelper(menuButtonHelper); + mThemeColorProvider.addTintObserver(mMenuButton); + } + + private void setOverviewModeBehavior(OverviewModeBehavior overviewModeBehavior) { + assert overviewModeBehavior != null; + + // If StartSurface is HomePage, BrowsingModeBottomToolbar is shown in browsing mode and in + // overview mode. We need to pass the OverviewModeBehavior to the buttons so they are + // disabled based on the overview state. + if (ReturnToChromeExperimentsUtil.shouldShowStartSurfaceAsTheHomePage()) { + mShareButton.setOverviewModeBehavior(overviewModeBehavior); + // mTabSwitcherButtonCoordinator.setOverviewModeBehavior(overviewModeBehavior); + mHomeButton.setOverviewModeBehavior(overviewModeBehavior); + } + } + + /** + * @param enabled Whether to disable click events on the bottom toolbar. Setting true can also + * prevent from all click events on toolbar and all children views on toolbar. + */ + void setTouchEnabled(boolean enabled) { + mToolbarRoot.setTouchEnabled(enabled); + } + + /** + * @param visible Whether to hide the tab switcher bottom toolbar + */ + void setVisible(boolean visible) { + mModel.set(BrowsingModeBottomToolbarModel.IS_VISIBLE, visible); + } + + /** + * @return The browsing mode bottom toolbar's share button. + */ + ShareButton getShareButton() { + return mShareButton; + } + + /** + * @return The browsing mode bottom toolbar's tab switcher button. + */ + TabSwitcherButtonView getTabSwitcherButtonView() { + return mTabSwitcherButtonView; + } + + /** + * @return The browsing mode bottom toolbar's search button. + */ + SearchAccelerator getSearchAccelerator() { + return mSearchAccelerator; + } + + /** + * @return The browsing mode bottom toolbar's home button. + */ + HomeButton getHomeButton() { + return mHomeButton; + } + + /** + * Clean up any state when the browsing mode bottom toolbar is destroyed. + */ + public void destroy() { + if (mShareButtonListenerSupplier != null) { + mShareButtonListenerSupplier.removeObserver(mShareButtonListenerSupplierCallback); + } + mMediator.destroy(); + mHomeButton.destroy(); + mShareButton.destroy(); + mSearchAccelerator.destroy(); + mTabSwitcherButtonCoordinator.destroy(); + mBookmarkButton.destroy(); + if (mThemeColorProvider != null) { + mThemeColorProvider.removeTintObserver(mMenuButton); + } + } + + public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) { + if (mBookmarkButton != null) { + mBookmarkButton.updateBookmarkButton(isBookmarked, editingAllowed); + } + } + + View getNewTabButtonParent() { + return (View)mNewTabButton.getParent(); + } + + BookmarksButton getBookmarkButton() { + return mBookmarkButton; + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarLinearLayout.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarLinearLayout.java new file mode 100644 index 000000000000..742d9637d8db --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarLinearLayout.java @@ -0,0 +1,53 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.widget.LinearLayout; + +import androidx.annotation.Nullable; + +/** + * A linear layout which can intercept touch events to prevent from invoking click listeners on + * children views. + */ +public class BrowsingModeBottomToolbarLinearLayout extends LinearLayout { + private boolean mTouchEnabled = true; + + public BrowsingModeBottomToolbarLinearLayout(Context context) { + super(context); + } + + public BrowsingModeBottomToolbarLinearLayout(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public BrowsingModeBottomToolbarLinearLayout( + Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + /** + * @param enabled True if all touch events will be intercepted. + */ + public void setTouchEnabled(boolean enabled) { + mTouchEnabled = enabled; + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (!mTouchEnabled) return true; + return super.onInterceptTouchEvent(ev); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (!mTouchEnabled) return true; + return super.onTouchEvent(event); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarMediator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarMediator.java new file mode 100644 index 000000000000..a605891ad0ee --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarMediator.java @@ -0,0 +1,92 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.app.Activity; +import android.graphics.Color; +import android.view.View; + +import androidx.annotation.ColorInt; +import androidx.annotation.StringRes; +import androidx.appcompat.app.AppCompatActivity; + +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.AppHooks; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver; +import org.chromium.components.browser_ui.widget.FeatureHighlightProvider; +import org.chromium.components.feature_engagement.FeatureConstants; +import org.chromium.components.feature_engagement.Tracker; + +/** + * This class is responsible for reacting to events from the outside world, interacting with other + * coordinators, running most of the business logic associated with the browsing mode bottom + * toolbar, and updating the model accordingly. + */ +class BrowsingModeBottomToolbarMediator implements ThemeColorObserver { + /** The transparency fraction of the IPH bubble. */ + private static final float DUET_IPH_BUBBLE_ALPHA_FRACTION = 0.9f; + + /** The transparency fraction of the IPH background. */ + private static final float DUET_IPH_BACKGROUND_ALPHA_FRACTION = 0.3f; + + /** The dismissable parameter name of the IPH. */ + static final String DUET_IPH_TAP_TO_DISMISS_PARAM_NAME = "duet_iph_tap_to_dismiss_enabled"; + + /** The model for the browsing mode bottom toolbar that holds all of its state. */ + private final BrowsingModeBottomToolbarModel mModel; + + /** The overview mode manager. */ + private OverviewModeBehavior mOverviewModeBehavior; + + /** A provider that notifies components when the theme color changes.*/ + private ThemeColorProvider mThemeColorProvider; + + private FeatureHighlightProvider mFeatureHighlightProvider; + + /** + * Build a new mediator that handles events from outside the bottom toolbar. + * @param model The {@link BrowsingModeBottomToolbarModel} that holds all the state for the + * browsing mode bottom toolbar. + */ + BrowsingModeBottomToolbarMediator(BrowsingModeBottomToolbarModel model) { + mModel = model; + mFeatureHighlightProvider = AppHooks.get().createFeatureHighlightProvider(); + } + + void setThemeColorProvider(ThemeColorProvider themeColorProvider) { + mThemeColorProvider = themeColorProvider; + mThemeColorProvider.addThemeColorObserver(this); + } + + /** + * Clean up anything that needs to be when the bottom toolbar is destroyed. + */ + void destroy() { + if (mThemeColorProvider != null) { + mThemeColorProvider.removeThemeColorObserver(this); + mThemeColorProvider = null; + } + } + + @Override + public void onThemeColorChanged(int primaryColor, boolean shouldAnimate) { + mModel.set(BrowsingModeBottomToolbarModel.PRIMARY_COLOR, primaryColor); + } + + /** + * Set the alpha for the color. + * @param baseColor The color which alpha will apply to. + * @param alpha The desired alpha for the color. The value should between 0 to 1. 0 means total + * transparency, 1 means total non-transparency. + */ + private @ColorInt int applyCustomAlphaToColor(@ColorInt int baseColor, float alpha) { + return (baseColor & 0x00FFFFFF) | ((int) (alpha * 255) << 24); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarModel.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarModel.java new file mode 100644 index 000000000000..b31a35b3214d --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarModel.java @@ -0,0 +1,26 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import org.chromium.ui.modelutil.PropertyModel; + +/** + * All of the state for the bottom toolbar, updated by the {@link + * BrowsingModeBottomToolbarCoordinator}. + */ +public class BrowsingModeBottomToolbarModel extends PropertyModel { + /** Primary color of bottom toolbar. */ + static final WritableIntPropertyKey PRIMARY_COLOR = new WritableIntPropertyKey(); + + /** Whether the browsing mode bottom toolbar is visible */ + static final WritableBooleanPropertyKey IS_VISIBLE = new WritableBooleanPropertyKey(); + + /** Default constructor. */ + BrowsingModeBottomToolbarModel() { + super(IS_VISIBLE, PRIMARY_COLOR); + set(IS_VISIBLE, true); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarViewBinder.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarViewBinder.java new file mode 100644 index 000000000000..933ad78e1822 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarViewBinder.java @@ -0,0 +1,39 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.view.View; + +import org.chromium.ui.modelutil.PropertyKey; +import org.chromium.ui.modelutil.PropertyModelChangeProcessor; + +/** + * This class is responsible for pushing updates to both the Android view and the compositor + * component of the browsing mode bottom toolbar. These updates are pulled from the + * {@link BrowsingModeBottomToolbarModel} when a notification of an update is received. + */ +public class BrowsingModeBottomToolbarViewBinder + implements PropertyModelChangeProcessor + .ViewBinder { + /** + * Build a binder that handles interaction between the model and the views that make up the + * browsing mode bottom toolbar. + */ + BrowsingModeBottomToolbarViewBinder() {} + + @Override + public final void bind( + BrowsingModeBottomToolbarModel model, View view, PropertyKey propertyKey) { + if (BrowsingModeBottomToolbarModel.PRIMARY_COLOR == propertyKey) { + view.setBackgroundColor(model.get(BrowsingModeBottomToolbarModel.PRIMARY_COLOR)); + } else if (BrowsingModeBottomToolbarModel.IS_VISIBLE == propertyKey) { + view.setVisibility(model.get(BrowsingModeBottomToolbarModel.IS_VISIBLE) ? View.VISIBLE + : View.GONE); + } else { + assert false : "Unhandled property detected in BrowsingModeBottomToolbarViewBinder!"; + } + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java new file mode 100644 index 000000000000..c30e53e7d079 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java @@ -0,0 +1,104 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.graphics.drawable.Drawable; +import android.util.AttributeSet; + +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider.IncognitoStateObserver; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.TintObserver; +import org.chromium.chrome.browser.toolbar.ToolbarColors; +import org.chromium.ui.widget.ChromeImageButton; + +/** + * The search accelerator. + */ +class SearchAccelerator extends ChromeImageButton + implements ThemeColorObserver, TintObserver, IncognitoStateObserver { + /** The gray pill background behind the search icon. */ + private final Drawable mBackground; + + /** The {@link Resources} used to compute the background color. */ + private final Resources mResources; + + /** A provider that notifies components when the theme color changes.*/ + private ThemeColorProvider mThemeColorProvider; + + /** A provider that notifies when incognito mode is entered or exited. */ + private IncognitoStateProvider mIncognitoStateProvider; + + public SearchAccelerator(Context context, AttributeSet attrs) { + super(context, attrs); + + mResources = context.getResources(); + + mBackground = ApiCompatibilityUtils.getDrawable(mResources, R.drawable.ntp_search_box); + mBackground.mutate(); + setBackground(mBackground); + + setBackgroundColor(Color.TRANSPARENT); + } + + void setThemeColorProvider(ThemeColorProvider themeColorProvider) { + mThemeColorProvider = themeColorProvider; + mThemeColorProvider.addThemeColorObserver(this); + mThemeColorProvider.addTintObserver(this); + } + + void setIncognitoStateProvider(IncognitoStateProvider provider) { + mIncognitoStateProvider = provider; + mIncognitoStateProvider.addIncognitoStateObserverAndTrigger(this); + } + + void destroy() { + if (mThemeColorProvider != null) { + mThemeColorProvider.removeThemeColorObserver(this); + mThemeColorProvider.removeTintObserver(this); + mThemeColorProvider = null; + } + + if (mIncognitoStateProvider != null) { + mIncognitoStateProvider.removeObserver(this); + mIncognitoStateProvider = null; + } + } + + @Override + public void onThemeColorChanged(int color, boolean shouldAnimate) { + updateBackground(); + } + + @Override + public void onTintChanged(ColorStateList tint, boolean useLight) { + ApiCompatibilityUtils.setImageTintList(this, tint); + updateBackground(); + } + + @Override + public void onIncognitoStateChanged(boolean isIncognito) { + updateBackground(); + } + + private void updateBackground() { + if (mThemeColorProvider == null || mIncognitoStateProvider == null) return; + + mBackground.setColorFilter(ToolbarColors.getTextBoxColorForToolbarBackgroundInNonNativePage( + mResources, mThemeColorProvider.getThemeColor(), + mIncognitoStateProvider.isIncognitoSelected() + && mThemeColorProvider.useLight()), + PorterDuff.Mode.SRC_IN); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/ShareButton.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/ShareButton.java new file mode 100644 index 000000000000..be2a2ce70f5a --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/ShareButton.java @@ -0,0 +1,105 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.util.AttributeSet; + +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver; +import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.share.ShareUtils; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.TintObserver; +import org.chromium.ui.widget.ChromeImageButton; + +/** + * The share button. + */ +class ShareButton extends ChromeImageButton implements TintObserver { + /** A provider that notifies components when the theme color changes.*/ + private ThemeColorProvider mThemeColorProvider; + + /** The {@link ActivityTabTabObserver} used to know when the active page changed. */ + private ActivityTabTabObserver mActivityTabTabObserver; + + /** The {@link OverviewModeBehavior} used to observe overview state changes. */ + private OverviewModeBehavior mOverviewModeBehavior; + + /** The {@link OvervieModeObserver} observing the OverviewModeBehavior */ + private OverviewModeBehavior.OverviewModeObserver mOverviewModeObserver; + + /** A collection of sharing utility functions.*/ + private ShareUtils mShareUtils; + + public ShareButton(Context context, AttributeSet attrs) { + super(context, attrs); + + mOverviewModeObserver = new EmptyOverviewModeObserver() { + @Override + public void onOverviewModeStartedShowing(boolean showTabSwitcherToolbar) { + setEnabled(false); + } + }; + + mShareUtils = new ShareUtils(); + } + + void setThemeColorProvider(ThemeColorProvider themeColorProvider) { + mThemeColorProvider = themeColorProvider; + mThemeColorProvider.addTintObserver(this); + } + + void setActivityTabProvider(ActivityTabProvider activityTabProvider) { + mActivityTabTabObserver = new ActivityTabTabObserver(activityTabProvider) { + @Override + public void onObservingDifferentTab(Tab tab, boolean hint) { + updateButtonEnabledState(tab); + } + + @Override + public void onUpdateUrl(Tab tab, String url) { + updateButtonEnabledState(tab); + } + }; + } + + public void setOverviewModeBehavior(OverviewModeBehavior overviewModeBehavior) { + assert overviewModeBehavior != null; + mOverviewModeBehavior = overviewModeBehavior; + mOverviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver); + } + + void destroy() { + if (mThemeColorProvider != null) { + mThemeColorProvider.removeTintObserver(this); + mThemeColorProvider = null; + } + if (mActivityTabTabObserver != null) { + mActivityTabTabObserver.destroy(); + mActivityTabTabObserver = null; + } + + if (mOverviewModeBehavior != null) { + mOverviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver); + mOverviewModeObserver = null; + } + } + + public void updateButtonEnabledState(Tab tab) { + final boolean isEnabled = mShareUtils.shouldEnableShare(tab); + setEnabled(isEnabled); + } + + @Override + public void onTintChanged(ColorStateList tint, boolean useLight) { + ApiCompatibilityUtils.setImageTintList(this, tint); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarCoordinator.java new file mode 100644 index 000000000000..65eab0a6fb4a --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarCoordinator.java @@ -0,0 +1,110 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.graphics.drawable.Drawable; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.view.ViewStub; + +import org.chromium.base.ApiCompatibilityUtils; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; +import org.chromium.chrome.browser.toolbar.TabCountProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.menu_button.MenuButton; +import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; +import org.chromium.ui.modelutil.PropertyModelChangeProcessor; + +/** + * The coordinator for the tab switcher mode bottom toolbar. This class handles all interactions + * that the tab switcher bottom toolbar has with the outside world. + * TODO(crbug.com/1036474): This coordinator is not used currently and can be removed if the final + * duet design doesn't need a stand-alone toolbar in tab switcher mode. + */ +public class TabSwitcherBottomToolbarCoordinator { + /** The mediator that handles events from outside the tab switcher bottom toolbar. */ + private final TabSwitcherBottomToolbarMediator mMediator; + + /** The new tab button that lives in the tab switcher bottom toolbar. */ + private final BottomToolbarNewTabButton mNewTabButton; + + /** The menu button that lives in the tab switcher bottom toolbar. */ + private final MenuButton mMenuButton; + + /** The model for the tab switcher bottom toolbar that holds all of its state. */ + private final TabSwitcherBottomToolbarModel mModel; + + /** + * Build the coordinator that manages the tab switcher bottom toolbar. + * @param stub The tab switcher bottom toolbar {@link ViewStub} to inflate. + * @param topToolbarRoot The root {@link ViewGroup} of the top toolbar. + * @param incognitoStateProvider Notifies components when incognito mode is entered or exited. + * @param themeColorProvider Notifies components when the theme color changes. + * @param newTabClickListener An {@link OnClickListener} that is triggered when the + * new tab button is clicked. + * @param closeTabsClickListener An {@link OnClickListener} that is triggered when the + * close all tabs button is clicked. + * @param menuButtonHelper An {@link AppMenuButtonHelper} that is triggered when the + * menu button is clicked. + * @param tabCountProvider Updates the tab count number in the tab switcher button and in the + * incognito toggle tab layout. + */ + TabSwitcherBottomToolbarCoordinator(ViewStub stub, ViewGroup topToolbarRoot, + IncognitoStateProvider incognitoStateProvider, ThemeColorProvider themeColorProvider, + OnClickListener newTabClickListener, OnClickListener closeTabsClickListener, + AppMenuButtonHelper menuButtonHelper, TabCountProvider tabCountProvider) { + final ViewGroup root = (ViewGroup) stub.inflate(); + + View toolbar = root.findViewById(R.id.bottom_toolbar_buttons); + ViewGroup.LayoutParams params = toolbar.getLayoutParams(); + params.height = root.getResources().getDimensionPixelOffset(R.dimen.bottom_controls_height); + + mModel = new TabSwitcherBottomToolbarModel(); + + PropertyModelChangeProcessor.create(mModel, root, + new TabSwitcherBottomToolbarViewBinder( + topToolbarRoot, (ViewGroup) root.getParent())); + + mMediator = new TabSwitcherBottomToolbarMediator(mModel, themeColorProvider); + + mNewTabButton = root.findViewById(R.id.tab_switcher_new_tab_button); + Drawable background = + ApiCompatibilityUtils.getDrawable(root.getResources(), R.drawable.ntp_search_box); + background.mutate(); + mNewTabButton.setBackground(background); + mNewTabButton.setOnClickListener(newTabClickListener); + mNewTabButton.setIncognitoStateProvider(incognitoStateProvider); + mNewTabButton.setThemeColorProvider(themeColorProvider); + + assert menuButtonHelper != null; + mMenuButton = root.findViewById(R.id.menu_button_wrapper); + mMenuButton.setAppMenuButtonHelper(menuButtonHelper); + } + + /** + * @param showOnTop Whether to show the tab switcher bottom toolbar on the top of the screen. + */ + void showToolbarOnTop(boolean showOnTop) { + mMediator.showToolbarOnTop(showOnTop); + } + + /** + * @param visible Whether to hide the tab switcher bottom toolbar + */ + void setVisible(boolean visible) { + mModel.set(TabSwitcherBottomToolbarModel.IS_VISIBLE, visible); + } + + /** + * Clean up any state when the bottom toolbar is destroyed. + */ + public void destroy() { + mMediator.destroy(); + mNewTabButton.destroy(); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarMediator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarMediator.java new file mode 100644 index 000000000000..580934843f10 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarMediator.java @@ -0,0 +1,61 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver; + +/** + * This class is responsible for reacting to events from the outside world, interacting with other + * coordinators, running most of the business logic associated with the tab switcher bottom toolbar, + * and updating the model accordingly. + */ +class TabSwitcherBottomToolbarMediator implements ThemeColorObserver { + /** The model for the tab switcher bottom toolbar that holds all of its state. */ + private final TabSwitcherBottomToolbarModel mModel; + + /** A provider that notifies components when the theme color changes.*/ + private final ThemeColorProvider mThemeColorProvider; + + /** + * Build a new mediator that handles events from outside the tab switcher bottom toolbar. + * @param model The {@link TabSwitcherBottomToolbarModel} that holds all the state for the + * tab switcher bottom toolbar. + * @param themeColorProvider Notifies components when the theme color changes. + */ + TabSwitcherBottomToolbarMediator( + TabSwitcherBottomToolbarModel model, ThemeColorProvider themeColorProvider) { + mModel = model; + + mThemeColorProvider = themeColorProvider; + mThemeColorProvider.addThemeColorObserver(this); + } + + /** + * @param showOnTop Whether to show the tab switcher bottom toolbar on the top of the screen. + */ + void showToolbarOnTop(boolean showOnTop) { + // TODO(crbug.com/1012014): Resolve how to manage the toolbar position in tab switcher in + // landscape mode. Probably remove code about showing bottom toolbar on top. + // When GridTabSwitcher is enabled, show the original top toolbar instead of showing the + // bottom toolbar on top. + mModel.set(TabSwitcherBottomToolbarModel.SHOW_ON_TOP, + showOnTop && !TabUiFeatureUtilities.isGridTabSwitcherEnabled()); + } + + /** + * Clean up anything that needs to be when the tab switcher bottom toolbar is destroyed. + */ + void destroy() { + mThemeColorProvider.removeThemeColorObserver(this); + } + + @Override + public void onThemeColorChanged(int primaryColor, boolean shouldAnimate) { + mModel.set(TabSwitcherBottomToolbarModel.PRIMARY_COLOR, primaryColor); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarModel.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarModel.java new file mode 100644 index 000000000000..f6b1658d9ac6 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarModel.java @@ -0,0 +1,28 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import org.chromium.ui.modelutil.PropertyModel; + +/** + * All of the state for the tab switcher bottom toolbar, updated by the + * {@link TabSwitcherBottomToolbarCoordinator}. + */ +public class TabSwitcherBottomToolbarModel extends PropertyModel { + /** Primary color of tab switcher bottom toolbar. */ + public static final WritableIntPropertyKey PRIMARY_COLOR = new WritableIntPropertyKey(); + + /** Whether the tab switcher bottom toolbar is visible */ + public static final WritableBooleanPropertyKey IS_VISIBLE = new WritableBooleanPropertyKey(); + + /** Whether the tab switcher bottom toolbar shows on top of the screen. */ + public static final WritableBooleanPropertyKey SHOW_ON_TOP = new WritableBooleanPropertyKey(); + + /** Default constructor. */ + public TabSwitcherBottomToolbarModel() { + super(PRIMARY_COLOR, IS_VISIBLE, SHOW_ON_TOP); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarViewBinder.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarViewBinder.java new file mode 100644 index 000000000000..b306cd2b3901 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarViewBinder.java @@ -0,0 +1,64 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.bottom; + +import android.view.View; +import android.view.ViewGroup; + +import org.chromium.chrome.R; +import org.chromium.ui.UiUtils; +import org.chromium.ui.modelutil.PropertyKey; +import org.chromium.ui.modelutil.PropertyModelChangeProcessor; + +/** + * This class is responsible for pushing updates the view of the tab switcher bottom toolbar. These + * updates are pulled from the {@link TabSwitcherBottomToolbarModel} when a notification of an + * update is received. + */ +public class TabSwitcherBottomToolbarViewBinder + implements PropertyModelChangeProcessor + .ViewBinder { + private final ViewGroup mTopRoot; + private final ViewGroup mBottomRoot; + + /** + * Build a binder that handles interaction between the model and the tab switcher bottom toolbar + * view. + */ + TabSwitcherBottomToolbarViewBinder(ViewGroup topRoot, ViewGroup bottomRoot) { + mTopRoot = topRoot; + mBottomRoot = bottomRoot; + } + + @Override + public final void bind( + TabSwitcherBottomToolbarModel model, View view, PropertyKey propertyKey) { + if (TabSwitcherBottomToolbarModel.IS_VISIBLE == propertyKey) { + view.setVisibility( + model.get(TabSwitcherBottomToolbarModel.IS_VISIBLE) ? View.VISIBLE : View.GONE); + } else if (TabSwitcherBottomToolbarModel.PRIMARY_COLOR == propertyKey) { + view.findViewById(R.id.bottom_toolbar_buttons) + .setBackgroundColor(model.get(TabSwitcherBottomToolbarModel.PRIMARY_COLOR)); + } else if (TabSwitcherBottomToolbarModel.SHOW_ON_TOP == propertyKey) { + final boolean showOnTop = model.get(TabSwitcherBottomToolbarModel.SHOW_ON_TOP); + view.findViewById(R.id.bottom_toolbar_bottom_shadow) + .setVisibility(showOnTop ? View.VISIBLE : View.GONE); + // When shown on the bottom, the layout should match_parent so that it fills its + // parent container. When the layout is shown on the top, it should wrap_content + // so that the toolbar shadow is visible. + view.getLayoutParams().height = showOnTop ? ViewGroup.LayoutParams.WRAP_CONTENT + : ViewGroup.LayoutParams.MATCH_PARENT; + reparentView(view, showOnTop ? mTopRoot : mBottomRoot); + } else { + assert false : "Unhandled property detected in TabSwitcherBottomToolbarViewBinder!"; + } + } + + private static void reparentView(View v, ViewGroup newParent) { + UiUtils.removeViewFromParent(v); + newParent.addView(v); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java new file mode 100644 index 000000000000..301b7de42a73 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java @@ -0,0 +1,54 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.menu_button; + +import android.app.Activity; +import android.content.SharedPreferences; + +import androidx.annotation.IdRes; + +import org.chromium.base.ContextUtils; +import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.browser_controls.BrowserStateBrowserControlsVisibilityDelegate; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator; + +public class BraveMenuButtonCoordinator extends MenuButtonCoordinator { + private static final String BRAVE_IS_MENU_FROM_BOTTOM = "brave_is_menu_from_bottom"; + + public BraveMenuButtonCoordinator( + OneshotSupplier appMenuCoordinatorSupplier, + BrowserStateBrowserControlsVisibilityDelegate controlsVisibilityDelegate, + Activity activity, SetFocusFunction setUrlBarFocusFunction, + Runnable requestRenderRunnable, boolean shouldShowAppUpdateBadge, + Supplier isInOverviewModeSupplier, ThemeColorProvider themeColorProvider, + @IdRes int menuButtonId) { + super(appMenuCoordinatorSupplier, controlsVisibilityDelegate, activity, + setUrlBarFocusFunction, requestRenderRunnable, shouldShowAppUpdateBadge, + isInOverviewModeSupplier, themeColorProvider, menuButtonId); + } + + @Override + public MenuButton getMenuButton() { + return isMenuFromBottom() ? null : super.getMenuButton(); + } + + @Override + public void setVisibility(boolean visible) { + super.setVisibility(isMenuFromBottom() ? false : visible); + } + + public static void setMenuFromBottom(boolean isMenuFromBottom) { + SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); + prefs.edit().putBoolean(BRAVE_IS_MENU_FROM_BOTTOM, isMenuFromBottom).apply(); + } + + public static boolean isMenuFromBottom() { + SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); + return sharedPreferences.getBoolean(BRAVE_IS_MENU_FROM_BOTTOM, false); + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTCoordinatorPhone.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTCoordinatorPhone.java new file mode 100644 index 000000000000..0bc93b3b443b --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTCoordinatorPhone.java @@ -0,0 +1,46 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.top; + +import android.view.ViewStub; + +import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; + +class BraveTabSwitcherModeTTCoordinatorPhone extends TabSwitcherModeTTCoordinatorPhone { + private TabSwitcherModeTTPhone mTabSwitcherModeToolbar; + + private boolean mIsBottomToolbarVisible; + private MenuButtonCoordinator mBraveMenuButtonCoordinator; + + BraveTabSwitcherModeTTCoordinatorPhone( + ViewStub tabSwitcherToolbarStub, MenuButtonCoordinator menuButtonCoordinator) { + super(tabSwitcherToolbarStub, menuButtonCoordinator); + mBraveMenuButtonCoordinator = menuButtonCoordinator; + } + + @Override + public void setTabSwitcherMode(boolean inTabSwitcherMode) { + super.setTabSwitcherMode(inTabSwitcherMode); + if (inTabSwitcherMode && (mTabSwitcherModeToolbar instanceof BraveTabSwitcherModeTTPhone)) { + ((BraveTabSwitcherModeTTPhone) mTabSwitcherModeToolbar) + .onBottomToolbarVisibilityChanged(mIsBottomToolbarVisible); + } + if (mBraveMenuButtonCoordinator != null && mIsBottomToolbarVisible) { + mBraveMenuButtonCoordinator.setVisibility(!inTabSwitcherMode); + } + } + + void onBottomToolbarVisibilityChanged(boolean isVisible) { + if (mIsBottomToolbarVisible == isVisible) { + return; + } + mIsBottomToolbarVisible = isVisible; + if (mTabSwitcherModeToolbar instanceof BraveTabSwitcherModeTTPhone) { + ((BraveTabSwitcherModeTTPhone) mTabSwitcherModeToolbar) + .onBottomToolbarVisibilityChanged(isVisible); + } + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTPhone.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTPhone.java new file mode 100644 index 000000000000..979354e5cd88 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTPhone.java @@ -0,0 +1,56 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.top; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; + +import org.chromium.chrome.R; +import org.chromium.chrome.browser.toolbar.NewTabButton; +import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; +import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager; +import org.chromium.chrome.browser.toolbar.menu_button.MenuButton; + +public class BraveTabSwitcherModeTTPhone extends TabSwitcherModeTTPhone { + private View mNewTabViewButton; + private NewTabButton mNewTabImageButton; + private ToggleTabStackButton mToggleTabStackButton; + private boolean mShouldShowNewTabVariation; + + private boolean mShouldShowNewTabButton; + + public BraveTabSwitcherModeTTPhone(Context context, AttributeSet attrs) { + super(context, attrs); + } + + protected void updateNewTabButtonVisibility() { + if (mNewTabViewButton != null) { + mNewTabViewButton.setVisibility( + mShouldShowNewTabVariation && mShouldShowNewTabButton ? VISIBLE : GONE); + } + if (mNewTabImageButton != null) { + mNewTabImageButton.setVisibility( + !mShouldShowNewTabVariation && mShouldShowNewTabButton ? VISIBLE : GONE); + } + } + + protected boolean shouldShowIncognitoToggle() { + assert (false); + return false; + } + + void onBottomToolbarVisibilityChanged(boolean isVisible) { + mShouldShowNewTabButton = !isVisible + || (BottomToolbarConfiguration.isBottomToolbarEnabled() + && !BottomToolbarVariationManager.isNewTabButtonOnBottom()); + updateNewTabButtonVisibility(); + // Show tab switcher button on the top in landscape mode. + if (BottomToolbarVariationManager.isTabSwitcherOnBottom() && !shouldShowIncognitoToggle()) { + mToggleTabStackButton.setVisibility(isVisible ? GONE : VISIBLE); + } + } +} diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java index 278dbf78fbb9..c06ca2144fdb 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java @@ -14,25 +14,26 @@ import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.util.AttributeSet; +import android.util.Pair; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageButton; -import android.widget.TextView; import android.widget.ImageView; import android.widget.PopupWindow; -import android.util.Pair; +import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.ContextUtils; +import org.chromium.base.Log; import org.chromium.base.MathUtils; -import org.chromium.base.task.AsyncTask; import org.chromium.base.ThreadUtils; -import org.chromium.base.Log; +import org.chromium.base.task.AsyncTask; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveAdsNativeHelper; import org.chromium.chrome.browser.BraveFeatureList; import org.chromium.chrome.browser.BraveRelaunchUtils; import org.chromium.chrome.browser.BraveRewardsNativeWorker; @@ -40,17 +41,24 @@ import org.chromium.chrome.browser.BraveRewardsPanelPopup; import org.chromium.chrome.browser.app.BraveActivity; import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.brave_stats.BraveStatsUtil; import org.chromium.chrome.browser.dialogs.BraveAdsSignupDialog; import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.local_database.BraveStatsTable; +import org.chromium.chrome.browser.local_database.DatabaseHelper; +import org.chromium.chrome.browser.local_database.SavedBandwidthTable; +import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil; +import org.chromium.chrome.browser.ntp.BraveNewTabPageLayout; import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.onboarding.OnboardingPrefManager; +import org.chromium.chrome.browser.onboarding.SearchActivity; import org.chromium.chrome.browser.preferences.BravePref; import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; -import org.chromium.components.user_prefs.UserPrefs; import org.chromium.chrome.browser.preferences.website.BraveShieldsContentSettings; import org.chromium.chrome.browser.preferences.website.BraveShieldsContentSettingsObserver; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.AppearancePreferences; +import org.chromium.chrome.browser.settings.BraveSearchEngineUtils; import org.chromium.chrome.browser.shields.BraveShieldsHandler; import org.chromium.chrome.browser.shields.BraveShieldsMenuObserver; import org.chromium.chrome.browser.tab.Tab; @@ -61,29 +69,26 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; import org.chromium.chrome.browser.toolbar.HomeButton; import org.chromium.chrome.browser.toolbar.ToolbarColors; +import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; +import org.chromium.chrome.browser.toolbar.ToolbarTabController; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager; +import org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator; +import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.util.PackageUtils; import org.chromium.components.browser_ui.styles.ChromeColors; -import org.chromium.content_public.browser.NavigationHandle; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.url_formatter.UrlFormatter; +import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.content_public.browser.NavigationHandle; import org.chromium.ui.UiUtils; import org.chromium.ui.interpolators.BakedBezierInterpolator; import org.chromium.ui.widget.Toast; -import org.chromium.chrome.browser.onboarding.SearchActivity; -import org.chromium.chrome.browser.BraveAdsNativeHelper; -import org.chromium.chrome.browser.local_database.DatabaseHelper; -import org.chromium.chrome.browser.local_database.BraveStatsTable; -import org.chromium.chrome.browser.local_database.SavedBandwidthTable; -import org.chromium.chrome.browser.brave_stats.BraveStatsUtil; -import org.chromium.chrome.browser.settings.BraveSearchEngineUtils; -import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil; import java.net.URL; -import java.util.List; import java.util.Calendar; import java.util.Date; +import java.util.List; public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClickListener, View.OnLongClickListener, @@ -119,6 +124,8 @@ public abstract class BraveToolbarLayout extends ToolbarLayout implements OnClic private PopupWindow mShieldsTooltipPopupWindow; + private boolean mIsBottomToolbarVisible; + public BraveToolbarLayout(Context context, AttributeSet attrs) { super(context, attrs); } @@ -236,14 +243,14 @@ public void savedBandwidth(long savings) { // shown and loading state is changed. updateBraveShieldsButtonState(null); if (this instanceof ToolbarPhone) { - if (super.getMenuButtonWrapper() != null && BottomToolbarVariationManager.isMenuButtonOnBottom()) { - super.getMenuButtonWrapper().setVisibility(View.GONE); - } + if (super.getMenuButtonCoordinator() != null && isMenuButtonOnBottom()) { + super.getMenuButtonCoordinator().setVisibility(false); + } } } @Override - void onNativeLibraryReady() { + protected void onNativeLibraryReady() { super.onNativeLibraryReady(); mBraveShieldsContentSettings = BraveShieldsContentSettings.getInstance(); mBraveShieldsContentSettings.addObserver(mBraveShieldsContentSettingsObserver); @@ -769,11 +776,15 @@ private void updateVerifiedPublisherMark() { } } - @Override public void onBottomToolbarVisibilityChanged(boolean isVisible) { - if (this instanceof ToolbarPhone && super.getMenuButtonWrapper() != null) { - super.getMenuButtonWrapper().setVisibility(isVisible ? View.GONE : View.VISIBLE); - } + mIsBottomToolbarVisible = isVisible; + if (this instanceof ToolbarPhone && super.getMenuButtonCoordinator() != null) { + super.getMenuButtonCoordinator().setVisibility(!isVisible); + ToggleTabStackButton toggleTabStackButton = findViewById(R.id.tab_switcher_button); + if (toggleTabStackButton != null) { + toggleTabStackButton.setVisibility(isTabSwitcherOnBottom() ? GONE : VISIBLE); + } + } } private void updateShieldsLayoutBackground(boolean rounded) { @@ -790,11 +801,18 @@ private void updateShieldsLayoutBackground(boolean rounded) { updateModernLocationBarColor(mCurrentToolbarColor); } - @Override - View getMenuButtonWrapper() { - if (this instanceof ToolbarPhone && BottomToolbarVariationManager.isMenuButtonOnBottom()) { - return null; - } - return super.getMenuButtonWrapper(); + private boolean isTabSwitcherOnBottom() { + return mIsBottomToolbarVisible && BottomToolbarVariationManager.isTabSwitcherOnBottom(); + } + + private boolean isMenuButtonOnBottom() { + return mIsBottomToolbarVisible && BottomToolbarVariationManager.isMenuButtonOnBottom(); } + + @Override + protected void initialize(ToolbarDataProvider toolbarDataProvider, + ToolbarTabController tabController, MenuButtonCoordinator menuButtonCoordinator) { + super.initialize(toolbarDataProvider, tabController, menuButtonCoordinator); + BraveMenuButtonCoordinator.setMenuFromBottom(isMenuButtonOnBottom()); + } } diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java new file mode 100644 index 000000000000..a6d60478dcb3 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java @@ -0,0 +1,78 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.toolbar.top; + +import android.content.Context; + +import org.chromium.base.Callback; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; +import org.chromium.chrome.browser.identity_disc.IdentityDiscController; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.toolbar.ButtonData; +import org.chromium.chrome.browser.toolbar.ButtonDataProvider; +import org.chromium.chrome.browser.toolbar.ThemeColorProvider; +import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; +import org.chromium.chrome.browser.toolbar.ToolbarTabController; +import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; +import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; +import org.chromium.chrome.browser.user_education.UserEducationHelper; +import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; + +import java.util.List; + +public class BraveTopToolbarCoordinator extends TopToolbarCoordinator { + private TabSwitcherModeTTCoordinatorPhone mTabSwitcherModeCoordinatorPhone; + private OptionalBrowsingModeButtonController mOptionalButtonController; + private ToolbarLayout mBraveToolbarLayout; + + public BraveTopToolbarCoordinator(ToolbarControlContainer controlContainer, + ToolbarLayout toolbarLayout, ToolbarDataProvider toolbarDataProvider, + ToolbarTabController tabController, UserEducationHelper userEducationHelper, + List buttonDataProviders, + OneshotSupplier overviewModeBehaviorSupplier, + ThemeColorProvider normalThemeColorProvider, + ThemeColorProvider overviewThemeColorProvider, + MenuButtonCoordinator browsingModeMenuButtonCoordinator, + MenuButtonCoordinator overviewModeMenuButtonCoordinator, + ObservableSupplier appMenuButtonHelperSupplier, + ObservableSupplier tabModelSelectorSupplier, + ObservableSupplier homeButtonVisibilitySupplier, + ObservableSupplier identityDiscStateSupplier, + Callback invalidatorCallback, + Supplier identityDiscButtonSupplier) { + super(controlContainer, toolbarLayout, toolbarDataProvider, tabController, + userEducationHelper, buttonDataProviders, overviewModeBehaviorSupplier, + normalThemeColorProvider, overviewThemeColorProvider, + browsingModeMenuButtonCoordinator, overviewModeMenuButtonCoordinator, + appMenuButtonHelperSupplier, tabModelSelectorSupplier, homeButtonVisibilitySupplier, + identityDiscStateSupplier, invalidatorCallback, identityDiscButtonSupplier); + + mBraveToolbarLayout = toolbarLayout; + + if (toolbarLayout instanceof ToolbarPhone) { + if (!StartSurfaceConfiguration.isStartSurfaceEnabled()) { + mTabSwitcherModeCoordinatorPhone = new BraveTabSwitcherModeTTCoordinatorPhone( + controlContainer.getRootView().findViewById(R.id.tab_switcher_toolbar_stub), + overviewModeMenuButtonCoordinator); + } + } + } + + public void onBottomToolbarVisibilityChanged(boolean isVisible) { + if (mBraveToolbarLayout instanceof BraveToolbarLayout) { + ((BraveToolbarLayout) mBraveToolbarLayout).onBottomToolbarVisibilityChanged(isVisible); + } + if (mTabSwitcherModeCoordinatorPhone instanceof BraveTabSwitcherModeTTCoordinatorPhone) { + ((BraveTabSwitcherModeTTCoordinatorPhone) mTabSwitcherModeCoordinatorPhone) + .onBottomToolbarVisibilityChanged(isVisible); + } + mOptionalButtonController.updateButtonVisibility(); + } +} diff --git a/android/java/res/layout/bottom_control_container.xml b/android/java/res/layout/bottom_control_container.xml new file mode 100644 index 000000000000..299df52de67e --- /dev/null +++ b/android/java/res/layout/bottom_control_container.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + diff --git a/android/java/res/layout/bottom_toolbar.xml b/android/java/res/layout/bottom_toolbar.xml new file mode 100644 index 000000000000..df816b89e626 --- /dev/null +++ b/android/java/res/layout/bottom_toolbar.xml @@ -0,0 +1,20 @@ + + + + + + + + + + diff --git a/android/java/res/layout/bottom_toolbar_browsing.xml b/android/java/res/layout/bottom_toolbar_browsing.xml new file mode 100644 index 000000000000..65e17d4ad4ff --- /dev/null +++ b/android/java/res/layout/bottom_toolbar_browsing.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/java/res/layout/bottom_toolbar_menu_button.xml b/android/java/res/layout/bottom_toolbar_menu_button.xml new file mode 100644 index 000000000000..a4badfa23581 --- /dev/null +++ b/android/java/res/layout/bottom_toolbar_menu_button.xml @@ -0,0 +1,36 @@ + + + + + + + + + + diff --git a/android/java/res/layout/bottom_toolbar_tab_switcher.xml b/android/java/res/layout/bottom_toolbar_tab_switcher.xml new file mode 100644 index 000000000000..63c4994f160d --- /dev/null +++ b/android/java/res/layout/bottom_toolbar_tab_switcher.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/java/res/layout/icon_row_menu_footer.xml b/android/java/res/layout/icon_row_menu_footer.xml new file mode 100644 index 000000000000..2382b933ff0e --- /dev/null +++ b/android/java/res/layout/icon_row_menu_footer.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/android/java/res/layout/new_tab_page_layout.xml b/android/java/res/layout/new_tab_page_layout.xml index a8d7bbb69001..914c11e8e40d 100644 --- a/android/java/res/layout/new_tab_page_layout.xml +++ b/android/java/res/layout/new_tab_page_layout.xml @@ -91,14 +91,6 @@ - - - @@ -110,6 +102,15 @@ android:layout_marginTop="16dp" android:visibility="gone"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/java/res/layout/toolbar_space.xml b/android/java/res/layout/toolbar_space.xml new file mode 100644 index 000000000000..b16e283817e2 --- /dev/null +++ b/android/java/res/layout/toolbar_space.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/android/java/res/values/brave_dimens.xml b/android/java/res/values/brave_dimens.xml index 96cf9b97499a..39ab637bceec 100644 --- a/android/java/res/values/brave_dimens.xml +++ b/android/java/res/values/brave_dimens.xml @@ -37,4 +37,12 @@ 200dp 233dp 318dp + + + 56dp + 12dp + 64dp + 36dp + 6dp + 4dp diff --git a/android/javatests/org/chromium/chrome/browser/BravePrivateTabTest.java b/android/javatests/org/chromium/chrome/browser/BravePrivateTabTest.java index ef24d4ff30c8..75922bdd4522 100644 --- a/android/javatests/org/chromium/chrome/browser/BravePrivateTabTest.java +++ b/android/javatests/org/chromium/chrome/browser/BravePrivateTabTest.java @@ -21,8 +21,8 @@ import org.chromium.chrome.browser.onboarding.OnboardingPrefManager; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.settings.BraveSearchEngineUtils; -import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; import org.chromium.components.search_engines.TemplateUrl; import org.chromium.content_public.browser.test.util.TestThreadUtils; @@ -32,8 +32,7 @@ @RunWith(ChromeJUnit4ClassRunner.class) public class BravePrivateTabTest { @Rule - public ChromeActivityTestRule mActivityTestRule = new ChromeActivityTestRule<>( - ChromeActivity.class); + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); @Before public void setUp() throws Exception { diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index 7391a16c2280..c5b4fe75f55b 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -40,23 +40,45 @@ public void testClassesExist() throws Exception { Assert.assertTrue(classExists( "org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter")); Assert.assertTrue(classExists("org/chromium/base/CommandLineInitUtil")); + Assert.assertTrue(classExists("org/chromium/chrome/browser/ui/appmenu/AppMenu")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator")); + Assert.assertTrue(classExists("org/chromium/chrome/browser/toolbar/ToolbarManager")); + Assert.assertTrue( + classExists("org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTCoordinatorPhone")); + Assert.assertTrue( + classExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar")); + Assert.assertTrue( + classExists("org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView")); } @Test @SmallTest public void testMethodsExist() throws Exception { - Assert.assertTrue(methodExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "notifyObservers")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "updateCachedSettings")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "setChromeSyncEnabled")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/sync/AndroidSyncSettings", "notifyObservers")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/sync/AndroidSyncSettings", "updateCachedSettings")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/sync/AndroidSyncSettings", "setChromeSyncEnabled")); Assert.assertTrue(methodExists("org/chromium/chrome/browser/bookmarks/BookmarkBridge", "extensiveBookmarkChangesBeginning")); - Assert.assertTrue( - methodExists("org/chromium/chrome/browser/bookmarks/BookmarkBridge", "extensiveBookmarkChangesEnded")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/bookmarks/BookmarkBridge", "createBookmarkItem")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/LaunchIntentDispatcher", "isCustomTabIntent")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/homepage/HomepageManager", "shouldCloseAppWithZeroTabs")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/ntp/NewTabPageLayout", "insertSiteSectionView")); - Assert.assertTrue(methodExists("org/chromium/chrome/browser/ntp/NewTabPageLayout", "getMaxRowsForMostVisitedTiles")); + Assert.assertTrue(methodExists("org/chromium/chrome/browser/bookmarks/BookmarkBridge", + "extensiveBookmarkChangesEnded")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/bookmarks/BookmarkBridge", "createBookmarkItem")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/LaunchIntentDispatcher", "isCustomTabIntent")); + Assert.assertTrue(methodExists("org/chromium/chrome/browser/homepage/HomepageManager", + "shouldCloseAppWithZeroTabs")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/ntp/NewTabPageLayout", "insertSiteSectionView")); + Assert.assertTrue(methodExists("org/chromium/chrome/browser/ntp/NewTabPageLayout", + "getMaxRowsForMostVisitedTiles")); Assert.assertTrue(methodExists( "org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter", "getPermissionsLinkMessage")); @@ -67,21 +89,47 @@ public void testMethodsExist() throws Exception { "org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter", "sortAndFilterUnnecessaryTemplateUrl")); Assert.assertTrue(methodExists("org/chromium/base/CommandLineInitUtil", "initCommandLine")); + Assert.assertTrue( + methodExists("org/chromium/chrome/browser/ui/appmenu/AppMenu", "getPopupPosition")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "onOrientationChange")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "updateButtonStatus")); + Assert.assertTrue(methodExists("org/chromium/chrome/browser/toolbar/ToolbarManager", + "updateBookmarkButtonStatus")); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "updateReloadState")); + Assert.assertTrue( + methodExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone", + "updateNewTabButtonVisibility")); + Assert.assertTrue( + methodExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone", + "shouldShowIncognitoToggle")); } @Test @SmallTest public void testFieldsExist() throws Exception { - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "mIsSyncable")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "mChromeSyncEnabled")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "mMasterSyncEnabled")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/ntp/NewTabPageLayout", "mSiteSectionView")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mActivity")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mScrollViewForPolicy")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mNtpHeader")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mRootView")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/ntp/NewTabPage", "mNewTabPageLayout")); - Assert.assertTrue(fieldExists("org/chromium/chrome/browser/ntp/NewTabPage", "mFeedSurfaceProvider")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/sync/AndroidSyncSettings", "mIsSyncable")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/sync/AndroidSyncSettings", "mChromeSyncEnabled")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/sync/AndroidSyncSettings", "mMasterSyncEnabled")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/ntp/NewTabPageLayout", "mSiteSectionView")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mActivity")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mScrollViewForPolicy")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mNtpHeader")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/feed/FeedSurfaceCoordinator", "mRootView")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/ntp/NewTabPage", "mNewTabPageLayout")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/ntp/NewTabPage", "mFeedSurfaceProvider")); Assert.assertTrue(fieldExists( "org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessor", "mHasClearedOmniboxForFocus")); @@ -95,6 +143,64 @@ public void testFieldsExist() throws Exception { Assert.assertTrue( fieldExists("org/chromium/chrome/browser/sync/settings/ManageSyncSettings", "mSyncPaymentsIntegration")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator", + "mMediator")); + Assert.assertTrue(fieldExists("org/chromium/chrome/browser/toolbar/ToolbarManager", + "mBottomControlsCoordinator")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mBrowserControlsSizer")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mFullscreenManager")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mActivityTabProvider")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mAppThemeColorProvider")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mShareDelegateSupplier")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mScrimCoordinator")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/ToolbarManager", "mActivity")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mShowStartSurfaceSupplier")); + Assert.assertTrue(fieldExists("org/chromium/chrome/browser/toolbar/ToolbarManager", + "mOverviewModeBehaviorSupplier")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mMenuButtonCoordinator")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mToolbarTabController")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/ToolbarManager", "mLocationBar")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mActionModeController")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mLocationBarModel")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/ToolbarManager", "mToolbar")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/ToolbarManager", "mBookmarkBridgeSupplier")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator", + "mTabSwitcherModeCoordinatorPhone")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator", + "mOptionalButtonController")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTCoordinatorPhone", + "mTabSwitcherModeToolbar")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone", + "mNewTabViewButton")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone", + "mNewTabImageButton")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone", + "mToggleTabStackButton")); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone", + "mShouldShowNewTabVariation")); } private boolean classExists(String className) { diff --git a/app/bookmarks_strings.grdp b/app/bookmarks_strings.grdp index 7c21b9d1279b..98909cac6bd6 100644 --- a/app/bookmarks_strings.grdp +++ b/app/bookmarks_strings.grdp @@ -66,19 +66,19 @@ {COUNT, plural, =0 {&Open all} =1 {&Open bookmark} - other {&Open all (#)}} + other {&Open all ({COUNT})}} {COUNT, plural, =0 {Open all in &new window} =1 {Open in &new window} - other {Open all (#) in &new window}} + other {Open all ({COUNT}) in &new window}} {COUNT, plural, =0 {Open all in &private window} =1 {Open in &private window} - other {Open all (#) in &private window}} + other {Open all ({COUNT}) in &private window}} &Open in new tab @@ -118,19 +118,19 @@ {COUNT, plural, =0 {&Open All} =1 {&Open Bookmark} - other {&Open All (#)}} + other {&Open All ({COUNT})}} {COUNT, plural, =0 {Open All in &New Window} =1 {Open in &New Window} - other {Open All (#) in &New Window}} + other {Open All ({COUNT}) in &New Window}} {COUNT, plural, =0 {Open All in &Private Window} =1 {Open in &Private Window} - other {Open All (#) in &Private Window}} + other {Open All ({COUNT}) in &Private Window}} &Open in New Tab @@ -342,7 +342,7 @@ {COUNT, plural, =1 {1 item in bookmark list} - other {# items in bookmark list}} + other {{COUNT} items in bookmark list}} Bookmark list @@ -375,14 +375,23 @@ Import bookmarks - Open all bookmarks + Open all + + + Open all ($15) Open all in new window + + Open all ($15) in new window + Open all in private window + + Open all ($15) in private window + Open in new tab @@ -431,7 +440,7 @@ {COUNT, plural, =1 {1 bookmark deleted} - other {# bookmarks deleted}} + other {{COUNT} bookmarks deleted}} URL copied @@ -442,7 +451,7 @@ {COUNT, plural, =1 {1 item copied} - other {# items copied}} + other {{COUNT} items copied}} diff --git a/app/bookmarks_strings_override.grdp b/app/bookmarks_strings_override.grdp index 9cda3649ba82..9f9d0372e6cf 100644 --- a/app/bookmarks_strings_override.grdp +++ b/app/bookmarks_strings_override.grdp @@ -15,7 +15,7 @@ {COUNT, plural, =0 {Open all in &private window} =1 {Open in &private window} - other {Open all (#) in &private window}} + other {Open all ({COUNT}) in &private window}} Open in &private window @@ -31,7 +31,7 @@ {COUNT, plural, =0 {Open All in &Private Window} =1 {Open in &Private Window} - other {Open All (#) in &Private Window}} + other {Open All ({COUNT}) in &Private Window}} Open in &Private Window @@ -61,6 +61,9 @@ Open all in private window + + Open all ($15) in private window + Open in private window diff --git a/app/brave_generated_resources.grd b/app/brave_generated_resources.grd index b96a2426c9b7..1bfb5472ff33 100644 --- a/app/brave_generated_resources.grd +++ b/app/brave_generated_resources.grd @@ -953,7 +953,7 @@ By installing this extension, you are agreeing to the Google Widevine Terms of U Full Disk Access required - Brave needs Full Disk Access to import your Bookmarks and History from Safari. + Brave needs Full Disk Access to import your Bookmarks from Safari. Learn how to grant Full Disk Access from your System Preferences. diff --git a/app/brave_main_delegate.cc b/app/brave_main_delegate.cc index 022fd572d1c3..2120f61b35f5 100644 --- a/app/brave_main_delegate.cc +++ b/app/brave_main_delegate.cc @@ -39,7 +39,6 @@ #include "components/omnibox/common/omnibox_features.h" #include "components/password_manager/core/common/password_manager_features.h" #include "components/safe_browsing/core/features.h" -#include "components/security_state/core/features.h" #include "components/sync/base/sync_base_switches.h" #include "components/translate/core/browser/translate_prefs.h" #include "components/version_info/channel.h" @@ -208,39 +207,29 @@ bool BraveMainDelegate::BasicStartupComplete(int* exit_code) { blink::features::kMixedContentAutoupgrade.name, password_manager::features::kPasswordImport.name, net::features::kLegacyTLSEnforced.name, - // Remove URL bar mixed control and allow site specific override instead - features::kMixedContentSiteSetting.name, - // Warn about Mixed Content optionally blockable content - security_state::features::kPassiveMixedContentWarning.name, // Enable webui dark theme: @media (prefers-color-scheme: dark) is gated - // on - // this feature. + // on this feature. features::kWebUIDarkMode.name, blink::features::kPrefetchPrivacyChanges.name, blink::features::kReducedReferrerGranularity.name, #if defined(OS_WIN) features::kWinrtGeolocationImplementation.name, #endif - omnibox::kOmniboxContextMenuShowFullUrls.name, }; - if (!base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableDnsOverHttps)) { - enabled_features.insert(features::kDnsOverHttps.name); - } - if (chrome::GetChannel() == version_info::Channel::CANARY) { enabled_features.insert(features::kGlobalPrivacyControl.name); } // Disabled features. - const std::unordered_set disabled_features = { + std::unordered_set disabled_features = { autofill::features::kAutofillEnableAccountWalletStorage.name, autofill::features::kAutofillServerCommunication.name, blink::features::kTextFragmentAnchor.name, features::kAllowPopupsDuringPageUnload.name, features::kNotificationTriggers.name, features::kPrivacySettingsRedesign.name, + features::kSignedExchangeSubresourcePrefetch.name, features::kSmsReceiver.name, features::kVideoPlaybackQuality.name, features::kTabHoverCards.name, @@ -249,10 +238,23 @@ bool BraveMainDelegate::BasicStartupComplete(int* exit_code) { safe_browsing::kEnhancedProtection.name, #if defined(OS_ANDROID) feed::kInterestFeedContentSuggestions.name, - translate::kTranslateUI.name, + translate::kTranslate.name, offline_pages::kPrefetchingOfflinePagesFeature.name, #endif }; + +#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_ANDROID) + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableDnsOverHttps)) { + disabled_features.insert(features::kDnsOverHttps.name); + } +#else + if (!base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableDnsOverHttps)) { + enabled_features.insert(features::kDnsOverHttps.name); + } +#endif + command_line.AppendFeatures(enabled_features, disabled_features); bool ret = ChromeMainDelegate::BasicStartupComplete(exit_code); diff --git a/app/brave_main_delegate_browsertest.cc b/app/brave_main_delegate_browsertest.cc index d3f49f628cfd..df99bff34ffa 100644 --- a/app/brave_main_delegate_browsertest.cc +++ b/app/brave_main_delegate_browsertest.cc @@ -20,7 +20,7 @@ #include "components/safe_browsing/core/features.h" #include "content/public/browser/render_view_host.h" #include "content/public/common/content_features.h" -#include "content/public/common/web_preferences.h" +#include "third_party/blink/public/common/web_preferences/web_preferences.h" #include "content/public/test/browser_test.h" #include "gpu/config/gpu_finch_features.h" #include "net/base/features.h" @@ -47,7 +47,7 @@ IN_PROC_BROWSER_TEST_F(BraveMainDelegateBrowserTest, DisableHyperlinkAuditing) { base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoPings)); content::WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); - const content::WebPreferences prefs = + const blink::web_pref::WebPreferences prefs = contents->GetOrCreateWebPreferences(); EXPECT_FALSE(prefs.hyperlink_auditing_enabled); } @@ -68,6 +68,7 @@ IN_PROC_BROWSER_TEST_F(BraveMainDelegateBrowserTest, DisabledFeatures) { &features::kAllowPopupsDuringPageUnload, &features::kNotificationTriggers, &features::kPrivacySettingsRedesign, + &features::kSignedExchangeSubresourcePrefetch, &features::kSmsReceiver, &features::kVideoPlaybackQuality, &features::kTabHoverCards, @@ -88,7 +89,6 @@ IN_PROC_BROWSER_TEST_F(BraveMainDelegateBrowserTest, EnabledFeatures) { #if defined(OS_WIN) &features::kWinrtGeolocationImplementation, #endif - &omnibox::kOmniboxContextMenuShowFullUrls, &net::features::kLegacyTLSEnforced, }; diff --git a/app/brave_strings.grd b/app/brave_strings.grd index 4d3bb1bdd4fc..1fdb92b17d28 100644 --- a/app/brave_strings.grd +++ b/app/brave_strings.grd @@ -289,9 +289,12 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> Not used in Brave. Placeholder to keep resource maps in sync. + + This computer will soon stop receiving Brave updates because its hardware is no longer supported. + - - Brave may not function correctly because it is no longer supported on Mac OS X 10.9. + + To get future Brave updates, you'll need OS X 10.11 or later. This computer is using OS X 10.10. @@ -308,6 +311,16 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> Brave is unresponsive. Relaunch now? + + + To send a number from here to your Android phone, sign in to Brave on both devices. + + + To send a number from $1www.google.com to your Android phone, sign in to Brave on both devices. + + + Make sure you are signed in to Brave on your $1Pixel XL and then try sending again. + @@ -324,7 +337,7 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> Make Brave the default browser - + Chrome OS can't open this page. @@ -1148,7 +1161,6 @@ Brave is unable to recover your settings. Ask when I open Brave - diff --git a/app/brave_strings_override.grd b/app/brave_strings_override.grd index 0edda6b95e5c..e4a5a5cc0beb 100644 --- a/app/brave_strings_override.grd +++ b/app/brave_strings_override.grd @@ -303,7 +303,6 @@ If you update this file, be sure also to update google_chrome_strings.grd. --> Use different profiles in Brave to separate work and personal browsing, or for different profiles who use this device - diff --git a/app/extensions_strings.grdp b/app/extensions_strings.grdp index b0e737b4573a..1902f28f9f4d 100644 --- a/app/extensions_strings.grdp +++ b/app/extensions_strings.grdp @@ -17,6 +17,9 @@ background page + + service worker + This extension may have been corrupted. @@ -375,7 +378,7 @@ Extensions - Open web store + Open Web Store Keyboard shortcuts diff --git a/app/generated_resources.grd b/app/generated_resources.grd index 999dcf6c5261..42f2d07046e5 100644 --- a/app/generated_resources.grd +++ b/app/generated_resources.grd @@ -289,6 +289,7 @@ are declared in tools/grit/grit_rule.gni. + @@ -396,6 +397,9 @@ are declared in tools/grit/grit_rule.gni. local or shared file + + temporary data + Crashed. @@ -580,6 +584,10 @@ are declared in tools/grit/grit_rule.gni. Copy link te&xt + + Copy link to text + + Sa&ve image as... @@ -798,6 +806,10 @@ are declared in tools/grit/grit_rule.gni. Copy Link Te&xt + + Copy Link to Text + + Sa&ve Image As... @@ -1181,6 +1193,9 @@ are declared in tools/grit/grit_rule.gni. R&eopen closed window + + &Name window... + @@ -1213,6 +1228,9 @@ are declared in tools/grit/grit_rule.gni. R&eopen Closed Window + + &Name Window... + @@ -1340,13 +1358,13 @@ are declared in tools/grit/grit_rule.gni. ''' - ''' - - &Edit search engines... + + &Manage search engines... - - &Edit Search Engines... + + &Manage Search Engines... @@ -1661,9 +1679,6 @@ are declared in tools/grit/grit_rule.gni. $1bla.exe may be dangerous. Send to Brave Advanced Protection for scanning? - - $1bla.exe is unknown. Advanced Protection recommends sending this file to Brave for scanning. - This file is not commonly downloaded and may be dangerous. @@ -1755,9 +1770,6 @@ are declared in tools/grit/grit_rule.gni. Send - - Scan - @@ -3423,6 +3435,9 @@ are declared in tools/grit/grit_rule.gni. App: $1com.android.systemui + + Tool: $1Manage Profiles + Service: $1com.android.systemui @@ -3491,7 +3506,7 @@ are declared in tools/grit/grit_rule.gni. To re-enable it, accept the new permissions: - + Brave has flagged "$1Brave Talk" as malicious and installation has been prevented @@ -3616,13 +3631,13 @@ are declared in tools/grit/grit_rule.gni. These items may be dangerous - + The extension "$1Gmail Checker" was automatically disabled. - + "$1Gmail Checker" has been disabled because it contains malware - + The app "$1Gmail" was automatically removed. @@ -3981,7 +3996,7 @@ are declared in tools/grit/grit_rule.gni. Read and change saved password settings - Read and change whitelisted users + Read and change allowlisted users Send audio and video to displays on the local network @@ -4045,7 +4060,7 @@ are declared in tools/grit/grit_rule.gni. Unable to import extension "$1Gmail" because it is not a shared module - + Unable to install "$1Google Play Movies & TV" because it is not allowed by "$2Brave Cast API" @@ -5315,6 +5330,9 @@ Keep your key file in a safe place. You will need it to create new versions of y Shortcuts + + Cards + Color and theme @@ -5342,6 +5360,12 @@ Keep your key file in a safe place. You will need it to create new versions of y Shortcuts are curated by you + + Hide cards + + + Don't show cards on this page + Current theme you have installed @@ -5420,25 +5444,36 @@ Keep your key file in a safe place. You will need it to create new versions of y Dark purple - - Dummy + + Why am I seeing this? + + + Remove + + + Removed $1Office and Desk Chairs Super Duper Module - - Dummy 2 - Even Better Module - - Kaleidoscope - Top picks for you - + + Why am I seeing this? + + + You’re seeing this item based on your previous activity using Brave services. You can see your data, delete it, and change your settings at <a href="$1" target="_blank" rel="noopener noreferrer">myactivity.google.com</a>. + + + Learn about the data Brave collects and why at <a href="$1" target="_blank" rel="noopener noreferrer">policies.google.com</a>. + + + Close + Web browsing should be fast. Take a moment to <a href="chrome://extensions">check your extensions</a> now. @@ -5456,6 +5491,60 @@ Keep your key file in a safe place. You will need it to create new versions of y + + + + Add Bookmark + + + Edit Bookmark + + + Read Later + + + Mark as Read + + + + + Add bookmark + + + Edit bookmark + + + Read later + + + Mark as read + + + + + + + Reading List + + + + + Reading list + + + + UNREAD + + + PAGES YOU'VE READ + + + Mark as read + + + Mark as unread + + Click to go back, hold to see history @@ -5498,9 +5587,6 @@ Keep your key file in a safe place. You will need it to create new versions of y Search by voice - - Read later - Save card @@ -5667,6 +5753,12 @@ Keep your key file in a safe place. You will need it to create new versions of y To browse privately, click the dots icon menu to open a private window + + Get captions for your media + + + Get captions for your media by enabling Live Caption in settings + Open a new tab with one click @@ -5685,6 +5777,22 @@ Keep your key file in a safe place. You will need it to create new versions of y To group tabs together, right-click a tab + + + Got It + + + Remind Me Later + + + + + Got it + + + Remind me later + + @@ -5801,6 +5909,9 @@ Keep your key file in a safe place. You will need it to create new versions of y Save + + Next + Move @@ -5885,7 +5996,7 @@ Keep your key file in a safe place. You will need it to create new versions of y Save - + Never @@ -5906,9 +6017,12 @@ Keep your key file in a safe place. You will need it to create new versions of y Manage passwords - + Use other password + + Use other username + Suggest strong password @@ -6348,6 +6462,11 @@ Keep your key file in a safe place. You will need it to create new versions of y {NUM_TABS, plural, =1 {Unmute site} other {Unmute sites}} + + {NUM_TABS, plural, + =1 {Read tab later} + other {Read tabs later}} + {NUM_TABS, plural, =1 {Add tab to group} @@ -6415,6 +6534,11 @@ Keep your key file in a safe place. You will need it to create new versions of y {NUM_TABS, plural, =1 {Unmute Site} other {Unmute Sites}} + + {NUM_TABS, plural, + =1 {Read Tab Later} + other {Read Tabs Later}} + {NUM_TABS, plural, =1 {Add Tab to Group} @@ -6475,6 +6599,37 @@ Keep your key file in a safe place. You will need it to create new versions of y + + + + Search Tabs + + + No Results Found + + + Close Tab + + + Submit Feedback + + + Tab Closed + + + Found $11 Tab + + + Found $12 Tabs + + + Found $11 Tab For '$2google' + + + Found $12 Tabs For '$2google' + + + @@ -6807,7 +6962,7 @@ Keep your key file in a safe place. You will need it to create new versions of y Installed because of dependent extension(s). - + This extension contains malware. @@ -6981,6 +7136,11 @@ Keep your key file in a safe place. You will need it to create new versions of y Can't create QR code + + + Clipboard + + Text copied from other device @@ -7342,7 +7502,7 @@ Keep your key file in a safe place. You will need it to create new versions of y Thumbnail removed. - + Don't show on this page @@ -7652,28 +7812,26 @@ Keep your key file in a safe place. You will need it to create new versions of y - - - Open $1Adobe Acrobat? - - - $1https://google.com wants to open this application. - - - A website wants to open this application. - - - Open $1Adobe Acrobat - - - Cancel - - - Always allow $1https://google.com to open links of this type in the associated app - - + + Open $1Adobe Acrobat? + + + $1https://google.com wants to open this application. + + + A website wants to open this application. + + + Open $1Adobe Acrobat + + + Cancel + + + Always allow $1https://google.com to open links of this type in the associated app + - + Close @@ -9046,8 +9204,8 @@ Please help our engineers fix this problem. Tell us what happened right before y - - Detecting speech... + + Live Caption Turn off Live Caption for now @@ -9572,6 +9730,9 @@ Please help our engineers fix this problem. Tell us what happened right before y FIDO + + Serial + File Info @@ -9595,13 +9756,16 @@ Please help our engineers fix this problem. Tell us what happened right before y - Open Settings to connect $1Nexus 5 to Linux + Open Settings to connect $1Nexus 5 to $2Linux + + + Open Settings to connect $1Nexus 5 to Parallels Desktop or Linux USB device detected - - Connect to Linux + + Connect to $1Linux USB device from $1Brave @@ -9777,7 +9941,7 @@ Please help our engineers fix this problem. Tell us what happened right before y - + Always allow ads on this site @@ -10306,6 +10470,23 @@ Please help our engineers fix this problem. Tell us what happened right before y Exit Private + + Close Private + + + + + {0, plural, + =1 {# open window} + other {# open windows} + } + + + {0, plural, + =1 {Close Guest} + other {Close Guest} + } + @@ -10506,6 +10687,36 @@ Please help our engineers fix this problem. Tell us what happened right before y other {Click to view these extensions}} + + + + + Brave can’t play premium videos or music on this device yet. Brave will update automatically when this issue is fixed. + + + This is an x86-64 Brave on Arm64, so things might not work quite right yet! + + + Learn more + + + https://support.google.com/chrome/?p=mac_ARM + + + Learn more + + + https://support.google.com/chrome/?p=mac_ARM + + + + + Set Window Name + + + Window name + diff --git a/app/generated_resources_override.grd b/app/generated_resources_override.grd index 8e8fac301fc4..30ba7947364e 100644 --- a/app/generated_resources_override.grd +++ b/app/generated_resources_override.grd @@ -97,7 +97,7 @@ are declared in tools/grit/grit_rule.gni. - + @@ -109,7 +109,8 @@ are declared in tools/grit/grit_rule.gni. - + + @@ -362,6 +363,9 @@ are declared in tools/grit/grit_rule.gni. Private Portal: $1https://youtube.com/ + + Tool: $1Manage Profiles + @@ -466,6 +470,15 @@ are declared in tools/grit/grit_rule.gni. + + + + + + + + + @@ -486,6 +499,11 @@ are declared in tools/grit/grit_rule.gni. To browse privately, click the dots icon menu to open a private window + + + + + @@ -556,6 +574,9 @@ are declared in tools/grit/grit_rule.gni. + + + @@ -674,8 +695,6 @@ are declared in tools/grit/grit_rule.gni. - - @@ -858,8 +877,11 @@ are declared in tools/grit/grit_rule.gni. Exit Private + + Close Private + - + @@ -867,6 +889,10 @@ are declared in tools/grit/grit_rule.gni. - + + + + + diff --git a/app/global_media_controls_strings.grdp b/app/global_media_controls_strings.grdp index 51acca7129d5..778c2885b55a 100644 --- a/app/global_media_controls_strings.grdp +++ b/app/global_media_controls_strings.grdp @@ -11,4 +11,7 @@ Dismiss + + Devices + diff --git a/app/nearby_share_strings.grdp b/app/nearby_share_strings.grdp index cd1b0a79365d..19fd123de411 100644 --- a/app/nearby_share_strings.grdp +++ b/app/nearby_share_strings.grdp @@ -2,7 +2,121 @@ + + + Adding this contact will remember the next time they share + + + Add $1Richard to your contacts + + + Share with this device? + + + + + Contacts + + + Devices near you when Nearby Share is open on their device + + + Devices near you when Nearby Share is open on your device + + + No contacts are available. To use Nearby Share with your contacts, add the email address linked with their Brave sync chain to your contacts. + + + No available contacts + + + Profiles who have chosen to be visible to you when their screen is unlocked + + + Devices you can share with + + + All contacts near you when your screen is unlocked + + + No one unless you open Nearby Share on your device + + + Selected contacts near you when your screen is unlocked + + + Who can share with your device + + + Learn more + + + Your device visibility controls who can share with you while your screen is unlocked + + + + + Add a device name to continue + + + Device name too long + + + Device name contains invalid characters + + + + + Make sure both devices are unlocked, close together, and have Bluetooth turned on. If you’re sharing with a Bravebook, make sure it has Nearby Sharing turned on (open the status area by selecting the time, then select Nearby Share). + + + Select the device you’d like to share files with + + + Nearby Share + + + + + Device name + + + Share files with profiles around you + + + Set up Nearby Share + + + + + Manage contacts + + + Select who can share with you + + + Device visibility + + + + Nearby Share + + + Cancel + + + Confirm + + + Next + + + Reject + + + $1Josh's $2Bravebook + {COUNT, plural, =1 {1 app} other {# apps}} @@ -34,7 +148,56 @@ {COUNT, plural, =1 {1 item} other {# items}} + + + Visible to nearby devices as $1Rea’s Bravebook + + + Make sure both devices are unlocked, close together, and have Bluetooth turned on. <a>Learn more</a> + + + + + Receive from this device? + + + + + + Nearby Share settings for $1example@gmail.com's device, '$2My Bravebook'. + + + All contacts + + + Current visibility setting is all contacts + + + Some contacts + + + Current visibility setting is some contacts + + + Hidden + + + Current visibility setting is hidden + + + Choose your visibility + + + Current visibility setting is not set yet + + + + Copy to clipboard + + + Open folder + {COUNT, plural, =1 {$1Ted's Pixel 2 is sharing $21 item with you.} diff --git a/app/nearby_share_strings_override.grdp b/app/nearby_share_strings_override.grdp new file mode 100644 index 000000000000..d9bee950142c --- /dev/null +++ b/app/nearby_share_strings_override.grdp @@ -0,0 +1,10 @@ + + + + + Profiles who have chosen to be visible to you when their screen is unlocked + + + Share files with profiles around you + + diff --git a/app/os_settings_search_tag_strings.grdp b/app/os_settings_search_tag_strings.grdp index 8cee5f351b40..8987cd40a402 100644 --- a/app/os_settings_search_tag_strings.grdp +++ b/app/os_settings_search_tag_strings.grdp @@ -256,6 +256,9 @@ Phone Hub task continuation + + Wi-Fi Sync + @@ -307,10 +310,10 @@ Limit sign-in - + Add restricted user - + Remove restricted user @@ -864,29 +867,32 @@ - Languages and input + Languages and inputs - + Languages - - Input + + Inputs - - Change system language + + Change device language - + Translation suggestion Add languages - + Add input methods - + Spell check + + Customize spell check + Manage input methods @@ -1049,11 +1055,11 @@ Startup sound - - Captions + + Caption preferences - - Live Captions + + Live Caption Switch access @@ -1091,6 +1097,9 @@ Change channel + + + Copy build details Check for update diff --git a/app/os_settings_strings.grdp b/app/os_settings_strings.grdp index b21200b5ec4a..5070c9d7d44a 100644 --- a/app/os_settings_strings.grdp +++ b/app/os_settings_strings.grdp @@ -242,53 +242,122 @@ - - Languages and input + + Languages and inputs - + Languages - - Input + + Inputs - - System display language + + Device language - - System features like launcher, Settings and Files will appear in this language. - - + Change - - Change system language. Current language is $1English. System features like launcher, Settings and Files will appear in the language you choose. + + Change device language. Current language is $1English. + + + Change device language + + + You need to restart your Bravebook to change the device language. <a target="_blank" rel="noopener noreferrer" href="$1">Learn more</a> + + + $1English selected. Press Search plus Space to unselect. + + + $1English not selected. Press Search plus Space to select. + + + Confirm and restart + + + Languages for apps and websites + + + Apps and websites that support multiple languages will use the first supported language from this list. Language preferences sync to Brave browser. <a target="_blank" rel="noopener noreferrer" href="$1">Learn more</a> - - Languages you read + + Language used when translating pages - - Add and order languages you read. Apps and websites will be displayed in the most preferred language available. <a target="_blank" rel="noopener noreferrer" href="$1">Learn more</a> + + Offer to translate pages in this language - + Translation suggestion - - Allow the system to offer to translate web pages when it detects languages you don't read + + Offer to translate websites in other languages - + Input methods - - Open options page for $1US keyboard + + Open settings page for $1US keyboard - + Add input methods - + + Remove $1US keyboard + + + Suggested + + + All input methods + + + Search by language or input name + + + Your administrator doesn't allow this input method + + Spell check - - Spell check isn’t supported for the languages you selected + + Enhanced spell check in Brave browser (text is sent to Brave for spelling suggestions) + + + Spell check languages + + + Languages for spell check are based on your language preference + + + Couldn’t download spell check dictionary + + + Try again + + + Couldn’t download spell check dictionary for $1English. Try again. + + + Customize spell check + + + Add words you want spell check to skip + + + Add word + + + Word already added + + + Use 99 letters or fewer for new words + + + Delete word + + + Saved custom words will appear here Languages @@ -430,14 +499,11 @@ - Reverse scrolling <a>Learn more</a> + Enable reverse scrolling <a>Learn more</a> Device - - Scrolling - @@ -1144,7 +1210,7 @@ Remove - USB preferences + Manage USB devices Give Linux apps permission to access USB devices. Linux won't remember a USB device after it's removed. @@ -1155,6 +1221,12 @@ Available USB devices will appear here. + + Device in use + + + "$1Nexus 5" is in use. Reassigning the device while it's in use could cause errors. Are you sure you want to continue? + Develop Android apps @@ -1567,7 +1639,7 @@ Swap primary mouse button - Reverse scrolling + Enable reverse scrolling <a>Learn more</a> Enable mouse acceleration @@ -2198,6 +2270,39 @@ Task Continuation + + Make the best of your Android phone on your your $1Bravebook + + + View your phones notifications on your $1Bravebook + + + Indicator in shelf when new notifications come in + + + View your active Brave tabs in Phone Hub + + + Turn on notifications on Android phone + + + Connecting to your Phone + + + Make sure your phone is nearby, unlocked and has Bluetooth and Wi-Fi turned on. Turn on notifications toggle under Google Play Services>Bravebook Phone Hub from your phone. + + + Notifications turned on + + + You will receive your phone notifications on your Bravebook + + + Wi-Fi Sync + + + Sync Wi-Fi networks with your phone <a target="_blank" rel="noopener noreferrer" href="$1https://google.com/">Learn more</a> + @@ -2209,12 +2314,21 @@ Show lock screen when waking from sleep + + Screen lock + + + Require password to unlock device for added security + Show all notification content PIN or password + + Use PIN in addition to password + Unlock automatically once PIN is entered @@ -2296,6 +2410,9 @@ Security and sign-in + + Screen lock and sign-in + Enter your password to configure screen lock @@ -2473,8 +2590,11 @@ Keep display on - - Other + + Shut down + + + Sign out Sleep when cover is closed @@ -2902,6 +3022,9 @@ Change language and input settings + + Change input settings + Launcher @@ -2974,9 +3097,36 @@ Stop sharing + + Couldn't unshare because an application is using this folder. The folder will be unshared when Parallels Desktop is next shut down. + + + Unshare failed + + + Try again + Shared folders will appear here + + Manage USB devices + + + Give Parallels Desktop permission to access USB devices. Parallels Desktop won't remember a USB device after it's removed. + + + Only supported devices are shown. + + + Available USB devices will appear here. + + + Device in use + + + "$1Nexus 5" is in use. Reassigning the device while it's in use could cause errors. Are you sure you want to continue? + diff --git a/app/printing_strings.grdp b/app/printing_strings.grdp index cf56e2681505..1852e6efb48b 100644 --- a/app/printing_strings.grdp +++ b/app/printing_strings.grdp @@ -156,16 +156,16 @@ Margins - + Default - + None - + Custom - + Minimum diff --git a/app/profiles_strings.grdp b/app/profiles_strings.grdp index 86e0ff111fc2..b43329da83c2 100644 --- a/app/profiles_strings.grdp +++ b/app/profiles_strings.grdp @@ -18,6 +18,18 @@ Current user + + {0, plural, + =1 {Guest} + other {Guest (#)} + } + + + {0, plural, + =1 {Guest} + other {# open guest windows} + } + {0, plural, =1 {Private} diff --git a/app/settings_brave_strings.grdp b/app/settings_brave_strings.grdp index 3b2d790ddb39..3a7863a2d6b0 100644 --- a/app/settings_brave_strings.grdp +++ b/app/settings_brave_strings.grdp @@ -68,6 +68,15 @@ Brave will notify you when you sign in with a compromised password + + To check if your passwords are safe from data breaches and other security issues, <a target='_blank' href='$1'>sign in to Brave</a>. + + + To check if your other passwords are safe from data breaches and other security issues, <a target='_blank' href='$1'>sign in to Brave</a>. + + + Weak passwords are easy to guess. Let Brave <a target='_blank' href='$1'>create and remember strong passwords for you</a>. + If so, please edit your saved password in Brave so it matches your new password. diff --git a/app/settings_strings.grdp b/app/settings_strings.grdp index ad085f2c3a15..8c1399d0134e 100644 --- a/app/settings_strings.grdp +++ b/app/settings_strings.grdp @@ -54,19 +54,19 @@ If an image doesn’t have a useful description, Brave will try to provide one for you. To create descriptions, images are sent to Brave. - - Get captions for your media + + Live Caption - - Brave automatically creates captions using Live Caption (currently available in English only) + + Automatically creates captions for media in Brave browser (currently available in English only) - + Downloading speech recognition files... $117% - + Speech recognition files downloaded - + The required files can't be downloaded. Try again later. @@ -146,11 +146,11 @@ Change - Open web store + Open Web Store - Pressing tab on a webpage highlights links, as well as form fields + Pressing Tab on a webpage highlights links, as well as form fields Show warning before quitting with ⌘Q @@ -341,7 +341,7 @@ Canceled - + Checked passwords @@ -353,6 +353,18 @@ =1 {{COUNT} compromised password} other {{COUNT} compromised passwords}} + + {COUNT, plural, + =0 {No security issues found} + =1 {Found {COUNT} security issue} + other {Found {COUNT} security issues}} + + + {COUNT, plural, + =0 {No weak passwords found} + =1 {Found {COUNT} weak password} + other {Found {COUNT} weak passwords}} + Check again @@ -374,6 +386,12 @@ Change these passwords immediately to keep your account safe: + + Weak passwords + + + Weak passwords are easy to guess. Make sure you're creating strong passwords. <a target='_blank' href='$1'>See more security tips.</a> + Change password @@ -428,8 +446,8 @@ Warn you if passwords are exposed in a data breach - - When you sign in to your Brave sync chain, this feature is turned on + + When you sign in to your Brave sync chain, this feature is turned on. Saved Passwords @@ -470,6 +488,9 @@ Make sure the password you are saving matches your password for $1airbnb.com + + You already saved this username for this site + Copy password @@ -1033,6 +1054,9 @@ Add languages or reorder list. + + Manage languages in Chrome OS settings + @@ -1096,7 +1120,7 @@ Use spell check for - + Customize spell check @@ -1519,7 +1543,7 @@ Search engine - Search engine used in the <a target="_blank" rel="noopener noreferrer" href="$1">address bar</a> + Search engine used in the address bar Manage search engines @@ -1606,6 +1630,225 @@ + + Default behavior + + + Sites automatically follow this setting when you visit them + + + Sites usually show ads so they can provide content or services for free. But, some sites are known to show intrusive or misleading ads. + + + All sites can show any ads to you + + + Block ads on sites that show intrusive or misleading ads (recommended) + + + Sites usually track your camera position for AR features, like games or heads-up directions + + + Sites can ask to track your camera position + + + Block sites from tracking your camera position + + + Sites might automatically download related files together to save you time + + + Sites can ask to automatically download multiple files (recommended) + + + Block sites from automatically downloading multiple files + + + After you leave or go offline, sites usually keep syncing to finish tasks, like uploading photos or sending a chat message + + + Recently closed sites can finish sending and receiving data (recommended) + + + Block closed sites from sending and receiving data + + + Sites usually use your video camera for communication features like video chatting + + + Sites can ask to use your camera (recommended) + + + Block sites from using your camera + + + Features that need a camera won't work + + + Sites usually read your clipboard for features like keeping the formatting of text you copied + + + Sites can ask to see text and images on your clipboard + + + Block sites from seeing text and images on your clipboard + + + Sites usually access files and folders on your device for features like automatically saving your work + + + Sites can ask to edit files or folders on your device (recommended) + + + Block sites from editing files and folders on your device + + + Sites usually use your location for relevant features or info, like local news or nearby shops + + + Sites can ask for your location (recommended) + + + Block sites from seeing your location + + + Features that need your location won't work + + + Sites usually show images to provide illustration, like photos for online stores or news articles + + + Sites can show images (recommended) + + + Block images + + + Sites usually use Javascript to display interactive features, like video games or web forms + + + Sites can use Javascript (recommended) + + + Block Javascript + + + Sites usually use your microphone for communication features like video chatting + + + Sites can ask to use your microphone (recommended) + + + Block sites from using your microphone + + + Features that need a microphone won't work + + + Sites usually connect to MIDI devices for features for creating and editing music + + + Sites can ask to connect to MIDI devices + + + Block sites from connecting to MIDI devices + + + Sites usually install payment handlers for shopping features like easier checkout + + + Sites can install payment handlers (recommended) + + + Block payment handlers + + + Sites usually use Flash to play audio, video, or video games. Flash Player will no longer be supported after December 2020. + + + Sites can ask to use Flash + + + Block Flash (recommended) + + + Sites might send pop-ups to show ads, or use redirects to lead you to websites you may not want to visit + + + Sites can send pop-ups and use redirects + + + Block pop-ups and redirects (recommended) + + + When a site plays content protected by copyright, it might ask to recognize your device + + + Sites can ask to play protected content (recommended) + + + Block protected content + + + Sites usually use your device's motion sensors for features like virtual reality or step counting + + + Sites can use motion sensors + + + Block sites from using motion sensors + + + Features that need motion sensors won't work + + + Sites usually connect to serial devices for data transfer features, like setting up your network + + + Sites can ask to connect to serial devices + + + Block sites from connecting to serial devices + + + Sites might play sound to provide audio for music, videos, and other media + + + Sites can play sound (recommended) + + + Mute sound + + + Sites usually use plugins for features like streaming videos or installing apps + + + Sites can ask to use a plugin to access your computer (recommended) + + + Block plugins from accessing your computer + + + Sites usually connect to USB devices for features like printing a document or saving to a storage device + + + Sites can ask to connect to USB devices + + + Block sites from connecting to USB devices + + + Sites usually use your virtual reality devices and data to let you enter VR sessions + + + Sites can ask to use virtual reality devices and data + + + Block sites from using virtual reality devices and data + + + You can set how much you zoom in or out on certain websites + Ads @@ -1974,7 +2217,7 @@ Allow recently closed sites to finish sending and receiving data (recommended) - + Do not allow recently closed sites to finish sending and receiving data @@ -2049,6 +2292,15 @@ Block sites from using fonts installed on your device + + User presence + + + Ask when a site wants to know when you're present + + + Block sites from knowing when you're present + Allowed @@ -2134,10 +2386,10 @@ Allowlisted internally - + Site shows intrusive or misleading ads - + Block if site shows intrusive or misleading ads diff --git a/app/shared_settings_strings.grdp b/app/shared_settings_strings.grdp index 43537ae7a8c0..70821a65c657 100644 --- a/app/shared_settings_strings.grdp +++ b/app/shared_settings_strings.grdp @@ -11,8 +11,11 @@ - - Captions + + Caption preferences + + + Customize caption size and style for apps that support this setting Settings @@ -20,8 +23,8 @@ Preview - - Text size + + Text size (Also applies to Live Caption) Text font @@ -103,11 +106,8 @@ Device Name - - New device name - - Change name + Change device name Current device name is $1Michael's Bravebook @@ -148,6 +148,15 @@ Current data usage setting is Without internet + + Device visibility + + + View device visibility + + + Device visibility + diff --git a/app/sharesheet_strings.grdp b/app/sharesheet_strings.grdp new file mode 100644 index 000000000000..26611fe1ce54 --- /dev/null +++ b/app/sharesheet_strings.grdp @@ -0,0 +1,18 @@ + + + + + + + Share + + + Apps list + + + More apps + + + Fewer apps + + diff --git a/app/supervised_user_error_page_strings.grdp b/app/supervised_user_error_page_strings.grdp index 45555e00928f..bd392f964bb7 100644 --- a/app/supervised_user_error_page_strings.grdp +++ b/app/supervised_user_error_page_strings.grdp @@ -71,13 +71,13 @@ It may have mature content - + Your parent can unblock it for you - + Your parents can unblock it for you - + Your manager can unblock it for you diff --git a/app/theme/brave/android/res_brave_default/mipmap-hdpi/app_icon.png b/app/theme/brave/android/mipmap-hdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_default/mipmap-hdpi/app_icon.png rename to app/theme/brave/android/mipmap-hdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_default/mipmap-mdpi/app_icon.png b/app/theme/brave/android/mipmap-mdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_default/mipmap-mdpi/app_icon.png rename to app/theme/brave/android/mipmap-mdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_default/mipmap-xhdpi/app_icon.png b/app/theme/brave/android/mipmap-xhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_default/mipmap-xhdpi/app_icon.png rename to app/theme/brave/android/mipmap-xhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_default/mipmap-xxhdpi/app_icon.png b/app/theme/brave/android/mipmap-xxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_default/mipmap-xxhdpi/app_icon.png rename to app/theme/brave/android/mipmap-xxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_default/mipmap-xxxhdpi/app_icon.png b/app/theme/brave/android/mipmap-xxxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_default/mipmap-xxxhdpi/app_icon.png rename to app/theme/brave/android/mipmap-xxxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave/mipmap-hdpi/app_icon.png b/app/theme/brave/android/res_brave_base/mipmap-hdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave/mipmap-hdpi/app_icon.png rename to app/theme/brave/android/res_brave_base/mipmap-hdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave/mipmap-mdpi/app_icon.png b/app/theme/brave/android/res_brave_base/mipmap-mdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave/mipmap-mdpi/app_icon.png rename to app/theme/brave/android/res_brave_base/mipmap-mdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave/mipmap-xhdpi/app_icon.png b/app/theme/brave/android/res_brave_base/mipmap-xhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave/mipmap-xhdpi/app_icon.png rename to app/theme/brave/android/res_brave_base/mipmap-xhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave/mipmap-xxhdpi/app_icon.png b/app/theme/brave/android/res_brave_base/mipmap-xxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave/mipmap-xxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_base/mipmap-xxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave/mipmap-xxxhdpi/app_icon.png b/app/theme/brave/android/res_brave_base/mipmap-xxxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave/mipmap-xxxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_base/mipmap-xxxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave/values/channel_constants.xml b/app/theme/brave/android/res_brave_base/values/channel_constants.xml similarity index 100% rename from app/theme/brave/android/res_brave/values/channel_constants.xml rename to app/theme/brave/android/res_brave_base/values/channel_constants.xml diff --git a/app/theme/brave/android/res_brave_beta/mipmap-hdpi/app_icon.png b/app/theme/brave/android/res_brave_beta_base/mipmap-hdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_beta/mipmap-hdpi/app_icon.png rename to app/theme/brave/android/res_brave_beta_base/mipmap-hdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_beta/mipmap-mdpi/app_icon.png b/app/theme/brave/android/res_brave_beta_base/mipmap-mdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_beta/mipmap-mdpi/app_icon.png rename to app/theme/brave/android/res_brave_beta_base/mipmap-mdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_beta/mipmap-xhdpi/app_icon.png b/app/theme/brave/android/res_brave_beta_base/mipmap-xhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_beta/mipmap-xhdpi/app_icon.png rename to app/theme/brave/android/res_brave_beta_base/mipmap-xhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_beta/mipmap-xxhdpi/app_icon.png b/app/theme/brave/android/res_brave_beta_base/mipmap-xxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_beta/mipmap-xxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_beta_base/mipmap-xxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_beta/mipmap-xxxhdpi/app_icon.png b/app/theme/brave/android/res_brave_beta_base/mipmap-xxxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_beta/mipmap-xxxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_beta_base/mipmap-xxxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_beta/values/channel_constants.xml b/app/theme/brave/android/res_brave_beta_base/values/channel_constants.xml similarity index 100% rename from app/theme/brave/android/res_brave_beta/values/channel_constants.xml rename to app/theme/brave/android/res_brave_beta_base/values/channel_constants.xml diff --git a/app/theme/brave/android/res_brave_default_base/mipmap-hdpi/app_icon.png b/app/theme/brave/android/res_brave_default_base/mipmap-hdpi/app_icon.png new file mode 100644 index 000000000000..7fc7e518f413 Binary files /dev/null and b/app/theme/brave/android/res_brave_default_base/mipmap-hdpi/app_icon.png differ diff --git a/app/theme/brave/android/res_brave_default_base/mipmap-mdpi/app_icon.png b/app/theme/brave/android/res_brave_default_base/mipmap-mdpi/app_icon.png new file mode 100644 index 000000000000..10a941e1b092 Binary files /dev/null and b/app/theme/brave/android/res_brave_default_base/mipmap-mdpi/app_icon.png differ diff --git a/app/theme/brave/android/res_brave_default_base/mipmap-xhdpi/app_icon.png b/app/theme/brave/android/res_brave_default_base/mipmap-xhdpi/app_icon.png new file mode 100644 index 000000000000..571295bc0729 Binary files /dev/null and b/app/theme/brave/android/res_brave_default_base/mipmap-xhdpi/app_icon.png differ diff --git a/app/theme/brave/android/res_brave_default_base/mipmap-xxhdpi/app_icon.png b/app/theme/brave/android/res_brave_default_base/mipmap-xxhdpi/app_icon.png new file mode 100644 index 000000000000..20253bf03c66 Binary files /dev/null and b/app/theme/brave/android/res_brave_default_base/mipmap-xxhdpi/app_icon.png differ diff --git a/app/theme/brave/android/res_brave_default_base/mipmap-xxxhdpi/app_icon.png b/app/theme/brave/android/res_brave_default_base/mipmap-xxxhdpi/app_icon.png new file mode 100644 index 000000000000..80f9e490e1c9 Binary files /dev/null and b/app/theme/brave/android/res_brave_default_base/mipmap-xxxhdpi/app_icon.png differ diff --git a/app/theme/brave/android/res_brave_default/values/channel_constants.xml b/app/theme/brave/android/res_brave_default_base/values/channel_constants.xml similarity index 100% rename from app/theme/brave/android/res_brave_default/values/channel_constants.xml rename to app/theme/brave/android/res_brave_default_base/values/channel_constants.xml diff --git a/app/theme/brave/android/res_brave_dev/mipmap-hdpi/app_icon.png b/app/theme/brave/android/res_brave_dev_base/mipmap-hdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_dev/mipmap-hdpi/app_icon.png rename to app/theme/brave/android/res_brave_dev_base/mipmap-hdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_dev/mipmap-mdpi/app_icon.png b/app/theme/brave/android/res_brave_dev_base/mipmap-mdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_dev/mipmap-mdpi/app_icon.png rename to app/theme/brave/android/res_brave_dev_base/mipmap-mdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_dev/mipmap-xhdpi/app_icon.png b/app/theme/brave/android/res_brave_dev_base/mipmap-xhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_dev/mipmap-xhdpi/app_icon.png rename to app/theme/brave/android/res_brave_dev_base/mipmap-xhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_dev/mipmap-xxhdpi/app_icon.png b/app/theme/brave/android/res_brave_dev_base/mipmap-xxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_dev/mipmap-xxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_dev_base/mipmap-xxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_dev/mipmap-xxxhdpi/app_icon.png b/app/theme/brave/android/res_brave_dev_base/mipmap-xxxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_dev/mipmap-xxxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_dev_base/mipmap-xxxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_dev/values/channel_constants.xml b/app/theme/brave/android/res_brave_dev_base/values/channel_constants.xml similarity index 100% rename from app/theme/brave/android/res_brave_dev/values/channel_constants.xml rename to app/theme/brave/android/res_brave_dev_base/values/channel_constants.xml diff --git a/app/theme/brave/android/res_brave_nightly/mipmap-hdpi/app_icon.png b/app/theme/brave/android/res_brave_nightly_base/mipmap-hdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_nightly/mipmap-hdpi/app_icon.png rename to app/theme/brave/android/res_brave_nightly_base/mipmap-hdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_nightly/mipmap-mdpi/app_icon.png b/app/theme/brave/android/res_brave_nightly_base/mipmap-mdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_nightly/mipmap-mdpi/app_icon.png rename to app/theme/brave/android/res_brave_nightly_base/mipmap-mdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_nightly/mipmap-xhdpi/app_icon.png b/app/theme/brave/android/res_brave_nightly_base/mipmap-xhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_nightly/mipmap-xhdpi/app_icon.png rename to app/theme/brave/android/res_brave_nightly_base/mipmap-xhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_nightly/mipmap-xxhdpi/app_icon.png b/app/theme/brave/android/res_brave_nightly_base/mipmap-xxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_nightly/mipmap-xxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_nightly_base/mipmap-xxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_nightly/mipmap-xxxhdpi/app_icon.png b/app/theme/brave/android/res_brave_nightly_base/mipmap-xxxhdpi/app_icon.png similarity index 100% rename from app/theme/brave/android/res_brave_nightly/mipmap-xxxhdpi/app_icon.png rename to app/theme/brave/android/res_brave_nightly_base/mipmap-xxxhdpi/app_icon.png diff --git a/app/theme/brave/android/res_brave_nightly/values/channel_constants.xml b/app/theme/brave/android/res_brave_nightly_base/values/channel_constants.xml similarity index 100% rename from app/theme/brave/android/res_brave_nightly/values/channel_constants.xml rename to app/theme/brave/android/res_brave_nightly_base/values/channel_constants.xml diff --git a/app/theme/brave/android/values/channel_constants.xml b/app/theme/brave/android/values/channel_constants.xml new file mode 100644 index 000000000000..bf3e867eaa07 --- /dev/null +++ b/app/theme/brave/android/values/channel_constants.xml @@ -0,0 +1,11 @@ + + + + + + Brave - Debug + Brave bookmarks + Brave search + diff --git a/app/vector_icons/BUILD.gn b/app/vector_icons/BUILD.gn index b436032efed3..2dfe9a28cf7b 100644 --- a/app/vector_icons/BUILD.gn +++ b/app/vector_icons/BUILD.gn @@ -4,10 +4,10 @@ import("//components/vector_icons/vector_icons.gni") -aggregate_vector_icons("brave_vector_icons") { +aggregate_vector_icons2("brave_vector_icons") { icon_directory = "." - icons = [ + sources = [ "download_unlock.icon", "open_in_tor.icon", "speedreader.icon", diff --git a/app/welcome_strings.grdp b/app/welcome_strings.grdp index 490455a863b4..865381be6d69 100644 --- a/app/welcome_strings.grdp +++ b/app/welcome_strings.grdp @@ -8,6 +8,9 @@ Skip + + Step $11 of $22 + Bookmark added diff --git a/browser/BUILD.gn b/browser/BUILD.gn index aa3bb5904849..1baccb1b3f60 100644 --- a/browser/BUILD.gn +++ b/browser/BUILD.gn @@ -191,7 +191,6 @@ source_set("browser_process") { "//content/public/common", "//extensions/buildflags", "//services/network/public/cpp", - "//services/service_manager/embedder", "//third_party/blink/public/mojom:mojom_platform_headers", "//third_party/widevine/cdm:buildflags", "//ui/base", diff --git a/browser/brave_ads/android/java/org/chromium/chrome/browser/notifications/BraveAdsNotificationBuilder.java b/browser/brave_ads/android/java/org/chromium/chrome/browser/notifications/BraveAdsNotificationBuilder.java index 7ce1a8364cc6..ce76db0a73cd 100644 --- a/browser/brave_ads/android/java/org/chromium/chrome/browser/notifications/BraveAdsNotificationBuilder.java +++ b/browser/brave_ads/android/java/org/chromium/chrome/browser/notifications/BraveAdsNotificationBuilder.java @@ -18,6 +18,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Build; +import android.os.Process; import android.util.DisplayMetrics; import android.view.View; import android.widget.RemoteViews; @@ -218,8 +219,9 @@ private void addWorkProfileBadge(RemoteViews view) { Bitmap bitmap = Bitmap.createBitmap(colors, size, size, Bitmap.Config.ARGB_8888); Drawable inputDrawable = new BitmapDrawable(resources, bitmap); - Drawable outputDrawable = ApiCompatibilityUtils.getUserBadgedDrawableForDensity( - inputDrawable, null /* badgeLocation */, metrics.densityDpi); + Drawable outputDrawable = + mContext.getPackageManager().getUserBadgedDrawableForDensity(inputDrawable, + Process.myUserHandle(), null /* badgeLocation */, metrics.densityDpi); // The input bitmap is immutable, so the output drawable will be a different instance from // the input drawable if the work profile badge was applied. diff --git a/browser/brave_browser_process_impl.cc b/browser/brave_browser_process_impl.cc index 0dc99dc198d4..1412f7217ba5 100644 --- a/browser/brave_browser_process_impl.cc +++ b/browser/brave_browser_process_impl.cc @@ -36,7 +36,6 @@ #include "brave/services/network/public/cpp/system_request_handler.h" #include "chrome/browser/component_updater/component_updater_utils.h" #include "chrome/browser/net/system_network_context_manager.h" -#include "chrome/browser/ui/browser_list.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_paths.h" #include "components/component_updater/component_updater_service.h" @@ -86,6 +85,7 @@ #include "chrome/browser/android/component_updater/background_task_update_scheduler.h" #else #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_list.h" #endif #if BUILDFLAG(BRAVE_ADS_ENABLED) diff --git a/browser/brave_content_browser_client.cc b/browser/brave_content_browser_client.cc index 8e49b8c1c771..1b285b25a8ab 100644 --- a/browser/brave_content_browser_client.cc +++ b/browser/brave_content_browser_client.cc @@ -42,7 +42,7 @@ #include "components/content_settings/browser/page_specific_content_settings.h" #include "components/prefs/pref_service.h" #include "components/services/heap_profiling/public/mojom/heap_profiling_client.mojom.h" -#include "content/browser/frame_host/render_frame_host_impl.h" +#include "content/browser/renderer_host/render_frame_host_impl.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" @@ -297,6 +297,7 @@ bool BraveContentBrowserClient::WillCreateURLLoaderFactory( URLLoaderFactoryType type, const url::Origin& request_initiator, base::Optional navigation_id, + base::UkmSourceId ukm_source_id, mojo::PendingReceiver* factory_receiver, mojo::PendingRemote* header_client, @@ -312,7 +313,7 @@ bool BraveContentBrowserClient::WillCreateURLLoaderFactory( use_proxy |= ChromeContentBrowserClient::WillCreateURLLoaderFactory( browser_context, frame, render_process_id, type, request_initiator, - std::move(navigation_id), factory_receiver, header_client, + std::move(navigation_id), ukm_source_id, factory_receiver, header_client, bypass_redirect_checks, disable_secure_dns, factory_override); return use_proxy; diff --git a/browser/brave_content_browser_client.h b/browser/brave_content_browser_client.h index 251c44f41281..75322a466231 100644 --- a/browser/brave_content_browser_client.h +++ b/browser/brave_content_browser_client.h @@ -68,6 +68,7 @@ class BraveContentBrowserClient : public ChromeContentBrowserClient { URLLoaderFactoryType type, const url::Origin& request_initiator, base::Optional navigation_id, + base::UkmSourceId ukm_source_id, mojo::PendingReceiver* factory_receiver, mojo::PendingRemote* header_client, diff --git a/browser/brave_rewards/rewards_tab_helper.h b/browser/brave_rewards/rewards_tab_helper.h index 30d82bdadfbd..cd71f881e6cc 100644 --- a/browser/brave_rewards/rewards_tab_helper.h +++ b/browser/brave_rewards/rewards_tab_helper.h @@ -11,11 +11,14 @@ #include "base/macros.h" #include "brave/components/brave_rewards/browser/rewards_service_observer.h" #include "build/build_config.h" -#include "chrome/browser/ui/browser_list_observer.h" #include "components/sessions/core/session_id.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" +#if !defined(OS_ANDROID) +#include "chrome/browser/ui/browser_list_observer.h" +#endif + class Browser; namespace brave_rewards { @@ -24,7 +27,9 @@ class RewardsService; class RewardsTabHelper : public RewardsServiceObserver, public content::WebContentsObserver, +#if !defined(OS_ANDROID) public BrowserListObserver, +#endif public content::WebContentsUserData { public: explicit RewardsTabHelper(content::WebContents*); diff --git a/browser/brave_shields/cookie_pref_service_browsertest.cc b/browser/brave_shields/cookie_pref_service_browsertest.cc index dc1cd4c5a794..455c09b42e02 100644 --- a/browser/brave_shields/cookie_pref_service_browsertest.cc +++ b/browser/brave_shields/cookie_pref_service_browsertest.cc @@ -35,8 +35,6 @@ class CookiePrefServiceTest : public InProcessBrowserTest { } void SetThirdPartyCookiePref(bool setting) { - profile()->GetPrefs()->SetBoolean( - prefs::kBlockThirdPartyCookies, setting); profile()->GetPrefs()->SetInteger( prefs::kCookieControlsMode, static_cast( diff --git a/browser/brave_stats/brave_stats_updater.cc b/browser/brave_stats/brave_stats_updater.cc index 61b0931e4b87..e4e9a0668fef 100644 --- a/browser/brave_stats/brave_stats_updater.cc +++ b/browser/brave_stats/brave_stats_updater.cc @@ -30,6 +30,7 @@ #include "net/traffic_annotation/network_traffic_annotation.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" #if BUILDFLAG(ENABLE_BRAVE_REFERRALS) #include "brave/components/brave_referrals/common/pref_names.h" @@ -307,10 +308,10 @@ void BraveStatsUpdater::SendServerPing() { auto endpoint = BuildStatsEndpoint(kBraveUsageStandardPath); resource_request->url = GetUpdateURL(endpoint, *stats_updater_params); - resource_request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | - net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_AUTH_DATA; + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; + resource_request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES | + net::LOAD_BYPASS_CACHE | + net::LOAD_DISABLE_CACHE; resource_request->headers.SetHeader("X-Brave-API-Key", brave_stats::GetAPIKey()); network::mojom::URLLoaderFactory* loader_factory = @@ -337,10 +338,10 @@ void BraveStatsUpdater::SendUserTriggeredPing() { DisableThresholdPing(); resource_request->url = GURL(threshold_query); - resource_request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | - net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_AUTH_DATA; + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; + resource_request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES | + net::LOAD_BYPASS_CACHE | + net::LOAD_DISABLE_CACHE; resource_request->headers.SetHeader("X-Brave-API-Key", brave_stats::GetAPIKey()); network::mojom::URLLoaderFactory* loader_factory = diff --git a/browser/browsing_data/brave_clear_browsing_data_browsertest.cc b/browser/browsing_data/brave_clear_browsing_data_browsertest.cc index e86fcd6eb99e..3dece290da42 100644 --- a/browser/browsing_data/brave_clear_browsing_data_browsertest.cc +++ b/browser/browsing_data/brave_clear_browsing_data_browsertest.cc @@ -318,7 +318,7 @@ IN_PROC_BROWSER_TEST_F(BraveClearDataOnExitTwoBrowsersTest, OneOTR) { // Open a second browser window with OTR profile. Browser* second_window = - NewBrowserWindow(browser()->profile()->GetOffTheRecordProfile()); + NewBrowserWindow(browser()->profile()->GetPrimaryOTRProfile()); // Close second browser window CloseBrowserWindow(second_window); EXPECT_EQ(0, remove_data_call_count()); @@ -335,7 +335,7 @@ IN_PROC_BROWSER_TEST_F(BraveClearDataOnExitTwoBrowsersTest, OneOTRExitsLast) { // Open a second browser window with OTR profile. Browser* second_window = - NewBrowserWindow(browser()->profile()->GetOffTheRecordProfile()); + NewBrowserWindow(browser()->profile()->GetPrimaryOTRProfile()); // Close regular profile window. CloseBrowserWindow(browser()); diff --git a/browser/download/BUILD.gn b/browser/download/BUILD.gn index dd5ccee895ed..b7e3db1a8dd0 100644 --- a/browser/download/BUILD.gn +++ b/browser/download/BUILD.gn @@ -17,7 +17,7 @@ source_set("download") { # brave_download_item_model.cc. "//chrome/common", "//components/strings:components_strings_grit", - "//content/public/common", + "//third_party/blink/public/common", "//ui/base", "//ui/gfx", "//url", diff --git a/browser/download/brave_download_item_model.cc b/browser/download/brave_download_item_model.cc index 6350c82dfdc8..399ffbd0295e 100644 --- a/browser/download/brave_download_item_model.cc +++ b/browser/download/brave_download_item_model.cc @@ -11,7 +11,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "components/strings/grit/components_strings.h" -#include "content/public/common/origin_util.h" +#include "third_party/blink/public/common/loader/network_utils.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/text_constants.h" #include "ui/gfx/text_elider.h" @@ -54,7 +54,7 @@ base::string16 BraveDownloadItemModel::GetOriginURLText(bool* is_secure) { std::string origin; if (gurl.is_valid()) { - *is_secure = content::IsOriginSecure(gurl); + *is_secure = blink::network_utils::IsOriginSecure(gurl); if (gurl.SchemeIs(url::kAboutScheme)) { origin = gurl.spec(); } else { diff --git a/browser/extensions/api/settings_private/brave_prefs_util.cc b/browser/extensions/api/settings_private/brave_prefs_util.cc index 10f4dc8db73b..d82262059fbb 100644 --- a/browser/extensions/api/settings_private/brave_prefs_util.cc +++ b/browser/extensions/api/settings_private/brave_prefs_util.cc @@ -54,151 +54,151 @@ using ntp_background_images::prefs::kNewTabPageSuperReferralThemesOption; namespace settings_api = api::settings_private; -const PrefsUtil::TypedPrefMap& BravePrefsUtil::GetWhitelistedKeys() { +const PrefsUtil::TypedPrefMap& BravePrefsUtil::GetAllowlistedKeys() { // Static cache, similar to parent class - static PrefsUtil::TypedPrefMap* s_brave_whitelist = nullptr; - if (s_brave_whitelist) - return *s_brave_whitelist; - s_brave_whitelist = new PrefsUtil::TypedPrefMap(); - // Start with parent class whitelist - const auto chromium_prefs = PrefsUtil::GetWhitelistedKeys(); - s_brave_whitelist->insert(chromium_prefs.begin(), chromium_prefs.end()); - // Add Brave values to the whitelist + static PrefsUtil::TypedPrefMap* s_brave_allowlist = nullptr; + if (s_brave_allowlist) + return *s_brave_allowlist; + s_brave_allowlist = new PrefsUtil::TypedPrefMap(); + // Start with parent class allowlist + const auto chromium_prefs = PrefsUtil::GetAllowlistedKeys(); + s_brave_allowlist->insert(chromium_prefs.begin(), chromium_prefs.end()); + // Add Brave values to the allowlist // import data - (*s_brave_whitelist)[kImportDialogExtensions] = + (*s_brave_allowlist)[kImportDialogExtensions] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kImportDialogPayments] = + (*s_brave_allowlist)[kImportDialogPayments] = settings_api::PrefType::PREF_TYPE_BOOLEAN; // Default Brave shields - (*s_brave_whitelist)[kShieldsAdvancedViewEnabled] = + (*s_brave_allowlist)[kShieldsAdvancedViewEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kShieldsStatsBadgeVisible] = + (*s_brave_allowlist)[kShieldsStatsBadgeVisible] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kAdControlType] = + (*s_brave_allowlist)[kAdControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kHTTPSEVerywhereControlType] = + (*s_brave_allowlist)[kHTTPSEVerywhereControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNoScriptControlType] = + (*s_brave_allowlist)[kNoScriptControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kGoogleLoginControlType] = + (*s_brave_allowlist)[kGoogleLoginControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kFBEmbedControlType] = + (*s_brave_allowlist)[kFBEmbedControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kTwitterEmbedControlType] = + (*s_brave_allowlist)[kTwitterEmbedControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kLinkedInEmbedControlType] = + (*s_brave_allowlist)[kLinkedInEmbedControlType] = settings_api::PrefType::PREF_TYPE_BOOLEAN; // appearance prefs - (*s_brave_whitelist)[kLocationBarIsWide] = + (*s_brave_allowlist)[kLocationBarIsWide] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kAutocompleteEnabled] = + (*s_brave_allowlist)[kAutocompleteEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kTopSiteSuggestionsEnabled] = + (*s_brave_allowlist)[kTopSiteSuggestionsEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kBraveSuggestedSiteSuggestionsEnabled] = + (*s_brave_allowlist)[kBraveSuggestedSiteSuggestionsEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[brave_rewards::prefs::kHideButton] = + (*s_brave_allowlist)[brave_rewards::prefs::kHideButton] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kAskWidevineInstall] = + (*s_brave_allowlist)[kAskWidevineInstall] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageSuperReferralThemesOption] = + (*s_brave_allowlist)[kNewTabPageSuperReferralThemesOption] = settings_api::PrefType::PREF_TYPE_NUMBER; // new tab prefs - (*s_brave_whitelist)[kNewTabPageShowSponsoredImagesBackgroundImage] = + (*s_brave_allowlist)[kNewTabPageShowSponsoredImagesBackgroundImage] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowBackgroundImage] = + (*s_brave_allowlist)[kNewTabPageShowBackgroundImage] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowClock] = + (*s_brave_allowlist)[kNewTabPageShowClock] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowStats] = + (*s_brave_allowlist)[kNewTabPageShowStats] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowRewards] = + (*s_brave_allowlist)[kNewTabPageShowRewards] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowBinance] = + (*s_brave_allowlist)[kNewTabPageShowBinance] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowTogether] = + (*s_brave_allowlist)[kNewTabPageShowTogether] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowAddCard] = + (*s_brave_allowlist)[kNewTabPageShowAddCard] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kNewTabPageShowGemini] = + (*s_brave_allowlist)[kNewTabPageShowGemini] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #if BUILDFLAG(MOONPAY_ENABLED) - (*s_brave_whitelist)[kMoonpayNewTabPageShowBitcoinDotCom] = + (*s_brave_allowlist)[kMoonpayNewTabPageShowBitcoinDotCom] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif #if BUILDFLAG(CRYPTO_DOT_COM_ENABLED) - (*s_brave_whitelist)[kCryptoDotComNewTabPageShowCryptoDotCom] = + (*s_brave_allowlist)[kCryptoDotComNewTabPageShowCryptoDotCom] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif // Clear browsing data on exit prefs. - (*s_brave_whitelist)[browsing_data::prefs::kDeleteBrowsingHistoryOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeleteDownloadHistoryOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteDownloadHistoryOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeleteCacheOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteCacheOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeleteCookiesOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteCookiesOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeletePasswordsOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeletePasswordsOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeleteFormDataOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteFormDataOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeleteSiteSettingsOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteSiteSettingsOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[browsing_data::prefs::kDeleteHostedAppsDataOnExit] = + (*s_brave_allowlist)[browsing_data::prefs::kDeleteHostedAppsDataOnExit] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kAlwaysShowBookmarkBarOnNTP] = + (*s_brave_allowlist)[kAlwaysShowBookmarkBarOnNTP] = settings_api::PrefType::PREF_TYPE_BOOLEAN; - (*s_brave_whitelist)[kMRUCyclingEnabled] = + (*s_brave_allowlist)[kMRUCyclingEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; // WebTorrent pref - (*s_brave_whitelist)[kWebTorrentEnabled] = + (*s_brave_allowlist)[kWebTorrentEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #if BUILDFLAG(ENABLE_BRAVE_WAYBACK_MACHINE) - (*s_brave_whitelist)[kBraveWaybackMachineEnabled] = + (*s_brave_allowlist)[kBraveWaybackMachineEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif // Hangouts pref - (*s_brave_whitelist)[kHangoutsEnabled] = + (*s_brave_allowlist)[kHangoutsEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; // IPFS Companion pref - (*s_brave_whitelist)[kIPFSCompanionEnabled] = + (*s_brave_allowlist)[kIPFSCompanionEnabled] = settings_api::PrefType::PREF_TYPE_BOOLEAN; // Brave Wallet pref #if BUILDFLAG(BRAVE_WALLET_ENABLED) - (*s_brave_whitelist)[kBraveWalletWeb3Provider] = + (*s_brave_allowlist)[kBraveWalletWeb3Provider] = settings_api::PrefType::PREF_TYPE_NUMBER; - (*s_brave_whitelist)[kLoadCryptoWalletsOnStartup] = + (*s_brave_allowlist)[kLoadCryptoWalletsOnStartup] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif // IPFS pref #if BUILDFLAG(IPFS_ENABLED) - (*s_brave_whitelist)[kIPFSResolveMethod] = + (*s_brave_allowlist)[kIPFSResolveMethod] = settings_api::PrefType::PREF_TYPE_NUMBER; - (*s_brave_whitelist)[kIPFSAutoFallbackToGateway] = + (*s_brave_allowlist)[kIPFSAutoFallbackToGateway] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif // Media Router Pref - (*s_brave_whitelist)[kBraveEnabledMediaRouter] = + (*s_brave_allowlist)[kBraveEnabledMediaRouter] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #if !BUILDFLAG(USE_GCM_FROM_PLATFORM) // Push Messaging Pref - (*s_brave_whitelist)[kBraveGCMChannelStatus] = + (*s_brave_allowlist)[kBraveGCMChannelStatus] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif // Omnibox pref - (*s_brave_whitelist)[omnibox::kPreventUrlElisionsInOmnibox] = + (*s_brave_allowlist)[omnibox::kPreventUrlElisionsInOmnibox] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #if BUILDFLAG(ENABLE_TOR) - (*s_brave_whitelist)[tor::prefs::kAutoOnionLocation] = + (*s_brave_allowlist)[tor::prefs::kAutoOnionLocation] = settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif - (*s_brave_whitelist)[prefs::kWebRTCIPHandlingPolicy] = + (*s_brave_allowlist)[prefs::kWebRTCIPHandlingPolicy] = settings_api::PrefType::PREF_TYPE_STRING; - return *s_brave_whitelist; + return *s_brave_allowlist; } } // namespace extensions diff --git a/browser/extensions/api/settings_private/brave_prefs_util.h b/browser/extensions/api/settings_private/brave_prefs_util.h index fd8383f2e4f0..43319d27bbda 100644 --- a/browser/extensions/api/settings_private/brave_prefs_util.h +++ b/browser/extensions/api/settings_private/brave_prefs_util.h @@ -1,22 +1,24 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifndef BRAVE_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_BRAVE_PREFS_UTIL_H -#define BRAVE_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_BRAVE_PREFS_UTIL_H +#ifndef BRAVE_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_BRAVE_PREFS_UTIL_H_ +#define BRAVE_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_BRAVE_PREFS_UTIL_H_ #include "chrome/browser/extensions/api/settings_private/prefs_util.h" -namespace extensions{ + +namespace extensions { class BravePrefsUtil : public PrefsUtil { - public: - using PrefsUtil::PrefsUtil; - // Gets the list of whitelisted pref keys -- that is, those which correspond - // to prefs that clients of the settingsPrivate API may retrieve and - // manipulate. - const PrefsUtil::TypedPrefMap& GetWhitelistedKeys() override; + public: + using PrefsUtil::PrefsUtil; + // Gets the list of allowlisted pref keys -- that is, those which correspond + // to prefs that clients of the settingsPrivate API may retrieve and + // manipulate. + const PrefsUtil::TypedPrefMap& GetAllowlistedKeys() override; }; -} +} // namespace extensions -#endif \ No newline at end of file +#endif // BRAVE_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_BRAVE_PREFS_UTIL_H_ diff --git a/browser/ipfs/ipfs_tab_helper_browsertest.cc b/browser/ipfs/ipfs_tab_helper_browsertest.cc index aa26171dca27..e59e3002b7f9 100644 --- a/browser/ipfs/ipfs_tab_helper_browsertest.cc +++ b/browser/ipfs/ipfs_tab_helper_browsertest.cc @@ -46,7 +46,6 @@ class IPFSTabHelperTest : public InProcessBrowserTest, void SetUpOnMainThread() override { InProcessBrowserTest::SetUpOnMainThread(); host_resolver()->AddRule("*", "127.0.0.1"); - content::SetupCrossSiteRedirector(embedded_test_server()); brave::RegisterPathProvider(); base::FilePath test_data_dir; base::PathService::Get(brave::DIR_TEST_DATA, &test_data_dir); @@ -131,7 +130,8 @@ IN_PROC_BROWSER_TEST_F(IPFSTabHelperTest, InfobarAddWithAccept) { InfoBarService::FromWebContents(active_contents()); AddInfoBarObserver(infobar_service); EXPECT_TRUE(NavigateToURLUntilLoadStop( - "dweb.link", "/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR")); + "cloudflare-ipfs.com", + "/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR")); WaitForInfobarAdded(); InfoBarAccept(ConfirmInfoBarDelegate::BUTTON_OK | @@ -148,7 +148,8 @@ IN_PROC_BROWSER_TEST_F(IPFSTabHelperTest, InfobarAddWithSettings) { InfoBarService::FromWebContents(active_contents()); AddInfoBarObserver(infobar_service); EXPECT_TRUE(NavigateToURLUntilLoadStop( - "dweb.link", "/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR")); + "cloudflare-ipfs.com", + "/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR")); WaitForInfobarAdded(); InfoBarCancel(ConfirmInfoBarDelegate::BUTTON_OK | diff --git a/browser/metrics/test/BUILD.gn b/browser/metrics/test/BUILD.gn new file mode 100644 index 000000000000..296d7d64ff18 --- /dev/null +++ b/browser/metrics/test/BUILD.gn @@ -0,0 +1,31 @@ +# Copyright (c) 2020 The Brave Authors. All rights reserved. +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import("//brave/build/config.gni") +import("//brave/components/brave_ads/browser/buildflags/buildflags.gni") +import("//build/config/sanitizers/sanitizers.gni") +import("//testing/test.gni") + +source_set("brave_metrics_unit_tests") { + testonly = true + if (is_linux) { + sources = [ "//brave/browser/metrics/metrics_reporting_util_unittest_linux.cc" ] + + deps = [ + "//base/test:test_support", + "//brave/base:base", + "//brave/browser:browser_process", + "//brave/test:brave_browser_tests", + "//chrome/browser:browser", + "//chrome/common:channel_info", + "//components/version_info:channel", + "//content/test:test_support", + ] + + configs += [ + "//brave/build/linux:linux_channel_names", + ] + } +} diff --git a/browser/net/brave_network_delegate_browsertest.cc b/browser/net/brave_network_delegate_browsertest.cc index 9d67afa02bbd..e2e4a3fca27b 100644 --- a/browser/net/brave_network_delegate_browsertest.cc +++ b/browser/net/brave_network_delegate_browsertest.cc @@ -16,6 +16,7 @@ #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/content_settings/core/common/pref_names.h" #include "components/network_session_configurator/common/network_switches.h" +#include "components/content_settings/core/browser/cookie_settings.h" #include "components/prefs/pref_service.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" @@ -307,8 +308,10 @@ IN_PROC_BROWSER_TEST_F(BraveNetworkDelegateBrowserTest, DefaultBlockAllCookies(); DefaultBlockThirdPartyCookies(); - EXPECT_TRUE(browser()->profile()->GetPrefs()->GetBoolean( - prefs::kBlockThirdPartyCookies)); + EXPECT_EQ(static_cast( + browser()->profile()->GetPrefs()->GetInteger(prefs::kCookieControlsMode)), + content_settings::CookieControlsMode::kBlockThirdParty); + EXPECT_EQ(browser()->profile()->GetPrefs()->GetInteger( "profile.default_content_setting_values.cookies"), ContentSetting::CONTENT_SETTING_ALLOW); @@ -328,8 +331,9 @@ IN_PROC_BROWSER_TEST_F(BraveNetworkDelegateBrowserTest, DefaultBlockAllCookies(); DefaultAllowAllCookies(); - EXPECT_FALSE(browser()->profile()->GetPrefs()->GetBoolean( - prefs::kBlockThirdPartyCookies)); + EXPECT_EQ(static_cast( + browser()->profile()->GetPrefs()->GetInteger(prefs::kCookieControlsMode)), + content_settings::CookieControlsMode::kOff); EXPECT_EQ(browser()->profile()->GetPrefs()->GetInteger( "profile.default_content_setting_values.cookies"), ContentSetting::CONTENT_SETTING_ALLOW); @@ -346,8 +350,9 @@ IN_PROC_BROWSER_TEST_F(BraveNetworkDelegateBrowserTest, DefaultBlockThirdPartyCookies(); DefaultAllowAllCookies(); - EXPECT_FALSE(browser()->profile()->GetPrefs()->GetBoolean( - prefs::kBlockThirdPartyCookies)); + EXPECT_EQ(static_cast( + browser()->profile()->GetPrefs()->GetInteger(prefs::kCookieControlsMode)), + content_settings::CookieControlsMode::kOff); EXPECT_EQ(browser()->profile()->GetPrefs()->GetInteger( "profile.default_content_setting_values.cookies"), ContentSetting::CONTENT_SETTING_ALLOW); @@ -364,8 +369,9 @@ IN_PROC_BROWSER_TEST_F(BraveNetworkDelegateBrowserTest, DefaultBlockThirdPartyCookies(); DefaultBlockAllCookies(); - EXPECT_FALSE(browser()->profile()->GetPrefs()->GetBoolean( - prefs::kBlockThirdPartyCookies)); + EXPECT_EQ(static_cast( + browser()->profile()->GetPrefs()->GetInteger(prefs::kCookieControlsMode)), + content_settings::CookieControlsMode::kBlockThirdParty); EXPECT_EQ(browser()->profile()->GetPrefs()->GetInteger( "profile.default_content_setting_values.cookies"), ContentSetting::CONTENT_SETTING_BLOCK); @@ -382,8 +388,9 @@ IN_PROC_BROWSER_TEST_F(BraveNetworkDelegateBrowserTest, DefaultAllowAllCookies(); DefaultBlockThirdPartyCookies(); - EXPECT_TRUE(browser()->profile()->GetPrefs()->GetBoolean( - prefs::kBlockThirdPartyCookies)); + EXPECT_EQ(static_cast( + browser()->profile()->GetPrefs()->GetInteger(prefs::kCookieControlsMode)), + content_settings::CookieControlsMode::kBlockThirdParty); EXPECT_EQ(browser()->profile()->GetPrefs()->GetInteger( "profile.default_content_setting_values.cookies"), ContentSetting::CONTENT_SETTING_ALLOW); @@ -400,8 +407,9 @@ IN_PROC_BROWSER_TEST_F(BraveNetworkDelegateBrowserTest, DefaultAllowAllCookies(); DefaultBlockAllCookies(); - EXPECT_FALSE(browser()->profile()->GetPrefs()->GetBoolean( - prefs::kBlockThirdPartyCookies)); + EXPECT_EQ(static_cast( + browser()->profile()->GetPrefs()->GetInteger(prefs::kCookieControlsMode)), + content_settings::CookieControlsMode::kBlockThirdParty); EXPECT_EQ(browser()->profile()->GetPrefs()->GetInteger( "profile.default_content_setting_values.cookies"), ContentSetting::CONTENT_SETTING_BLOCK); diff --git a/browser/net/brave_proxying_url_loader_factory.cc b/browser/net/brave_proxying_url_loader_factory.cc index 3a36d0ba831d..f368590e2c64 100644 --- a/browser/net/brave_proxying_url_loader_factory.cc +++ b/browser/net/brave_proxying_url_loader_factory.cc @@ -303,36 +303,19 @@ void BraveProxyingURLLoaderFactory::InProgressRequest:: "Non-Authoritative-Reason: WebRequest API\n\n", kInternalRedirectStatusCode, redirect_url_.spec().c_str()); - if (base::FeatureList::IsEnabled(network::features::kOutOfBlinkCors)) { - // Cross-origin requests need to modify the Origin header to 'null'. Since - // CorsURLLoader sets |request_initiator| to the Origin request header in - // NetworkService, we need to modify |request_initiator| here to craft the - // Origin header indirectly. - // Following checks implement the step 10 of "4.4. HTTP-redirect fetch", - // https://fetch.spec.whatwg.org/#http-redirect-fetch - if (request_.request_initiator && - (!url::Origin::Create(redirect_url_) - .IsSameOriginWith(url::Origin::Create(request_.url)) && - !request_.request_initiator->IsSameOriginWith( - url::Origin::Create(request_.url)))) { - // Reset the initiator to pretend tainted origin flag of the spec is set. - request_.request_initiator = url::Origin(); - } - } else { - // If this redirect is used in a cross-origin request, add CORS headers to - // make sure that the redirect gets through the Blink CORS. Note that the - // destination URL is still subject to the usual CORS policy, i.e. the - // resource will only be available to web pages if the server serves the - // response with the required CORS response headers. Matches the behavior in - // url_request_redirect_job.cc. - std::string http_origin; - if (request_.headers.GetHeader("Origin", &http_origin)) { - headers += base::StringPrintf( - "\n" - "Access-Control-Allow-Origin: %s\n" - "Access-Control-Allow-Credentials: true", - http_origin.c_str()); - } + // Cross-origin requests need to modify the Origin header to 'null'. Since + // CorsURLLoader sets |request_initiator| to the Origin request header in + // NetworkService, we need to modify |request_initiator| here to craft the + // Origin header indirectly. + // Following checks implement the step 10 of "4.4. HTTP-redirect fetch", + // https://fetch.spec.whatwg.org/#http-redirect-fetch + if (request_.request_initiator && + (!url::Origin::Create(redirect_url_) + .IsSameOriginWith(url::Origin::Create(request_.url)) && + !request_.request_initiator->IsSameOriginWith( + url::Origin::Create(request_.url)))) { + // Reset the initiator to pretend tainted origin flag of the spec is set. + request_.request_initiator = url::Origin(); } head->headers = base::MakeRefCounted( net::HttpUtil::AssembleRawHeaders(headers)); diff --git a/browser/profiles/brave_profile_manager_unittest.cc b/browser/profiles/brave_profile_manager_unittest.cc index c4df935e3f8c..54c438c4198c 100644 --- a/browser/profiles/brave_profile_manager_unittest.cc +++ b/browser/profiles/brave_profile_manager_unittest.cc @@ -136,7 +136,7 @@ TEST_F(BraveProfileManagerTest, InitProfileUserPrefs) { ASSERT_TRUE(tor_profile); EXPECT_EQ(brave::GetParentProfile(tor_profile), profile); - tor_profile = tor_profile->GetOffTheRecordProfile(); + tor_profile = tor_profile->GetPrimaryOTRProfile(); // Check that the tor_profile name is non empty std::string profile_name = @@ -246,7 +246,7 @@ TEST_F(BraveProfileManagerTest, ProxyConfigMonitorInTorProfile) { Profile* parent_profile = profile_manager->GetProfile(dest_path); base::FilePath tor_path = BraveProfileManager::GetTorProfilePath(); Profile* profile = - profile_manager->GetProfile(tor_path)->GetOffTheRecordProfile(); + profile_manager->GetProfile(tor_path)->GetPrimaryOTRProfile(); ASSERT_TRUE(profile); EXPECT_EQ(brave::GetParentProfile(profile), parent_profile); diff --git a/browser/profiles/profile_util.h b/browser/profiles/profile_util.h index 0253306649e9..9ee202edec8a 100644 --- a/browser/profiles/profile_util.h +++ b/browser/profiles/profile_util.h @@ -66,7 +66,7 @@ content::BrowserContext* GetBrowserContextRedirectedInIncognitoOverride( if (brave::IsSessionProfile(context)) { \ auto* parent = brave::GetParentProfile(context); \ context = \ - context->IsOffTheRecord() ? parent->GetOffTheRecordProfile() : parent; \ + context->IsOffTheRecord() ? parent->GetPrimaryOTRProfile() : parent; \ } #endif // BRAVE_BROWSER_PROFILES_PROFILE_UTIL_H_ diff --git a/browser/renderer_context_menu/brave_spelling_menu_observer_browsertest.cc b/browser/renderer_context_menu/brave_spelling_menu_observer_browsertest.cc index e8dc48f63186..42ef3d95a021 100644 --- a/browser/renderer_context_menu/brave_spelling_menu_observer_browsertest.cc +++ b/browser/renderer_context_menu/brave_spelling_menu_observer_browsertest.cc @@ -37,7 +37,7 @@ class BraveSpellingMenuObserverTest : public InProcessBrowserTest { void Reset(bool incognito = false) { observer_.reset(); menu_.reset(new BraveMockRenderViewContextMenu( - incognito ? browser()->profile()->GetOffTheRecordProfile() + incognito ? browser()->profile()->GetPrimaryOTRProfile() : browser()->profile())); observer_.reset(new SpellingMenuObserver(menu_.get())); menu_->SetObserver(observer_.get()); diff --git a/browser/renderer_context_menu/brave_spelling_options_submenu_observer_browsertest.cc b/browser/renderer_context_menu/brave_spelling_options_submenu_observer_browsertest.cc index 68b836dc1f99..e03d12e6e084 100644 --- a/browser/renderer_context_menu/brave_spelling_options_submenu_observer_browsertest.cc +++ b/browser/renderer_context_menu/brave_spelling_options_submenu_observer_browsertest.cc @@ -42,7 +42,7 @@ class BraveSpellingOptionsSubMenuObserverTest : public InProcessBrowserTest { BraveSpellingOptionsSubMenuObserver::GTEST_MODE_NORMAL) { Clear(); menu_.reset(new BraveMockRenderViewContextMenu( - incognito ? browser()->profile()->GetOffTheRecordProfile() + incognito ? browser()->profile()->GetPrimaryOTRProfile() : browser()->profile())); std::unique_ptr observer = std::make_unique(menu_.get(), diff --git a/browser/resources/extensions/BUILD.gn b/browser/resources/extensions/BUILD.gn index 8693d25ef5c5..5b9dbbdefeff 100644 --- a/browser/resources/extensions/BUILD.gn +++ b/browser/resources/extensions/BUILD.gn @@ -36,7 +36,7 @@ action("unpak_brave_extensions_resources") { script = "//chrome/browser/resources/unpack_pak.py" pak_file = "brave_extensions_resources.pak" - out_folder = "$root_gen_dir/chrome/browser/resources/extensions/extensions_resources.unpak" + out_folder = "$root_gen_dir/chrome/browser/resources/extensions/preprocessed" inputs = [ "$target_gen_dir/brave_extensions_resources.pak", diff --git a/browser/resources/settings/BUILD.gn b/browser/resources/settings/BUILD.gn index 407b4f9c0f67..c1a08f59d85e 100644 --- a/browser/resources/settings/BUILD.gn +++ b/browser/resources/settings/BUILD.gn @@ -53,7 +53,7 @@ if (optimize_webui) { script = "//chrome/browser/resources/unpack_pak.py" pak_file = "brave_settings_resources.pak" - out_folder = "$root_gen_dir/chrome/browser/resources/settings/settings_resources.unpak" + out_folder = "$root_gen_dir/chrome/browser/resources/settings/preprocessed" inputs = [ "$target_gen_dir/brave_settings_resources.pak", diff --git a/browser/resources/settings/brave_overrides/index.js b/browser/resources/settings/brave_overrides/index.js index 5ed0439996e1..4969b937d333 100644 --- a/browser/resources/settings/brave_overrides/index.js +++ b/browser/resources/settings/brave_overrides/index.js @@ -18,6 +18,7 @@ import './default_browser_page.js' import './icons.js' import './import_data_dialog.js' import './page_visibility.js' +import './passwords_section.js' import './payments_section.js' import './people_page.js' import './printing_page.js' diff --git a/browser/resources/settings/brave_overrides/passwords_section.js b/browser/resources/settings/brave_overrides/passwords_section.js new file mode 100644 index 000000000000..cb4cdb090eea --- /dev/null +++ b/browser/resources/settings/brave_overrides/passwords_section.js @@ -0,0 +1,23 @@ +// Copyright (c) 2020 The Brave Authors. All rights reserved. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this file, +// you can obtain one at http://mozilla.org/MPL/2.0/. + +import {RegisterPolymerTemplateModifications} from 'chrome://brave-resources/polymer_overriding.js' + +RegisterPolymerTemplateModifications({ + 'passwords-section': (templateContent) => { + const checkPasswordsLinkRow = templateContent.querySelector('#checkPasswordsLinkRow') + if (!checkPasswordsLinkRow) { + console.error('[Brave Settings Overrides] Could not find checkPasswordsLinkRow in passwords_section') + } else { + checkPasswordsLinkRow.remove() + } + const manageLink = templateContent.querySelector('#manageLink') + if (!manageLink) { + console.error('[Brave Settings Overrides] Could not find manageLink in passwords_section') + } else { + manageLink.remove() + } + } +}) diff --git a/browser/resources/settings/settings_resources.grd b/browser/resources/settings/settings_resources.grd index a9d159d313d4..41273689da58 100644 --- a/browser/resources/settings/settings_resources.grd +++ b/browser/resources/settings/settings_resources.grd @@ -79,6 +79,11 @@ compress="false" preprocess="true" type="BINDATA" /> + profile(); - Profile* incognito_profile = profile->GetOffTheRecordProfile(); + Profile* incognito_profile = profile->GetPrimaryOTRProfile(); // This test case is only for non-qwant region. if (brave::IsRegionForQwant(profile)) @@ -103,7 +103,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderServiceTest, IN_PROC_BROWSER_TEST_F(SearchEngineProviderServiceTest, PrivateWindowTestWithQwantRegion) { Profile* profile = browser()->profile(); - Profile* incognito_profile = profile->GetOffTheRecordProfile(); + Profile* incognito_profile = profile->GetPrimaryOTRProfile(); // This test case is only for qwant region. if (!brave::IsRegionForQwant(profile)) diff --git a/browser/themes/BUILD.gn b/browser/themes/BUILD.gn index d8e388d6df75..6a35399692ec 100644 --- a/browser/themes/BUILD.gn +++ b/browser/themes/BUILD.gn @@ -1,8 +1,5 @@ source_set("themes") { - sources = [ - "brave_dark_mode_utils.h", - "brave_dark_mode_utils_android.cc", - ] + sources = [ "brave_dark_mode_utils.h" ] deps = [ "//base", @@ -10,17 +7,30 @@ source_set("themes") { "//brave/common:switches", ] - if (!is_android) { + if (is_android) { + sources += [ "brave_dark_mode_utils_android.cc" ] + } else { sources += [ "brave_dark_mode_utils_internal.cc", "brave_dark_mode_utils_internal.h", - "brave_dark_mode_utils_linux.cc", - "brave_dark_mode_utils_mac.mm", - "brave_dark_mode_utils_win.cc", "theme_properties.cc", "theme_properties.h", ] + if (is_linux) { + sources += [ "brave_dark_mode_utils_linux.cc" ] + } + + if (is_mac) { + sources += [ "brave_dark_mode_utils_mac.mm" ] + } + + if (is_win) { + sources += [ + "brave_dark_mode_utils_win.cc", + ] + } + deps += [ "//chrome/browser:theme_properties", "//skia:skia", diff --git a/browser/themes/brave_theme_service_browsertest.cc b/browser/themes/brave_theme_service_browsertest.cc index 80c13c9c82b6..0fe1f01d33c7 100644 --- a/browser/themes/brave_theme_service_browsertest.cc +++ b/browser/themes/brave_theme_service_browsertest.cc @@ -62,7 +62,7 @@ class BraveThemeServiceTestWithoutSystemTheme : public InProcessBrowserTest { IN_PROC_BROWSER_TEST_F(BraveThemeServiceTestWithoutSystemTheme, BraveThemeChangeTest) { Profile* profile = browser()->profile(); - Profile* profile_private = profile->GetOffTheRecordProfile(); + Profile* profile_private = profile->GetPrimaryOTRProfile(); const ui::ThemeProvider& tp = ThemeService::GetThemeProviderForProfile(profile); diff --git a/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java b/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java new file mode 100644 index 000000000000..28e0343839b9 --- /dev/null +++ b/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java @@ -0,0 +1,45 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.ui.appmenu; + +import android.content.SharedPreferences; +import android.graphics.Rect; +import android.view.View; + +import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.ui.appmenu.internal.R; +import org.chromium.ui.base.DeviceFormFactor; + +class BraveAppMenu { + private static final String BRAVE_IS_MENU_FROM_BOTTOM = "brave_is_menu_from_bottom"; + + public static int[] getPopupPosition(int[] tempLocation, boolean isByPermanentButton, + int negativeSoftwareVerticalOffset, int negativeVerticalOffsetNotTopAnchored, + int screenRotation, Rect appRect, Rect padding, View anchorView, int popupWidth, + int popupHeight, int viewLayoutDirection) { + int[] position = AppMenu.getPopupPosition(tempLocation, isByPermanentButton, + negativeSoftwareVerticalOffset, negativeVerticalOffsetNotTopAnchored, + screenRotation, appRect, padding, anchorView, popupWidth, popupHeight, + viewLayoutDirection); + if (isMenuFromBottom()) { + anchorView.getLocationOnScreen(tempLocation); + int anchorViewLocationOnScreenY = tempLocation[1]; + position[1] += appRect.bottom - anchorViewLocationOnScreenY - popupHeight; + position[1] -= negativeVerticalOffsetNotTopAnchored; + position[1] += padding.bottom; + } + return position; + } + + public static int getAnimationStyle() { + return isMenuFromBottom() ? R.style.OverflowMenuAnimBottom : R.style.OverflowMenuAnim; + } + + private static boolean isMenuFromBottom() { + SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); + return sharedPreferences.getBoolean(BRAVE_IS_MENU_FROM_BOTTOM, false); + } +} diff --git a/browser/ui/android/strings/android_brave_strings.grd b/browser/ui/android/strings/android_brave_strings.grd index 48af728b7f4e..f75a3ea95b28 100644 --- a/browser/ui/android/strings/android_brave_strings.grd +++ b/browser/ui/android/strings/android_brave_strings.grd @@ -298,12 +298,6 @@ This file contains all "about" strings. It is set to NOT be translated, in tran Enable bottom toolbar - - On - - - Off - Your changes will take effect the next time you relaunch Brave @@ -330,9 +324,6 @@ This file contains all "about" strings. It is set to NOT be translated, in tran You can always change your preference later in app settings. - - Save - Block @@ -387,12 +378,6 @@ This file contains all "about" strings. It is set to NOT be translated, in tran Continue to wallet - - Continue - - - Cancel - Set as default browser @@ -1215,9 +1200,6 @@ until they verify, or until 90 days have passed. Turn on privacy reports - - Learn more - Week @@ -1320,6 +1302,9 @@ until they verify, or until 90 days have passed. Enable "Night Mode" (Experimental) + + Search + Edit Stack diff --git a/browser/ui/android/strings/android_chrome_strings.grd b/browser/ui/android/strings/android_chrome_strings.grd index 1ec8abde0722..a18093ce4878 100644 --- a/browser/ui/android/strings/android_chrome_strings.grd +++ b/browser/ui/android/strings/android_chrome_strings.grd @@ -274,6 +274,9 @@ CHAR-LIMIT guidelines: You are currently customizing your Sync and Brave service settings. To finish turning on sync, tap the Confirm button near the bottom of the screen. Navigate up + + Not signed in + Sync and personalize across devices @@ -296,6 +299,9 @@ CHAR-LIMIT guidelines: Sign out and turn off sync + + Sign out + Manage your Brave sync chain @@ -314,6 +320,12 @@ CHAR-LIMIT guidelines: Brave services + + Allow Brave sign-in + + + Show Brave sign-in prompts when you sign in to your Brave sync chain + Autocomplete searches and URLs @@ -338,9 +350,15 @@ CHAR-LIMIT guidelines: Sends URLs of pages you visit to Brave - + For more settings that relate to privacy, security, and data collection, see <link>Sync and Brave services</link> + + For more settings that relate to privacy, security, and data collection, see <link1>Sync</link1> and <link2>Brave services</link2> + + + For more settings that relate to privacy, security, and data collection, see <link>Brave services</link> + Help improve Brave's features and performance @@ -645,6 +663,13 @@ CHAR-LIMIT guidelines: Homepage changed + + + Get Brave’s strongest security + + + Enhanced protection does more to block phishing and malware + @@ -1086,15 +1111,42 @@ Your Brave account may have other forms of browsing history like searches and ac Languages + + %1$sBrave’s language + + + Default device language + Add language + + Change language + + + Select language + + + Suggested languages + + + Other languages + + + Content languages + + + To show content in your preferred languages, the sites you visit can see your preferences + Websites will show text in your preferred language, when possible. Offer to translate pages in other languages + + Offer to send pages in other languages to Brave Translate + Offer to translate @@ -1107,6 +1159,36 @@ Your Brave account may have other forms of browsing history like searches and ac What languages do you read? + + Downloading %1$sHindi… + + + Language ready, restart %1$sBrave + + + %1$sHindi is ready. + + + Restart Brave + + + Translation settings + + + Advanced + + + Translate into this language + + + Automatically translate these languages + + + Don’t offer to translate these languages + + + Don’t offer to translate these sites + @@ -1394,15 +1476,21 @@ Your Brave account may have other forms of browsing history like searches and ac - + Android system sync disabled Sync is off - + + No data selected to sync + + Initial sync setup was not finished. Sync is off. + + Tap to set up sync + Sync is disabled by your administrator @@ -1687,6 +1775,9 @@ To change this setting, <resetlink>reset sync

+ Choose what to sync below + + To start sync, turn on "Sync your Brave data". @@ -1709,12 +1800,6 @@ To change this setting, <resetlink>reset sync

Sign in again - - Confirm sync - - - Cancel sync setup - Unlock with Screen Lock @@ -2055,7 +2140,7 @@ To change this setting, <resetlink>reset sync

- Install web app + Install app Add @@ -2286,7 +2371,7 @@ To change this setting, <resetlink>reset sync

Search your downloads - + %1$s1.56 MB %2$swww.example.com @@ -2395,16 +2480,22 @@ To change this setting, <resetlink>reset sync

Add account to device - - Go Private mode - - - To sign in temporarily + + Open a Private tab Waiting for Google Play Services to finish updating + + + Use Private to sign in + + +In Private, your activity <b1>might still be visible </b1>to websites that you visit, your employer or school, and your internet service provider. + +Data from your Private session will only be cleared from Brave when you <b2>close all Private tabs</b2>. + Turn on sync? @@ -2428,7 +2519,7 @@ To change this setting, <resetlink>reset sync

- You’ll be signed in with your Brave sync chain\n(this won’t turn on Brave Sync) + Sign in to this site and Brave with your Brave sync chain. You can turn on sync later. Signing in... @@ -2439,6 +2530,9 @@ To change this setting, <resetlink>reset sync

Brave couldn’t verify your information + + Sorry, we couldn’t validate your credentials + Try again @@ -2478,9 +2572,6 @@ To change this setting, <resetlink>reset sync

Choose another account - - Sync is off - Turn on sync @@ -2490,15 +2581,6 @@ To change this setting, <resetlink>reset sync

- - Keep exploring offline - - - Get articles, videos, and other content from sites you like, even if you’re offline or your connection is poor. - - - Explore - Recent tabs @@ -2629,6 +2711,67 @@ To change this setting, <resetlink>reset sync

+ + + How to use Brave + + + How to search with Brave + + + How to search with your voice + + + How to download content for later + + + Videos about how to use Brave + + + Learn Brave + + + Popular videos + + + Navigate Brave + + + Search the internet + + + Use voice search + + + Download content + + + Pick your language + + + Watch + + + Try now + + + Watch next video + + + Change %1$sHindi? + + + Share + + + Close + + + Tap here to start + + + Type here or tap the voice icon to start + @@ -2738,6 +2881,12 @@ To change this setting, <resetlink>reset sync

Group tabs + + Get image descriptions + + + Stop image descriptions + @@ -2833,6 +2982,41 @@ To change this setting, <resetlink>reset sync

+ + + Reading list + + + Read + + + Unread + + + Ready for offline + + + Mark as read + + + Share + + + Catch up on your reading list + + + You have %1$d5 pages + + + %1$d5 unread pages + + + Save this page for later and get a reminder + + + Find your reading list in Bookmarks + + Viewing an offline copy of this page @@ -2894,7 +3078,7 @@ To change this setting, <resetlink>reset sync

Lite - + Preview @@ -2936,9 +3120,6 @@ To change this setting, <resetlink>reset sync

Brave can’t update. More options - - Search - Site information @@ -2957,12 +3138,6 @@ To change this setting, <resetlink>reset sync

New private tab - - Close all tabs - - - Close all private tabs - Private mode @@ -3014,13 +3189,18 @@ To change this setting, <resetlink>reset sync

Selected Private Tab - - Refine + + Refine: %1$sThe meaning of life Switch To Tab - + + Showing suggestions for %1$sCrater Lake National Park (U.S. National Park Service) + + + %1$sCrater Lake National Park (U.S. National Park Service): %1$shttps://www.nps.gov/crla + {NUM_SELECTED, plural, @@ -3246,78 +3426,6 @@ To change this setting, <resetlink>reset sync

<link>Get help</link> - - - Search your contacts - - - Select contacts - - - Select a contact - - - All contacts - - - No contacts found - - - Names - - - Addresses - - - Email addresses - - - Phone numbers - - - Profile photos - - - {DETAIL_COUNT, plural, - =1 {(+ 1 more)} - other {(+ # more)}} - - - The contacts you select will be shared with <b>%1$shttps://www.google.com</b>. - - - - - Image decoder - - - Double tap video left or right to skip 10s - - - Play video - - - Pause video - - - Mute video - - - Unmute video - - - Full screen - - - Exit full screen - - - Video player - - - Elapsed time %1$s0:01 of %2$s0:45. - - Search with Sogou @@ -3348,7 +3456,7 @@ To change this setting, <resetlink>reset sync

- You'll see your %1$swww.youtube.com sign-in status, browsing data, and site data in Brave. + You'll see your %1$swww.youtube.com sign-in status, browsing data, and site data in Brave Got it @@ -3664,6 +3772,24 @@ To change this setting, <resetlink>reset sync

To share this page to another device, turn on sync in Brave settings + + You have disabled Storage access, please go to Settings to enable it. + + + Open Settings + + + audio + + + image + + + text + + + video + @@ -3724,43 +3850,6 @@ To change this setting, <resetlink>reset sync

- - - Get back home easily - - - Tap here to quickly access your homepage from anywhere - - - Search & explore - - - From here, you can search the web, share with friends, and see open pages - - - See all your open tabs - - - Tap here to create new tabs and go back to previous ones - - - - - Select images - - - Select an image - - - Camera - - - Browse - - - %1$s0:01 / %2$s0:10 - - Redirect blocked: @@ -3880,6 +3969,10 @@ To change this setting, <resetlink>reset sync

+ + Copy + + Copy link @@ -3900,6 +3993,10 @@ To change this setting, <resetlink>reset sync

+ + Copied + + Text Copied @@ -3952,12 +4049,8 @@ To change this setting, <resetlink>reset sync

%1$s1582667748515 - - Share link to the highlighted text in an app - - - - Can't create link to text. Share link to page in an app. + + Can't create link to text. Share link to page. @@ -3977,6 +4070,10 @@ To change this setting, <resetlink>reset sync

+ + Screenshot %1$s2020-09-16 + + chrome_screenshot_%1$s1582667748515 @@ -4001,19 +4098,19 @@ To change this setting, <resetlink>reset sync

Displaying Paint Preview. Press back to exit the Paint Preview demo. - - Exited Paint Preview demo. - Paint Preview playback failed. - - This is a preview + + Previewing this page - - View live page + + Reload + + + Viewing live page @@ -4066,6 +4163,20 @@ To change this setting, <resetlink>reset sync

Save up to 60% data, read today's news + + + + Get image descriptions? + + + Images are sent to Brave to improve descriptions for you. + + + Only on Wi-Fi + + + Get descriptions + diff --git a/browser/ui/android/strings/android_chrome_strings_override.grd b/browser/ui/android/strings/android_chrome_strings_override.grd index b53d358c9f79..46c12379c8e6 100644 --- a/browser/ui/android/strings/android_chrome_strings_override.grd +++ b/browser/ui/android/strings/android_chrome_strings_override.grd @@ -144,8 +144,16 @@ CHAR-LIMIT guidelines: Close all private tabs - - Go Private mode + + Open a Private tab + + + Use Private to sign in + + +In Private, your activity <b1>might still be visible </b1>to websites that you visit, your employer or school, and your internet service provider. + +Data from your Private session will only be cleared from Brave when you <b2>close all Private tabs</b2>. New private tab @@ -165,9 +173,6 @@ CHAR-LIMIT guidelines: New private tab - - Close all private tabs - Private mode diff --git a/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc b/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc index b6b73b170e3c..6e8a93b8335c 100644 --- a/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc +++ b/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc @@ -17,6 +17,7 @@ #include "ui/accessibility/ax_node_data.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/theme_provider.h" +#include "ui/events/event.h" #include "ui/native_theme/native_theme.h" #include "ui/views/controls/label.h" #include "ui/views/controls/link.h" @@ -111,8 +112,7 @@ void BookmarkBarInstructionsView::GetAccessibleNodeData( instructions_->GetAccessibleNodeData(node_data); } -void BookmarkBarInstructionsView::LinkClicked(views::Link* source, - int event_flags) { +void BookmarkBarInstructionsView::LinkClicked() { chrome::ShowImportDialog(browser_); } diff --git a/browser/ui/views/bookmarks/bookmark_bar_instructions_view.h b/browser/ui/views/bookmarks/bookmark_bar_instructions_view.h index 5244ef179b77..90df8ca1db05 100644 --- a/browser/ui/views/bookmarks/bookmark_bar_instructions_view.h +++ b/browser/ui/views/bookmarks/bookmark_bar_instructions_view.h @@ -44,7 +44,7 @@ class BookmarkBarInstructionsView : public views::View, ui::MenuSourceType source_type) override; void UpdateColors(); - void LinkClicked(views::Link* source, int event_flags); + void LinkClicked(); views::Label* instructions_; views::Link* import_link_; diff --git a/browser/ui/views/brave_actions/brave_actions_container.cc b/browser/ui/views/brave_actions/brave_actions_container.cc index b400645c6023..ba5213258668 100644 --- a/browser/ui/views/brave_actions/brave_actions_container.cc +++ b/browser/ui/views/brave_actions/brave_actions_container.cc @@ -57,7 +57,7 @@ class BraveActionsContainer::EmptyExtensionsContainer extensions::ExtensionContextMenuModel::ButtonVisibility GetActionVisibility( const ToolbarActionViewController* action) const override { - return extensions::ExtensionContextMenuModel::VISIBLE; + return extensions::ExtensionContextMenuModel::PINNED; } void UndoPopOut() override {} diff --git a/browser/ui/views/brave_actions/brave_rewards_action_stub_view.cc b/browser/ui/views/brave_actions/brave_rewards_action_stub_view.cc index 6cd0240bef0e..ef8aec9e3ff7 100644 --- a/browser/ui/views/brave_actions/brave_rewards_action_stub_view.cc +++ b/browser/ui/views/brave_actions/brave_rewards_action_stub_view.cc @@ -58,9 +58,9 @@ BraveRewardsActionStubView::BraveRewardsActionStubView(Profile* profile, profile_(profile), delegate_(delegate) { SetInkDropMode(InkDropMode::ON); - set_has_ink_drop_action_on_click(true); + SetHasInkDropActionOnClick(true); SetHorizontalAlignment(gfx::ALIGN_CENTER); - set_ink_drop_visible_opacity(kToolbarInkDropVisibleOpacity); + SetInkDropVisibleOpacity(kToolbarInkDropVisibleOpacity); // Create badge-and-image source like an extension icon would auto preferred_size = GetPreferredSize(); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); diff --git a/browser/ui/views/infobars/brave_wayback_machine_infobar_contents_view.cc b/browser/ui/views/infobars/brave_wayback_machine_infobar_contents_view.cc index 0bb69ba404d0..d299a67eadbc 100644 --- a/browser/ui/views/infobars/brave_wayback_machine_infobar_contents_view.cc +++ b/browser/ui/views/infobars/brave_wayback_machine_infobar_contents_view.cc @@ -193,7 +193,8 @@ void BraveWaybackMachineInfoBarContentsView::InitializeChildren() { views::Label* BraveWaybackMachineInfoBarContentsView::CreateLabel( const base::string16& text) { - views::Label* label = new views::Label(text, CONTEXT_BODY_TEXT_LARGE); + views::Label* label = + new views::Label(text, views::style::CONTEXT_DIALOG_BODY_TEXT); labels_.push_back(label); label->SetBackgroundColor(GetColor(kInfoBarLabelBackgroundColor)); label->SetHorizontalAlignment(gfx::ALIGN_LEFT); diff --git a/browser/ui/views/location_bar/onion_location_view.cc b/browser/ui/views/location_bar/onion_location_view.cc index c1199a092ac0..ad7e12593735 100644 --- a/browser/ui/views/location_bar/onion_location_view.cc +++ b/browser/ui/views/location_bar/onion_location_view.cc @@ -95,8 +95,8 @@ class OnionLocationButtonView : public views::LabelButton, SetInkDropMode(InkDropMode::ON); SetBorder(views::CreateEmptyBorder( GetLayoutInsets(LOCATION_BAR_ICON_INTERIOR_PADDING))); - set_has_ink_drop_action_on_click(true); - set_ink_drop_visible_opacity(kToolbarInkDropVisibleOpacity); + SetHasInkDropActionOnClick(true); + SetInkDropVisibleOpacity(kToolbarInkDropVisibleOpacity); UpdateBorder(); // Ensure focus ring follows border views::HighlightPathGenerator::Install( diff --git a/browser/ui/views/toolbar/brave_toolbar_view.cc b/browser/ui/views/toolbar/brave_toolbar_view.cc index a7c8c3033c26..551fa51de79f 100644 --- a/browser/ui/views/toolbar/brave_toolbar_view.cc +++ b/browser/ui/views/toolbar/brave_toolbar_view.cc @@ -134,8 +134,8 @@ void BraveToolbarView::Init() { base::Unretained(this))); bookmark_ = new BookmarkButton(this); - bookmark_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON | - ui::EF_MIDDLE_MOUSE_BUTTON); + bookmark_->SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON | + ui::EF_MIDDLE_MOUSE_BUTTON); DCHECK(location_bar_); AddChildViewAt(bookmark_, GetIndexOf(location_bar_)); bookmark_->UpdateImage(); @@ -144,8 +144,8 @@ void BraveToolbarView::Init() { // Speedreader. if (base::FeatureList::IsEnabled(speedreader::kSpeedreaderFeature)) { speedreader_ = new SpeedreaderButton(this, profile->GetPrefs()); - speedreader_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON | - ui::EF_MIDDLE_MOUSE_BUTTON); + speedreader_->SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON | + ui::EF_MIDDLE_MOUSE_BUTTON); } if (speedreader_) { diff --git a/browser/ui/webui/basic_ui.cc b/browser/ui/webui/basic_ui.cc index 4aadca755c44..78531015ddcf 100644 --- a/browser/ui/webui/basic_ui.cc +++ b/browser/ui/webui/basic_ui.cc @@ -19,9 +19,20 @@ content::WebUIDataSource* CreateBasicUIHTMLSource( const std::string& name, const GritResourceMap* resource_map, size_t resource_map_size, - int html_resource_id) { + int html_resource_id, + bool disable_trusted_types_csp) { content::WebUIDataSource* source = content::WebUIDataSource::Create(name); + // Some parts of Brave's UI pages are not yet migrated to work without doing + // assignments of strings directly into |innerHTML| elements (i.e. see usage + // of |dangerouslySetInnerHTML| in .tsx files). This will break Brave due to + // committing a Trusted Types related violation now that Trusted Types are + // enforced on WebUI pages (see crrev.com/c/2234238 and crrev.com/c/2353547). + // We should migrate those pages not to require using |innerHTML|, but for now + // we just restore pre-Cromium 87 behaviour for pages that are not ready yet. + if (disable_trusted_types_csp) + source->DisableTrustedTypesCSP(); + source->UseStringsJs(); source->SetDefaultResource(html_resource_id); // Add generated resource paths @@ -60,13 +71,15 @@ BasicUI::BasicUI(content::WebUI* web_ui, const std::string& name, const GritResourceMap* resource_map, size_t resource_map_size, - int html_resource_id) + int html_resource_id, + bool disable_trusted_types_csp) : WebUIController(web_ui) { observer_.reset( new BasicUIWebContentsObserver(this, web_ui->GetWebContents())); Profile* profile = Profile::FromWebUI(web_ui); content::WebUIDataSource* source = CreateBasicUIHTMLSource(profile, name, - resource_map, resource_map_size, html_resource_id); + resource_map, resource_map_size, html_resource_id, + disable_trusted_types_csp); content::WebUIDataSource::Add(profile, source); } diff --git a/browser/ui/webui/basic_ui.h b/browser/ui/webui/basic_ui.h index a84ecaf7a137..7a75a443ba79 100644 --- a/browser/ui/webui/basic_ui.h +++ b/browser/ui/webui/basic_ui.h @@ -29,7 +29,8 @@ content::WebUIDataSource* CreateBasicUIHTMLSource( const std::string& name, const GritResourceMap* resource_map, size_t resouece_map_size, - int html_resource_id); + int html_resource_id, + bool disable_trusted_types_csp = false); class BasicUI : public content::WebUIController { public: @@ -37,7 +38,8 @@ class BasicUI : public content::WebUIController { const std::string& host, const GritResourceMap* resource_map, size_t resouece_map_size, - int html_resource_id); + int html_resource_id, + bool disable_trusted_types_csp = false); ~BasicUI() override; // Called when subclass can set its webui properties. diff --git a/browser/ui/webui/brave_rewards_page_ui.cc b/browser/ui/webui/brave_rewards_page_ui.cc index e9b4922243c2..9d3619d1c2b6 100644 --- a/browser/ui/webui/brave_rewards_page_ui.cc +++ b/browser/ui/webui/brave_rewards_page_ui.cc @@ -1936,10 +1936,11 @@ BraveRewardsPageUI::BraveRewardsPageUI(content::WebUI* web_ui, kBraveRewardsSettingsGeneratedSize, #endif #if defined(OS_ANDROID) - IDR_BRAVE_REWARDS_ANDROID_PAGE_HTML) { + IDR_BRAVE_REWARDS_ANDROID_PAGE_HTML, #else - IDR_BRAVE_REWARDS_PAGE_HTML) { + IDR_BRAVE_REWARDS_PAGE_HTML, #endif + /*disable_trusted_types_csp=*/true) { auto handler_owner = std::make_unique(); RewardsDOMHandler * handler = handler_owner.get(); web_ui->AddMessageHandler(std::move(handler_owner)); diff --git a/browser/ui/webui/brave_welcome_ui.cc b/browser/ui/webui/brave_welcome_ui.cc index d2e67ea04ec0..4bca00a3555a 100644 --- a/browser/ui/webui/brave_welcome_ui.cc +++ b/browser/ui/webui/brave_welcome_ui.cc @@ -104,7 +104,8 @@ void WelcomeDOMHandler::HandleRecordP3A(const base::ListValue* args) { BraveWelcomeUI::BraveWelcomeUI(content::WebUI* web_ui, const std::string& name) : BasicUI(web_ui, name, kBraveWelcomeGenerated, - kBraveWelcomeGeneratedSize, IDR_BRAVE_WELCOME_HTML) { + kBraveWelcomeGeneratedSize, IDR_BRAVE_WELCOME_HTML, + /*disable_trusted_types_csp=*/true) { web_ui->AddMessageHandler(std::make_unique()); web_ui->AddMessageHandler( std::make_unique()); diff --git a/browser/ui/webui/brave_welcome_ui_browsertest.cc b/browser/ui/webui/brave_welcome_ui_browsertest.cc index d55d002b6863..d96c6e628e68 100644 --- a/browser/ui/webui/brave_welcome_ui_browsertest.cc +++ b/browser/ui/webui/brave_welcome_ui_browsertest.cc @@ -10,6 +10,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/startup/launch_mode_recorder.h" #include "chrome/browser/ui/startup/startup_browser_creator.h" #include "chrome/browser/ui/startup/startup_browser_creator_impl.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" @@ -25,7 +26,7 @@ Browser* OpenNewBrowser(Profile* profile) { base::CommandLine dummy(base::CommandLine::NO_PROGRAM); StartupBrowserCreatorImpl creator(base::FilePath(), dummy, chrome::startup::IS_FIRST_RUN); - creator.Launch(profile, std::vector(), false); + creator.Launch(profile, std::vector(), false, nullptr); return chrome::FindBrowserWithProfile(profile); } } diff --git a/browser/ui/webui/settings/brave_import_data_handler_mac.mm b/browser/ui/webui/settings/brave_import_data_handler_mac.mm index 9a44093a94d2..15bf7f367b40 100644 --- a/browser/ui/webui/settings/brave_import_data_handler_mac.mm +++ b/browser/ui/webui/settings/brave_import_data_handler_mac.mm @@ -32,26 +32,6 @@ using content::BrowserThread; -class ScopedOpenFile { - public: - explicit ScopedOpenFile(const base::FilePath& file_path) { - file_ = base::OpenFile(file_path, "r"); - } - - ~ScopedOpenFile() { - if (file_) - base::CloseFile(file_); - } - - bool CanRead() const { return !!file_; } - - ScopedOpenFile(const ScopedOpenFile&) = delete; - ScopedOpenFile& operator=(const ScopedOpenFile&) = delete; - - private: - FILE* file_ = nullptr; -}; - class FullDiskAccessConfirmDialogDelegate : public TabModalConfirmDialogDelegate { public: @@ -124,8 +104,7 @@ bool HasProperDiskAccessPermission(uint16_t imported_items) { if (imported_items & importer::FAVORITES) { const base::FilePath bookmarks_path = safari_dir.Append("Bookmarks.plist"); - ScopedOpenFile open_file(bookmarks_path); - if(!open_file.CanRead()) { + if(!PathIsWritable(bookmarks_path)) { LOG(ERROR) << __func__ << " " << bookmarks_path << " is not accessible." << " Please check full disk access permission."; return false; @@ -133,15 +112,8 @@ bool HasProperDiskAccessPermission(uint16_t imported_items) { } if (imported_items & importer::HISTORY) { - // HISTORY is set if plist or db exists. - base::FilePath history_path = safari_dir.Append("History.plist"); - if (!base::PathExists(history_path)) { - history_path = safari_dir.Append("History.db"); - DCHECK(base::PathExists(history_path)); - } - - ScopedOpenFile open_file(history_path); - if(!open_file.CanRead()) { + const base::FilePath history_path = safari_dir.Append("History.plist"); + if(!PathIsWritable(history_path)) { LOG(ERROR) << __func__ << " " << history_path << " is not accessible." << " Please check full disk access permission."; return false; diff --git a/build/android/bytecode/BUILD.gn b/build/android/bytecode/BUILD.gn index e7975c735b89..f61dba1510b0 100644 --- a/build/android/bytecode/BUILD.gn +++ b/build/android/bytecode/BUILD.gn @@ -11,6 +11,8 @@ java_binary("java_bytecode_rewriter") { "//brave/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveClassVisitor.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveAndroidSyncSettingsClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveAppMenuClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsCoordinatorClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveCommandLineInitUtilClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveEditUrlSuggestionProcessorClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveFeedSurfaceCoordinatorClassAdapter.java", @@ -21,6 +23,12 @@ java_binary("java_bytecode_rewriter") { "//brave/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/BraveSearchEngineAdapterClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTPhoneClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveTileViewClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java", + "//brave/build/android/bytecode/java/org/brave/bytecode/BraveTopToolbarCoordinatorClassAdapter.java", "//brave/build/android/bytecode/java/org/brave/bytecode/ByteCodeProcessor.java", "//brave/build/android/bytecode/java/org/brave/bytecode/ClassPathValidator.java", "//brave/build/android/bytecode/java/org/brave/bytecode/ThreadAssertionClassAdapter.java", diff --git a/build/android/bytecode/bytecode_rewriter.gni b/build/android/bytecode/bytecode_rewriter.gni index 7fc8784bc89b..1b8c30b01c5c 100644 --- a/build/android/bytecode/bytecode_rewriter.gni +++ b/build/android/bytecode/bytecode_rewriter.gni @@ -2,8 +2,9 @@ import("//build/config/python.gni") brave_bytecode_jars = [ "obj/chrome/android/chrome_java.javac.jar", - "obj/components/sync/android/sync_java.javac.jar", + "obj/chrome/browser/ui/android/appmenu/internal/java.javac.jar", "obj/components/external_intents/android/java.javac.jar", + "obj/components/sync/android/sync_java.javac.jar", ] template("brave_bytecode_rewriter") { diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveAppMenuClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveAppMenuClassAdapter.java new file mode 100644 index 000000000000..8f5c4280dc0e --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveAppMenuClassAdapter.java @@ -0,0 +1,19 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveAppMenuClassAdapter extends BraveClassVisitor { + static String sAppMenuClassName = "org/chromium/chrome/browser/ui/appmenu/AppMenu"; + + static String sBraveAppMenuClassName = "org/chromium/chrome/browser/ui/appmenu/BraveAppMenu"; + + public BraveAppMenuClassAdapter(ClassVisitor visitor) { + super(visitor); + changeMethodOwner(sAppMenuClassName, "getPopupPosition", sBraveAppMenuClassName); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsCoordinatorClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsCoordinatorClassAdapter.java new file mode 100644 index 000000000000..44b55b1d85a5 --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsCoordinatorClassAdapter.java @@ -0,0 +1,22 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveBottomControlsCoordinatorClassAdapter extends BraveClassVisitor { + static String sBottomControlsCoordinatorClassName = + "org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator"; + static String sBraveBottomControlsCoordinatorClassName = + "org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator"; + + public BraveBottomControlsCoordinatorClassAdapter(ClassVisitor visitor) { + super(visitor); + + deleteField(sBraveBottomControlsCoordinatorClassName, "mMediator"); + makeProtectedField(sBottomControlsCoordinatorClassName, "mMediator"); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java index aa769da8bb46..cf02212f83f9 100644 --- a/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java +++ b/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java @@ -20,6 +20,14 @@ public static ClassVisitor createAdapter(ClassVisitor chain) { chain = new BraveEditUrlSuggestionProcessorClassAdapter(chain); chain = new BraveSearchEngineAdapterClassAdapter(chain); chain = new BraveCommandLineInitUtilClassAdapter(chain); + chain = new BraveAppMenuClassAdapter(chain); + chain = new BraveBottomControlsCoordinatorClassAdapter(chain); + chain = new BraveToolbarManagerClassAdapter(chain); + chain = new BraveTopToolbarCoordinatorClassAdapter(chain); + chain = new BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter(chain); + chain = new BraveTabSwitcherModeTTPhoneClassAdapter(chain); + chain = new BraveToolbarLayoutClassAdapter(chain); + chain = new BraveTileViewClassAdapter(chain); return chain; } } diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter.java new file mode 100644 index 000000000000..0ea3e680a8a1 --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter.java @@ -0,0 +1,22 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter extends BraveClassVisitor { + static String sTabSwitcherModeTTCoordinatorPhoneClassName = + "org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTCoordinatorPhone"; + static String sBraveTabSwitcherModeTTCoordinatorPhoneClassName = + "org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTCoordinatorPhone"; + + public BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter(ClassVisitor visitor) { + super(visitor); + + deleteField(sBraveTabSwitcherModeTTCoordinatorPhoneClassName, "mTabSwitcherModeToolbar"); + makeProtectedField(sTabSwitcherModeTTCoordinatorPhoneClassName, "mTabSwitcherModeToolbar"); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTPhoneClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTPhoneClassAdapter.java new file mode 100644 index 000000000000..3a4673abb350 --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTPhoneClassAdapter.java @@ -0,0 +1,38 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveTabSwitcherModeTTPhoneClassAdapter extends BraveClassVisitor { + static String sTabSwitcherModeTTPhoneClassName = + "org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone"; + static String sBraveTabSwitcherModeTTPhoneClassName = + "org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTPhone"; + + public BraveTabSwitcherModeTTPhoneClassAdapter(ClassVisitor visitor) { + super(visitor); + + deleteField(sBraveTabSwitcherModeTTPhoneClassName, "mNewTabViewButton"); + makeProtectedField(sTabSwitcherModeTTPhoneClassName, "mNewTabViewButton"); + + deleteField(sBraveTabSwitcherModeTTPhoneClassName, "mNewTabImageButton"); + makeProtectedField(sTabSwitcherModeTTPhoneClassName, "mNewTabImageButton"); + + deleteField(sBraveTabSwitcherModeTTPhoneClassName, "mToggleTabStackButton"); + makeProtectedField(sTabSwitcherModeTTPhoneClassName, "mToggleTabStackButton"); + + deleteField(sBraveTabSwitcherModeTTPhoneClassName, "mShouldShowNewTabVariation"); + makeProtectedField(sTabSwitcherModeTTPhoneClassName, "mShouldShowNewTabVariation"); + + makePublicMethod(sTabSwitcherModeTTPhoneClassName, "updateNewTabButtonVisibility"); + addMethodAnnotation(sBraveTabSwitcherModeTTPhoneClassName, "updateNewTabButtonVisibility", + "Ljava/lang/Override;"); + + makePublicMethod(sTabSwitcherModeTTPhoneClassName, "shouldShowIncognitoToggle"); + deleteMethod(sBraveTabSwitcherModeTTPhoneClassName, "shouldShowIncognitoToggle"); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveTileViewClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveTileViewClassAdapter.java new file mode 100644 index 000000000000..4ecdfa98a4ac --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveTileViewClassAdapter.java @@ -0,0 +1,21 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveTileViewClassAdapter extends BraveClassVisitor { + static String sSuggestionsTileViewClassName = + "org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView"; + + static String sBraveSuggestionsTileViewBaseClassName = + "org/chromium/chrome/browser/suggestions/tile/BraveTileView"; + + public BraveTileViewClassAdapter(ClassVisitor visitor) { + super(visitor); + changeSuperName(sSuggestionsTileViewClassName, sBraveSuggestionsTileViewBaseClassName); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java new file mode 100644 index 000000000000..ea849a92b042 --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java @@ -0,0 +1,21 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveToolbarLayoutClassAdapter extends BraveClassVisitor { + static String sCustomTabToolbarClassName = + "org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar"; + + static String sBraveCustomTabToolbarBaseClassName = + "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout"; + + public BraveToolbarLayoutClassAdapter(ClassVisitor visitor) { + super(visitor); + changeSuperName(sCustomTabToolbarClassName, sBraveCustomTabToolbarBaseClassName); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java new file mode 100644 index 000000000000..39b7afbb6dab --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java @@ -0,0 +1,84 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveToolbarManagerClassAdapter extends BraveClassVisitor { + static String sToolbarManagerClassName = "org/chromium/chrome/browser/toolbar/ToolbarManager"; + static String sBraveToolbarManagerClassName = + "org/chromium/chrome/browser/toolbar/BraveToolbarManager"; + + public BraveToolbarManagerClassAdapter(ClassVisitor visitor) { + super(visitor); + + deleteField(sBraveToolbarManagerClassName, "mBottomControlsCoordinator"); + makeProtectedField(sToolbarManagerClassName, "mBottomControlsCoordinator"); + + deleteField(sBraveToolbarManagerClassName, "mBrowserControlsSizer"); + makeProtectedField(sToolbarManagerClassName, "mBrowserControlsSizer"); + + deleteField(sBraveToolbarManagerClassName, "mFullscreenManager"); + makeProtectedField(sToolbarManagerClassName, "mFullscreenManager"); + + deleteField(sBraveToolbarManagerClassName, "mActivityTabProvider"); + makeProtectedField(sToolbarManagerClassName, "mActivityTabProvider"); + + deleteField(sBraveToolbarManagerClassName, "mAppThemeColorProvider"); + makeProtectedField(sToolbarManagerClassName, "mAppThemeColorProvider"); + + deleteField(sBraveToolbarManagerClassName, "mShareDelegateSupplier"); + makeProtectedField(sToolbarManagerClassName, "mShareDelegateSupplier"); + + deleteField(sBraveToolbarManagerClassName, "mScrimCoordinator"); + makeProtectedField(sToolbarManagerClassName, "mScrimCoordinator"); + + deleteField(sBraveToolbarManagerClassName, "mActivity"); + makeProtectedField(sToolbarManagerClassName, "mActivity"); + + deleteField(sBraveToolbarManagerClassName, "mShowStartSurfaceSupplier"); + makeProtectedField(sToolbarManagerClassName, "mShowStartSurfaceSupplier"); + + deleteField(sBraveToolbarManagerClassName, "mOverviewModeBehaviorSupplier"); + makeProtectedField(sToolbarManagerClassName, "mOverviewModeBehaviorSupplier"); + + deleteField(sBraveToolbarManagerClassName, "mMenuButtonCoordinator"); + makeProtectedField(sToolbarManagerClassName, "mMenuButtonCoordinator"); + + deleteField(sBraveToolbarManagerClassName, "mToolbarTabController"); + makeProtectedField(sToolbarManagerClassName, "mToolbarTabController"); + + deleteField(sBraveToolbarManagerClassName, "mLocationBar"); + makeProtectedField(sToolbarManagerClassName, "mLocationBar"); + + deleteField(sBraveToolbarManagerClassName, "mActionModeController"); + makeProtectedField(sToolbarManagerClassName, "mActionModeController"); + + deleteField(sBraveToolbarManagerClassName, "mLocationBarModel"); + makeProtectedField(sToolbarManagerClassName, "mLocationBarModel"); + + deleteField(sBraveToolbarManagerClassName, "mToolbar"); + makeProtectedField(sToolbarManagerClassName, "mToolbar"); + + deleteField(sBraveToolbarManagerClassName, "mBookmarkBridgeSupplier"); + makeProtectedField(sToolbarManagerClassName, "mBookmarkBridgeSupplier"); + + makePublicMethod(sToolbarManagerClassName, "onOrientationChange"); + addMethodAnnotation( + sBraveToolbarManagerClassName, "onOrientationChange", "Ljava/lang/Override;"); + + makePublicMethod(sToolbarManagerClassName, "updateButtonStatus"); + addMethodAnnotation( + sBraveToolbarManagerClassName, "updateButtonStatus", "Ljava/lang/Override;"); + + makePublicMethod(sToolbarManagerClassName, "updateBookmarkButtonStatus"); + addMethodAnnotation(sBraveToolbarManagerClassName, "updateBookmarkButtonStatus", + "Ljava/lang/Override;"); + + makePublicMethod(sToolbarManagerClassName, "updateReloadState"); + deleteMethod(sBraveToolbarManagerClassName, "updateReloadState"); + } +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveTopToolbarCoordinatorClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveTopToolbarCoordinatorClassAdapter.java new file mode 100644 index 000000000000..4b8b0200db26 --- /dev/null +++ b/build/android/bytecode/java/org/brave/bytecode/BraveTopToolbarCoordinatorClassAdapter.java @@ -0,0 +1,25 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.brave.bytecode; + +import org.objectweb.asm.ClassVisitor; + +public class BraveTopToolbarCoordinatorClassAdapter extends BraveClassVisitor { + static String sTopToolbarCoordinatorClassName = + "org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator"; + static String sBraveTopToolbarCoordinatorClassName = + "org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator"; + + public BraveTopToolbarCoordinatorClassAdapter(ClassVisitor visitor) { + super(visitor); + + deleteField(sBraveTopToolbarCoordinatorClassName, "mTabSwitcherModeCoordinatorPhone"); + makeProtectedField(sTopToolbarCoordinatorClassName, "mTabSwitcherModeCoordinatorPhone"); + + deleteField(sBraveTopToolbarCoordinatorClassName, "mOptionalButtonController"); + makeProtectedField(sTopToolbarCoordinatorClassName, "mOptionalButtonController"); + } +} diff --git a/build/android/config.gni b/build/android/config.gni index edd118ee712b..a8fc48d598a5 100644 --- a/build/android/config.gni +++ b/build/android/config.gni @@ -36,10 +36,10 @@ brave_components_browser_ui_site_settings_android_java_resources_deps = [ ] brave_resources_exclusion_exceptions = [ -"*com_google_android_material_material*design_bottom_*" +"*com_google_android_material*design_bottom_*" ] brave_resource_values_filter_rules_exclusions = [ - "*com_google_android_material_material*:[Bb]ottomSheet", - "*com_google_android_material_material*:[Ff]loatingActionButton", + "*com_google_android_material*:[Bb]ottomSheet", + "*com_google_android_material*:[Ff]loatingActionButton", ] diff --git a/build/commands/lib/config.js b/build/commands/lib/config.js index 062cb5072801..7dd3ecc79dc5 100755 --- a/build/commands/lib/config.js +++ b/build/commands/lib/config.js @@ -222,13 +222,6 @@ Config.prototype.buildArgs = function () { enable_cdm_host_verification: this.enableCDMHostVerification(), skip_signing: !this.shouldSign(), chrome_pgo_phase: this.chromePgoPhase, - // When enabled (see third_party/blink/renderer/config.gni), we end up with - // multiple files giving compilation error similar to: - // gen/third_party/blink/renderer/bindings/modules/v8/v8_shared_worker_global_scope.cc:4614:34: - // error: no member named 'isReportingObserversEnabled' in 'blink::ContextFeatureSettings' - // cs.chromium.org shows the same files not having any calls to isReportingObserversEnabled, - // which makes me think that Chromium also disables it in their builds. - use_blink_v8_binding_new_idl_interface: false, ...this.extraGnArgs, } diff --git a/build/commands/lib/util.js b/build/commands/lib/util.js index 5cc60c993b28..def26b9e886b 100755 --- a/build/commands/lib/util.js +++ b/build/commands/lib/util.js @@ -334,6 +334,8 @@ const util = { const androidIconSource = path.join(braveAppDir, 'theme', 'brave', 'android', androidIconSet) const androidIconDest = path.join(config.srcDir, 'chrome', 'android', 'java', 'res_chromium') + const androidIconBaseSource = path.join(braveAppDir, 'theme', 'brave', 'android', androidIconSet + '_base') + const androidIconBaseDest = path.join(config.srcDir, 'chrome', 'android', 'java', 'res_chromium_base') const androidResSource = path.join(config.braveCoreDir, 'android', 'java', 'res') const androidResDest = path.join(config.srcDir, 'chrome', 'android', 'java', 'res') const androidResTemplateSource = path.join(config.braveCoreDir, 'android', 'java', 'res_template') @@ -346,6 +348,7 @@ const util = { // Mapping for copying Brave's Android resource into chromium folder. const copyAndroidResourceMapping = { [androidIconSource]: [androidIconDest], + [androidIconBaseSource]: [androidIconBaseDest], [androidResSource]: [androidResDest], [androidResTemplateSource]: [androidResTemplateDest], [androidContentPublicResSource]: [androidContentPublicResDest], diff --git a/build/config/brave_build.gni b/build/config/brave_build.gni index 1631f25f4d59..4ce25534fb22 100644 --- a/build/config/brave_build.gni +++ b/build/config/brave_build.gni @@ -7,6 +7,7 @@ import("//brave/browser/sources.gni") import("//brave/build/config/compiler.gni") import("//brave/build/features.gni") import("//brave/components/omnibox/browser/sources.gni") +import("//brave/components/search_engines/sources.gni") import("//brave/components/sync/sources.gni") import("//brave/components/sync/driver/sources.gni") import("//brave/installer/linux/sources.gni") diff --git a/chromium_src/chrome/browser/component_updater/crl_set_component_installer.cc b/chromium_src/chrome/browser/component_updater/crl_set_component_installer.cc index 055c0bcfc581..3da823fe90b7 100644 --- a/chromium_src/chrome/browser/component_updater/crl_set_component_installer.cc +++ b/chromium_src/chrome/browser/component_updater/crl_set_component_installer.cc @@ -23,8 +23,7 @@ void OnCRLSetRegistered() { #endif } -void RegisterCRLSetComponent(ComponentUpdateService* cus, - const base::FilePath& user_data_dir) { +void RegisterCRLSetComponent(ComponentUpdateService* cus) { auto installer = base::MakeRefCounted( std::make_unique()); installer->Register(g_browser_process->component_updater(), diff --git a/chromium_src/chrome/browser/component_updater/file_type_policies_component_installer.cc b/chromium_src/chrome/browser/component_updater/file_type_policies_component_installer.cc index 9764e1666376..ac18ca0c34d3 100644 --- a/chromium_src/chrome/browser/component_updater/file_type_policies_component_installer.cc +++ b/chromium_src/chrome/browser/component_updater/file_type_policies_component_installer.cc @@ -19,8 +19,7 @@ void OnFileTypePoliciesRegistered() { component_updater::BraveOnDemandUpdate(kFileTypePoliciesComponentId); } -void RegisterFileTypePoliciesComponent(ComponentUpdateService* cus, - const base::FilePath& user_data_dir) { +void RegisterFileTypePoliciesComponent(ComponentUpdateService* cus) { auto installer = base::MakeRefCounted( std::make_unique()); installer->Register(cus, base::Bind(&OnFileTypePoliciesRegistered)); diff --git a/chromium_src/chrome/browser/extensions/api/settings_private/prefs_util.h b/chromium_src/chrome/browser/extensions/api/settings_private/prefs_util.h new file mode 100644 index 000000000000..65ad643ec9d7 --- /dev/null +++ b/chromium_src/chrome/browser/extensions/api/settings_private/prefs_util.h @@ -0,0 +1,16 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_PREFS_UTIL_H_ +#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_PREFS_UTIL_H_ + +#define GetAllowlistedKeys \ + Dummy(); \ + virtual const TypedPrefMap& GetAllowlistedKeys + +#include "../../../../../../../chrome/browser/extensions/api/settings_private/prefs_util.h" +#undef GetAllowlistedKeys + +#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_EXTENSIONS_API_SETTINGS_PRIVATE_PREFS_UTIL_H_ diff --git a/chromium_src/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chromium_src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc similarity index 77% rename from chromium_src/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc rename to chromium_src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc index 5106b14b0075..8200bbb82d1e 100644 --- a/chromium_src/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc +++ b/chromium_src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc @@ -3,9 +3,9 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -#define IsComponentExtensionWhitelisted IsComponentExtensionWhitelisted_ChromiumImpl // NOLINT -#include "../../../../../../chrome/browser/extensions/component_extensions_whitelist/whitelist.cc" // NOLINT -#undef IsComponentExtensionWhitelisted +#define IsComponentExtensionAllowlisted IsComponentExtensionAllowlisted_ChromiumImpl // NOLINT +#include "../../../../../../chrome/browser/extensions/component_extensions_allowlist/allowlist.cc" // NOLINT +#undef IsComponentExtensionAllowlisted #include "base/stl_util.h" #include "brave/components/brave_extension/grit/brave_extension.h" @@ -21,7 +21,7 @@ namespace extensions { - bool IsComponentExtensionWhitelisted(const std::string& extension_id) { + bool IsComponentExtensionAllowlisted(const std::string& extension_id) { const char* const kAllowed[] = { brave_extension_id, brave_rewards_extension_id, @@ -36,10 +36,10 @@ namespace extensions { return true; } - return IsComponentExtensionWhitelisted_ChromiumImpl(extension_id); + return IsComponentExtensionAllowlisted_ChromiumImpl(extension_id); } - bool IsComponentExtensionWhitelisted(int manifest_resource_id) { + bool IsComponentExtensionAllowlisted(int manifest_resource_id) { switch (manifest_resource_id) { // Please keep the list in alphabetical order. case IDR_BRAVE_EXTENSION: @@ -48,7 +48,7 @@ namespace extensions { return true; } - return IsComponentExtensionWhitelisted_ChromiumImpl(manifest_resource_id); + return IsComponentExtensionAllowlisted_ChromiumImpl(manifest_resource_id); } } // namespace extensions diff --git a/chromium_src/chrome/browser/profiles/profile_window.cc b/chromium_src/chrome/browser/profiles/profile_window.cc index 5cb9bc45745e..defd470909fa 100644 --- a/chromium_src/chrome/browser/profiles/profile_window.cc +++ b/chromium_src/chrome/browser/profiles/profile_window.cc @@ -47,7 +47,7 @@ void OpenBrowserWindowForTorProfile(ProfileManager::CreateCallback callback, Profile::CreateStatus status) { profiles::OpenBrowserWindowForProfile( callback, always_create, is_new_profile, unblock_extensions, - profile->GetOffTheRecordProfile(), status); + profile->GetPrimaryOTRProfile(), status); #if BUILDFLAG(ENABLE_TOR) tor::TorProfileService* service = TorProfileServiceFactory::GetForContext(profile); diff --git a/chromium_src/chrome/browser/ui/browser_navigator.cc b/chromium_src/chrome/browser/ui/browser_navigator.cc index e204555dcf86..6b1be3dbdf32 100644 --- a/chromium_src/chrome/browser/ui/browser_navigator.cc +++ b/chromium_src/chrome/browser/ui/browser_navigator.cc @@ -43,7 +43,7 @@ void MaybeHandleInParent(NavigateParams* params, bool allow_in_incognito) { if (!allow_in_incognito) { params->initiating_profile = profile->IsOffTheRecord() - ? brave::GetParentProfile(profile)->GetOffTheRecordProfile() + ? brave::GetParentProfile(profile)->GetPrimaryOTRProfile() : brave::GetParentProfile(profile); } else if (HandleURLInParent(params, profile)) { params->browser = BraveGetOrCreateBrowser( diff --git a/chromium_src/chrome/browser/ui/passwords/manage_passwords_view_utils.cc b/chromium_src/chrome/browser/ui/passwords/manage_passwords_view_utils.cc deleted file mode 100644 index 5dfda7198518..000000000000 --- a/chromium_src/chrome/browser/ui/passwords/manage_passwords_view_utils.cc +++ /dev/null @@ -1,12 +0,0 @@ -/* Copyright (c) 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#define ShouldManagePasswordsinGooglePasswordManager \ - ShouldManagePasswordsinGooglePasswordManager_ChromiumImpl -#include "../../../../../../chrome/browser/ui/passwords/manage_passwords_view_utils.cc" -#undef ShouldManagePasswordsinGooglePasswordManager -bool ShouldManagePasswordsinGooglePasswordManager(Profile* profile) { - return false; -} diff --git a/chromium_src/chrome/common/chrome_constants.cc b/chromium_src/chrome/common/chrome_constants.cc index 47d9effb12de..79154c3df760 100644 --- a/chromium_src/chrome/common/chrome_constants.cc +++ b/chromium_src/chrome/common/chrome_constants.cc @@ -163,6 +163,8 @@ const base::FilePath::CharType kPreferencesFilename[] = FPL("Preferences"); const base::FilePath::CharType kPreviewsOptOutDBFilename[] = FPL("previews_opt_out.db"); const base::FilePath::CharType kQueryTileStorageDirname[] = FPL("Query Tiles"); +const base::FilePath::CharType kVideoTutorialsStorageDirname[] = + FPL("Video Tutorials"); const base::FilePath::CharType kReadmeFilename[] = FPL("README"); const base::FilePath::CharType kSecurePreferencesFilename[] = FPL("Secure Preferences"); diff --git a/chromium_src/chrome/common/importer/safari_importer_utils.mm b/chromium_src/chrome/common/importer/safari_importer_utils.mm deleted file mode 100644 index cb7abf98e67e..000000000000 --- a/chromium_src/chrome/common/importer/safari_importer_utils.mm +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (c) 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#define SafariImporterCanImport SafariImporterCanImport_ChromiumImpl - -#include "../../../../../chrome/common/importer/safari_importer_utils.mm" - -#undef SafariImporterCanImport - -bool SafariImporterCanImport(const base::FilePath& library_dir, - uint16_t* services_supported) { - SafariImporterCanImport_ChromiumImpl(library_dir, services_supported); - - if (base::PathExists(library_dir.Append("Safari").Append("History.db"))) - *services_supported |= importer::HISTORY; - - return *services_supported != importer::NONE; -} diff --git a/chromium_src/chrome/common/url_constants.cc b/chromium_src/chrome/common/url_constants.cc index 8a6a23a15b16..afe338bf6194 100644 --- a/chromium_src/chrome/common/url_constants.cc +++ b/chromium_src/chrome/common/url_constants.cc @@ -114,6 +114,8 @@ const char kContentSettingsExceptionsLearnMoreURL[] = const char kCookiesSettingsHelpCenterURL[] = "https://support.brave.com/hc/en-us/articles/" "360018205431-How-do-I-change-site-permissions-"; +const char kCpuX86Sse2ObsoleteURL[] = + "https://support.brave.com/"; const char kCrashReasonURL[] = "https://support.brave.com/hc/en-us/articles/" @@ -178,6 +180,8 @@ const char kPageInfoHelpCenterURL[] = const char kPasswordCheckLearnMoreURL[] = "https://support.brave.com/"; +const char kPasswordGenerationLearnMoreURL[] = "https://support.brave.com/"; + const char kPasswordManagerLearnMoreURL[] = "https://support.brave.com/hc/en-us/articles/" "360018185951-How-do-I-use-the-built-in-password-manager-"; @@ -204,6 +208,8 @@ const char kSafeBrowsingHelpCenterURL[] = const char kSafetyTipHelpCenterURL[] = "https://support.brave.com/"; +const char kSeeMoreSecurityTipsURL[] = + "https://support.brave.com/"; const char kSettingsSearchHelpURL[] = "https://support.brave.com/"; @@ -246,7 +252,7 @@ const char kEnhancedPlaybackNotificationLearnMoreURL[] = const char kChromeEnterpriseSignInLearnMoreURL[] = "https://support.brave.com/"; -const char kMac10_9_ObsoleteURL[] = +const char kMac10_10_ObsoleteURL[] = "https://support.brave.com/hc/en-us/articles/" "360025390311-How-do-I-download-and-install-Brave-"; #endif diff --git a/chromium_src/chrome/utility/importer/importer_creator.cc b/chromium_src/chrome/utility/importer/importer_creator.cc deleted file mode 100644 index e75af9eefb45..000000000000 --- a/chromium_src/chrome/utility/importer/importer_creator.cc +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright 2019 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "brave/utility/importer/brave_safari_importer.h" - -#define SafariImporter BraveSafariImporter -#include "../../../../../chrome/utility/importer/importer_creator.cc" -#undef SafariImporter diff --git a/chromium_src/chrome/utility/importer/safari_importer.h b/chromium_src/chrome/utility/importer/safari_importer.h deleted file mode 100644 index b7f3d11d75ff..000000000000 --- a/chromium_src/chrome/utility/importer/safari_importer.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef BRAVE_CHROMIUM_SRC_CHROME_UTILITY_IMPORTER_SAFARI_IMPORTER_H_ -#define BRAVE_CHROMIUM_SRC_CHROME_UTILITY_IMPORTER_SAFARI_IMPORTER_H_ - -#define BRAVE_SAFARI_IMPORTER_H \ - friend class BraveSafariImporter; - -#define ImportHistory virtual ImportHistory - -#include "../../../../../chrome/utility/importer/safari_importer.h" - -#undef BRAVE_SAFARI_IMPORTER_H -#undef ImportHistory - -#endif // BRAVE_CHROMIUM_SRC_CHROME_UTILITY_IMPORTER_SAFARI_IMPORTER_H_ diff --git a/chromium_src/components/content_settings/core/browser/brave_content_settings_registry_browsertest.cc b/chromium_src/components/content_settings/core/browser/brave_content_settings_registry_browsertest.cc index 4b47cd60b314..3cbd64da3ef2 100644 --- a/chromium_src/components/content_settings/core/browser/brave_content_settings_registry_browsertest.cc +++ b/chromium_src/components/content_settings/core/browser/brave_content_settings_registry_browsertest.cc @@ -27,7 +27,7 @@ class BraveContentSettingsRegistryBrowserTest : public InProcessBrowserTest { HostContentSettingsMap* private_content_settings() { return HostContentSettingsMapFactory::GetForProfile( - browser()->profile()->GetOffTheRecordProfile()); + browser()->profile()->GetPrimaryOTRProfile()); } private: diff --git a/chromium_src/components/crash/core/app/crashpad_android.cc b/chromium_src/components/crash/core/app/crashpad_android.cc index a1c497cc9b7d..287a33451819 100644 --- a/chromium_src/components/crash/core/app/crashpad_android.cc +++ b/chromium_src/components/crash/core/app/crashpad_android.cc @@ -48,6 +48,8 @@ class BraveCrashpadClient { const std::map& annotations, const std::vector& arguments); + void SetUnhandledSignals(const std::set& unhandled_signals); + static bool StartHandlerWithLinkerForClient( const std::string& handler_trampoline, const std::string& handler_library, @@ -147,6 +149,12 @@ bool BraveCrashpadClient::StartHandlerWithLinkerAtCrash( metrics_dir, brave_crash_url, annotations, arguments); } +void BraveCrashpadClient::SetUnhandledSignals( + const std::set& unhandled_signals) { + return crash_reporter::GetCrashpadClient().SetUnhandledSignals( + unhandled_signals); +} + // static bool BraveCrashpadClient::StartHandlerWithLinkerForClient( const std::string& handler_trampoline, diff --git a/chromium_src/components/search_engines/search_engine_utils.cc b/chromium_src/components/search_engines/search_engine_utils.cc new file mode 100644 index 000000000000..c64db7bd76f1 --- /dev/null +++ b/chromium_src/components/search_engines/search_engine_utils.cc @@ -0,0 +1,36 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "components/search_engines/search_engine_utils.h" + +#include "brave/components/search_engines/brave_prepopulated_engines.h" + +#define GetEngineType GetEngineType_ChromiumImpl +#include "../../../../components/search_engines/search_engine_utils.cc" +#undef GetEngineType + +namespace SearchEngineUtils { + +SearchEngineType GetEngineType(const GURL& url) { + SearchEngineType type = GetEngineType_ChromiumImpl(url); + if (type == SEARCH_ENGINE_OTHER) { + const auto& brave_engines_map = + TemplateURLPrepopulateData::GetBraveEnginesMap(); + for (const auto& entry : brave_engines_map) { + const auto* engine = entry.second; + if (SameDomain(url, GURL(engine->search_url))) { + return engine->type; + } + for (size_t j = 0; j < engine->alternate_urls_size; ++j) { + if (SameDomain(url, GURL(engine->alternate_urls[j]))) { + return engine->type; + } + } + } + } + return type; +} + +} // namespace SearchEngineUtils diff --git a/chromium_src/components/search_engines/template_url_prepopulate_data.cc b/chromium_src/components/search_engines/template_url_prepopulate_data.cc index 2860f37ad514..afac12e229f3 100644 --- a/chromium_src/components/search_engines/template_url_prepopulate_data.cc +++ b/chromium_src/components/search_engines/template_url_prepopulate_data.cc @@ -3,26 +3,25 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "components/search_engines/template_url_prepopulate_data.h" + +#include +#include + #include "base/stl_util.h" #include "base/strings/utf_string_conversions.h" +#include "brave/components/search_engines/brave_prepopulated_engines.h" #include "components/country_codes/country_codes.h" -// Pull in definitions for Brave prepopulated engines. It's ugly but these need -// to be built as part of the search_engines static library. -#include "../../../components/search_engines/brave_prepopulated_engines.cc" // NOLINT -#include "../../../components/search_engines/brave_prepopulated_engines.h" - #define GetDataVersion GetDataVersion_ChromiumImpl -#define GetEngineType GetEngineType_ChromiumImpl #if defined(OS_ANDROID) #define GetLocalPrepopulatedEngines GetLocalPrepopulatedEngines_Unused #endif #define GetPrepopulatedDefaultSearch GetPrepopulatedDefaultSearch_Unused #define GetPrepopulatedEngine GetPrepopulatedEngine_Unused #define GetPrepopulatedEngines GetPrepopulatedEngines_Unused -#include "../../../../components/search_engines/template_url_prepopulate_data.cc" // NOLINT +#include "../../../../components/search_engines/template_url_prepopulate_data.cc" #undef GetDataVersion -#undef GetEngineType #if defined(OS_ANDROID) #undef GetLocalPrepopulatedEngines #endif @@ -37,51 +36,6 @@ void LocalizeEngineList( namespace { -// Maps BravePrepopulatedEngineID to Chromium's PrepopulatedEngine. -const std::map - brave_engines_map = { - {PREPOPULATED_ENGINE_ID_GOOGLE, &google}, - {PREPOPULATED_ENGINE_ID_YAHOO, &brave_yahoo}, - {PREPOPULATED_ENGINE_ID_YAHOO_AR, &brave_yahoo_ar}, - {PREPOPULATED_ENGINE_ID_YAHOO_AT, &brave_yahoo_at}, - {PREPOPULATED_ENGINE_ID_YAHOO_AU, &brave_yahoo_au}, - {PREPOPULATED_ENGINE_ID_YAHOO_BR, &brave_yahoo_br}, - {PREPOPULATED_ENGINE_ID_YAHOO_CA, &brave_yahoo_ca}, - {PREPOPULATED_ENGINE_ID_YAHOO_CH, &brave_yahoo_ch}, - {PREPOPULATED_ENGINE_ID_YAHOO_CL, &brave_yahoo_cl}, - {PREPOPULATED_ENGINE_ID_YAHOO_CO, &brave_yahoo_co}, - {PREPOPULATED_ENGINE_ID_YAHOO_DE, &brave_yahoo_de}, - {PREPOPULATED_ENGINE_ID_YAHOO_DK, &brave_yahoo_dk}, - {PREPOPULATED_ENGINE_ID_YAHOO_ES, &brave_yahoo_es}, - {PREPOPULATED_ENGINE_ID_YAHOO_FI, &brave_yahoo_fi}, - {PREPOPULATED_ENGINE_ID_YAHOO_FR, &brave_yahoo_fr}, - {PREPOPULATED_ENGINE_ID_YAHOO_HK, &brave_yahoo_hk}, - {PREPOPULATED_ENGINE_ID_YAHOO_ID, &brave_yahoo_id}, - {PREPOPULATED_ENGINE_ID_YAHOO_IE, &brave_yahoo_ie}, - {PREPOPULATED_ENGINE_ID_YAHOO_IN, &brave_yahoo_in}, - {PREPOPULATED_ENGINE_ID_YAHOO_IT, &brave_yahoo_it}, - {PREPOPULATED_ENGINE_ID_YAHOO_MX, &brave_yahoo_mx}, - {PREPOPULATED_ENGINE_ID_YAHOO_MY, &brave_yahoo_my}, - {PREPOPULATED_ENGINE_ID_YAHOO_NL, &brave_yahoo_nl}, - {PREPOPULATED_ENGINE_ID_YAHOO_NO, &brave_yahoo_no}, - {PREPOPULATED_ENGINE_ID_YAHOO_NZ, &brave_yahoo_nz}, - {PREPOPULATED_ENGINE_ID_YAHOO_PE, &brave_yahoo_pe}, - {PREPOPULATED_ENGINE_ID_YAHOO_PH, &brave_yahoo_ph}, - {PREPOPULATED_ENGINE_ID_YAHOO_SE, &brave_yahoo_se}, - {PREPOPULATED_ENGINE_ID_YAHOO_SG, &brave_yahoo_sg}, - {PREPOPULATED_ENGINE_ID_YAHOO_TH, &brave_yahoo_th}, - {PREPOPULATED_ENGINE_ID_YAHOO_TW, &brave_yahoo_tw}, - {PREPOPULATED_ENGINE_ID_YAHOO_UK, &brave_yahoo_uk}, - {PREPOPULATED_ENGINE_ID_YAHOO_VE, &brave_yahoo_ve}, - {PREPOPULATED_ENGINE_ID_YAHOO_VN, &brave_yahoo_vn}, - {PREPOPULATED_ENGINE_ID_BING, &bing}, - {PREPOPULATED_ENGINE_ID_DUCKDUCKGO, &duckduckgo}, - {PREPOPULATED_ENGINE_ID_DUCKDUCKGO_DE, &duckduckgo_de}, - {PREPOPULATED_ENGINE_ID_DUCKDUCKGO_AU_NZ_IE, &duckduckgo_au_nz_ie}, - {PREPOPULATED_ENGINE_ID_QWANT, &qwant}, - {PREPOPULATED_ENGINE_ID_STARTPAGE, &startpage}, -}; - // Default order in which engines will appear in the UI. const std::vector brave_engines_default = { PREPOPULATED_ENGINE_ID_GOOGLE, @@ -294,6 +248,8 @@ std::vector GetEnginesFromEngineIDs( BravePrepopulatedEngineID default_engine_id, size_t* default_search_provider_index = nullptr) { std::vector engines; + const auto& brave_engines_map = + TemplateURLPrepopulateData::GetBraveEnginesMap(); for (size_t i = 0; i < engine_ids.size(); ++i) { const PrepopulatedEngine* engine = brave_engines_map.at(engine_ids.at(i)); DCHECK(engine); @@ -372,8 +328,10 @@ GetBravePrepopulatedEnginesForCountryID( // The intention of this function is to find the generic one // (ex: PREPOPULATED_ENGINE_ID_YAHOO) and then substitute the // country specific version. -void LocalizeEngineList( - int country_id, std::vector* engines) { +// This function is not in the anonymous namespace because it +// is used in brave_template_url_service_util_unittest. +void LocalizeEngineList(int country_id, + std::vector* engines) { for (size_t i = 0; i < engines->size(); ++i) { if ((*engines)[i] == PREPOPULATED_ENGINE_ID_YAHOO) { const auto& it = yahoo_engines_by_country_id_map.find(country_id); @@ -434,24 +392,6 @@ std::vector> GetLocalPrepopulatedEngines( #endif -SearchEngineType GetEngineType(const GURL& url) { - SearchEngineType type = GetEngineType_ChromiumImpl(url); - if (type == SEARCH_ENGINE_OTHER) { - for (const auto& entry : brave_engines_map) { - const auto* engine = entry.second; - if (SameDomain(url, GURL(engine->search_url))) { - return engine->type; - } - for (size_t j = 0; j < engine->alternate_urls_size; ++j) { - if (SameDomain(url, GURL(engine->alternate_urls[j]))) { - return engine->type; - } - } - } - } - return type; -} - // Functions below are copied verbatim from // components\search_engines\template_url_prepopulate_data.cc because they // need to call our versions of redefined Chromium's functions. diff --git a/chromium_src/components/translate/core/browser/translate_manager_unittest.cc b/chromium_src/components/translate/core/browser/translate_manager_unittest.cc index 21b713c1e645..06b5e09357d4 100644 --- a/chromium_src/components/translate/core/browser/translate_manager_unittest.cc +++ b/chromium_src/components/translate/core/browser/translate_manager_unittest.cc @@ -26,7 +26,7 @@ TEST_F(TranslateManagerTest, CanManuallyTranslate_WithoutAPIKey) { .WillByDefault(Return(true)); network_notifier_.SimulateOnline(); - translate_manager_->GetLanguageState().LanguageDetermined("de", true); + translate_manager_->GetLanguageState()->LanguageDetermined("de", true); EXPECT_TRUE(translate_manager_->CanManuallyTranslate()); ::google_apis::SetAPIKeyForTesting(api_key); @@ -48,7 +48,7 @@ TEST_F(TranslateManagerTest, CanManuallyTranslate_WithAPIKey) { .WillByDefault(Return(true)); network_notifier_.SimulateOnline(); - translate_manager_->GetLanguageState().LanguageDetermined("de", true); + translate_manager_->GetLanguageState()->LanguageDetermined("de", true); EXPECT_TRUE(translate_manager_->CanManuallyTranslate()); ::google_apis::SetAPIKeyForTesting(api_key); diff --git a/chromium_src/content/browser/frame_host/navigation_request.cc b/chromium_src/content/browser/renderer_host/navigation_request.cc similarity index 88% rename from chromium_src/content/browser/frame_host/navigation_request.cc rename to chromium_src/content/browser/renderer_host/navigation_request.cc index 24205c576e20..635d7b75fd5a 100644 --- a/chromium_src/content/browser/frame_host/navigation_request.cc +++ b/chromium_src/content/browser/renderer_host/navigation_request.cc @@ -3,12 +3,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include "content/browser/frame_host/frame_tree.h" -#include "content/browser/frame_host/frame_tree_node.h" +#include "content/browser/renderer_host/frame_tree.h" +#include "content/browser/renderer_host/frame_tree_node.h" #include "url/gurl.h" #if defined(OS_ANDROID) -#include "content/browser/frame_host/navigator.h" +#include "content/browser/renderer_host/navigator.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" #endif @@ -46,6 +46,6 @@ GURL GetTopDocumentGURL(content::FrameTreeNode* frame_tree_node) { GetTopDocumentGURL(frame_tree_node_), frame_tree_node_->IsMainFrame(), \ common_params_->method, &common_params_->referrer); -#include "../../../../../content/browser/frame_host/navigation_request.cc" +#include "../../../../../content/browser/renderer_host/navigation_request.cc" #undef BRAVE_ONSTARTCHECKSCOMPLETE_MAYBEHIDEREFERRER diff --git a/chromium_src/content/browser/webui/web_ui_url_loader_factory.cc b/chromium_src/content/browser/webui/web_ui_url_loader_factory.cc index 295967d36036..3650708fbcad 100644 --- a/chromium_src/content/browser/webui/web_ui_url_loader_factory.cc +++ b/chromium_src/content/browser/webui/web_ui_url_loader_factory.cc @@ -5,9 +5,9 @@ #include "content/public/browser/web_ui_url_loader_factory.h" -#define CreateWebUIURLLoader CreateWebUIURLLoader_ChromiumImpl +#define CreateWebUIURLLoaderFactory CreateWebUIURLLoaderFactory_ChromiumImpl #include "../../../../../content/browser/webui/web_ui_url_loader_factory.cc" -#undef CreateWebUIURLLoader +#undef CreateWebUIURLLoaderFactory namespace { constexpr char kBraveUIResourceHost[] = "brave-resources"; @@ -15,16 +15,16 @@ constexpr char kBraveUIResourceHost[] = "brave-resources"; namespace content { -std::unique_ptr CreateWebUIURLLoader( - RenderFrameHost* render_frame_host, - const std::string& scheme, - base::flat_set allowed_hosts) { +mojo::PendingRemote +CreateWebUIURLLoaderFactory(RenderFrameHost* render_frame_host, + const std::string& scheme, + base::flat_set allowed_hosts) { if (allowed_hosts.find(kChromeUIResourcesHost) != allowed_hosts.end()) { allowed_hosts.emplace(kBraveUIResourceHost); } - return CreateWebUIURLLoader_ChromiumImpl(render_frame_host, scheme, - allowed_hosts); + return CreateWebUIURLLoaderFactory_ChromiumImpl(render_frame_host, scheme, + allowed_hosts); } } // namespace content diff --git a/chromium_src/third_party/blink/public/platform/web_content_settings_client.h b/chromium_src/third_party/blink/public/platform/web_content_settings_client.h index 9c38ecf22c24..b88480cd65c2 100644 --- a/chromium_src/third_party/blink/public/platform/web_content_settings_client.h +++ b/chromium_src/third_party/blink/public/platform/web_content_settings_client.h @@ -8,7 +8,7 @@ #include "brave/third_party/blink/renderer/brave_farbling_constants.h" -#define AllowDatabase \ +#define AllowStorageAccessSync \ AllowAutoplay(bool default_value) { return default_value; } \ virtual bool AllowFingerprinting(bool enabled_per_settings) { \ return enabled_per_settings; \ @@ -16,11 +16,11 @@ virtual BraveFarblingLevel GetBraveFarblingLevel() { \ return BraveFarblingLevel::OFF; \ } \ - virtual bool AllowDatabase + virtual bool AllowStorageAccessSync #include "../../../../../../third_party/blink/public/platform/web_content_settings_client.h" -#undef AllowDatabase +#undef AllowStorageAccessSync #endif // BRAVE_CHROMIUM_SRC_THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_CONTENT_SETTINGS_CLIENT_H_ diff --git a/chromium_src/third_party/blink/renderer/core/context_features/context_feature_settings.h b/chromium_src/third_party/blink/renderer/core/context_features/context_feature_settings.h new file mode 100644 index 000000000000..73a637e7c9f7 --- /dev/null +++ b/chromium_src/third_party/blink/renderer/core/context_features/context_feature_settings.h @@ -0,0 +1,30 @@ +/* Copyright (c) 2020 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BRAVE_CHROMIUM_SRC_THIRD_PARTY_BLINK_RENDERER_CORE_CONTEXT_FEATURES_CONTEXT_FEATURE_SETTINGS_H_ +#define BRAVE_CHROMIUM_SRC_THIRD_PARTY_BLINK_RENDERER_CORE_CONTEXT_FEATURES_CONTEXT_FEATURE_SETTINGS_H_ + +// ContextEnabled=ReportingObservers feature methods need to be added since we +// patched ReportingObservers as ContextEnabled into +// third_party/blink/renderer/core/frame/reporting_observer.idl +#define BRAVE_CONTEXT_FEATURE_SETTINGS_H_ \ + public: \ + void enableReportingObservers(bool enable) { \ + enable_reporting_observers_ = enable; \ + } \ + bool isReportingObserversEnabled() const { \ + return enable_reporting_observers_; \ + } \ + \ + private: \ + bool enable_reporting_observers_ = false; \ + \ + public: +// #define BRAVE_CONTEXT_FEATURE_SETTINGS_H_ + +#include "../../../../../../../third_party/blink/renderer/core/context_features/context_feature_settings.h" +#undef BRAVE_CONTEXT_FEATURE_SETTINGS_H_ + +#endif // BRAVE_CHROMIUM_SRC_THIRD_PARTY_BLINK_RENDERER_CORE_CONTEXT_FEATURES_CONTEXT_FEATURE_SETTINGS_H_ diff --git a/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index 9693689fe01a..307b97f63b71 100644 --- a/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc @@ -26,7 +26,7 @@ ImageData* CanvasRenderingContext2D::getImageData( int sh, ExceptionState& exception_state) { blink::IdentifiabilityMetricBuilder(ukm_source_id_) - .Set(blink::IdentifiableSurface::FromTypeAndInput( + .Set(blink::IdentifiableSurface::FromTypeAndToken( blink::IdentifiableSurface::Type::kCanvasReadback, GetContextType()), 0) diff --git a/chromium_src/ui/views/controls/button/md_text_button.cc b/chromium_src/ui/views/controls/button/md_text_button.cc index 6b1bc56ab9be..b1e81a29dd7d 100644 --- a/chromium_src/ui/views/controls/button/md_text_button.cc +++ b/chromium_src/ui/views/controls/button/md_text_button.cc @@ -33,9 +33,14 @@ class BraveTextButtonHighlightPathGenerator namespace views { MdTextButton::MdTextButton(ButtonListener* listener, - const base::string16& text, - int button_context) - : MdTextButtonBase(listener, text, button_context) { + const base::string16& text, + int button_context) + : MdTextButtonBase(PressedCallback(listener, this), text, button_context) {} + +MdTextButton::MdTextButton(PressedCallback callback, + const base::string16& text, + int button_context) + : MdTextButtonBase(std::move(callback), text, button_context) { SetCornerRadius(100); views::HighlightPathGenerator::Install( this, std::make_unique()); diff --git a/chromium_src/ui/views/controls/button/md_text_button.h b/chromium_src/ui/views/controls/button/md_text_button.h index eeb22d4dabfe..3b649002353c 100644 --- a/chromium_src/ui/views/controls/button/md_text_button.h +++ b/chromium_src/ui/views/controls/button/md_text_button.h @@ -31,7 +31,9 @@ class VIEWS_EXPORT MdTextButton : public MdTextButtonBase { explicit MdTextButton(ButtonListener* listener = nullptr, const base::string16& text = base::string16(), int button_context = style::CONTEXT_BUTTON_MD); - + explicit MdTextButton(PressedCallback callback, + const base::string16& text = base::string16(), + int button_context = style::CONTEXT_BUTTON_MD); ~MdTextButton() override; // InkDrop diff --git a/common/resource_bundle_helper.cc b/common/resource_bundle_helper.cc index 6d14c7143f44..6de1eb4f5180 100644 --- a/common/resource_bundle_helper.cc +++ b/common/resource_bundle_helper.cc @@ -10,7 +10,6 @@ #include "base/command_line.h" #include "base/path_service.h" #include "chrome/common/chrome_paths.h" -#include "services/service_manager/embedder/switches.h" #include "ui/base/resource/resource_bundle.h" #if !defined(OS_IOS) @@ -96,7 +95,7 @@ bool SubprocessNeedsResourceBundle() { return #if defined(OS_POSIX) && !defined(OS_MAC) // The zygote process opens the resources for the renderers. - process_type == service_manager::switches::kZygoteProcess || + process_type == switches::kZygoteProcess || #endif // defined(OS_POSIX) && !defined(OS_MAC) #if defined(OS_MAC) // Mac needs them too for scrollbar related images and for sandbox diff --git a/components/autofill_payments_strings.grdp b/components/autofill_payments_strings.grdp index 865cf1feb607..6674ca6a7c36 100644 --- a/components/autofill_payments_strings.grdp +++ b/components/autofill_payments_strings.grdp @@ -505,4 +505,9 @@ No thanks + + + Cashback linked + + diff --git a/components/binance/browser/binance_service.cc b/components/binance/browser/binance_service.cc index 7b9291163a5d..c069b8665bd7 100644 --- a/components/binance/browser/binance_service.cc +++ b/components/binance/browser/binance_service.cc @@ -32,6 +32,7 @@ #include "net/base/url_util.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" namespace { @@ -172,7 +173,7 @@ bool BinanceService::OAuthRequest(const GURL &url, net::LOAD_DISABLE_CACHE; if (!send_save_cookies) { - request->load_flags |= net::LOAD_DO_NOT_SEND_COOKIES; + request->credentials_mode = network::mojom::CredentialsMode::kOmit; request->load_flags |= net::LOAD_DO_NOT_SAVE_COOKIES; } diff --git a/components/brave_ads/browser/ads_tab_helper.h b/components/brave_ads/browser/ads_tab_helper.h index e22a4341878c..e4a6c5a44381 100644 --- a/components/brave_ads/browser/ads_tab_helper.h +++ b/components/brave_ads/browser/ads_tab_helper.h @@ -12,13 +12,16 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "build/build_config.h" -#include "chrome/browser/ui/browser_list_observer.h" #include "components/sessions/core/session_id.h" #include "content/public/browser/media_player_id.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" #include "url/gurl.h" +#if !defined(OS_ANDROID) +#include "chrome/browser/ui/browser_list_observer.h" +#endif + class Browser; namespace dom_distiller { diff --git a/components/brave_referrals/browser/brave_referrals_service.cc b/components/brave_referrals/browser/brave_referrals_service.cc index 6b77ccd9c5e1..46c6eb01483b 100644 --- a/components/brave_referrals/browser/brave_referrals_service.cc +++ b/components/brave_referrals/browser/brave_referrals_service.cc @@ -41,6 +41,7 @@ #include "net/traffic_annotation/network_traffic_annotation.h" #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" #if defined(OS_ANDROID) #include "chrome/browser/android/service_tab_launcher.h" @@ -555,10 +556,10 @@ void BraveReferralsService::FetchReferralHeaders() { auto resource_request = std::make_unique(); resource_request->url = GURL(BuildReferralEndpoint(kBraveReferralsHeadersPath)); - resource_request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | - net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_AUTH_DATA; + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; + resource_request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES | + net::LOAD_BYPASS_CACHE | + net::LOAD_DISABLE_CACHE; network::mojom::URLLoaderFactory* loader_factory = g_browser_process->system_network_context_manager() ->GetURLLoaderFactory(); @@ -596,10 +597,10 @@ void BraveReferralsService::InitReferral() { auto resource_request = std::make_unique(); resource_request->method = "PUT"; resource_request->url = GURL(BuildReferralEndpoint(kBraveReferralsInitPath)); - resource_request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | - net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_AUTH_DATA; + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; + resource_request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES | + net::LOAD_BYPASS_CACHE | + net::LOAD_DISABLE_CACHE; network::mojom::URLLoaderFactory* loader_factory = g_browser_process->system_network_context_manager() ->GetURLLoaderFactory(); @@ -664,10 +665,10 @@ void BraveReferralsService::CheckForReferralFinalization() { resource_request->method = "PUT"; resource_request->url = GURL(BuildReferralEndpoint(kBraveReferralsActivityPath)); - resource_request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | - net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_AUTH_DATA; + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; + resource_request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES | + net::LOAD_BYPASS_CACHE | + net::LOAD_DISABLE_CACHE; network::mojom::URLLoaderFactory* loader_factory = g_browser_process->system_network_context_manager() ->GetURLLoaderFactory(); diff --git a/components/brave_shields/browser/BUILD.gn b/components/brave_shields/browser/BUILD.gn index a885f531e67f..484439a2095b 100644 --- a/components/brave_shields/browser/BUILD.gn +++ b/components/brave_shields/browser/BUILD.gn @@ -30,7 +30,6 @@ source_set("browser") { "brave_shields_p3a.h", "brave_shields_util.cc", "brave_shields_util.h", - "brave_shields_web_contents_observer_android.cc", "brave_shields_web_contents_observer.cc", "brave_shields_web_contents_observer.h", "cookie_pref_service.cc", @@ -42,6 +41,10 @@ source_set("browser") { "tracking_protection_service.h", ] + if (is_android) { + sources += [ "brave_shields_web_contents_observer_android.cc" ] + } + if (brave_stp_enabled) { sources += [ "tracking_protection_helper.cc", diff --git a/components/brave_shields/browser/brave_shields_web_contents_observer.cc b/components/brave_shields/browser/brave_shields_web_contents_observer.cc index d9a5c494e9d9..a153bf2755ea 100644 --- a/components/brave_shields/browser/brave_shields_web_contents_observer.cc +++ b/components/brave_shields/browser/brave_shields_web_contents_observer.cc @@ -24,8 +24,8 @@ #include "components/content_settings/core/common/content_settings_utils.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" -#include "content/browser/frame_host/frame_tree_node.h" -#include "content/browser/frame_host/navigator.h" +#include "content/browser/renderer_host/frame_tree_node.h" +#include "content/browser/renderer_host/navigator.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_handle.h" diff --git a/components/brave_shields/browser/cookie_pref_service.cc b/components/brave_shields/browser/cookie_pref_service.cc index 4d9eb74c7619..91dead089d0b 100644 --- a/components/brave_shields/browser/cookie_pref_service.cc +++ b/components/brave_shields/browser/cookie_pref_service.cc @@ -46,10 +46,6 @@ void SetCookieControlTypeFromPrefs(HostContentSettingsMap* map, static_cast( prefs->GetInteger(prefs::kCookieControlsMode))); - if (prefs->GetBoolean(prefs::kBlockThirdPartyCookies)) { - control_type = ControlType::BLOCK_THIRD_PARTY; - } - if (IntToContentSetting(prefs->GetInteger( "profile.default_content_setting_values.cookies")) == ContentSetting::CONTENT_SETTING_BLOCK) { @@ -72,8 +68,6 @@ content_settings::CookieControlsMode ControlTypeToCookieControlsMode( void SetCookiePrefDefaults(HostContentSettingsMap* map, PrefService* prefs) { auto type = GetCookieControlType(map, GURL()); - prefs->SetBoolean(prefs::kBlockThirdPartyCookies, - type == ControlType::BLOCK_THIRD_PARTY); prefs->SetInteger(prefs::kCookieControlsMode, static_cast(ControlTypeToCookieControlsMode(type))); @@ -120,10 +114,6 @@ CookiePrefService::CookiePrefService( SetCookiePrefDefaults(host_content_settings_map, prefs); host_content_settings_map_->AddObserver(this); pref_change_registrar_.Init(prefs_); - pref_change_registrar_.Add( - prefs::kBlockThirdPartyCookies, - base::BindRepeating(&CookiePrefService::OnPreferenceChanged, - base::Unretained(this))); pref_change_registrar_.Add( prefs::kCookieControlsMode, base::BindRepeating(&CookiePrefService::OnPreferenceChanged, diff --git a/components/brave_wayback_machine/wayback_machine_url_fetcher.cc b/components/brave_wayback_machine/wayback_machine_url_fetcher.cc index 603eebcd68b2..ab41e500fcd7 100644 --- a/components/brave_wayback_machine/wayback_machine_url_fetcher.cc +++ b/components/brave_wayback_machine/wayback_machine_url_fetcher.cc @@ -15,6 +15,7 @@ #include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" #include "url/gurl.h" namespace { @@ -59,8 +60,8 @@ void WaybackMachineURLFetcher::Fetch(const GURL& url) { std::string wayback_fetch_url = std::string(kWaybackQueryURL) + url.spec(); request->url = GURL(wayback_fetch_url); - request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES; + request->credentials_mode = network::mojom::CredentialsMode::kOmit; + request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES; wayback_url_loader_ = network::SimpleURLLoader::Create( std::move(request), GetNetworkTrafficAnnotationTag()); wayback_url_loader_->DownloadToString( diff --git a/components/components_strings.grd b/components/components_strings.grd index c5efe982fcbd..9deb485b08fe 100644 --- a/components/components_strings.grd +++ b/components/components_strings.grd @@ -336,7 +336,7 @@ Close - + Clear diff --git a/components/crypto_dot_com/browser/crypto_dot_com_service.cc b/components/crypto_dot_com/browser/crypto_dot_com_service.cc index ca61196fea9b..673e10772f06 100644 --- a/components/crypto_dot_com/browser/crypto_dot_com_service.cc +++ b/components/crypto_dot_com/browser/crypto_dot_com_service.cc @@ -26,6 +26,7 @@ #include "net/base/url_util.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" namespace { @@ -173,9 +174,9 @@ bool CryptoDotComService::NetworkRequest(const GURL &url, URLRequestCallback callback) { auto request = std::make_unique(); request->url = url; + request->credentials_mode = network::mojom::CredentialsMode::kOmit; request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES; request->method = method; diff --git a/components/dom_distiller_strings.grdp b/components/dom_distiller_strings.grdp index 8d4a51facbf8..ca050ee2f3d4 100644 --- a/components/dom_distiller_strings.grdp +++ b/components/dom_distiller_strings.grdp @@ -44,6 +44,45 @@ + + Customize appearance + + + Font style + + + Sans-serif Font + + + Serif Font + + + Monospace Font + + + Page Color + + + Light + + + Sepia + + + Dark + + + Font Size + + + Small + + + Large + + + Close + No data found. diff --git a/components/error_page_strings.grdp b/components/error_page_strings.grdp index b4c41ee9c163..0f4808867245 100644 --- a/components/error_page_strings.grdp +++ b/components/error_page_strings.grdp @@ -98,7 +98,7 @@ Check your administrator's policies - Visit <strong>chrome://policy</strong> to see the list of blacklisted URLs and other policies enforced by your system administrator. + Visit <strong>chrome://policy</strong> to see the list of blocked URLs and other policies enforced by your system administrator. Unsupported protocol @@ -332,6 +332,10 @@ Try disabling your extensions. + + Check if there is a typo in <span jscontent="hostName"></span>www.whatever.com. + + <a href="javascript:diagnoseErrors()" id="diagnose-link">Running Network Diagnostics</a> @@ -339,6 +343,9 @@ <a href="javascript:diagnoseErrors()" id="diagnose-link">Try running Network Diagnostics</a>. + + If spelling is correct, <a href="javascript:diagnoseErrors()" id="diagnose-link">try running Network Diagnostics</a>. + @@ -347,6 +354,9 @@ <a href="javascript:diagnoseErrors()" id="diagnose-link">Try running Windows Network Diagnostics</a>. + + If spelling is correct, <a href="javascript:diagnoseErrors()" id="diagnose-link">try running Windows Network Diagnostics</a>. + @@ -355,6 +365,9 @@ <a href="javascript:diagnoseErrors()" id="diagnose-link">Try running Connectivity Diagnostics</a>. + + If spelling is correct, <a href="javascript:diagnoseErrors()" id="diagnose-link">try running Connectivity Diagnostics</a>. + diff --git a/components/gemini/browser/gemini_service.cc b/components/gemini/browser/gemini_service.cc index b22157304242..e13f1c087ff4 100644 --- a/components/gemini/browser/gemini_service.cc +++ b/components/gemini/browser/gemini_service.cc @@ -32,6 +32,7 @@ #include "net/base/url_util.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" namespace { const char oauth_host[] = "exchange.gemini.com"; @@ -442,9 +443,9 @@ bool GeminiService::OAuthRequest(const GURL &url, const std::string& payload) { auto request = std::make_unique(); request->url = url; + request->credentials_mode = network::mojom::CredentialsMode::kOmit; request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE | - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES; request->method = method; diff --git a/components/ipfs/ipfs_interstitial_controller_client.cc b/components/ipfs/ipfs_interstitial_controller_client.cc index 164887a5fd62..d405ac709caf 100644 --- a/components/ipfs/ipfs_interstitial_controller_client.cc +++ b/components/ipfs/ipfs_interstitial_controller_client.cc @@ -8,6 +8,7 @@ #include "brave/components/ipfs/ipfs_utils.h" #include "brave/components/ipfs/pref_names.h" #include "components/prefs/pref_service.h" +#include "components/security_interstitials/content/settings_page_helper.h" #include "components/security_interstitials/core/metrics_helper.h" #include "content/public/browser/page_navigator.h" #include "content/public/browser/web_contents.h" @@ -37,7 +38,8 @@ IPFSInterstitialControllerClient::IPFSInterstitialControllerClient( GetMetricsHelper(request_url), prefs, locale, - GURL("about:blank") /* default_safe_page */), + GURL("about:blank") /* default_safe_page */, + nullptr /* settings_page_helper */), request_url_(request_url) {} void IPFSInterstitialControllerClient::Proceed() { diff --git a/components/omnibox_strings.grdp b/components/omnibox_strings.grdp index f8edaa53b0ac..43751f4fedae 100644 --- a/components/omnibox_strings.grdp +++ b/components/omnibox_strings.grdp @@ -255,8 +255,8 @@ $1The Brave Projects http://www.chromium.org bookmark, press Tab then Enter to search - - Search button, press Enter to search $1Youtube + + Search mode, press Enter to search $1Youtube diff --git a/components/p3a/brave_histogram_rewrite.cc b/components/p3a/brave_histogram_rewrite.cc index 24509cd3ac8a..20b4b7bd3699 100644 --- a/components/p3a/brave_histogram_rewrite.cc +++ b/components/p3a/brave_histogram_rewrite.cc @@ -24,9 +24,11 @@ constexpr const char* kBravezationHistograms[] = { // TODO(iefremov): Replace a bunch of 'if's with something more elegant. // Records the given sample using the proper Brave way. -void DoHistogramBravezation(base::StringPiece histogram_name, +void DoHistogramBravezation(const char* histogram_name, + uint64_t name_hash, base::HistogramBase::Sample sample) { - if ("Bookmarks.Count.OnProfileLoad" == histogram_name) { + DCHECK(histogram_name); + if (strcmp("Bookmarks.Count.OnProfileLoad", histogram_name) == 0) { constexpr int kIntervals[] = {5, 20, 100, 500, 1000, 5000, 10000}; const int* it = std::lower_bound(kIntervals, std::end(kIntervals), sample); @@ -36,7 +38,7 @@ void DoHistogramBravezation(base::StringPiece histogram_name, return; } - if ("DefaultBrowser.State" == histogram_name) { + if (strcmp("DefaultBrowser.State", histogram_name) == 0) { int answer = 0; switch (sample) { case 0: // Not default. @@ -55,7 +57,7 @@ void DoHistogramBravezation(base::StringPiece histogram_name, UMA_HISTOGRAM_BOOLEAN("Brave.Core.IsDefault", answer); } - if ("Extensions.LoadExtension" == histogram_name) { + if (strcmp("Extensions.LoadExtension", histogram_name) == 0) { int answer = 0; if (sample == 1) answer = 1; @@ -68,7 +70,7 @@ void DoHistogramBravezation(base::StringPiece histogram_name, return; } - if ("Tabs.TabCount" == histogram_name) { + if (strcmp("Tabs.TabCount", histogram_name) == 0) { int answer = 0; if (0 <= sample && sample <= 1) { answer = 0; @@ -86,7 +88,7 @@ void DoHistogramBravezation(base::StringPiece histogram_name, return; } - if ("Tabs.WindowCount" == histogram_name) { + if (strcmp("Tabs.WindowCount", histogram_name) == 0) { int answer = 0; if (sample <= 0) { answer = 0; @@ -109,7 +111,7 @@ void SetupHistogramsBraveization() { for (const char* histogram_name : kBravezationHistograms) { base::StatisticsRecorder::SetCallback( histogram_name, - base::BindRepeating(&DoHistogramBravezation, histogram_name)); + base::BindRepeating(&DoHistogramBravezation)); } } diff --git a/components/p3a/brave_p3a_service.cc b/components/p3a/brave_p3a_service.cc index 7b5f3bd824fd..62d2f59fde9b 100644 --- a/components/p3a/brave_p3a_service.cc +++ b/components/p3a/brave_p3a_service.cc @@ -199,8 +199,7 @@ void BraveP3AService::InitCallbacks() { for (const char* histogram_name : kCollectedHistograms) { base::StatisticsRecorder::SetCallback( histogram_name, - base::BindRepeating(&BraveP3AService::OnHistogramChanged, this, - histogram_name)); + base::BindRepeating(&BraveP3AService::OnHistogramChanged, this)); } } @@ -380,7 +379,8 @@ void BraveP3AService::StartScheduledUpload() { } } -void BraveP3AService::OnHistogramChanged(base::StringPiece histogram_name, +void BraveP3AService::OnHistogramChanged(const char* histogram_name, + uint64_t name_hash, base::HistogramBase::Sample sample) { std::unique_ptr samples = base::StatisticsRecorder::FindHistogram(histogram_name)->SnapshotDelta(); @@ -428,7 +428,7 @@ void BraveP3AService::OnHistogramChanged(base::StringPiece histogram_name, histogram_name, sample, bucket)); } -void BraveP3AService::OnHistogramChangedOnUI(base::StringPiece histogram_name, +void BraveP3AService::OnHistogramChangedOnUI(const char* histogram_name, base::HistogramBase::Sample sample, size_t bucket) { VLOG(2) << "BraveP3AService::OnHistogramChanged: histogram_name = " diff --git a/components/p3a/brave_p3a_service.h b/components/p3a/brave_p3a_service.h index 44fe786e6d0f..54cd1374f15b 100644 --- a/components/p3a/brave_p3a_service.h +++ b/components/p3a/brave_p3a_service.h @@ -66,10 +66,11 @@ class BraveP3AService : public base::RefCountedThreadSafe, // Invoked by callbacks registered by our service. Since these callbacks // can fire on any thread, this method reposts everything to UI thread. - void OnHistogramChanged(base::StringPiece histogram_name, + void OnHistogramChanged(const char* histogram_name, + uint64_t name_hash, base::HistogramBase::Sample sample); - void OnHistogramChangedOnUI(base::StringPiece histogram_name, + void OnHistogramChangedOnUI(const char* histogram_name, base::HistogramBase::Sample sample, size_t bucket); diff --git a/components/page_info_strings.grdp b/components/page_info_strings.grdp index 1dbca0d900de..c9cb885b7eff 100644 --- a/components/page_info_strings.grdp +++ b/components/page_info_strings.grdp @@ -246,6 +246,9 @@ Background Sync + + User presence + Images @@ -316,7 +319,7 @@ Window placement - Local font access + Fonts HID devices @@ -574,7 +577,7 @@ Ignore - + Site is legitimate diff --git a/components/pdf_strings.grdp b/components/pdf_strings.grdp index 6144624565f1..db4809f6e9cb 100644 --- a/components/pdf_strings.grdp +++ b/components/pdf_strings.grdp @@ -2,11 +2,11 @@ - - Original + + Without your changes - - Edited + + With your changes This document is password protected. Please enter a password. @@ -37,6 +37,9 @@ Bookmarks + + Section + Rotate clockwise @@ -59,11 +62,11 @@ Two page view - - Single page view - - Show annotations + Annotations + + + Zoom level Zoom in @@ -90,6 +93,9 @@ =1 {PDF document containing {COUNT} page} other {PDF document containing {COUNT} pages}} + + Thumbnail for page 1$1 + Discard changes? @@ -109,6 +115,18 @@ Annotation not available + + Edit annotations in default view? + + + When you edit annotations, this document will return to its original rotation + + + When you edit annotations, this document will return to single page view + + + When you edit annotations, this document will return to single page view and its original rotation + Document is too large to be annotated diff --git a/components/permissions_strings.grdp b/components/permissions_strings.grdp index 80e82784d8c8..6f0836d44b95 100644 --- a/components/permissions_strings.grdp +++ b/components/permissions_strings.grdp @@ -31,6 +31,9 @@ • Create a 3D map of your surroundings and track camera position • Use your camera + + $1google.com wants to know when you're present + Notifications for $1example.com are blocked @@ -109,9 +112,10 @@ Create a 3D map of your surroundings and track camera position - + Access cookies and site data. - + + Do you want to allow $1news.site to use cookies and site data on $2content_domain.site? This will otherwise be blocked by your privacy settings. This will allow the content you interacted with to work correctly, but may allow $1news.site to track your activity. @@ -120,7 +124,10 @@ This will otherwise be blocked by your privacy settings. This will allow the con Open and place windows on your screens - Use the fonts installed on your computer so you can create advanced typography + Use the fonts on your computer so you can create high-fidelity content + + + Know when you're present Allow @@ -157,6 +164,9 @@ This will otherwise be blocked by your privacy settings. This will allow the con Allow AR? + + Share your presence? + diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp index cd690062a530..61d9a3d5d5da 100644 --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp @@ -59,6 +59,9 @@ Request is too large + + Too many requests + Can't enroll with consumer account (packaged license available). @@ -442,6 +445,9 @@ Additional details: Enterprise default + + Default + Command line @@ -566,4 +572,22 @@ Additional details: This application has been blocked by your administrator + + + + Pasting from $1corp.google.com to this location is blocked by your administrator + + + Your administrator has blocked sharing from $1corp.google.com to $2Linux + + + Your administrator has blocked sharing from $1corp.google.com to $2Linux and $3Parallels + + + Android apps + + + Printing of this content is blocked by your administrator + + diff --git a/components/search_engines/brave_prepopulated_engines.cc b/components/search_engines/brave_prepopulated_engines.cc index fbcf328e1caa..3db7911db9ac 100644 --- a/components/search_engines/brave_prepopulated_engines.cc +++ b/components/search_engines/brave_prepopulated_engines.cc @@ -14,6 +14,53 @@ namespace TemplateURLPrepopulateData { // engines below or add/remove engines. const int kBraveCurrentDataVersion = 7; +namespace { + +// Maps BravePrepopulatedEngineID to Chromium's PrepopulatedEngine. +const std::map + brave_engines_map = { + {PREPOPULATED_ENGINE_ID_GOOGLE, &google}, + {PREPOPULATED_ENGINE_ID_YAHOO, &brave_yahoo}, + {PREPOPULATED_ENGINE_ID_YAHOO_AR, &brave_yahoo_ar}, + {PREPOPULATED_ENGINE_ID_YAHOO_AT, &brave_yahoo_at}, + {PREPOPULATED_ENGINE_ID_YAHOO_AU, &brave_yahoo_au}, + {PREPOPULATED_ENGINE_ID_YAHOO_BR, &brave_yahoo_br}, + {PREPOPULATED_ENGINE_ID_YAHOO_CA, &brave_yahoo_ca}, + {PREPOPULATED_ENGINE_ID_YAHOO_CH, &brave_yahoo_ch}, + {PREPOPULATED_ENGINE_ID_YAHOO_CL, &brave_yahoo_cl}, + {PREPOPULATED_ENGINE_ID_YAHOO_CO, &brave_yahoo_co}, + {PREPOPULATED_ENGINE_ID_YAHOO_DE, &brave_yahoo_de}, + {PREPOPULATED_ENGINE_ID_YAHOO_DK, &brave_yahoo_dk}, + {PREPOPULATED_ENGINE_ID_YAHOO_ES, &brave_yahoo_es}, + {PREPOPULATED_ENGINE_ID_YAHOO_FI, &brave_yahoo_fi}, + {PREPOPULATED_ENGINE_ID_YAHOO_FR, &brave_yahoo_fr}, + {PREPOPULATED_ENGINE_ID_YAHOO_HK, &brave_yahoo_hk}, + {PREPOPULATED_ENGINE_ID_YAHOO_ID, &brave_yahoo_id}, + {PREPOPULATED_ENGINE_ID_YAHOO_IE, &brave_yahoo_ie}, + {PREPOPULATED_ENGINE_ID_YAHOO_IN, &brave_yahoo_in}, + {PREPOPULATED_ENGINE_ID_YAHOO_IT, &brave_yahoo_it}, + {PREPOPULATED_ENGINE_ID_YAHOO_MX, &brave_yahoo_mx}, + {PREPOPULATED_ENGINE_ID_YAHOO_MY, &brave_yahoo_my}, + {PREPOPULATED_ENGINE_ID_YAHOO_NL, &brave_yahoo_nl}, + {PREPOPULATED_ENGINE_ID_YAHOO_NO, &brave_yahoo_no}, + {PREPOPULATED_ENGINE_ID_YAHOO_NZ, &brave_yahoo_nz}, + {PREPOPULATED_ENGINE_ID_YAHOO_PE, &brave_yahoo_pe}, + {PREPOPULATED_ENGINE_ID_YAHOO_PH, &brave_yahoo_ph}, + {PREPOPULATED_ENGINE_ID_YAHOO_SE, &brave_yahoo_se}, + {PREPOPULATED_ENGINE_ID_YAHOO_SG, &brave_yahoo_sg}, + {PREPOPULATED_ENGINE_ID_YAHOO_TH, &brave_yahoo_th}, + {PREPOPULATED_ENGINE_ID_YAHOO_TW, &brave_yahoo_tw}, + {PREPOPULATED_ENGINE_ID_YAHOO_UK, &brave_yahoo_uk}, + {PREPOPULATED_ENGINE_ID_YAHOO_VE, &brave_yahoo_ve}, + {PREPOPULATED_ENGINE_ID_YAHOO_VN, &brave_yahoo_vn}, + {PREPOPULATED_ENGINE_ID_BING, &bing}, + {PREPOPULATED_ENGINE_ID_DUCKDUCKGO, &duckduckgo}, + {PREPOPULATED_ENGINE_ID_DUCKDUCKGO_DE, &duckduckgo_de}, + {PREPOPULATED_ENGINE_ID_DUCKDUCKGO_AU_NZ_IE, &duckduckgo_au_nz_ie}, + {PREPOPULATED_ENGINE_ID_QWANT, &qwant}, + {PREPOPULATED_ENGINE_ID_STARTPAGE, &startpage}, +}; + PrepopulatedEngine ModifyEngineParams(const PrepopulatedEngine& engine, const wchar_t* const name, const wchar_t* const keyword, @@ -40,6 +87,8 @@ PrepopulatedEngine ModifyEngineParams(const PrepopulatedEngine& engine, id > 0 ? id : engine.id}; } +} // namespace + const PrepopulatedEngine duckduckgo = { L"DuckDuckGo", L":d", @@ -456,4 +505,9 @@ const PrepopulatedEngine brave_yahoo_vn = BRAVE_YAHOO_SUGGEST_URL("vn"), PREPOPULATED_ENGINE_ID_YAHOO_VN); +const std::map& +GetBraveEnginesMap() { + return brave_engines_map; +} + } // namespace TemplateURLPrepopulateData diff --git a/components/search_engines/brave_prepopulated_engines.h b/components/search_engines/brave_prepopulated_engines.h index eeb1b00a3cee..a2b77b8fb632 100644 --- a/components/search_engines/brave_prepopulated_engines.h +++ b/components/search_engines/brave_prepopulated_engines.h @@ -7,6 +7,7 @@ #define BRAVE_COMPONENTS_SEARCH_ENGINES_BRAVE_PREPOPULATED_ENGINES_H_ #include +#include #include "build/build_config.h" #include "components/search_engines/prepopulated_engines.h" @@ -131,6 +132,9 @@ extern const PrepopulatedEngine brave_yahoo_uk; extern const PrepopulatedEngine brave_yahoo_ve; extern const PrepopulatedEngine brave_yahoo_vn; +const std::map& +GetBraveEnginesMap(); + } // namespace TemplateURLPrepopulateData #endif // BRAVE_COMPONENTS_SEARCH_ENGINES_BRAVE_PREPOPULATED_ENGINES_H_ diff --git a/components/search_engines/sources.gni b/components/search_engines/sources.gni new file mode 100644 index 000000000000..e6dcb2680c8b --- /dev/null +++ b/components/search_engines/sources.gni @@ -0,0 +1,9 @@ +# Copyright (c) 2020 The Brave Authors. All rights reserved. +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at http://mozilla.org/MPL/2.0/. + +brave_components_search_engines_sources = [ + "//brave/components/search_engines/brave_prepopulated_engines.cc", + "//brave/components/search_engines/brave_prepopulated_engines.h" +] diff --git a/components/security_interstitials_strings.grdp b/components/security_interstitials_strings.grdp index 52b7a971e4d3..77cddb50dd03 100644 --- a/components/security_interstitials_strings.grdp +++ b/components/security_interstitials_strings.grdp @@ -246,6 +246,9 @@ Help improve security on the web for everyone by sending <a href="#" id="whitepaper-link">URLs of some pages you visit, limited system information, and some page content</a> to Brave. <a id="privacy-link" href="#">Privacy policy</a> + + To get Brave’s highest level of security, <a href="#" id="enhanced-protection-link">turn on enhanced protection</a>. + diff --git a/components/tor/tor_control.cc b/components/tor/tor_control.cc index a66416fb1e13..ee29add92d3b 100644 --- a/components/tor/tor_control.cc +++ b/components/tor/tor_control.cc @@ -449,7 +449,7 @@ void TorControl::OpenControl(int portno, std::vector cookie) { net::AddressList addrlist = net::AddressList::CreateFromIPAddress( net::IPAddress::IPv4Localhost(), portno); socket_ = std::make_unique( - addrlist, nullptr, net::NetLog::Get(), net::NetLogSource()); + addrlist, nullptr, nullptr, net::NetLog::Get(), net::NetLogSource()); int rv = socket_->Connect(base::BindOnce( &TorControl::Connected, base::Unretained(this), std::move(cookie))); if (rv == net::ERR_IO_PENDING) diff --git a/components/translate_strings.grdp b/components/translate_strings.grdp index 0ce4c79cec27..c50a08f7dd88 100644 --- a/components/translate_strings.grdp +++ b/components/translate_strings.grdp @@ -64,6 +64,9 @@ Never translate this site + + Don‘t offer to translate this site + Always translate pages in %1$sFrench @@ -71,6 +74,9 @@ Never translate pages in %1$sFrench + + Don‘t offer to translate pages in %1$sFrench + More languages diff --git a/components/vector_icons/BUILD.gn b/components/vector_icons/BUILD.gn index 5a54aaba340c..7c74295f992f 100644 --- a/components/vector_icons/BUILD.gn +++ b/components/vector_icons/BUILD.gn @@ -5,10 +5,10 @@ import("//components/vector_icons/vector_icons.gni") -aggregate_vector_icons("brave_components_vector_icons") { +aggregate_vector_icons2("brave_components_vector_icons") { icon_directory = "." - icons = [ "autoplay_status.icon" ] + sources = [ "autoplay_status.icon" ] } static_library("vector_icons") { diff --git a/components/webcompat_reporter/browser/webcompat_report_uploader.cc b/components/webcompat_reporter/browser/webcompat_report_uploader.cc index a02319a24ca2..9f57283a0834 100644 --- a/components/webcompat_reporter/browser/webcompat_report_uploader.cc +++ b/components/webcompat_reporter/browser/webcompat_report_uploader.cc @@ -15,8 +15,10 @@ #include "brave/components/brave_stats/browser/brave_stats_updater_util.h" #include "content/public/browser/browser_task_traits.h" #include "net/base/load_flags.h" +#include "net/base/privacy_mode.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" #include "url/gurl.h" namespace brave { @@ -51,9 +53,9 @@ void WebcompatReportUploader::CreateAndStartURLLoader( auto resource_request = std::make_unique(); resource_request->url = GURL(upload_url); resource_request->method = "POST"; + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; resource_request->load_flags = - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_BYPASS_CACHE | - net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SEND_AUTH_DATA; + net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE; net::NetworkTrafficAnnotationTag traffic_annotation = net::DefineNetworkTrafficAnnotation("background_performance_tracer", R"( diff --git a/patches/base-BUILD.gn.patch b/patches/base-BUILD.gn.patch index f97f47fd76b4..e04f8990df93 100644 --- a/patches/base-BUILD.gn.patch +++ b/patches/base-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn -index b2a25c8c376c3f522efaef4de558209059300770..70dc0a9c6686ed5b7dd6ec12c704a29cb4e0dbd7 100644 +index 1d449b35bf403ffc933cceabffc1f1e570fdae16..9c196bbfae226682d064e801c2f1e2625ef45eb8 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -3634,6 +3634,7 @@ if (is_android) { +@@ -3686,6 +3686,7 @@ if (is_android) { "android/java/src/org/chromium/base/task/TaskTraits.java", "android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java", ] diff --git a/patches/build-config-BUILDCONFIG.gn.patch b/patches/build-config-BUILDCONFIG.gn.patch index 7ce9901bec9a..1e894a8f74e5 100644 --- a/patches/build-config-BUILDCONFIG.gn.patch +++ b/patches/build-config-BUILDCONFIG.gn.patch @@ -1,8 +1,8 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn -index e011502180b5a94bd32bcebb301c91314d12653e..4e8645e62e9f415217d9fa68d8a5a427863703bd 100644 +index 3082046a91da5fe400d8405da61f55ad66fa5e74..fed50d2b9c2350a1c159d7be696d6e0a4c1cd4f4 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -420,6 +420,7 @@ set_sources_assignment_filter(sources_assignment_filter) +@@ -315,6 +315,7 @@ is_posix = !is_win && !is_fuchsia # Holds all configs used for running the compiler. default_compiler_configs = [ diff --git a/patches/build-config-android-BUILD.gn.patch b/patches/build-config-android-BUILD.gn.patch index 063da2411c11..50acf1807f23 100644 --- a/patches/build-config-android-BUILD.gn.patch +++ b/patches/build-config-android-BUILD.gn.patch @@ -1,5 +1,5 @@ diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn -index b5600ace509d35acef0296ad486f10412099701c..92b3d37caac7d477437c42ce74742a520b390187 100644 +index 78c7983a71a0d550567e463d0d9d0ad5fa951d93..36c398457409e7ebfbb4e5f857751573b982c442 100644 --- a/build/config/android/BUILD.gn +++ b/build/config/android/BUILD.gn @@ -50,6 +50,7 @@ config("compiler") { diff --git a/patches/build-config-android-internal_rules.gni.patch b/patches/build-config-android-internal_rules.gni.patch index f6cb76f36de1..04bb2ff5613f 100644 --- a/patches/build-config-android-internal_rules.gni.patch +++ b/patches/build-config-android-internal_rules.gni.patch @@ -1,8 +1,8 @@ diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni -index 59c9a5555a43cf150e48f699c45a46a3a643f91b..6bab69edb7339a9c2cc2dc467a4c59411026724b 100644 +index af22e3e45c0b0f1d90e73a9eb2785bc5eb67c2f8..0e1d64b187e2c5c2c788278ded92513764a63173 100644 --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni -@@ -2002,6 +2002,7 @@ if (enable_java_templates) { +@@ -2028,6 +2028,7 @@ if (enable_java_templates) { _deps = [ ":$_desugar_target" ] _previous_output_jar = _desugar_output_jar } diff --git a/patches/build-config-android-rules.gni.patch b/patches/build-config-android-rules.gni.patch index 121e1daa1bca..104ff9640db0 100644 --- a/patches/build-config-android-rules.gni.patch +++ b/patches/build-config-android-rules.gni.patch @@ -1,8 +1,8 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni -index 0cd77fbd18390ff4d6bc6e682fd1917a9374f08a..4150aa4653c27e5cc0abbb780e9022d028127203 100644 +index f5c704898d06ee71905b0f81f786cdc4f76bdfd1..0aacd27c927d97c1f2bbadc1956d350c3f6e01b3 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -513,6 +513,7 @@ if (enable_java_templates) { +@@ -509,6 +509,7 @@ if (enable_java_templates) { # } template("java_cpp_enum") { set_sources_assignment_filter([]) @@ -10,7 +10,7 @@ index 0cd77fbd18390ff4d6bc6e682fd1917a9374f08a..4150aa4653c27e5cc0abbb780e9022d0 action_with_pydeps(target_name) { forward_variables_from(invoker, [ -@@ -626,6 +627,7 @@ if (enable_java_templates) { +@@ -622,6 +623,7 @@ if (enable_java_templates) { # output = "$target_gen_dir/AndroidManifest.xml" # } template("jinja_template") { diff --git a/patches/build-config-compiler-BUILD.gn.patch b/patches/build-config-compiler-BUILD.gn.patch index 8e6746e6d702..9cc37a2ee528 100644 --- a/patches/build-config-compiler-BUILD.gn.patch +++ b/patches/build-config-compiler-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index bafffe27168dbbc1f7e9b87beeca923f61a57abb..f972ee5a69709cab4fc7673f81ace391efbd22f5 100644 +index 4f6461b6b5f5b42669e03e4334a297011caa2e98..ed4e2540fc50bb3d20ce65fd4db9dce12815039c 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1651,6 +1651,7 @@ config("chromium_code") { +@@ -1646,6 +1646,7 @@ config("chromium_code") { cflags += [ "-Wextra-semi" ] } } diff --git a/patches/build-toolchain-win-BUILD.gn.patch b/patches/build-toolchain-win-BUILD.gn.patch new file mode 100644 index 000000000000..922d943d49fa --- /dev/null +++ b/patches/build-toolchain-win-BUILD.gn.patch @@ -0,0 +1,12 @@ +diff --git a/build/toolchain/win/BUILD.gn b/build/toolchain/win/BUILD.gn +index be0893059aa8adc8ca0147b68466203c5e29fe85..9662054dce89e86ccb0e4bba6f012a6b76cabca6 100644 +--- a/build/toolchain/win/BUILD.gn ++++ b/build/toolchain/win/BUILD.gn +@@ -221,6 +221,7 @@ template("msvc_toolchain") { + outputs = [ "$object_subdir/{{source_name_part}}.obj" ] + + command = "$coverage_wrapper$env_wrapper$cl /nologo $show_includes $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" ++ if (toolchain_args.is_clang) { command = "$coverage_wrapper$env_wrapper$cl /nologo $show_includes @../../include_imsvc {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" } + } + + tool("rc") { diff --git a/patches/build-toolchain-win-setup_toolchain.py.patch b/patches/build-toolchain-win-setup_toolchain.py.patch index 4af5335ec38b..a4a4e54fd411 100644 --- a/patches/build-toolchain-win-setup_toolchain.py.patch +++ b/patches/build-toolchain-win-setup_toolchain.py.patch @@ -1,12 +1,12 @@ diff --git a/build/toolchain/win/setup_toolchain.py b/build/toolchain/win/setup_toolchain.py -index d9cd612975482ad2fc3e1c1e3596aaaf13026c1c..a67edaa47a0d2877712a58f488038ac10b205060 100644 +index 58bf3e8caf4e0a0fdcba03c5b8bf72b30ea8f075..b504e562355cc2468a1c661a4daec983e68dfb6a 100644 --- a/build/toolchain/win/setup_toolchain.py +++ b/build/toolchain/win/setup_toolchain.py -@@ -271,6 +271,7 @@ def main(): +@@ -277,6 +277,7 @@ def main(): return s if re.match(r'^[a-zA-Z0-9._/\\:-]*$', s) else '"' + s + '"' include_I = ' '.join([q('/I' + i) for i in include]) include_imsvc = ' '.join([q('-imsvc' + i) for i in include]) -+ import win32api; include_imsvc = ' '.join([q('-imsvc' + win32api.GetShortPathName(i)) for i in include]) ++ open(os.path.abspath(os.path.join(SCRIPT_DIR, '..', '..', '..', "include_imsvc")), "w").writelines([(q('-imsvc' + i) + '\n') for i in include]) libpath_flags = ' '.join([q('-libpath:' + i) for i in lib]) if (environment_block_name != ''): diff --git a/patches/chrome-BUILD.gn.patch b/patches/chrome-BUILD.gn.patch index 04514cfe488b..b15032a6d88f 100644 --- a/patches/chrome-BUILD.gn.patch +++ b/patches/chrome-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn -index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f401668f79311 100644 +index bfaf61fe2622812724617267bfe099bb9608dfff..138f2fe59a57661ed99cda8e791fe68f6f5bdf29 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -146,6 +146,10 @@ if (!is_android && !is_mac) { +@@ -154,6 +154,10 @@ if (!is_android && !is_mac) { "common/crash_keys.cc", "common/crash_keys.h", ] @@ -13,7 +13,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 deps += [ ":chrome_dll", -@@ -404,11 +408,12 @@ if (is_win) { +@@ -416,11 +420,12 @@ if (is_win) { "--bundle_id=$chrome_mac_bundle_id", ] } @@ -27,7 +27,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 extra_substitutions = [ "CHROMIUM_BUNDLE_ID=$chrome_mac_bundle_id", "CHROMIUM_SHORT_NAME=$chrome_product_short_name", -@@ -426,6 +431,7 @@ if (is_win) { +@@ -438,6 +443,7 @@ if (is_win) { "//chrome/common:buildflags", "//chrome/common:version_header", ] @@ -35,7 +35,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 if (enable_stripping) { # At link time, preserve the global symbols specified in the .exports -@@ -494,7 +500,7 @@ if (is_win) { +@@ -506,7 +512,7 @@ if (is_win) { args = [ "-b", @@ -44,7 +44,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 "-v", rebase_path(chrome_version_file, root_build_dir), "-g", -@@ -563,6 +569,7 @@ if (is_win) { +@@ -575,6 +581,7 @@ if (is_win) { # this dependency directly copies the file into the framework's # resources directory. public_deps += [ ":chrome_framework_widevine_signature" ] @@ -52,7 +52,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 } } -@@ -595,9 +602,11 @@ if (is_win) { +@@ -607,9 +614,11 @@ if (is_win) { "--scm=0", ] } @@ -64,7 +64,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 if (is_chrome_branded) { # These entitlements are bound to the official Google Chrome signing # certificate and will not necessarily work in any other build. -@@ -618,7 +627,7 @@ if (is_win) { +@@ -630,7 +639,7 @@ if (is_win) { output_name = chrome_helper_name + invoker.helper_name_suffix @@ -73,7 +73,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 extra_substitutions = [ "CHROMIUM_BUNDLE_ID=$chrome_mac_bundle_id", "CHROMIUM_SHORT_NAME=$chrome_product_short_name", -@@ -1007,6 +1016,10 @@ if (is_win) { +@@ -1017,6 +1026,10 @@ if (is_win) { if (is_chrome_branded) { deps += [ ":default_apps" ] } @@ -84,15 +84,15 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 ldflags = [ "-Wl,-install_name,@executable_path/../Frameworks/$chrome_framework_name.framework/Versions/$chrome_version_full/$chrome_framework_name" ] -@@ -1164,6 +1177,7 @@ if (is_win) { +@@ -1174,6 +1187,7 @@ if (is_win) { group("browser_dependencies") { public_deps = [ + "//brave:browser_dependencies", - "//chrome/browser", - "//chrome/common", - "//components/gwp_asan/buildflags", -@@ -1239,12 +1253,13 @@ group("child_dependencies") { + "//build:branding_buildflags", + "//build:chromeos_buildflags", + "//chrome/app:shutdown_signal_handlers", +@@ -1274,12 +1288,13 @@ group("child_dependencies") { # this is OK because all of content is linked into one library. "//content/browser", ] @@ -107,7 +107,7 @@ index 5670687f18f166da366afba61f7bbc3ecdf48acb..dbe4292308a80e59ccb205d8c02f4016 output = "$target_gen_dir/chrome_exe_version.rc" } -@@ -1298,6 +1313,7 @@ group("resources") { +@@ -1333,6 +1348,7 @@ group("resources") { "//chrome/browser:resources", "//chrome/common:resources", "//chrome/renderer:resources", diff --git a/patches/chrome-VERSION.patch b/patches/chrome-VERSION.patch index 989a02dd53ef..25948986a5f5 100644 --- a/patches/chrome-VERSION.patch +++ b/patches/chrome-VERSION.patch @@ -1,12 +1,12 @@ diff --git a/chrome/VERSION b/chrome/VERSION -index bb9a694c062d57f0328c30adbf8c378984e41d59..66a71641a95259a6bd786ba63636b70a66719a6b 100644 +index daea3677a4069261ba8871bd8120473be228b9dd..2572ec24cea2bed2b3719813f64f35502cc7adb1 100644 --- a/chrome/VERSION +++ b/chrome/VERSION @@ -1,4 +1,4 @@ - MAJOR=86 + MAJOR=87 -MINOR=0 --BUILD=4240 --PATCH=111 +-BUILD=4280 +-PATCH=27 +MINOR=1 +BUILD=18 +PATCH=15 diff --git a/patches/chrome-android-BUILD.gn.patch b/patches/chrome-android-BUILD.gn.patch index de57cbd1b8b3..3c7af247aa14 100644 --- a/patches/chrome-android-BUILD.gn.patch +++ b/patches/chrome-android-BUILD.gn.patch @@ -1,16 +1,16 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn -index a5873f5f24329542ec9105ff87dc755c6b2b7307..3a900e4356e87af5c02f84c2dc7aae4676cba92a 100644 +index ab247dad56e8cc2ed16d3a9730a2f3403e50bf0b..ca4002ae3579327f935024cbc322bb2468307a10 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -211,6 +211,7 @@ android_resources("chrome_app_java_resources") { +@@ -234,6 +234,7 @@ android_resources("chrome_app_java_resources") { "//third_party/android_deps:androidx_recyclerview_recyclerview_java", "//third_party/android_deps:material_design_java", ] -+ deps += brave_chrome_app_java_resources_deps sources += brave_java_resources - create_srcjar = false ++ deps += brave_chrome_app_java_resources_deps sources += brave_java_resources resource_overlay = true } -@@ -499,6 +500,7 @@ android_library("chrome_java") { + if (enable_vr) { +@@ -526,6 +527,7 @@ android_library("chrome_java") { ] deps += feed_deps @@ -18,23 +18,23 @@ index a5873f5f24329542ec9105ff87dc755c6b2b7307..3a900e4356e87af5c02f84c2dc7aae46 srcjar_deps = [ ":chrome_android_java_enums_srcjar", -@@ -535,6 +537,7 @@ android_library("chrome_java") { - "//content/public/browser:contacts_picker_properties_requested_javagen", +@@ -557,6 +559,7 @@ android_library("chrome_java") { + "//components/ui_metrics:ui_metrics_enums_java", "//net:effective_connection_type_java", ] + srcjar_deps += brave_chrome_java_srcjar_deps # From java_sources.gni. - sources = chrome_java_sources + [ -@@ -659,6 +662,7 @@ group("jni_headers") { - "//chrome/browser/util:jni_headers", + sources = chrome_java_sources + [ app_hooks_impl ] +@@ -677,6 +680,7 @@ group("jni_headers") { "//chrome/browser/webauthn/android:jni_headers", + "//components/media_router/browser/android:jni_headers", ] + public_deps += ["//brave/build/android:jni_headers"] } action("chrome_android_java_google_api_keys_srcjar") { -@@ -1721,6 +1725,7 @@ if (current_toolchain == default_toolchain) { +@@ -1761,6 +1765,7 @@ if (current_toolchain == default_toolchain) { ":${_variant}_locale_pak_assets", ":${_variant}_paks", ] diff --git a/patches/chrome-android-chrome_java_sources.gni.patch b/patches/chrome-android-chrome_java_sources.gni.patch index 65be0cdcb2bc..6f6fae83654d 100644 --- a/patches/chrome-android-chrome_java_sources.gni.patch +++ b/patches/chrome-android-chrome_java_sources.gni.patch @@ -1,10 +1,10 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni -index ea7a83b636a33fa7bf6380e857c4288fdb6f276f..0b187965ba4954970e5c2e6e97a83fc99b81b31d 100644 +index 5353c2b915eb5e586f3e7a0f085c1d311baf741d..50503143f0a93ee8968a59fd57eea10021e5776e 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1741,3 +1741,4 @@ chrome_java_sources = [ +@@ -1707,3 +1707,4 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/webauth/HandlerResponseCallback.java", "java/src/org/chromium/chrome/browser/webshare/ShareServiceImplementationFactory.java", - "java/src/org/chromium/chrome/browser/widget/DateDividedAdapter.java", ] +chrome_java_sources -= ["java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java",] \ No newline at end of file diff --git a/patches/chrome-android-chrome_public_apk_tmpl.gni.patch b/patches/chrome-android-chrome_public_apk_tmpl.gni.patch index 54a63384b8b3..2dd3c416e287 100644 --- a/patches/chrome-android-chrome_public_apk_tmpl.gni.patch +++ b/patches/chrome-android-chrome_public_apk_tmpl.gni.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni -index d029559d9d1fcf131531df53d45d01f46c8a7fba..f1ef434f59c61146e2fb6604072c2fc3343ad6da 100644 +index 44cbc2fdde8c1c0b74aa38d70df63286426c5643..f037d055863b1d900da4e85fa592670b670bfc0d 100644 --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -216,6 +216,7 @@ template("chrome_public_common_apk_or_module_tmpl") { +@@ -212,6 +212,7 @@ template("chrome_public_common_apk_or_module_tmpl") { "${_material_package}:[Ss]lider", "${_material_package}:[Tt]oolbarLayout", ] @@ -10,7 +10,7 @@ index d029559d9d1fcf131531df53d45d01f46c8a7fba..f1ef434f59c61146e2fb6604072c2fc3 if (!_is_monochrome) { product_config_java_packages = [ "org.chromium.chrome.browser" ] -@@ -325,6 +326,7 @@ template("chrome_public_common_apk_or_module_tmpl") { +@@ -321,6 +322,7 @@ template("chrome_public_common_apk_or_module_tmpl") { if (!defined(proguard_configs)) { proguard_configs = [] } diff --git a/patches/chrome-android-expectations-lint-suppressions.xml.patch b/patches/chrome-android-expectations-lint-suppressions.xml.patch new file mode 100644 index 000000000000..1dc7a3c50f10 --- /dev/null +++ b/patches/chrome-android-expectations-lint-suppressions.xml.patch @@ -0,0 +1,10 @@ +diff --git a/chrome/android/expectations/lint-suppressions.xml b/chrome/android/expectations/lint-suppressions.xml +index 203124f2932a9badc43045335a8d1140bc01e367..ee0a860dea77afdf362d5aea0a679cc3641c9642 100644 +--- a/chrome/android/expectations/lint-suppressions.xml ++++ b/chrome/android/expectations/lint-suppressions.xml +@@ -366,4 +366,5 @@ Still reading? + + + ++ + diff --git a/patches/chrome-android-java-AndroidManifest.xml.patch b/patches/chrome-android-java-AndroidManifest.xml.patch index d3f3b886a639..21085c41c2ba 100644 --- a/patches/chrome-android-java-AndroidManifest.xml.patch +++ b/patches/chrome-android-java-AndroidManifest.xml.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml -index 74dd5f9e6458f7e6b9a86d840d3a90fdded7f21b..565aa6e0f2aa6a534b9f693fcb9877f75b885798 100644 +index 4b942ff06700f6d8c6ccc1cb94878de7c7412d0d..e1d72e7237d4cf8cabf0974fbea0c55d0d9d5c0d 100644 --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -34,7 +34,9 @@ by a child template that "extends" this file. +@@ -38,7 +38,9 @@ by a child template that "extends" this file. {% endif %} @@ -12,7 +12,7 @@ index 74dd5f9e6458f7e6b9a86d840d3a90fdded7f21b..565aa6e0f2aa6a534b9f693fcb9877f7 -@@ -44,9 +46,13 @@ by a child template that "extends" this file. +@@ -48,9 +50,13 @@ by a child template that "extends" this file. {% if target_sdk_version|int > 27 or target_sdk_version == "Q" %} {% endif %} @@ -26,7 +26,7 @@ index 74dd5f9e6458f7e6b9a86d840d3a90fdded7f21b..565aa6e0f2aa6a534b9f693fcb9877f7 -@@ -54,7 +60,9 @@ by a child template that "extends" this file. +@@ -58,7 +64,9 @@ by a child template that "extends" this file. @@ -36,7 +36,7 @@ index 74dd5f9e6458f7e6b9a86d840d3a90fdded7f21b..565aa6e0f2aa6a534b9f693fcb9877f7 -@@ -101,7 +109,9 @@ by a child template that "extends" this file. +@@ -105,7 +113,9 @@ by a child template that "extends" this file. @@ -46,15 +46,15 @@ index 74dd5f9e6458f7e6b9a86d840d3a90fdded7f21b..565aa6e0f2aa6a534b9f693fcb9877f7 {% block extra_uses_permissions %} {% endblock %} -@@ -127,6 +137,7 @@ by a child template that "extends" this file. - - @@ -62,11 +62,11 @@ index 74dd5f9e6458f7e6b9a86d840d3a90fdded7f21b..565aa6e0f2aa6a534b9f693fcb9877f7 {% endif %} -@@ -1177,6 +1189,7 @@ by a child template that "extends" this file. +@@ -1171,6 +1183,7 @@ by a child template that "extends" this file. {% endif %} + {% include "//brave/android/java/AndroidManifest.xml" %} {% block extra_application_definitions %} - - -- - -+ - - -+ - - -- -+ - -- -+ - - - - -+ - diff --git a/patches/chrome-android-java-res-layout-custom_tabs_toolbar.xml.patch b/patches/chrome-android-java-res-layout-custom_tabs_toolbar.xml.patch index 53ab4a9fc993..129cfde05df4 100644 --- a/patches/chrome-android-java-res-layout-custom_tabs_toolbar.xml.patch +++ b/patches/chrome-android-java-res-layout-custom_tabs_toolbar.xml.patch @@ -1,12 +1,13 @@ diff --git a/chrome/android/java/res/layout/custom_tabs_toolbar.xml b/chrome/android/java/res/layout/custom_tabs_toolbar.xml -index 00a9c318afe2b53de0e6c8555770661fd6170671..b3bb40378590abaea76d5718dc2d556e1522a472 100644 +index 1bf7d593480f8dc9dcd4574c8f5499d9a9604b13..3044833633f8268dd4309b77130ecb4132b74317 100644 --- a/chrome/android/java/res/layout/custom_tabs_toolbar.xml +++ b/chrome/android/java/res/layout/custom_tabs_toolbar.xml -@@ -96,6 +96,7 @@ - android:layout_gravity="center_vertical|end" +@@ -97,7 +97,7 @@ android:gravity="center_vertical" android:orientation="horizontal" /> + +- + - +@@ -332,7 +332,7 @@ public abstract class ChromeActivity NightModeReparentingController mNightModeReparentingController; protected ChromeActivity() { diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-datareduction-settings-DataReductionPreferenceFragment.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-datareduction-settings-DataReductionPreferenceFragment.java.patch index 89ea7ee26284..af0752a7f9c3 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-datareduction-settings-DataReductionPreferenceFragment.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-datareduction-settings-DataReductionPreferenceFragment.java.patch @@ -1,5 +1,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java -index 98b52351c1ac9044f579ef123cb543e015272450..ed75714069734e2b51bd9fb2513ccf1d18f05ea6 100644 +index b70672231cc7201475f8a955096b978945801af8..12ccdd194c5ed813e5f135e6b8908df03356481a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java @@ -37,7 +37,7 @@ import java.util.Locale; diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-document-ChromeLauncherActivity.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-document-ChromeLauncherActivity.java.patch index 5dde66060761..d11ed514a6b9 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-document-ChromeLauncherActivity.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-document-ChromeLauncherActivity.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java -index b795617bbf9700a06c8db6065321349e853d06ee..245f06cdfb0bb7a3c90ece2f04cf9931e67535ac 100644 +index 62a752d560e6b2f32842b6cb6729adada5578e31..bf36828c345156247e0b27d62cfac0767697db0d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java -@@ -17,7 +17,7 @@ import org.chromium.chrome.browser.vr.VrModuleProvider; +@@ -16,7 +16,7 @@ import org.chromium.chrome.browser.vr.VrModuleProvider; * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. */ diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-homepage-settings-HomepageSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-homepage-settings-HomepageSettings.java.patch index efeb7f4a4924..2b9d01707247 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-homepage-settings-HomepageSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-homepage-settings-HomepageSettings.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java -index 4e2976d0345546ac528fe330f152cceb56a3ce57..0559583ed1ee26d440a89f0d87590e0ee8b2d9c2 100644 +index 156eea09b9e0cc894b4263826f54055184970791..b62852518ef915d435ec6712ec5c470640f87f01 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java -@@ -29,7 +29,7 @@ import org.chromium.components.url_formatter.UrlFormatter; +@@ -28,7 +28,7 @@ import org.chromium.components.url_formatter.UrlFormatter; /** * Fragment that allows the user to configure homepage related preferences. */ diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-language-settings-LanguageSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-language-settings-LanguageSettings.java.patch index 16545333dc21..68e68536f328 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-language-settings-LanguageSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-language-settings-LanguageSettings.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -index fc76e81f8a554d0d11cccdb5e6602de2fd4460d4..be8102fdd9a81bb22ea65ed4db956c11f3e84110 100644 +index a1ccd5fcdb64cce72c965c06124f092f5c70a735..b93ae42cc3534119800e630c265356967622e28c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -28,7 +28,7 @@ import org.chromium.components.user_prefs.UserPrefs; +@@ -29,7 +29,7 @@ import org.chromium.components.user_prefs.UserPrefs; * seamlessly find and manage their languages preferences across platforms. */ public class LanguageSettings diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationService.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationService.java.patch index 6891dc2e2a54..4c5cb073d39f 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationService.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationService.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationService.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationService.java -index baa1b123c8a648782370d8c4317479c6b2a4b382..8a415e40bab3169e8a4ed7e2d767a6b4b8e6cc97 100644 +index c72c14123e2e6eae4be3185a67820aa538f1d1fb..9e8cfc74b4bfbd23017efcd6e0c8c945a73904b2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationService.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationService.java -@@ -117,7 +117,7 @@ public class NotificationService extends IntentService { +@@ -109,7 +109,7 @@ public class NotificationService extends IntentService { // Now that the browser process is initialized, we pass forward the call to the // NotificationPlatformBridge which will take care of delivering the appropriate events. diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-ntp-NewTabPageLayout.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-ntp-NewTabPageLayout.java.patch index 03e40581d981..9a7f14caa422 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-ntp-NewTabPageLayout.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-ntp-NewTabPageLayout.java.patch @@ -1,8 +1,8 @@ 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 -index 1569fda071165a5315a2dcfb6184290be116d633..0ca4847a7c406f1bc65f7fbce9deb8144935e777 100644 +index 9309cd5f92bcc357c7f336e0e5c01cb61ee966ab..379d98e5f838a8574659f7e52456444987645cc6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -61,7 +61,7 @@ import org.chromium.ui.vr.VrModeObserver; +@@ -59,7 +59,7 @@ import org.chromium.ui.vr.VrModeObserver; * Layout for the new tab page. This positions the page elements in the correct vertical positions. * There are no separate phone and tablet UIs; this layout adapts based on the available space. */ diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-omnibox-suggestions-DropdownItemViewInfoListBuilder.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-omnibox-suggestions-DropdownItemViewInfoListBuilder.java.patch index 6e666d8d1deb..30f1b59176d6 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-omnibox-suggestions-DropdownItemViewInfoListBuilder.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-omnibox-suggestions-DropdownItemViewInfoListBuilder.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java -index efe9b333b35ec6745e2a2c1999b749e647efda2b..1c10adb31c1faa961f34272ba211a4ff90111696 100644 +index 5623cc5b7be3abedc440df0657b581992c11009b..d36afd4d8094f5df1212b0f1faf5ab76a4b6abd0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java -@@ -90,7 +90,7 @@ class DropdownItemViewInfoListBuilder { +@@ -89,7 +89,7 @@ class DropdownItemViewInfoListBuilder { () -> mShareDelegateSupplier == null ? null : mShareDelegateSupplier.get(); mHeaderProcessor = new HeaderProcessor(context, host, delegate); diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-password_manager-settings-PasswordSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-password_manager-settings-PasswordSettings.java.patch index 6fb8d1513649..7886dd301473 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-password_manager-settings-PasswordSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-password_manager-settings-PasswordSettings.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -index 047559854f54613004112ad2df2c08dc4a07a489..433051ad14fcc67ab3292faf0849241e1b0305af 100644 +index 58dacf01c3693c8bca33dfdb52825d53f5f1ecaa..180f30a38a0293cb756fcd6f22bef28fda72c381 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -59,7 +59,7 @@ import java.util.Locale; +@@ -58,7 +58,7 @@ import java.util.Locale; * to view saved passwords (just the username and URL), and to delete saved passwords. */ public class PasswordSettings diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch index 356a43043573..68873d8c92f8 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -index 753ff5df5dedd226c06ed3b694912c07ad095d21..8ae412a438fb44a06b500cd9bbd3a01602fce968 100644 +index 12713055582e86326be472da0e2d83fd39ab02b7..e67e1ab2d5aef2290f9ade198d4863a2748adb19 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -40,7 +40,7 @@ import org.chromium.ui.text.SpanApplier; +@@ -44,7 +44,7 @@ import org.chromium.ui.text.SpanApplier; * Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings @@ -11,7 +11,7 @@ index 753ff5df5dedd226c06ed3b694912c07ad095d21..8ae412a438fb44a06b500cd9bbd3a016 private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_NETWORK_PREDICTIONS = "preload_pages"; private static final String PREF_SECURE_DNS = "secure_dns"; -@@ -202,6 +202,7 @@ public class PrivacySettings +@@ -234,6 +234,7 @@ public class PrivacySettings @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); @@ -19,7 +19,7 @@ index 753ff5df5dedd226c06ed3b694912c07ad095d21..8ae412a438fb44a06b500cd9bbd3a016 MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(VectorDrawableCompat.create( -@@ -216,6 +217,6 @@ public class PrivacySettings +@@ -248,6 +249,6 @@ public class PrivacySettings null); return true; } diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-settings-MainSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-settings-MainSettings.java.patch index 9d96913fc59a..05e149f1f94e 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-settings-MainSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-settings-MainSettings.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -index 49bcf7e55674ba54271a76b8d3b32e731860b36e..5d7cd965c87e1a68dce2ef160153db1ae312090a 100644 +index f2cd84fca088725f29a63a0e6f4c12772d19b243..01ef4ddb7e2536edac06c4f03514d88daa1d0579 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -50,7 +50,7 @@ import java.util.Map; +@@ -55,7 +55,7 @@ import java.util.Map; /** * The main settings screen, shown when the user first opens Settings. */ diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-suggestions-tile-SuggestionsTileView.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-suggestions-tile-SuggestionsTileView.java.patch deleted file mode 100644 index 17b378db6c8b..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-suggestions-tile-SuggestionsTileView.java.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java -index 9f0358b4992c431e9d27811afe7277a17e98826e..617b2cecf1a3e9b76c646a92dfcafeab72dcc9ad 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java -@@ -16,7 +16,7 @@ import org.chromium.chrome.browser.suggestions.SiteSuggestion; - * The view for a site suggestion tile. Displays the title of the site beneath a large icon. If a - * large icon isn't available, displays a rounded rectangle with a single letter in its place. - */ --public class SuggestionsTileView extends TileWithTextView { -+public class SuggestionsTileView extends org.chromium.chrome.browser.widget.tile.BraveTileWithTextView { - /** The data currently associated to this tile. */ - private SiteSuggestion mData; - diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-AndroidSyncSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-AndroidSyncSettings.java.patch index fa39ea8198e6..2864bcc0b87d 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-AndroidSyncSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-AndroidSyncSettings.java.patch @@ -1,13 +1,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java -index a222631bf18ed27f1854fcc07a288b6f5e6120e0..1aed5c3d25c6243fab82b4ca2211f60b6368803f 100644 +index ff9f5ccac61823d09b6f98c91e6dbc16bc035ab8..683ed920aa2440e6d40911d19aeade983eb05f62 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java -@@ -73,7 +73,7 @@ public class AndroidSyncSettings { +@@ -74,7 +74,7 @@ public class AndroidSyncSettings { + public static AndroidSyncSettings get() { ThreadUtils.assertOnUiThread(); if (sInstance == null) { - SyncContentResolverDelegate contentResolver = new SystemSyncContentResolverDelegate(); -- sInstance = new AndroidSyncSettings(contentResolver); -+ sInstance = new BraveAndroidSyncSettings(contentResolver); +- sInstance = new AndroidSyncSettings(getSyncAccount()); ++ sInstance = new BraveAndroidSyncSettings(getSyncAccount()); } return sInstance; } diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-AccountManagementFragment.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-AccountManagementFragment.java.patch index d539f290ddbb..bf80cf117156 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-AccountManagementFragment.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-AccountManagementFragment.java.patch @@ -1,5 +1,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java -index 318c7be9810abdace3257f572a618a33196d572f..2c1c018c3bd26f298cc7131fd40697058b19bfe4 100644 +index 9d311837a93cf20cdbcf1dfa64c8d9241ef8209f..709dd99056c990525a425807e0a1878ab268d21f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/AccountManagementFragment.java @@ -63,7 +63,7 @@ import java.util.List; diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch index cc4543cb944d..b627a419260e 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -index 6995603c3d9e875f08d82c21c6df65c46ca8e364..b83beebc92541d70ec60501a6245906ad2a448d5 100644 +index 2838a1246cb0c8e1967d877919cc9a192e773545..c90744ccf003fdd855c1cf47d2908861e8419e81 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -@@ -24,7 +24,7 @@ import androidx.appcompat.app.AlertDialog; +@@ -26,7 +26,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -11,7 +11,7 @@ index 6995603c3d9e875f08d82c21c6df65c46ca8e364..b83beebc92541d70ec60501a6245906a import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceFragmentCompat; -@@ -356,7 +356,7 @@ public class ManageSyncSettings extends PreferenceFragmentCompat +@@ -353,7 +353,7 @@ public class ManageSyncSettings extends PreferenceFragmentCompat IdentityServicesProvider.get() .getIdentityManager(Profile.getLastUsedRegularProfile()) .getPrimaryAccountInfo(ConsentLevel.SYNC)); diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-SyncAndServicesSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-SyncAndServicesSettings.java.patch index 64eb25916375..6453aa156a94 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-SyncAndServicesSettings.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-SyncAndServicesSettings.java.patch @@ -1,5 +1,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java -index 4240e3e3cc69b0cc02902ac25bb260c6e0e4987a..15d9b8a6f8251e271ad2406e225bcbcc52ed8b74 100644 +index 6e7dd0b39f10fd13f91fb4ddc2315961c2635aa2..ec1806a51f9ff59ffc921fafd91fda7a0a7eb3c3 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java @@ -76,7 +76,7 @@ import org.chromium.ui.widget.ButtonCompat; diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-ToolbarManager.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-ToolbarManager.java.patch index 8ad20c9bdee7..30c2a79e90b2 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-ToolbarManager.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-ToolbarManager.java.patch @@ -1,20 +1,31 @@ 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 -index 916975c74bca08631501549890fe329e77a5e742..27e74f1a2931a725c66e6cea43d366f92aa82494 100644 +index f47d98236abb257f3a87e44c216f15bec6928b3c..0b8d4f7d51be81e3258ff399e427c20b4718f9f9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -1262,6 +1262,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - boolean editingAllowed = - currentTab == null || bridge == null || bridge.isEditBookmarksEnabled(); - mToolbar.updateBookmarkButton(isBookmarked, editingAllowed); -+ if (mBottomControlsCoordinator != null) {mBottomControlsCoordinator.updateBookmarkButton(isBookmarked, editingAllowed);} - } +@@ -304,7 +304,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + ThemeColorProvider overviewModeThemeColorProvider = mAppThemeColorProvider; + ToolbarLayout toolbarLayout = mActivity.findViewById(R.id.toolbar); - private void updateReloadState(boolean tabCrashed) { -@@ -1363,6 +1364,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - mToolbar.onBottomToolbarVisibilityChanged(visible); - mBottomToolbarVisibilitySupplier.set(visible); - mBottomControlsCoordinator.setBottomControlsVisible(visible); -+ mMenuButtonCoordinator.setBottomMenu(isMenuFromBottom()); - } - - /** +- mMenuButtonCoordinator = new MenuButtonCoordinator(appMenuCoordinatorSupplier, ++ mMenuButtonCoordinator = new org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator(appMenuCoordinatorSupplier, + mControlsVisibilityDelegate, mActivity, + (focus, type) + -> setUrlBarFocus(focus, type), +@@ -313,7 +313,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + mActivity.isCustomTab() ? mCustomTabThemeColorProvider + : browsingModeThemeColorProvider, + R.id.menu_button_wrapper); +- MenuButtonCoordinator startSurfaceMenuButtonCoordinator = new MenuButtonCoordinator( ++ MenuButtonCoordinator startSurfaceMenuButtonCoordinator = new org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator( + appMenuCoordinatorSupplier, mControlsVisibilityDelegate, mActivity, + (focus, type) + -> setUrlBarFocus(focus, type), +@@ -631,7 +631,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + ThemeColorProvider browsingModeThemeColorProvider, + MenuButtonCoordinator startSurfaceMenuButtonCoordinator, Invalidator invalidator, + IdentityDiscController identityDiscController) { +- TopToolbarCoordinator toolbar = new TopToolbarCoordinator(controlContainer, toolbarLayout, ++ TopToolbarCoordinator toolbar = new org.chromium.chrome.browser.toolbar.top.BraveTopToolbarCoordinator(controlContainer, toolbarLayout, + mLocationBarModel, mToolbarTabController, + new UserEducationHelper(mActivity, mHandler, TrackerFactory::getTrackerForProfile), + buttonDataProviders, mOverviewModeBehaviorSupplier, browsingModeThemeColorProvider, diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomControlsCoordinator.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomControlsCoordinator.java.patch index 7cf1f54acad0..c9e4d78562fe 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomControlsCoordinator.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomControlsCoordinator.java.patch @@ -1,19 +1,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java -index fdca8057859857c09c570516c33095ac1b6639a9..952c3c7879a26e86ff2b64ce2cfaa63d1a754847 100644 +index 43d168eed3178c3fe45769d48dadbb9e8e108729..7e2767c6c8b271e3ad0f8b12c21bfbe0915fe80c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java -@@ -120,7 +120,7 @@ public class BottomControlsCoordinator { - root.findViewById(R.id.bottom_container_slot), themeColorProvider, - scrimCoordinator); - } else { -- mBottomToolbarCoordinator = new BottomToolbarCoordinator( -+ mBottomToolbarCoordinator = new BraveBottomToolbarCoordinator(root, - root.findViewById(R.id.bottom_toolbar_stub), tabProvider, - tabSwitcherLongclickListener, themeColorProvider, shareDelegateSupplier, - showStartSurfaceCallable, openHomepageAction, setUrlBarFocusAction, -@@ -207,4 +207,5 @@ public class BottomControlsCoordinator { - } - return mTabGroupUi.getTabGridDialogVisibilitySupplier(); - } -+ public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) {if (mBottomToolbarCoordinator != null) { mBottomToolbarCoordinator.updateBookmarkButton(isBookmarked, editingAllowed);}} - } +@@ -101,7 +101,7 @@ public class BottomControlsCoordinator { + View container = root.findViewById(R.id.bottom_container_slot); + ViewGroup.LayoutParams params = container.getLayoutParams(); + params.height = root.getResources().getDimensionPixelOffset(bottomControlsHeightId); +- mMediator = new BottomControlsMediator(model, controlsSizer, fullscreenManager, ++ mMediator = new BraveBottomControlsMediator(model, controlsSizer, fullscreenManager, + root.getResources().getDimensionPixelOffset(bottomControlsHeightId)); + + if (TabUiFeatureUtilities.isTabGroupsAndroidEnabled() diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarConfiguration.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarConfiguration.java.patch deleted file mode 100644 index 6bc4995ffc0f..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarConfiguration.java.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java -index 3138acd77b38b31cc57e06df649e09c709a03c46..cfe1463b38ab0b519a839146e8e46fe726e82a30 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarConfiguration.java -@@ -18,7 +18,7 @@ public class BottomToolbarConfiguration { - * @return Whether or not the bottom toolbar is enabled. - */ - public static boolean isBottomToolbarEnabled() { -- return CachedFeatureFlags.isEnabled(ChromeFeatureList.CHROME_DUET) -+ return BraveBottomToolbarConfiguration.isBottomToolbarEnabled() - && !DeviceFormFactor.isNonMultiDisplayContextOnTablet( - ContextUtils.getApplicationContext()) - && (TabUiFeatureUtilities.isDuetTabStripIntegrationAndroidEnabled() diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarCoordinator.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarCoordinator.java.patch deleted file mode 100644 index 6a436623f398..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarCoordinator.java.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java -index 2c58d305f8b79cca4a58f2f1df7f58f20c358241..f953c0970f0a663e95de040cbde9b3c1d5c1d7fd 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java -@@ -40,7 +40,7 @@ import org.chromium.components.feature_engagement.Tracker; - */ - class BottomToolbarCoordinator { - /** The browsing mode bottom toolbar component */ -- private final BrowsingModeBottomToolbarCoordinator mBrowsingModeCoordinator; -+ protected final BrowsingModeBottomToolbarCoordinator mBrowsingModeCoordinator; - - /** The tab switcher mode bottom toolbar component */ - private TabSwitcherBottomToolbarCoordinator mTabSwitcherModeCoordinator; -@@ -52,8 +52,8 @@ class BottomToolbarCoordinator { - private final ThemeColorProvider mThemeColorProvider; - - /** The overview mode manager. */ -- private OverviewModeBehavior mOverviewModeBehavior; -- private OverviewModeObserver mOverviewModeObserver; -+ protected OverviewModeBehavior mOverviewModeBehavior; -+ protected OverviewModeObserver mOverviewModeObserver; - - /** The activity tab provider. */ - private ActivityTabProvider mTabProvider; -@@ -110,7 +110,7 @@ class BottomToolbarCoordinator { - setUrlBarFocusAction.onResult(LocationBar.OmniboxFocusReason.ACCELERATOR_TAP); - }; - -- mBrowsingModeCoordinator = new BrowsingModeBottomToolbarCoordinator(root, tabProvider, -+ mBrowsingModeCoordinator = new BraveBrowsingModeBottomToolbarCoordinator(root, tabProvider, - homeButtonListener, searchAcceleratorListener, mShareButtonListenerSupplier, - tabsSwitcherLongClickListner, mOverviewModeBehaviorSupplier); - -@@ -280,4 +280,5 @@ class BottomToolbarCoordinator { - listener.onClick(v); - }; - } -+ public void updateBookmarkButton(boolean isBookmarked, boolean editingAllowed) {if (mBrowsingModeCoordinator != null) {((BraveBrowsingModeBottomToolbarCoordinator)mBrowsingModeCoordinator).updateBookmarkButton(isBookmarked, editingAllowed);}} - } diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarVariationManager.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarVariationManager.java.patch deleted file mode 100644 index ae316f4697e2..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-bottom-BottomToolbarVariationManager.java.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java -index cf54c3785cde4ac9da4d2039b112644ebc2d7c62..7cc81b6639c41302e5265d82d3bf1f56de7d2201 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarVariationManager.java -@@ -62,6 +62,7 @@ public class BottomToolbarVariationManager { - * in the current variation. - */ - public static boolean isShareButtonOnBottom() { -+ if (BraveBottomToolbarVariationManager.isBraveVariation()) return false; - return BottomToolbarConfiguration.isBottomToolbarEnabled() - && !getVariation().equals(Variations.HOME_SEARCH_TAB_SWITCHER); - } -@@ -71,6 +72,7 @@ public class BottomToolbarVariationManager { - * in portrait mode in the current variation. - */ - public static boolean isNewTabButtonOnBottom() { -+ if (BraveBottomToolbarVariationManager.isBraveVariation()) return true; - return BottomToolbarConfiguration.isBottomToolbarEnabled() - && getVariation().equals(Variations.NEW_TAB_SEARCH_SHARE); - } -@@ -80,6 +82,7 @@ public class BottomToolbarVariationManager { - * in portrait mode in the current variation. - */ - public static boolean isMenuButtonOnBottom() { -+ if (BraveBottomToolbarVariationManager.isBraveVariation()) return true; - // If we don't have variations that put menu on bottom in the future, - // then this method can be removed. - return false; -@@ -90,6 +93,7 @@ public class BottomToolbarVariationManager { - * in the current variation. - */ - public static boolean shouldBottomToolbarBeVisibleInOverviewMode() { -+ if (BraveBottomToolbarVariationManager.isBraveVariation()) return true; - return (getVariation().equals(Variations.NEW_TAB_SEARCH_SHARE) - && !StartSurfaceConfiguration.isStartSurfaceEnabled()) - || ((!TabUiFeatureUtilities.isGridTabSwitcherEnabled() -@@ -111,6 +115,7 @@ public class BottomToolbarVariationManager { - * of portrait mode in current variation. - */ - public static boolean isTabSwitcherOnBottom() { -+ if (BraveBottomToolbarVariationManager.isBraveVariation()) return true; - return BottomToolbarConfiguration.isBottomToolbarEnabled() - && getVariation().equals(Variations.HOME_SEARCH_TAB_SWITCHER); - } diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-menu_button-MenuButtonCoordinator.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-menu_button-MenuButtonCoordinator.java.patch deleted file mode 100644 index efd5ebc08b47..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-menu_button-MenuButtonCoordinator.java.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator.java -index a2d24eaade73ae1ca6ab0b09dd2beebee19fca84..ffdb5fc48c80841ce497c9140fd0c5562b74d4ae 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator.java -@@ -200,6 +200,7 @@ public class MenuButtonCoordinator implements AppMenuObserver { - mAppMenuHandler = appMenuHandler; - mAppMenuHandler.addObserver(this); - mAppMenuButtonHelper = mAppMenuHandler.createAppMenuButtonHelper(); -+ mAppMenuButtonHelper.setMenuShowsFromBottom(mBottomToolbarEnabled); - mAppMenuButtonHelper.setOnAppMenuShownListener( - () -> { RecordUserAction.record("MobileToolbarShowMenu"); }); - if (mMenuButton != null) { -@@ -239,4 +240,5 @@ public class MenuButtonCoordinator implements AppMenuObserver { - mMenuButton.removeAppMenuUpdateBadge(false); - } - } -+ private boolean mBottomToolbarEnabled = false; public void setBottomMenu(boolean enabled) {mBottomToolbarEnabled = enabled;if (mAppMenuButtonHelper != null) mAppMenuButtonHelper.setMenuShowsFromBottom(enabled); } - } diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-CustomTabToolbar.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-CustomTabToolbar.java.patch deleted file mode 100644 index 48d8b60c9a45..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-CustomTabToolbar.java.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java -index 2ce4f56440a42c2989ec46bfa8ad5c78f4931c3c..e46929e018bb819d13c22cb3f2a18dd6d4faa10c 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java -@@ -91,7 +91,7 @@ import java.util.regex.Pattern; - /** - * The Toolbar layout to be used for a custom tab. This is used for both phone and tablet UIs. - */ --public class CustomTabToolbar extends ToolbarLayout implements View.OnLongClickListener { -+public class CustomTabToolbar extends BraveToolbarLayout implements View.OnLongClickListener { - private static final Object ORIGIN_SPAN = new Object(); - - /** diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-TabSwitcherModeTTPhone.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-TabSwitcherModeTTPhone.java.patch deleted file mode 100644 index 8948a41b323b..000000000000 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-TabSwitcherModeTTPhone.java.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java -index 5a7b93b3da8a745cfdd1f223f1177f16da149b0e..ed791527aaf87f7d0a0b514c98dc39c02923d08e 100644 ---- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java -@@ -291,6 +291,7 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout - if (BottomToolbarVariationManager.isTabSwitcherOnBottom() && !shouldShowIncognitoToggle()) { - mToggleTabStackButton.setVisibility(isVisible ? GONE : VISIBLE); - } -+ setMenuButtonVisibility(!isVisible || (BottomToolbarConfiguration.isBottomToolbarEnabled() && !BottomToolbarVariationManager.isMenuButtonOnBottom())); - } - - private void setNewTabButtonVisibility(boolean isButtonVisible) { diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch index 51801bcbdadb..a779b39799e6 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch @@ -1,17 +1,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -index 0c53a29d11fc7da0d57126acd5409d30d3636d81..2ee977312fc22d6f136eb2742d6aa9827c7ed7cf 100644 +index 240092291ede662693256ef3560607659a149b2c..d6df81377fb628f05fc0fbfcf2338214ed2401ba 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -@@ -91,7 +91,7 @@ import java.util.List; +@@ -88,7 +88,7 @@ import java.util.List; /** * Phone specific toolbar implementation. */ --public class ToolbarPhone extends ToolbarLayout implements Invalidator.Client, OnClickListener, -+public class ToolbarPhone extends BraveToolbarLayout implements Invalidator.Client, OnClickListener, - NewTabPage.OnSearchBoxScrollListener, - TabCountObserver { +-public class ToolbarPhone extends ToolbarLayout ++public class ToolbarPhone extends BraveToolbarLayout + implements OnClickListener, NewTabPage.OnSearchBoxScrollListener, TabCountObserver { /** The amount of time transitioning from one theme color to another should take in ms. */ -@@ -422,10 +422,12 @@ public class ToolbarPhone extends ToolbarLayout implements Invalidator.Client, O + public static final long THEME_COLOR_TRANSITION_DURATION = 250; +@@ -409,10 +409,12 @@ public class ToolbarPhone extends ToolbarLayout /** * Set the background color of the location bar to appropriately match the theme color. */ @@ -25,7 +25,7 @@ index 0c53a29d11fc7da0d57126acd5409d30d3636d81..2ee977312fc22d6f136eb2742d6aa982 } /** -@@ -545,6 +547,7 @@ public class ToolbarPhone extends ToolbarLayout implements Invalidator.Client, O +@@ -529,6 +531,7 @@ public class ToolbarPhone extends ToolbarLayout EventConstants.PARTNER_HOME_PAGE_BUTTON_PRESSED); } } @@ -33,7 +33,7 @@ index 0c53a29d11fc7da0d57126acd5409d30d3636d81..2ee977312fc22d6f136eb2742d6aa982 } @Override -@@ -713,7 +716,7 @@ public class ToolbarPhone extends ToolbarLayout implements Invalidator.Client, O +@@ -697,7 +700,7 @@ public class ToolbarPhone extends ToolbarLayout * @return The right bounds of the location bar after accounting for any visible left buttons. */ private int getBoundsAfterAccountingForRightButtons() { @@ -42,7 +42,7 @@ index 0c53a29d11fc7da0d57126acd5409d30d3636d81..2ee977312fc22d6f136eb2742d6aa982 } private void updateToolbarBackground(int color) { -@@ -2157,6 +2160,7 @@ public class ToolbarPhone extends ToolbarLayout implements Invalidator.Client, O +@@ -2131,6 +2134,7 @@ public class ToolbarPhone extends ToolbarLayout } else { populateUrlClearFocusingAnimatorSet(animators); } @@ -50,11 +50,3 @@ index 0c53a29d11fc7da0d57126acd5409d30d3636d81..2ee977312fc22d6f136eb2742d6aa982 mUrlFocusLayoutAnimator = new AnimatorSet(); mUrlFocusLayoutAnimator.playTogether(animators); -@@ -2824,6 +2828,7 @@ public class ToolbarPhone extends ToolbarLayout implements Invalidator.Client, O - - @Override - public void onBottomToolbarVisibilityChanged(boolean isVisible) { -+ super.onBottomToolbarVisibilityChanged(isVisible); - mIsBottomToolbarVisible = isVisible; - - mToggleTabStackButton.setVisibility(isTabSwitcherOnBottom() ? GONE : VISIBLE); diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch index c55b9fca5c9d..439874d0b046 100644 --- a/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch @@ -1,8 +1,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java -index feed3adad5278f1ebb2f0658b044bacf76073d5c..15438b97ad7eab103a38ac5e34e8886389b5dc77 100644 +index 5391fe73ac8f0ae90ac427fe04a4b64a6a5324fe..571a80a03fb674e9055412d75d1b45c0261efa4d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java -@@ -57,7 +57,7 @@ import java.util.Collection; +@@ -59,7 +59,7 @@ import java.util.Collection; * The Toolbar object for Tablet screens. */ @SuppressLint("Instantiatable") @@ -11,7 +11,7 @@ index feed3adad5278f1ebb2f0658b044bacf76073d5c..15438b97ad7eab103a38ac5e34e88863 implements OnClickListener, View.OnLongClickListener, TabCountObserver { // The number of toolbar buttons that can be hidden at small widths (reload, back, forward). public static final int HIDEABLE_BUTTON_COUNT = 3; -@@ -333,10 +333,12 @@ public class ToolbarTablet extends ToolbarLayout +@@ -326,10 +326,12 @@ public class ToolbarTablet extends ToolbarLayout DownloadUtils.downloadOfflinePage(getContext(), getToolbarDataProvider().getTab()); RecordUserAction.record("MobileToolbarDownloadPage"); } @@ -24,7 +24,7 @@ index feed3adad5278f1ebb2f0658b044bacf76073d5c..15438b97ad7eab103a38ac5e34e88863 String description = null; Context context = getContext(); Resources resources = context.getResources(); -@@ -401,6 +403,7 @@ public class ToolbarTablet extends ToolbarLayout +@@ -394,6 +396,7 @@ public class ToolbarTablet extends ToolbarLayout mLocationBar.getBackground().setColorFilter(textBoxColor, PorterDuff.Mode.SRC_IN); mLocationBar.updateVisualsForState(); diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-ui-RootUiCoordinator.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-ui-RootUiCoordinator.java.patch new file mode 100644 index 000000000000..a38101e67964 --- /dev/null +++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-ui-RootUiCoordinator.java.patch @@ -0,0 +1,13 @@ +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 +index ae07442b361a6958b3e20e4dbc3208574bf6d201..2581abf76ffcaf3a727ec6f52ecda7816ffb9b5f 100644 +--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +@@ -523,7 +523,7 @@ public class RootUiCoordinator + mActivityTabProvider, mShareDelegateSupplier, new ShareUtils(), + mActivity.getLifecycleDispatcher(), mActivity.getModalDialogManager()); + mButtonDataProviders = Arrays.asList(mIdentityDiscController, shareButtonController); +- mToolbarManager = new ToolbarManager(mActivity, mActivity.getBrowserControlsManager(), ++ mToolbarManager = new org.chromium.chrome.browser.toolbar.BraveToolbarManager(mActivity, mActivity.getBrowserControlsManager(), + mActivity.getFullscreenManager(), toolbarContainer, + mActivity.getCompositorViewHolder().getInvalidator(), urlFocusChangedCallback, + mTabThemeColorProvider, mTabObscuringHandler, mShareDelegateSupplier, diff --git a/patches/chrome-android-java_sources.gni.patch b/patches/chrome-android-java_sources.gni.patch index cdaace027999..64db0d569309 100644 --- a/patches/chrome-android-java_sources.gni.patch +++ b/patches/chrome-android-java_sources.gni.patch @@ -1,5 +1,5 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni -index d71e9f6da63f3c8384ac85fbe6e2baa81baac49b..a2b6910f95633fc86a9ed0df292751b360306763 100644 +index 2dcef8bd76e082f8c011601e6017f38c3eddfeed..b7e31de137a56b379563c3874dc7b4c6b8dc2ae4 100644 --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni @@ -20,6 +20,7 @@ import("//components/offline_pages/buildflags/features.gni") diff --git a/patches/chrome-app-BUILD.gn.patch b/patches/chrome-app-BUILD.gn.patch index 7f8ecdf4a9f5..1238d6ac4d3c 100644 --- a/patches/chrome-app-BUILD.gn.patch +++ b/patches/chrome-app-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn -index 25423aabc06fea888727bec369c74056a0b8db31..d38ce64e036b82b774ff0e3bac826998b0160364 100644 +index d85c8180793d59dd22d4aafbfb95ac0b746908ca..1eed0b7c4fa3fce7c7a6d80b0a006cc19d78bf4d 100644 --- a/chrome/app/BUILD.gn +++ b/chrome/app/BUILD.gn -@@ -73,6 +73,8 @@ grit("generated_resources") { +@@ -74,6 +74,8 @@ grit("generated_resources") { if (is_android) { outputs += android_generated_java_resources } @@ -11,7 +11,7 @@ index 25423aabc06fea888727bec369c74056a0b8db31..d38ce64e036b82b774ff0e3bac826998 } if (is_android) { -@@ -95,7 +97,7 @@ grit("google_chrome_strings") { +@@ -96,7 +98,7 @@ grit("google_chrome_strings") { } grit("chromium_strings") { diff --git a/patches/chrome-app-chrome_crash_reporter_client.cc.patch b/patches/chrome-app-chrome_crash_reporter_client.cc.patch index af3d72bb0d16..fe15a3cdb849 100644 --- a/patches/chrome-app-chrome_crash_reporter_client.cc.patch +++ b/patches/chrome-app-chrome_crash_reporter_client.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/app/chrome_crash_reporter_client.cc b/chrome/app/chrome_crash_reporter_client.cc -index fd7a2f92e6f0a91ef71b4aa10bec8a34f1df29ec..fcca2adc7066ccab166787dcebb06bbb38ea002b 100644 +index 8ee07e7b83a137f485d2e49407bc5cb19f8977a8..ab019b4c3938e7d1bd476b14e150018867f088fd 100644 --- a/chrome/app/chrome_crash_reporter_client.cc +++ b/chrome/app/chrome_crash_reporter_client.cc -@@ -155,7 +155,7 @@ bool ChromeCrashReporterClient::IsRunningUnattended() { +@@ -154,7 +154,7 @@ bool ChromeCrashReporterClient::IsRunningUnattended() { } bool ChromeCrashReporterClient::GetCollectStatsConsent() { diff --git a/patches/chrome-browser-BUILD.gn.patch b/patches/chrome-browser-BUILD.gn.patch index 1dad36e527e8..2d6a0fe7c993 100644 --- a/patches/chrome-browser-BUILD.gn.patch +++ b/patches/chrome-browser-BUILD.gn.patch @@ -1,18 +1,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 98ae3acaf7cf5fbfae0e4c2e0ddb8a087e6d6e23..fd339ae93d51f85cb850035d6bc0fc896ae05cdc 100644 +index 7e37891fc3d551d36d5949ed5865bd6cf4800215..b98d35088bb037c38ad002c21ad9c31c7405c517 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2194,6 +2194,7 @@ static_library("browser") { - "//ui/strings", - "//ui/surface", +@@ -2278,6 +2278,7 @@ static_library("browser") { "//ui/web_dialogs", + "//ui/webui", + "//ui/webui/resources/cr_components/customize_themes:mojom", + "//brave/browser:browser_process", ] - - if (build_with_tflite_lib) { -@@ -3878,6 +3879,7 @@ static_library("browser") { - "task_manager/sampling/shared_sampler_posix.cc", - ] + if (is_chromeos) { + deps += [ +@@ -4021,6 +4022,7 @@ static_library("browser") { + sources += [ "first_run/first_run_internal_posix.cc" ] + } } + sources += brave_chrome_browser_sources deps += brave_chrome_browser_deps } diff --git a/patches/chrome-browser-about_flags.cc.patch b/patches/chrome-browser-about_flags.cc.patch index f506f6f053af..f5fd3a277dc9 100644 --- a/patches/chrome-browser-about_flags.cc.patch +++ b/patches/chrome-browser-about_flags.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc -index 111807a9bdf6c740e98831b0b618efeb9972119a..2820848b25bc360f0275491e3b4b1e9afe8e2a4a 100644 +index 865a15174b12321db34e04473c26cf3591ba1c2d..3a50e4b6701e0840f3b5b08e61939b476544a105 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -293,14 +293,14 @@ const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { +@@ -294,14 +294,14 @@ const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { const FeatureEntry::Choice kTraceUploadURL[] = { {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, {flag_descriptions::kTraceUploadUrlChoiceOther, switches::kTraceUploadURL, @@ -21,7 +21,7 @@ index 111807a9bdf6c740e98831b0b618efeb9972119a..2820848b25bc360f0275491e3b4b1e9a const FeatureEntry::Choice kPassiveListenersChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, -@@ -6377,6 +6377,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6716,6 +6716,7 @@ const FeatureEntry kFeatureEntries[] = { // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag // Histograms" in tools/metrics/histograms/README.md (run the // AboutFlagsHistogramTest unit test to verify this process). diff --git a/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch b/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch index 46fe109b4e4c..aebfb97e727d 100644 --- a/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch +++ b/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -index 8729c0cc9136a4e2845e8cd8e8de5f0c4bae7e55..434d913ffc28a8d10ec56831bdede3b8229a604a 100644 +index 6446838d89a7f2d42ef4b611a3a6a068c8a0168b..f5e80d26a8b8f44ece961896be120af7235489f8 100644 --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc +++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -@@ -124,6 +124,7 @@ static void JNI_BrowsingDataBridge_ClearBrowsingData( +@@ -126,6 +126,7 @@ static void JNI_BrowsingDataBridge_ClearBrowsingData( ChromeBrowsingDataRemoverDelegate::DATA_TYPE_CONTENT_SETTINGS; break; case browsing_data::BrowsingDataType::DOWNLOADS: diff --git a/patches/chrome-browser-browser_process_impl.h.patch b/patches/chrome-browser-browser_process_impl.h.patch index 2ce530a661d7..737d38056c2b 100644 --- a/patches/chrome-browser-browser_process_impl.h.patch +++ b/patches/chrome-browser-browser_process_impl.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h -index 124ebbf06ea22f041040bde3c34bd7f49e10e365..ca05f540da33a6bd5cd1c4d1ce47c93430dc66af 100644 +index 8a8d8a8206907722a2d4db3288c90f9ad7e7b3c4..f9d1eae11e3f2472bac157573bcc0143840aff58 100644 --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -198,6 +198,7 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -202,6 +202,7 @@ class BrowserProcessImpl : public BrowserProcess, static void RegisterPrefs(PrefRegistrySimple* registry); private: diff --git a/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate_factory.cc.patch b/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate_factory.cc.patch index 779280f8b81d..8ceca8d2baaa 100644 --- a/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate_factory.cc.patch +++ b/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate_factory.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_factory.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_factory.cc -index 470dbea2910aebff729b7510b9c605a0e42c823d..b079c9f0914f4253e2afa0e954acb2a7a958d43b 100644 +index eaf6e97877dfa1f8c0a2e477913b6efdee80cecd..5f224da9b0038a13d160c5e9da8b6e9ae3ea820e 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_factory.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_factory.cc -@@ -106,5 +106,5 @@ ChromeBrowsingDataRemoverDelegateFactory::GetBrowserContextToUse( +@@ -108,5 +108,5 @@ ChromeBrowsingDataRemoverDelegateFactory::GetBrowserContextToUse( KeyedService* ChromeBrowsingDataRemoverDelegateFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { diff --git a/patches/chrome-browser-chrome_content_browser_client.h.patch b/patches/chrome-browser-chrome_content_browser_client.h.patch index 6bd5e7337e50..d5517202cfa8 100644 --- a/patches/chrome-browser-chrome_content_browser_client.h.patch +++ b/patches/chrome-browser-chrome_content_browser_client.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h -index a47818dc2f0f7b1f395f377f3c879299597e7be8..84ad4a4d05a8d98240fde76acabdf42ed2261e79 100644 +index ef7da434358103fed7253ef3080b0dccba5d632e..5a4a3bb6d468bc1f6b06cbd8fe2a1638b0888093 100644 --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -705,6 +705,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -720,6 +720,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { } private: diff --git a/patches/chrome-browser-content_settings-host_content_settings_map_factory.cc.patch b/patches/chrome-browser-content_settings-host_content_settings_map_factory.cc.patch index df2c29132320..1b73a7833cf4 100644 --- a/patches/chrome-browser-content_settings-host_content_settings_map_factory.cc.patch +++ b/patches/chrome-browser-content_settings-host_content_settings_map_factory.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.cc b/chrome/browser/content_settings/host_content_settings_map_factory.cc -index 3e2d1221d91eeefc24b66636a96fd7f97f4ebbe8..5dd0067dbe49f11367e632ab0c292cf35ddc2503 100644 +index f3b51e20cb9c84719947b6fbf779d8429e924570..27d78b367a8fb8505ee49c51fa17a033aca2b66a 100644 --- a/chrome/browser/content_settings/host_content_settings_map_factory.cc +++ b/chrome/browser/content_settings/host_content_settings_map_factory.cc @@ -86,6 +86,7 @@ scoped_refptr @@ -9,4 +9,4 @@ index 3e2d1221d91eeefc24b66636a96fd7f97f4ebbe8..5dd0067dbe49f11367e632ab0c292cf3 + BRAVE_BUILD_SERVICE_INSTANCE_FOR profile->IsOffTheRecord() || profile->IsGuestSession(), /*store_last_modified=*/true, - /*migrate_requesting_and_top_level_origin_settings=*/true, + profile->ShouldRestoreOldSessionCookies())); diff --git a/patches/chrome-browser-devtools-devtools_ui_bindings.h.patch b/patches/chrome-browser-devtools-devtools_ui_bindings.h.patch index 0af7cd540375..574c29cce5ff 100644 --- a/patches/chrome-browser-devtools-devtools_ui_bindings.h.patch +++ b/patches/chrome-browser-devtools-devtools_ui_bindings.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/devtools/devtools_ui_bindings.h b/chrome/browser/devtools/devtools_ui_bindings.h -index d7d4361d89aa64da8b5a762a67065ede58f0cfcc..d6d567f1a2ddd81c1b61798b5b7e21ed26d0dff7 100644 +index c4318ae485f179eb00488c485775a34419ce7151..ba520dee1194afa0341fe2efd9d4010383045d85 100644 --- a/chrome/browser/devtools/devtools_ui_bindings.h +++ b/chrome/browser/devtools/devtools_ui_bindings.h @@ -93,6 +93,9 @@ class DevToolsUIBindings : public DevToolsEmbedderMessageDispatcher::Delegate, diff --git a/patches/chrome-browser-extensions-BUILD.gn.patch b/patches/chrome-browser-extensions-BUILD.gn.patch index c8d9bfcb1119..4e415c2bb776 100644 --- a/patches/chrome-browser-extensions-BUILD.gn.patch +++ b/patches/chrome-browser-extensions-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn -index af74217ca9433f731265aafa346dbf3aff88a6a6..90885afc22addfe3f9ff1a95885c13ea3397acdd 100644 +index 18315b380b68b6e77717f3233daa4f40fdbf50f0..ccc716a1357a2f8dd499bb2fa4bfb4d07139d7f2 100644 --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -1264,6 +1264,7 @@ static_library("extensions") { +@@ -1257,6 +1257,7 @@ static_library("extensions") { } else { sources += [ "api/braille_display_private/braille_controller_stub.cc" ] } diff --git a/patches/chrome-browser-extensions-api-settings_private-prefs_util.h.patch b/patches/chrome-browser-extensions-api-settings_private-prefs_util.h.patch deleted file mode 100644 index 6c876a5f191c..000000000000 --- a/patches/chrome-browser-extensions-api-settings_private-prefs_util.h.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.h b/chrome/browser/extensions/api/settings_private/prefs_util.h -index a67fb4f57879b17015ecd0097d3b67bc82f43605..d9ff5ba6f32fa43e90c67f29bcc98145d6bb8bc2 100644 ---- a/chrome/browser/extensions/api/settings_private/prefs_util.h -+++ b/chrome/browser/extensions/api/settings_private/prefs_util.h -@@ -32,7 +32,7 @@ class PrefsUtil { - // Gets the list of whitelisted pref keys -- that is, those which correspond - // to prefs that clients of the settingsPrivate API may retrieve and - // manipulate. -- const TypedPrefMap& GetWhitelistedKeys(); -+ virtual const TypedPrefMap& GetWhitelistedKeys(); - - // Returns the pref type for |pref_name| or PREF_TYPE_NONE if not in the - // whitelist. diff --git a/patches/chrome-browser-extensions-api-webrtc_logging_private-webrtc_logging_private_api.cc.patch b/patches/chrome-browser-extensions-api-webrtc_logging_private-webrtc_logging_private_api.cc.patch index 3dd392bc4fec..b63131f775b2 100644 --- a/patches/chrome-browser-extensions-api-webrtc_logging_private-webrtc_logging_private_api.cc.patch +++ b/patches/chrome-browser-extensions-api-webrtc_logging_private-webrtc_logging_private_api.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc -index 55e8f2c763532d0484fde44d056d94a4866ab84a..e373341bbedc3671265ab86650598738208217be 100644 +index 3087660c85cedbc711317ac69df1ca1dd6ca96f4..31ea603cdfaea000736fa915f54bd7215690f0f8 100644 --- a/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc +++ b/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc @@ -89,6 +89,7 @@ content::RenderProcessHost* WebrtcLoggingPrivateFunction::RphFromRequest( @@ -9,4 +9,4 @@ index 55e8f2c763532d0484fde44d056d94a4866ab84a..e373341bbedc3671265ab86650598738 + BRAVE_DISABLE_RPH_FROM_REQUEST //feature disabled in Brave // There are 2 ways these API functions can get called. // - // 1. From a whitelisted component extension on behalf of a page with the + // 1. From an allowlisted component extension on behalf of a page with the diff --git a/patches/chrome-browser-extensions-component_loader.h.patch b/patches/chrome-browser-extensions-component_loader.h.patch index a5013bf5649b..c19df9cb77a5 100644 --- a/patches/chrome-browser-extensions-component_loader.h.patch +++ b/patches/chrome-browser-extensions-component_loader.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/extensions/component_loader.h b/chrome/browser/extensions/component_loader.h -index 2d82a3f55258ad5914eff7a9bb1c14534d24d50b..89639e9d9366fe0abd3675fffcd7ff531c5f8d2e 100644 +index 64f0d79916d9d56f6fe29f54116c3089f41afd12..68abb8377be5b806fc78c6ff78252dbcd7126350 100644 --- a/chrome/browser/extensions/component_loader.h +++ b/chrome/browser/extensions/component_loader.h @@ -80,7 +80,7 @@ class ComponentLoader { diff --git a/patches/chrome-browser-extensions-extension_management.cc.patch b/patches/chrome-browser-extensions-extension_management.cc.patch index 7088fe659601..0ce8ee394e9d 100644 --- a/patches/chrome-browser-extensions-extension_management.cc.patch +++ b/patches/chrome-browser-extensions-extension_management.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc -index c6a79618b181670418dd73ce3835bee40c95e6e2..eba30a7546933312033c0340ac38e2b8ef6d4e13 100644 +index 518c3927ae085bac2a70dcc6635266fa6972f0d6..369f70aaa709efac43bcf6f800eda1f63c194848 100644 --- a/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc @@ -17,6 +17,7 @@ @@ -10,7 +10,7 @@ index c6a79618b181670418dd73ce3835bee40c95e6e2..eba30a7546933312033c0340ac38e2b8 #include "chrome/browser/extensions/extension_management_constants.h" #include "chrome/browser/extensions/extension_management_internal.h" #include "chrome/browser/extensions/external_policy_loader.h" -@@ -649,7 +650,7 @@ KeyedService* ExtensionManagementFactory::BuildServiceInstanceFor( +@@ -676,7 +677,7 @@ KeyedService* ExtensionManagementFactory::BuildServiceInstanceFor( content::BrowserContext* context) const { TRACE_EVENT0("browser,startup", "ExtensionManagementFactory::BuildServiceInstanceFor"); diff --git a/patches/chrome-browser-extensions-extension_management.h.patch b/patches/chrome-browser-extensions-extension_management.h.patch index b088a451e144..a8536c044aeb 100644 --- a/patches/chrome-browser-extensions-extension_management.h.patch +++ b/patches/chrome-browser-extensions-extension_management.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/extensions/extension_management.h b/chrome/browser/extensions/extension_management.h -index 13e52e141826bb54a518c64142143c76ed28565d..92598c4c4e0eec399f6c4d0ea8488b284f33079a 100644 +index 53e7ae9056f2b6458836e274a74b5d7338900f0e..e07d64b193c222c51d4d77fe5207ee4dafe38a04 100644 --- a/chrome/browser/extensions/extension_management.h +++ b/chrome/browser/extensions/extension_management.h -@@ -197,6 +197,7 @@ class ExtensionManagement : public KeyedService { +@@ -198,6 +198,7 @@ class ExtensionManagement : public KeyedService { bool is_child() const { return is_child_; } private: diff --git a/patches/chrome-browser-extensions-extension_service.h.patch b/patches/chrome-browser-extensions-extension_service.h.patch index 60903f44f726..17ee5929d565 100644 --- a/patches/chrome-browser-extensions-extension_service.h.patch +++ b/patches/chrome-browser-extensions-extension_service.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h -index fdd2211fefaf5e7ffa580a0a170ad21f633f5f2d..203454a82a2d927a1ee9743c50b33f94b929ad17 100644 +index 6a5e4cfe1e0abec22694a3480a01a7ebda3a0523..11416c0257a1b0d41b4d9c1161fbfce694ab6868 100644 --- a/chrome/browser/extensions/extension_service.h +++ b/chrome/browser/extensions/extension_service.h -@@ -445,6 +445,7 @@ class ExtensionService : public ExtensionServiceInterface, +@@ -446,6 +446,7 @@ class ExtensionService : public ExtensionServiceInterface, static base::AutoReset DisableExternalUpdatesForTesting(); private: diff --git a/patches/chrome-browser-extensions-extension_tab_util.cc.patch b/patches/chrome-browser-extensions-extension_tab_util.cc.patch index 5931c16c19aa..01b421b7c7fe 100644 --- a/patches/chrome-browser-extensions-extension_tab_util.cc.patch +++ b/patches/chrome-browser-extensions-extension_tab_util.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc -index 3104b85eafb5bf7a016b4c513c74b1c900eb16be..1ff00fdca89c4da9233f44acd670dabab8902058 100644 +index aaac6830f2da4b5b58dc5a2bf9ffada09647e44a..56dfe2a965da5f1096df22357121e685e066d2d1 100644 --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc -@@ -767,6 +767,7 @@ bool ExtensionTabUtil::IsKillURL(const GURL& url) { +@@ -766,6 +766,7 @@ bool ExtensionTabUtil::IsKillURL(const GURL& url) { GURL fixed_url = url_formatter::FixupURL(url.possibly_invalid_spec(), std::string()); if (!fixed_url.SchemeIs(content::kChromeUIScheme)) diff --git a/patches/chrome-browser-flags-android-chrome_feature_list.cc.patch b/patches/chrome-browser-flags-android-chrome_feature_list.cc.patch index be815ea2bbe4..5bff8d485ddb 100644 --- a/patches/chrome-browser-flags-android-chrome_feature_list.cc.patch +++ b/patches/chrome-browser-flags-android-chrome_feature_list.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc -index c2550f9f8ad08b9eb39e654c54d5845848d9e66b..7a5c9e3b1ae3ee4e438d62fbaeac8a5160646482 100644 +index 725c8267741f9daf04ff7b8c2bb687994d77573b..7721121d8c6f36fe7a98efb786fd4af122257bc5 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -275,6 +275,7 @@ const base::Feature* kFeaturesExposedToJava[] = { +@@ -267,6 +267,7 @@ const base::Feature* kFeaturesExposedToJava[] = { }; const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { diff --git a/patches/chrome-browser-global_keyboard_shortcuts_mac.mm.patch b/patches/chrome-browser-global_keyboard_shortcuts_mac.mm.patch index adc8a2910eb2..4a3186dbb3c6 100644 --- a/patches/chrome-browser-global_keyboard_shortcuts_mac.mm.patch +++ b/patches/chrome-browser-global_keyboard_shortcuts_mac.mm.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/global_keyboard_shortcuts_mac.mm b/chrome/browser/global_keyboard_shortcuts_mac.mm -index 85394506813dac0d1eeb16564bfa79ba921f2e6c..fa9db4f7167803d17e7ae451e11f96095d1e09d9 100644 +index 939982edc874eaae41f98f0f43e0b9fe7407d470..0b2589917ba0d6c745557f93c718eb878e4966a6 100644 --- a/chrome/browser/global_keyboard_shortcuts_mac.mm +++ b/chrome/browser/global_keyboard_shortcuts_mac.mm @@ -170,6 +170,7 @@ const std::vector& GetShortcutsNotPresentInMainMenu() { diff --git a/patches/chrome-browser-media-webrtc-webrtc_event_log_uploader.cc.patch b/patches/chrome-browser-media-webrtc-webrtc_event_log_uploader.cc.patch index e9545e357446..58aa7e7840f1 100644 --- a/patches/chrome-browser-media-webrtc-webrtc_event_log_uploader.cc.patch +++ b/patches/chrome-browser-media-webrtc-webrtc_event_log_uploader.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc -index 6327f0af949d5301af5d3f94d011f45efc4da7a0..c1333637659c4654aab6eb24bda87afcba45ef87 100644 +index a0e329f03da32d3697a4d484eec846393b106997..ec4b2ac9a46811f8122b8d6e711378af7687e55e 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc @@ -274,6 +274,7 @@ bool WebRtcEventLogUploaderImpl::PrepareUploadData(std::string* upload_data) { diff --git a/patches/chrome-browser-media-webrtc-webrtc_log_uploader.cc.patch b/patches/chrome-browser-media-webrtc-webrtc_log_uploader.cc.patch index eda0db476636..ffbc900bd786 100644 --- a/patches/chrome-browser-media-webrtc-webrtc_log_uploader.cc.patch +++ b/patches/chrome-browser-media-webrtc-webrtc_log_uploader.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc -index b3d74a06e147477af30b63ecc9473bfafaff3198..ddb8bc84ffc35977c98e6e9b7ba4cc380f747815 100644 +index bd9dda865eaae624a665e2423013934ed4925771..e0cfa7dc44effca943d9d7530980be27d97e4471 100644 --- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc +++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc @@ -441,6 +441,7 @@ std::string WebRtcLogUploader::CompressLog(WebRtcLogBuffer* buffer) { diff --git a/patches/chrome-browser-metrics-chrome_metrics_services_manager_client.cc.patch b/patches/chrome-browser-metrics-chrome_metrics_services_manager_client.cc.patch index 6b864ac3cf14..c0b8e7746b1b 100644 --- a/patches/chrome-browser-metrics-chrome_metrics_services_manager_client.cc.patch +++ b/patches/chrome-browser-metrics-chrome_metrics_services_manager_client.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -index 36396922a5ccb8b78ae9e6b6389bbe1e0d18595b..23e43a1de5245dfcbd4906382760a48decba5b1d 100644 +index 5bc58e3dd54dfc76b5789792ad8e958fc5043ab1..3ad736794d9edb979fe2f120b5fed055fb3a3c13 100644 --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc -@@ -153,7 +153,7 @@ class ChromeMetricsServicesManagerClient::ChromeEnabledStateProvider +@@ -154,7 +154,7 @@ class ChromeMetricsServicesManagerClient::ChromeEnabledStateProvider } bool IsReportingEnabled() const override { diff --git a/patches/chrome-browser-net-system_network_context_manager.cc.patch b/patches/chrome-browser-net-system_network_context_manager.cc.patch index 8f9b686b7c7c..748b923b63a8 100644 --- a/patches/chrome-browser-net-system_network_context_manager.cc.patch +++ b/patches/chrome-browser-net-system_network_context_manager.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc -index c65977c12b95875472801fe8edc8bae4cfe54d1e..afb45be2565e56e7026f0a7aa01961e4012864fc 100644 +index c53056f7a4ba5a5df21a10facb53c8c81745d5bf..75078d8540264201c330a355927c352bbecef6d7 100644 --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc @@ -218,7 +218,7 @@ class SystemNetworkContextManager::URLLoaderFactoryForSystem diff --git a/patches/chrome-browser-notifications-notification_display_service_impl.cc.patch b/patches/chrome-browser-notifications-notification_display_service_impl.cc.patch index e391df7c8bc9..fb2504a01290 100644 --- a/patches/chrome-browser-notifications-notification_display_service_impl.cc.patch +++ b/patches/chrome-browser-notifications-notification_display_service_impl.cc.patch @@ -1,12 +1,12 @@ diff --git a/chrome/browser/notifications/notification_display_service_impl.cc b/chrome/browser/notifications/notification_display_service_impl.cc -index 73ad845380e82fc015e810751fdf52d51c118849..2caf87c091627a8c26a0caf71efce79677dd0cc8 100644 +index 286b6af7d35c5acdebcbb41bc9acf468f93f5f0d..f168680bee4cbc64519004c38f92f2d80a2cb482 100644 --- a/chrome/browser/notifications/notification_display_service_impl.cc +++ b/chrome/browser/notifications/notification_display_service_impl.cc -@@ -175,6 +175,7 @@ NotificationDisplayServiceImpl::NotificationDisplayServiceImpl(Profile* profile) +@@ -100,6 +100,7 @@ NotificationDisplayServiceImpl::NotificationDisplayServiceImpl(Profile* profile) std::make_unique()); } #endif + BRAVE_ADD_BRAVE_ADS_NOTIFICATION_HANDLER; } - // Initialize the bridge if native notifications are available, otherwise + bridge_delegator_ = std::make_unique( diff --git a/patches/chrome-browser-notifications-notification_platform_bridge_android.h.patch b/patches/chrome-browser-notifications-notification_platform_bridge_android.h.patch index 485d0812abda..3fe11caa459e 100644 --- a/patches/chrome-browser-notifications-notification_platform_bridge_android.h.patch +++ b/patches/chrome-browser-notifications-notification_platform_bridge_android.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/notifications/notification_platform_bridge_android.h b/chrome/browser/notifications/notification_platform_bridge_android.h -index d6fc39db68ca00a816401b9f3bfeb38043eaee1c..0585d6e1cdfcad122a6689dd54a2d5ce9f197ba9 100644 +index 7ff354723b9d14c43b9dd7dd2679f36ab8e66f79..ffb5f27cbc4f7d5f826e4717c9a6d6914abb1949 100644 --- a/chrome/browser/notifications/notification_platform_bridge_android.h +++ b/chrome/browser/notifications/notification_platform_bridge_android.h -@@ -85,6 +85,7 @@ class NotificationPlatformBridgeAndroid : public NotificationPlatformBridge { +@@ -88,6 +88,7 @@ class NotificationPlatformBridgeAndroid : public NotificationPlatformBridge { static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); private: diff --git a/patches/chrome-browser-notifications-notification_platform_bridge_mac.mm.patch b/patches/chrome-browser-notifications-notification_platform_bridge_mac.mm.patch index 3e4194a49e45..c698100a0587 100644 --- a/patches/chrome-browser-notifications-notification_platform_bridge_mac.mm.patch +++ b/patches/chrome-browser-notifications-notification_platform_bridge_mac.mm.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/notifications/notification_platform_bridge_mac.mm b/chrome/browser/notifications/notification_platform_bridge_mac.mm -index ad52e63ed83a3a9e6a159d4475b2d2748d423d0e..a02cb828f86d224f4925a08ac569d340d967b823 100644 +index c2905bfd0df776166b6bb2a34c4a1520e89ceb5e..17542f257c74e734b53d84e239cab6afd5ae126a 100644 --- a/chrome/browser/notifications/notification_platform_bridge_mac.mm +++ b/chrome/browser/notifications/notification_platform_bridge_mac.mm -@@ -180,6 +180,7 @@ base::string16 CreateNotificationContext( +@@ -92,6 +92,7 @@ bool IsPersistentNotification( // an expensive call. Instead use NotificationPlatformBridgeMac::SupportsAlerts // which caches this value. bool SupportsAlertsImpl() { @@ -10,7 +10,7 @@ index ad52e63ed83a3a9e6a159d4475b2d2748d423d0e..a02cb828f86d224f4925a08ac569d340 int32_t major, minor, bugfix; base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix); // Allow alerts on all versions except 10.15.0, 10.15.1 & 10.15.2. -@@ -317,6 +318,7 @@ void NotificationPlatformBridgeMac::Display( +@@ -237,6 +238,7 @@ void NotificationPlatformBridgeMac::Display( } else { NSUserNotification* toast = [builder buildUserNotification]; [notification_center_ deliverNotification:toast]; diff --git a/patches/chrome-browser-prefs-browser_prefs.cc.patch b/patches/chrome-browser-prefs-browser_prefs.cc.patch index 33b83975f6ff..8e9c34c076e1 100644 --- a/patches/chrome-browser-prefs-browser_prefs.cc.patch +++ b/patches/chrome-browser-prefs-browser_prefs.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc -index 6147d6dde0e57340b5c747b4f0126f2ee32d3d87..58e54c9651150688eca97fd691794a78e819ca09 100644 +index 37ff68c404ea27de434d885e617abc10e2ff64cb..d0b5a6ec9aaa164411cad0743d7bd6f8caa71e5b 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -868,6 +868,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -731,6 +731,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) { #if defined(TOOLKIT_VIEWS) RegisterBrowserViewLocalPrefs(registry); #endif @@ -10,7 +10,7 @@ index 6147d6dde0e57340b5c747b4f0126f2ee32d3d87..58e54c9651150688eca97fd691794a78 // This is intentionally last. RegisterLocalStatePrefsForMigration(registry); -@@ -1140,6 +1141,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -995,6 +996,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #endif RegisterProfilePrefsForMigration(registry); diff --git a/patches/chrome-browser-profile_resetter-reset_report_uploader.cc.patch b/patches/chrome-browser-profile_resetter-reset_report_uploader.cc.patch index 99ffb0c61266..db27e7d92ecb 100644 --- a/patches/chrome-browser-profile_resetter-reset_report_uploader.cc.patch +++ b/patches/chrome-browser-profile_resetter-reset_report_uploader.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/browser/profile_resetter/reset_report_uploader.cc -index 5d347635866561bff82cf5765860cfe781c9ea4a..a3e006a3ff2d66c75d9b51a61268d4bea9568a35 100644 +index ea847b6875bae8ec8e73522dac9e83dfe09eab25..a6aa6a2971a9c6dc8a597d9980ca634a29c9b3c4 100644 --- a/chrome/browser/profile_resetter/reset_report_uploader.cc +++ b/chrome/browser/profile_resetter/reset_report_uploader.cc @@ -49,6 +49,7 @@ void ResetReportUploader::DispatchReport( diff --git a/patches/chrome-browser-profiles-profile.cc.patch b/patches/chrome-browser-profiles-profile.cc.patch index e5235c6666c3..8e4505720286 100644 --- a/patches/chrome-browser-profiles-profile.cc.patch +++ b/patches/chrome-browser-profiles-profile.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc -index c3d02b41f530f55bbe99094dd190aaac2cbfe70f..098aca7d4a4ac7502853bd96a7ae2a760d0a3f18 100644 +index ca36c316828f3d5ab3fb511d73cb975a86286c5e..b435bcf5ad55a48a21aa545d82553deb55486087 100644 --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -257,7 +257,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; +@@ -266,7 +266,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kSearchSuggestEnabled, diff --git a/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch b/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch index fe0a0750f61c..55094732ba08 100644 --- a/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch +++ b/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/profiles/profile_avatar_icon_util.cc b/chrome/browser/profiles/profile_avatar_icon_util.cc -index 57cfedd8459f8fa80164b666c6d8b9be0bb044b1..85241ab48618f1a246c158ab06b4d7f024117b03 100644 +index 27c667218f2545d0f84c65d02ace31f4e68a3d3b..2b812f8fcc52152f16b95349e14ff5ed69fb2eb1 100644 --- a/chrome/browser/profiles/profile_avatar_icon_util.cc +++ b/chrome/browser/profiles/profile_avatar_icon_util.cc -@@ -340,7 +340,7 @@ constexpr size_t kDefaultAvatarIconsCount = 1; +@@ -333,7 +333,7 @@ constexpr size_t kDefaultAvatarIconsCount = 1; #elif defined(OS_CHROMEOS) constexpr size_t kDefaultAvatarIconsCount = 27; #else @@ -11,7 +11,7 @@ index 57cfedd8459f8fa80164b666c6d8b9be0bb044b1..85241ab48618f1a246c158ab06b4d7f0 #endif #if !defined(OS_ANDROID) -@@ -470,6 +470,7 @@ size_t GetPlaceholderAvatarIndex() { +@@ -463,6 +463,7 @@ size_t GetPlaceholderAvatarIndex() { size_t GetModernAvatarIconStartIndex() { #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) @@ -19,7 +19,7 @@ index 57cfedd8459f8fa80164b666c6d8b9be0bb044b1..85241ab48618f1a246c158ab06b4d7f0 return GetPlaceholderAvatarIndex() + 1; #else // Only use the placeholder avatar on ChromeOS and Android. -@@ -503,6 +504,7 @@ std::string GetPlaceholderAvatarIconUrl() { +@@ -496,6 +497,7 @@ std::string GetPlaceholderAvatarIconUrl() { const IconResourceInfo* GetDefaultAvatarIconResourceInfo(size_t index) { CHECK_LT(index, kDefaultAvatarIconsCount); diff --git a/patches/chrome-browser-profiles-profile_impl.cc.patch b/patches/chrome-browser-profiles-profile_impl.cc.patch index b4cc19de9eb6..4b3b55c51d63 100644 --- a/patches/chrome-browser-profiles-profile_impl.cc.patch +++ b/patches/chrome-browser-profiles-profile_impl.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc -index c42210c37940954fdb9c6a5748c0cf9de094b836..9abab5640eb77a3f2db219ad10cb6e57f82feb18 100644 +index 55d2bd854a6f0441ccf1b5bdfd1ad0b16c667c83..573ac77f82e4037ae589b943e4403db22819708d 100644 --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -359,7 +359,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -356,7 +356,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, NOTREACHED(); } diff --git a/patches/chrome-browser-profiles-profile_impl.h.patch b/patches/chrome-browser-profiles-profile_impl.h.patch index bdbe746bb0d1..5812334dc853 100644 --- a/patches/chrome-browser-profiles-profile_impl.h.patch +++ b/patches/chrome-browser-profiles-profile_impl.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/profiles/profile_impl.h b/chrome/browser/profiles/profile_impl.h -index 8c51c7e3c9407dc2a98719886cf9132709341a30..cab5d78b599725242de23052f6c30854de054dc5 100644 +index 562decfb766d6a12123fb2b14246ac2e9ee62ed3..055b8f13134c69a8ae13926545983f3db526f38e 100644 --- a/chrome/browser/profiles/profile_impl.h +++ b/chrome/browser/profiles/profile_impl.h @@ -171,6 +171,7 @@ class ProfileImpl : public Profile { @@ -9,4 +9,4 @@ index 8c51c7e3c9407dc2a98719886cf9132709341a30..cab5d78b599725242de23052f6c30854 + BRAVE_PROFILE_IMPL_H_ void SetCreationTimeForTesting(base::Time creation_time) override; - + void RecordMainFrameNavigation() override {} diff --git a/patches/chrome-browser-profiles-profile_io_data.cc.patch b/patches/chrome-browser-profiles-profile_io_data.cc.patch index 861e9a6a6e2c..3e7450267662 100644 --- a/patches/chrome-browser-profiles-profile_io_data.cc.patch +++ b/patches/chrome-browser-profiles-profile_io_data.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc -index 339d7359c905c6fb5a9b32c251dc91016d5ffd2f..7bc88d7d5c7d35ae123224d66243da3e6df17b21 100644 +index de38b5ff34b49d6e988a203b3ef8457107048bae..b19031be77d08516784deb4f0fc056dbea1fdfa2 100644 --- a/chrome/browser/profiles/profile_io_data.cc +++ b/chrome/browser/profiles/profile_io_data.cc @@ -302,6 +302,9 @@ bool ProfileIOData::IsHandledProtocol(const std::string& scheme) { diff --git a/patches/chrome-browser-profiles-profile_manager.h.patch b/patches/chrome-browser-profiles-profile_manager.h.patch index 43c4449d3cc3..9dbea13c2596 100644 --- a/patches/chrome-browser-profiles-profile_manager.h.patch +++ b/patches/chrome-browser-profiles-profile_manager.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h -index 93571e41925382f70d6a2c6218257f14574f7f3b..0fabed6c6f2d115ad8daa11568247742508de185 100644 +index 8d0793739a72cb0dcdb2f8a26b9ad4487e465e74..6ba3dd73fb870d68bb2907f7546c12c0f5db8c43 100644 --- a/chrome/browser/profiles/profile_manager.h +++ b/chrome/browser/profiles/profile_manager.h -@@ -270,6 +270,7 @@ class ProfileManager : public content::NotificationObserver, +@@ -268,6 +268,7 @@ class ProfileManager : public content::NotificationObserver, void set_do_final_services_init(bool do_final_services_init) { do_final_services_init_ = do_final_services_init; } diff --git a/patches/chrome-browser-profiles-profile_shortcut_manager_win.cc.patch b/patches/chrome-browser-profiles-profile_shortcut_manager_win.cc.patch index fcc3136659f3..d78e07ae7db8 100644 --- a/patches/chrome-browser-profiles-profile_shortcut_manager_win.cc.patch +++ b/patches/chrome-browser-profiles-profile_shortcut_manager_win.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc -index 51d0c3b3a858271b180a443ed0d91eafdf29f960..eb764258e6c61182a35654fe1c7a4a83d56b71a0 100644 +index 8aed937abc6ba6f95d6e0eeab7ea15554a92f329..2f0590cd09f66e2f7bf1b73ed8179aec1c448a7f 100644 --- a/chrome/browser/profiles/profile_shortcut_manager_win.cc +++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc -@@ -746,7 +746,7 @@ bool ProfileShortcutManager::IsFeatureEnabled() { +@@ -744,7 +744,7 @@ bool ProfileShortcutManager::IsFeatureEnabled() { // static std::unique_ptr ProfileShortcutManager::Create( ProfileManager* manager) { diff --git a/patches/chrome-browser-profiles-profile_window.h.patch b/patches/chrome-browser-profiles-profile_window.h.patch index 4fdeeaa8b3c9..4f18c049d4cd 100644 --- a/patches/chrome-browser-profiles-profile_window.h.patch +++ b/patches/chrome-browser-profiles-profile_window.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/profiles/profile_window.h b/chrome/browser/profiles/profile_window.h -index 6ba35ca6f4384892e87a132567fda82834d62b36..b17f08c9bbf4fc03ee328c34e7183037b484da13 100644 +index 2ee8d99e1804f91aedce6e3e9cfbf278ad53f963..e870befafe4c90c3caa4c8041b5b483d8336f706 100644 --- a/chrome/browser/profiles/profile_window.h +++ b/chrome/browser/profiles/profile_window.h @@ -85,6 +85,7 @@ void SwitchToProfile(const base::FilePath& path, diff --git a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch index 252f3d1f307f..5b4185263744 100644 --- a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch +++ b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc -index 4a504963dc1174f9a3f02802dbd3807da3c07172..123d23a3435721cbdfd4663a7a50b94910f11206 100644 +index 4842820f87afc037044b62f6e7b0fe11cccc74ff..8dba7a8ce64abd59311e4d76370d1450c8d9a7f0 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc -@@ -1609,6 +1609,7 @@ void RenderViewContextMenu::AppendSearchProvider() { +@@ -1627,6 +1627,7 @@ void RenderViewContextMenu::AppendSearchProvider() { selection_navigation_url_ = match.destination_url; if (!selection_navigation_url_.is_valid()) return; diff --git a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch index 6a591608dfe3..52aead087e8c 100644 --- a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch +++ b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chrome/browser/renderer_context_menu/render_view_context_menu.h -index 9da13ac1bed219bad6fde529ac23ad99909f4d3a..845c6d0fccf874fabbc4829d660a510448d8119d 100644 +index cd477e3ba1b44eb27bf0b94b89d26915d9603386..1030c1de5cb6d89d33b831cc7426efabc92f3124 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.h +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.h -@@ -119,6 +119,7 @@ class RenderViewContextMenu : public RenderViewContextMenuBase { +@@ -120,6 +120,7 @@ class RenderViewContextMenu : public RenderViewContextMenuBase { // Returns true if keyboard lock is active and requires the user to press and // hold escape to exit exclusive access mode. bool IsPressAndHoldEscRequiredToExitFullscreen() const; diff --git a/patches/chrome-browser-resources-bookmarks-command_manager.js.patch b/patches/chrome-browser-resources-bookmarks-command_manager.js.patch index 3b7be917c3e6..b13428b3da17 100644 --- a/patches/chrome-browser-resources-bookmarks-command_manager.js.patch +++ b/patches/chrome-browser-resources-bookmarks-command_manager.js.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/resources/bookmarks/command_manager.js b/chrome/browser/resources/bookmarks/command_manager.js -index 67e6e6a96452df424d56fe022c29f360b002b783..9e54f31a6270bb09638a3571d37262f281968c30 100644 +index 380391c08d649e5c40c044fd98a54b8096ed49b0..91310adc0baf34e9d7cfd92f8db6232cc6ba1699 100644 --- a/chrome/browser/resources/bookmarks/command_manager.js +++ b/chrome/browser/resources/bookmarks/command_manager.js -@@ -448,7 +448,7 @@ export const CommandManager = Polymer({ +@@ -442,7 +442,7 @@ export const CommandManager = Polymer({ chrome.bookmarks.export(); break; case Command.HELP_CENTER: diff --git a/patches/chrome-browser-resources-downloads-manager.html.patch b/patches/chrome-browser-resources-downloads-manager.html.patch index c4f301b994b4..2ec0c12a9195 100644 --- a/patches/chrome-browser-resources-downloads-manager.html.patch +++ b/patches/chrome-browser-resources-downloads-manager.html.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/downloads/manager.html b/chrome/browser/resources/downloads/manager.html -index 8c5e0d7a682c11c589527ffefdb8c868f3d24c68..f25291992504370135e6e085a9ac353482ab36d0 100644 +index 9797412714937f11e2c6388b9de56cbd1293e5b2..6016a51912120dfda32af491baafdbcc6e7f1765 100644 --- a/chrome/browser/resources/downloads/manager.html +++ b/chrome/browser/resources/downloads/manager.html @@ -1,4 +1,4 @@ diff --git a/patches/chrome-browser-resources-downloads-toolbar.js.patch b/patches/chrome-browser-resources-downloads-toolbar.js.patch index bee8cc4d49c6..e6578e13327e 100644 --- a/patches/chrome-browser-resources-downloads-toolbar.js.patch +++ b/patches/chrome-browser-resources-downloads-toolbar.js.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/downloads/toolbar.js b/chrome/browser/resources/downloads/toolbar.js -index d7219c061c686d3d750b37017032a5b3330a2ef2..9c0993216cb4aa3cdca6df668e0036e9988df654 100644 +index 2dfdab18bf6a489a195cadfaa18a6456cd44c4f1..b61d01de3d21ec63edc207d90b0963b1d1a6d693 100644 --- a/chrome/browser/resources/downloads/toolbar.js +++ b/chrome/browser/resources/downloads/toolbar.js @@ -4,7 +4,7 @@ diff --git a/patches/chrome-browser-resources-extensions-BUILD.gn.patch b/patches/chrome-browser-resources-extensions-BUILD.gn.patch index a332a5cad49f..9bd89f4165d6 100644 --- a/patches/chrome-browser-resources-extensions-BUILD.gn.patch +++ b/patches/chrome-browser-resources-extensions-BUILD.gn.patch @@ -1,11 +1,11 @@ diff --git a/chrome/browser/resources/extensions/BUILD.gn b/chrome/browser/resources/extensions/BUILD.gn -index 7f06e62ed6cee82ed6438a2963b48d3764f51fd4..e7d19eb1746beadc0f767f26b12b44d446700ffa 100644 +index c7563df6715f95d4fb4070e50adead73372a7005..a9a3cdd331b7fbd3cd3f4f23225978ee541844ff 100644 --- a/chrome/browser/resources/extensions/BUILD.gn +++ b/chrome/browser/resources/extensions/BUILD.gn @@ -21,6 +21,7 @@ if (optimize_webui) { - deps = [ - ":unpak", - "../../../../ui/webui/resources:modulize", + ":preprocess", + ":preprocess_generated", + "../../../../ui/webui/resources:preprocess", + "//brave/browser/resources/extensions:unpak", ] excludes = [ "chrome://resources/js/cr.m.js" ] diff --git a/patches/chrome-browser-resources-extensions-manager.js.patch b/patches/chrome-browser-resources-extensions-manager.js.patch index 9797eb792ca2..49a37bebea1e 100644 --- a/patches/chrome-browser-resources-extensions-manager.js.patch +++ b/patches/chrome-browser-resources-extensions-manager.js.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/extensions/manager.js b/chrome/browser/resources/extensions/manager.js -index 1b80446a0b746c228ff2d9ae0ba67c7668613a84..690a82cf13a09452300ecc1f74fff015ed7a7cd6 100644 +index 271dfba94a3cbd6b53b17f99ba94634c1bbc3b1a..1dd5c561924f4aed399836b70de51b00fe1ca0c7 100644 --- a/chrome/browser/resources/extensions/manager.js +++ b/chrome/browser/resources/extensions/manager.js @@ -5,7 +5,6 @@ diff --git a/patches/chrome-browser-resources-optimize_webui.py.patch b/patches/chrome-browser-resources-optimize_webui.py.patch index 6a59944e07c3..88c69a2c348c 100644 --- a/patches/chrome-browser-resources-optimize_webui.py.patch +++ b/patches/chrome-browser-resources-optimize_webui.py.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/optimize_webui.py b/chrome/browser/resources/optimize_webui.py -index 5b3b9aa1dba726b298d0e66feef929274ffe2b5c..7ffa16c734c4b198eccaa35ec7cf8aac6851bb4e 100755 +index 00da924718386c32fc6c989f1fcfa5de5954472f..6612a4952d3ff6ba8df735a15fe730921a01998d 100755 --- a/chrome/browser/resources/optimize_webui.py +++ b/chrome/browser/resources/optimize_webui.py @@ -56,8 +56,12 @@ _POLYMER_PATH = os.path.join( @@ -15,7 +15,7 @@ index 5b3b9aa1dba726b298d0e66feef929274ffe2b5c..7ffa16c734c4b198eccaa35ec7cf8aac # Excludes applying only to Polymer 2. 'chrome://resources/html/polymer.html', 'chrome://resources/polymer/v1_0/polymer/polymer.html', -@@ -101,6 +105,7 @@ for (redirect_url, file_path) in [ +@@ -102,6 +106,7 @@ for (redirect_url, file_path) in [ ('resources/js/', _JS_RESOURCES_PATH), ('resources/polymer/v1_0/', _POLYMER_PATH), ('resources/images/', _IMAGES_RESOURCES_PATH), diff --git a/patches/chrome-browser-resources-settings-BUILD.gn.patch b/patches/chrome-browser-resources-settings-BUILD.gn.patch index 10333c72cfc1..9ccbe7a7b64c 100644 --- a/patches/chrome-browser-resources-settings-BUILD.gn.patch +++ b/patches/chrome-browser-resources-settings-BUILD.gn.patch @@ -1,12 +1,12 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn -index 80ce6474e7b5279433cfc22a9d0a6403717cb606..751642e29d9192d46417c41eb01d52783c0724e0 100644 +index 77e8782ec6f0d388cb77fb23dd8451170da5f65d..f8e56af49f9e47b41a88d84bf2145711ed409a40 100644 --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -31,6 +31,7 @@ if (optimize_webui) { - - deps = [ - ":unpak", +@@ -32,6 +32,7 @@ if (optimize_webui) { + ":preprocess", + ":preprocess_generated", + "../../../../ui/webui/resources:preprocess", + "//brave/browser/resources/settings:unpak", - "../../../../ui/webui/resources:modulize", ] - excludes = [ "chrome://resources/js/cr.m.js" ] + excludes = [ + "chrome://resources/js/cr.m.js", diff --git a/patches/chrome-browser-resources-settings-autofill_page-passwords_section.html.patch b/patches/chrome-browser-resources-settings-autofill_page-passwords_section.html.patch deleted file mode 100644 index 584e851befe8..000000000000 --- a/patches/chrome-browser-resources-settings-autofill_page-passwords_section.html.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/chrome/browser/resources/settings/autofill_page/passwords_section.html b/chrome/browser/resources/settings/autofill_page/passwords_section.html -index 75ac76d97ae9864b7b619bec9407d3b14233181e..a4bb488201b3ac9d43134b242d5ea702f995b6a9 100644 ---- a/chrome/browser/resources/settings/autofill_page/passwords_section.html -+++ b/chrome/browser/resources/settings/autofill_page/passwords_section.html -@@ -143,11 +143,15 @@ - - - -+ - -+ -

-

- $i18n{savedPasswordsHeading} diff --git a/patches/chrome-browser-resources-settings-people_page-sync_controls.js.patch b/patches/chrome-browser-resources-settings-people_page-sync_controls.js.patch index 0fbce92cc151..bba570c5aa54 100644 --- a/patches/chrome-browser-resources-settings-people_page-sync_controls.js.patch +++ b/patches/chrome-browser-resources-settings-people_page-sync_controls.js.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/resources/settings/people_page/sync_controls.js b/chrome/browser/resources/settings/people_page/sync_controls.js -index 0ff778824d81b54fd0fb6dbe3a597b9710f5894a..7901856c98937fddaba1a208fbf24a736d369350 100644 +index 8a60f0d3bceea5c142797a1db16bbdb75f26a175..12c8a63724d5e7f3490dede654fc2611bfa86889 100644 --- a/chrome/browser/resources/settings/people_page/sync_controls.js +++ b/chrome/browser/resources/settings/people_page/sync_controls.js -@@ -99,7 +99,7 @@ Polymer({ +@@ -88,7 +88,7 @@ Polymer({ 'sync-prefs-changed', this.handleSyncPrefsChanged_.bind(this)); const router = settings.Router.getInstance(); @@ -11,7 +11,7 @@ index 0ff778824d81b54fd0fb6dbe3a597b9710f5894a..7901856c98937fddaba1a208fbf24a73 this.browserProxy_.didNavigateToSyncPage(); } }, -@@ -226,6 +226,7 @@ Polymer({ +@@ -215,6 +215,7 @@ Polymer({ * @private */ syncControlsHidden_() { diff --git a/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch b/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch index e2c7cdd34233..f0ad29ad2ee2 100644 --- a/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch +++ b/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.html b/chrome/browser/resources/settings/privacy_page/personalization_options.html -index ee33af6a45df058d946b763560063708327d9077..57b0c2741c30028367a4e13b953a2fc0dc230a39 100644 +index 2b94f37bda8703e6876b770b9d75dafbc0b27954..b0e72bac8a55cf1d3b1c98bdb31b5d1d16df9453 100644 --- a/chrome/browser/resources/settings/privacy_page/personalization_options.html +++ b/chrome/browser/resources/settings/privacy_page/personalization_options.html @@ -16,6 +16,7 @@ @@ -18,14 +18,15 @@ index ee33af6a45df058d946b763560063708327d9077..57b0c2741c30028367a4e13b953a2fc0 + - @@ -33,7 +34,7 @@ index ee33af6a45df058d946b763560063708327d9077..57b0c2741c30028367a4e13b953a2fc0 @@ -42,14 +43,14 @@ index ee33af6a45df058d946b763560063708327d9077..57b0c2741c30028367a4e13b953a2fc0 - + + - @@ -67,7 +68,7 @@ index ee33af6a45df058d946b763560063708327d9077..57b0c2741c30028367a4e13b953a2fc0 @@ -18,7 +18,7 @@ index 5ceea3bd280d3a3e0288743a8949db99af8f8780..de585081aa717738c9063a418f5612d9 @@ -26,21 +26,21 @@ index 5ceea3bd280d3a3e0288743a8949db99af8f8780..de585081aa717738c9063a418f5612d9 + diff --git a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.js.patch b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.js.patch index 08d54396c2c9..d328d91a25c1 100644 --- a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.js.patch +++ b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.js.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chrome/browser/resources/settings/privacy_page/privacy_page.js -index b80d9bfac40ff7eabddf110d64c8c18e7e80f000..926b988ecc64569a26d1d62f496560ac39261bc7 100644 +index 4618929810b8dac6684faef7ee144dc52c5af228..25185fa31c26b668f617dd8a492ec39adf1abaaf 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.js +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.js -@@ -17,6 +17,7 @@ import '../prefs/prefs.m.js'; +@@ -18,6 +18,7 @@ import '../site_settings/settings_category_default_radio_group.js'; import '../settings_page/settings_animated_pages.m.js'; import '../settings_page/settings_subpage.m.js'; import '../settings_shared_css.m.js'; diff --git a/patches/chrome-browser-resources-settings-route.js.patch b/patches/chrome-browser-resources-settings-route.js.patch index f789a7954af1..566a287d7002 100644 --- a/patches/chrome-browser-resources-settings-route.js.patch +++ b/patches/chrome-browser-resources-settings-route.js.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/settings/route.js b/chrome/browser/resources/settings/route.js -index 162b5ec9f9d6451a6723d10e96f71ac94622729f..8f0463b5d35670b01c34190fe5f1a8e7d2c2174f 100644 +index 1a2e94d4d42abc20f22fe616afd9c4a1433061fe..b3462b3f2634cbbc01e4fa6f6d45f8b0cfee666d 100644 --- a/chrome/browser/resources/settings/route.js +++ b/chrome/browser/resources/settings/route.js @@ -34,7 +34,9 @@ function addPrivacyChildRoutes(r) { @@ -12,7 +12,7 @@ index 162b5ec9f9d6451a6723d10e96f71ac94622729f..8f0463b5d35670b01c34190fe5f1a8e7 r.SITE_SETTINGS_AR = r.SITE_SETTINGS.createChild('ar'); r.SITE_SETTINGS_AUTOMATIC_DOWNLOADS = r.SITE_SETTINGS.createChild('automaticDownloads'); -@@ -181,7 +183,9 @@ function createBrowserSettingsRoutes() { +@@ -173,7 +175,9 @@ function createBrowserSettingsRoutes() { } r.PRINTING = r.ADVANCED.createSection('/printing', 'printing'); diff --git a/patches/chrome-browser-resources-settings-settings.js.patch b/patches/chrome-browser-resources-settings-settings.js.patch index c43135e9eb89..955585ebe31d 100644 --- a/patches/chrome-browser-resources-settings-settings.js.patch +++ b/patches/chrome-browser-resources-settings-settings.js.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/settings/settings.js b/chrome/browser/resources/settings/settings.js -index 7de9664f61b6bb1fd62ed4022d061d1d96163bff..97eeb5caa6d466a0a88b13f6c4d68ccea07b29f6 100644 +index e542cb1c9dd347c14fa59a3445102f6d42984b51..8542600fe591b029d8069b42c21d6522e138f0ad 100644 --- a/chrome/browser/resources/settings/settings.js +++ b/chrome/browser/resources/settings/settings.js @@ -2,6 +2,7 @@ diff --git a/patches/chrome-browser-resources-settings-settings_ui-settings_ui.js.patch b/patches/chrome-browser-resources-settings-settings_ui-settings_ui.js.patch index adca1ef0630c..52cd05fab253 100644 --- a/patches/chrome-browser-resources-settings-settings_ui-settings_ui.js.patch +++ b/patches/chrome-browser-resources-settings-settings_ui-settings_ui.js.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/resources/settings/settings_ui/settings_ui.js b/chrome/browser/resources/settings/settings_ui/settings_ui.js -index d9459ba22b9ed42f87b915505ff66819fa5f2ce3..0de948cdf040763448c42f6859bbbb050f2271a6 100644 +index 041bcd6d58416ce7b224ffad5a7e42a9e7155d76..1edd6f1def8dc7f35263b669b18d3a8a83007ef3 100644 --- a/chrome/browser/resources/settings/settings_ui/settings_ui.js +++ b/chrome/browser/resources/settings/settings_ui/settings_ui.js @@ -12,7 +12,7 @@ diff --git a/patches/chrome-browser-resources-settings-site_settings-category_default_setting.js.patch b/patches/chrome-browser-resources-settings-site_settings-category_default_setting.js.patch index 9e970e7919b8..d038c0ed43ce 100644 --- a/patches/chrome-browser-resources-settings-site_settings-category_default_setting.js.patch +++ b/patches/chrome-browser-resources-settings-site_settings-category_default_setting.js.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/resources/settings/site_settings/category_default_setting.js b/chrome/browser/resources/settings/site_settings/category_default_setting.js -index 15eb2547dbc833d78eeaf00a91e2d04b7d514c4c..11feccf2318857955696bba0e0b33d9c8f5eed5d 100644 +index 1f4e519bd6162c2a25e8fe5f97387797b4555d61..3c6fde5d024fd000bca05ecf466aba0e3047950b 100644 --- a/chrome/browser/resources/settings/site_settings/category_default_setting.js +++ b/chrome/browser/resources/settings/site_settings/category_default_setting.js -@@ -169,6 +169,7 @@ Polymer({ +@@ -171,6 +171,7 @@ Polymer({ this.categoryEnabled ? ContentSetting.ALLOW : ContentSetting.BLOCK); break; case ContentSettingsTypes.AUTOMATIC_DOWNLOADS: diff --git a/patches/chrome-browser-resources-settings-site_settings-constants.js.patch b/patches/chrome-browser-resources-settings-site_settings-constants.js.patch index dc66120247aa..6ebb8d68cb8a 100644 --- a/patches/chrome-browser-resources-settings-site_settings-constants.js.patch +++ b/patches/chrome-browser-resources-settings-site_settings-constants.js.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/resources/settings/site_settings/constants.js b/chrome/browser/resources/settings/site_settings/constants.js -index d0385583d83808a3697f8b09dac5762bddfe694e..c89f361e36509f5d07a34370099f19dbf93b18f6 100644 +index 4b456ddd6ec071b2a71f63eab10b8f30207b5ab6..097c071a174afe168c867890870e43ae264265a9 100644 --- a/chrome/browser/resources/settings/site_settings/constants.js +++ b/chrome/browser/resources/settings/site_settings/constants.js -@@ -43,6 +43,7 @@ export const ContentSettingsTypes = { +@@ -44,6 +44,7 @@ export const ContentSettingsTypes = { VR: 'vr', WINDOW_PLACEMENT: 'window-placement', ZOOM_LEVELS: 'zoom-levels', diff --git a/patches/chrome-browser-resources-settings-site_settings-site_details.html.patch b/patches/chrome-browser-resources-settings-site_settings-site_details.html.patch index 190255ec036c..f18ca28be69f 100644 --- a/patches/chrome-browser-resources-settings-site_settings-site_details.html.patch +++ b/patches/chrome-browser-resources-settings-site_settings-site_details.html.patch @@ -1,10 +1,10 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html -index 144f7fdf9735423acec2922d1bffaf97e9ce0e0f..2f949206ea4f838b87d484f08c42e7683ce27feb 100644 +index 41e59a524e5a9a21fc1c4e2068f2988d3d7db9b8..e0c372f82dd4507a4988264ad4d4e12b1ea71b5c 100644 --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -213,6 +213,11 @@ - icon="cr:extension" id="unsandboxedPlugins" - label="$i18n{siteSettingsUnsandboxedPlugins}"> +@@ -193,6 +193,11 @@ + category="[[ContentSettingsTypes.UNSANDBOXED_PLUGINS]]" + icon="cr:extension" label="$i18n{siteSettingsUnsandboxedPlugins}"> + (this)), tab_strip_model_( diff --git a/patches/chrome-browser-ui-browser.h.patch b/patches/chrome-browser-ui-browser.h.patch index e0eb7c8624b6..bb893cf3ad96 100644 --- a/patches/chrome-browser-ui-browser.h.patch +++ b/patches/chrome-browser-ui-browser.h.patch @@ -1,10 +1,10 @@ diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h -index ab2a03e6e87890ae1364971f3009483789ef0260..059a281db6b5b35299444d5b3e290f77d153d695 100644 +index c67b79ec647a2ddfd7bb5adc583a9ac8659c6fe5..30cafe4cc4f1fb9e1010c1ec61f096ecda3c6f74 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h -@@ -664,6 +664,7 @@ class Browser : public TabStripModelObserver, - // dragging. - void SetIsInTabDragging(bool is_in_tab_dragging); +@@ -677,6 +677,7 @@ class Browser : public TabStripModelObserver, + // Sets the browser's user title. Setting it to an empty string clears it. + void SetWindowUserTitle(const std::string& user_title); + BRAVE_BROWSER_H private: diff --git a/patches/chrome-browser-ui-browser_navigator.cc.patch b/patches/chrome-browser-ui-browser_navigator.cc.patch index 45d16b25c440..43b00ce64626 100644 --- a/patches/chrome-browser-ui-browser_navigator.cc.patch +++ b/patches/chrome-browser-ui-browser_navigator.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc -index 6d6a3b90dcad29f06c9c0929126ddd52ee8eb0a4..89293b056d3a5a93bdf499ee5efc139a282bb9f8 100644 +index 675dae9023fee4e892cac765369ba069cade0646..94fe92d2a16718815805aa3d3b09debb413b1d5d 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc @@ -469,6 +469,7 @@ void Navigate(NavigateParams* params) { @@ -10,7 +10,7 @@ index 6d6a3b90dcad29f06c9c0929126ddd52ee8eb0a4..89293b056d3a5a93bdf499ee5efc139a // Open System Apps in their standalone window if necessary. // TODO(crbug.com/1096345): Remove this code after we integrate with intent -@@ -731,6 +732,7 @@ void Navigate(NavigateParams* params) { +@@ -737,6 +738,7 @@ void Navigate(NavigateParams* params) { bool IsHostAllowedInIncognito(const GURL& url) { std::string scheme = url.scheme(); base::StringPiece host = url.host_piece(); diff --git a/patches/chrome-browser-ui-chrome_pages.cc.patch b/patches/chrome-browser-ui-chrome_pages.cc.patch index bb4703abf9ca..4c7ecf56dea1 100644 --- a/patches/chrome-browser-ui-chrome_pages.cc.patch +++ b/patches/chrome-browser-ui-chrome_pages.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc -index c988ba9c4101ee947de2bed7288222875bbdf944..b6172ac9accef6dbeb9442cdd81195a3f0e5de01 100644 +index 1175bd65201c46722d9a16cb1858a216dc40db7c..0ccff7d77bc3a7ddd7427c534f824e1630690751 100644 --- a/chrome/browser/ui/chrome_pages.cc +++ b/chrome/browser/ui/chrome_pages.cc @@ -369,7 +369,7 @@ void ShowSlow(Browser* browser) { diff --git a/patches/chrome-browser-ui-cocoa-main_menu_builder.mm.patch b/patches/chrome-browser-ui-cocoa-main_menu_builder.mm.patch index 84bd58fc9f0c..fb7a8e6308e1 100644 --- a/patches/chrome-browser-ui-cocoa-main_menu_builder.mm.patch +++ b/patches/chrome-browser-ui-cocoa-main_menu_builder.mm.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/cocoa/main_menu_builder.mm b/chrome/browser/ui/cocoa/main_menu_builder.mm -index aa163bc80a278110470b8f194c71ee5e88fa4718..c14fefa9728ebce24435e50326896aa65a8a2934 100644 +index 9659d68c224c83f8c258fa7b2a89cb627149eb1f..2e05ef22deeade7b57efc2240224531af7b3f307 100644 --- a/chrome/browser/ui/cocoa/main_menu_builder.mm +++ b/chrome/browser/ui/cocoa/main_menu_builder.mm @@ -104,6 +104,7 @@ base::scoped_nsobject BuildFileMenu( @@ -10,7 +10,7 @@ index aa163bc80a278110470b8f194c71ee5e88fa4718..c14fefa9728ebce24435e50326896aa6 Item(IDS_REOPEN_CLOSED_TABS_MAC) .command_id(IDC_RESTORE_TAB) .remove_if(is_pwa), -@@ -467,6 +468,7 @@ base::scoped_nsobject BuildHelpMenu( +@@ -468,6 +469,7 @@ base::scoped_nsobject BuildHelpMenu( #if BUILDFLAG(GOOGLE_CHROME_BRANDING) Item(IDS_FEEDBACK_MAC).command_id(IDC_FEEDBACK), #endif diff --git a/patches/chrome-browser-ui-content_settings-content_setting_image_model.cc.patch b/patches/chrome-browser-ui-content_settings-content_setting_image_model.cc.patch index 00ed7657da83..bab1e2f38a31 100644 --- a/patches/chrome-browser-ui-content_settings-content_setting_image_model.cc.patch +++ b/patches/chrome-browser-ui-content_settings-content_setting_image_model.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/content_settings/content_setting_image_model.cc b/chrome/browser/ui/content_settings/content_setting_image_model.cc -index 93bfb5042159449818bbf5b8b06e89b0f5c1c80d..c6af33a32d9564c67691d6261733e8830be22d0d 100644 +index 4f8182d209673801407db8955c370a026511deed..55361a1022b7cb2b683c336894834b20096c8473 100644 --- a/chrome/browser/ui/content_settings/content_setting_image_model.cc +++ b/chrome/browser/ui/content_settings/content_setting_image_model.cc @@ -11,6 +11,7 @@ @@ -10,7 +10,7 @@ index 93bfb5042159449818bbf5b8b06e89b0f5c1c80d..c6af33a32d9564c67691d6261733e883 #include "build/build_config.h" #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/browser_process.h" -@@ -1028,6 +1029,9 @@ ContentSettingImageModel::GenerateContentSettingImageModels() { +@@ -1038,6 +1039,9 @@ ContentSettingImageModel::GenerateContentSettingImageModels() { std::vector> result; for (auto type : kContentSettingImageOrder) result.push_back(CreateForContentType(type)); diff --git a/patches/chrome-browser-ui-startup-startup_browser_creator_impl.cc.patch b/patches/chrome-browser-ui-startup-startup_browser_creator_impl.cc.patch index 23973068819a..18c17fb93856 100644 --- a/patches/chrome-browser-ui-startup-startup_browser_creator_impl.cc.patch +++ b/patches/chrome-browser-ui-startup-startup_browser_creator_impl.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.cc b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -index e25bf88aa86d90584d1f1777bfa1debd48fa6b2f..1e5ab0e612193c58dfcc320c4a47da609486a145 100644 +index 393a018c135a76739d38180ce3fd681c71b3a98b..a378db2d6404ae8020a5b197d7515d7fab28d70a 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.cc -@@ -665,6 +665,7 @@ void StartupBrowserCreatorImpl::DetermineURLsAndLaunch( +@@ -516,6 +516,7 @@ void StartupBrowserCreatorImpl::DetermineURLsAndLaunch( welcome_enabled = welcome::IsEnabled(profile_) && welcome::HasModulesToShow(profile_); #endif // !defined(OS_CHROMEOS) diff --git a/patches/chrome-browser-ui-tab_helpers.cc.patch b/patches/chrome-browser-ui-tab_helpers.cc.patch index ae60ff6c80ed..64004cfc7bae 100644 --- a/patches/chrome-browser-ui-tab_helpers.cc.patch +++ b/patches/chrome-browser-ui-tab_helpers.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc -index 440f669fcf3b24f8777a474c8355afdea701ce3e..3586b30ad80e4dece2f62f76a8442fc86437a054 100644 +index 4d73e1ce38e0c17c6d268b0fa8df1bbbedfdcc2e..8e898c461f44fd1b18a036fbd025ac45b5e531f5 100644 --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -473,4 +473,5 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -475,4 +475,5 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { // This is common code for all of us. PLEASE DO YOUR PART to keep it tidy and // organized. diff --git a/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch b/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch index da4970317bfd..4bd526f47a8f 100644 --- a/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch +++ b/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/tabs/tab_strip_model.h b/chrome/browser/ui/tabs/tab_strip_model.h -index a8b4ddfe3849798f33121ce03895066b9e55f299..d1afe3f31b3223706c6a0fafd05248380f7344fc 100644 +index b7777d5c76a899ac4f126f4f3efe94811a5e8e64..d0e72c41eb3edd84e9c881b7a15c7a3a835cf521 100644 --- a/chrome/browser/ui/tabs/tab_strip_model.h +++ b/chrome/browser/ui/tabs/tab_strip_model.h -@@ -569,6 +569,7 @@ class TabStripModel : public TabGroupController { +@@ -577,6 +577,7 @@ class TabStripModel : public TabGroupController { // current tree of openers). bool ShouldResetOpenerOnActiveTabChange(content::WebContents* contents) const; diff --git a/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch b/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch index 07a17866f25a..c2299f00e207 100644 --- a/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch +++ b/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc -index 94dabd4ed766614e61541ea248b42c0c9fc7ebba..594954ec78feaa024c5c3e97d3e2b87b627f8983 100644 +index 6880ef875715ca44996ca09e63b45fc71fa027a2..d397cca371b7a0628783a2e32384032dc33da12e 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc @@ -844,6 +844,7 @@ void BookmarkBarView::Layout() { diff --git a/patches/chrome-browser-ui-views-bookmarks-bookmark_bubble_view.cc.patch b/patches/chrome-browser-ui-views-bookmarks-bookmark_bubble_view.cc.patch index bfb35564402d..002ca669a0c6 100644 --- a/patches/chrome-browser-ui-views-bookmarks-bookmark_bubble_view.cc.patch +++ b/patches/chrome-browser-ui-views-bookmarks-bookmark_bubble_view.cc.patch @@ -1,11 +1,11 @@ diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc -index 71cd964ce9c9968410426e033f70bb5169f97824..4433726b4a5bfef828317963e53f0027ff0dadd7 100644 +index b942c4bae3997aab4733f5111a2fc62ede8b9165..c64c9c2f69b01e7dad47bf644576bcdbc6377d9e 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc -@@ -229,6 +229,7 @@ void BookmarkBubbleView::ShowBubble( +@@ -227,6 +227,7 @@ void BookmarkBubbleView::ShowBubble( + std::move(dialog_model), anchor_view, views::BubbleBorder::TOP_RIGHT); + bubble->SelectAllText(kBookmarkName); bookmark_bubble_ = bubble.get(); - bubble->SetAnchorView(anchor_view); - bubble->SetArrow(views::BubbleBorder::TOP_RIGHT); + BRAVE_BOOKMARK_BUBBLE_VIEW if (highlighted_button) bubble->SetHighlightedButton(highlighted_button); diff --git a/patches/chrome-browser-ui-views-download-download_item_view.h.patch b/patches/chrome-browser-ui-views-download-download_item_view.h.patch index efda52b28e3f..cff5e47e545e 100644 --- a/patches/chrome-browser-ui-views-download-download_item_view.h.patch +++ b/patches/chrome-browser-ui-views-download-download_item_view.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/download/download_item_view.h b/chrome/browser/ui/views/download/download_item_view.h -index 108df89672d65d32c8f8d840323b19c81a93ab75..6dde04d48647ab715ba1209d49c7dc0baf906e0b 100644 +index e3a1921f916f2193a1bfa1726590a4c8c583a5b5..84d1acc3fa6b059f6de9b4270acd58bcbb92e068 100644 --- a/chrome/browser/ui/views/download/download_item_view.h +++ b/chrome/browser/ui/views/download/download_item_view.h -@@ -116,6 +116,7 @@ class DownloadItemView : public views::View, +@@ -112,6 +112,7 @@ class DownloadItemView : public views::View, void OnPaintBackground(gfx::Canvas* canvas) override; void OnPaint(gfx::Canvas* canvas) override; void OnThemeChanged() override; diff --git a/patches/chrome-browser-ui-views-extensions-extension_popup.cc.patch b/patches/chrome-browser-ui-views-extensions-extension_popup.cc.patch index 452f091872b5..88982394d2d4 100644 --- a/patches/chrome-browser-ui-views-extensions-extension_popup.cc.patch +++ b/patches/chrome-browser-ui-views-extensions-extension_popup.cc.patch @@ -1,13 +1,13 @@ diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc -index 7d96b50a963c8a17e05360eef6daa8c96d14f048..410f1801a1def6410d8c6b20c6b50d05e627ba17 100644 +index 7201633f3fbbd584709d2775c50fc2b68734a06a..e5ddaf7e3f216b8bfd3858b44e64c67016bf875b 100644 --- a/chrome/browser/ui/views/extensions/extension_popup.cc +++ b/chrome/browser/ui/views/extensions/extension_popup.cc -@@ -67,7 +67,7 @@ gfx::Size ExtensionPopup::CalculatePreferredSize() const { +@@ -68,7 +68,7 @@ gfx::Size ExtensionPopup::CalculatePreferredSize() const { void ExtensionPopup::AddedToWidget() { BubbleDialogDelegateView::AddedToWidget(); - const int radius = GetBubbleFrameView()->corner_radius(); + BRAVE_ADDED_TO_WIDGET const bool contents_has_rounded_corners = - extension_view_->holder()->SetCornerRadius(radius); + extension_view_->holder()->SetCornerRadii(gfx::RoundedCornersF(radius)); SetBorder(views::CreateEmptyBorder( diff --git a/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch b/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch index 10269b216786..c5385d2a79e0 100644 --- a/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch +++ b/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc -index 5d2b59f118785cf8265afd0d37d18985f5df8fa6..03c733f97feb72dff446ea6db3ec89d346750499 100644 +index c5859e342846e264ad739ba03bceaa2ef226b5f8..cec3a78bb5874d2a3da18cd44cac705530b39cb3 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc -@@ -568,6 +568,7 @@ void LocationBarView::Layout() { +@@ -570,6 +570,7 @@ void LocationBarView::Layout() { } }; diff --git a/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch b/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch index 346565fdda01..6cc019438565 100644 --- a/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch +++ b/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h -index 5a9144b438a6ccad97e90092d4982ec8f4a9dbb3..b548c1de87d93d6700d717006dfbe60df1726613 100644 +index 8471c31543ae1de888975623f8935bf507141ea8..8a073c38f7ae6a1a32905a247951d888091369f8 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.h +++ b/chrome/browser/ui/views/location_bar/location_bar_view.h -@@ -107,6 +107,7 @@ class LocationBarView : public LocationBar, +@@ -105,6 +105,7 @@ class LocationBarView : public LocationBar, int GetBorderRadius() const; // Initializes the LocationBarView. @@ -10,7 +10,7 @@ index 5a9144b438a6ccad97e90092d4982ec8f4a9dbb3..b548c1de87d93d6700d717006dfbe60d void Init(); // True if this instance has been initialized by calling Init, which can only -@@ -162,6 +163,7 @@ class LocationBarView : public LocationBar, +@@ -160,6 +161,7 @@ class LocationBarView : public LocationBar, // Updates the controller, and, if |contents| is non-null, restores saved // state that the tab holds. @@ -18,9 +18,9 @@ index 5a9144b438a6ccad97e90092d4982ec8f4a9dbb3..b548c1de87d93d6700d717006dfbe60d void Update(content::WebContents* contents); // Clears the location bar's state for |contents|. -@@ -232,6 +234,7 @@ class LocationBarView : public LocationBar, +@@ -227,6 +229,7 @@ class LocationBarView : public LocationBar, security_state::SecurityLevel security_level) const override; - gfx::ImageSkia GetLocationIcon(LocationIconView::Delegate::IconFetchedCallback + ui::ImageModel GetLocationIcon(LocationIconView::Delegate::IconFetchedCallback on_icon_fetched) const override; + BRAVE_LOCATION_BAR_VIEW_H_ diff --git a/patches/chrome-browser-ui-views-outdated_upgrade_bubble_view.cc.patch b/patches/chrome-browser-ui-views-outdated_upgrade_bubble_view.cc.patch index 9b2828023ee1..34849b255a96 100644 --- a/patches/chrome-browser-ui-views-outdated_upgrade_bubble_view.cc.patch +++ b/patches/chrome-browser-ui-views-outdated_upgrade_bubble_view.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc -index 287148a84b29aa6173c63a599a3d27f65f2e9049..d4360a1c7d2a310a7d89450536091082bd3bdc87 100644 +index 649bc9614dcf60ef8e631ef4b7f99adb6d29a03b..117d58f2b87882cea4eb8bb485614599ebe6d46b 100644 --- a/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc +++ b/chrome/browser/ui/views/outdated_upgrade_bubble_view.cc @@ -37,8 +37,12 @@ namespace { diff --git a/patches/chrome-browser-ui-views-permission_bubble-permission_prompt_bubble_view.cc.patch b/patches/chrome-browser-ui-views-permission_bubble-permission_prompt_bubble_view.cc.patch index ab3fd38cad3e..133e7ede4591 100644 --- a/patches/chrome-browser-ui-views-permission_bubble-permission_prompt_bubble_view.cc.patch +++ b/patches/chrome-browser-ui-views-permission_bubble-permission_prompt_bubble_view.cc.patch @@ -1,12 +1,12 @@ diff --git a/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc b/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc -index c525e633813a7a4616ec770437d171faf22eb697..17a6505450206f045e9b76fba3005e7da69a311d 100644 +index 3cb5f1e59c84e8c32e4c42f8f389a5612e71b7bf..a7e28df4e6ff800dfa9f7a9a208a5f778ce81223 100644 --- a/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc +++ b/chrome/browser/ui/views/permission_bubble/permission_prompt_bubble_view.cc -@@ -83,6 +83,7 @@ PermissionPromptBubbleView::PermissionPromptBubbleView( +@@ -84,6 +84,7 @@ PermissionPromptBubbleView::PermissionPromptBubbleView( for (permissions::PermissionRequest* request : visible_requests_) AddPermissionRequestLine(request); + BRAVE_PERMISSION_PROMPT_BUBBLE_VIEW - } - PermissionPromptBubbleView::~PermissionPromptBubbleView() = default; + base::Optional extra_text = GetExtraText(); + if (extra_text.has_value()) { diff --git a/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.cc.patch b/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.cc.patch index 6b755ed87bbe..997f0873216e 100644 --- a/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.cc.patch +++ b/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc -index d78b095a932f2f152fee533538219fd7711155b3..6566e7c3693812ac37e5c45fdd044ec564e05e7f 100644 +index 15949d01a13bc8c8449ea22bb31ce8c92a10356b..12a2c45e9ae3038dfca827ca24523498536eb8d8 100644 --- a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc +++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc -@@ -241,6 +241,7 @@ void AvatarToolbarButton::NotifyClick(const ui::Event& event) { +@@ -246,6 +246,7 @@ void AvatarToolbarButton::NotifyClick(const ui::Event& event) { } base::string16 AvatarToolbarButton::GetAvatarTooltipText() const { diff --git a/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch b/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch index 8c15ea3e5691..51f52bfbccbf 100644 --- a/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch +++ b/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.h b/chrome/browser/ui/views/profiles/profile_menu_view_base.h -index 045c45d88095bdd772e2b67aaba100f2c788fa0f..ce9cac96174bf99f1a33490bc262859cca612df0 100644 +index c1492c4dcbcea0ef58307d0de5428ff9f4b72dba..5f90da599e3558901a774e99dfd85f4b12a7e402 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_base.h +++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.h -@@ -170,6 +170,7 @@ class ProfileMenuViewBase : public content::WebContentsDelegate, +@@ -169,6 +169,7 @@ class ProfileMenuViewBase : public content::WebContentsDelegate, void set_perform_menu_actions_for_testing(bool perform_menu_actions) { perform_menu_actions_ = perform_menu_actions; } diff --git a/patches/chrome-browser-ui-views-tabs-new_tab_button.h.patch b/patches/chrome-browser-ui-views-tabs-new_tab_button.h.patch index 729b1c739ffe..f40fc0f7846a 100644 --- a/patches/chrome-browser-ui-views-tabs-new_tab_button.h.patch +++ b/patches/chrome-browser-ui-views-tabs-new_tab_button.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/views/tabs/new_tab_button.h b/chrome/browser/ui/views/tabs/new_tab_button.h -index 4449616b6e1bfbabe0691ed57360ef94187c0a98..5cfca43ae41ceb45ad064f3eebcea4066d9fa519 100644 +index 0a9554f6e697eaeb12aba9c59e34c349f1dfd283..d2ddc77ad8817bf74a544b4d498eeab79d0dee8d 100644 --- a/chrome/browser/ui/views/tabs/new_tab_button.h +++ b/chrome/browser/ui/views/tabs/new_tab_button.h @@ -45,6 +45,7 @@ class NewTabButton : public views::ImageButton, diff --git a/patches/chrome-browser-ui-views-tabs-tab_icon.cc.patch b/patches/chrome-browser-ui-views-tabs-tab_icon.cc.patch index 1b1346cc08e9..3d6e028ba10f 100644 --- a/patches/chrome-browser-ui-views-tabs-tab_icon.cc.patch +++ b/patches/chrome-browser-ui-views-tabs-tab_icon.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/tabs/tab_icon.cc b/chrome/browser/ui/views/tabs/tab_icon.cc -index 0c9e5b98b3ef5acdb3dc33f3c572d42bc37bc332..eec05b31aeb2a489bb1f8636a5be28b976d24d9e 100644 +index 53b9666b3e47dc1de750ebc792eee9012c4ce222..4735e35cce1c1e9b12507f82d2ecfa062dc636d3 100644 --- a/chrome/browser/ui/views/tabs/tab_icon.cc +++ b/chrome/browser/ui/views/tabs/tab_icon.cc -@@ -356,7 +356,7 @@ void TabIcon::SetIcon(const GURL& url, const gfx::ImageSkia& icon) { +@@ -357,7 +357,7 @@ void TabIcon::SetIcon(const GURL& url, const gfx::ImageSkia& icon) { favicon_ = icon; diff --git a/patches/chrome-browser-ui-views-toolbar-browser_app_menu_button.cc.patch b/patches/chrome-browser-ui-views-toolbar-browser_app_menu_button.cc.patch index 83e2e6e59f1d..489bafe3ee12 100644 --- a/patches/chrome-browser-ui-views-toolbar-browser_app_menu_button.cc.patch +++ b/patches/chrome-browser-ui-views-toolbar-browser_app_menu_button.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc b/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc -index 171166457a31226ccc36d76c8b64d578012d112a..a07cd6cef46a862bfbf0d4a3c1eab17128d54d9d 100644 +index a98d2d97b78565d193e5fd4fb0e15589a2f23b3e..5ccba630cdaf7ac5822b67e98cffd105a9d22bb0 100644 --- a/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc +++ b/chrome/browser/ui/views/toolbar/browser_app_menu_button.cc @@ -11,6 +11,7 @@ diff --git a/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch b/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch index ce089fba34fa..63cad2519809 100644 --- a/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch +++ b/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc -index 7ccd06a9b0fea22db5f6427207639dd60178c14c..1a71c1deab569404357ab44fb49c0d6229eda542 100644 +index 40698b8a9893814230297ed506e0894fc2c77d38..f6c6bd6eb872550cb01d2482e41940fbd05f6170 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc -@@ -286,7 +286,7 @@ void ToolbarView::Init() { +@@ -275,7 +275,7 @@ void ToolbarView::Init() { } else { // TODO(crbug.com/932818): Remove this once the // |kAutofillEnableToolbarStatusChip| is fully launched. diff --git a/patches/chrome-browser-ui-views-toolbar-toolbar_view.h.patch b/patches/chrome-browser-ui-views-toolbar-toolbar_view.h.patch index c86557e6216e..a99fe7af5b97 100644 --- a/patches/chrome-browser-ui-views-toolbar-toolbar_view.h.patch +++ b/patches/chrome-browser-ui-views-toolbar-toolbar_view.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h -index f4af66fa98b30f80689e0f8776596af720c3fb75..ceeffeafa6603911b2bb84ccb75bc4223ffa028e 100644 +index 21510da06867ca1e2b286010c44be71d33ae5168..1e039e2a559aaf6d767abdd1ce0c3d39fda6f8bf 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.h +++ b/chrome/browser/ui/views/toolbar/toolbar_view.h -@@ -94,12 +94,14 @@ class ToolbarView : public views::AccessiblePaneView, +@@ -93,12 +93,14 @@ class ToolbarView : public views::AccessiblePaneView, ~ToolbarView() override; // Create the contents of the Browser Toolbar. @@ -17,7 +17,7 @@ index f4af66fa98b30f80689e0f8776596af720c3fb75..ceeffeafa6603911b2bb84ccb75bc422 void Update(content::WebContents* tab); // Updates the visibility of the custom tab bar, potentially animating the -@@ -130,6 +132,7 @@ class ToolbarView : public views::AccessiblePaneView, +@@ -129,6 +131,7 @@ class ToolbarView : public views::AccessiblePaneView, IntentPickerResponse callback); // Shows a bookmark bubble and anchors it appropriately. @@ -25,7 +25,7 @@ index f4af66fa98b30f80689e0f8776596af720c3fb75..ceeffeafa6603911b2bb84ccb75bc422 void ShowBookmarkBubble(const GURL& url, bool already_bookmarked, bookmarks::BookmarkBubbleObserver* observer); -@@ -196,6 +199,7 @@ class ToolbarView : public views::AccessiblePaneView, +@@ -195,6 +198,7 @@ class ToolbarView : public views::AccessiblePaneView, void ChildPreferredSizeChanged(views::View* child) override; protected: @@ -33,7 +33,7 @@ index f4af66fa98b30f80689e0f8776596af720c3fb75..ceeffeafa6603911b2bb84ccb75bc422 // AccessiblePaneView: bool SetPaneFocusAndFocusDefault() override; -@@ -243,6 +247,7 @@ class ToolbarView : public views::AccessiblePaneView, +@@ -242,6 +246,7 @@ class ToolbarView : public views::AccessiblePaneView, views::View* GetViewForDrop() override; // Loads the images for all the child views. diff --git a/patches/chrome-browser-ui-views-translate-translate_bubble_view.cc.patch b/patches/chrome-browser-ui-views-translate-translate_bubble_view.cc.patch index 148036269760..ec1254a2932e 100644 --- a/patches/chrome-browser-ui-views-translate-translate_bubble_view.cc.patch +++ b/patches/chrome-browser-ui-views-translate-translate_bubble_view.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc -index aef57f393cce4622dcc7a7f8cfc0ca2327a921e5..599ceaf1b45a8fe175edeb36fd3452d480f2e2ec 100644 +index 1c738c44351397b739409eea71bc009fc16f7012..585de1ce9728f14b86847fffcf465085e54c7d67 100644 --- a/chrome/browser/ui/views/translate/translate_bubble_view.cc +++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc @@ -175,7 +175,7 @@ views::Widget* TranslateBubbleView::ShowBubble( diff --git a/patches/chrome-browser-ui-views-translate-translate_bubble_view.h.patch b/patches/chrome-browser-ui-views-translate-translate_bubble_view.h.patch index 347cb0f20251..90ad3cc50826 100644 --- a/patches/chrome-browser-ui-views-translate-translate_bubble_view.h.patch +++ b/patches/chrome-browser-ui-views-translate-translate_bubble_view.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.h b/chrome/browser/ui/views/translate/translate_bubble_view.h -index 476617654d18f5ff311b7429d68806887ba256ab..f2d21c6d1d3b4e980dc96dc0c80625dc5cbcd3a1 100644 +index 440325dfbc2932ece15ee61a0fd3500b97946959..929a7f418b624e11635435b289062d90fe662768 100644 --- a/chrome/browser/ui/views/translate/translate_bubble_view.h +++ b/chrome/browser/ui/views/translate/translate_bubble_view.h -@@ -104,6 +104,7 @@ class TranslateBubbleView : public LocationBarBubbleDelegateView, +@@ -100,6 +100,7 @@ class TranslateBubbleView : public LocationBarBubbleDelegateView, // Returns the current view state. TranslateBubbleModel::ViewState GetViewState() const; diff --git a/patches/chrome-browser-ui-views-update_recommended_message_box.h.patch b/patches/chrome-browser-ui-views-update_recommended_message_box.h.patch index df1210e12757..dbe1a5c7573c 100644 --- a/patches/chrome-browser-ui-views-update_recommended_message_box.h.patch +++ b/patches/chrome-browser-ui-views-update_recommended_message_box.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/views/update_recommended_message_box.h b/chrome/browser/ui/views/update_recommended_message_box.h -index e7038138c170785a4a382e222e4be0df0af99a15..b95a50eeba6901efa2118f7ba11a3ade6f530eec 100644 +index 312a9a4c781eeb646f84bb2d8ff3db6287af67e0..3c0f75b2827c74a2d59e8ba37490fce50afac3f2 100644 --- a/chrome/browser/ui/views/update_recommended_message_box.h +++ b/chrome/browser/ui/views/update_recommended_message_box.h @@ -20,6 +20,8 @@ class UpdateRecommendedMessageBox : public views::DialogDelegate { diff --git a/patches/chrome-browser-ui-webui-bookmarks-bookmarks_ui.cc.patch b/patches/chrome-browser-ui-webui-bookmarks-bookmarks_ui.cc.patch index e666a70a01b4..fcc9bacb784b 100644 --- a/patches/chrome-browser-ui-webui-bookmarks-bookmarks_ui.cc.patch +++ b/patches/chrome-browser-ui-webui-bookmarks-bookmarks_ui.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc b/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc -index 60ec5a0f6002cf8547aa6dae4c6b0a036d535d5f..4e6c7d7ec8c5345a69332010de1846b75e3511de 100644 +index 18e0b1ab4879937d5581749214b6d17a36dc359c..e78321121ad363e8c93ff45d9df5f44b39ddd49d 100644 --- a/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc +++ b/chrome/browser/ui/webui/bookmarks/bookmarks_ui.cc -@@ -134,6 +134,7 @@ content::WebUIDataSource* CreateBookmarksUIHTMLSource(Profile* profile) { +@@ -140,6 +140,7 @@ content::WebUIDataSource* CreateBookmarksUIHTMLSource(Profile* profile) { for (const auto& str : kStrings) AddLocalizedString(source, str.name, str.id); diff --git a/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch b/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch index 23f91a8e2c40..216c1b6a9fb3 100644 --- a/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch +++ b/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -index aa93a9ddd7f56dbc178a40d328b7c25cbbd8f607..b435032c56238cc8f8f2c32a7ebdaf775509f23e 100644 +index c9abbd97037be8c09034f3f8cfb154baf0d4af9d..69964767c8fcac4fae83c5fd8e0403985b954943 100644 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -12,6 +12,7 @@ @@ -10,7 +10,7 @@ index aa93a9ddd7f56dbc178a40d328b7c25cbbd8f607..b435032c56238cc8f8f2c32a7ebdaf77 #include "build/build_config.h" #include "chrome/browser/about_flags.h" #include "chrome/browser/accessibility/accessibility_ui.h" -@@ -996,7 +997,7 @@ void ChromeWebUIControllerFactory::GetFaviconForURL( +@@ -1029,7 +1030,7 @@ void ChromeWebUIControllerFactory::GetFaviconForURL( // static ChromeWebUIControllerFactory* ChromeWebUIControllerFactory::GetInstance() { diff --git a/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch b/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch index 9e6525ceb998..c3ee6e187f72 100644 --- a/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch +++ b/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chrome/browser/ui/webui/downloads/downloads_ui.cc -index a1ddff80f28035458be64285ee801ebf74a05db2..d77ed872c4b9f00f5738beb7b90244f0f5d48a29 100644 +index abc1aa5c9e35cd3f80473c3a6e1994eb14a0f12e..5a6b4f66502c81ab040985acbd1f69056b44a097 100644 --- a/chrome/browser/ui/webui/downloads/downloads_ui.cc +++ b/chrome/browser/ui/webui/downloads/downloads_ui.cc @@ -62,6 +62,7 @@ content::WebUIDataSource* CreateDownloadsUIHTMLSource(Profile* profile) { diff --git a/patches/chrome-browser-ui-webui-extensions-extensions_ui.cc.patch b/patches/chrome-browser-ui-webui-extensions-extensions_ui.cc.patch index cf1f0e1c9c6e..031388c1e83a 100644 --- a/patches/chrome-browser-ui-webui-extensions-extensions_ui.cc.patch +++ b/patches/chrome-browser-ui-webui-extensions-extensions_ui.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc -index 559e1d5ed99131b943a230fa47cc84fb6ca591a8..40e01575520d030eb8fd27e181503f187f6f785f 100644 +index 293d9ea8fa4932a57f9ea47fa9251735183dd17c..259d4226c5f3ecbb215c8070729dce67e7b6b89b 100644 --- a/chrome/browser/ui/webui/extensions/extensions_ui.cc +++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc -@@ -353,6 +353,8 @@ content::WebUIDataSource* CreateMdExtensionsSource(Profile* profile, +@@ -354,6 +354,8 @@ content::WebUIDataSource* CreateMdExtensionsSource(Profile* profile, } source->AddString(kLoadTimeClassesKey, GetLoadTimeClasses(in_dev_mode)); diff --git a/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch b/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch index 99af5a833501..f1c91af28e8e 100644 --- a/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch +++ b/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -index 79f60e280e68604d028ca0a1715279a32e62dbc5..888546ad6b318a9de05b806eaa413f1efb3a3a22 100644 +index 898a006aafe350d5bf792c6132b43f436b04bf76..ea604aae865eddfb4a084d999fd2280a630f1c17 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2242,6 +2242,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -2396,6 +2396,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); diff --git a/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch b/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch index 11790464bd0b..e72e2cc33370 100644 --- a/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch +++ b/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc -index 32c1db01bda484ba0adebd5ba4191b25b4b7fe1a..e8640dfaec9874e1e69e13d405c90d5b3e8a1b88 100644 +index d8c3c135ab3f844c628f4e1bd77227aca0efecfb..f3d09b0558eba749ff096623ad6be02c5b1dbd31 100644 --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc @@ -374,6 +374,7 @@ bool HasRegisteredGroupName(ContentSettingsType type) { diff --git a/patches/chrome-browser-webauthn-chrome_authenticator_request_delegate.cc.patch b/patches/chrome-browser-webauthn-chrome_authenticator_request_delegate.cc.patch index 7a1b0240d2b9..c0a96d549da1 100644 --- a/patches/chrome-browser-webauthn-chrome_authenticator_request_delegate.cc.patch +++ b/patches/chrome-browser-webauthn-chrome_authenticator_request_delegate.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc b/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc -index db1ec6337b8c10e5c4a288eab6c618838fa5a3aa..2dcfbed286e67655676ca18b367a9bdbb430d317 100644 +index cc26114a37f18cbbdf5d4efcb415fda8603059a0..2d1ddfe07254620ca9face56753fb2741f0c57be 100644 --- a/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc +++ b/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc -@@ -398,6 +398,7 @@ std::string TouchIdMetadataSecret(Profile* profile) { +@@ -436,6 +436,7 @@ std::string TouchIdMetadataSecret(Profile* profile) { ChromeAuthenticatorRequestDelegate::TouchIdAuthenticatorConfig ChromeAuthenticatorRequestDelegate::TouchIdAuthenticatorConfigForProfile( Profile* profile) { diff --git a/patches/chrome-chrome_repack_locales.gni.patch b/patches/chrome-chrome_repack_locales.gni.patch index 5ee4ac512a32..3f6db28e26c2 100644 --- a/patches/chrome-chrome_repack_locales.gni.patch +++ b/patches/chrome-chrome_repack_locales.gni.patch @@ -1,5 +1,5 @@ diff --git a/chrome/chrome_repack_locales.gni b/chrome/chrome_repack_locales.gni -index b714d4e3b4cef6cc2f24ec2ad6f16be388ae12bf..a5e48daa6479f644cf7549242879b23b42fd1b53 100644 +index e303c7f0e63f4eb60f8c86761a13357e545f2d6f..cec6137b8bba355e2912bc37db82242c1ed84a42 100644 --- a/chrome/chrome_repack_locales.gni +++ b/chrome/chrome_repack_locales.gni @@ -36,6 +36,7 @@ template("chrome_repack_locales") { diff --git a/patches/chrome-common-BUILD.gn.patch b/patches/chrome-common-BUILD.gn.patch index c80e670f28e8..4c7a2b8b3a92 100644 --- a/patches/chrome-common-BUILD.gn.patch +++ b/patches/chrome-common-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn -index 8892138ef63f81a363201fa6525ca2c7ed593d84..ef16b865d42bc0f7780d6e6318b6d995aef42dc4 100644 +index 52ae4877ab7bd03044ac42a221a4551cda057132..264fedaaa0fd82f473e75d11bd4a5669e3473d23 100644 --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -65,6 +65,7 @@ source_set("channel_info") { +@@ -61,6 +61,7 @@ source_set("channel_info") { "channel_info.h", ] deps = [ "//build:branding_buildflags" ] @@ -10,7 +10,7 @@ index 8892138ef63f81a363201fa6525ca2c7ed593d84..ef16b865d42bc0f7780d6e6318b6d995 public_deps = [ "//base", "//components/version_info", -@@ -150,6 +151,7 @@ static_library("common") { +@@ -146,6 +147,7 @@ static_library("common") { ] public_deps = [ @@ -18,7 +18,7 @@ index 8892138ef63f81a363201fa6525ca2c7ed593d84..ef16b865d42bc0f7780d6e6318b6d995 ":available_offline_content_mojom", ":buildflags", ":channel_info", -@@ -554,6 +556,7 @@ static_library("non_code_constants") { +@@ -549,6 +551,7 @@ static_library("non_code_constants") { "//printing/buildflags", "//ui/base:buildflags", ] diff --git a/patches/chrome-common-importer-importer_data_types.h.patch b/patches/chrome-common-importer-importer_data_types.h.patch index b72b95056a15..a2ac0abad590 100644 --- a/patches/chrome-common-importer-importer_data_types.h.patch +++ b/patches/chrome-common-importer-importer_data_types.h.patch @@ -1,5 +1,5 @@ diff --git a/chrome/common/importer/importer_data_types.h b/chrome/common/importer/importer_data_types.h -index 65cfcd480bd575bb5aa1953332c52b92a7606a70..388bec98f179047d56968531fb81bc7e75aafc41 100644 +index 6514aca7a68635245338285141a869dc0e682da5..53f5b5c0342c3a5e00cd426d531f024ba6d8cf45 100644 --- a/chrome/common/importer/importer_data_types.h +++ b/chrome/common/importer/importer_data_types.h @@ -31,7 +31,7 @@ enum ImportItem { diff --git a/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch b/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch index d76849061505..0f62937a68df 100644 --- a/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch +++ b/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch @@ -1,5 +1,5 @@ diff --git a/chrome/installer/linux/debian/update_dist_package_versions.py b/chrome/installer/linux/debian/update_dist_package_versions.py -index eda5c180ee40eb5a8f3c7118454f7f65b27234cb..474152347f0b4271571e6a4863ab417b656a0852 100755 +index 6f03f8907ba29384dade8e68ae8d21ccc05f2353..06cfc83f3cd69a7cc1a620f80dbf2e943061c150 100755 --- a/chrome/installer/linux/debian/update_dist_package_versions.py +++ b/chrome/installer/linux/debian/update_dist_package_versions.py @@ -42,6 +42,7 @@ PACKAGE_FILTER = set([ @@ -10,7 +10,7 @@ index eda5c180ee40eb5a8f3c7118454f7f65b27234cb..474152347f0b4271571e6a4863ab417b "libcups2", "libdbus-1-3", "libdrm2", -@@ -73,6 +74,7 @@ PACKAGE_FILTER = set([ +@@ -72,6 +73,7 @@ PACKAGE_FILTER = set([ "libxrender1", "libxss1", "libxtst6", diff --git a/patches/chrome-installer-linux-rpm-update_package_provides.py.patch b/patches/chrome-installer-linux-rpm-update_package_provides.py.patch index 223f0e74746e..54e6d0be60fd 100644 --- a/patches/chrome-installer-linux-rpm-update_package_provides.py.patch +++ b/patches/chrome-installer-linux-rpm-update_package_provides.py.patch @@ -1,5 +1,5 @@ diff --git a/chrome/installer/linux/rpm/update_package_provides.py b/chrome/installer/linux/rpm/update_package_provides.py -index ef5c5989f8cbff3dbaa045f12a5a1970a461dde6..165c851193371db6487da53603ce9b6d7eb2039d 100755 +index 0f38d92d83e8baef7fabc5cf0a274970d98bcdc7..572ea3af09d2f6c0db23cefa7eaaa91f6c75ac1c 100755 --- a/chrome/installer/linux/rpm/update_package_provides.py +++ b/chrome/installer/linux/rpm/update_package_provides.py @@ -33,6 +33,7 @@ LIBRARY_FILTER = set([ @@ -21,7 +21,7 @@ index ef5c5989f8cbff3dbaa045f12a5a1970a461dde6..165c851193371db6487da53603ce9b6d "librt.so", "libsmime3.so", "libstdc++.so", -@@ -62,6 +66,7 @@ LIBRARY_FILTER = set([ +@@ -61,6 +65,7 @@ LIBRARY_FILTER = set([ "libxkbcommon.so.0", "libxcb.so", "libxcb-dri3.so.0", diff --git a/patches/chrome-installer-mac-BUILD.gn.patch b/patches/chrome-installer-mac-BUILD.gn.patch index 07bd941a55b4..a92a4f5c9be5 100644 --- a/patches/chrome-installer-mac-BUILD.gn.patch +++ b/patches/chrome-installer-mac-BUILD.gn.patch @@ -1,5 +1,5 @@ diff --git a/chrome/installer/mac/BUILD.gn b/chrome/installer/mac/BUILD.gn -index 108dd95d86750ead5ec49ec16835e0330b9575fa..268e82d54f7ad7e5eb3e56f4961f537f03f5308c 100644 +index 09faabc04c24b88a38a4fba62b729e6472544c4e..5b34241db42ac3f57f6c56398f18e8a86b8623d7 100644 --- a/chrome/installer/mac/BUILD.gn +++ b/chrome/installer/mac/BUILD.gn @@ -13,7 +13,7 @@ group("mac") { diff --git a/patches/chrome-installer-mac-signing-signing.py.patch b/patches/chrome-installer-mac-signing-signing.py.patch index 656e8c921d65..846028d3cca5 100644 --- a/patches/chrome-installer-mac-signing-signing.py.patch +++ b/patches/chrome-installer-mac-signing-signing.py.patch @@ -1,13 +1,13 @@ diff --git a/chrome/installer/mac/signing/signing.py b/chrome/installer/mac/signing/signing.py -index 59ce4868f1329947e0daaaf301e8c7f822d33bd2..82b56a6caecdb6ffa02250701b83a14fa6d4cd7c 100644 +index a710b52cd8dbd2973476e125b04736aada73ff1e..b63e282672e86eaa8a17011e348f61a60b7825c6 100644 --- a/chrome/installer/mac/signing/signing.py +++ b/chrome/installer/mac/signing/signing.py -@@ -20,7 +20,7 @@ def sign_part(paths, config, part): +@@ -69,7 +69,7 @@ def sign_part(paths, config, part): part: The |model.CodeSignedProduct| to sign. The product's |path| must be in |paths.work|. """ - command = ['codesign', '--sign', config.identity] + command = ['codesign', '--force', '--sign', config.identity] - if config.notary_user: - # Assume if the config has notary authentication information that the - # products will be notarized, which requires a secure timestamp. + path = os.path.join(paths.work, part.path) + if _linker_signed_arm64_needs_force(path): + command.append('--force') diff --git a/patches/chrome-installer-mini_installer-mini_installer.cc.patch b/patches/chrome-installer-mini_installer-mini_installer.cc.patch index 85b7a621141f..f7670a937446 100644 --- a/patches/chrome-installer-mini_installer-mini_installer.cc.patch +++ b/patches/chrome-installer-mini_installer-mini_installer.cc.patch @@ -1,5 +1,5 @@ diff --git a/chrome/installer/mini_installer/mini_installer.cc b/chrome/installer/mini_installer/mini_installer.cc -index 1c94fd3107389d9dc05f755e8b429df8fcc167af..53c3cda01cf084c0adb4f8b84e255bd304d2cbcd 100644 +index d01bb78cfd70458d2c998365cf179045840b2ad1..da0823d8f73a72928623f6f770683e915f7782d2 100644 --- a/chrome/installer/mini_installer/mini_installer.cc +++ b/chrome/installer/mini_installer/mini_installer.cc @@ -527,6 +527,7 @@ ProcessExitResult RunSetup(const Configuration& configuration, diff --git a/patches/chrome-installer-util-BUILD.gn.patch b/patches/chrome-installer-util-BUILD.gn.patch index 2b34e4977d8f..394edbdfec10 100644 --- a/patches/chrome-installer-util-BUILD.gn.patch +++ b/patches/chrome-installer-util-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/installer/util/BUILD.gn b/chrome/installer/util/BUILD.gn -index 88cc5d8d6bac4cf2a18394e7217e08a8474ff6af..6553edb21c00cc45bd568f802b0bea677c2bf244 100644 +index 4d66944fd8a99098db3083b184aed14018134064..159dbb52c7d511f5fcd6607cea7acf8d5143c5f4 100644 --- a/chrome/installer/util/BUILD.gn +++ b/chrome/installer/util/BUILD.gn -@@ -222,7 +222,20 @@ generate_embedded_i18n("generate_strings") { +@@ -232,7 +232,20 @@ generate_embedded_i18n("generate_strings") { output_file_name_base = "installer_util_strings" diff --git a/patches/chrome-renderer-BUILD.gn.patch b/patches/chrome-renderer-BUILD.gn.patch index 1156167af11c..6e651823bcc5 100644 --- a/patches/chrome-renderer-BUILD.gn.patch +++ b/patches/chrome-renderer-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn -index cbf9a60c385e47199879839f87c68df637494b69..ec8d1c45f64bd51958998ba35691d22ff3cc6fbe 100644 +index ce49b59249865391e199bf88480b156cb10cd11d..4957f200d6c12381c59123625bc64ae413faefab 100644 --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -195,6 +195,7 @@ static_library("renderer") { +@@ -202,6 +202,7 @@ static_library("renderer") { "//v8", ] diff --git a/patches/chrome-renderer-chrome_content_renderer_client.cc.patch b/patches/chrome-renderer-chrome_content_renderer_client.cc.patch index ca37beb07dc3..cc0433e645f4 100644 --- a/patches/chrome-renderer-chrome_content_renderer_client.cc.patch +++ b/patches/chrome-renderer-chrome_content_renderer_client.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc -index eb6e5d353b3333e4e4f474badebc67c672bf84a7..2d017884f8f158458c32a9f04572c707ee445d6a 100644 +index c9852764a59cb37f312978d8aa14ec51c308502b..e38fb9970fb6a931c96bdc6e5bafc9c73f0adb42 100644 --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -485,7 +485,7 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -487,7 +487,7 @@ void ChromeContentRendererClient::RenderFrameCreated( ChromeExtensionsRendererClient::GetInstance()->extension_dispatcher()); #endif content_settings::ContentSettingsAgentImpl* content_settings = diff --git a/patches/chrome-renderer-chrome_content_renderer_client.h.patch b/patches/chrome-renderer-chrome_content_renderer_client.h.patch index 565a209cf456..681b0148ddba 100644 --- a/patches/chrome-renderer-chrome_content_renderer_client.h.patch +++ b/patches/chrome-renderer-chrome_content_renderer_client.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h -index 066a1a0690c013ffdb8ee043f8489e250ac430f0..3b974e020afeab4ff66995b377f8b16e0c281de4 100644 +index b5f29c1f2193dfd0f72ab238c9474dc5a20ee235..ac79503fb5a6b16d77f7ec91a0565b289374f421 100644 --- a/chrome/renderer/chrome_content_renderer_client.h +++ b/chrome/renderer/chrome_content_renderer_client.h -@@ -232,6 +232,7 @@ class ChromeContentRendererClient +@@ -229,6 +229,7 @@ class ChromeContentRendererClient #endif private: diff --git a/patches/chrome-renderer-worker_content_settings_client.h.patch b/patches/chrome-renderer-worker_content_settings_client.h.patch index 9268ecf4a7d0..7b76fd34a30e 100644 --- a/patches/chrome-renderer-worker_content_settings_client.h.patch +++ b/patches/chrome-renderer-worker_content_settings_client.h.patch @@ -1,8 +1,8 @@ diff --git a/chrome/renderer/worker_content_settings_client.h b/chrome/renderer/worker_content_settings_client.h -index a468fb993c4797525794358bab77763d46a5894b..831b766c295accb37577ac0e73ed012a0206f5c0 100644 +index a0f4e0db463ef34a3790da84d9cb960ef0a731f7..41f3e365e7127b07a9408b1e6027db1f12e9574c 100644 --- a/chrome/renderer/worker_content_settings_client.h +++ b/chrome/renderer/worker_content_settings_client.h -@@ -38,6 +38,7 @@ class WorkerContentSettingsClient : public blink::WebContentSettingsClient { +@@ -35,6 +35,7 @@ class WorkerContentSettingsClient : public blink::WebContentSettingsClient { bool AllowScriptFromSource(bool enabled_per_settings, const blink::WebURL& script_url) override; bool ShouldAutoupgradeMixedContent() override; diff --git a/patches/chrome-test-BUILD.gn.patch b/patches/chrome-test-BUILD.gn.patch index cf37c07c0931..ab8aa6e41e47 100644 --- a/patches/chrome-test-BUILD.gn.patch +++ b/patches/chrome-test-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn -index b5bec594d29a5fded3284ec41830cc6c88604b15..8b785fef73c68fba01c5df4dba7403fd7bca99bd 100644 +index ef081dc339432bc7cb4e448b2616c6f8ba5567f0..416467abd1d9989d6eedc865ad2bc79acf655a18 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -761,6 +761,7 @@ if (!is_android) { +@@ -840,6 +840,7 @@ if (!is_android) { "//v8", ] diff --git a/patches/chrome-test-base-testing_profile.cc.patch b/patches/chrome-test-base-testing_profile.cc.patch index 7e97bc3bb1c0..cd647a0f2fec 100644 --- a/patches/chrome-test-base-testing_profile.cc.patch +++ b/patches/chrome-test-base-testing_profile.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc -index 3ff369ebc25e3aa944b04a9e05bca8a315a545d1..270c8195c21f1ded5520723bfa7d83363f707f29 100644 +index 4574f3d923eff0c6c3ff5282ce52280c402f741b..607d487d803fa250906454ccfb3566a3b4c70d81 100644 --- a/chrome/test/base/testing_profile.cc +++ b/chrome/test/base/testing_profile.cc -@@ -325,6 +325,7 @@ void TestingProfile::Init() { +@@ -329,6 +329,7 @@ void TestingProfile::Init() { EnsureBrowserContextKeyedServiceFactoriesBuilt(); #if BUILDFLAG(ENABLE_SUPERVISED_USERS) diff --git a/patches/chrome-utility-BUILD.gn.patch b/patches/chrome-utility-BUILD.gn.patch index 738061009d6c..5353ac36817c 100644 --- a/patches/chrome-utility-BUILD.gn.patch +++ b/patches/chrome-utility-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn -index 591753657beba5f011b1879143591da335d97a68..6f013546df6542fa0496631337d3c5fdac250b69 100644 +index f86605d537c532c504cd17509f3de4912299c271..d6628eaa01fb5b7915e836cc6f33695777694a35 100644 --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -28,6 +28,7 @@ static_library("utility") { +@@ -35,6 +35,7 @@ static_library("utility") { public_deps = [] deps = [ diff --git a/patches/chrome-utility-importer-safari_importer.h.patch b/patches/chrome-utility-importer-safari_importer.h.patch deleted file mode 100644 index 67c361902be8..000000000000 --- a/patches/chrome-utility-importer-safari_importer.h.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/chrome/utility/importer/safari_importer.h b/chrome/utility/importer/safari_importer.h -index 1b585ea85dd695087f492224bab18056188371e7..1ea2a602771b7a9718378e05228d0a8cc3edd88d 100644 ---- a/chrome/utility/importer/safari_importer.h -+++ b/chrome/utility/importer/safari_importer.h -@@ -46,6 +46,7 @@ class SafariImporter : public Importer { - uint16_t items, - ImporterBridge* bridge) override; - -+ BRAVE_SAFARI_IMPORTER_H - private: - FRIEND_TEST_ALL_PREFIXES(SafariImporterTest, BookmarkImport); - FRIEND_TEST_ALL_PREFIXES(SafariImporterTest, diff --git a/patches/chrome-utility-services.cc.patch b/patches/chrome-utility-services.cc.patch index c2cdedeabfce..98277434094d 100644 --- a/patches/chrome-utility-services.cc.patch +++ b/patches/chrome-utility-services.cc.patch @@ -1,8 +1,8 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc -index d0a88f9e69dae1e8003d4e4515012450d72f845b..bf91ed8fd22401b2c553de99f1938faf6933099a 100644 +index 8fd970b5b092212288a1a45e0f739f231b89610c..a61344b90a0c38b65a726b34ab040a9dd9da20af 100644 --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc -@@ -324,6 +324,7 @@ mojo::ServiceFactory* GetMainThreadServiceFactory() { +@@ -325,6 +325,7 @@ mojo::ServiceFactory* GetMainThreadServiceFactory() { RunAssistantAudioDecoder, #endif #endif diff --git a/patches/components-browser_ui-site_settings-android-BUILD.gn.patch b/patches/components-browser_ui-site_settings-android-BUILD.gn.patch index ebd0b0343b49..601149d6e0e4 100644 --- a/patches/components-browser_ui-site_settings-android-BUILD.gn.patch +++ b/patches/components-browser_ui-site_settings-android-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn -index 5b6f9ff2945b0303e51fe45f88943c8da9227b98..2ca544bf887da522ac8458182ce1126c1c944d17 100644 +index 13c38d3bd5fde5109f6eb24889318ec0eb222b23..99065265f4220d5b12f1b20be08f6a63b00ef90a 100644 --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -74,6 +74,7 @@ android_library("java") { +@@ -75,6 +75,7 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", ] @@ -10,10 +10,9 @@ index 5b6f9ff2945b0303e51fe45f88943c8da9227b98..2ca544bf887da522ac8458182ce1126c annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] resources_package = "org.chromium.components.browser_ui.site_settings" deps = [ -@@ -211,5 +212,6 @@ android_resources("java_resources") { +@@ -213,4 +214,5 @@ android_resources("java_resources") { "//components/permissions/android:java_resources", "//third_party/android_deps:android_support_v7_appcompat_java", ] + deps += brave_components_browser_ui_site_settings_android_java_resources_deps sources += brave_components_browser_ui_site_settings_android_java_resources - create_srcjar = false } diff --git a/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch b/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch index ccd830cb936c..7313cebca8ee 100644 --- a/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch +++ b/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch @@ -1,8 +1,8 @@ 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 -index f66cb860725399e86f8b6692580c15e46df98085..5fb072b3d42452c35ff81d94f1dcc3d1d0f40770 100644 +index 76eb6b5020192a018956880cb486e606795af8ed..4cf557f875bb231514a3e10ffd9f7f8d43b6955e 100644 --- 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 -@@ -441,7 +441,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment +@@ -387,7 +387,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment if (queryHasChanged) getInfoForOrigins(); return true; } diff --git a/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SiteSettings.java.patch b/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SiteSettings.java.patch index 59ea89fee3c2..a3edc3da85fb 100644 --- a/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SiteSettings.java.patch +++ b/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SiteSettings.java.patch @@ -1,8 +1,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java -index 2c75d1125f0aa295fec3949e732bf54be696c3de..aea1cf818a93661e4e064a6aa9aa81427d63073e 100644 +index 969b237d10b01d63813e0b00577f7c4fdd0bb0a3..a45603b7b9d654d3e326762f4eb8a0d00987b5bd 100644 --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java -@@ -23,7 +23,7 @@ import org.chromium.components.user_prefs.UserPrefs; +@@ -24,7 +24,7 @@ import org.chromium.components.user_prefs.UserPrefs; * browser-wide. */ public class SiteSettings diff --git a/patches/components-component_updater-component_updater_service.h.patch b/patches/components-component_updater-component_updater_service.h.patch index 306b1936304d..eb2b3c0fb0a7 100644 --- a/patches/components-component_updater-component_updater_service.h.patch +++ b/patches/components-component_updater-component_updater_service.h.patch @@ -1,5 +1,5 @@ diff --git a/components/component_updater/component_updater_service.h b/components/component_updater/component_updater_service.h -index c98bc5da30406725a0d20e64d7b9c38004fc56c0..f4c2c7c0f65e567afe8547427d9f72472a550b7e 100644 +index f926034a2c86b5bc7c826683de67ff56bec7e21c..418974f2071df6fcfa6adf082e4a7aac2c9afbd5 100644 --- a/components/component_updater/component_updater_service.h +++ b/components/component_updater/component_updater_service.h @@ -162,6 +162,7 @@ class OnDemandUpdater { diff --git a/patches/components-content_settings-browser-page_specific_content_settings.cc.patch b/patches/components-content_settings-browser-page_specific_content_settings.cc.patch index 8434b9fad646..16ac25882a87 100644 --- a/patches/components-content_settings-browser-page_specific_content_settings.cc.patch +++ b/patches/components-content_settings-browser-page_specific_content_settings.cc.patch @@ -1,5 +1,5 @@ diff --git a/components/content_settings/browser/page_specific_content_settings.cc b/components/content_settings/browser/page_specific_content_settings.cc -index 7da0c1acfdc39cd7c226b05678910801b9d7e805..888ea24176b6466e973d3db16339b5050dff1217 100644 +index 4570fb4ce1f099aba375338b147e93e307754589..8a451059acf51364b41bfd0d04ff3954a91d784b 100644 --- a/components/content_settings/browser/page_specific_content_settings.cc +++ b/components/content_settings/browser/page_specific_content_settings.cc @@ -493,6 +493,7 @@ bool PageSpecificContentSettings::IsContentBlocked( diff --git a/patches/components-content_settings-core-browser-BUILD.gn.patch b/patches/components-content_settings-core-browser-BUILD.gn.patch index 14f4b2466ea9..7e76bc60c4cd 100644 --- a/patches/components-content_settings-core-browser-BUILD.gn.patch +++ b/patches/components-content_settings-core-browser-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn -index 411368e75877d0cfaafd65846bad99be676eef72..4ce51717cc74901a28ccef1ae1a60199fcc53028 100644 +index 5ce9ad00c2c570c8d5c93cee2f3c9036749c4ebe..29deabeacaf6d7c8cb03d8c69ea85acb03b5b585 100644 --- a/components/content_settings/core/browser/BUILD.gn +++ b/components/content_settings/core/browser/BUILD.gn -@@ -66,6 +66,7 @@ static_library("browser") { +@@ -65,6 +65,7 @@ static_library("browser") { "//services/preferences/public/cpp", "//url", ] diff --git a/patches/components-content_settings-core-browser-content_settings_registry.cc.patch b/patches/components-content_settings-core-browser-content_settings_registry.cc.patch index 7d25dbbae920..cf52e598e927 100644 --- a/patches/components-content_settings-core-browser-content_settings_registry.cc.patch +++ b/patches/components-content_settings-core-browser-content_settings_registry.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc -index c52ece770230e43a277329265502f20d11af7ce4..15cdf8d462a03a53c5fa8bf6e8277515b04f7e8b 100644 +index 24fdb2c10f985b68b00dfb981c4d1571574ad977..0ff133d53a6f764eb7d3443070b16dd3c9b303c1 100644 --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -611,6 +611,7 @@ void ContentSettingsRegistry::Init() { +@@ -621,6 +621,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, ContentSettingsInfo::PERSISTENT, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); diff --git a/patches/components-content_settings-core-common-content_settings.cc.patch b/patches/components-content_settings-core-common-content_settings.cc.patch index 82863e86459d..9086ec54ed30 100644 --- a/patches/components-content_settings-core-common-content_settings.cc.patch +++ b/patches/components-content_settings-core-common-content_settings.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/components/content_settings/core/common/content_settings.cc -index fed84cf57ac87df1c82d81c7b9ef9e7f7b0f0c63..93bbe7d94af08a74886f40ed1c403e3d5cc73f6e 100644 +index c6f6ff7ca3714e9f13f6694d446a34b9d8e65ea3..74b4f7b1bbcdf1573e1269cadebc0d5c61fd936c 100644 --- a/components/content_settings/core/common/content_settings.cc +++ b/components/content_settings/core/common/content_settings.cc -@@ -178,6 +178,7 @@ bool RendererContentSettingRules::IsRendererContentSetting( +@@ -179,6 +179,7 @@ bool RendererContentSettingRules::IsRendererContentSetting( content_type == ContentSettingsType::JAVASCRIPT || content_type == ContentSettingsType::CLIENT_HINTS || content_type == ContentSettingsType::POPUPS || diff --git a/patches/components-content_settings-core-common-content_settings_mojom_traits.h.patch b/patches/components-content_settings-core-common-content_settings_mojom_traits.h.patch index 3d7723af1ee3..ed55d9ec68d8 100644 --- a/patches/components-content_settings-core-common-content_settings_mojom_traits.h.patch +++ b/patches/components-content_settings-core-common-content_settings_mojom_traits.h.patch @@ -1,8 +1,8 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h -index 7ffaa9b4ec4338ead98b6d30ac188c73e3b07542..5fe94e46719386dfe3c2cc5c137109b58861871e 100644 +index e58b9a69537b2e49c90504fbdfe7e3444e853772..fea7416c7ada6702a2001afe6fb05d8d35579c07 100644 --- a/components/content_settings/core/common/content_settings_mojom_traits.h +++ b/components/content_settings/core/common/content_settings_mojom_traits.h -@@ -147,6 +147,7 @@ struct StructTraits< +@@ -148,6 +148,7 @@ struct StructTraits< static bool Read( content_settings::mojom::RendererContentSettingRulesDataView data, RendererContentSettingRules* out); diff --git a/patches/components-content_settings-renderer-content_settings_agent_impl.cc.patch b/patches/components-content_settings-renderer-content_settings_agent_impl.cc.patch index 7d83f839ccc9..f49e793f1984 100644 --- a/patches/components-content_settings-renderer-content_settings_agent_impl.cc.patch +++ b/patches/components-content_settings-renderer-content_settings_agent_impl.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc -index 450005f9fc0b4378da7f21731f2722565cf011ad..87ffeec0fb72d5a4a360a661c19cd9c760538bcc 100644 +index 20ae512af8064faf5b8a7364ebd631dafb15f3b0..c5ff13fcff0aa39dbbb4c121919290537f681be1 100644 --- a/components/content_settings/renderer/content_settings_agent_impl.cc +++ b/components/content_settings/renderer/content_settings_agent_impl.cc -@@ -468,6 +468,7 @@ bool ContentSettingsAgentImpl::IsWhitelistedForContentSettings() const { +@@ -483,6 +483,7 @@ bool ContentSettingsAgentImpl::IsWhitelistedForContentSettings() const { const WebDocument& document = render_frame()->GetWebFrame()->GetDocument(); WebSecurityOrigin origin = document.GetSecurityOrigin(); WebURL document_url = document.Url(); diff --git a/patches/components-content_settings-renderer-content_settings_agent_impl.h.patch b/patches/components-content_settings-renderer-content_settings_agent_impl.h.patch index d45170f1f6dc..89b8b8a3924f 100644 --- a/patches/components-content_settings-renderer-content_settings_agent_impl.h.patch +++ b/patches/components-content_settings-renderer-content_settings_agent_impl.h.patch @@ -1,8 +1,8 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h -index 7dd094e9329cff4cdac570f34fd3991320dbadce..5c75b519ef3dbb631ccd5da4f1a0f38fa366cdd2 100644 +index 41dcaac27827b1a8001ea57c5f6f764ec6e129d9..02a499417da90842d2eef4af6ee9fbb35fdd518b 100644 --- a/components/content_settings/renderer/content_settings_agent_impl.h +++ b/components/content_settings/renderer/content_settings_agent_impl.h -@@ -117,6 +117,7 @@ class ContentSettingsAgentImpl +@@ -115,6 +115,7 @@ class ContentSettingsAgentImpl const blink::WebFrame* frame, const blink::WebURL& secondary_url); diff --git a/patches/components-download-internal-common-download_item_impl.cc.patch b/patches/components-download-internal-common-download_item_impl.cc.patch index e424c2951ea4..1593d86563eb 100644 --- a/patches/components-download-internal-common-download_item_impl.cc.patch +++ b/patches/components-download-internal-common-download_item_impl.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/download/internal/common/download_item_impl.cc b/components/download/internal/common/download_item_impl.cc -index 8a474c493b8081996b2899a29201b1c143dd77cf..a3803eb6267cbc76da49b6594323b6b3a3bb757d 100644 +index dfe701efa10eeec2bcc4b11a22f7e61952732a03..dedf2dc88a8a1250d314abd20ddc892bfd93543e 100644 --- a/components/download/internal/common/download_item_impl.cc +++ b/components/download/internal/common/download_item_impl.cc -@@ -1973,8 +1973,8 @@ void DownloadItemImpl::OnDownloadCompleting() { +@@ -1959,8 +1959,8 @@ void DownloadItemImpl::OnDownloadCompleting() { base::Unretained(download_file_.get()), GetTargetFilePath(), delegate_->GetApplicationClientIdForFileScanning(), diff --git a/patches/components-external_intents-android-BUILD.gn.patch b/patches/components-external_intents-android-BUILD.gn.patch index 3966fc9409fe..aa0e2aa30650 100644 --- a/patches/components-external_intents-android-BUILD.gn.patch +++ b/patches/components-external_intents-android-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/external_intents/android/BUILD.gn b/components/external_intents/android/BUILD.gn -index 1d5981d364cb671f2d017b98fbf9de2df1fd730d..3743c491f7861747bccf8cfc50b4ed05403a4b54 100644 +index 2eccc0ef9a0add5185cb474d8803b0588519c817..82a87d900968a1b8764fe192e67ca62f85c84d42 100644 --- a/components/external_intents/android/BUILD.gn +++ b/components/external_intents/android/BUILD.gn -@@ -65,6 +65,7 @@ static_library("android") { +@@ -64,6 +64,7 @@ static_library("android") { "//components/navigation_interception", "//content/public/browser", ] diff --git a/patches/components-infobars-core-infobar_delegate.h.patch b/patches/components-infobars-core-infobar_delegate.h.patch index fe1a43c2d5cb..af99f0e3a461 100644 --- a/patches/components-infobars-core-infobar_delegate.h.patch +++ b/patches/components-infobars-core-infobar_delegate.h.patch @@ -1,11 +1,11 @@ diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h -index b1933ea71e79e354c2e69121b16852dbb55bee29..b84745adbc3cd176ad253ecb9e6b1f4653c87c0b 100644 +index 58682c1054e8f88689e0d1d904122ae54bc3cc1e..ce03649ccf0d67af71fbfa316a228da9c92483f2 100644 --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h -@@ -168,6 +168,7 @@ class InfoBarDelegate { - MIXED_CONTENT_DOWNLOAD_INFOBAR_DELEGATE_ANDROID = 98, +@@ -169,6 +169,7 @@ class InfoBarDelegate { CONDITIONAL_TAB_STRIP_INFOBAR_ANDROID = 99, LITE_MODE_HTTPS_IMAGE_COMPRESSION_INFOBAR_ANDROID = 100, + SYSTEM_INFOBAR_DELEGATE_MAC = 101, + BRAVE_INFOBAR_DELEGATE_IDENTIFIERS }; diff --git a/patches/components-omnibox-browser-BUILD.gn.patch b/patches/components-omnibox-browser-BUILD.gn.patch index eb5214764b58..93bfd0a76f68 100644 --- a/patches/components-omnibox-browser-BUILD.gn.patch +++ b/patches/components-omnibox-browser-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/omnibox/browser/BUILD.gn b/components/omnibox/browser/BUILD.gn -index ce702e7dec262a0ff797235efcd5f6f3e5df3531..109692f0f8f4c354398786bc97f9620cdc749ed5 100644 +index 88dc82b07f792de9daf897f8222a3e04636eee14..f6251fb8db36ea1c9663df1b40f7b3be47da6a74 100644 --- a/components/omnibox/browser/BUILD.gn +++ b/components/omnibox/browser/BUILD.gn -@@ -250,6 +250,7 @@ static_library("browser") { +@@ -253,6 +253,7 @@ static_library("browser") { "//ui/base", "//ui/gfx", ] diff --git a/patches/components-omnibox-browser-autocomplete_controller.cc.patch b/patches/components-omnibox-browser-autocomplete_controller.cc.patch index dc552d1cc3cd..8f4def47c9bb 100644 --- a/patches/components-omnibox-browser-autocomplete_controller.cc.patch +++ b/patches/components-omnibox-browser-autocomplete_controller.cc.patch @@ -1,5 +1,5 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc -index 3543377a5bd0739010747232a79764d8664ae17e..9e7bc55f6ab7fb65883d75f0fc7267ef830abeaf 100644 +index 6c2eeecbb056e00bbd5c0692cf40f066531e0c0f..0ab839ba80e762429a583fe4dcca6c8462007a1e 100644 --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc @@ -261,6 +261,7 @@ AutocompleteController::AutocompleteController( diff --git a/patches/components-omnibox-browser-omnibox_edit_model.cc.patch b/patches/components-omnibox-browser-omnibox_edit_model.cc.patch index 1d76d625339a..78d747d18b88 100644 --- a/patches/components-omnibox-browser-omnibox_edit_model.cc.patch +++ b/patches/components-omnibox-browser-omnibox_edit_model.cc.patch @@ -1,5 +1,5 @@ diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc -index b23a5067e79553117614a2857d13e2275ca3a131..59fcf7bfd65155245f82e42d46fc358cac05bf5d 100644 +index 4bb2750730e06fbb91e2b6259fca34cc19cc84cc..1cb4b19814be131257c30951a7f32b800a476444 100644 --- a/components/omnibox/browser/omnibox_edit_model.cc +++ b/components/omnibox/browser/omnibox_edit_model.cc @@ -371,6 +371,7 @@ void OmniboxEditModel::AdjustTextForCopy(int sel_min, diff --git a/patches/components-page_info-BUILD.gn.patch b/patches/components-page_info-BUILD.gn.patch index d0e8f47623b9..5e23d62e5ad0 100644 --- a/patches/components-page_info-BUILD.gn.patch +++ b/patches/components-page_info-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/page_info/BUILD.gn b/components/page_info/BUILD.gn -index 8f6fbc29e086c4c33626552c2f5d9caa18a0c35c..cf29aa2ea6bf4ccb0040ce7f584775e7841667e6 100644 +index 102b85b1bca45815426cee755c13a13674a52caa..59ffb14e2e9738c2e7dd6176643dc8e55d900c77 100644 --- a/components/page_info/BUILD.gn +++ b/components/page_info/BUILD.gn -@@ -39,6 +39,7 @@ static_library("page_info") { +@@ -41,6 +41,7 @@ static_library("page_info") { "//services/device/public/cpp:device_features", "//services/metrics/public/cpp:ukm_builders", ] diff --git a/patches/components-page_info-page_info.cc.patch b/patches/components-page_info-page_info.cc.patch index a639e9bf03f8..db18cc2cfbc0 100644 --- a/patches/components-page_info-page_info.cc.patch +++ b/patches/components-page_info-page_info.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc -index 08a84c7ff5ebf00cd460b5a914edaa67773e1811..33dc8ec45065a96033f790bdc9b78a73182aaec5 100644 +index 73f62f4016ddf7d10258a230c732c21ffe18d92e..cfad55ca0baac6536db0cc75f56838ee9ee5ea38 100644 --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -967,6 +967,7 @@ void PageInfo::PresentSitePermissions() { +@@ -974,6 +974,7 @@ void PageInfo::PresentSitePermissions() { } } diff --git a/patches/components-page_info-page_info_ui.cc.patch b/patches/components-page_info-page_info_ui.cc.patch index 0a6dfe68ab74..aae67cdd5f48 100644 --- a/patches/components-page_info-page_info_ui.cc.patch +++ b/patches/components-page_info-page_info_ui.cc.patch @@ -1,9 +1,9 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_info_ui.cc -index 87d77aa394f81887d8a4923fbd4abaca8ed8631c..71dd781811ff7c547cd7d77c118b72d3d4e07493 100644 +index 982612bcb931fd738fb2d6b857721a45d9de23ae..f6a9cb6faae2398221c5647226f58a6bdf56f0bf 100644 --- a/components/page_info/page_info_ui.cc +++ b/components/page_info/page_info_ui.cc -@@ -555,6 +555,7 @@ const gfx::ImageSkia PageInfoUI::GetPermissionIcon(const PermissionInfo& info, - SkColor related_text_color) { +@@ -554,6 +554,7 @@ const gfx::ImageSkia PageInfoUI::GetPermissionIcon( + SkColor related_text_color) { const gfx::VectorIcon* icon = &gfx::kNoneIcon; switch (info.type) { + BRAVE_PAGE_INFO_UI_GET_PERMISSION_ICON diff --git a/patches/components-password_manager-core-browser-login_database.cc.patch b/patches/components-password_manager-core-browser-login_database.cc.patch index 43903386900c..043f28b59bbb 100644 --- a/patches/components-password_manager-core-browser-login_database.cc.patch +++ b/patches/components-password_manager-core-browser-login_database.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/password_manager/core/browser/login_database.cc b/components/password_manager/core/browser/login_database.cc -index 0678cc4a96a15c2f3375b4330a8227fbe12c348c..eafc21c0b3e6c9548da0b6c1f922d017c73208fe 100644 +index e490aa5476aa81622582a2b8f616ce936b88c438..78b8ccda13ddaf7503c9f2ee5a2782e5e014ec3f 100644 --- a/components/password_manager/core/browser/login_database.cc +++ b/components/password_manager/core/browser/login_database.cc -@@ -1992,6 +1992,7 @@ FormRetrievalResult LoginDatabase::StatementToForms( +@@ -1980,6 +1980,7 @@ FormRetrievalResult LoginDatabase::StatementToForms( EncryptionResult result = InitPasswordFormFromStatement( *statement, /*decrypt_and_fill_password_value=*/true, &primary_key, new_form.get()); diff --git a/patches/components-password_manager-core-browser-password_form_filling.cc.patch b/patches/components-password_manager-core-browser-password_form_filling.cc.patch index 290689a0d8f7..9656a75ce709 100644 --- a/patches/components-password_manager-core-browser-password_form_filling.cc.patch +++ b/patches/components-password_manager-core-browser-password_form_filling.cc.patch @@ -1,8 +1,8 @@ diff --git a/components/password_manager/core/browser/password_form_filling.cc b/components/password_manager/core/browser/password_form_filling.cc -index bcc720dce57a39d7af7dbf7da62613d97d2fdd70..c0769b57a4cebdb929c3795abf97452a2fbf151b 100644 +index 7f6c5f760f5f7aa777da0689d91da4bd1416a0da..0d795a9d16eb5cd62d797bf5f39737c14a0dd917 100644 --- a/components/password_manager/core/browser/password_form_filling.cc +++ b/components/password_manager/core/browser/password_form_filling.cc -@@ -203,6 +203,9 @@ LikelyFormFilling SendFillInformationToRenderer( +@@ -202,6 +202,9 @@ LikelyFormFilling SendFillInformationToRenderer( bool wait_for_username = wait_for_username_reason != WaitForUsernameReason::kDontWait; diff --git a/patches/components-permissions-permission_request.h.patch b/patches/components-permissions-permission_request.h.patch index d16fe3a84373..ef7e39a121fb 100644 --- a/patches/components-permissions-permission_request.h.patch +++ b/patches/components-permissions-permission_request.h.patch @@ -1,11 +1,11 @@ diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h -index 9a7ae7d6505a01ccf2e4fc72a3b5c91ef6d9921e..06198e9d28907555221c5a22f9c955aadc43ede7 100644 +index 64358a516f01b2049e0228220ac19535ea5cab8b..c2a23a9d09d2855103ae866fe7e7f35e6ff10386 100644 --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -57,6 +57,7 @@ enum class PermissionRequestType { - PERMISSION_CAMERA_PAN_TILT_ZOOM = 24, +@@ -59,6 +59,7 @@ enum class PermissionRequestType { PERMISSION_WINDOW_PLACEMENT = 25, PERMISSION_FONT_ACCESS = 26, + PERMISSION_IDLE_DETECTION = 27, + BRAVE_PERMISSION_REQUEST_TYPES // NUM must be the last value in the enum. NUM diff --git a/patches/components-permissions-permission_uma_util.cc.patch b/patches/components-permissions-permission_uma_util.cc.patch index 0666226e6944..45318f9e0f09 100644 --- a/patches/components-permissions-permission_uma_util.cc.patch +++ b/patches/components-permissions-permission_uma_util.cc.patch @@ -1,5 +1,5 @@ diff --git a/components/permissions/permission_uma_util.cc b/components/permissions/permission_uma_util.cc -index a5475f3b4433c4656606b4d747fc4e21a3a0f100..4254c39723f72b9b7031be976d0ff64f7a1c9c51 100644 +index 422f18b73152d1f55f0666225e047c25cc057172..6432c79fc443b2393fe711ab043fdddb760d1a7e 100644 --- a/components/permissions/permission_uma_util.cc +++ b/components/permissions/permission_uma_util.cc @@ -50,7 +50,7 @@ namespace { @@ -11,8 +11,8 @@ index a5475f3b4433c4656606b4d747fc4e21a3a0f100..4254c39723f72b9b7031be976d0ff64f switch (type) { case PermissionRequestType::MULTIPLE: return "AudioAndVideoCapture"; -@@ -565,6 +565,7 @@ void PermissionUmaUtil::RecordPermissionAction( - base::UmaHistogramEnumeration("Permissions.Action.FontAccess", action, +@@ -589,6 +589,7 @@ void PermissionUmaUtil::RecordPermissionAction( + base::UmaHistogramEnumeration("Permissions.Action.IdleDetection", action, PermissionAction::NUM); break; + BRAVE_PERMISSIONUMAUTIL_RECORDPERMISSIONACTION diff --git a/patches/components-policy-tools-generate_policy_source.py.patch b/patches/components-policy-tools-generate_policy_source.py.patch index a1d904145230..2ce3025f405b 100644 --- a/patches/components-policy-tools-generate_policy_source.py.patch +++ b/patches/components-policy-tools-generate_policy_source.py.patch @@ -1,5 +1,5 @@ diff --git a/components/policy/tools/generate_policy_source.py b/components/policy/tools/generate_policy_source.py -index 0fed66ab13223a3a8e22eff05575eb1d8c714580..b1528fa8db854dcf4c282d8b682e7078bde712c8 100755 +index d9beb4d9c29eb14fabd213d97805144cc6d30375..b5e91b5fa90a3e42fa840b08f816c6b002da1cb3 100755 --- a/components/policy/tools/generate_policy_source.py +++ b/components/policy/tools/generate_policy_source.py @@ -42,6 +42,7 @@ PLATFORM_STRINGS = { @@ -10,7 +10,7 @@ index 0fed66ab13223a3a8e22eff05575eb1d8c714580..b1528fa8db854dcf4c282d8b682e7078 class PolicyDetails: """Parses a policy template and caches all its details.""" -@@ -351,6 +352,7 @@ def main(): +@@ -352,6 +353,7 @@ def main(): chrome_major_version = ParseVersionFile(version_path) template_file_contents = _LoadJSONFile(template_file_name) diff --git a/patches/components-search_engines-BUILD.gn.patch b/patches/components-search_engines-BUILD.gn.patch new file mode 100644 index 000000000000..6e86c37234d4 --- /dev/null +++ b/patches/components-search_engines-BUILD.gn.patch @@ -0,0 +1,12 @@ +diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn +index eb66a2d945650a81c3a3248975fb9deda036e51e..f11f019049297b7dd777a27b3a5bd4cd6a692784 100644 +--- a/components/search_engines/BUILD.gn ++++ b/components/search_engines/BUILD.gn +@@ -194,6 +194,7 @@ json_to_struct("prepopulated_engines") { + schema_file = "prepopulated_engines_schema.json" + namespace = "TemplateURLPrepopulateData" + deps = [ ":search_engine_type" ] ++ additional_sources = brave_components_search_engines_sources + } + + if (is_android) { diff --git a/patches/components-search_engines-prepopulated_engines.json.patch b/patches/components-search_engines-prepopulated_engines.json.patch index 815a7b71d8d9..92af73592913 100644 --- a/patches/components-search_engines-prepopulated_engines.json.patch +++ b/patches/components-search_engines-prepopulated_engines.json.patch @@ -1,5 +1,5 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json -index bc5fb3f15a9d0e711ac80033ef3150d23379d821..f07b13475802ce22bf94eb3955a01ed7f9bcfff4 100644 +index dc87e8a6da3996ea596a39426e0e734b49cf9133..a0f6f5b6f7cbb6e118d4c9a2bd6d20e0e7b4127e 100644 --- a/components/search_engines/prepopulated_engines.json +++ b/components/search_engines/prepopulated_engines.json @@ -91,17 +91,6 @@ diff --git a/patches/components-sync-BUILD.gn.patch b/patches/components-sync-BUILD.gn.patch index b4d63cc478f8..3240e88f17ab 100644 --- a/patches/components-sync-BUILD.gn.patch +++ b/patches/components-sync-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/sync/BUILD.gn b/components/sync/BUILD.gn -index abbe13bdd15c0558e0014696de277af5f92a9866..d0f6e94e1f8927d0c0ef01a0ab1616dd64381813 100644 +index 01059c3ee520e42892d94620a898b341c0f08882..897b5ca70e401c94229794966e5c5ea445730635 100644 --- a/components/sync/BUILD.gn +++ b/components/sync/BUILD.gn -@@ -305,6 +305,7 @@ static_library("rest_of_sync") { +@@ -288,6 +288,7 @@ static_library("rest_of_sync") { "nigori/pending_local_nigori_commit.cc", "nigori/pending_local_nigori_commit.h", ] diff --git a/patches/components-sync-driver-BUILD.gn.patch b/patches/components-sync-driver-BUILD.gn.patch index 390eed9099ac..7586261c6b5e 100644 --- a/patches/components-sync-driver-BUILD.gn.patch +++ b/patches/components-sync-driver-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/sync/driver/BUILD.gn b/components/sync/driver/BUILD.gn -index 8baa714b0341b6164d1975a8a2cea18b21a778a9..ea6a392244751b12c9ddc160cb33ff543f796ad4 100644 +index 8476be77b63ca638fb1c41c489111a0407c1f614..6e1c329d52d96a3773388b10c31a3af415cf1c29 100644 --- a/components/sync/driver/BUILD.gn +++ b/components/sync/driver/BUILD.gn -@@ -116,6 +116,7 @@ static_library("driver") { +@@ -113,6 +113,7 @@ static_library("driver") { } configs += [ "//build/config/compiler:wexit_time_destructors" ] diff --git a/patches/components-sync-driver-profile_sync_service.h.patch b/patches/components-sync-driver-profile_sync_service.h.patch index c8bc8030b5a1..7009c5def9a4 100644 --- a/patches/components-sync-driver-profile_sync_service.h.patch +++ b/patches/components-sync-driver-profile_sync_service.h.patch @@ -1,8 +1,8 @@ diff --git a/components/sync/driver/profile_sync_service.h b/components/sync/driver/profile_sync_service.h -index 40a8b81b51a5ea3aded113b06908d6e0258cdba3..c115650342492ad38de372ab0d71a440adb1a8d7 100644 +index b809a57c5a691a043eee6b370bf123169d3b9835..cf62448fbd230a8df9796e72996741728b772012 100644 --- a/components/sync/driver/profile_sync_service.h +++ b/components/sync/driver/profile_sync_service.h -@@ -246,6 +246,7 @@ class ProfileSyncService : public SyncService, +@@ -257,6 +257,7 @@ class ProfileSyncService : public SyncService, static std::string GenerateCacheGUIDForTest(); diff --git a/patches/components-translate-core-browser-BUILD.gn.patch b/patches/components-translate-core-browser-BUILD.gn.patch index 3b6d72f9ad75..249af054ea8e 100644 --- a/patches/components-translate-core-browser-BUILD.gn.patch +++ b/patches/components-translate-core-browser-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/components/translate/core/browser/BUILD.gn b/components/translate/core/browser/BUILD.gn -index 0c629705b6dd370611bbc30db1d78e70e1a51d3e..b50781446fd1d8559085a9c79aa64ee5ca47133d 100644 +index 5198ffb0317a60e920bd31e23b68dc9f5d3e5a48..98e77e64c9a84422b23133392abdfb6f4ecc2621 100644 --- a/components/translate/core/browser/BUILD.gn +++ b/components/translate/core/browser/BUILD.gn -@@ -82,6 +82,7 @@ static_library("browser") { +@@ -85,6 +85,7 @@ static_library("browser") { ] deps += [ "//components/infobars/core" ] } diff --git a/patches/components-vector_icons-vector_icons.gni.patch b/patches/components-vector_icons-vector_icons.gni.patch index f0de81385b12..a244995651b1 100644 --- a/patches/components-vector_icons-vector_icons.gni.patch +++ b/patches/components-vector_icons-vector_icons.gni.patch @@ -1,17 +1,16 @@ diff --git a/components/vector_icons/vector_icons.gni b/components/vector_icons/vector_icons.gni -index b8ba375a6c4866b061fc8cf2659578c45f5c6be7..40c4ccbbb9017673a2cf82e6b5f4cd2e27e027bd 100644 +index 0bff996946f6d1bd82fdee1751986a73b9779529..e6362e848ddb66985b939c0927e223fbb861e69b 100644 --- a/components/vector_icons/vector_icons.gni +++ b/components/vector_icons/vector_icons.gni -@@ -40,6 +40,8 @@ template("aggregate_vector_icons") { +@@ -42,6 +42,7 @@ template("aggregate_vector_icons2") { "vector_icons.cc.template", "vector_icons.h.template", ] -+ alt_icons_dir = "//brave/vector_icons/"+ rebase_path(invoker.icon_directory, "//") -+ alt_icons_dir_rel = rebase_path(alt_icons_dir, root_build_dir) ++ alt_icons_dir = "//brave/vector_icons/" + rebase_path(invoker.icon_directory, "//") alt_icons_dir_rel = rebase_path(alt_icons_dir, root_build_dir) inputs = - rebase_path(templates + invoker.icons, ".", invoker.icon_directory) + + rebase_path(templates + invoker.sources, ".", invoker.icon_directory) + [ "//components/vector_icons/aggregate_vector_icons.py" ] -@@ -58,6 +60,7 @@ template("aggregate_vector_icons") { +@@ -60,6 +61,7 @@ template("aggregate_vector_icons2") { "--file_list={{response_file_name}}", "--output_cc=" + rebase_path(output_cc, root_build_dir), "--output_h=" + rebase_path(output_h, root_build_dir), diff --git a/patches/content-browser-permissions-permission_controller_impl.cc.patch b/patches/content-browser-permissions-permission_controller_impl.cc.patch index d33541f8fb58..5bc540b9c7a7 100644 --- a/patches/content-browser-permissions-permission_controller_impl.cc.patch +++ b/patches/content-browser-permissions-permission_controller_impl.cc.patch @@ -1,5 +1,5 @@ diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc -index 259186652ba17b85c65657865ad78a6ad997d00c..a8405e5951fc819b514788875e9084ea7625ddb7 100644 +index ddd6656e035c4448905c7d9beb0896a13ad17ad0..c5dd4d3bbde92b939a17dc0c6d409070363feb39 100644 --- a/content/browser/permissions/permission_controller_impl.cc +++ b/content/browser/permissions/permission_controller_impl.cc @@ -67,6 +67,7 @@ PermissionToSchedulingFeature(PermissionType permission_name) { diff --git a/patches/content-browser-frame_host-navigation_controller_impl.cc.patch b/patches/content-browser-renderer_host-navigation_controller_impl.cc.patch similarity index 65% rename from patches/content-browser-frame_host-navigation_controller_impl.cc.patch rename to patches/content-browser-renderer_host-navigation_controller_impl.cc.patch index 604acfeb1c04..bb9e6b4260d9 100644 --- a/patches/content-browser-frame_host-navigation_controller_impl.cc.patch +++ b/patches/content-browser-renderer_host-navigation_controller_impl.cc.patch @@ -1,8 +1,8 @@ -diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc -index 5735af8289f2e23c22135485ceb6d54cee298f74..271bf406b185a9525e5f1dc54a9c863f575fc82d 100644 ---- a/content/browser/frame_host/navigation_controller_impl.cc -+++ b/content/browser/frame_host/navigation_controller_impl.cc -@@ -3025,16 +3025,17 @@ void NavigationControllerImpl::NavigateWithoutEntry( +diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc +index 18f5da7bc5953282e72933fffd7e37bbf77bfb31..2fc15cdbf3a213792536cd7f2fcd2d550dbb5573 100644 +--- a/content/browser/renderer_host/navigation_controller_impl.cc ++++ b/content/browser/renderer_host/navigation_controller_impl.cc +@@ -3017,16 +3017,17 @@ void NavigationControllerImpl::NavigateWithoutEntry( // Note: we intentionally leave the pending entry in place for renderer debug // URLs, unlike the cases below where we clear it if the navigation doesn't // proceed. diff --git a/patches/content-browser-frame_host-navigation_request.cc.patch b/patches/content-browser-renderer_host-navigation_request.cc.patch similarity index 59% rename from patches/content-browser-frame_host-navigation_request.cc.patch rename to patches/content-browser-renderer_host-navigation_request.cc.patch index f7a82d0cf5b8..e4f513f97095 100644 --- a/patches/content-browser-frame_host-navigation_request.cc.patch +++ b/patches/content-browser-renderer_host-navigation_request.cc.patch @@ -1,8 +1,8 @@ -diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc -index 2c8589e2d7ddaeed9a1ba0726e0aa817f47ee0f3..304ee86f36ec9295e31152045e2f877e2c2c6358 100644 ---- a/content/browser/frame_host/navigation_request.cc -+++ b/content/browser/frame_host/navigation_request.cc -@@ -1812,6 +1812,7 @@ void NavigationRequest::OnRequestRedirected( +diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc +index ab58967aba4143d5a39f51d7bbeed0568e2fa012..9d9f4df6e32f2014cfce6f2f14292162e095791c 100644 +--- a/content/browser/renderer_host/navigation_request.cc ++++ b/content/browser/renderer_host/navigation_request.cc +@@ -1820,6 +1820,7 @@ void NavigationRequest::OnRequestRedirected( common_params_->url = redirect_info.new_url; common_params_->method = redirect_info.new_method; common_params_->referrer->url = GURL(redirect_info.new_referrer); @@ -10,7 +10,7 @@ index 2c8589e2d7ddaeed9a1ba0726e0aa817f47ee0f3..304ee86f36ec9295e31152045e2f877e common_params_->referrer = Referrer::SanitizeForRequest( common_params_->url, *common_params_->referrer); -@@ -2770,6 +2771,7 @@ void NavigationRequest::OnStartChecksComplete( +@@ -2773,6 +2774,7 @@ void NavigationRequest::OnStartChecksComplete( headers.MergeFrom(TakeModifiedRequestHeaders()); begin_params_->headers = headers.ToString(); diff --git a/patches/content-browser-webui-web_ui_impl.cc.patch b/patches/content-browser-webui-web_ui_impl.cc.patch index 96fb70431c47..7b5c6997733e 100644 --- a/patches/content-browser-webui-web_ui_impl.cc.patch +++ b/patches/content-browser-webui-web_ui_impl.cc.patch @@ -1,5 +1,5 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc -index 8bf0b601706121ac947f49bf4f7d9395314123a8..2f2d72cb31a2f4cd0f1398b1640d99c4a684a3dd 100644 +index a4f08bc2f83c6bce669cf1a6e694d98a1aac9a4e..e97c17130ffb3e691f53cab548ebdad47f71d445 100644 --- a/content/browser/webui/web_ui_impl.cc +++ b/content/browser/webui/web_ui_impl.cc @@ -89,6 +89,7 @@ WebUIImpl::WebUIImpl(WebContentsImpl* contents, RenderFrameHost* frame_host) diff --git a/patches/content-common-BUILD.gn.patch b/patches/content-common-BUILD.gn.patch index a87ed3def9f0..9723fea10c59 100644 --- a/patches/content-common-BUILD.gn.patch +++ b/patches/content-common-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn -index 262eeee4a39a32ab9259b53ee09f7b4afc1ea044..a7d511b738a9840b554764ecf490105808ac33a7 100644 +index a4d7f7df57cb9b407531ff8ad09bcce1c31d0feb..6111e75be9d92eb321ff8641b40692d3aa3d8568 100644 --- a/content/common/BUILD.gn +++ b/content/common/BUILD.gn -@@ -37,6 +37,7 @@ source_set("common") { +@@ -44,6 +44,7 @@ source_set("common") { visibility = [ "//content/*", "//tools/ipc_fuzzer/message_replay:ipc_fuzzer_replay", diff --git a/patches/content-public-browser-content_browser_client.h.patch b/patches/content-public-browser-content_browser_client.h.patch index 96fe83e4e5d4..14c3f3b67e29 100644 --- a/patches/content-public-browser-content_browser_client.h.patch +++ b/patches/content-public-browser-content_browser_client.h.patch @@ -1,8 +1,8 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 428ec871deba7faa1aee05e9e4ab58814c8cff66..47a6d989a523fe8dc0fd5356964fac0bbffe07ad 100644 +index 27b7e117b531bb370ea948e56b33d1a07eef11c6..187ebeaa802b23da9e884f33f59294e91e90cc50 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -1760,6 +1760,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1781,6 +1781,7 @@ class CONTENT_EXPORT ContentBrowserClient { virtual ui::AXMode GetAXModeForBrowserContext( BrowserContext* browser_context); diff --git a/patches/content-renderer-render_frame_impl.cc.patch b/patches/content-renderer-render_frame_impl.cc.patch index 1fa10bfcc519..ba8c92f6c88d 100644 --- a/patches/content-renderer-render_frame_impl.cc.patch +++ b/patches/content-renderer-render_frame_impl.cc.patch @@ -1,8 +1,8 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc -index c110db6a32bba72c7a89137fa39377c58f0061d8..bd82ce78d6be98b8369e8dbeb5c364fbd24c4578 100644 +index e811aec4853c1ba0dacdcad758a5bc834643d7e3..799a5504ecb259b28849dc32402581f8ef6ff912 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc -@@ -5030,7 +5030,7 @@ bool RenderFrameImpl::ShouldUseUserAgentOverride() const { +@@ -5091,7 +5091,7 @@ bool RenderFrameImpl::ShouldUseUserAgentOverride() const { // Temporarily return early and fix properly as part of // https://crbug.com/426555. if (render_view_->GetWebView()->MainFrame()->IsWebRemoteFrame()) diff --git a/patches/content-renderer-render_thread_impl.cc.patch b/patches/content-renderer-render_thread_impl.cc.patch index 144d8812df22..dc85a27c2cf3 100644 --- a/patches/content-renderer-render_thread_impl.cc.patch +++ b/patches/content-renderer-render_thread_impl.cc.patch @@ -1,8 +1,8 @@ diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc -index a6118f1f5ce16c360fae5c9a45dc853353be24df..9dc3a6d6f133aab67834543771354bbeea142393 100644 +index 91daa69bf55a0e3bcc0b67699b975efcba91aaa9..7f15139a2c84e362d95245eb88b42f405630f902 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -1012,6 +1012,7 @@ void RenderThreadImpl::InitializeWebKit(mojo::BinderMap* binders) { +@@ -1029,6 +1029,7 @@ void RenderThreadImpl::InitializeWebKit(mojo::BinderMap* binders) { } void RenderThreadImpl::RegisterSchemes() { diff --git a/patches/extensions-browser-api-web_request-web_request_api.cc.patch b/patches/extensions-browser-api-web_request-web_request_api.cc.patch index 30aa17dbefb2..e4a9b263e106 100644 --- a/patches/extensions-browser-api-web_request-web_request_api.cc.patch +++ b/patches/extensions-browser-api-web_request-web_request_api.cc.patch @@ -1,8 +1,8 @@ diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc -index 77ac9a9c242b0142ad6b9057f403af8ee496f432..05fe7913a10b142f62e135feba1c67101dc35dca 100644 +index 86dbbf736eaf59500af84735c6862e34ccadcf20..ed04c4d7d36408bff406e03c2aa7501f85afb890 100644 --- a/extensions/browser/api/web_request/web_request_api.cc +++ b/extensions/browser/api/web_request/web_request_api.cc -@@ -1291,6 +1291,9 @@ ExtensionWebRequestEventRouter::OnAuthRequired( +@@ -1301,6 +1301,9 @@ ExtensionWebRequestEventRouter::OnAuthRequired( const net::AuthChallengeInfo& auth_info, AuthCallback callback, net::AuthCredentials* credentials) { diff --git a/patches/extensions-browser-extension_event_histogram_value.h.patch b/patches/extensions-browser-extension_event_histogram_value.h.patch index a31aa51bb7d2..c5b6422c892b 100644 --- a/patches/extensions-browser-extension_event_histogram_value.h.patch +++ b/patches/extensions-browser-extension_event_histogram_value.h.patch @@ -1,11 +1,11 @@ diff --git a/extensions/browser/extension_event_histogram_value.h b/extensions/browser/extension_event_histogram_value.h -index a9076b7c61f6316b2533c2c08542d5c0b8a9707d..cd2ea03fe600358929a88fe69d3cc408103e048e 100644 +index 8459d9d4007e5e7a879a2888634c28ff3dc71bd7..761254387ba1e5966366484071abf058373f0861 100644 --- a/extensions/browser/extension_event_histogram_value.h +++ b/extensions/browser/extension_event_histogram_value.h -@@ -482,6 +482,20 @@ enum HistogramValue { - CERTIFICATEPROVIDER_ON_SIGNATURE_REQUESTED = 460, +@@ -483,6 +483,20 @@ enum HistogramValue { WINDOWS_ON_BOUNDS_CHANGED = 461, WALLPAPER_PRIVATE_ON_CLOSE_PREVIEW_WALLPAPER = 462, + PASSWORDS_PRIVATE_ON_WEAK_CREDENTIALS_CHANGED = 463, + + BRAVE_START = 600, + BRAVE_AD_BLOCKED, diff --git a/patches/extensions-browser-sandboxed_unpacker.cc.patch b/patches/extensions-browser-sandboxed_unpacker.cc.patch index 7161974350fc..cb9773b452c9 100644 --- a/patches/extensions-browser-sandboxed_unpacker.cc.patch +++ b/patches/extensions-browser-sandboxed_unpacker.cc.patch @@ -1,8 +1,8 @@ diff --git a/extensions/browser/sandboxed_unpacker.cc b/extensions/browser/sandboxed_unpacker.cc -index 2c25b111dc7090d80b6425a64fb9a6bc417f4a57..07790af26afbe4c9827ddc39303e71fb325234a6 100644 +index b2082d56c5c8baf4d6ece8b4524121eea0db3544..485e941c7a987eb243b19dc74d80af04fb16bca7 100644 --- a/extensions/browser/sandboxed_unpacker.cc +++ b/extensions/browser/sandboxed_unpacker.cc -@@ -912,6 +912,7 @@ base::Optional SandboxedUnpacker::RewriteManifestFile( +@@ -915,6 +915,7 @@ base::Optional SandboxedUnpacker::RewriteManifestFile( DCHECK(!public_key_.empty()); base::Value final_manifest = manifest.Clone(); final_manifest.SetStringKey(manifest_keys::kPublicKey, public_key_); diff --git a/patches/google_apis-google_api_keys.cc.patch b/patches/google_apis-google_api_keys.cc.patch index 3236f5818774..cf1984dbbe0f 100644 --- a/patches/google_apis-google_api_keys.cc.patch +++ b/patches/google_apis-google_api_keys.cc.patch @@ -1,8 +1,8 @@ diff --git a/google_apis/google_api_keys.cc b/google_apis/google_api_keys.cc -index 327f894be773e64e4c865e29d8830c9f207f96d8..280c4bfdfe142b1c94080414e5d3cf61910f2b4f 100644 +index 917edc5590d8a29737f40c88d194e374de633344..9b7a7b829e789106cab4b043bf0f547d0bbca2f2 100644 --- a/google_apis/google_api_keys.cc +++ b/google_apis/google_api_keys.cc -@@ -209,6 +209,7 @@ class APIKeyCache { +@@ -220,6 +220,7 @@ class APIKeyCache { #if defined(OS_IOS) void set_api_key(const std::string& api_key) { api_key_ = api_key; } #endif diff --git a/patches/media-blink-key_system_config_selector.cc.patch b/patches/media-blink-key_system_config_selector.cc.patch index b8a484caffa2..4bdd5fffa227 100644 --- a/patches/media-blink-key_system_config_selector.cc.patch +++ b/patches/media-blink-key_system_config_selector.cc.patch @@ -1,12 +1,12 @@ diff --git a/media/blink/key_system_config_selector.cc b/media/blink/key_system_config_selector.cc -index 096a6d98d3979bfd5c802b5f86ea0c982258b7a8..8fc413f7ec64ae469a59b94e12a34b3f58a1d2c4 100644 +index 1ce1cbe5525f49082380ec7809c77a1d59d15112..f75222426c3fd4cd3430df976dd99933d232033e 100644 --- a/media/blink/key_system_config_selector.cc +++ b/media/blink/key_system_config_selector.cc -@@ -912,6 +912,7 @@ void KeySystemConfigSelector::SelectConfig( +@@ -908,6 +908,7 @@ void KeySystemConfigSelector::SelectConfig( key_systems_->UpdateIfNeeded(); + KeySystems::GetInstance(); std::string key_system_ascii = key_system.Ascii(); if (!key_systems_->IsSupportedKeySystem(key_system_ascii)) { - std::move(not_supported_cb).Run(); + #if defined(OS_MAC) && defined(ARCH_CPU_ARM_FAMILY) diff --git a/patches/net-BUILD.gn.patch b/patches/net-BUILD.gn.patch index 8bce82d96fc1..3bd134f3a04c 100644 --- a/patches/net-BUILD.gn.patch +++ b/patches/net-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn -index cba943e73f5b2daaa42173163e36e21d63b3aaef..25806b62a0523628af4cc493d49a48671086417a 100644 +index c399590e2b02df92594b52ce49fb8c30c385ccff..217727123ad63c2f9ef5eaac7969675c1f8def85 100644 --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1186,6 +1186,7 @@ component("net") { +@@ -1185,6 +1185,7 @@ component("net") { "reporting/reporting_uploader.h", ] } diff --git a/patches/rlz-buildflags-buildflags.gni.patch b/patches/rlz-buildflags-buildflags.gni.patch deleted file mode 100644 index e53bf1f1fbb8..000000000000 --- a/patches/rlz-buildflags-buildflags.gni.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/rlz/buildflags/buildflags.gni b/rlz/buildflags/buildflags.gni -index f70c30ce60d9e08b6a8269d78328d5aaaef75ece..42a5b597d6b172f812042905704f9b1f4ec393e1 100644 ---- a/rlz/buildflags/buildflags.gni -+++ b/rlz/buildflags/buildflags.gni -@@ -6,6 +6,6 @@ import("//build/config/chrome_build.gni") - - # Whether we are using the rlz library or not. Platforms like Android send - # rlz codes for searches but do not use the library. --enable_rlz_support = is_win || is_apple || is_chromeos -+enable_rlz_support = false - - enable_rlz = is_chrome_branded && enable_rlz_support diff --git a/patches/sandbox-policy-win-sandbox_win.cc.patch b/patches/sandbox-policy-win-sandbox_win.cc.patch index d202ab76a695..e2301b719a38 100644 --- a/patches/sandbox-policy-win-sandbox_win.cc.patch +++ b/patches/sandbox-policy-win-sandbox_win.cc.patch @@ -1,8 +1,8 @@ diff --git a/sandbox/policy/win/sandbox_win.cc b/sandbox/policy/win/sandbox_win.cc -index d63d942c7e3e894884403d720e29b06f882a5905..47b71a2c9e3d2c21b3145cf549d21dd3e15c4043 100644 +index 8c1e3aa58b6dbc5c2be9bfa7e8d0bb8fb6125f12..70fa4c2d7b681b091d50696c117ebc96b69af657 100644 --- a/sandbox/policy/win/sandbox_win.cc +++ b/sandbox/policy/win/sandbox_win.cc -@@ -887,6 +887,7 @@ ResultCode SandboxWin::StartSandboxedProcess( +@@ -935,6 +935,7 @@ ResultCode SandboxWin::StartSandboxedProcess( launcher_process_command_line.HasSwitch(switches::kNoSandbox)) { base::LaunchOptions options; options.handles_to_inherit = handles_to_inherit; diff --git a/patches/services-network-public-cpp-BUILD.gn.patch b/patches/services-network-public-cpp-BUILD.gn.patch index e3195aa62c8b..46727eccbb9e 100644 --- a/patches/services-network-public-cpp-BUILD.gn.patch +++ b/patches/services-network-public-cpp-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/services/network/public/cpp/BUILD.gn b/services/network/public/cpp/BUILD.gn -index 039da2fdc70c7fd5920b8a0f88514950af158356..4371795d51176a5ec18232cc4f976a152ee1f08d 100644 +index 3e240ba3c7a5a48f64df5d2e6537f545ea31bb39..19dba0f569de12b9c29ca0a25f6e52910fde6865 100644 --- a/services/network/public/cpp/BUILD.gn +++ b/services/network/public/cpp/BUILD.gn -@@ -147,6 +147,7 @@ component("cpp") { +@@ -146,6 +146,7 @@ component("cpp") { "//services/proxy_resolver/public/mojom", ] diff --git a/patches/services-network-public-cpp-cors-cors.cc.patch b/patches/services-network-public-cpp-cors-cors.cc.patch index a0776232b584..8d39a9d8a97e 100644 --- a/patches/services-network-public-cpp-cors-cors.cc.patch +++ b/patches/services-network-public-cpp-cors-cors.cc.patch @@ -1,5 +1,5 @@ diff --git a/services/network/public/cpp/cors/cors.cc b/services/network/public/cpp/cors/cors.cc -index 92a86e4e6d5d7bdd6caadaf6c38a283bb618ab91..89b5b6432b4ff8dbe092a4199e77be664e9277cc 100644 +index 7189eaa1871ddd13d998e4c0ccec7c6b062d5237..e31b86440ba7738239c944f5a1566095a7354e83 100644 --- a/services/network/public/cpp/cors/cors.cc +++ b/services/network/public/cpp/cors/cors.cc @@ -449,6 +449,7 @@ bool IsCorsSafelistedHeader(const std::string& name, const std::string& value) { diff --git a/patches/third_party-blink-renderer-BUILD.gn.patch b/patches/third_party-blink-renderer-BUILD.gn.patch new file mode 100644 index 000000000000..93aaeb8391e7 --- /dev/null +++ b/patches/third_party-blink-renderer-BUILD.gn.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/blink/renderer/BUILD.gn b/third_party/blink/renderer/BUILD.gn +index 6c0289dc55ac0fabd74f2b5d65e0beb7b10ca901..9037baca99bae23ea9bc0efef14383e089ad2230 100644 +--- a/third_party/blink/renderer/BUILD.gn ++++ b/third_party/blink/renderer/BUILD.gn +@@ -8,6 +8,7 @@ if (is_clang) { + } + + visibility = [ "//third_party/blink/*" ] ++visibility += brave_blink_renderer_modules_visibility + + # arguments -------------------------------------------------------------------- + diff --git a/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch b/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch new file mode 100644 index 000000000000..97b967739464 --- /dev/null +++ b/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni +index 6cf406aec26395d294bb6790799d97e2c609b22b..65978853971403df2793e625c83b09a8367557cb 100644 +--- a/third_party/blink/renderer/bindings/generated_in_modules.gni ++++ b/third_party/blink/renderer/bindings/generated_in_modules.gni +@@ -2230,6 +2230,7 @@ generated_interface_sources_in_modules = [ + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_world_tracking_state.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_world_tracking_state.h", + ] ++generated_interface_sources_in_modules += brave_generated_interface_sources_in_modules + + # Serial + if (!is_android) { diff --git a/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch b/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch new file mode 100644 index 000000000000..d1a4fb3bb0e1 --- /dev/null +++ b/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni +index e67237dc1f60044ccbc290927078bcf0f215ae9c..d140d679026d5eb6e023884e44d5d3e47bab84af 100644 +--- a/third_party/blink/renderer/bindings/idl_in_modules.gni ++++ b/third_party/blink/renderer/bindings/idl_in_modules.gni +@@ -1027,6 +1027,7 @@ static_idl_files_in_modules = get_path_info( + "//third_party/blink/renderer/modules/xr/xr_world_tracking_state.idl", + ], + "abspath") ++static_idl_files_in_modules += get_path_info(brave_static_idl_files_in_modules, "abspath") + + # Serial + if (!is_android) { diff --git a/patches/third_party-blink-renderer-bindings-scripts-web_idl-composition_parts.py.patch b/patches/third_party-blink-renderer-bindings-scripts-web_idl-composition_parts.py.patch new file mode 100644 index 000000000000..97598402d01d --- /dev/null +++ b/patches/third_party-blink-renderer-bindings-scripts-web_idl-composition_parts.py.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py b/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py +index 5e8de89409976528f8d97d4962f9f111c6d158a1..5e685b654bb347797d78ddff8d25db14f61f4cd2 100644 +--- a/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py ++++ b/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py +@@ -157,6 +157,7 @@ class Location(object): + # Canonicalize the paths heuristically. + if filepath is not None: + index = filepath.find(self._blink_path_prefix) ++ if filepath.find(posixpath.sep + posixpath.join('brave', 'third_party', 'blink', 'renderer', '')) >= 0: index = -1 + if index >= 0: + filepath = filepath[index + 1:] + diff --git a/patches/third_party-blink-renderer-core-BUILD.gn.patch b/patches/third_party-blink-renderer-core-BUILD.gn.patch index a20fbb532487..5fd1bb3da1dc 100644 --- a/patches/third_party-blink-renderer-core-BUILD.gn.patch +++ b/patches/third_party-blink-renderer-core-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn -index b9af544e49cb0c58627f842a7b34ac2b805c4c34..f5fb3b766aa5ca2eb6c0ac612bf8173f5c7ba0de 100644 +index 7a14170592c8e587696c6ec7aaa4811d8f900a99..45edffc6512f07f4bd86af1ba43cd1271684ea31 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn -@@ -121,6 +121,7 @@ component("core") { +@@ -126,6 +126,7 @@ component("core") { visibility = [] # Allow re-assignment of list. visibility = [ "//third_party/blink/*" ] @@ -10,7 +10,7 @@ index b9af544e49cb0c58627f842a7b34ac2b805c4c34..f5fb3b766aa5ca2eb6c0ac612bf8173f # If you create a new subdirectory, make a new BUILD file for that directory # and reference it in the deps below rather than adding the sources here. -@@ -192,6 +193,7 @@ component("core") { +@@ -197,6 +198,7 @@ component("core") { "//url", "//v8", ] diff --git a/patches/third_party-blink-renderer-core-context_features-context_feature_settings.h.patch b/patches/third_party-blink-renderer-core-context_features-context_feature_settings.h.patch new file mode 100644 index 000000000000..24d512daef80 --- /dev/null +++ b/patches/third_party-blink-renderer-core-context_features-context_feature_settings.h.patch @@ -0,0 +1,12 @@ +diff --git a/third_party/blink/renderer/core/context_features/context_feature_settings.h b/third_party/blink/renderer/core/context_features/context_feature_settings.h +index 9c9a289262c01daa45e24d4cb553b7d90797f7b8..de4e8ced39169f817f6c22842013557198630137 100644 +--- a/third_party/blink/renderer/core/context_features/context_feature_settings.h ++++ b/third_party/blink/renderer/core/context_features/context_feature_settings.h +@@ -35,6 +35,7 @@ class CORE_EXPORT ContextFeatureSettings final + bool isMojoJSEnabled() const { return enable_mojo_js_; } + + void Trace(Visitor*) const override; ++ BRAVE_CONTEXT_FEATURE_SETTINGS_H_ + + private: + bool enable_mojo_js_ = false; diff --git a/patches/third_party-blink-renderer-core-dom-document.cc.patch b/patches/third_party-blink-renderer-core-dom-document.cc.patch index be82efc0aced..17ae2e7fff8e 100644 --- a/patches/third_party-blink-renderer-core-dom-document.cc.patch +++ b/patches/third_party-blink-renderer-core-dom-document.cc.patch @@ -1,5 +1,5 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc -index 74856aabf5aff72be70d4cd398fa8200dec49af4..48d763164d202bce9cef9ac1d89d0183644e3f84 100644 +index 20688b7ab11e83956cfbe2884ea79f85455c39f0..15d6ca090c591abf9640e6502d620097db1a7827 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc @@ -33,7 +33,7 @@ @@ -7,7 +7,7 @@ index 74856aabf5aff72be70d4cd398fa8200dec49af4..48d763164d202bce9cef9ac1d89d0183 // For more info, see // https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md -#pragma clang max_tokens_here 900000 -+#pragma clang max_tokens_here 2000000 ++#pragma clang max_tokens_here 2097152 #include #include diff --git a/patches/third_party-blink-renderer-core-html-canvas-canvas_async_blob_creator.cc.patch b/patches/third_party-blink-renderer-core-html-canvas-canvas_async_blob_creator.cc.patch index c0f445eed441..fdd7722febeb 100644 --- a/patches/third_party-blink-renderer-core-html-canvas-canvas_async_blob_creator.cc.patch +++ b/patches/third_party-blink-renderer-core-html-canvas-canvas_async_blob_creator.cc.patch @@ -1,5 +1,5 @@ diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc -index 14a78dbd7248fd9a8033d44a8cf604fa190faa16..ec5c30e8009b4f8f22167aa69f0c554aff62ed11 100644 +index 8158fe91b8ef21e3307106b584690139f0d022f2..9755dac25a7cb34c0d1ae10689fbedb894a44834 100644 --- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc +++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc @@ -190,6 +190,7 @@ CanvasAsyncBlobCreator::CanvasAsyncBlobCreator( diff --git a/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch b/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch index c56bc09a549a..64056213462a 100644 --- a/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch +++ b/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch @@ -1,8 +1,8 @@ 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 -index e4594c9403e35e5226c67b7f09d157480de5b7f6..766115483d2d9487756ad70dda5a7f81e1fab2db 100644 +index b2d8597ef95e2f6fc2758cdac44337ea2927c178..71607594a40d4b35758c6a65e53b7e51ac2bdf9f 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc -@@ -970,6 +970,7 @@ String HTMLCanvasElement::ToDataURLInternal( +@@ -974,6 +974,7 @@ String HTMLCanvasElement::ToDataURLInternal( scoped_refptr image_bitmap = Snapshot(source_buffer); if (image_bitmap) { diff --git a/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch b/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch index 768b6d059192..5ea1cf283a22 100644 --- a/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch +++ b/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch @@ -1,5 +1,5 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc -index b7ec37b07760fb36b577869b50f438e28b4e1ece..ddcc59bca198ce0370b273af7c01b58134995439 100644 +index 8ae33d3b689fd9888fca3861b6ac4ed18c9595bb..f6b1986e4406ac9bba6d245a710eeb953cf7c893 100644 --- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc +++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc @@ -309,6 +309,7 @@ bool AutoplayPolicy::IsGestureNeededForPlayback() const { diff --git a/patches/third_party-blink-renderer-modules-BUILD.gn.patch b/patches/third_party-blink-renderer-modules-BUILD.gn.patch index abc9dae30d00..985957767254 100644 --- a/patches/third_party-blink-renderer-modules-BUILD.gn.patch +++ b/patches/third_party-blink-renderer-modules-BUILD.gn.patch @@ -1,5 +1,5 @@ diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn -index 66d3b97751e09baf818f5087b3f4b77bce2a3e93..6da4958849aa2173e29df70213fc8aa73664da26 100644 +index 694ff382d40c3759e3cfe3a852f5b2829d43aed7..f8d424aea0156a1a12f3b280078fd8fccc283471 100644 --- a/third_party/blink/renderer/modules/BUILD.gn +++ b/third_party/blink/renderer/modules/BUILD.gn @@ -16,6 +16,7 @@ if (is_android) { @@ -10,11 +10,11 @@ index 66d3b97751e09baf818f5087b3f4b77bce2a3e93..6da4958849aa2173e29df70213fc8aa7 config("modules_implementation") { defines = [ "BLINK_MODULES_IMPLEMENTATION=1" ] -@@ -165,6 +166,7 @@ component("modules") { +@@ -166,6 +167,7 @@ component("modules") { "//third_party/blink/renderer/modules/xr", ] + sub_modules += brave_blink_sub_modules if (is_android) { sub_modules += [ "//third_party/blink/renderer/modules/remote_objects" ] - } + } else { diff --git a/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch b/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch index 4e62655f3f41..62dc4baf91fa 100644 --- a/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch +++ b/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch @@ -1,8 +1,8 @@ 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 -index 45a4034ad784d91c1d2b03619f1be2f55e922e11..1d7ab06bec6b901c52e563a69ae772f76896d3a8 100644 +index 4c512aea8daf7bbd44013157e67d90d80c962f74..a66717a0e21be9abf054bbf647cf185daa08546b 100644 --- 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 -@@ -1599,6 +1599,7 @@ ImageData* BaseRenderingContext2D::createImageData( +@@ -1577,6 +1577,7 @@ ImageData* BaseRenderingContext2D::createImageData( } ImageData* BaseRenderingContext2D::getImageData( @@ -10,7 +10,7 @@ index 45a4034ad784d91c1d2b03619f1be2f55e922e11..1d7ab06bec6b901c52e563a69ae772f7 int sx, int sy, int sw, -@@ -1686,6 +1687,7 @@ ImageData* BaseRenderingContext2D::getImageData( +@@ -1664,6 +1665,7 @@ ImageData* BaseRenderingContext2D::getImageData( return nullptr; } diff --git a/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.h.patch b/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.h.patch index 6d79d06fac49..9d7b79c6e4f3 100644 --- a/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.h.patch +++ b/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.h.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h -index a0ce8e4948f5150ca557d7b2662da7c858d95f45..a85e6c4b506bdb34e93e46fd0980514c622db4c6 100644 +index f7fc03fa5078d2de8061720ab4909bcba456d0db..cd6d12b4512a893d44e29fa743088cb42aec21c9 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.h -@@ -329,6 +329,7 @@ class MODULES_EXPORT BaseRenderingContext2D : public GarbageCollectedMixin, +@@ -319,6 +319,7 @@ class MODULES_EXPORT BaseRenderingContext2D : public GarbageCollectedMixin, const UsageCounters& GetUsage(); diff --git a/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.cc.patch b/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.cc.patch index 33aa10110bea..ff72d083abef 100644 --- a/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.cc.patch +++ b/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.cc.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc -index 2f35115caa53f97c4fd7f00236070905db2c6a9a..043252a61496677f0a041f65b13828857459610e 100644 +index ffbbcba2fb9b3df8eec7023a5c30e0f72dbe673c..f94cd488bc8044957eaf84b561530eaeab3e5d4c 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc -@@ -824,6 +824,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { +@@ -827,6 +827,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { if (!canvas()->GetDocument().GetFrame()) return MakeGarbageCollected(); diff --git a/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch b/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch index f884bc0bfaa4..7d57e47179dc 100644 --- a/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch +++ b/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl -index 9d47e14250aca417e0f09e02a44669e674e45e00..b435a7eaab0dbb1a739b3a4f0fb1e80fe69b7870 100644 +index 9a27c3af043f0c1c8d4df93252c8cac34bee7bcc..3d53d435ed98952bed17f9cfefc3c70f607f6d8e 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl -@@ -104,9 +104,13 @@ interface CanvasRenderingContext2D { +@@ -106,9 +106,13 @@ interface CanvasRenderingContext2D { [RuntimeEnabled=Canvas2dScrollPathIntoView] void scrollPathIntoView(optional Path2D path); void clip(optional CanvasFillRule winding); void clip(Path2D path, optional CanvasFillRule winding); @@ -16,7 +16,7 @@ index 9d47e14250aca417e0f09e02a44669e674e45e00..b435a7eaab0dbb1a739b3a4f0fb1e80f boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y); // text (see also the CanvasDrawingStyles interface) -@@ -127,7 +131,7 @@ interface CanvasRenderingContext2D { +@@ -129,7 +133,7 @@ interface CanvasRenderingContext2D { // pixel manipulation [RaisesException] ImageData createImageData(ImageData imagedata); [RaisesException] ImageData createImageData([EnforceRange] long sw, [EnforceRange] long sh); diff --git a/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch b/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch index 90db323bb9cc..11daa628fec4 100644 --- a/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch +++ b/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl -index a58003a655e496c5d6051df2dc53bfe07d03b45e..274570e923ebdebbe919cf22674f7760a48322f6 100644 +index ae62768191e06361bc62f787235b5f06a1ae16f6..97a869e302f0bfc5a543b8e426a74478d7711d1f 100644 --- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl +++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl -@@ -63,10 +63,10 @@ +@@ -65,10 +65,10 @@ void stroke(Path2D path); void clip(optional CanvasFillRule winding); void clip(Path2D path, optional CanvasFillRule winding); @@ -17,7 +17,7 @@ index a58003a655e496c5d6051df2dc53bfe07d03b45e..274570e923ebdebbe919cf22674f7760 // text (see also the CanvasDrawingStyles interface) void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth); -@@ -81,7 +81,7 @@ +@@ -83,7 +83,7 @@ // pixel manipulation [RaisesException] ImageData createImageData(ImageData imagedata); [RaisesException] ImageData createImageData(long sw, long sh); diff --git a/patches/third_party-blink-renderer-modules-cookie_store-cookie_store.cc.patch b/patches/third_party-blink-renderer-modules-cookie_store-cookie_store.cc.patch index 6b60f798e312..b0e9e532e507 100644 --- a/patches/third_party-blink-renderer-modules-cookie_store-cookie_store.cc.patch +++ b/patches/third_party-blink-renderer-modules-cookie_store-cookie_store.cc.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -index ae1bd6304e44677e05a310adc4bab66446a381af..3232d69b3ef61fef326c84bc1bd8a5e85c1ed73f 100644 +index ace49af90f105d7d166e17dcefb4ac3abc8d5c74..e7abd3e788b0e1bf55e0fdae43ed760fb3a5cc83 100644 --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -@@ -86,6 +86,7 @@ base::Optional ToCanonicalCookie( +@@ -80,6 +80,7 @@ base::Optional ToCanonicalCookie( base::Time expires = options->hasExpiresNonNull() ? base::Time::FromJavaTime(options->expiresNonNull()) : base::Time(); diff --git a/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch b/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch index 46d6d8ed4bb4..d2d74b98bdde 100644 --- a/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch +++ b/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch @@ -1,12 +1,13 @@ diff --git a/third_party/blink/renderer/modules/mediastream/media_devices.cc b/third_party/blink/renderer/modules/mediastream/media_devices.cc -index 68c45c08f751b15237cf64e1e09390111181c738..f7fb88c3d78c0fce28b129ceec616d48b4d5308b 100644 +index 4958db291d8059948645122d4644af99adcb4526..7e0b472a2e2b85edbd618ec0a7fe05e0fd773262 100644 --- a/third_party/blink/renderer/modules/mediastream/media_devices.cc +++ b/third_party/blink/renderer/modules/mediastream/media_devices.cc -@@ -323,6 +323,7 @@ void MediaDevices::DevicesEnumerated( +@@ -353,6 +353,8 @@ void MediaDevices::DevicesEnumerated( } } + BRAVE_MEDIA_DEVICES_DEVICES_ENUMERATED - if (enumerate_devices_test_callback_) - std::move(enumerate_devices_test_callback_).Run(media_devices); ++ + RecordEnumeratedDevices(resolver, media_devices); + if (enumerate_devices_test_callback_) diff --git a/patches/third_party-blink-renderer-modules-modules_idl_files.gni.patch b/patches/third_party-blink-renderer-modules-modules_idl_files.gni.patch index b31e7c66ebdb..9eb7175d2c3a 100644 --- a/patches/third_party-blink-renderer-modules-modules_idl_files.gni.patch +++ b/patches/third_party-blink-renderer-modules-modules_idl_files.gni.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/modules_idl_files.gni b/third_party/blink/renderer/modules/modules_idl_files.gni -index c0aeb9ea0d6a6ad74571c7c5e43051955b29a327..db4d29cba41f050c23a50843f0dd77bc2f15ff14 100644 +index 2872dcb23d41a69c3c0dc93b7c84c2f94fa84889..c700bf05185ce47527520bf9f3e98fefeecb8092 100644 --- a/third_party/blink/renderer/modules/modules_idl_files.gni +++ b/third_party/blink/renderer/modules/modules_idl_files.gni -@@ -141,6 +141,7 @@ _idl_imports = [ +@@ -142,6 +142,7 @@ _idl_imports = [ if (!is_android) { _idl_imports += [ "//third_party/blink/renderer/modules/serial/idls.gni" ] } diff --git a/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch b/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch index 48143ab1494a..30b76daec408 100644 --- a/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch +++ b/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc -index 2d8068bf9f28ed7c5e33e7dee7003963aca89a0e..f71dd39a2070fdcb111be4a61087a9ff95f4d68a 100644 +index 9d96ae4f9c6f646685acddfdf44cb410f18a9b7a..64251ff0b4bffe36dcc6ca70214d5c5d30532a69 100644 --- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc -@@ -5062,6 +5062,7 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state, +@@ -5081,6 +5081,7 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state, GLenum pname) { if (isContextLost()) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -10,7 +10,7 @@ index 2d8068bf9f28ed7c5e33e7dee7003963aca89a0e..f71dd39a2070fdcb111be4a61087a9ff switch (pname) { case GL_SHADING_LANGUAGE_VERSION: { return WebGLAny( -@@ -5603,6 +5604,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( +@@ -5622,6 +5623,7 @@ ScriptValue WebGL2RenderingContextBase::getFramebufferAttachmentParameter( if (isContextLost() || !ValidateGetFramebufferAttachmentParameterFunc( kFunctionName, target, attachment)) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -18,7 +18,7 @@ index 2d8068bf9f28ed7c5e33e7dee7003963aca89a0e..f71dd39a2070fdcb111be4a61087a9ff WebGLFramebuffer* framebuffer_binding = GetFramebufferBinding(target); DCHECK(!framebuffer_binding || framebuffer_binding->Object()); -@@ -5815,6 +5817,7 @@ ScriptValue WebGL2RenderingContextBase::getTexParameter( +@@ -5834,6 +5836,7 @@ ScriptValue WebGL2RenderingContextBase::getTexParameter( GLenum pname) { if (isContextLost() || !ValidateTextureBinding("getTexParameter", target)) return ScriptValue::CreateNull(script_state->GetIsolate()); diff --git a/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch b/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch index c10c018d83f7..1ef762055f16 100644 --- a/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch +++ b/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch @@ -1,8 +1,8 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb1efc65be 100644 +index 57ae533584ba039421c22a814c11d46603c57197..95e28d3043b9eb332ba0c562304d38f866e18ea3 100644 --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -2919,6 +2919,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveAttrib( +@@ -2956,6 +2956,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveAttrib( GLuint index) { if (!ValidateWebGLProgramOrShader("getActiveAttrib", program)) return nullptr; @@ -10,7 +10,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb GLuint program_id = ObjectNonZero(program); GLint max_name_length = -1; ContextGL()->GetProgramiv(program_id, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, -@@ -2950,6 +2951,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform( +@@ -2987,6 +2988,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform( GLuint index) { if (!ValidateWebGLProgramOrShader("getActiveUniform", program)) return nullptr; @@ -18,7 +18,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb GLuint program_id = ObjectNonZero(program); GLint max_name_length = -1; ContextGL()->GetProgramiv(program_id, GL_ACTIVE_UNIFORM_MAX_LENGTH, -@@ -2980,6 +2982,7 @@ base::Optional>> +@@ -3017,6 +3019,7 @@ base::Optional>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program) { if (!ValidateWebGLProgramOrShader("getAttachedShaders", program)) return base::nullopt; @@ -26,7 +26,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb HeapVector> shader_objects; const GLenum kShaderType[] = {GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, -@@ -2996,6 +2999,7 @@ GLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program, +@@ -3033,6 +3036,7 @@ GLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program, const String& name) { if (!ValidateWebGLProgramOrShader("getAttribLocation", program)) return -1; @@ -34,7 +34,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (!ValidateLocationLength("getAttribLocation", name)) return -1; if (!ValidateString("getAttribLocation", name)) -@@ -3029,6 +3033,7 @@ ScriptValue WebGLRenderingContextBase::getBufferParameter( +@@ -3066,6 +3070,7 @@ ScriptValue WebGLRenderingContextBase::getBufferParameter( GLenum pname) { if (isContextLost() || !ValidateBufferTarget("getBufferParameter", target)) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -42,7 +42,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb switch (pname) { case GL_BUFFER_USAGE: { -@@ -3165,6 +3170,7 @@ ScriptValue WebGLRenderingContextBase::getFramebufferAttachmentParameter( +@@ -3202,6 +3207,7 @@ ScriptValue WebGLRenderingContextBase::getFramebufferAttachmentParameter( target, attachment)) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -50,23 +50,23 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (!framebuffer_binding_ || !framebuffer_binding_->Object()) { SynthesizeGLError(GL_INVALID_OPERATION, "getFramebufferAttachmentParameter", "no framebuffer bound"); -@@ -3457,6 +3463,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, +@@ -3596,6 +3602,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, "invalid parameter name, OES_standard_derivatives not enabled"); return ScriptValue::CreateNull(script_state->GetIsolate()); case WebGLDebugRendererInfo::kUnmaskedRendererWebgl: + BRAVE_WEBGL_GET_PARAMETER_UNMASKED_RENDERER - if (ExtensionEnabled(kWebGLDebugRendererInfoName)) - return WebGLAny(script_state, - String(ContextGL()->GetString(GL_RENDERER))); -@@ -3465,6 +3472,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, + if (ExtensionEnabled(kWebGLDebugRendererInfoName)) { + if (IdentifiabilityStudySettings::Get()->IsTypeAllowed( + blink::IdentifiableSurface::Type::kWebGLParameter)) { +@@ -3611,6 +3618,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, "invalid parameter name, WEBGL_debug_renderer_info not enabled"); return ScriptValue::CreateNull(script_state->GetIsolate()); case WebGLDebugRendererInfo::kUnmaskedVendorWebgl: + BRAVE_WEBGL_GET_PARAMETER_UNMASKED_VENDOR - if (ExtensionEnabled(kWebGLDebugRendererInfoName)) - return WebGLAny(script_state, - String(ContextGL()->GetString(GL_VENDOR))); -@@ -3546,6 +3554,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter( + if (ExtensionEnabled(kWebGLDebugRendererInfoName)) { + if (IdentifiabilityStudySettings::Get()->IsTypeAllowed( + blink::IdentifiableSurface::Type::kWebGLParameter)) { +@@ -3699,6 +3707,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter( ScriptState* script_state, WebGLProgram* program, GLenum pname) { @@ -74,7 +74,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (!ValidateWebGLProgramOrShader("getProgramParamter", program)) { return ScriptValue::CreateNull(script_state->GetIsolate()); } -@@ -3607,6 +3616,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter( +@@ -3760,6 +3769,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter( String WebGLRenderingContextBase::getProgramInfoLog(WebGLProgram* program) { if (!ValidateWebGLProgramOrShader("getProgramInfoLog", program)) return String(); @@ -82,7 +82,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb GLStringQuery query(ContextGL()); return query.Run(ObjectNonZero(program)); } -@@ -3617,6 +3627,7 @@ ScriptValue WebGLRenderingContextBase::getRenderbufferParameter( +@@ -3770,6 +3780,7 @@ ScriptValue WebGLRenderingContextBase::getRenderbufferParameter( GLenum pname) { if (isContextLost()) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -90,7 +90,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (target != GL_RENDERBUFFER) { SynthesizeGLError(GL_INVALID_ENUM, "getRenderbufferParameter", "invalid target"); -@@ -3662,6 +3673,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter( +@@ -3814,6 +3825,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter( ScriptState* script_state, WebGLShader* shader, GLenum pname) { @@ -98,7 +98,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (!ValidateWebGLProgramOrShader("getShaderParameter", shader)) { return ScriptValue::CreateNull(script_state->GetIsolate()); } -@@ -3693,6 +3705,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter( +@@ -3845,6 +3857,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter( String WebGLRenderingContextBase::getShaderInfoLog(WebGLShader* shader) { if (!ValidateWebGLProgramOrShader("getShaderInfoLog", shader)) return String(); @@ -106,15 +106,15 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb GLStringQuery query(ContextGL()); return query.Run(ObjectNonZero(shader)); } -@@ -3723,6 +3736,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat( +@@ -3875,6 +3888,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat( GLint precision = 0; ContextGL()->GetShaderPrecisionFormat(shader_type, precision_type, range, &precision); + BRAVE_WEBGL_RENDERING_CONTEXT_BASE_GETSHADERINFOLOG - return MakeGarbageCollected(range[0], range[1], - precision); - } -@@ -3730,6 +3744,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat( + auto* result = MakeGarbageCollected( + range[0], range[1], precision); + RecordShaderPrecisionFormatForStudy(shader_type, precision_type, result); +@@ -3884,6 +3898,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat( String WebGLRenderingContextBase::getShaderSource(WebGLShader* shader) { if (!ValidateWebGLProgramOrShader("getShaderSource", shader)) return String(); @@ -122,7 +122,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb return EnsureNotNull(shader->Source()); } -@@ -3737,6 +3752,7 @@ base::Optional> +@@ -3891,6 +3906,7 @@ base::Optional> WebGLRenderingContextBase::getSupportedExtensions() { if (isContextLost()) return base::nullopt; @@ -130,7 +130,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb Vector result; -@@ -3759,6 +3775,7 @@ ScriptValue WebGLRenderingContextBase::getTexParameter( +@@ -3913,6 +3929,7 @@ ScriptValue WebGLRenderingContextBase::getTexParameter( GLenum pname) { if (isContextLost()) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -138,7 +138,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (!ValidateTextureBinding("getTexParameter", target)) return ScriptValue::CreateNull(script_state->GetIsolate()); switch (pname) { -@@ -3793,6 +3810,7 @@ ScriptValue WebGLRenderingContextBase::getUniform( +@@ -3947,6 +3964,7 @@ ScriptValue WebGLRenderingContextBase::getUniform( const WebGLUniformLocation* uniform_location) { if (!ValidateWebGLProgramOrShader("getUniform", program)) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -146,7 +146,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb DCHECK(uniform_location); if (uniform_location->Program() != program) { SynthesizeGLError(GL_INVALID_OPERATION, "getUniform", -@@ -4073,6 +4091,7 @@ WebGLUniformLocation* WebGLRenderingContextBase::getUniformLocation( +@@ -4227,6 +4245,7 @@ WebGLUniformLocation* WebGLRenderingContextBase::getUniformLocation( const String& name) { if (!ValidateWebGLProgramOrShader("getUniformLocation", program)) return nullptr; @@ -154,7 +154,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (!ValidateLocationLength("getUniformLocation", name)) return nullptr; if (!ValidateString("getUniformLocation", name)) -@@ -4097,6 +4116,7 @@ ScriptValue WebGLRenderingContextBase::getVertexAttrib( +@@ -4251,6 +4270,7 @@ ScriptValue WebGLRenderingContextBase::getVertexAttrib( GLenum pname) { if (isContextLost()) return ScriptValue::CreateNull(script_state->GetIsolate()); @@ -162,7 +162,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb if (index >= max_vertex_attribs_) { SynthesizeGLError(GL_INVALID_VALUE, "getVertexAttrib", "index out of range"); -@@ -4174,6 +4194,7 @@ int64_t WebGLRenderingContextBase::getVertexAttribOffset(GLuint index, +@@ -4328,6 +4348,7 @@ int64_t WebGLRenderingContextBase::getVertexAttribOffset(GLuint index, GLenum pname) { if (isContextLost()) return 0; @@ -170,7 +170,7 @@ index f7874b0f6944521c0a083375321f01709e2b4d08..43c0c78d69537a27f8bc5692cb1891bb GLvoid* result = nullptr; // NOTE: If pname is ever a value that returns more than 1 element // this will corrupt memory. -@@ -4532,6 +4553,7 @@ void WebGLRenderingContextBase::ReadPixelsHelper(GLint x, +@@ -4685,6 +4706,7 @@ void WebGLRenderingContextBase::ReadPixelsHelper(GLint x, int64_t offset) { if (isContextLost()) return; diff --git a/patches/third_party-crashpad-crashpad-snapshot-win-process_snapshot_win.cc.patch b/patches/third_party-crashpad-crashpad-snapshot-win-process_snapshot_win.cc.patch index 29295511b9a8..2af766f203c1 100644 --- a/patches/third_party-crashpad-crashpad-snapshot-win-process_snapshot_win.cc.patch +++ b/patches/third_party-crashpad-crashpad-snapshot-win-process_snapshot_win.cc.patch @@ -1,5 +1,5 @@ diff --git a/third_party/crashpad/crashpad/snapshot/win/process_snapshot_win.cc b/third_party/crashpad/crashpad/snapshot/win/process_snapshot_win.cc -index cafe7b4299fbd30e22185c18138c57f1ece0b6e2..3d84ff8f8b9569969d53bf734e5c61cc7f91cee5 100644 +index 4be203326f93472916245c31d4dbe17eaf6f589d..696c01d5c2b2cf5222c89489dd556c7209e9a345 100644 --- a/third_party/crashpad/crashpad/snapshot/win/process_snapshot_win.cc +++ b/third_party/crashpad/crashpad/snapshot/win/process_snapshot_win.cc @@ -523,6 +523,7 @@ void ProcessSnapshotWin::AddMemorySnapshotForLdrLIST_ENTRY( diff --git a/patches/third_party-crashpad-crashpad-util-net-http_transport_win.cc.patch b/patches/third_party-crashpad-crashpad-util-net-http_transport_win.cc.patch index 2ae2b55c4297..2e037bc866d6 100644 --- a/patches/third_party-crashpad-crashpad-util-net-http_transport_win.cc.patch +++ b/patches/third_party-crashpad-crashpad-util-net-http_transport_win.cc.patch @@ -1,5 +1,5 @@ diff --git a/third_party/crashpad/crashpad/util/net/http_transport_win.cc b/third_party/crashpad/crashpad/util/net/http_transport_win.cc -index 06ecc4f38f6d3e85f157a7210d363c924b0d3da9..88be195051a00c8500f793b4e175d898a30101f8 100644 +index 9618fbefbd53ca891a6651e7f2b0073aec9551a2..0766cddb38fb61eaaa5d0a49644632eb3a9a5678 100644 --- a/third_party/crashpad/crashpad/util/net/http_transport_win.cc +++ b/third_party/crashpad/crashpad/util/net/http_transport_win.cc @@ -156,6 +156,8 @@ bool HTTPTransportWin::ExecuteSynchronously(std::string* response_body) { diff --git a/patches/third_party-widevine-cdm-widevine.gni.patch b/patches/third_party-widevine-cdm-widevine.gni.patch index 03addceaea09..b3e8d9865f11 100644 --- a/patches/third_party-widevine-cdm-widevine.gni.patch +++ b/patches/third_party-widevine-cdm-widevine.gni.patch @@ -1,8 +1,8 @@ diff --git a/third_party/widevine/cdm/widevine.gni b/third_party/widevine/cdm/widevine.gni -index ddf5c9475a8dbc03d6150b19e47df782290c5161..19b1e2dad089f893df1ccd74534b4d126d6e2e8c 100644 +index 036d03e36a13b7947f0a3cc1dfdc81823b080645..ab3eaf80f7f711d901d76cfb445afcec73c5ed51 100644 --- a/third_party/widevine/cdm/widevine.gni +++ b/third_party/widevine/cdm/widevine.gni -@@ -41,6 +41,8 @@ enable_widevine_cdm_component = +@@ -42,6 +42,8 @@ enable_widevine_cdm_component = # Widevine CDM is bundled as part of Google Chrome builds. bundle_widevine_cdm = enable_library_widevine_cdm && is_chrome_branded diff --git a/patches/tools-gritsettings-resource_ids.spec.patch b/patches/tools-gritsettings-resource_ids.spec.patch index dde68d7440f3..3202bc565be3 100644 --- a/patches/tools-gritsettings-resource_ids.spec.patch +++ b/patches/tools-gritsettings-resource_ids.spec.patch @@ -1,5 +1,5 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec -index 0818d69864408fe2aa1c58e460cd61f13f54f8f0..eb66f15d12ba13b06a96f51130e263fd6f444810 100644 +index a411c2a5788df546764d5c4493dff876a8c93156..b0b9f014193bb78f52606c3f8c76b89d8d00f1ff 100644 --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec @@ -47,6 +47,9 @@ @@ -12,7 +12,7 @@ index 0818d69864408fe2aa1c58e460cd61f13f54f8f0..eb66f15d12ba13b06a96f51130e263fd "chrome/app/google_chrome_strings.grd": { "messages": [400], }, -@@ -377,6 +380,9 @@ +@@ -396,6 +399,9 @@ "META": {"align": 100}, "messages": [2700], }, diff --git a/patches/tools-json_schema_compiler-feature_compiler.py.patch b/patches/tools-json_schema_compiler-feature_compiler.py.patch index d9b56a82af3e..78af28c702b8 100644 --- a/patches/tools-json_schema_compiler-feature_compiler.py.patch +++ b/patches/tools-json_schema_compiler-feature_compiler.py.patch @@ -1,8 +1,8 @@ diff --git a/tools/json_schema_compiler/feature_compiler.py b/tools/json_schema_compiler/feature_compiler.py -index acb4e45508512eb9af4660369f03e781e7e058bc..6bf22c7a07f79f8c553cdfb07ce4da97902d3c58 100644 +index 3827dc3cdb7385290aac2dc674066f2ba7308a7d..cbb6df36a1f8df563614ded56277f1818675531e 100644 --- a/tools/json_schema_compiler/feature_compiler.py +++ b/tools/json_schema_compiler/feature_compiler.py -@@ -744,6 +744,14 @@ class FeatureCompiler(object): +@@ -768,6 +768,14 @@ class FeatureCompiler(object): abs_source_file) raise dupes = set(f_json) & set(self._json) diff --git a/patches/tools-json_to_struct-json_to_struct.gni.patch b/patches/tools-json_to_struct-json_to_struct.gni.patch new file mode 100644 index 000000000000..4771f3ada84e --- /dev/null +++ b/patches/tools-json_to_struct-json_to_struct.gni.patch @@ -0,0 +1,12 @@ +diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni +index 29afcb2106c8366b62f783c6a590468025a84608..fc446fec551a75610ea419eab2fe72024e7c7834 100644 +--- a/tools/json_to_struct/json_to_struct.gni ++++ b/tools/json_to_struct/json_to_struct.gni +@@ -57,6 +57,7 @@ template("json_to_struct") { + } + + sources = get_target_outputs(":$action_name") ++ if (defined(invoker.additional_sources)) { sources += invoker.additional_sources } + + deps = [ ":$action_name" ] + diff --git a/patches/tools-licenses.py.patch b/patches/tools-licenses.py.patch index 6f14eb0b72da..a6620c48309a 100644 --- a/patches/tools-licenses.py.patch +++ b/patches/tools-licenses.py.patch @@ -1,5 +1,5 @@ diff --git a/tools/licenses.py b/tools/licenses.py -index 5d27b2ec23386d4627e4504f199a99af41ed601b..63ed73662f597f8f467ff5ac90cc110a324abc8f 100755 +index 246f038f9d747f9679932776cc1940c4ecddc1b3..f6d7e9c71b5f27d4fae8d2d5f27ad003b0ab31e5 100755 --- a/tools/licenses.py +++ b/tools/licenses.py @@ -35,6 +35,7 @@ else: @@ -28,7 +28,7 @@ index 5d27b2ec23386d4627e4504f199a99af41ed601b..63ed73662f597f8f467ff5ac90cc110a # Add all subdirectories that are not marked for skipping. for dir in dirs: dirpath = os.path.join(path, dir) -@@ -682,7 +685,8 @@ def GenerateCredits( +@@ -680,7 +683,8 @@ def GenerateCredits( for path in third_party_dirs: try: metadata = ParseDir(path, _REPOSITORY_ROOT) diff --git a/patches/tools-metrics-histograms-histograms.xml.patch b/patches/tools-metrics-histograms-histograms.xml.patch deleted file mode 100644 index 7b8f73bb60a7..000000000000 --- a/patches/tools-metrics-histograms-histograms.xml.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml -index 0d562d5f2b079b657dfe76c395ed09eaa509e2e3..ba864b2a4f5175e482b6eb8e5c8a04dfb85b2074 100644 ---- a/tools/metrics/histograms/histograms.xml -+++ b/tools/metrics/histograms/histograms.xml -@@ -212662,6 +212662,7 @@ regressions. --> - - - -+ - - diff --git a/patches/tools-metrics-histograms-histograms_xml-histogram_suffixes_list.xml.patch b/patches/tools-metrics-histograms-histograms_xml-histogram_suffixes_list.xml.patch new file mode 100644 index 000000000000..272b993ccb28 --- /dev/null +++ b/patches/tools-metrics-histograms-histograms_xml-histogram_suffixes_list.xml.patch @@ -0,0 +1,12 @@ +diff --git a/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml b/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml +index 3e9308869b0ad7c03ed975f776c2662c49cd9718..7344d9e933bc492a48474763e66ea3a83255b136 100644 +--- a/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml ++++ b/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml +@@ -13725,6 +13725,7 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. + + + ++ + + diff --git a/patches/ui-base-BUILD.gn.patch b/patches/ui-base-BUILD.gn.patch index 029731d5b2d6..1a6417f87873 100644 --- a/patches/ui-base-BUILD.gn.patch +++ b/patches/ui-base-BUILD.gn.patch @@ -1,8 +1,8 @@ diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn -index 88883f2c90d89e719ba2c1d1541c73a13f7f2e0c..f44a31df2caea44a9985298fe3d1387e15e89524 100644 +index 60d58740ef212431f9e3125ae5dff627bec4efc2..c6ce481f70dce7be6be86bf5536a0ee913bddd88 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn -@@ -457,6 +457,7 @@ component("base") { +@@ -451,6 +451,7 @@ component("base") { "//ui/strings", "//url", ] diff --git a/patches/ui-native_theme-native_theme_win.cc.patch b/patches/ui-native_theme-native_theme_win.cc.patch index d3f6dd7ea305..1d5b8c5037c3 100644 --- a/patches/ui-native_theme-native_theme_win.cc.patch +++ b/patches/ui-native_theme-native_theme_win.cc.patch @@ -1,8 +1,8 @@ diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc -index 91c5532be895114ac532d270cb5e00cbfd4abf89..3063d2280ef7b72840f0c09d632728a7eea003eb 100644 +index 950956142148d2127135386dd2b9d0076b7aa148..fcc3dcaf5c3e8badff59b27354b6c4873603b520 100644 --- a/ui/native_theme/native_theme_win.cc +++ b/ui/native_theme/native_theme_win.cc -@@ -1641,6 +1641,7 @@ void NativeThemeWin::UpdateDarkModeStatus() { +@@ -1644,6 +1644,7 @@ void NativeThemeWin::UpdateDarkModeStatus() { &apps_use_light_theme); dark_mode_enabled = (apps_use_light_theme == 0); } diff --git a/patches/ui-views-controls-button-md_text_button.h.patch b/patches/ui-views-controls-button-md_text_button.h.patch index 7599b56f0658..cdeaa0c618d0 100644 --- a/patches/ui-views-controls-button-md_text_button.h.patch +++ b/patches/ui-views-controls-button-md_text_button.h.patch @@ -1,8 +1,8 @@ diff --git a/ui/views/controls/button/md_text_button.h b/ui/views/controls/button/md_text_button.h -index 81b342becf7658c68d54394eab6a79caa34be0fc..0d177024fa97caa6f53252c6773f2922c5786b5d 100644 +index b9aa8505a8ed43a2dece11a6752704a748ce7ec2..e341f903fde23820a3efdf0eef5ff8f2973ce073 100644 --- a/ui/views/controls/button/md_text_button.h +++ b/ui/views/controls/button/md_text_button.h -@@ -57,11 +57,13 @@ class VIEWS_EXPORT MdTextButton : public LabelButton { +@@ -59,11 +59,13 @@ class VIEWS_EXPORT MdTextButton : public LabelButton { void OnBlur() override; private: diff --git a/patches/ui-webui-resources-cr_elements-shared_vars_css.html.patch b/patches/ui-webui-resources-cr_elements-shared_vars_css.html.patch index f0bc5013b77a..57786a38cc9b 100644 --- a/patches/ui-webui-resources-cr_elements-shared_vars_css.html.patch +++ b/patches/ui-webui-resources-cr_elements-shared_vars_css.html.patch @@ -1,5 +1,5 @@ diff --git a/ui/webui/resources/cr_elements/shared_vars_css.html b/ui/webui/resources/cr_elements/shared_vars_css.html -index 6d0cf07bc8336b3805d005f9a0fb2596887e2e95..5eecd81ef2ee5e7bb7f4010b41c13dbe143565f3 100644 +index df1e1f42726ee767c05c93696dec06bbf1940699..65eade81566788a831cdb3784504d22001b3df46 100644 --- a/ui/webui/resources/cr_elements/shared_vars_css.html +++ b/ui/webui/resources/cr_elements/shared_vars_css.html @@ -1,6 +1,7 @@ diff --git a/test/BUILD.gn b/test/BUILD.gn index 0ba0acc327ed..12120a5aaf19 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -92,7 +92,6 @@ test("brave_unit_tests") { "//brave/browser/browsing_data/brave_browsing_data_remover_delegate_unittest.cc", "//brave/browser/browsing_data/counters/brave_site_settings_counter_unittest.cc", "//brave/browser/download/brave_download_item_model_unittest.cc", - "//brave/browser/metrics/metrics_reporting_util_unittest_linux.cc", "//brave/browser/net/brave_ad_block_tp_network_delegate_helper_unittest.cc", "//brave/browser/net/brave_block_safebrowsing_urls_unittest.cc", "//brave/browser/net/brave_common_static_redirect_network_delegate_helper_unittest.cc", @@ -103,7 +102,6 @@ test("brave_unit_tests") { "//brave/browser/net/brave_system_request_handler_unittest.cc", "//brave/chromium_src/chrome/browser/history/history_utils_unittest.cc", "//brave/chromium_src/chrome/browser/lookalikes/lookalike_url_navigation_throttle_unittest.cc", - "//brave/chromium_src/chrome/browser/shell_integration_unittest_mac.cc", "//brave/chromium_src/chrome/browser/signin/account_consistency_disabled_unittest.cc", "//brave/chromium_src/components/autofill/core/browser/autofill_experiments_unittest.cc", "//brave/chromium_src/components/metrics/enabled_state_provider_unittest.cc", @@ -144,6 +142,7 @@ test("brave_unit_tests") { deps = [ ":test_support", "//brave/base:base_unittests", + "//brave/browser/metrics/test:brave_metrics_unit_tests", "//brave/browser/safebrowsing", "//brave/browser/tor:unit_tests", "//brave/components/brave_ads/test:brave_ads_unit_tests", @@ -237,6 +236,7 @@ test("brave_unit_tests") { if (is_mac) { sources += [ + "//brave/chromium_src/chrome/browser/shell_integration_unittest_mac.cc", "//brave/chromium_src/chrome/common/chrome_constants_unittest_mac.cc", ] } @@ -258,7 +258,7 @@ test("brave_unit_tests") { ] deps += [ "//brave/components/crypto_dot_com/browser", - ] + ] } if (is_linux) { @@ -647,7 +647,7 @@ if (!is_android) { } if (crypto_dot_com_enabled) { - sources += [ "//brave/components/crypto_dot_com/browser/crypto_dot_com_service_browsertest.cc" ] + sources += [ "//brave/components/crypto_dot_com/browser/crypto_dot_com_service_browsertest.cc" ] } if (brave_rewards_enabled) { diff --git a/third_party/blink/renderer/includes.gni b/third_party/blink/renderer/includes.gni index 1be86945c8e2..cf727405a12f 100644 --- a/third_party/blink/renderer/includes.gni +++ b/third_party/blink/renderer/includes.gni @@ -25,3 +25,18 @@ brave_idl_imports = [ "//brave/third_party/blink/renderer/modules/brave/idls.gni", "//brave/third_party/blink/renderer/modules/global_privacy_control/idls.gni" ] + +# common includes which can help minimize patches for +# third_party/blink/renderer/bindings/idl_in_modules.gni +brave_static_idl_files_in_modules = [ + "//brave/third_party/blink/renderer/modules/brave/brave.idl", + "//brave/third_party/blink/renderer/modules/brave/navigator_brave.idl", + "//brave/third_party/blink/renderer/modules/global_privacy_control/navigator_global_privacy_control.idl", +] + +# common includes which can help minimize patches for +# third_party/blink/renderer/bindings/generated_in_modules.gni +brave_generated_interface_sources_in_modules = [ + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_brave.h", + "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_brave.cc", +] diff --git a/ui/webui/resources/tools/brave_rollup_overrides.js b/ui/webui/resources/tools/brave_rollup_overrides.js index 9af881406d47..9905c36877a9 100644 --- a/ui/webui/resources/tools/brave_rollup_overrides.js +++ b/ui/webui/resources/tools/brave_rollup_overrides.js @@ -1,7 +1,7 @@ const path = require('path'); module.exports = { - braveResolveId: function (params, source, origin, relativePath, joinPaths, combinePaths, chromeResourcesUrl, schemeRelativeResourcesUrl, nonGeneratedFiles) { + braveResolveId: function (params, source, origin, relativePath, joinPaths, combinePaths, chromeResourcesUrl, schemeRelativeResourcesUrl) { const {srcPath, genPath, excludes} = params; const resourcesSrcPath = joinPaths(srcPath, 'ui/webui/resources/'); const resourcesGenPath = joinPaths(genPath, 'ui/webui/resources/'); @@ -32,10 +32,6 @@ module.exports = { if (excludes.includes(fullPath)) { return {id: fullPath, external: true}; } - const filename = path.basename(source); - if (nonGeneratedFiles.includes(filename)) { - return joinPaths(resourcesSrcPath, pathFromBraveResources); - } // JS compiled into gen directory if (pathFromBraveResources.endsWith('.js')) { return joinPaths(braveResourcesGenPath, pathFromBraveResources); diff --git a/utility/BUILD.gn b/utility/BUILD.gn index 31855780e4ec..3450c56d5a29 100644 --- a/utility/BUILD.gn +++ b/utility/BUILD.gn @@ -43,19 +43,6 @@ source_set("utility") { ] } - if (is_mac) { - sources += [ - "importer/brave_safari_importer.mm", - "importer/brave_safari_importer.h", - ] - - deps += [ - "//base", - "//sql", - "//url", - ] - } - if (enable_tor) { deps += [ "//brave/components/services/tor" ] } diff --git a/utility/importer/brave_safari_importer.h b/utility/importer/brave_safari_importer.h deleted file mode 100644 index 9b74c6bbbd55..000000000000 --- a/utility/importer/brave_safari_importer.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef BRAVE_UTILITY_IMPORTER_BRAVE_SAFARI_IMPORTER_H_ -#define BRAVE_UTILITY_IMPORTER_BRAVE_SAFARI_IMPORTER_H_ - -#include "chrome/utility/importer/safari_importer.h" - -class BraveSafariImporter : public SafariImporter { - public: - using SafariImporter::SafariImporter; - - BraveSafariImporter(const BraveSafariImporter&) = delete; - BraveSafariImporter& operator=(const BraveSafariImporter&) = delete; - - private: - // SafariImporter overrides: - void ImportHistory() override; - - ~BraveSafariImporter() override; -}; - -#endif // BRAVE_UTILITY_IMPORTER_BRAVE_SAFARI_IMPORTER_H_ diff --git a/utility/importer/brave_safari_importer.mm b/utility/importer/brave_safari_importer.mm deleted file mode 100644 index a4ac51a6fe34..000000000000 --- a/utility/importer/brave_safari_importer.mm +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright 2020 The Brave Authors. All rights reserved. - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include - -#include "brave/utility/importer/brave_safari_importer.h" - -#include -#include - -#include "base/files/file_path.h" -#include "base/files/file_util.h" -#include "base/strings/utf_string_conversions.h" -#include "base/time/time.h" -#include "chrome/common/importer/importer_bridge.h" -#include "chrome/common/importer/importer_url_row.h" -#include "sql/statement.h" -#include "url/gurl.h" - -BraveSafariImporter::~BraveSafariImporter() = default; - -void BraveSafariImporter::ImportHistory() { - // For importing history from History.plist. - SafariImporter::ImportHistory(); - - // From now, try to import history from History.db. - NSString* library_dir = [NSString - stringWithUTF8String:library_dir_.value().c_str()]; - NSString* safari_dir = [library_dir - stringByAppendingPathComponent:@"Safari"]; - NSString* history_db = [safari_dir - stringByAppendingPathComponent:@"History.db"]; - - // Import favicons. - sql::Database db; - const char* db_path = [history_db fileSystemRepresentation]; - if (!db.Open(base::FilePath(db_path))) - return; - - std::vector rows; - const char query[] = "SELECT hi.url, hi.visit_count, hv.visit_time, hv.title " - "FROM history_items as hi " - "JOIN history_visits as hv ON hi.id == hv.history_item"; - sql::Statement s(db.GetUniqueStatement(query)); - while (s.Step() && !cancelled()) { - const GURL url = GURL(s.ColumnString(0)); - if (!url.is_valid()) - continue; - - ImporterURLRow row(url); - row.visit_count = s.ColumnInt(1); - double visit_time = s.ColumnDouble(2); - if (!visit_time) - continue; - row.last_visit = - base::Time::FromDoubleT(visit_time + kCFAbsoluteTimeIntervalSince1970); - std::string title = s.ColumnString(3); - if (title.empty()) - title = url.spec(); - row.title = base::UTF8ToUTF16(title); - row.hidden = 0; - row.typed_count = 0; - rows.push_back(row); - } - - if (!rows.empty() && !cancelled()) { - bridge_->SetHistoryItems(rows, importer::VISIT_SOURCE_SAFARI_IMPORTED); - } -} diff --git a/vendor/bat-native-ads/BUILD.gn b/vendor/bat-native-ads/BUILD.gn index 84f932cc903f..e9511399ac26 100644 --- a/vendor/bat-native-ads/BUILD.gn +++ b/vendor/bat-native-ads/BUILD.gn @@ -21,6 +21,7 @@ config("external_config") { config("internal_config") { visibility = [ ":*", + "//brave/components/brave_ads/browser:testutil", "//brave/components/brave_ads/test:*", "//brave/test:*", ]