From cf2a2adc87ef3ed8876cad6f490688ae1b85c927 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 28 Jan 2021 21:18:06 +0100 Subject: [PATCH] fix proxy and bookmark page --- build/bromite_patches_list.txt | 1 - .../Add-a-proxy-configuration-page.patch | 7 +- .../Add-bookmark-import-export-actions.patch | 55 +++- ...Activity-reference-from-BookmarkPage.patch | 291 ------------------ 4 files changed, 46 insertions(+), 308 deletions(-) delete mode 100644 build/patches/Revert-Remove-ChromeActivity-reference-from-BookmarkPage.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 68827153..0f40c4c4 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -55,7 +55,6 @@ Add-flags-to-disable-device-motion-orientation-APIs.patch Disable-metrics-on-all-I-O-threads.patch Always-respect-async-dns-flag-regardless-of-SDK-version.patch Add-flag-to-configure-maximum-connections-per-host.patch -Revert-Remove-ChromeActivity-reference-from-BookmarkPage.patch Add-bookmark-import-export-actions.patch Disable-promos-displayed-in-bookmarks-manager.patch Add-an-always-incognito-mode.patch diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 8a313ab3..14101efd 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -14,7 +14,7 @@ Offer auto-complete for the proxy page URL. chrome/browser/browser_resources.grd | 6 + .../prefs/chrome_command_line_pref_store.cc | 2 +- chrome/browser/resources/proxy_config.css | 61 +++ - chrome/browser/resources/proxy_config.html | 79 ++++ + chrome/browser/resources/proxy_config.html | 80 ++++ chrome/browser/resources/proxy_config.js | 262 +++++++++++ chrome/browser/ui/BUILD.gn | 2 + .../webui/chrome_web_ui_controller_factory.cc | 3 + @@ -27,7 +27,7 @@ Offer auto-complete for the proxy page URL. .../proxy_config/proxy_config_dictionary.h | 6 +- net/proxy_resolution/proxy_config.cc | 52 ++- net/proxy_resolution/proxy_config.h | 3 + - 20 files changed, 952 insertions(+), 14 deletions(-) + 20 files changed, 953 insertions(+), 14 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -191,7 +191,7 @@ diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resourc new file mode 100644 --- /dev/null +++ b/chrome/browser/resources/proxy_config.html -@@ -0,0 +1,79 @@ +@@ -0,0 +1,80 @@ + + + @@ -205,6 +205,7 @@ new file mode 100644 + + + ++ + + + diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 34650dd7..b53ba2a3 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -13,7 +13,8 @@ Completely remove contacts picker permission from the file dialog .../browser/bookmarks/BookmarkBridge.java | 47 ++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + .../browser/bookmarks/BookmarkManager.java | 19 ++ - .../browser/bookmarks/BookmarkPage.java | 1 + + .../browser/bookmarks/BookmarkPage.java | 5 +- + .../native_page/NativePageFactory.java | 3 +- chrome/browser/BUILD.gn | 6 +- .../android/bookmarks/bookmark_bridge.cc | 217 ++++++++++++++++++ .../android/bookmarks/bookmark_bridge.h | 20 +- @@ -28,7 +29,7 @@ Completely remove contacts picker permission from the file dialog ui/shell_dialogs/select_file_dialog.h | 2 + .../select_file_dialog_android.cc | 6 + ui/shell_dialogs/select_file_dialog_android.h | 2 + - 22 files changed, 447 insertions(+), 12 deletions(-) + 23 files changed, 452 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -111,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java -@@ -13,6 +13,7 @@ import androidx.annotation.VisibleForTesting; +@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.SnackbarActivity; import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.embedder_support.util.UrlConstants; @@ -119,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * The activity that displays the bookmark UI on the phone. It keeps a {@link BookmarkManager} -@@ -22,6 +23,7 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -24,6 +25,7 @@ import org.chromium.components.embedder_support.util.UrlConstants; public class BookmarkActivity extends SnackbarActivity { private BookmarkManager mBookmarkManager; @@ -127,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm static final int EDIT_BOOKMARK_REQUEST_CODE = 14; public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId"; -@@ -33,6 +35,18 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -38,6 +40,18 @@ public class BookmarkActivity extends SnackbarActivity { if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL; mBookmarkManager.updateForUrl(url); setContentView(mBookmarkManager.getView()); @@ -146,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm } @Override -@@ -49,6 +63,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -54,6 +68,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -263,7 +264,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -31,6 +31,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils; +@@ -32,6 +32,7 @@ import org.chromium.components.browser_ui.util.ConversionUtils; import org.chromium.components.browser_ui.widget.dragreorder.DragStateDelegate; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListLayout; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.SearchDelegate; @@ -271,15 +272,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; import org.chromium.components.favicon.LargeIconBridge; import org.chromium.url.GURL; -@@ -52,6 +53,7 @@ public class BookmarkManager - private Activity mActivity; +@@ -54,6 +55,7 @@ public class BookmarkManager + private ComponentName mOpenBookmarkComponentName; private ViewGroup mMainView; private BookmarkModel mBookmarkModel; + private ActivityWindowAndroid mWindowAndroid; private BookmarkUndoController mUndoController; private final ObserverList mUIObservers = new ObserverList<>(); private BasicNativePage mNativePage; -@@ -322,6 +324,13 @@ public class BookmarkManager +@@ -327,6 +329,13 @@ public class BookmarkManager mNativePage = nativePage; } @@ -293,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * @return Current URL representing the UI state of bookmark manager. If no state has been shown * yet in this session, on phone return last used state stored in preference; on tablet -@@ -494,6 +503,16 @@ public class BookmarkManager +@@ -500,6 +509,16 @@ public class BookmarkManager } } @@ -313,14 +314,42 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -@@ -29,6 +29,7 @@ public class BookmarkPage extends BasicNativePage { +@@ -13,6 +13,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; + import org.chromium.chrome.browser.ui.native_page.BasicNativePage; + import org.chromium.chrome.browser.ui.native_page.NativePageHost; + import org.chromium.components.embedder_support.util.UrlConstants; ++import org.chromium.chrome.browser.app.ChromeActivity; - mManager = new BookmarkManager(activity, false, activity.getSnackbarManager()); + /** + * A native page holding a {@link BookmarkManager} on _tablet_. +@@ -29,11 +30,13 @@ public class BookmarkPage extends BasicNativePage { + * @param host A NativePageHost to load urls. + */ + public BookmarkPage( +- ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host) { ++ ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host, ++ ChromeActivity activity) { + super(host); + + mManager = new BookmarkManager(host.getContext(), componentName, false, snackbarManager); mManager.setBasicNativePage(this); + mManager.setWindow(activity.getWindowAndroid()); mTitle = host.getContext().getResources().getString(R.string.bookmarks); initWithView(mManager.getView()); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +@@ -95,7 +95,8 @@ public class NativePageFactory { + + protected NativePage buildBookmarksPage(Tab tab) { + return new BookmarkPage(mActivity.getComponentName(), mActivity.getSnackbarManager(), +- new TabShim(tab, mActivity)); ++ new TabShim(tab, mActivity), ++ mActivity); + } + + protected NativePage buildDownloadsPage(Tab tab) { diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn diff --git a/build/patches/Revert-Remove-ChromeActivity-reference-from-BookmarkPage.patch b/build/patches/Revert-Remove-ChromeActivity-reference-from-BookmarkPage.patch deleted file mode 100644 index 8b69970d..00000000 --- a/build/patches/Revert-Remove-ChromeActivity-reference-from-BookmarkPage.patch +++ /dev/null @@ -1,291 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sun, 24 Jan 2021 14:47:49 +0100 -Subject: Revert "Remove ChromeActivity reference from BookmarkPage" - -This reverts commit 1858b3af2a7d28e4e8b396a230a486fdc8cb0f0c. ---- - .../java/src/org/chromium/chrome/browser/DEPS | 3 ++ - .../browser/bookmarks/BookmarkActivity.java | 7 +---- - .../browser/bookmarks/BookmarkManager.java | 28 +++++++---------- - .../browser/bookmarks/BookmarkPage.java | 11 ++----- - .../bookmarks/BookmarkUndoController.java | 3 +- - .../browser/bookmarks/BookmarkUtils.java | 30 ++++++++++--------- - .../native_page/NativePageFactory.java | 3 +- - 7 files changed, 37 insertions(+), 48 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DEPS b/chrome/android/java/src/org/chromium/chrome/browser/DEPS ---- a/chrome/android/java/src/org/chromium/chrome/browser/DEPS -+++ b/chrome/android/java/src/org/chromium/chrome/browser/DEPS -@@ -68,6 +68,9 @@ specific_include_rules = { - "CardUnmaskPrompt\.java": [ - "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", - ], -+ "BookmarkPage\.java": [ -+ "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", -+ ], - "QualityEnforcer\.java": [ - "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java", - ], -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java -@@ -10,8 +10,6 @@ import android.text.TextUtils; - - import androidx.annotation.VisibleForTesting; - --import org.chromium.base.IntentUtils; --import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.SnackbarActivity; - import org.chromium.components.bookmarks.BookmarkId; - import org.chromium.components.embedder_support.util.UrlConstants; -@@ -30,10 +28,7 @@ public class BookmarkActivity extends SnackbarActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); -- mBookmarkManager = new BookmarkManager(this, -- IntentUtils.safeGetParcelableExtra( -- getIntent(), IntentHandler.EXTRA_PARENT_COMPONENT), -- true, getSnackbarManager()); -+ mBookmarkManager = new BookmarkManager(this, true, getSnackbarManager()); - String url = getIntent().getDataString(); - if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL; - mBookmarkManager.updateForUrl(url); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java -@@ -4,11 +4,10 @@ - - package org.chromium.chrome.browser.bookmarks; - -+import android.app.Activity; - import android.app.ActivityManager; --import android.content.ComponentName; - import android.content.Context; - import android.text.TextUtils; --import android.view.LayoutInflater; - import android.view.View; - import android.view.ViewGroup; - import android.view.accessibility.AccessibilityManager; -@@ -50,8 +49,7 @@ public class BookmarkManager - - private static boolean sPreventLoadingForTesting; - -- private Context mContext; -- private ComponentName mOpenBookmarkComponentName; -+ private Activity mActivity; - private ViewGroup mMainView; - private BookmarkModel mBookmarkModel; - private BookmarkUndoController mUndoController; -@@ -160,15 +158,12 @@ public class BookmarkManager - /** - * Creates an instance of {@link BookmarkManager}. It also initializes resources, - * bookmark models and jni bridges. -- * @param context The current {@link Context} used to obtain resources or inflate views. -- * @param openBookmarkComponentName The component to use when opening a bookmark. -+ * @param activity The activity context to use. - * @param isDialogUi Whether the main bookmarks UI will be shown in a dialog, not a NativePage. - * @param snackbarManager The {@link SnackbarManager} used to display snackbars. - */ -- public BookmarkManager(Context context, ComponentName openBookmarkComponentName, -- boolean isDialogUi, SnackbarManager snackbarManager) { -- mContext = context; -- mOpenBookmarkComponentName = openBookmarkComponentName; -+ public BookmarkManager(Activity activity, boolean isDialogUi, SnackbarManager snackbarManager) { -+ mActivity = activity; - mIsDialogUi = isDialogUi; - - mSelectionDelegate = new SelectionDelegate() { -@@ -185,7 +180,7 @@ public class BookmarkManager - mDragStateDelegate = new BookmarkDragStateDelegate(); - - mBookmarkModel = new BookmarkModel(); -- mMainView = (ViewGroup) LayoutInflater.from(mContext).inflate(R.layout.bookmark_main, null); -+ mMainView = (ViewGroup) mActivity.getLayoutInflater().inflate(R.layout.bookmark_main, null); - - @SuppressWarnings("unchecked") - SelectableListLayout selectableList = -@@ -194,7 +189,7 @@ public class BookmarkManager - mSelectableListLayout.initializeEmptyView( - R.string.bookmarks_folder_empty, R.string.bookmark_no_result); - -- mAdapter = new BookmarkItemsAdapter(mContext); -+ mAdapter = new BookmarkItemsAdapter(activity); - - mAdapterDataObserver = new AdapterDataObserver() { - @Override -@@ -219,7 +214,7 @@ public class BookmarkManager - - mSelectableListLayout.configureWideDisplayStyle(); - -- mUndoController = new BookmarkUndoController(mContext, mBookmarkModel, snackbarManager); -+ mUndoController = new BookmarkUndoController(activity, mBookmarkModel, snackbarManager); - mBookmarkModel.addObserver(mBookmarkModelObserver); - initializeToLoadingState(); - if (!sPreventLoadingForTesting) { -@@ -405,7 +400,7 @@ public class BookmarkManager - if (state.mState == BookmarkUIState.STATE_FOLDER) { - // Loading and searching states may be pushed to the stack but should never be stored in - // preferences. -- BookmarkUtils.setLastUsedUrl(mContext, state.mUrl); -+ BookmarkUtils.setLastUsedUrl(mActivity, state.mUrl); - // If a loading state is replaced by another loading state, do not notify this change. - if (mNativePage != null) { - mNativePage.onStateChange(state.mUrl, false); -@@ -494,9 +489,8 @@ public class BookmarkManager - - @Override - public void openBookmark(BookmarkId bookmark) { -- if (BookmarkUtils.openBookmark( -- mContext, mOpenBookmarkComponentName, mBookmarkModel, bookmark)) { -- BookmarkUtils.finishActivityOnPhone(mContext); -+ if (BookmarkUtils.openBookmark(mBookmarkModel, mActivity, bookmark)) { -+ BookmarkUtils.finishActivityOnPhone(mActivity); - } - } - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -@@ -4,12 +4,10 @@ - - package org.chromium.chrome.browser.bookmarks; - --import android.content.ComponentName; -- - import androidx.annotation.VisibleForTesting; - - import org.chromium.chrome.R; --import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -+import org.chromium.chrome.browser.app.ChromeActivity; - import org.chromium.chrome.browser.ui.native_page.BasicNativePage; - import org.chromium.chrome.browser.ui.native_page.NativePageHost; - import org.chromium.components.embedder_support.util.UrlConstants; -@@ -23,16 +21,13 @@ public class BookmarkPage extends BasicNativePage { - - /** - * Create a new instance of the bookmarks page. -- * @param componentName The current activity component, used to open bookmarks. -- * @param snackbarManager Allows control over the app snackbar. - * @param activity The activity to get context and manage fragments. - * @param host A NativePageHost to load urls. - */ -- public BookmarkPage( -- ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host) { -+ public BookmarkPage(ChromeActivity activity, NativePageHost host) { - super(host); - -- mManager = new BookmarkManager(host.getContext(), componentName, false, snackbarManager); -+ mManager = new BookmarkManager(activity, false, activity.getSnackbarManager()); - mManager.setBasicNativePage(this); - mTitle = host.getContext().getResources().getString(R.string.bookmarks); - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java -@@ -16,7 +16,8 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; - import java.util.Locale; - - /** -- * Shows an undo bar when the user modifies bookmarks, allowing them to undo their changes. -+ * Shows an undo bar when the user modifies bookmarks, -+ * allowing them to undo their changes. - */ - public class BookmarkUndoController extends BookmarkModelObserver implements - SnackbarManager.SnackbarController, BookmarkDeleteObserver { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -336,16 +336,17 @@ public class BookmarkUtils { - - /** - * Opens a bookmark and reports UMA. -- * @param context The current context used to launch the intent. -- * @param openBookmarkComponentName The component to use when opening a bookmark. - * @param model Bookmarks model to manage the bookmark. -+ * @param activity Activity requesting to open the bookmark. - * @param bookmarkId ID of the bookmark to be opened. - * @return Whether the bookmark was successfully opened. - */ -- public static boolean openBookmark(Context context, ComponentName openBookmarkComponentName, -- BookmarkModel model, BookmarkId bookmarkId) { -+ public static boolean openBookmark( -+ BookmarkModel model, Activity activity, BookmarkId bookmarkId) { - if (model.getBookmarkById(bookmarkId) == null) return false; - -+ String url = model.getBookmarkById(bookmarkId).getUrl(); -+ - RecordUserAction.record("MobileBookmarkManagerEntryOpened"); - RecordHistogram.recordEnumeratedHistogram( - "Bookmarks.OpenBookmarkType", bookmarkId.getType(), BookmarkType.LAST + 1); -@@ -353,9 +354,9 @@ public class BookmarkUtils { - BookmarkItem bookmarkItem = model.getBookmarkById(bookmarkId); - if (bookmarkItem.getId().getType() == BookmarkType.READING_LIST) { - model.setReadStatusForReadingList(bookmarkItem.getUrl(), true); -- openUrlInCustomTab(context, bookmarkItem.getUrl()); -+ openUrlInCustomTab(activity, bookmarkItem.getUrl()); - } else { -- openUrl(context, bookmarkItem.getUrl(), openBookmarkComponentName); -+ openUrl(activity, bookmarkItem.getUrl(), activity.getComponentName()); - } - return true; - } -@@ -383,10 +384,10 @@ public class BookmarkUtils { - : R.color.default_icon_color_tint_list; - } - -- private static void openUrl(Context context, String url, ComponentName componentName) { -+ private static void openUrl(Activity activity, String url, ComponentName componentName) { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); -- intent.putExtra( -- Browser.EXTRA_APPLICATION_ID, context.getApplicationContext().getPackageName()); -+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, -+ activity.getApplicationContext().getPackageName()); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK); - -@@ -396,13 +397,13 @@ public class BookmarkUtils { - // If the bookmark manager is shown in a tab on a phone (rather than in a separate - // activity) the component name may be null. Send the intent through - // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012. -- intent.setClass(context.getApplicationContext(), ChromeLauncherActivity.class); -+ intent.setClass(activity, ChromeLauncherActivity.class); - } - - IntentHandler.startActivityForTrustedIntent(intent); - } - -- private static void openUrlInCustomTab(Context context, String url) { -+ private static void openUrlInCustomTab(Activity activity, String url) { - CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); - builder.setShowTitle(true); - builder.setShareState(CustomTabsIntent.SHARE_STATE_ON); -@@ -410,9 +411,10 @@ public class BookmarkUtils { - customTabIntent.intent.setData(Uri.parse(url)); - - Intent intent = LaunchIntentDispatcher.createCustomTabActivityIntent( -- context, customTabIntent.intent); -- intent.setPackage(context.getPackageName()); -- intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); -+ activity.getApplicationContext(), customTabIntent.intent); -+ intent.setPackage(activity.getApplicationContext().getPackageName()); -+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, -+ activity.getApplicationContext().getPackageName()); - intent.putExtra(CustomTabIntentDataProvider.EXTRA_UI_TYPE, CustomTabsUiType.READ_LATER); - intent.putExtra(IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, - Profile.getLastUsedRegularProfile().isOffTheRecord()); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -94,8 +94,7 @@ public class NativePageFactory { - } - - protected NativePage buildBookmarksPage(Tab tab) { -- return new BookmarkPage(mActivity.getComponentName(), mActivity.getSnackbarManager(), -- new TabShim(tab, mActivity)); -+ return new BookmarkPage(mActivity, new TabShim(tab, mActivity)); - } - - protected NativePage buildDownloadsPage(Tab tab) { --- -2.17.1 -