Chromium Code Reviews| 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/DocumentUserGestureToken.h" | 9 #include "core/dom/DocumentUserGestureToken.h" |
| 10 #include "core/dom/FrameRequestCallback.h" | 10 #include "core/dom/FrameRequestCallback.h" |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 // A valid number of layers must be provided in order to present. | 317 // A valid number of layers must be provided in order to present. |
| 318 if (layers.size() == 0 || layers.size() > m_capabilities->maxLayers()) { | 318 if (layers.size() == 0 || layers.size() > m_capabilities->maxLayers()) { |
| 319 forceExitPresent(); | 319 forceExitPresent(); |
| 320 DOMException* exception = | 320 DOMException* exception = |
| 321 DOMException::create(InvalidStateError, "Invalid number of layers."); | 321 DOMException::create(InvalidStateError, "Invalid number of layers."); |
| 322 resolver->reject(exception); | 322 resolver->reject(exception); |
| 323 ReportPresentationResult(PresentationResult::InvalidNumberOfLayers); | 323 ReportPresentationResult(PresentationResult::InvalidNumberOfLayers); |
| 324 return promise; | 324 return promise; |
| 325 } | 325 } |
| 326 | 326 |
| 327 m_layer = layers[0]; | 327 // If what we were given has an invalid source, need to exit fullscreen with |
| 328 | 328 // previous, valid source, so delay m_layer reassignment |
| 329 if (!m_layer.source()) { | 329 if (!layers[0].source()) { |
|
bsheedy
2017/01/11 22:56:49
Changed to address https://bugs.chromium.org/p/chr
| |
| 330 forceExitPresent(); | 330 forceExitPresent(); |
| 331 DOMException* exception = | 331 DOMException* exception = |
| 332 DOMException::create(InvalidStateError, "Invalid layer source."); | 332 DOMException::create(InvalidStateError, "Invalid layer source."); |
| 333 resolver->reject(exception); | 333 resolver->reject(exception); |
| 334 ReportPresentationResult(PresentationResult::InvalidLayerSource); | 334 ReportPresentationResult(PresentationResult::InvalidLayerSource); |
| 335 return promise; | 335 return promise; |
| 336 } | 336 } |
| 337 m_layer = layers[0]; | |
| 337 | 338 |
| 338 CanvasRenderingContext* renderingContext = | 339 CanvasRenderingContext* renderingContext = |
| 339 m_layer.source()->renderingContext(); | 340 m_layer.source()->renderingContext(); |
| 340 | 341 |
| 341 if (!renderingContext || !renderingContext->is3d()) { | 342 if (!renderingContext || !renderingContext->is3d()) { |
| 342 forceExitPresent(); | 343 forceExitPresent(); |
| 343 DOMException* exception = DOMException::create( | 344 DOMException* exception = DOMException::create( |
| 344 InvalidStateError, "Layer source must have a WebGLRenderingContext"); | 345 InvalidStateError, "Layer source must have a WebGLRenderingContext"); |
| 345 resolver->reject(exception); | 346 resolver->reject(exception); |
| 346 ReportPresentationResult( | 347 ReportPresentationResult( |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 768 visitor->trace(m_stageParameters); | 769 visitor->trace(m_stageParameters); |
| 769 visitor->trace(m_eyeParametersLeft); | 770 visitor->trace(m_eyeParametersLeft); |
| 770 visitor->trace(m_eyeParametersRight); | 771 visitor->trace(m_eyeParametersRight); |
| 771 visitor->trace(m_layer); | 772 visitor->trace(m_layer); |
| 772 visitor->trace(m_renderingContext); | 773 visitor->trace(m_renderingContext); |
| 773 visitor->trace(m_scriptedAnimationController); | 774 visitor->trace(m_scriptedAnimationController); |
| 774 visitor->trace(m_pendingPresentResolvers); | 775 visitor->trace(m_pendingPresentResolvers); |
| 775 } | 776 } |
| 776 | 777 |
| 777 } // namespace blink | 778 } // namespace blink |
| OLD | NEW |