Commit bb19b363 authored by Bill Orr's avatar Bill Orr Committed by Commit Bot

Fix SessionClientBinding constructor parameter for immersive.

The idea here is that we have potentially multiple "runtimes" backing a
single VRDisplay for WebVR so we don't need GVR for magic window sessions.

However, that means we have to aggregate multiple display info changes
coming from multiple runtimes and decide which display info the
aggregate device reports.  This flag is used as part of that logic -
mostly we take the presenting display info.

This was a simple copy-paste error that causes us to treat immersive
sessions as non-immersive for these updates.

BUG=897401

Change-Id: If4685282e8756875b85b808aa61aca1e9622cb16
Reviewed-on: https://chromium-review.googlesource.com/c/1295317
Commit-Queue: Bill Orr <billorr@chromium.org>
Reviewed-by: default avatarKlaus Weidner <klausw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602146}
parent 620aa393
...@@ -95,10 +95,11 @@ class VRDisplayFrameRequestCallback ...@@ -95,10 +95,11 @@ class VRDisplayFrameRequestCallback
SessionClientBinding::SessionClientBinding( SessionClientBinding::SessionClientBinding(
VRDisplay* display, VRDisplay* display,
bool is_immersive, SessionClientBinding::SessionBindingType immersive,
device::mojom::blink::XRSessionClientRequest request) device::mojom::blink::XRSessionClientRequest request)
: display_(display), : display_(display),
is_immersive_(is_immersive), is_immersive_(immersive ==
SessionClientBinding::SessionBindingType::kImmersive),
client_binding_(this, std::move(request)){}; client_binding_(this, std::move(request)){};
SessionClientBinding::~SessionClientBinding() = default; SessionClientBinding::~SessionClientBinding() = default;
...@@ -566,7 +567,8 @@ void VRDisplay::OnRequestImmersiveSessionReturned( ...@@ -566,7 +567,8 @@ void VRDisplay::OnRequestImmersiveSessionReturned(
if (immersive_client_binding_) if (immersive_client_binding_)
immersive_client_binding_->Close(); immersive_client_binding_->Close();
immersive_client_binding_ = new SessionClientBinding( immersive_client_binding_ = new SessionClientBinding(
this, false, std::move(session->client_request)); this, SessionClientBinding::SessionBindingType::kImmersive,
std::move(session->client_request));
Update(std::move(session->display_info)); Update(std::move(session->display_info));
...@@ -590,8 +592,9 @@ void VRDisplay::OnNonImmersiveSessionRequestReturned( ...@@ -590,8 +592,9 @@ void VRDisplay::OnNonImmersiveSessionRequestReturned(
return; return;
} }
non_immersive_provider_.Bind(std::move(session->data_provider)); non_immersive_provider_.Bind(std::move(session->data_provider));
non_immersive_client_binding_ = non_immersive_client_binding_ = new SessionClientBinding(
new SessionClientBinding(this, false, std::move(session->client_request)); this, SessionClientBinding::SessionBindingType::kNonImmersive,
std::move(session->client_request));
RequestVSync(); RequestVSync();
} }
......
...@@ -45,8 +45,13 @@ class SessionClientBinding ...@@ -45,8 +45,13 @@ class SessionClientBinding
: public GarbageCollectedFinalized<SessionClientBinding>, : public GarbageCollectedFinalized<SessionClientBinding>,
public device::mojom::blink::XRSessionClient { public device::mojom::blink::XRSessionClient {
public: public:
enum class SessionBindingType {
kImmersive = 0,
kNonImmersive = 1,
};
SessionClientBinding(VRDisplay* display, SessionClientBinding(VRDisplay* display,
bool is_immersive, SessionBindingType immersive,
device::mojom::blink::XRSessionClientRequest request); device::mojom::blink::XRSessionClientRequest request);
~SessionClientBinding() override; ~SessionClientBinding() override;
void Close(); void Close();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment