| 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..1062ffb791ced45afc39da60a03c6bf6b9d0d477 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,8 @@ 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) {
|
| + shouldFailContextCreationForTesting = false;
|
| String statusMessage("Could not create a WebGL context for VendorInfo = ");
|
| statusMessage.append(glInfo.vendorInfo);
|
| statusMessage.append(", RendererInfo = ");
|
| @@ -182,4 +185,9 @@ void WebGLRenderingContext::trace(Visitor* visitor)
|
| WebGLRenderingContextBase::trace(visitor);
|
| }
|
|
|
| +void WebGLRenderingContext::forceNextWebGLContextCreationToFail()
|
| +{
|
| + shouldFailContextCreationForTesting = true;
|
| +}
|
| +
|
| } // namespace blink
|
|
|