Pārlūkot izejas kodu

fix proxy and bookmark page

Carmelo Messina 4 gadi atpakaļ
vecāks
revīzija
cf2a2adc87

+ 0 - 1
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

+ 4 - 3
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 @@
 +<!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
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<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
build/patches/Revert-Remove-ChromeActivity-reference-from-BookmarkPage.patch

@@ -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<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
-