Index: chrome/android/java/src/org/chromium/chrome/browser/SingleTabActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/SingleTabActivity.java |
similarity index 52% |
rename from chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java |
rename to chrome/android/java/src/org/chromium/chrome/browser/SingleTabActivity.java |
index a68604a0bd2158d86fb38ad0d1751f300ac5cdcb..140c3e6b6b21266f9afc0a03043a59f317eef6e4 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/SingleTabActivity.java |
@@ -2,19 +2,12 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-package org.chromium.chrome.browser.webapps; |
+package org.chromium.chrome.browser; |
import android.content.Intent; |
import android.util.Pair; |
-import android.view.View; |
-import android.view.ViewGroup; |
import org.chromium.base.annotations.SuppressFBWarnings; |
-import org.chromium.chrome.R; |
-import org.chromium.chrome.browser.ChromeActivity; |
-import org.chromium.chrome.browser.TabState; |
-import org.chromium.chrome.browser.compositor.layouts.LayoutManagerDocument; |
-import org.chromium.chrome.browser.tab.EmptyTabObserver; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.tab.TabDelegateFactory; |
import org.chromium.chrome.browser.tab.TabUma.TabCreationState; |
@@ -23,32 +16,20 @@ import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; |
import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
import org.chromium.chrome.browser.tabmodel.document.TabDelegate; |
-import org.chromium.chrome.browser.widget.ControlContainer; |
-import org.chromium.content.browser.ContentViewCore; |
import org.chromium.content_public.browser.LoadUrlParams; |
-import org.chromium.content_public.browser.WebContents; |
-import org.chromium.content_public.browser.WebContentsObserver; |
import java.io.File; |
/** |
- * Base class for task-focused activities that need to display web content in a nearly UI-less |
- * Chrome (InfoBars still appear). |
+ * Base class for task-focused activities that need to display a single tab. |
* |
- * This is vaguely analogous to a WebView, but in Chrome. Example applications that might use this |
- * Activity would be webapps and streaming media activities - anything where user interaction with |
- * the regular browser's UI is either unnecessary or undesirable. |
- * Subclasses can override {@link #createUI()} if they need something more exotic. |
+ * Example applications that might use this Activity would be webapps and streaming media |
+ * activities - anything where maintaining multiple tabs is unnecessary. |
*/ |
@SuppressFBWarnings("URF_UNREAD_FIELD") |
-public abstract class FullScreenActivity extends ChromeActivity { |
+public abstract class SingleTabActivity extends ChromeActivity { |
protected static final String BUNDLE_TAB_ID = "tabId"; |
protected static final String BUNDLE_TAB_URL = "tabUrl"; |
- private static final String TAG = "FullScreenActivity"; |
- |
- private WebContents mWebContents; |
- @SuppressWarnings("unused") // Reference needed to prevent GC. |
- private WebContentsObserver mWebContentsObserver; |
@Override |
protected void onNewIntent(Intent intent) { |
@@ -84,31 +65,16 @@ public abstract class FullScreenActivity extends ChromeActivity { |
Tab tab = createTab(); |
getTabModelSelector().setTab(tab); |
- handleTabContentChanged(); |
tab.show(TabSelectionType.FROM_NEW); |
} |
- @Override |
- public void finishNativeInitialization() { |
- ControlContainer controlContainer = (ControlContainer) findViewById(R.id.control_container); |
- initializeCompositorContent(new LayoutManagerDocument(getCompositorViewHolder()), |
- (View) controlContainer, (ViewGroup) findViewById(android.R.id.content), |
- controlContainer); |
- |
- if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab()); |
- super.finishNativeInitialization(); |
- } |
- |
- @Override |
- protected void initializeToolbar() { } |
- |
@Override |
public SingleTabModelSelector getTabModelSelector() { |
return (SingleTabModelSelector) super.getTabModelSelector(); |
} |
/** |
- * Creates the {@link Tab} used by the FullScreenActivity. |
+ * Creates the {@link Tab} used by the {@link SingleTabActivity}. |
* If the {@code savedInstanceState} exists, then the user did not intentionally close the app |
* by swiping it away in the recent tasks list. In that case, we try to restore the tab from |
* disk. |
@@ -128,8 +94,7 @@ public abstract class FullScreenActivity extends ChromeActivity { |
// Restore the tab. |
TabState tabState = TabState.restoreTabState(getActivityDirectory(), tabId); |
tab = new Tab(tabId, Tab.INVALID_TAB_ID, false, this, getWindowAndroid(), |
- TabLaunchType.FROM_RESTORE, |
- TabCreationState.FROZEN_ON_RESTORE, tabState); |
+ TabLaunchType.FROM_RESTORE, TabCreationState.FROZEN_ON_RESTORE, tabState); |
unfreeze = true; |
} |
@@ -139,53 +104,14 @@ public abstract class FullScreenActivity extends ChromeActivity { |
} |
tab.initialize(null, getTabContentManager(), createTabDelegateFactory(), false, unfreeze); |
- tab.addObserver(new EmptyTabObserver() { |
- @Override |
- public void onContentChanged(Tab tab) { |
- assert tab == getActivityTab(); |
- handleTabContentChanged(); |
- } |
- }); |
return tab; |
} |
- private void handleTabContentChanged() { |
- final Tab tab = getActivityTab(); |
- assert tab != null; |
- |
- WebContents webContents = tab.getWebContents(); |
- if (mWebContents == webContents) return; |
- |
- // Clean up any old references to the previous WebContents. |
- if (mWebContentsObserver != null) { |
- mWebContentsObserver.destroy(); |
- mWebContentsObserver = null; |
- } |
- |
- mWebContents = webContents; |
- if (mWebContents == null) return; |
- |
- ContentViewCore.fromWebContents(webContents).setFullscreenRequiredForOrientationLock(false); |
- mWebContentsObserver = new WebContentsObserver(webContents) { |
- @Override |
- public void didFinishNavigation(String url, boolean isInMainFrame, boolean isErrorPage, |
- boolean hasCommitted, boolean isSameDocument, boolean isFragmentNavigation, |
- Integer pageTransition, int errorCode, String errorDescription, |
- int httpStatusCode) { |
- if (hasCommitted && isInMainFrame) { |
- // Notify the renderer to permanently hide the top controls since they do |
- // not apply to fullscreen content views. |
- tab.updateBrowserControlsState(tab.getBrowserControlsStateConstraints(), true); |
- } |
- } |
- }; |
- } |
- |
/** |
* @return {@link TabDelegateFactory} to be used while creating the associated {@link Tab}. |
*/ |
protected TabDelegateFactory createTabDelegateFactory() { |
- return new FullScreenDelegateFactory(); |
+ return new TabDelegateFactory(); |
} |
/** |
@@ -210,6 +136,5 @@ public abstract class FullScreenActivity extends ChromeActivity { |
} |
@Override |
- public void onCheckForUpdate(boolean updateAvailable) { |
- } |
+ public void onCheckForUpdate(boolean updateAvailable) {} |
} |