Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf2a2adc authored by Carmelo Messina's avatar Carmelo Messina
Browse files

fix proxy and bookmark page

parent 47c948a9
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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
+4 −3
Original line number Diff line number Diff line
@@ -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 @@
+<!doctype html>
+<html>
+<head>
@@ -205,6 +205,7 @@ new file mode 100644
+<script src="chrome://resources/js/ios/web_ui.js"></script>
+</if>
+
+<script src="chrome://resources/js/assert.js"></script>
+<script src="chrome://resources/js/util.js"></script>
+<script src="chrome://resources/js/cr.js"></script>
+<script src="chrome://proxy/proxy_config.js"></script>
+42 −13
Original line number Diff line number Diff line
@@ -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<BookmarkUIObserver> 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;
 
 /**
  * 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(activity, false, activity.getSnackbarManager());
         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
+0 −291
Original line number Diff line number Diff line
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<BookmarkId>() {
@@ -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<BookmarkId> 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