Commit 3cd82093 authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

Android: Make TabFullscreenHandler Tab's UserData

This CL makes TabFullscreenHandler Tab's UserData so that Tab
doesn't have to manage |mFullscreenHandler|.

Bug: 924242
Change-Id: I5a3ea1fc15a8e5d09ab0b1a5ac048feaa2471a6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1496272Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarJinsuk Kim <jinsukkim@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638410}
parent 27309f38
...@@ -289,8 +289,6 @@ public class Tab ...@@ -289,8 +289,6 @@ public class Tab
/** The current browser controls constraints. -1 if not set. */ /** The current browser controls constraints. -1 if not set. */
private @BrowserControlsState int mBrowserConstrolsConstraints = -1; private @BrowserControlsState int mBrowserConstrolsConstraints = -1;
private final TabObserver mFullscreenHandler = new TabFullscreenHandler();
private TabDelegateFactory mDelegateFactory; private TabDelegateFactory mDelegateFactory;
private BrowserControlsVisibilityDelegate mBrowserControlsVisibilityDelegate; private BrowserControlsVisibilityDelegate mBrowserControlsVisibilityDelegate;
...@@ -389,7 +387,7 @@ public class Tab ...@@ -389,7 +387,7 @@ public class Tab
} }
} }
addObserver(mFullscreenHandler); TabFullscreenHandler.createForTab(this);
if (incognito) { if (incognito) {
CipherFactory.getInstance().triggerKeyGeneration(); CipherFactory.getInstance().triggerKeyGeneration();
...@@ -1312,7 +1310,6 @@ public class Tab ...@@ -1312,7 +1310,6 @@ public class Tab
protected void didFinishPageLoad(String url) { protected void didFinishPageLoad(String url) {
mIsTabStateDirty = true; mIsTabStateDirty = true;
updateTitle(); updateTitle();
updateFullscreenEnabledState();
for (TabObserver observer : mObservers) observer.onPageLoadFinished(this, url); for (TabObserver observer : mObservers) observer.onPageLoadFinished(this, url);
mIsBeingRestored = false; mIsBeingRestored = false;
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
package org.chromium.chrome.browser.tab; package org.chromium.chrome.browser.tab;
import org.chromium.base.UserData;
import org.chromium.base.UserDataHost;
import org.chromium.chrome.browser.fullscreen.FullscreenOptions; import org.chromium.chrome.browser.fullscreen.FullscreenOptions;
import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.common.BrowserControlsState; import org.chromium.content_public.common.BrowserControlsState;
...@@ -11,10 +13,32 @@ import org.chromium.content_public.common.BrowserControlsState; ...@@ -11,10 +13,32 @@ import org.chromium.content_public.common.BrowserControlsState;
/** /**
* {@link TabObserver} for basic fullscreen operations for {@link Tab}. * {@link TabObserver} for basic fullscreen operations for {@link Tab}.
*/ */
public final class TabFullscreenHandler extends EmptyTabObserver { public final class TabFullscreenHandler extends EmptyTabObserver implements UserData {
private static final Class<TabFullscreenHandler> USER_DATA_KEY = TabFullscreenHandler.class;
private final Tab mTab;
/** A runnable to delay the enabling of fullscreen mode if necessary. */ /** A runnable to delay the enabling of fullscreen mode if necessary. */
private Runnable mEnterFullscreenRunnable; private Runnable mEnterFullscreenRunnable;
public static void createForTab(Tab tab) {
UserDataHost host = tab.getUserDataHost();
assert host.getUserData(USER_DATA_KEY) == null;
host.setUserData(USER_DATA_KEY, new TabFullscreenHandler(tab));
}
private TabFullscreenHandler(Tab tab) {
mTab = tab;
mTab.addObserver(this);
}
// UserData
@Override
public void destroy() {
mTab.removeObserver(this);
}
@Override @Override
public void onSSLStateUpdated(Tab tab) { public void onSSLStateUpdated(Tab tab) {
tab.updateFullscreenEnabledState(); tab.updateFullscreenEnabledState();
...@@ -81,4 +105,9 @@ public final class TabFullscreenHandler extends EmptyTabObserver { ...@@ -81,4 +105,9 @@ public final class TabFullscreenHandler extends EmptyTabObserver {
tab.updateBrowserControlsState(BrowserControlsState.SHOWN, false); tab.updateBrowserControlsState(BrowserControlsState.SHOWN, false);
} }
} }
@Override
public void onPageLoadFinished(Tab tab, String url) {
tab.updateFullscreenEnabledState();
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment