| Index: Source/core/html/canvas/WebGLRenderingContext.cpp
|
| diff --git a/Source/core/html/canvas/WebGLRenderingContext.cpp b/Source/core/html/canvas/WebGLRenderingContext.cpp
|
| index 9e0f68e5f5d6ad35f8a3bb998145882eebcd52e2..0bfaca7674615d16ba34762c225a0bbb2d3a9e32 100644
|
| --- a/Source/core/html/canvas/WebGLRenderingContext.cpp
|
| +++ b/Source/core/html/canvas/WebGLRenderingContext.cpp
|
| @@ -624,7 +624,7 @@ WebGLRenderingContext::WebGLRenderingContext(HTMLCanvasElement* passedCanvas, Pa
|
| registerExtension<WebGLDrawBuffers>(m_webglDrawBuffers, DraftExtension);
|
|
|
| // Register privileged extensions.
|
| - registerExtension<WebGLDebugRendererInfo>(m_webglDebugRendererInfo, PrivilegedExtension);
|
| + registerExtension<WebGLDebugRendererInfo>(m_webglDebugRendererInfo, WebGLDebugRendererInfoExtension);
|
| registerExtension<WebGLDebugShaders>(m_webglDebugShaders, PrivilegedExtension);
|
| }
|
|
|
| @@ -728,6 +728,14 @@ bool WebGLRenderingContext::allowPrivilegedExtensions() const
|
| return false;
|
| }
|
|
|
| +bool WebGLRenderingContext::allowWebGLDebugRendererInfo() const
|
| +{
|
| + if (allowPrivilegedExtensions())
|
| + return true;
|
| + Frame* frame = canvas()->document().frame();
|
| + return frame && frame->loader().client()->allowWebGLDebugRendererInfo();
|
| +}
|
| +
|
| void WebGLRenderingContext::addCompressedTextureFormat(GC3Denum format)
|
| {
|
| if (!m_compressedTextureFormats.contains(format))
|
| @@ -2177,6 +2185,8 @@ PassRefPtr<WebGLExtension> WebGLRenderingContext::getExtension(const String& nam
|
| for (size_t i = 0; i < m_extensions.size(); ++i) {
|
| ExtensionTracker* tracker = m_extensions[i];
|
| if (tracker->matchesNameWithPrefixes(name)) {
|
| + if (tracker->webglDebugRendererInfo() && !allowWebGLDebugRendererInfo())
|
| + return 0;
|
| if (tracker->privileged() && !allowPrivilegedExtensions())
|
| return 0;
|
| if (tracker->draft() && !RuntimeEnabledFeatures::webGLDraftExtensionsEnabled())
|
| @@ -2630,6 +2640,8 @@ Vector<String> WebGLRenderingContext::getSupportedExtensions()
|
|
|
| for (size_t i = 0; i < m_extensions.size(); ++i) {
|
| ExtensionTracker* tracker = m_extensions[i];
|
| + if (tracker->webglDebugRendererInfo() && !allowWebGLDebugRendererInfo())
|
| + continue;
|
| if (tracker->privileged() && !allowPrivilegedExtensions())
|
| continue;
|
| if (tracker->draft() && !RuntimeEnabledFeatures::webGLDraftExtensionsEnabled())
|
|
|