Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
index 7b1ddfd67e40d75adb651bf00fe1c3d3e629e897..a16c398f80961f40f8582cb9dcf370623bd4da95 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
@@ -131,6 +131,7 @@ import org.chromium.chrome.browser.toolbar.ToolbarManager; |
import org.chromium.chrome.browser.util.ChromeFileProvider; |
import org.chromium.chrome.browser.util.ColorUtils; |
import org.chromium.chrome.browser.util.FeatureUtilities; |
+import org.chromium.chrome.browser.vr_shell.VrShellDelegate; |
import org.chromium.chrome.browser.webapps.AddToHomescreenManager; |
import org.chromium.chrome.browser.widget.BottomSheet; |
import org.chromium.chrome.browser.widget.ControlContainer; |
@@ -819,6 +820,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
if (tab != null) { |
getTabContentManager().cacheTabThumbnail(tab); |
} |
+ VrShellDelegate.maybePauseVR(this); |
markSessionEnd(); |
super.onPauseWithNative(); |
} |
@@ -1149,6 +1151,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
DownloadManagerService.getDownloadManagerService( |
getApplicationContext()).onActivityLaunched(); |
+ VrShellDelegate.onNativeLibraryAvailable(); |
super.finishNativeInitialization(); |
} |
@@ -1678,6 +1681,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
@Override |
public final void onBackPressed() { |
RecordUserAction.record("SystemBack"); |
+ if (VrShellDelegate.onBackPressed()) return; |
if (mCompositorViewHolder != null) { |
LayoutManager layoutManager = mCompositorViewHolder.getLayoutManager(); |
if (layoutManager != null && layoutManager.onBackPressed()) return; |
@@ -2088,4 +2092,16 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); |
} |
} |
+ |
+ /** |
+ * Called when VR mode is entered using this activity. 2D UI components that steal focus or |
+ * draw over VR contents should be hidden in this call. |
+ */ |
+ public void onEnterVR() {} |
+ |
+ /** |
+ * Called when VR mode using this activity is exited. Any state set for VR should be restored |
+ * in this call, including showing 2D UI that was hidden. |
+ */ |
+ public void onExitVR() {} |
} |