| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.vr_shell; | 5 package org.chromium.chrome.browser.vr_shell; |
| 6 | 6 |
| 7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
| 8 import android.graphics.Canvas; | 8 import android.graphics.Canvas; |
| 9 import android.graphics.Point; | 9 import android.graphics.Point; |
| 10 import android.os.StrictMode; | 10 import android.os.StrictMode; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 import org.chromium.base.CommandLine; | 22 import org.chromium.base.CommandLine; |
| 23 import org.chromium.base.Log; | 23 import org.chromium.base.Log; |
| 24 import org.chromium.base.ThreadUtils; | 24 import org.chromium.base.ThreadUtils; |
| 25 import org.chromium.base.annotations.CalledByNative; | 25 import org.chromium.base.annotations.CalledByNative; |
| 26 import org.chromium.base.annotations.JNINamespace; | 26 import org.chromium.base.annotations.JNINamespace; |
| 27 import org.chromium.chrome.browser.ChromeActivity; | 27 import org.chromium.chrome.browser.ChromeActivity; |
| 28 import org.chromium.chrome.browser.ChromeSwitches; | 28 import org.chromium.chrome.browser.ChromeSwitches; |
| 29 import org.chromium.chrome.browser.ChromeVersionInfo; | 29 import org.chromium.chrome.browser.ChromeVersionInfo; |
| 30 import org.chromium.chrome.browser.NativePage; | 30 import org.chromium.chrome.browser.NativePage; |
| 31 import org.chromium.chrome.browser.WebContentsFactory; | 31 import org.chromium.chrome.browser.WebContentsFactory; |
| 32 import org.chromium.chrome.browser.compositor.CompositorViewHolder; | |
| 33 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; | 32 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; |
| 34 import org.chromium.chrome.browser.tab.EmptyTabObserver; | 33 import org.chromium.chrome.browser.tab.EmptyTabObserver; |
| 35 import org.chromium.chrome.browser.tab.Tab; | 34 import org.chromium.chrome.browser.tab.Tab; |
| 36 import org.chromium.chrome.browser.tab.TabObserver; | 35 import org.chromium.chrome.browser.tab.TabObserver; |
| 37 import org.chromium.chrome.browser.tab.TabRedirectHandler; | 36 import org.chromium.chrome.browser.tab.TabRedirectHandler; |
| 38 import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; | 37 import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; |
| 39 import org.chromium.chrome.browser.tabmodel.TabModel; | 38 import org.chromium.chrome.browser.tabmodel.TabModel; |
| 40 import org.chromium.chrome.browser.tabmodel.TabModelSelector; | 39 import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
| 41 import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; | 40 import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; |
| 42 import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; | 41 import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 72 // text too small to read. | 71 // text too small to read. |
| 73 private static final float DEFAULT_CONTENT_WIDTH = 960f; | 72 private static final float DEFAULT_CONTENT_WIDTH = 960f; |
| 74 private static final float DEFAULT_CONTENT_HEIGHT = 640f; | 73 private static final float DEFAULT_CONTENT_HEIGHT = 640f; |
| 75 // Temporary values that will be changed when the UI loads and figures out h
ow what size it | 74 // Temporary values that will be changed when the UI loads and figures out h
ow what size it |
| 76 // needs to be. | 75 // needs to be. |
| 77 private static final float DEFAULT_UI_WIDTH = 1920f; | 76 private static final float DEFAULT_UI_WIDTH = 1920f; |
| 78 private static final float DEFAULT_UI_HEIGHT = 1080f; | 77 private static final float DEFAULT_UI_HEIGHT = 1080f; |
| 79 | 78 |
| 80 private final ChromeActivity mActivity; | 79 private final ChromeActivity mActivity; |
| 81 private final VrShellDelegate mDelegate; | 80 private final VrShellDelegate mDelegate; |
| 82 private final CompositorViewHolder mCompositorViewHolder; | |
| 83 private final VirtualDisplayAndroid mContentVirtualDisplay; | 81 private final VirtualDisplayAndroid mContentVirtualDisplay; |
| 84 private final VirtualDisplayAndroid mUiVirtualDisplay; | 82 private final VirtualDisplayAndroid mUiVirtualDisplay; |
| 85 private final TabRedirectHandler mTabRedirectHandler; | 83 private final TabRedirectHandler mTabRedirectHandler; |
| 86 private final TabObserver mTabObserver; | 84 private final TabObserver mTabObserver; |
| 87 private final TabModelSelectorObserver mTabModelSelectorObserver; | 85 private final TabModelSelectorObserver mTabModelSelectorObserver; |
| 88 private final View.OnTouchListener mTouchListener; | 86 private final View.OnTouchListener mTouchListener; |
| 89 private TabModelSelectorTabObserver mTabModelSelectorTabObserver; | 87 private TabModelSelectorTabObserver mTabModelSelectorTabObserver; |
| 90 | 88 |
| 91 private long mNativeVrShell; | 89 private long mNativeVrShell; |
| 92 | 90 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 109 private boolean mReprojectedRendering; | 107 private boolean mReprojectedRendering; |
| 110 | 108 |
| 111 private TabRedirectHandler mNonVrTabRedirectHandler; | 109 private TabRedirectHandler mNonVrTabRedirectHandler; |
| 112 private TabModelSelector mTabModelSelector; | 110 private TabModelSelector mTabModelSelector; |
| 113 private float mLastContentWidth; | 111 private float mLastContentWidth; |
| 114 private float mLastContentHeight; | 112 private float mLastContentHeight; |
| 115 private float mLastContentDpr; | 113 private float mLastContentDpr; |
| 116 | 114 |
| 117 private MotionEventSynthesizer mMotionEventSynthesizer; | 115 private MotionEventSynthesizer mMotionEventSynthesizer; |
| 118 | 116 |
| 119 public VrShellImpl(ChromeActivity activity, VrShellDelegate delegate, | 117 public VrShellImpl( |
| 120 CompositorViewHolder compositorViewHolder) { | 118 ChromeActivity activity, VrShellDelegate delegate, TabModelSelector
tabModelSelector) { |
| 121 super(activity); | 119 super(activity); |
| 122 mActivity = activity; | 120 mActivity = activity; |
| 123 mDelegate = delegate; | 121 mDelegate = delegate; |
| 124 mCompositorViewHolder = compositorViewHolder; | 122 mTabModelSelector = tabModelSelector; |
| 125 mTabModelSelector = mCompositorViewHolder.detachForVR(); | |
| 126 mUiCVCContainer = new FrameLayout(getContext()) { | 123 mUiCVCContainer = new FrameLayout(getContext()) { |
| 127 @Override | 124 @Override |
| 128 public boolean dispatchTouchEvent(MotionEvent event) { | 125 public boolean dispatchTouchEvent(MotionEvent event) { |
| 129 return true; | 126 return true; |
| 130 } | 127 } |
| 131 }; | 128 }; |
| 132 addView(mUiCVCContainer, 0, new FrameLayout.LayoutParams(0, 0)); | 129 addView(mUiCVCContainer, 0, new FrameLayout.LayoutParams(0, 0)); |
| 133 | 130 |
| 134 mReprojectedRendering = setAsyncReprojectionEnabled(true); | 131 mReprojectedRendering = setAsyncReprojectionEnabled(true); |
| 135 if (mReprojectedRendering) { | 132 if (mReprojectedRendering) { |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 mNativeVrShell = 0; | 475 mNativeVrShell = 0; |
| 479 } | 476 } |
| 480 mTabModelSelector.removeObserver(mTabModelSelectorObserver); | 477 mTabModelSelector.removeObserver(mTabModelSelectorObserver); |
| 481 mTabModelSelectorTabObserver.destroy(); | 478 mTabModelSelectorTabObserver.destroy(); |
| 482 mTab.removeObserver(mTabObserver); | 479 mTab.removeObserver(mTabObserver); |
| 483 restoreTabFromVR(); | 480 restoreTabFromVR(); |
| 484 mUiContents.destroy(); | 481 mUiContents.destroy(); |
| 485 mContentVirtualDisplay.destroy(); | 482 mContentVirtualDisplay.destroy(); |
| 486 mUiVirtualDisplay.destroy(); | 483 mUiVirtualDisplay.destroy(); |
| 487 super.shutdown(); | 484 super.shutdown(); |
| 488 mCompositorViewHolder.onExitVR(mTabModelSelector); | |
| 489 } | 485 } |
| 490 | 486 |
| 491 @Override | 487 @Override |
| 492 public void pause() { | 488 public void pause() { |
| 493 onPause(); | 489 onPause(); |
| 494 } | 490 } |
| 495 | 491 |
| 496 @Override | 492 @Override |
| 497 public void resume() { | 493 public void resume() { |
| 498 onResume(); | 494 onResume(); |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 float dpr); | 613 float dpr); |
| 618 private native void nativeSetWebVrMode(long nativeVrShell, boolean enabled); | 614 private native void nativeSetWebVrMode(long nativeVrShell, boolean enabled); |
| 619 private native void nativeOnTabListCreated(long nativeVrShell, Tab[] mainTab
s, | 615 private native void nativeOnTabListCreated(long nativeVrShell, Tab[] mainTab
s, |
| 620 Tab[] incognitoTabs); | 616 Tab[] incognitoTabs); |
| 621 private native void nativeOnTabUpdated(long nativeVrShell, boolean incognito
, int id, | 617 private native void nativeOnTabUpdated(long nativeVrShell, boolean incognito
, int id, |
| 622 String title); | 618 String title); |
| 623 private native void nativeOnTabRemoved(long nativeVrShell, boolean incognito
, int id); | 619 private native void nativeOnTabRemoved(long nativeVrShell, boolean incognito
, int id); |
| 624 private native Surface nativeTakeContentSurface(long nativeVrShell); | 620 private native Surface nativeTakeContentSurface(long nativeVrShell); |
| 625 private native void nativeRestoreContentSurface(long nativeVrShell); | 621 private native void nativeRestoreContentSurface(long nativeVrShell); |
| 626 } | 622 } |
| OLD | NEW |