| Index: chrome/browser/android/vr_shell/vr_shell.cc
|
| diff --git a/chrome/browser/android/vr_shell/vr_shell.cc b/chrome/browser/android/vr_shell/vr_shell.cc
|
| index 5c58081dcd53aee0a7ef018c996fff160a104ce2..a48ac0939a7bafeda1e58d54603928c2ff819005 100644
|
| --- a/chrome/browser/android/vr_shell/vr_shell.cc
|
| +++ b/chrome/browser/android/vr_shell/vr_shell.cc
|
| @@ -151,7 +151,8 @@ VrShell::VrShell(JNIEnv* env,
|
| content::WebContents* main_contents,
|
| ui::WindowAndroid* content_window,
|
| content::WebContents* ui_contents,
|
| - ui::WindowAndroid* ui_window)
|
| + ui::WindowAndroid* ui_window,
|
| + bool for_web_vr)
|
| : WebContentsObserver(ui_contents),
|
| main_contents_(main_contents),
|
| ui_contents_(ui_contents),
|
| @@ -162,7 +163,11 @@ VrShell::VrShell(JNIEnv* env,
|
| g_instance = this;
|
| j_vr_shell_.Reset(env, obj);
|
| scene_.reset(new UiScene);
|
| - html_interface_.reset(new UiInterface);
|
| +
|
| + if (for_web_vr)
|
| + metrics_helper_->SetWebVREnabled(true);
|
| + html_interface_.reset(new UiInterface(
|
| + for_web_vr ? UiInterface::Mode::WEB_VR : UiInterface::Mode::STANDARD));
|
| content_compositor_.reset(new VrCompositor(content_window, false));
|
| ui_compositor_.reset(new VrCompositor(ui_window, true));
|
| vr_web_contents_observer_.reset(
|
| @@ -230,7 +235,6 @@ void VrShell::GvrInit(JNIEnv* env,
|
| base::AutoLock lock(gvr_init_lock_);
|
|
|
| // set the initial webvr state
|
| - metrics_helper_->SetWebVREnabled(webvr_mode_);
|
| metrics_helper_->SetVRActive(true);
|
|
|
| gvr_api_ =
|
| @@ -349,26 +353,17 @@ void VrShell::UpdateController(const gvr::Vec3f& forward_vector) {
|
| // Note that button up/down state is transient, so IsButtonUp only returns
|
| // true for a single frame (and we're guaranteed not to miss it).
|
| if (controller_->IsButtonUp(
|
| - gvr::ControllerButton::GVR_CONTROLLER_BUTTON_APP)) {
|
| - if (html_interface_->GetMode() == UiInterface::Mode::MENU) {
|
| - // Temporary: Hit app button a second time to exit menu mode.
|
| - if (webvr_mode_) {
|
| - html_interface_->SetMode(UiInterface::Mode::WEB_VR);
|
| - main_thread_task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(&device::GvrDeviceProvider::OnDisplayFocus,
|
| - delegate_->GetDeviceProvider()));
|
| - } else {
|
| - html_interface_->SetMode(UiInterface::Mode::STANDARD);
|
| - }
|
| - } else {
|
| - if (html_interface_->GetMode() == UiInterface::Mode::WEB_VR) {
|
| - main_thread_task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(&device::GvrDeviceProvider::OnDisplayBlur,
|
| - delegate_->GetDeviceProvider()));
|
| - }
|
| - html_interface_->SetMode(UiInterface::Mode::MENU);
|
| - // TODO(mthiesse): The page is no longer visible here. We should unfocus
|
| - // or otherwise let it know it's hidden.
|
| + gvr::ControllerButton::GVR_CONTROLLER_BUTTON_APP)) {
|
| + html_interface_->SetMenuMode(!html_interface_->GetMenuMode());
|
| +
|
| + // TODO(mthiesse): The page is no longer visible when in menu mode. We
|
| + // should unfocus or otherwise let it know it's hidden.
|
| + if (html_interface_->GetMode() == UiInterface::Mode::WEB_VR) {
|
| + const auto&& task = html_interface_->GetMenuMode() ?
|
| + &device::GvrDeviceProvider::OnDisplayBlur :
|
| + &device::GvrDeviceProvider::OnDisplayFocus;
|
| + main_thread_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(task, delegate_->GetDeviceProvider()));
|
| }
|
| }
|
| #endif
|
| @@ -903,8 +898,7 @@ void VrShell::OnDomContentsLoaded() {
|
| void VrShell::SetWebVrMode(JNIEnv* env,
|
| const base::android::JavaParamRef<jobject>& obj,
|
| bool enabled) {
|
| - webvr_mode_ = enabled;
|
| - metrics_helper_->SetWebVREnabled(webvr_mode_);
|
| + metrics_helper_->SetWebVREnabled(enabled);
|
| if (enabled) {
|
| html_interface_->SetMode(UiInterface::Mode::WEB_VR);
|
| } else {
|
| @@ -916,8 +910,7 @@ void VrShell::SetWebVRSecureOrigin(bool secure_origin) {
|
| html_interface_->SetSecureOrigin(secure_origin);
|
| }
|
|
|
| -void VrShell::SubmitWebVRFrame() {
|
| -}
|
| +void VrShell::SubmitWebVRFrame() {}
|
|
|
| void VrShell::UpdateWebVRTextureBounds(const gvr::Rectf& left_bounds,
|
| const gvr::Rectf& right_bounds) {
|
| @@ -1018,8 +1011,7 @@ void VrShell::DoUiAction(const UiAction action) {
|
| #if defined(ENABLE_VR_SHELL_UI_DEV)
|
| case RELOAD_UI:
|
| ui_contents_->GetController().Reload(false);
|
| - html_interface_.reset(new UiInterface);
|
| - html_interface_->SetMode(UiInterface::Mode::STANDARD);
|
| + html_interface_.reset(new UiInterface(UiInterface::Mode::STANDARD));
|
| vr_web_contents_observer_->SetUiInterface(html_interface_.get());
|
| break;
|
| #endif
|
| @@ -1045,12 +1037,14 @@ jlong Init(JNIEnv* env,
|
| const JavaParamRef<jobject>& content_web_contents,
|
| jlong content_window_android,
|
| const JavaParamRef<jobject>& ui_web_contents,
|
| - jlong ui_window_android) {
|
| + jlong ui_window_android,
|
| + jboolean for_web_vr) {
|
| return reinterpret_cast<intptr_t>(new VrShell(
|
| env, obj, content::WebContents::FromJavaWebContents(content_web_contents),
|
| reinterpret_cast<ui::WindowAndroid*>(content_window_android),
|
| content::WebContents::FromJavaWebContents(ui_web_contents),
|
| - reinterpret_cast<ui::WindowAndroid*>(ui_window_android)));
|
| + reinterpret_cast<ui::WindowAndroid*>(ui_window_android),
|
| + for_web_vr));
|
| }
|
|
|
| } // namespace vr_shell
|
|
|