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 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); |
|
Ken Russell (switch to Gerrit)
2013/10/29 23:00:17
Would it work to use the argument (PrivilegedExten
Zhenyao Mo
2013/10/29 23:05:52
That's what I did in the first try, but it will co
|
| 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()) |