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 |