| Index: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
|
| index 92b03cb0ac2659a113c144712b0a1f81f1aaaee5..feec82bf1380b3ba19051230b2c56b6137079f78 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
|
| @@ -9,7 +9,6 @@ import android.view.Window;
|
|
|
| import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.FullscreenHtmlApiDelegate;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| -import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
|
|
| /**
|
| * Manages the basic fullscreen functionality required by a Tab.
|
| @@ -19,20 +18,17 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
| public abstract class FullscreenManager {
|
| public static final int INVALID_TOKEN = -1;
|
|
|
| - private final TabModelSelector mModelSelector;
|
| private final FullscreenHtmlApiHandler mHtmlApiHandler;
|
| private boolean mOverlayVideoMode;
|
| + private Tab mTab;
|
|
|
| /**
|
| * Constructs the basic ChromeTab oriented FullscreenManager.
|
| *
|
| * @param window Top-level window to turn to fullscreen.
|
| - * @param modelSelector The model selector providing access to the current tab.
|
| */
|
| - public FullscreenManager(Window window, TabModelSelector modelSelector) {
|
| - mModelSelector = modelSelector;
|
| + public FullscreenManager(Window window) {
|
| mHtmlApiHandler = new FullscreenHtmlApiHandler(window, createApiDelegate());
|
| - mOverlayVideoMode = false;
|
| }
|
|
|
| /**
|
| @@ -49,13 +45,6 @@ public abstract class FullscreenManager {
|
| }
|
|
|
| /**
|
| - * @return The selector for accessing the current Tab.
|
| - */
|
| - protected TabModelSelector getTabModelSelector() {
|
| - return mModelSelector;
|
| - }
|
| -
|
| - /**
|
| * Trigger a temporary showing of the top controls.
|
| */
|
| public abstract void showControlsTransient();
|
| @@ -132,6 +121,28 @@ public abstract class FullscreenManager {
|
| public abstract void updateContentViewChildrenState();
|
|
|
| /**
|
| + * Sets the currently selected tab for fullscreen.
|
| + */
|
| + public void setTab(Tab tab) {
|
| + if (mTab == tab) return;
|
| +
|
| + // Remove the fullscreen manager from the old tab before setting the new tab.
|
| + if (mTab != null) mTab.setFullscreenManager(null);
|
| +
|
| + mTab = tab;
|
| +
|
| + // Initialize the new tab with the correct fullscreen manager reference.
|
| + if (mTab != null) mTab.setFullscreenManager(this);
|
| + }
|
| +
|
| + /**
|
| + * @return The currently selected tab for fullscreen.
|
| + */
|
| + public Tab getTab() {
|
| + return mTab;
|
| + }
|
| +
|
| + /**
|
| * Enters or exits persistent fullscreen mode. In this mode, the top controls will be
|
| * permanently hidden until this mode is exited.
|
| *
|
| @@ -140,7 +151,7 @@ public abstract class FullscreenManager {
|
| public void setPersistentFullscreenMode(boolean enabled) {
|
| mHtmlApiHandler.setPersistentFullscreenMode(enabled);
|
|
|
| - Tab tab = mModelSelector.getCurrentTab();
|
| + Tab tab = getTab();
|
| if (tab != null) {
|
| tab.updateFullscreenEnabledState();
|
| }
|
|
|