OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser; | 5 package org.chromium.chrome.browser; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.text.TextUtils; | 8 import android.text.TextUtils; |
9 import android.view.ActionMode; | 9 import android.view.ActionMode; |
10 import android.view.Menu; | 10 import android.view.Menu; |
11 import android.view.MenuItem; | 11 import android.view.MenuItem; |
12 | 12 |
13 import org.chromium.base.metrics.RecordUserAction; | 13 import org.chromium.base.metrics.RecordUserAction; |
14 import org.chromium.chrome.browser.firstrun.FirstRunStatus; | |
15 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; | 14 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; |
16 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 15 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
17 import org.chromium.chrome.browser.tab.Tab; | 16 import org.chromium.chrome.browser.tab.Tab; |
18 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; | 17 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
19 import org.chromium.content.R; | 18 import org.chromium.content.R; |
20 import org.chromium.content_public.browser.ActionModeCallbackHelper; | 19 import org.chromium.content_public.browser.ActionModeCallbackHelper; |
21 import org.chromium.content_public.browser.LoadUrlParams; | 20 import org.chromium.content_public.browser.LoadUrlParams; |
22 import org.chromium.ui.base.PageTransition; | 21 import org.chromium.ui.base.PageTransition; |
23 | 22 |
24 /** | 23 /** |
25 * A class that handles selection action mode for an associated {@link Tab}. | 24 * A class that handles selection action mode for an associated {@link Tab}. |
26 */ | 25 */ |
27 public class ChromeActionModeCallback implements ActionMode.Callback { | 26 public class ChromeActionModeCallback implements ActionMode.Callback { |
28 private final Context mContext; | 27 private final Context mContext; |
29 private final Tab mTab; | 28 private final Tab mTab; |
30 private final ActionModeCallbackHelper mHelper; | 29 private final ActionModeCallbackHelper mHelper; |
31 | 30 |
32 public ChromeActionModeCallback(Context context, Tab tab, ActionModeCallback
Helper helper) { | 31 public ChromeActionModeCallback(Context context, Tab tab, ActionModeCallback
Helper helper) { |
33 mContext = context; | 32 mContext = context; |
34 mTab = tab; | 33 mTab = tab; |
35 mHelper = helper; | 34 mHelper = helper; |
36 } | 35 } |
37 | 36 |
38 @Override | 37 @Override |
39 public boolean onCreateActionMode(ActionMode mode, Menu menu) { | 38 public boolean onCreateActionMode(ActionMode mode, Menu menu) { |
40 notifyContextualActionBarVisibilityChanged(true); | 39 notifyContextualActionBarVisibilityChanged(true); |
41 | |
42 int allowedActionModes = ActionModeCallbackHelper.MENU_ITEM_PROCESS_TEXT | |
43 | ActionModeCallbackHelper.MENU_ITEM_SHARE; | |
44 // Disable options that expose additional Chrome functionality prior to
the FRE being | |
45 // completed (i.e. creation of a new tab). | |
46 if (FirstRunStatus.getFirstRunFlowComplete()) { | |
47 allowedActionModes |= ActionModeCallbackHelper.MENU_ITEM_WEB_SEARCH; | |
48 } | |
49 mHelper.setAllowedMenuItems(allowedActionModes); | |
50 | |
51 mHelper.onCreateActionMode(mode, menu); | 40 mHelper.onCreateActionMode(mode, menu); |
52 return true; | 41 return true; |
53 } | 42 } |
54 | 43 |
55 @Override | 44 @Override |
56 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { | 45 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { |
57 notifyContextualActionBarVisibilityChanged(true); | 46 notifyContextualActionBarVisibilityChanged(true); |
58 return mHelper.onPrepareActionMode(mode, menu); | 47 return mHelper.onPrepareActionMode(mode, menu); |
59 } | 48 } |
60 | 49 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 String headers = GeolocationHeader.getGeoHeader(mContext.getApplicationC
ontext(), | 84 String headers = GeolocationHeader.getGeoHeader(mContext.getApplicationC
ontext(), |
96 url, mTab.isIncognito()); | 85 url, mTab.isIncognito()); |
97 | 86 |
98 LoadUrlParams loadUrlParams = new LoadUrlParams(url); | 87 LoadUrlParams loadUrlParams = new LoadUrlParams(url); |
99 loadUrlParams.setVerbatimHeaders(headers); | 88 loadUrlParams.setVerbatimHeaders(headers); |
100 loadUrlParams.setTransitionType(PageTransition.GENERATED); | 89 loadUrlParams.setTransitionType(PageTransition.GENERATED); |
101 mTab.getTabModelSelector().openNewTab(loadUrlParams, | 90 mTab.getTabModelSelector().openNewTab(loadUrlParams, |
102 TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, mTab.isIncognito(
)); | 91 TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, mTab.isIncognito(
)); |
103 } | 92 } |
104 } | 93 } |
OLD | NEW |