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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java

Issue 2807663002: 📺 Move fullscreen web content to a new Activity. (Closed)
Patch Set: Considered other ChromeActivity subclasses. Created 3 years, 8 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/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
index 6c6188991500c9ed886f643663a13bed8d8115b5..cd3452daee613bebf3e85c59e08021ac961c2b6b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
@@ -24,6 +24,8 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.blink_public.platform.WebDisplayMode;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.AppHooks;
+import org.chromium.chrome.browser.ChromeTabbedActivity;
+import org.chromium.chrome.browser.FullscreenWebContentsActivity;
import org.chromium.chrome.browser.RepostFormWarningDialog;
import org.chromium.chrome.browser.document.DocumentUtils;
import org.chromium.chrome.browser.document.DocumentWebContentsDelegate;
@@ -32,6 +34,7 @@ import org.chromium.chrome.browser.findinpage.FindNotificationDetails;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.media.MediaCaptureNotificationService;
import org.chromium.chrome.browser.media.VideoPersister;
+import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.policy.PolicyAuditor;
import org.chromium.chrome.browser.policy.PolicyAuditor.AuditEvent;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
@@ -214,9 +217,45 @@ public class TabWebContentsDelegateAndroid extends WebContentsDelegateAndroid {
}
@Override
- public void toggleFullscreenModeForTab(boolean enableFullscreen) {
- if (!VideoPersister.getInstance().shouldDelayFullscreenModeChange(mTab, enableFullscreen)) {
- mTab.toggleFullscreenMode(enableFullscreen);
+ public void toggleFullscreenModeForTab(final boolean enableFullscreen) {
+ // TODO(peconn): Change this to the flag.
+ final boolean useFullscreenActivity = true;
+ if (useFullscreenActivity && mTab.getActivity().supportsFullscreenActivity()) {
+ if (mTab.getFullscreenManager() == null) {
+ Log.d(TAG, "Cannot toggle fullscreen, Manager is null.");
+ return;
+ }
+
+ Class<? extends Activity> targetActivity;
+ if (enableFullscreen) {
+ targetActivity = FullscreenWebContentsActivity.class;
+ } else {
+ targetActivity = MultiWindowUtils.getSenderActivity(mTab.getActivity());
+ if (targetActivity == null) {
+ Log.w(TAG, "Tab exiting fullscreen without sender Activity.");
+ targetActivity = ChromeTabbedActivity.class;
+ }
+ }
+
+ if (mTab.getFullscreenManager().getTab() == mTab) {
+ mTab.getFullscreenManager().setTab(null);
+ }
+
+ MultiWindowUtils.moveTabToActivity(
Theresa 2017/04/12 22:29:11 Does the fullscreen activity sit on top of the par
PEConn 2017/04/13 14:45:57 I was planning on having the fullscreen Activity b
Theresa 2017/04/13 15:22:09 I don't think Android will kill the background act
+ mTab.getActivity(), mTab, targetActivity, new Runnable() {
+ @Override
+ public void run() {
+ // The Tab's FullscreenManager changes when it is moved.
+ mTab.getFullscreenManager().setTab(mTab);
+
+ mTab.toggleFullscreenMode(enableFullscreen);
+ }
+ });
+ } else {
+ if (!VideoPersister.getInstance().shouldDelayFullscreenModeChange(
+ mTab, enableFullscreen)) {
+ mTab.toggleFullscreenMode(enableFullscreen);
+ }
}
}

Powered by Google App Engine
This is Rietveld 408576698