Skip to content

Commit 60c86e0

Browse files
bridivermkarolin
authored andcommitted
Merge pull request #10664 from brave/cr97
1 parent 26282ec commit 60c86e0

File tree

522 files changed

+2585
-2716
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

522 files changed

+2585
-2716
lines changed

android/brave_java_sources.gni

+2
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,13 @@ brave_java_sources = [
131131
"../../brave/android/java/org/chromium/chrome/browser/download/settings/BraveDownloadSettings.java",
132132
"../../brave/android/java/org/chromium/chrome/browser/externalnav/BraveExternalNavigationHandler.java",
133133
"../../brave/android/java/org/chromium/chrome/browser/feedback/BraveHelpAndFeedbackLauncherImpl.java",
134+
"../../brave/android/java/org/chromium/chrome/browser/firstrun/BraveFirstRunFlowSequencer.java",
134135
"../../brave/android/java/org/chromium/chrome/browser/firstrun/BraveFreIntentCreator.java",
135136
"../../brave/android/java/org/chromium/chrome/browser/firstrun/P3aOnboardingActivity.java",
136137
"../../brave/android/java/org/chromium/chrome/browser/help/BraveHelpAndFeedbackLauncher.java",
137138
"../../brave/android/java/org/chromium/chrome/browser/homepage/BraveHomepageManager.java",
138139
"../../brave/android/java/org/chromium/chrome/browser/homepage/settings/BraveHomepageSettings.java",
140+
"../../brave/android/java/org/chromium/chrome/browser/infobar/BraveInfoBarIdentifier.java",
139141
"../../brave/android/java/org/chromium/chrome/browser/informers/BraveAndroidSyncDisabledInformer.java",
140142
"../../brave/android/java/org/chromium/chrome/browser/language/settings/BraveLanguageSettings.java",
141143
"../../brave/android/java/org/chromium/chrome/browser/local_database/BraveStatsTable.java",

android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java

+15-14
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@
1313

1414
import androidx.annotation.NonNull;
1515
import androidx.annotation.Nullable;
16+
import androidx.annotation.Px;
1617

1718
import org.chromium.base.ApiCompatibilityUtils;
1819
import org.chromium.base.supplier.Supplier;
1920
import org.chromium.chrome.R;
2021
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
21-
import org.chromium.chrome.browser.feed.shared.FeedSurfaceDelegate;
22+
import org.chromium.chrome.browser.feed.hooks.FeedHooks;
23+
import org.chromium.chrome.browser.feed.sections.SectionHeaderView;
24+
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher;
2225
import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate;
2326
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
24-
import org.chromium.chrome.browser.ntp.SnapScrollHelper;
25-
import org.chromium.chrome.browser.ntp.snippets.SectionHeaderView;
2627
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
2728
import org.chromium.chrome.browser.profiles.Profile;
2829
import org.chromium.chrome.browser.share.ShareDelegate;
@@ -42,24 +43,24 @@ public class BraveFeedSurfaceCoordinator extends FeedSurfaceCoordinator {
4243

4344
public BraveFeedSurfaceCoordinator(Activity activity, SnackbarManager snackbarManager,
4445
WindowAndroid windowAndroid, @Nullable SnapScrollHelper snapScrollHelper,
45-
@Nullable View ntpHeader, @Nullable SectionHeaderView sectionHeaderView,
46-
boolean showDarkBackground, FeedSurfaceDelegate delegate,
47-
@Nullable NativePageNavigationDelegate pageNavigationDelegate, Profile profile,
48-
boolean isPlaceholderShownInitially, BottomSheetController bottomSheetController,
46+
@Nullable View ntpHeader, @Px int toolbarHeight, boolean showDarkBackground,
47+
FeedSurfaceDelegate delegate, Profile profile, boolean isPlaceholderShownInitially,
48+
BottomSheetController bottomSheetController,
4949
Supplier<ShareDelegate> shareDelegateSupplier,
5050
@Nullable ScrollableContainerDelegate externalScrollableContainerDelegate,
5151
@NewTabPageLaunchOrigin int launchOrigin,
5252
PrivacyPreferencesManagerImpl privacyPreferencesManager,
5353
@NonNull Supplier<Toolbar> toolbarSupplier,
5454
FeedLaunchReliabilityLoggingState launchReliabilityLoggingState,
5555
@Nullable FeedSwipeRefreshLayout swipeRefreshLayout, boolean overScrollDisabled,
56-
@Nullable ViewGroup viewportView, @NonNull BookmarkBridge bookmarkBridge) {
57-
super(activity, snackbarManager, windowAndroid, snapScrollHelper, ntpHeader,
58-
sectionHeaderView, showDarkBackground, delegate, pageNavigationDelegate, profile,
59-
isPlaceholderShownInitially, bottomSheetController, shareDelegateSupplier,
60-
externalScrollableContainerDelegate, launchOrigin, privacyPreferencesManager,
61-
toolbarSupplier, launchReliabilityLoggingState, swipeRefreshLayout,
62-
overScrollDisabled, viewportView, bookmarkBridge);
56+
@Nullable ViewGroup viewportView, FeedActionDelegate actionDelegate,
57+
HelpAndFeedbackLauncher helpAndFeedbackLauncher, FeedHooks feedHooks) {
58+
super(activity, snackbarManager, windowAndroid, snapScrollHelper, ntpHeader, toolbarHeight,
59+
showDarkBackground, delegate, profile, isPlaceholderShownInitially,
60+
bottomSheetController, shareDelegateSupplier, externalScrollableContainerDelegate,
61+
launchOrigin, privacyPreferencesManager, toolbarSupplier,
62+
launchReliabilityLoggingState, swipeRefreshLayout, overScrollDisabled, viewportView,
63+
actionDelegate, helpAndFeedbackLauncher, feedHooks);
6364
}
6465

6566
@Override

android/java/apk_for_test.flags

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,10 @@
5050

5151
-keep class org.chromium.chrome.browser.ntp.NewTabPage {
5252
public <init>(...);
53+
*** mBrowserControlsStateProvider;
5354
*** mNewTabPageLayout;
5455
*** mFeedSurfaceProvider;
56+
*** mToolbarSupplier;
5557
}
5658

5759
-keep class org.chromium.chrome.browser.ntp.BraveNewTabPage {
@@ -136,7 +138,6 @@
136138
*** mOverviewModeBehaviorSupplier;
137139
*** mSnackbarManager;
138140
*** onOrientationChange(...);
139-
*** updateButtonStatus(...);
140141
*** updateBookmarkButtonStatus(...);
141142
*** updateReloadState(...);
142143
}

android/java/org/chromium/chrome/browser/BraveSyncInformers.java

+4-8
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.chromium.chrome.R;
1616
import org.chromium.chrome.browser.BraveSyncWorker;
1717
import org.chromium.chrome.browser.app.BraveActivity;
18-
import org.chromium.chrome.browser.infobar.InfoBarIdentifier;
18+
import org.chromium.chrome.browser.infobar.BraveInfoBarIdentifier;
1919
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
2020
import org.chromium.chrome.browser.settings.BraveSyncScreensPreference;
2121
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
@@ -81,15 +81,11 @@ public boolean onInfoBarLinkClicked() {
8181
return false;
8282
}
8383
},
84-
// must be SYNC_V2_MIGRATE_INFOBAR_DELEGATE, but now it is introduced through
85-
// src/brave/chromium_src/components/infobars/core/infobar_delegate.h and
86-
// java enums are generated by //components/infobars/core:infobar_generated_enums
87-
// who does not understand `brave/chromium_src`
88-
InfoBarIdentifier.INLINE_UPDATE_READY_INFOBAR_ANDROID,
89-
activity,
84+
BraveInfoBarIdentifier.SYNC_V2_MIGRATE_INFOBAR_DELEGATE, activity,
9085
R.drawable.sync_icon /* drawableId */,
9186
activity.getString(R.string.brave_sync_v2_migrate_infobar_message) /* message */,
92-
activity.getString(R.string.brave_sync_v2_migrate_infobar_command) /* primaryText */,
87+
activity.getString(
88+
R.string.brave_sync_v2_migrate_infobar_command) /* primaryText */,
9389
null /* secondaryText */, null /* linkText */, false /* autoExpire */);
9490
BraveSyncWorker.get().setSyncV2MigrateNoticeDismissed(true);
9591
}

