Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: Source/core/html/canvas/WebGLRenderingContext.cpp

Issue 51323003: Expose WEBGL_debug_renderer_info through a chromium finch experiment. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix member init order Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/canvas/WebGLRenderingContext.h ('k') | Source/core/loader/FrameLoaderClient.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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())
« no previous file with comments | « Source/core/html/canvas/WebGLRenderingContext.h ('k') | Source/core/loader/FrameLoaderClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698