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 "modules/vr/VRDisplay.h" | 5 #include "modules/vr/VRDisplay.h" |
6 | 6 |
7 #include "core/css/StylePropertySet.h" | 7 #include "core/css/StylePropertySet.h" |
8 #include "core/dom/DOMException.h" | 8 #include "core/dom/DOMException.h" |
9 #include "core/dom/FrameRequestCallback.h" | 9 #include "core/dom/FrameRequestCallback.h" |
10 #include "core/dom/ScriptedAnimationController.h" | 10 #include "core/dom/ScriptedAnimationController.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "modules/vr/VRStageParameters.h" | 29 #include "modules/vr/VRStageParameters.h" |
30 #include "modules/webgl/WebGLRenderingContextBase.h" | 30 #include "modules/webgl/WebGLRenderingContextBase.h" |
31 #include "platform/Histogram.h" | 31 #include "platform/Histogram.h" |
32 #include "platform/UserGestureIndicator.h" | 32 #include "platform/UserGestureIndicator.h" |
33 #include "platform/instrumentation/tracing/TraceEvent.h" | 33 #include "platform/instrumentation/tracing/TraceEvent.h" |
34 #include "platform/wtf/AutoReset.h" | 34 #include "platform/wtf/AutoReset.h" |
35 #include "platform/wtf/Time.h" | 35 #include "platform/wtf/Time.h" |
36 #include "public/platform/Platform.h" | 36 #include "public/platform/Platform.h" |
37 | 37 |
38 #include <array> | 38 #include <array> |
39 #include "core/dom/ExecutionContext.h" | |
40 | 39 |
41 namespace blink { | 40 namespace blink { |
42 | 41 |
43 namespace { | 42 namespace { |
44 | 43 |
45 VREye StringToVREye(const String& which_eye) { | 44 VREye StringToVREye(const String& which_eye) { |
46 if (which_eye == "left") | 45 if (which_eye == "left") |
47 return kVREyeLeft; | 46 return kVREyeLeft; |
48 if (which_eye == "right") | 47 if (which_eye == "right") |
49 return kVREyeRight; | 48 return kVREyeRight; |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 // result. | 170 // result. |
172 DEFINE_STATIC_LOCAL( | 171 DEFINE_STATIC_LOCAL( |
173 EnumerationHistogram, vr_presentation_result_histogram, | 172 EnumerationHistogram, vr_presentation_result_histogram, |
174 ("VRDisplayPresentResult", | 173 ("VRDisplayPresentResult", |
175 static_cast<int>(PresentationResult::kPresentationResultMax))); | 174 static_cast<int>(PresentationResult::kPresentationResultMax))); |
176 vr_presentation_result_histogram.Count(static_cast<int>(result)); | 175 vr_presentation_result_histogram.Count(static_cast<int>(result)); |
177 } | 176 } |
178 | 177 |
179 ScriptPromise VRDisplay::requestPresent(ScriptState* script_state, | 178 ScriptPromise VRDisplay::requestPresent(ScriptState* script_state, |
180 const HeapVector<VRLayer>& layers) { | 179 const HeapVector<VRLayer>& layers) { |
181 ExecutionContext* execution_context = ExecutionContext::From(script_state); | 180 ExecutionContext* execution_context = script_state->GetExecutionContext(); |
182 UseCounter::Count(execution_context, UseCounter::kVRRequestPresent); | 181 UseCounter::Count(execution_context, UseCounter::kVRRequestPresent); |
183 if (!execution_context->IsSecureContext()) { | 182 if (!execution_context->IsSecureContext()) { |
184 UseCounter::Count(execution_context, | 183 UseCounter::Count(execution_context, |
185 UseCounter::kVRRequestPresentInsecureOrigin); | 184 UseCounter::kVRRequestPresentInsecureOrigin); |
186 } | 185 } |
187 | 186 |
188 ReportPresentationResult(PresentationResult::kRequested); | 187 ReportPresentationResult(PresentationResult::kRequested); |
189 | 188 |
190 ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); | 189 ScriptPromiseResolver* resolver = ScriptPromiseResolver::Create(script_state); |
191 ScriptPromise promise = resolver->Promise(); | 190 ScriptPromise promise = resolver->Promise(); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 return promise; | 271 return promise; |
273 } | 272 } |
274 | 273 |
275 if (!pending_present_resolvers_.IsEmpty()) { | 274 if (!pending_present_resolvers_.IsEmpty()) { |
276 // If we are waiting on the results of a previous requestPresent call don't | 275 // If we are waiting on the results of a previous requestPresent call don't |
277 // fire a new request, just cache the resolver and resolve it when the | 276 // fire a new request, just cache the resolver and resolve it when the |
278 // original request returns. | 277 // original request returns. |
279 pending_present_resolvers_.push_back(resolver); | 278 pending_present_resolvers_.push_back(resolver); |
280 } else if (first_present) { | 279 } else if (first_present) { |
281 bool secure_context = | 280 bool secure_context = |
282 ExecutionContext::From(script_state)->IsSecureContext(); | 281 script_state->GetExecutionContext()->IsSecureContext(); |
283 if (!display_) { | 282 if (!display_) { |
284 ForceExitPresent(); | 283 ForceExitPresent(); |
285 DOMException* exception = DOMException::Create( | 284 DOMException* exception = DOMException::Create( |
286 kInvalidStateError, "The service is no longer active."); | 285 kInvalidStateError, "The service is no longer active."); |
287 resolver->Reject(exception); | 286 resolver->Reject(exception); |
288 return promise; | 287 return promise; |
289 } | 288 } |
290 | 289 |
291 pending_present_resolvers_.push_back(resolver); | 290 pending_present_resolvers_.push_back(resolver); |
292 submit_frame_client_binding_.Close(); | 291 submit_frame_client_binding_.Close(); |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 visitor->Trace(stage_parameters_); | 812 visitor->Trace(stage_parameters_); |
814 visitor->Trace(eye_parameters_left_); | 813 visitor->Trace(eye_parameters_left_); |
815 visitor->Trace(eye_parameters_right_); | 814 visitor->Trace(eye_parameters_right_); |
816 visitor->Trace(layer_); | 815 visitor->Trace(layer_); |
817 visitor->Trace(rendering_context_); | 816 visitor->Trace(rendering_context_); |
818 visitor->Trace(scripted_animation_controller_); | 817 visitor->Trace(scripted_animation_controller_); |
819 visitor->Trace(pending_present_resolvers_); | 818 visitor->Trace(pending_present_resolvers_); |
820 } | 819 } |
821 | 820 |
822 } // namespace blink | 821 } // namespace blink |
OLD | NEW |