android/java/org/chromium/chrome/browser/app/appmenu/AppMenuIconRowFooter.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ private void updateBookmarkMenuItem(BookmarkBridge bookmarkBridge, Tab currentTa
116116
mBookmarkButton.setImageResource(R.drawable.btn_star_filled);
117117
mBookmarkButton.setContentDescription(getContext().getString(R.string.edit_bookmark));
118118
ApiCompatibilityUtils.setImageTintList(mBookmarkButton,
119-
AppCompatResources.getColorStateList(getContext(), R.color.blue_mode_tint));
119+
AppCompatResources.getColorStateList(
120+
getContext(), R.color.default_icon_color_accent1_tint_list));
120121
} else {
121122
mBookmarkButton.setImageResource(R.drawable.btn_star);
122123
mBookmarkButton.setContentDescription(

android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java

+8-6
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747

4848
public class BraveTabbedAppMenuPropertiesDelegate extends TabbedAppMenuPropertiesDelegate {
4949
private Menu mMenu;
50-
AppMenuDelegate mAppMenuDelegate;
50+
private AppMenuDelegate mAppMenuDelegate;
51+
private ObservableSupplier<BookmarkBridge> mBookmarkBridgeSupplier;
5152

5253
public BraveTabbedAppMenuPropertiesDelegate(Context context,
5354
ActivityTabProvider activityTabProvider,
@@ -65,6 +66,7 @@ public BraveTabbedAppMenuPropertiesDelegate(Context context,
6566
snackbarManager);
6667

6768
mAppMenuDelegate = appMenuDelegate;
69+
mBookmarkBridgeSupplier = bookmarkBridgeSupplier;
6870
}
6971

7072
@Override
@@ -158,11 +160,11 @@ public void prepareMenu(Menu menu, AppMenuHandler handler) {
158160
shareItem.setIcon(AppCompatResources.getDrawable(mContext, R.drawable.share_icon));
159161
}
160162

161-
// By this we forcibly initialize mBookmarkBridge
163+
// By this we forcibly initialize BookmarkBridge
162164
MenuItem bookmarkItem = menu.findItem(R.id.bookmark_this_page_id);
163165
Tab currentTab = mActivityTabProvider.get();
164166
if (bookmarkItem != null && currentTab != null) {
165-
updateBookmarkMenuItem(bookmarkItem, currentTab);
167+
updateBookmarkMenuItemShortcut(bookmarkItem, currentTab);
166168
}
167169
}
168170

@@ -181,7 +183,7 @@ public void onMenuDismissed() {
181183
@Override
182184
public void onFooterViewInflated(AppMenuHandler appMenuHandler, View view) {
183185
// If it's still null, just hide the whole view
184-
if (mBookmarkBridge == null) {
186+
if (mBookmarkBridgeSupplier.get() == null) {
185187
if (view != null) {
186188
view.setVisibility(View.GONE);
187189
}
@@ -193,8 +195,8 @@ public void onFooterViewInflated(AppMenuHandler appMenuHandler, View view) {
193195

194196
if (view instanceof AppMenuIconRowFooter) {
195197
((AppMenuIconRowFooter) view)
196-
.initialize(appMenuHandler, mBookmarkBridge, mActivityTabProvider.get(),
197-
mAppMenuDelegate);
198+
.initialize(appMenuHandler, mBookmarkBridgeSupplier.get(),
199+
mActivityTabProvider.get(), mAppMenuDelegate);
198200
}
199201

200202
// Hide bookmark button if bottom toolbar is enabled
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
2+
* This Source Code Form is subject to the terms of the Mozilla Public
3+
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
4+
* You can obtain one at http://mozilla.org/MPL/2.0/. */
5+
6+
package org.chromium.chrome.browser.firstrun;
7+
8+
import android.app.Activity;
9+
10+
public abstract class BraveFirstRunFlowSequencer extends FirstRunFlowSequencer {
11+
public BraveFirstRunFlowSequencer(Activity activity) {
12+
super(activity);
13+
}
14+
15+
@Override
16+
public void start() {
17+
super.start();
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
2+
* This Source Code Form is subject to the terms of the Mozilla Public
3+
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
4+
* You can obtain one at http://mozilla.org/MPL/2.0/. */
5+
6+
package org.chromium.chrome.browser.infobar;
7+
8+
import androidx.annotation.IntDef;
9+
10+
import java.lang.annotation.Retention;
11+
import java.lang.annotation.RetentionPolicy;
12+
13+
// Reflects enum items from chromium_src/components/infobars/core/infobar_delegate.h
14+
15+
@IntDef({BraveInfoBarIdentifier.INVALID, BraveInfoBarIdentifier.BRAVE_CONFIRM_P3A_INFOBAR_DELEGATE,
16+
BraveInfoBarIdentifier.WAYBACK_MACHINE_INFOBAR_DELEGATE,
17+
BraveInfoBarIdentifier.SYNC_V2_MIGRATE_INFOBAR_DELEGATE,
18+
BraveInfoBarIdentifier.ANDROID_SYSTEM_SYNC_DISABLED_INFOBAR})
19+
20+
@Retention(RetentionPolicy.SOURCE)
21+
public @interface BraveInfoBarIdentifier {
22+
int INVALID = -1;
23+
int BRAVE_CONFIRM_P3A_INFOBAR_DELEGATE = 500;
24+
int WAYBACK_MACHINE_INFOBAR_DELEGATE = 502;
25+
int SYNC_V2_MIGRATE_INFOBAR_DELEGATE = 503;
26+
int ANDROID_SYSTEM_SYNC_DISABLED_INFOBAR = 504;
27+
}

android/java/org/chromium/chrome/browser/informers/BraveAndroidSyncDisabledInformer.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.chromium.base.Log;
1616
import org.chromium.chrome.R;
1717
import org.chromium.chrome.browser.app.BraveActivity;
18-
import org.chromium.chrome.browser.infobar.InfoBarIdentifier;
18+
import org.chromium.chrome.browser.infobar.BraveInfoBarIdentifier;
1919
import org.chromium.chrome.browser.sync.SyncService;
2020
import org.chromium.chrome.browser.tab.Tab;
2121
import org.chromium.chrome.browser.ui.messages.infobar.BraveSimpleConfirmInfoBarBuilder;
@@ -92,11 +92,7 @@ public boolean onInfoBarLinkClicked() {
9292
return false;
9393
}
9494
},
95-
// must be enum from
96-
// src/brave/chromium_src/components/infobars/core/infobar_delegate.h and java enums
97-
// are generated by //components/infobars/core:infobar_generated_enums who does not
98-
// understand `brave/chromium_src`
99-
InfoBarIdentifier.INLINE_UPDATE_READY_INFOBAR_ANDROID, activity,
95+
BraveInfoBarIdentifier.ANDROID_SYSTEM_SYNC_DISABLED_INFOBAR, activity,
10096
R.drawable.ic_warning_circle,
10197
activity.getString(R.string.brave_sync_android_sync_disabled),
10298
activity.getString(R.string.brave_open_system_sync_settings),

android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java

+16-11
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,12 @@
1717
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
1818
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
1919
import org.chromium.chrome.browser.feed.BraveFeedSurfaceCoordinator;
20+
import org.chromium.chrome.browser.feed.FeedFeatures;
21+
import org.chromium.chrome.browser.feed.FeedLaunchReliabilityLoggingState;
22+
import org.chromium.chrome.browser.feed.FeedSurfaceProvider;
2023
import org.chromium.chrome.browser.feed.FeedSwipeRefreshLayout;
21-
import org.chromium.chrome.browser.feed.shared.FeedFeatures;
22-
import org.chromium.chrome.browser.feed.shared.FeedSurfaceProvider;
24+
import org.chromium.chrome.browser.feed.hooks.FeedHooksImpl;
25+
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
2326
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
2427
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
2528
import org.chromium.chrome.browser.profiles.Profile;
@@ -29,13 +32,16 @@
2932
import org.chromium.chrome.browser.toolbar.top.Toolbar;
3033
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
3134
import org.chromium.chrome.browser.ui.native_page.NativePageHost;
35+
import org.chromium.chrome.browser.xsurface.FeedLaunchReliabilityLogger.SurfaceType;
3236
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
3337
import org.chromium.ui.base.WindowAndroid;
3438

3539
public class BraveNewTabPage extends NewTabPage {
36-
private Supplier<Toolbar> mToolbarSupplier;
40+
// To delete in bytecode, members from parent class will be used instead.
41+
private BrowserControlsStateProvider mBrowserControlsStateProvider;
3742
private NewTabPageLayout mNewTabPageLayout;
3843
private FeedSurfaceProvider mFeedSurfaceProvider;
44+
private Supplier<Toolbar> mToolbarSupplier;
3945

4046
public BraveNewTabPage(Activity activity,
4147
BrowserControlsStateProvider browserControlsStateProvider,
@@ -55,8 +61,6 @@ public BraveNewTabPage(Activity activity,
5561
if (mNewTabPageLayout instanceof BraveNewTabPageLayout) {
5662
((BraveNewTabPageLayout) mNewTabPageLayout).setTab(tab);
5763
}
58-
59-
mToolbarSupplier = toolbarSupplier;
6064
}
6165

6266
@Override
@@ -71,16 +75,17 @@ protected void initializeMainView(Activity activity, WindowAndroid windowAndroid
7175

7276
assert !FeedFeatures.isFeedEnabled();
7377
mFeedSurfaceProvider = new BraveFeedSurfaceCoordinator(activity, snackbarManager,
74-
windowAndroid, new SnapScrollHelper(mNewTabPageManager, mNewTabPageLayout),
75-
mNewTabPageLayout, null, isInNightMode, this,
76-
mNewTabPageManager.getNavigationDelegate(), profile,
78+
windowAndroid, new SnapScrollHelperImpl(mNewTabPageManager, mNewTabPageLayout),
79+
mNewTabPageLayout, mBrowserControlsStateProvider.getTopControlsHeight(),
80+
isInNightMode, this, profile,
7781
/* isPlaceholderShownInitially= */ false, bottomSheetController,
7882
shareDelegateSupplier, /* externalScrollableContainerDelegate= */ null,
7983
NewTabPageUtils.decodeOriginFromNtpUrl(url),
8084
PrivacyPreferencesManagerImpl.getInstance(), mToolbarSupplier,
81-
/* FeedLaunchReliabilityLoggingState */ null,
85+
new FeedLaunchReliabilityLoggingState(SurfaceType.NEW_TAB_PAGE, mConstructedTimeNs),
8286
FeedSwipeRefreshLayout.create(activity, R.id.toolbar_container),
83-
/* overScrollDisabled= */ false,
84-
/* viewportView= */ null, new BookmarkBridge(profile));
87+
/* overScrollDisabled= */ false, /* viewportView= */ null,
88+
/* actionDelegate= */ null, HelpAndFeedbackLauncherImpl.getInstance(),
89+
FeedHooksImpl.getInstance());
8590
}
8691
}

android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
9090
import org.chromium.chrome.browser.custom_layout.VerticalViewPager;
9191
import org.chromium.chrome.browser.explore_sites.ExploreSitesBridge;
92+
import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
9293
import org.chromium.chrome.browser.flags.ChromeFeatureList;
9394
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
9495
import org.chromium.chrome.browser.local_database.DatabaseHelper;
@@ -1211,7 +1212,7 @@ private void processFeed() {
12111212
@Override
12121213
public void initialize(NewTabPageManager manager, Activity activity,
12131214
TileGroup.Delegate tileGroupDelegate, boolean searchProviderHasLogo,
1214-
boolean searchProviderIsGoogle, ScrollDelegate scrollDelegate,
1215+
boolean searchProviderIsGoogle, FeedSurfaceScrollDelegate scrollDelegate,
12151216
ContextMenuManager contextMenuManager, UiConfig uiConfig, Supplier<Tab> tabProvider,
12161217
ActivityLifecycleDispatcher lifecycleDispatcher, NewTabPageUma uma, boolean isIncognito,
12171218
WindowAndroid windowAndroid) {

0 commit comments

Comments
 (0)