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

Side by Side Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/hosted/HostedTab.java

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 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
(Empty)
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
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.hosted;
6
7 import android.content.Context;
8 import android.text.TextUtils;
9 import android.view.ContextMenu;
10 import android.view.Menu;
11
12 import com.google.android.apps.chrome.R;
13
14 import org.chromium.chrome.browser.CompositorChromeActivity;
15 import org.chromium.chrome.browser.ContentViewUtil;
16 import org.chromium.chrome.browser.Tab;
17 import org.chromium.chrome.browser.UrlUtilities;
18 import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
19 import org.chromium.chrome.browser.contextmenu.ContextMenuParams;
20 import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
21 import org.chromium.chrome.browser.tab.ChromeTab;
22 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
23 import org.chromium.content_public.browser.WebContents;
24 import org.chromium.ui.base.WindowAndroid;
25
26 /**
27 * A chrome tab that is only used in hosted mode.
28 */
29 public class HostedTab extends ChromeTab {
30
31 private TabChromeContextMenuItemDelegate
32 mContextMenuDelegate = new TabChromeContextMenuItemDelegate() {
33 @Override
34 public boolean startDownload(String url, boolean isLink) {
35 // Behave similarly to ChromeTabChromeContextMenuItemDelegat e in ChromeTab.
36 return !isLink || !shouldInterceptContextMenuDownload(url);
37 }
38 };
39
40 /**
41 * Construct an HostedTab. It might load a prerendered {@link WebContents} f or the URL, if
42 * the hosted mode service has successfully warmed up for the url.
43 */
44 public HostedTab(CompositorChromeActivity activity, WindowAndroid windowAndr oid,
45 long sessionId, String url, int parentTabId) {
46 super(Tab.generateValidId(Tab.INVALID_TAB_ID), activity, false, windowAn droid,
47 TabLaunchType.FROM_EXTERNAL_APP, parentTabId, null, null);
48 WebContents webContents = ChromeBrowserConnection.getInstance(activity.g etApplication())
49 .takePrerenderedUrl(sessionId, url, nu ll);
50 if (webContents == null) {
51 webContents = ContentViewUtil.createWebContents(isIncognito(), false );
52 }
53 initialize(webContents, activity.getTabContentManager(), false);
54 getView().requestFocus();
55 }
56
57 @Override
58 protected ContextMenuPopulator createContextMenuPopulator() {
59 return new ChromeContextMenuPopulator(mContextMenuDelegate) {
60 @Override
61 public void buildContextMenu(ContextMenu menu, Context context,
62 ContextMenuParams params) {
63 String linkUrl = params.getLinkUrl();
64 if (linkUrl != null) linkUrl = linkUrl.trim();
65 if (!TextUtils.isEmpty(linkUrl)) {
66 menu.add(Menu.NONE, org.chromium.chrome.R.id.contextmenu_cop y_link_address_text,
67 Menu.NONE, org.chromium.chrome.R.string.contextmenu_ copy_link_address);
68 }
69
70 String linkText = params.getLinkText();
71 if (linkText != null) linkText = linkText.trim();
72 if (!TextUtils.isEmpty(linkText)) {
73 menu.add(Menu.NONE, org.chromium.chrome.R.id.contextmenu_cop y_link_text,
74 Menu.NONE, org.chromium.chrome.R.string.contextmenu_ copy_link_text);
75 }
76 if (params.isImage()) {
77 menu.add(Menu.NONE, R.id.contextmenu_save_image, Menu.NONE,
78 R.string.contextmenu_save_image);
79 menu.add(Menu.NONE, R.id.contextmenu_open_image, Menu.NONE,
80 R.string.contextmenu_open_image);
81 menu.add(Menu.NONE, R.id.contextmenu_copy_image, Menu.NONE,
82 R.string.contextmenu_copy_image);
83 menu.add(Menu.NONE, R.id.contextmenu_copy_image_url, Menu.NO NE,
84 R.string.contextmenu_copy_image_url);
85 } else if (UrlUtilities.isDownloadableScheme(params.getLinkUrl() )) {
86 // "Save link" is not shown for image.
87 menu.add(Menu.NONE, R.id.contextmenu_save_link_as, Menu.NONE ,
88 R.string.contextmenu_save_link);
89 }
90 }
91 };
92 }
93 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698