| 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 #include "chrome/browser/android/vr_shell/vr_shell.h" | 5 #include "chrome/browser/android/vr_shell/vr_shell.h" |
| 6 | 6 |
| 7 #include <android/native_window_jni.h> | 7 #include <android/native_window_jni.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 // should add a flag for disabling specific UI such as the keyboard (see | 79 // should add a flag for disabling specific UI such as the keyboard (see |
| 80 // VrTabHelper for details). | 80 // VrTabHelper for details). |
| 81 contents->GetRenderWidgetHostView()->SetIsInVR(is_in_vr); | 81 contents->GetRenderWidgetHostView()->SetIsInVR(is_in_vr); |
| 82 | 82 |
| 83 VrTabHelper* vr_tab_helper = VrTabHelper::FromWebContents(contents); | 83 VrTabHelper* vr_tab_helper = VrTabHelper::FromWebContents(contents); |
| 84 DCHECK(vr_tab_helper); | 84 DCHECK(vr_tab_helper); |
| 85 vr_tab_helper->SetIsInVr(is_in_vr); | 85 vr_tab_helper->SetIsInVr(is_in_vr); |
| 86 } | 86 } |
| 87 } | 87 } |
| 88 | 88 |
| 89 static const char* kUnsupportedModeHistogramName = |
| 90 "VR.Shell.EncounteredUnsupportedMode"; |
| 91 |
| 89 } // namespace | 92 } // namespace |
| 90 | 93 |
| 91 VrShell::VrShell(JNIEnv* env, | 94 VrShell::VrShell(JNIEnv* env, |
| 92 jobject obj, | 95 jobject obj, |
| 93 ui::WindowAndroid* window, | 96 ui::WindowAndroid* window, |
| 94 bool for_web_vr, | 97 bool for_web_vr, |
| 95 bool in_cct, | 98 bool in_cct, |
| 96 VrShellDelegate* delegate, | 99 VrShellDelegate* delegate, |
| 97 gvr_context* gvr_api, | 100 gvr_context* gvr_api, |
| 98 bool reprojected_rendering) | 101 bool reprojected_rendering) |
| (...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 void VrShell::ExitPresent() { | 577 void VrShell::ExitPresent() { |
| 575 delegate_provider_->ExitWebVRPresent(); | 578 delegate_provider_->ExitWebVRPresent(); |
| 576 } | 579 } |
| 577 | 580 |
| 578 void VrShell::ExitFullscreen() { | 581 void VrShell::ExitFullscreen() { |
| 579 if (web_contents_ && web_contents_->IsFullscreen()) { | 582 if (web_contents_ && web_contents_->IsFullscreen()) { |
| 580 web_contents_->ExitFullscreen(false); | 583 web_contents_->ExitFullscreen(false); |
| 581 } | 584 } |
| 582 } | 585 } |
| 583 | 586 |
| 584 void VrShell::ExitVrDueToUnsupportedMode() { | 587 void VrShell::ExitVrDueToUnsupportedMode(UiUnsupportedMode mode) { |
| 585 ui_->SetIsExiting(); | 588 ui_->SetIsExiting(); |
| 586 main_thread_task_runner_->PostDelayedTask( | 589 main_thread_task_runner_->PostDelayedTask( |
| 587 FROM_HERE, | 590 FROM_HERE, |
| 588 base::Bind(&VrShell::ForceExitVr, weak_ptr_factory_.GetWeakPtr()), | 591 base::Bind(&VrShell::ForceExitVr, weak_ptr_factory_.GetWeakPtr()), |
| 589 kExitVrDueToUnsupportedModeDelay); | 592 kExitVrDueToUnsupportedModeDelay); |
| 593 UMA_HISTOGRAM_ENUMERATION(kUnsupportedModeHistogramName, mode, |
| 594 UiUnsupportedMode::kMax); |
| 590 } | 595 } |
| 591 | 596 |
| 592 void VrShell::OnVRVsyncProviderRequest( | 597 void VrShell::OnVRVsyncProviderRequest( |
| 593 device::mojom::VRVSyncProviderRequest request) { | 598 device::mojom::VRVSyncProviderRequest request) { |
| 594 WaitForGlThread(); | 599 WaitForGlThread(); |
| 595 PostToGlThread(FROM_HERE, | 600 PostToGlThread(FROM_HERE, |
| 596 base::Bind(&VrShellGl::OnRequest, gl_thread_->GetVrShellGl(), | 601 base::Bind(&VrShellGl::OnRequest, gl_thread_->GetVrShellGl(), |
| 597 base::Passed(&request))); | 602 base::Passed(&request))); |
| 598 } | 603 } |
| 599 | 604 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 jlong gvr_api, | 700 jlong gvr_api, |
| 696 jboolean reprojected_rendering) { | 701 jboolean reprojected_rendering) { |
| 697 return reinterpret_cast<intptr_t>(new VrShell( | 702 return reinterpret_cast<intptr_t>(new VrShell( |
| 698 env, obj, reinterpret_cast<ui::WindowAndroid*>(window_android), | 703 env, obj, reinterpret_cast<ui::WindowAndroid*>(window_android), |
| 699 for_web_vr, in_cct, | 704 for_web_vr, in_cct, |
| 700 VrShellDelegate::GetNativeVrShellDelegate(env, delegate), | 705 VrShellDelegate::GetNativeVrShellDelegate(env, delegate), |
| 701 reinterpret_cast<gvr_context*>(gvr_api), reprojected_rendering)); | 706 reinterpret_cast<gvr_context*>(gvr_api), reprojected_rendering)); |
| 702 } | 707 } |
| 703 | 708 |
| 704 } // namespace vr_shell | 709 } // namespace vr_shell |
| OLD | NEW |