Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1032)

Unified Diff: chrome/browser/android/vr_shell/vr_shell.cc

Issue 2664973002: Let HTML UI manage menu mode. (Closed)
Patch Set: Rebase again to resolve ToT conflict. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell.h ('k') | chrome/browser/resources/vr_shell/vr_shell_ui.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1f2b53c8f7a25ddc78b36ee0b4ea5c58771bc8c1..e1d651507a47dbd1f60e62474e5b3e9257b006a5 100644
--- a/chrome/browser/android/vr_shell/vr_shell.cc
+++ b/chrome/browser/android/vr_shell/vr_shell.cc
@@ -132,8 +132,7 @@ void VrShell::SwapContents(JNIEnv* env, const JavaParamRef<jobject>& obj,
// tabs. crbug.com/684661
metrics_helper_ = base::MakeUnique<VrMetricsHelper>(main_contents_);
metrics_helper_->SetVRActive(true);
- metrics_helper_->SetWebVREnabled(
- html_interface_->GetMode() == UiInterface::Mode::WEB_VR);
+ metrics_helper_->SetWebVREnabled(webvr_mode_);
}
void VrShell::LoadUIContent(JNIEnv* env, const JavaParamRef<jobject>& obj) {
@@ -174,6 +173,23 @@ void VrShell::PostToGlThreadWhenReady(const base::Closure& task) {
gl_thread_->task_runner()->PostTask(FROM_HERE, task);
}
+void VrShell::SetContentPaused(bool paused) {
+ if (content_paused_ == paused)
+ return;
+ content_paused_ = paused;
+
+ if (!delegate_provider_->device_provider())
+ return;
+
+ // TODO(mthiesse): The page is no longer visible when in menu mode. We
+ // should unfocus or otherwise let it know it's hidden.
+ if (paused) {
+ delegate_provider_->device_provider()->Device()->OnBlur();
+ } else {
+ delegate_provider_->device_provider()->Device()->OnFocus();
+ }
+}
+
void VrShell::OnTriggerEvent(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
gl_thread_->task_runner()->PostTask(
@@ -227,14 +243,12 @@ void VrShell::OnDomContentsLoaded() {
void VrShell::SetWebVrMode(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
bool enabled) {
+ webvr_mode_ = enabled;
metrics_helper_->SetWebVREnabled(enabled);
PostToGlThreadWhenReady(base::Bind(&VrShellGl::SetWebVrMode,
gl_thread_->GetVrShellGl(), enabled));
- if (enabled) {
- html_interface_->SetMode(UiInterface::Mode::WEB_VR);
- } else {
- html_interface_->SetMode(UiInterface::Mode::STANDARD);
- }
+ html_interface_->SetMode(
+ enabled ? UiInterface::Mode::WEB_VR : UiInterface::Mode::STANDARD);
}
void VrShell::OnLoadProgressChanged(JNIEnv* env,
@@ -321,19 +335,7 @@ void VrShell::GvrDelegateReady() {
void VrShell::AppButtonPressed() {
#if defined(ENABLE_VR_SHELL)
- 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) {
- if (delegate_provider_->device_provider()) {
- if (html_interface_->GetMenuMode()) {
- delegate_provider_->device_provider()->Device()->OnBlur();
- } else {
- delegate_provider_->device_provider()->Device()->OnFocus();
- }
- }
- }
+ html_interface_->HandleAppButtonClicked();
#endif
}
@@ -399,6 +401,12 @@ void VrShell::DoUiAction(const UiAction action,
case OMNIBOX_CONTENT:
html_interface_->HandleOmniboxInput(*arguments);
break;
+ case SET_CONTENT_PAUSED: {
+ bool paused;
+ CHECK(arguments->GetBoolean("paused", &paused));
+ SetContentPaused(paused);
+ break;
+ }
#if defined(ENABLE_VR_SHELL_UI_DEV)
case RELOAD_UI:
ui_contents_->GetController().Reload(content::ReloadType::NORMAL, false);
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell.h ('k') | chrome/browser/resources/vr_shell/vr_shell_ui.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698