Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java |
| index 3eb8b8840d746e6c18e0585cf5cce5d4a8c107ac..5801e2af0f148dc88526a4caeb31665a86c6dd2f 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrWindowAndroid.java |
| @@ -15,6 +15,7 @@ import org.chromium.base.ActivityState; |
| import org.chromium.base.ApiCompatibilityUtils; |
| import org.chromium.base.ApplicationStatus; |
| import org.chromium.base.Callback; |
| +import org.chromium.base.annotations.CalledByNative; |
| import org.chromium.ui.base.AndroidPermissionDelegate; |
| import org.chromium.ui.base.WindowAndroid; |
| import org.chromium.ui.display.DisplayAndroid; |
| @@ -28,6 +29,8 @@ import java.util.Arrays; |
| */ |
| public class VrWindowAndroid extends WindowAndroid |
| implements ApplicationStatus.ActivityStateListener { |
| + private boolean mPendingVSync = false; |
| + private boolean mWebVRPresenting = false; |
| public VrWindowAndroid(Context context, DisplayAndroid display) { |
| super(context, display); |
| @@ -74,6 +77,23 @@ public class VrWindowAndroid extends WindowAndroid |
| } |
| } |
| + @Override |
| + @CalledByNative |
|
boliu
2017/03/15 17:15:58
fwiw, @CalledByNative is used for generating c++ j
|
| + protected void requestVSyncUpdate() { |
| + if (mWebVRPresenting) { |
| + mPendingVSync = true; |
| + return; |
| + } |
| + super.requestVSyncUpdate(); |
| + } |
| + |
| + public void onWebVRPresentationChanged(boolean presenting) { |
| + mWebVRPresenting = presenting; |
| + setVSyncPaused(mWebVRPresenting); |
| + |
| + if (!mWebVRPresenting && mPendingVSync) super.requestVSyncUpdate(); |
| + } |
| + |
| // We can't request permissions inside of VR without getting kicked out of VR. |
| // TODO(mthiesse): Should we add some UI to ask the user to exit VR, then accept the permission? |
| // There's also the possibility that GVR will handle this in the future. |