diff --git a/content/browser/xr/service/vr_service_impl.cc b/content/browser/xr/service/vr_service_impl.cc index eb9239c969a74..64b3624b6f6e3 100644 --- a/content/browser/xr/service/vr_service_impl.cc +++ b/content/browser/xr/service/vr_service_impl.cc @@ -532,6 +532,17 @@ void VRServiceImpl::RequestSession( return; } + // [POC OBSERVABILITY] Log page visibility at handler entry — there is no + // browser-side check of this anywhere in the RequestSession path. + LOG(ERROR) << "[POC] VRServiceImpl::RequestSession ENTRY mode=" + << static_cast(options->mode) + << " PageVisibilityState=" + << (render_frame_host_ + ? static_cast( + render_frame_host_->GetVisibilityState()) + : -1) + << " (0=Visible 1=Hidden 2=HiddenButPainting)"; + if (runtime_manager_->IsOtherClientPresenting(this) || runtime_manager_->HasPendingImmersiveRequest()) { DVLOG(2) << __func__ @@ -555,6 +566,13 @@ void VRServiceImpl::RequestSession( const bool has_user_activation = render_frame_host_->HasTransientUserActivation(); + // [POC OBSERVABILITY] If we got here while hidden, the missing visibility + // check has been bypassed; this is past the runtime check and just before + // the only browser-side spec re-check (user activation). + LOG(ERROR) << "[POC] VRServiceImpl::RequestSession PAST-RUNTIME-CHECK " + << "has_user_activation=" << has_user_activation + << " PageVisibilityState=" + << static_cast(render_frame_host_->GetVisibilityState()); if (!has_user_activation) { // User activation is verified blink-side, so this should never fail // (everything that happens up to this point should not take enough time for diff --git a/ui/views/win/OWNERS b/ui/views/win/OWNERS index af1b18e77e424..4d819f1c13eaa 100644 --- a/ui/views/win/OWNERS +++ b/ui/views/win/OWNERS @@ -1,2 +1,2 @@ -davidbienvenu@chromium.org +davidbienvenu@chromium.org jessemckenna@google.com \ No newline at end of file