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

Unified Diff: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellTab.java

Issue 1314413004: Cast ChromeShell into the fiery pit of Mount Doom. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellTab.java
diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellTab.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellTab.java
deleted file mode 100644
index 0d860f8d2d69930d8e0dc0554299cfb9a188d105..0000000000000000000000000000000000000000
--- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellTab.java
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.shell;
-
-import android.content.Context;
-import android.text.TextUtils;
-
-import org.chromium.chrome.browser.UrlUtilities;
-import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
-import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
-import org.chromium.content.browser.ContentViewClient;
-import org.chromium.content_public.browser.LoadUrlParams;
-import org.chromium.content_public.browser.NavigationController;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.content_public.common.Referrer;
-import org.chromium.ui.base.WindowAndroid;
-
-/**
- * ChromeShell's implementation of a tab. This mirrors how Chrome for Android subclasses
- * and extends {@link Tab}.
- */
-public class ChromeShellTab extends Tab {
- private final TabManager mTabManager;
-
- // Tab state
- private boolean mIsLoading;
- private boolean mIsFullscreen = false;
-
- /**
- * @param context The Context the view is running in.
- * @param params Parameters for the page the tab should immediately load.
- * @param window The WindowAndroid should represent this tab.
- * @param contentViewClient The client for the {@link ContentViewCore}s of this Tab.
- */
- public ChromeShellTab(Context context, LoadUrlParams params, WindowAndroid window,
- ContentViewClient contentViewClient, TabManager tabManager) {
- super(false, context, window);
- initialize(null, null, false);
- mTabManager = tabManager;
- setContentViewClient(contentViewClient);
- loadUrl(params);
- }
-
- /**
- * @return Whether or not the tab is currently loading.
- */
- public boolean isLoading() {
- return mIsLoading;
- }
-
- /**
- * Navigates this Tab to a sanitized version of {@code url}.
- * @param url The potentially unsanitized URL to navigate to.
- * @param postData Optional data to be sent via POST.
- */
- public void loadUrlWithSanitization(String url, byte[] postData) {
- if (url == null) return;
-
- // Sanitize the URL.
- url = UrlUtilities.fixupUrl(url);
-
- // Invalid URLs will just return empty.
- if (TextUtils.isEmpty(url)) return;
-
- WebContents webContents = getWebContents();
- NavigationController navigationController = webContents.getNavigationController();
- if (TextUtils.equals(url, webContents.getUrl())) {
- navigationController.reload(true);
- } else {
- if (postData == null) {
- navigationController.loadUrl(new LoadUrlParams(url));
- } else {
- navigationController.loadUrl(LoadUrlParams.createLoadHttpPostParams(url, postData));
- }
- }
- }
-
- /**
- * Navigates this Tab to a sanitized version of {@code url}.
- * @param url The potentially unsanitized URL to navigate to.
- */
- public void loadUrlWithSanitization(String url) {
- loadUrlWithSanitization(url, null);
- }
-
- @Override
- protected TabChromeWebContentsDelegateAndroid createWebContentsDelegate() {
- return new ChromeShellTabChromeWebContentsDelegateAndroid();
- }
-
- @Override
- protected ContextMenuPopulator createContextMenuPopulator() {
- return new ChromeContextMenuPopulator(new TabChromeContextMenuItemDelegate() {
- @Override
- public void onOpenInNewTab(String url, Referrer referrer) {
- mTabManager.createTab(url, TabLaunchType.FROM_LONGPRESS_FOREGROUND);
- }
-
- @Override
- public void onOpenImageInNewTab(String url, Referrer referrer) {
- mTabManager.createTab(url, TabLaunchType.FROM_LONGPRESS_FOREGROUND);
- }
- });
- }
-
- private class ChromeShellTabChromeWebContentsDelegateAndroid
- extends TabChromeWebContentsDelegateAndroid {
- @Override
- public void onLoadStarted() {
- mTabManager.hideTabSwitcher();
- mIsLoading = true;
- super.onLoadStarted();
- }
-
- @Override
- public void onLoadStopped() {
- mIsLoading = false;
- super.onLoadStopped();
- }
-
- @Override
- public void toggleFullscreenModeForTab(boolean enterFullscreen) {
- mIsFullscreen = enterFullscreen;
- super.toggleFullscreenModeForTab(enterFullscreen);
- }
-
- @Override
- public boolean isFullscreenForTabOrPending() {
- return mIsFullscreen;
- }
-
- @Override
- public void webContentsCreated(WebContents sourceWebContents, long openerRenderFrameId,
- String frameName, String targetUrl, WebContents newWebContents) {
- mTabManager.createTab(targetUrl, TabLaunchType.FROM_LINK);
- super.webContentsCreated(
- sourceWebContents, openerRenderFrameId, frameName, targetUrl, newWebContents);
- }
- }
-
- @Override
- protected void openNewTab(
- LoadUrlParams params, TabLaunchType launchType, Tab parentTab, boolean incognito) {
- mTabManager.openNewTab(params, launchType, parentTab, incognito);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698