Skip to content

Upgrade from Chromium 88 to Chromium 89. #7460

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 151 commits into from
Feb 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
d843ae0
Updated patches from Chromium 88.0.4324.152 to Chromium 89.0.4350.7.
mariospr Jan 12, 2021
40f7875
Conflict-resolved patches from Chromium 88.0.4324.152 to Chromium 89.…
mkarolin Dec 15, 2020
0b1a797
webgl_rendering_context_base patch change.
mkarolin Dec 15, 2020
40e1892
BaseRenderingContext2D::getImageData changes.
mkarolin Dec 15, 2020
21f9554
Navigator::userAgennt() moved.
mkarolin Dec 15, 2020
c27a96f
Converted chrome_web_ui_controller_factory.cc patch to a chromium_src…
mkarolin Dec 15, 2020
979e329
Converted browser_app_menu_button.cc patch to a chromium_src override.
mkarolin Dec 15, 2020
9d67d99
Safe browsing client_side_model_loader moved to //components.
mkarolin Dec 15, 2020
864e624
Converted resources_util.cc patch to a chromium_src override.
mkarolin Dec 15, 2020
b9da22b
Converted extensions_management.cc patch to a chromium_src override.
mkarolin Dec 16, 2020
f25673a
preprocess_grit -> preprocess_if_expr
mkarolin Dec 16, 2020
5434ddb
Updated strings for Chromium 89.0.4350.7.
mkarolin Dec 16, 2020
cbfb03c
BatteryManager changes.
mkarolin Dec 17, 2020
59ffbe3
CookieMonsterChangeDispatcher c'tor takes CookieMoster param.
mkarolin Dec 17, 2020
c869c58
FilePathWatcher::Watch now takes an enum for recursive param.
mkarolin Dec 17, 2020
ae742ba
Updated url_constants.cc override.
mkarolin Dec 17, 2020
a70a662
NOTIFICATION_PROFILE_DESTROYED notification was removed.
mkarolin Dec 17, 2020
88bc9f7
ContentSettingsTypeToGroupName return type changed.
mkarolin Dec 17, 2020
7aaa725
Added VIEW_BUILDER macro to MdTextButton override.
mkarolin Dec 17, 2020
fd68713
ChromeBrowsingDataRemover constants moved to their own header.
mkarolin Dec 17, 2020
fedf5ef
Fixes header includes.
mkarolin Dec 17, 2020
f735bd8
content::RestoreType enum changed.
mkarolin Dec 17, 2020
f97ab43
net::AddressList::canonical_name() -> GetCanonicalName().
mkarolin Dec 17, 2020
f880b95
AddRestoredTab signature changed.
mkarolin Dec 17, 2020
1c0539a
Fixes header include in a chromium_src override.
mkarolin Dec 17, 2020
cb40cfa
[Android] Material design exclusions were removed
samartnik Dec 17, 2020
a341ca6
Updated patches from Chromium 89.0.4350.7 to Chromium 89.0.4356.6.
mkarolin Dec 17, 2020
05d1546
Conflict-resolved patches from Chromium 89.0.4350.7 to Chromium 89.0.…
mkarolin Dec 17, 2020
f6f56d8
infoplist_strings_util.mm -> infoplist_strings_util.cc
mkarolin Dec 17, 2020
c5c0745
Updated strings for Chromium 89.0.4356.6.
mkarolin Dec 18, 2020
c37e44d
GetBlacklistLogins -> GetBlocklistLogins
mkarolin Dec 18, 2020
a642c7a
NetworkIsolationKey now uses SchemefulSite.
mkarolin Dec 16, 2020
b6eeb97
Don't disable kPasswordCheck feature flag (it has been removed).
mariospr Jan 19, 2021
648d01e
[Android] OverrideUrlLoadingResult class added to ExternalNavHandler
samartnik Dec 18, 2020
2282628
[Android] AutocompleteMatch and AutocompleteResult are relocated
samartnik Dec 18, 2020
c8749fb
[Android] Interface for SigninManager was extracted
samartnik Dec 18, 2020
09d5a8f
[Android] ThemeColorProvider was modularized
samartnik Dec 18, 2020
70ccd51
[Android] Changes for SwipeGestureListener
samartnik Dec 18, 2020
adab4b4
[Android] Ctor signatures changed for ToolbarManager, BottomControlsM…
samartnik Dec 22, 2020
4d84130
[Android] TEMP: isSyncEnabled was removed
samartnik Dec 22, 2020
f6a6f9c
[Android] Singatures for various functions changed
samartnik Dec 22, 2020
405f259
service_names.mojom was removed.
mkarolin Dec 23, 2020
ec86e1b
[Android] Modularized LayoutManager interface was applied
samartnik Dec 30, 2020
dfc5f9e
[Android] Sync ProfileMetrics were changed
samartnik Dec 30, 2020
29638b8
[Android] Removed unused bytecode test
samartnik Jan 6, 2021
3d84859
[Android] Fixes for bottom toolbar
samartnik Jan 8, 2021
7c14c18
Adapt signature of BravePrimaryAccountMutatorImpl methods
mariospr Jan 12, 2021
40d40f4
Adapt usage of TranslatePrefs() constructor
mariospr Jan 12, 2021
98dd898
Reference constants from chrome_browsing_data_remover
mariospr Jan 12, 2021
060c9ce
Remove override of AndroidSyncSettings.isSyncEnabled from BraveAndroi…
AlexeyBarabash Jan 12, 2021
eb35c13
Drop references to ContentSettingsType::PLUGINS in Brave-specific code
mariospr Jan 13, 2021
8c61de3
Adapt ImageType for BraveAutoplayBlockedImageModel
mariospr Jan 13, 2021
86cb317
[Android] ThemeColorProvider replaces TabThemeColorProvider
samartnik Jan 11, 2021
13421ed
optimize_webui.gni/py moved to tools subdir.
mkarolin Jan 13, 2021
d8f35ef
Updated patches from Chromium 89.0.4356.6 to Chromium 89.0.4385.0.
mkarolin Jan 14, 2021
22e6227
Conflict-resolved patches from Chromium 89.0.4356.6 to Chromium 89.0.…
mkarolin Jan 13, 2021
b1ac7b9
[WebUI] Adjusted rollup_plugin patch and our impl.
mkarolin Jan 13, 2021
041195d
Updated strings for Chromium 89.0.4385.0.
mkarolin Jan 14, 2021
2c3eaa3
webui::SetupWebUIDataSource signature changed.
mkarolin Jan 14, 2021
ba721f1
DevToolsUIBindings DispatchCallback -> OnceCallback.
mkarolin Jan 14, 2021
3cd4c27
ExtensionsContainer API changes.
mkarolin Jan 14, 2021
99af968
blink::network_utils::IsOriginSecure was removed.
mkarolin Jan 14, 2021
5036514
NativeTheme::UsesHighContrastColors -> UserHasContrastPreference.
mkarolin Jan 14, 2021
1280c35
ImageDataColorSettings -> ImageDataSettings.
mkarolin Jan 14, 2021
e8b64c5
Updated url_constants.cc
mkarolin Jan 14, 2021
4a9ae71
Test files from sync/engine moved to sync/test.
mkarolin Jan 14, 2021
8553d0b
OnCookieJarChanged signature changed.
mkarolin Jan 14, 2021
e84f958
TranslateBubbleModel added a new method.
mkarolin Jan 14, 2021
cf4c38a
Use x11::GetAtom() instead of ui::GetAtom()
mariospr Jan 14, 2021
c896bf5
Use x11::GetProperty instead of ui::GetProperty
mariospr Jan 14, 2021
55298d9
[Android] ExternalAuthUtils were removed from AppHooks
samartnik Jan 14, 2021
bc27722
[Android] Added missing dep for tests
samartnik Jan 14, 2021
8c48721
Retrieve the user agent off the ExecutionContext for farbling
mariospr Jan 18, 2021
093598b
Move sync v2 migration after ProfileSyncService::Initialize()
AlexeyBarabash Jan 18, 2021
2b1d2b0
[Android] Signin promos moved to Main settings
samartnik Jan 19, 2021
c9db6bd
Adapt test expectations to only consider about:{blank,srcdoc} secure
mariospr Jan 20, 2021
6f946d1
[Android] Fixes for java warnings
samartnik Jan 20, 2021
c8b9cf6
Updated patches from Chromium 89.0.4385.0 to Chromium 89.0.4389.9.
mkarolin Jan 21, 2021
a42d73b
Conflict-resolved patches from Chromium 89.0.4385.0 to Chromium 89.0.…
mkarolin Jan 20, 2021
e1bc496
[Android] BottomControlsCoordinator moved.
mkarolin Jan 20, 2021
f9c64b2
PermissionRequestType enum was replaced.
mkarolin Jan 20, 2021
5b225e0
Removed a no longer needed patch.
mkarolin Jan 20, 2021
95e15d7
Fix check_client_download_request_base.cc patch.
mkarolin Jan 21, 2021
b875038
Updated strings for 89.0.4389.9.
mkarolin Jan 21, 2021
b97b6cf
A new method added to ExtensionsContainer.
mkarolin Jan 21, 2021
087ce96
SetLocalProfileName signature changed.
mkarolin Jan 21, 2021
735f4e9
network::DataElement is now a union.
mkarolin Jan 21, 2021
afa1f3f
signin::IdentityManager::Observer API changes.
mkarolin Jan 21, 2021
de20c32
FCMNetworkHandler changed namespace.
mkarolin Jan 21, 2021
a81ca85
about:about is now a secure scheme again.
mkarolin Jan 21, 2021
e2fe5df
Modified way if set encryption for Sync
AlexeyBarabash Jan 19, 2021
d251967
VersionUpdater::CheckForUpdate callbacks were converted.
mkarolin Jan 21, 2021
caa8358
Cache Mac channel information.
mkarolin Jan 21, 2021
83457d8
[iOS] BookmarkNode c'tor now uses base::GUID instead of a std::string.
mkarolin Jan 21, 2021
a7533ce
Consider NORMAL reloads in BraveShieldsWCO::ReadyToCommitNavigation
mariospr Jan 20, 2021
253c8dd
[Android] SettingsLauncher was componentized
samartnik Jan 21, 2021
1a675ed
[Android] C-tor signature for MenuButtonCoordinator was changed
samartnik Jan 21, 2021
ca2dccb
[Android] BottomControls were modularized
samartnik Jan 21, 2021
b9a1cc6
Fixes Javascript site settings patch.
mkarolin Jan 21, 2021
3476ac2
[Android] Fixes for java warnings II
samartnik Jan 22, 2021
54bd31d
[Android] Fixed crash on bottom toolbar initialization
samartnik Jan 25, 2021
115655b
[Android] AppMenuIconRowFooter was removed
samartnik Jan 25, 2021
781b95b
Lint fixes.
mkarolin Jan 25, 2021
e476b68
Formatting fixes.
mkarolin Jan 25, 2021
289ac4a
Moved brave_clear_browsing_data_browsertest.cc to its own target.
mkarolin Jan 25, 2021
e6abb6d
//chrome/browser/browser_process.h moved to its own target.
mkarolin Jan 25, 2021
9a8f014
Added dep on //build:chromeos_buildflags.
mkarolin Jan 25, 2021
9c68ad9
Do not use NetworkIsolationKey c'tor that takes Origins.
mkarolin Jan 26, 2021
d3f9f6b
GN formatting fixes.
mkarolin Jan 26, 2021
110661c
Fix sync encryption/decryption handling
darkdh Jan 26, 2021
969a6b6
[Android] Fix for bottom toolbar behavior
samartnik Jan 25, 2021
0019623
[WebUI] Fixes Settings left nav hidden state.
mkarolin Jan 26, 2021
78274f5
Redone set sync encryption for Android to match Chromium 89
AlexeyBarabash Jan 25, 2021
5845217
Use empty implementation of PrimaryAccountMutatorImpl::RevokeSyncConsent
AlexeyBarabash Jan 25, 2021
4a81060
[Android] Fixed crash on reloading new tab page
samartnik Jan 26, 2021
4fe94e1
Fixes formatting.
mkarolin Jan 27, 2021
b593280
version_ui.cc moved.
mkarolin Jan 27, 2021
87dee8c
Removed a no longer needed chromium_src override.
mkarolin Jan 27, 2021
0972cf5
Fixed relative paths in some chromium_src overrides.
mkarolin Jan 27, 2021
2643705
Updated patches from Chromium 89.0.4389.9 to Chromium 89.0.4389.23.
mkarolin Jan 27, 2021
947c1fa
Conflict-resolved patches from Chromium 89.0.4389.9 to Chromium 89.0.…
mkarolin Jan 27, 2021
f763fc9
Updated strings for Chromium 89.0.4389.23.
mkarolin Jan 28, 2021
ff468b6
[Android] getMaxRowsForMostVisitedTiles was moved
samartnik Jan 28, 2021
68b4320
[Android] Fixes for lint error and java warnings
samartnik Jan 28, 2021
08ae20e
[Android] Temporarily force non-component builds
samartnik Jan 28, 2021
21aefaa
NativeFileSystem was renamed to FileSystemAccess.
mkarolin Jan 29, 2021
c55c55c
Temporarily disabling WebBundles test.
mkarolin Jan 29, 2021
56a4247
[Android] Disables WebNFC feature.
mkarolin Jan 27, 2021
6b1b45f
Disables WebNFC in blink.
mkarolin Feb 2, 2021
1736299
Disables Serial API in blink.
mkarolin Feb 2, 2021
70f8031
Do not add our types to RequestTypeForUMA.
mkarolin Feb 3, 2021
65f4838
Removed an unnecessary DCHECK in ProxyConfigServiceTor.
mkarolin Feb 3, 2021
19e1453
Fixed sync service pointers
AlexeyBarabash Feb 3, 2021
cd80304
Formatting fix.
mkarolin Feb 3, 2021
a519a37
Use ScopedObservation in BraveProfileImpl.
mkarolin Feb 3, 2021
81113aa
cr89 code review: removed unneeded code from BatteryManager.
mkarolin Feb 3, 2021
bf7c697
Conflict-resolved patches from Chromium 89.0.4389.23 to Chromium 89.0…
mkarolin Feb 3, 2021
59036ac
Updated patches from Chromium 89.0.4389.23 to Chromium 89.0.4389.40.
mkarolin Feb 3, 2021
0db3783
Updated strings for 89.0.4389.40.
mkarolin Feb 3, 2021
a81f4eb
Updated optimize_webui.gni patch.
mkarolin Feb 3, 2021
09e3f08
remove includes that no longer apply
bridiver Feb 3, 2021
15a3a4f
shield_exceptions should never have been in common in the first place…
bridiver Feb 4, 2021
64caf8d
add visibility lists to prevent more layering violations
bridiver Feb 4, 2021
c6f462e
format
bridiver Feb 4, 2021
0dfed66
add visibility lists for brave/browser and break out existing violations
bridiver Feb 4, 2021
b34a457
Adjusted visibility for //brave/common targets for iOS and Android.
mkarolin Feb 4, 2021
2087ea6
Formatting fixes.
mkarolin Feb 4, 2021
a66f6ed
BubbleBorder::NO_ASSETS -> NO_SHADOW.
mkarolin Feb 4, 2021
508a997
Fixing iOS syncing.
Brandon-T Feb 3, 2021
96fd63a
Formatting fixes.
mkarolin Feb 4, 2021
f6c85a6
Lint fixes.
mkarolin Feb 4, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions android/brave_java_sources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/QRCodeShareDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/SetDefaultBrowserActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/app/BraveActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/app/appmenu/AppMenuIconRowFooter.java",
"../../brave/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java",
"../../brave/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkUtils.java",
"../../brave/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsBottomSheetDialogFragment.java",
Expand Down Expand Up @@ -125,6 +126,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/qrreader/BarcodeTrackerFactory.java",
"../../brave/android/java/org/chromium/chrome/browser/qrreader/CameraSource.java",
"../../brave/android/java/org/chromium/chrome/browser/qrreader/CameraSourcePreview.java",
"../../brave/android/java/org/chromium/chrome/browser/query_tiles/BraveQueryTileSection.java",
"../../brave/android/java/org/chromium/chrome/browser/rate/RateDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/rate/RateFeedbackUtils.java",
"../../brave/android/java/org/chromium/chrome/browser/rate/RateUtils.java",
Expand Down Expand Up @@ -161,7 +163,6 @@ brave_java_sources = [
"../../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",
Expand All @@ -172,7 +173,6 @@ brave_java_sources = [
"../../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/BraveBottomControlsCoordinator.java",
"../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java",
"../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveScrollingBottomViewResourceFrameLayout.java",
"../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java",
"../../brave/android/java/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarLinearLayout.java",
Expand Down Expand Up @@ -240,6 +240,8 @@ brave_components_browser_ui_site_settings_android_java = [ "//brave/components/b

brave_browser_ui_android_appmenu_internal_sources = [ "//brave/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java" ]

brave_browser_ui_android_toolbar_sources = [ "//brave/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java" ]

brave_java_base_sources = [
"//brave/android/java/org/chromium/base/BraveCommandLineInitUtil.java",
"//brave/android/java/org/chromium/base/BraveReflectionUtil.java",
Expand Down
32 changes: 26 additions & 6 deletions android/java/apk_for_test.flags
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
-keepnames class org.chromium.chrome.browser.settings.MainSettings

-keep class org.chromium.chrome.browser.sync.AndroidSyncSettings {
*** notifyObservers(...);
*** updateCachedSettings(...);
*** setChromeSyncEnabled(...);
*** mIsSyncable;
Expand Down Expand Up @@ -37,7 +36,6 @@

-keep class org.chromium.chrome.browser.ntp.NewTabPageLayout {
*** insertSiteSectionView(...);
*** getMaxRowsForMostVisitedTiles(...);
*** mSiteSectionView;
}

Expand Down Expand Up @@ -83,6 +81,7 @@
}

-keep class org.chromium.chrome.browser.toolbar.ToolbarManager {
public <init>(...);
*** mBottomControlsCoordinatorSupplier;
*** mCallbackController;
*** mBrowserControlsSizer;
Expand All @@ -99,6 +98,11 @@
*** mLocationBarModel;
*** mToolbar;
*** mBookmarkBridgeSupplier;
*** mLayoutManager;
*** mOverlayPanelVisibilitySupplier;
*** mTabModelSelector;
*** mIncognitoStateProvider;
*** mTabCountProvider;
*** onOrientationChange(...);
*** updateButtonStatus(...);
*** updateBookmarkButtonStatus(...);
Expand Down Expand Up @@ -145,10 +149,6 @@
public <init>(...);
}

-keep class org.chromium.chrome.browser.tabbed_mode.BraveTabbedRootUiCoordinator {
public <init>(...);
}

-keep class org.chromium.chrome.browser.tabbed_mode.TabbedAppMenuPropertiesDelegate {
public <init>(...);
}
Expand All @@ -173,3 +173,23 @@
*** addBookmarkInternal(...);
*** createSnackbarControllerForEditButton(...);
}

-keep class org.chromium.chrome.browser.toolbar.BraveToolbarManager {
public <init>(...);
}

-keep class org.chromium.chrome.browser.toolbar.bottom.BottomControlsMediator {
public <init>(...);
}

-keep class org.chromium.chrome.browser.toolbar.bottom.BraveBottomControlsMediator {
public <init>(...);
}

-keep class org.chromium.chrome.browser.query_tiles.QueryTileSection {
*** getMaxRowsForMostVisitedTiles(...);
}

-keep class org.chromium.chrome.browser.query_tiles.BraveQueryTileSection {
*** getMaxRowsForMostVisitedTiles(...);
}
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public class BraveRewardsPanelPopup implements BraveRewardsObserver, BraveReward

private BraveRewardsExternalWallet mExternal_wallet;

private double walletBalance = .0;
private double walletBalance;

private View braveRewardsOnboardingModalView;
private View braveRewardsOptInView;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@
import android.content.Context;
import android.content.SharedPreferences;

import org.chromium.base.ContextUtils;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveSyncWorker;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.infobar.InfoBarIdentifier;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.settings.BraveSyncScreensPreference;
import org.chromium.chrome.browser.settings.SettingsLauncher;
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.messages.infobar.BraveSimpleConfirmInfoBarBuilder;
import org.chromium.chrome.browser.ui.messages.infobar.SimpleConfirmInfoBarBuilder;
import org.chromium.components.browser_ui.settings.SettingsLauncher;

public class BraveSyncInformers {
public static void show() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@
// The purpose of this class is to hide BraveSyncWorker object under `enable_brave_sync`
// and create it without explict import
public class BraveSyncReflectionUtils {

private static Object sBraveSyncWorker = null;
private static boolean sInitialized = false;
private static Object sBraveSyncWorker;
private static boolean sInitialized;
private static String TAG = "SYNC";

public static Object getSyncWorker() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
/* Copyright (c) 2021 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.app.appmenu;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;

import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.graphics.drawable.DrawableCompat;

import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
import org.chromium.chrome.browser.download.DownloadUtils;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler;

/**
* A {@link LinearLayout} that displays a horizontal row of icons for page actions.
*/
public class AppMenuIconRowFooter extends LinearLayout implements View.OnClickListener {
private AppMenuHandler mAppMenuHandler;
private AppMenuDelegate mAppMenuDelegate;

private ImageButton mForwardButton;
private ImageButton mBookmarkButton;
private ImageButton mDownloadButton;
private ImageButton mPageInfoButton;
private ImageButton mReloadButton;

public AppMenuIconRowFooter(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onFinishInflate() {
super.onFinishInflate();

mForwardButton = findViewById(R.id.forward_menu_id);
mForwardButton.setOnClickListener(this);

mBookmarkButton = findViewById(R.id.bookmark_this_page_id);
mBookmarkButton.setOnClickListener(this);

mDownloadButton = findViewById(R.id.offline_page_id);
mDownloadButton.setOnClickListener(this);

mPageInfoButton = findViewById(R.id.info_menu_id);
mPageInfoButton.setOnClickListener(this);

mReloadButton = findViewById(R.id.reload_menu_id);
mReloadButton.setOnClickListener(this);

// ImageView tinting doesn't work with LevelListDrawable, use Drawable tinting instead.
// See https://crbug.com/891593 for details.
Drawable icon = AppCompatResources.getDrawable(getContext(), R.drawable.btn_reload_stop);
DrawableCompat.setTintList(icon,
AppCompatResources.getColorStateList(
getContext(), R.color.default_icon_color_tint_list));
mReloadButton.setImageDrawable(icon);
}

/**
* Initializes the icons, setting enabled state, drawables, and content descriptions.
* @param appMenuHandler The {@link AppMenu} that contains the icon row.
* @param bookmarkBridge The {@link BookmarkBridge} used to retrieve information about
* bookmarks.
* @param currentTab The current activity {@link Tab}.
* @param appMenuDelegate The AppMenuDelegate to handle options item selection.
*/
public void initialize(AppMenuHandler appMenuHandler, BookmarkBridge bookmarkBridge,
Tab currentTab, AppMenuDelegate appMenuDelegate) {
mAppMenuHandler = appMenuHandler;
mAppMenuDelegate = appMenuDelegate;

mForwardButton.setEnabled(currentTab.canGoForward());

updateBookmarkMenuItem(bookmarkBridge, currentTab);

mDownloadButton.setEnabled(DownloadUtils.isAllowedToDownloadPage(currentTab));

loadingStateChanged(currentTab.isLoading());
}

@Override
public void onClick(View v) {
mAppMenuDelegate.onOptionsItemSelected(v.getId(), null);
mAppMenuHandler.hideAppMenu();
}

/**
* Called when the current tab's load state has changed.
* @param isLoading Whether the tab is currently loading.
*/
public void loadingStateChanged(boolean isLoading) {
mReloadButton.getDrawable().setLevel(isLoading
? getResources().getInteger(R.integer.reload_button_level_stop)
: getResources().getInteger(R.integer.reload_button_level_reload));
mReloadButton.setContentDescription(isLoading
? getContext().getString(R.string.accessibility_btn_stop_loading)
: getContext().getString(R.string.accessibility_btn_refresh));
}

private void updateBookmarkMenuItem(BookmarkBridge bookmarkBridge, Tab currentTab) {
mBookmarkButton.setEnabled(bookmarkBridge.isEditBookmarksEnabled());

if (bookmarkBridge.hasBookmarkIdForTab(currentTab)) {
mBookmarkButton.setImageResource(R.drawable.btn_star_filled);
mBookmarkButton.setContentDescription(getContext().getString(R.string.edit_bookmark));
ApiCompatibilityUtils.setImageTintList(mBookmarkButton,
AppCompatResources.getColorStateList(getContext(), R.color.blue_mode_tint));
} else {
mBookmarkButton.setImageResource(R.drawable.btn_star);
mBookmarkButton.setContentDescription(
getContext().getString(R.string.accessibility_menu_bookmark));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.BraveFeatureList;
import org.chromium.chrome.browser.app.appmenu.AppMenuIconRowFooter;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
Expand All @@ -37,6 +38,7 @@

public class BraveTabbedAppMenuPropertiesDelegate extends TabbedAppMenuPropertiesDelegate {
private Menu mMenu;
AppMenuDelegate mAppMenuDelegate;

public BraveTabbedAppMenuPropertiesDelegate(Context context,
ActivityTabProvider activityTabProvider,
Expand All @@ -49,6 +51,8 @@ public BraveTabbedAppMenuPropertiesDelegate(Context context,
super(context, activityTabProvider, multiWindowModeStateDispatcher, tabModelSelector,
toolbarManager, decorView, appMenuDelegate, overviewModeBehaviorSupplier,
bookmarkBridgeSupplier, modalDialogManager);

mAppMenuDelegate = appMenuDelegate;
}

@Override
Expand Down Expand Up @@ -121,6 +125,12 @@ public void onFooterViewInflated(AppMenuHandler appMenuHandler, View view) {
}
super.onFooterViewInflated(appMenuHandler, view);

if (view instanceof AppMenuIconRowFooter) {
((AppMenuIconRowFooter) view)
.initialize(appMenuHandler, mBookmarkBridge, mActivityTabProvider.get(),
mAppMenuDelegate);
}

// Hide bookmark button if bottom toolbar is enabled
ImageButton bookmarkButton = view.findViewById(R.id.bookmark_this_page_id);
if (bookmarkButton != null && BottomToolbarConfiguration.isBottomToolbarEnabled()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@
import androidx.annotation.ColorInt;

public class ArrowColorDrawable extends ColorDrawable {
public static final int LEFT = 0, TOP = 1, RIGHT = 2, BOTTOM = 3, AUTO = 4;
public static final int LEFT = 0;
public static final int TOP = 1;
public static final int RIGHT = 2;
public static final int BOTTOM = 3;
public static final int AUTO = 4;

private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private final int mBackgroundColor;
Expand Down Expand Up @@ -82,6 +86,7 @@ public void setAlpha(int alpha) {
mPaint.setAlpha(alpha);
}

@Override
public void setColor(@ColorInt int color) {
mPaint.setColor(color);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public class PopupWindowTooltip implements PopupWindow.OnDismissListener {
private final float mPadding;
private final float mArrowWidth;
private final float mArrowHeight;
private boolean dismissed = false;
private boolean dismissed;
private int width;
private int height;

Expand Down Expand Up @@ -311,7 +311,8 @@ public void onGlobalLayout() {
RectF achorRect = PopupWindowTooltipUtils.calculeRectOnScreen(mAnchorView);
RectF contentViewRect =
PopupWindowTooltipUtils.calculeRectOnScreen(mContentLayout);
float x, y;
float x;
float y;
if (mArrowDirection == ArrowColorDrawable.TOP
|| mArrowDirection == ArrowColorDrawable.BOTTOM) {
x = mContentLayout.getPaddingLeft() + dpToPx(mContext, 2);
Expand Down Expand Up @@ -379,7 +380,7 @@ public static class Builder {
private final Context context;
private boolean dismissOnInsideTouch = true;
private boolean dismissOnOutsideTouch = true;
private boolean modal = false;
private boolean modal;
private View contentView;
private View anchorView;
private int arrowDirection = ArrowColorDrawable.AUTO;
Expand Down
Loading