Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(977)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/ChromeTab.java

Issue 1242613002: [Android] Supporting floating select ActionModes for web content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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.tab; 5 package org.chromium.chrome.browser.tab;
6 6
7 import android.annotation.TargetApi; 7 import android.annotation.TargetApi;
8 import android.app.ActivityManager; 8 import android.app.ActivityManager;
9 import android.content.Context; 9 import android.content.Context;
10 import android.content.Intent; 10 import android.content.Intent;
11 import android.graphics.Rect; 11 import android.graphics.Rect;
12 import android.media.AudioManager; 12 import android.media.AudioManager;
13 import android.os.Build; 13 import android.os.Build;
14 import android.os.Handler; 14 import android.os.Handler;
15 import android.os.Message; 15 import android.os.Message;
16 import android.text.TextUtils; 16 import android.text.TextUtils;
17 import android.util.Pair; 17 import android.util.Pair;
18 import android.view.ActionMode;
19 import android.view.ContextMenu; 18 import android.view.ContextMenu;
20 import android.view.KeyEvent; 19 import android.view.KeyEvent;
21 import android.view.View; 20 import android.view.View;
22 21
23 import org.chromium.base.Log; 22 import org.chromium.base.Log;
24 import org.chromium.base.TraceEvent; 23 import org.chromium.base.TraceEvent;
25 import org.chromium.base.VisibleForTesting; 24 import org.chromium.base.VisibleForTesting;
26 import org.chromium.base.metrics.RecordUserAction; 25 import org.chromium.base.metrics.RecordUserAction;
27 import org.chromium.chrome.R; 26 import org.chromium.chrome.R;
28 import org.chromium.chrome.browser.ChromeActivity; 27 import org.chromium.chrome.browser.ChromeActivity;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; 64 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
66 import org.chromium.chrome.browser.tabmodel.TabModelUtils; 65 import org.chromium.chrome.browser.tabmodel.TabModelUtils;
67 import org.chromium.chrome.browser.util.FeatureUtilities; 66 import org.chromium.chrome.browser.util.FeatureUtilities;
68 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; 67 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
69 import org.chromium.components.navigation_interception.InterceptNavigationDelega te; 68 import org.chromium.components.navigation_interception.InterceptNavigationDelega te;
70 import org.chromium.components.navigation_interception.NavigationParams; 69 import org.chromium.components.navigation_interception.NavigationParams;
71 import org.chromium.content.browser.ActivityContentVideoViewClient; 70 import org.chromium.content.browser.ActivityContentVideoViewClient;
72 import org.chromium.content.browser.ContentVideoViewClient; 71 import org.chromium.content.browser.ContentVideoViewClient;
73 import org.chromium.content.browser.ContentViewClient; 72 import org.chromium.content.browser.ContentViewClient;
74 import org.chromium.content.browser.ContentViewCore; 73 import org.chromium.content.browser.ContentViewCore;
75 import org.chromium.content.browser.WebActionMode; 74 import org.chromium.content.browser.WebActionModeCallback;
76 import org.chromium.content.browser.WebActionModeCallback.ActionHandler; 75 import org.chromium.content.browser.WebActionModeCallback.ActionHandler;
77 import org.chromium.content.browser.crypto.CipherFactory; 76 import org.chromium.content.browser.crypto.CipherFactory;
78 import org.chromium.content_public.browser.GestureStateListener; 77 import org.chromium.content_public.browser.GestureStateListener;
79 import org.chromium.content_public.browser.InvalidateTypes; 78 import org.chromium.content_public.browser.InvalidateTypes;
80 import org.chromium.content_public.browser.LoadUrlParams; 79 import org.chromium.content_public.browser.LoadUrlParams;
81 import org.chromium.content_public.browser.NavigationController; 80 import org.chromium.content_public.browser.NavigationController;
82 import org.chromium.content_public.browser.WebContents; 81 import org.chromium.content_public.browser.WebContents;
83 import org.chromium.content_public.browser.WebContentsObserver; 82 import org.chromium.content_public.browser.WebContentsObserver;
84 import org.chromium.content_public.common.ConsoleMessageLevel; 83 import org.chromium.content_public.common.ConsoleMessageLevel;
85 import org.chromium.content_public.common.Referrer; 84 import org.chromium.content_public.common.Referrer;
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 mActivity.getTabModelSelector().openNewTab(loadUrlParams, 753 mActivity.getTabModelSelector().openNewTab(loadUrlParams,
755 TabLaunchType.FROM_LONGPRESS_FOREGROUND, ChromeTab.this, isIncognito()); 754 TabLaunchType.FROM_LONGPRESS_FOREGROUND, ChromeTab.this, isIncognito());
756 } 755 }
757 756
758 @Override 757 @Override
759 public boolean doesPerformWebSearch() { 758 public boolean doesPerformWebSearch() {
760 return true; 759 return true;
761 } 760 }
762 761
763 @Override 762 @Override
764 public WebActionMode startActionMode( 763 public WebActionModeCallback getWebActionModeCallback(
765 View view, ActionHandler actionHandler, boolean floating) { 764 Context context, ActionHandler actionHandler) {
766 if (floating) return null; 765 return new ChromeWebActionModeCallback(context, actionHandler);
767 ChromeWebActionModeCallback callback =
768 new ChromeWebActionModeCallback(view.getContext(), actio nHandler);
769 ActionMode actionMode = view.startActionMode(callback);
770 return actionMode != null ? new WebActionMode(actionMode) : null ;
771 } 766 }
772 767
773 @Override 768 @Override
774 public boolean supportsFloatingActionMode() {
775 return false;
776 }
777
778 @Override
779 public ContentVideoViewClient getContentVideoViewClient() { 769 public ContentVideoViewClient getContentVideoViewClient() {
780 return new ActivityContentVideoViewClient(mActivity) { 770 return new ActivityContentVideoViewClient(mActivity) {
781 @Override 771 @Override
782 public void enterFullscreenVideo(View view) { 772 public void enterFullscreenVideo(View view) {
783 super.enterFullscreenVideo(view); 773 super.enterFullscreenVideo(view);
784 FullscreenManager fullscreenManager = getFullscreenManag er(); 774 FullscreenManager fullscreenManager = getFullscreenManag er();
785 if (fullscreenManager != null) { 775 if (fullscreenManager != null) {
786 fullscreenManager.setOverlayVideoMode(true); 776 fullscreenManager.setOverlayVideoMode(true);
787 // Disable double tap for video. 777 // Disable double tap for video.
788 if (getContentViewCore() != null) { 778 if (getContentViewCore() != null) {
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after
1366 @VisibleForTesting 1356 @VisibleForTesting
1367 public OverrideUrlLoadingResult getLastOverrideUrlLoadingResultForTests() { 1357 public OverrideUrlLoadingResult getLastOverrideUrlLoadingResultForTests() {
1368 return mLastOverrideUrlLoadingResult; 1358 return mLastOverrideUrlLoadingResult;
1369 } 1359 }
1370 1360
1371 @Override 1361 @Override
1372 public SnackbarManager getSnackbarManager() { 1362 public SnackbarManager getSnackbarManager() {
1373 return mActivity.getSnackbarManager(); 1363 return mActivity.getSnackbarManager();
1374 } 1364 }
1375 } 1365 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698