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 |