Chromium Code Reviews| Index: Source/core/html/canvas/WebGLRenderingContext.cpp |
| diff --git a/Source/core/html/canvas/WebGLRenderingContext.cpp b/Source/core/html/canvas/WebGLRenderingContext.cpp |
| index 3f8e375d3e7e675fdaae90f88bce60d3dcb53f31..d8085b7596d12d4ccef82b2d681e457b9bdd3335 100644 |
| --- a/Source/core/html/canvas/WebGLRenderingContext.cpp |
| +++ b/Source/core/html/canvas/WebGLRenderingContext.cpp |
| @@ -61,6 +61,8 @@ |
| namespace blink { |
| +static bool shouldFailContextCreationForTesting = false; |
| + |
| PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTMLCanvasElement* canvas, WebGLContextAttributes* attrs) |
| { |
| Document& document = canvas->document(); |
| @@ -87,7 +89,7 @@ PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTML |
| blink::WebGraphicsContext3D::Attributes attributes = attrs->attributes(document.topDocument().url().string(), settings, 1); |
| blink::WebGLInfo glInfo; |
| OwnPtr<blink::WebGraphicsContext3D> context = adoptPtr(blink::Platform::current()->createOffscreenGraphicsContext3D(attributes, 0, &glInfo)); |
| - if (!context) { |
| + if (!context || shouldFailContextCreationForTesting) { |
| String statusMessage("Could not create a WebGL context for VendorInfo = "); |
| statusMessage.append(glInfo.vendorInfo); |
| statusMessage.append(", RendererInfo = "); |
| @@ -96,6 +98,7 @@ PassOwnPtrWillBeRawPtr<WebGLRenderingContext> WebGLRenderingContext::create(HTML |
| statusMessage.append(glInfo.driverVersion); |
| statusMessage.append("."); |
| canvas->dispatchEvent(WebGLContextEvent::create(EventTypeNames::webglcontextcreationerror, false, true, statusMessage)); |
| + shouldFailContextCreationForTesting = false; |
|
Ken Russell (switch to Gerrit)
2014/11/12 21:26:02
This should be moved up to the beginning of the bl
sivag
2014/11/13 03:40:31
Done.
|
| return nullptr; |
| } |
| @@ -182,4 +185,9 @@ void WebGLRenderingContext::trace(Visitor* visitor) |
| WebGLRenderingContextBase::trace(visitor); |
| } |
| +void WebGLRenderingContext::forceNextWebGLContextCreationToFail() |
| +{ |
| + shouldFailContextCreationForTesting = true; |
| +} |
| + |
| } // namespace blink |