Title: [193472] branches/safari-601-branch

Diff

Modified: branches/safari-601-branch/LayoutTests/ChangeLog (193471 => 193472)


--- branches/safari-601-branch/LayoutTests/ChangeLog	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/LayoutTests/ChangeLog	2015-12-04 22:37:57 UTC (rev 193472)
@@ -1,3 +1,21 @@
+2015-12-04  Matthew Hanson  <matthew_han...@apple.com>
+
+        Merge r190446. rdar://problem/23732367
+
+    2015-10-01  Dean Jackson  <d...@apple.com>
+
+            Expose WEBGL_debug_renderer_info
+            https://bugs.webkit.org/show_bug.cgi?id=149735
+            <rdar://problem/18343500>
+
+            Reviewed by Simon Fraser.
+
+            Modify a test from the 1.0.2 conformance suite to make sure
+            we're actually enabling and passing the info.
+
+            * fast/canvas/webgl/webgl-debug-renderer-info-expected.txt: Added.
+            * fast/canvas/webgl/webgl-debug-renderer-info.html: Added.
+
 2015-12-04  Timothy Hatcher  <timo...@apple.com>
 
         Merge r187897. rdar://problem/23221163

Added: branches/safari-601-branch/LayoutTests/fast/canvas/webgl/webgl-debug-renderer-info-expected.txt (0 => 193472)


--- branches/safari-601-branch/LayoutTests/fast/canvas/webgl/webgl-debug-renderer-info-expected.txt	                        (rev 0)
+++ branches/safari-601-branch/LayoutTests/fast/canvas/webgl/webgl-debug-renderer-info-expected.txt	2015-12-04 22:37:57 UTC (rev 193472)
@@ -0,0 +1,23 @@
+CONSOLE MESSAGE: line 97: WebGL: INVALID_ENUM: getParameter: invalid parameter name, WEBGL_debug_renderer_info not enabled
+CONSOLE MESSAGE: line 101: WebGL: INVALID_ENUM: getParameter: invalid parameter name, WEBGL_debug_renderer_info not enabled
+This test verifies the functionality of the WEBGL_debug_renderer_info extension, if it is available.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS WebGL context exists
+Testing enums with extension disabled
+PASS getError was expected value: INVALID_ENUM : UNMASKED_VENDOR_WEBGL should not be queryable if extension is disabled
+PASS getError was expected value: INVALID_ENUM : UNMASKED_RENDERER_WEBGL should not be queryable if extension is disabled
+PASS Successfully enabled WEBGL_debug_renderer_info extension
+PASS WEBGL_debug_renderer_info listed as supported and getExtension succeeded
+Testing enums with extension enabled
+PASS ext.UNMASKED_VENDOR_WEBGL is 0x9245
+PASS getError was expected value: NO_ERROR : UNMASKED_VENDOR_WEBGL query should succeed if extension is enable
+PASS ext.UNMASKED_RENDERER_WEBGL is 0x9246
+PASS getError was expected value: NO_ERROR : UNMASKED_RENDERER_WEBGL query should succeed if extension is enable
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: branches/safari-601-branch/LayoutTests/fast/canvas/webgl/webgl-debug-renderer-info.html (0 => 193472)


--- branches/safari-601-branch/LayoutTests/fast/canvas/webgl/webgl-debug-renderer-info.html	                        (rev 0)
+++ branches/safari-601-branch/LayoutTests/fast/canvas/webgl/webgl-debug-renderer-info.html	2015-12-04 22:37:57 UTC (rev 193472)
@@ -0,0 +1,123 @@
+<!--
+
+/*
+** Copyright (c) 2012 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>WebGL WebGL_debug_renderer_info Conformance Tests</title>
+<script src="" type="text/_javascript_"></script>
+<script src=""
+<script src=""
+<script src=""
+</head>
+<body>
+<div id="description"></div>
+<canvas id="canvas" style="width: 1px; height: 1px;"> </canvas>
+<div id="console"></div>
+
+<script>
+"use strict";
+description("This test verifies the functionality of the WEBGL_debug_renderer_info extension, if it is available.");
+
+debug("");
+
+var wtu = WebGLTestUtils;
+var gl = wtu.create3DContext("canvas");
+var ext = null;
+var vao = null;
+
+if (!gl) {
+    testFailed("WebGL context does not exist");
+} else {
+    testPassed("WebGL context exists");
+
+    // Run tests with extension disabled
+    runTestDisabled();
+
+    // Query the extension and store globally so shouldBe can access it
+    ext = gl.getExtension("WEBGL_debug_renderer_info");
+    if (!ext) {
+        testFailed("No WEBGL_debug_renderer_info support");
+    } else {
+        testPassed("Successfully enabled WEBGL_debug_renderer_info extension");
+
+        runSupportedTest(true);
+        runTestEnabled();
+    }
+}
+
+function runSupportedTest(extensionEnabled) {
+    var supported = gl.getSupportedExtensions();
+    if (supported.indexOf("WEBGL_debug_renderer_info") >= 0) {
+        if (extensionEnabled) {
+            testPassed("WEBGL_debug_renderer_info listed as supported and getExtension succeeded");
+        } else {
+            testFailed("WEBGL_debug_renderer_info listed as supported but getExtension failed");
+        }
+    } else {
+        if (extensionEnabled) {
+            testFailed("WEBGL_debug_renderer_info not listed as supported but getExtension succeeded");
+        } else {
+            testPassed("WEBGL_debug_renderer_info not listed as supported and getExtension failed -- this is legal");
+        }
+    }
+}
+
+function runTestDisabled() {
+    debug("Testing enums with extension disabled");
+
+    // Use the constants directly as we don't have the extension
+
+    var UNMASKED_VENDOR_WEBGL = 0x9245;
+    gl.getParameter(UNMASKED_VENDOR_WEBGL);
+    glErrorShouldBe(gl, gl.INVALID_ENUM, "UNMASKED_VENDOR_WEBGL should not be queryable if extension is disabled");
+
+    var UNMASKED_RENDERER_WEBGL = 0x9246;
+    gl.getParameter(UNMASKED_RENDERER_WEBGL);
+    glErrorShouldBe(gl, gl.INVALID_ENUM, "UNMASKED_RENDERER_WEBGL should not be queryable if extension is disabled");
+}
+
+function runTestEnabled() {
+    debug("Testing enums with extension enabled");
+
+    shouldBe("ext.UNMASKED_VENDOR_WEBGL", "0x9245");
+    gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);
+    glErrorShouldBe(gl, gl.NO_ERROR, "UNMASKED_VENDOR_WEBGL query should succeed if extension is enable");
+
+    shouldBe("ext.UNMASKED_RENDERER_WEBGL", "0x9246");
+    gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);
+    glErrorShouldBe(gl, gl.NO_ERROR, "UNMASKED_RENDERER_WEBGL query should succeed if extension is enable");
+}
+
+debug("");
+var successfullyParsed = true;
+</script>
+<script src=""
+
+</body>
+</html>

Modified: branches/safari-601-branch/Source/WebCore/ChangeLog (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/ChangeLog	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/ChangeLog	2015-12-04 22:37:57 UTC (rev 193472)
@@ -1,3 +1,41 @@
+2015-12-04  Matthew Hanson  <matthew_han...@apple.com>
+
+        Merge r190446. rdar://problem/23732367
+
+    2015-10-01  Dean Jackson  <d...@apple.com>
+
+            Expose WEBGL_debug_renderer_info
+            https://bugs.webkit.org/show_bug.cgi?id=149735
+            <rdar://problem/18343500>
+
+            Reviewed by Simon Fraser.
+
+            Enable the extension that allows content to query
+            for the GPUs vendor and details.
+
+            Now that we're enabling this, there was no need for
+            the internal setting that identified privileged situations.
+            However, since this meant that WEBGL_debug_shaders was
+            also exposed, I explicitly disable it since it is
+            not yet conformant.
+
+            Test: fast/canvas/webgl/webgl-debug-renderer-info.html
+            as well as the general conformance suite.
+
+            * html/canvas/WebGL2RenderingContext.cpp: No need to guard around allowPrivilegedExtensions().
+            (WebCore::WebGL2RenderingContext::getExtension):
+            (WebCore::WebGL2RenderingContext::getSupportedExtensions):
+            * html/canvas/WebGLRenderingContext.cpp: Ditto.
+            (WebCore::WebGLRenderingContext::getExtension):
+            (WebCore::WebGLRenderingContext::getSupportedExtensions):
+            * html/canvas/WebGLRenderingContextBase.cpp:
+            (WebCore::WebGLRenderingContextBase::allowPrivilegedExtensions): Deleted.
+            * html/canvas/WebGLRenderingContextBase.h:
+            * page/Settings.in: Remove privilegedWebGLExtensions.
+            * platform/graphics/opengl/Extensions3DOpenGL.cpp: Forbid the translated shader
+            extension while it is still buggy.
+            (WebCore::Extensions3DOpenGL::supportsExtension):
+
 2015-12-03  Matthew Hanson  <matthew_han...@apple.com>
 
         Merge r188647. rdar://problem/23732386

Modified: branches/safari-601-branch/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp	2015-12-04 22:37:57 UTC (rev 193472)
@@ -1021,20 +1021,18 @@
         }
         return m_webglDepthTexture.get();
     }
-    if (allowPrivilegedExtensions()) {
-        if (equalIgnoringCase(name, "WEBGL_debug_renderer_info")) {
-            if (!m_webglDebugRendererInfo)
-                m_webglDebugRendererInfo = std::make_unique<WebGLDebugRendererInfo>(this);
-            return m_webglDebugRendererInfo.get();
-        }
-        if (equalIgnoringCase(name, "WEBGL_debug_shaders")
-            && m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source")) {
-            if (!m_webglDebugShaders)
-                m_webglDebugShaders = std::make_unique<WebGLDebugShaders>(this);
-            return m_webglDebugShaders.get();
-        }
+    if (equalIgnoringCase(name, "WEBGL_debug_renderer_info")) {
+        if (!m_webglDebugRendererInfo)
+            m_webglDebugRendererInfo = std::make_unique<WebGLDebugRendererInfo>(this);
+        return m_webglDebugRendererInfo.get();
     }
-    
+    if (equalIgnoringCase(name, "WEBGL_debug_shaders")
+        && m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source")) {
+        if (!m_webglDebugShaders)
+            m_webglDebugShaders = std::make_unique<WebGLDebugShaders>(this);
+        return m_webglDebugShaders.get();
+    }
+
     return nullptr;
 }
 
@@ -1064,12 +1062,10 @@
     if (WebGLDepthTexture::supported(graphicsContext3D()))
         result.append("WEBGL_depth_texture");
     result.append("WEBGL_lose_context");
-    if (allowPrivilegedExtensions()) {
-        if (m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source"))
-            result.append("WEBGL_debug_shaders");
-        result.append("WEBGL_debug_renderer_info");
-    }
-    
+    if (m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source"))
+        result.append("WEBGL_debug_shaders");
+    result.append("WEBGL_debug_renderer_info");
+
     return result;
 }
 

Modified: branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContext.cpp (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContext.cpp	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContext.cpp	2015-12-04 22:37:57 UTC (rev 193472)
@@ -226,20 +226,18 @@
         }
         return m_angleInstancedArrays.get();
     }
-    if (allowPrivilegedExtensions()) {
-        if (equalIgnoringCase(name, "WEBGL_debug_renderer_info")) {
-            if (!m_webglDebugRendererInfo)
-                m_webglDebugRendererInfo = std::make_unique<WebGLDebugRendererInfo>(this);
-            return m_webglDebugRendererInfo.get();
-        }
-        if (equalIgnoringCase(name, "WEBGL_debug_shaders")
-            && m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source")) {
-            if (!m_webglDebugShaders)
-                m_webglDebugShaders = std::make_unique<WebGLDebugShaders>(this);
-            return m_webglDebugShaders.get();
-        }
+    if (equalIgnoringCase(name, "WEBGL_debug_renderer_info")) {
+        if (!m_webglDebugRendererInfo)
+            m_webglDebugRendererInfo = std::make_unique<WebGLDebugRendererInfo>(this);
+        return m_webglDebugRendererInfo.get();
     }
-    
+    if (equalIgnoringCase(name, "WEBGL_debug_shaders")
+        && m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source")) {
+        if (!m_webglDebugShaders)
+            m_webglDebugShaders = std::make_unique<WebGLDebugShaders>(this);
+        return m_webglDebugShaders.get();
+    }
+
     return nullptr;
 }
 
@@ -287,13 +285,10 @@
         result.append("WEBGL_draw_buffers");
     if (ANGLEInstancedArrays::supported(this))
         result.append("ANGLE_instanced_arrays");
-    
-    if (allowPrivilegedExtensions()) {
-        if (m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source"))
-            result.append("WEBGL_debug_shaders");
-        result.append("WEBGL_debug_renderer_info");
-    }
-    
+    if (m_context->getExtensions()->supports("GL_ANGLE_translated_shader_source"))
+        result.append("WEBGL_debug_shaders");
+    result.append("WEBGL_debug_renderer_info");
+
     return result;
 }
 

Modified: branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp	2015-12-04 22:37:57 UTC (rev 193472)
@@ -576,13 +576,6 @@
     m_isRobustnessEXTSupported = m_context->getExtensions()->isEnabled("GL_EXT_robustness");
 }
 
-bool WebGLRenderingContextBase::allowPrivilegedExtensions() const
-{
-    if (Page* page = canvas()->document().page())
-        return page->settings().privilegedWebGLExtensionsEnabled();
-    return false;
-}
-
 void WebGLRenderingContextBase::addCompressedTextureFormat(GC3Denum format)
 {
     if (!m_compressedTextureFormats.contains(format))

Modified: branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.h	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.h	2015-12-04 22:37:57 UTC (rev 193472)
@@ -800,10 +800,6 @@
     // Helper for restoration after context lost.
     void maybeRestoreContext();
 
-    // Determine if we are running privileged code in the browser, for example,
-    // a Safari or Chrome extension.
-    bool allowPrivilegedExtensions() const;
-
     enum ConsoleDisplayPreference {
         DisplayInConsole,
         DontDisplayInConsole

Modified: branches/safari-601-branch/Source/WebCore/page/Settings.in (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/page/Settings.in	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/page/Settings.in	2015-12-04 22:37:57 UTC (rev 193472)
@@ -103,7 +103,6 @@
 webGLEnabled initial=false
 webGLErrorsToConsoleEnabled initial=true
 openGLMultisamplingEnabled initial=true
-privilegedWebGLExtensionsEnabled initial=false
 forceSoftwareWebGLRendering initial=false
 accelerated2dCanvasEnabled initial=false
 antialiased2dCanvasEnabled initial=true

Modified: branches/safari-601-branch/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp (193471 => 193472)


--- branches/safari-601-branch/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp	2015-12-04 22:28:11 UTC (rev 193471)
+++ branches/safari-601-branch/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp	2015-12-04 22:37:57 UTC (rev 193472)
@@ -167,6 +167,12 @@
             && (m_availableExtensions.contains("GL_ARB_draw_instanced") || m_availableExtensions.contains("GL_EXT_draw_instanced"));
     }
 
+    // We explicitly do not support this extension until
+    // we fix the following bug:
+    // https://bugs.webkit.org/show_bug.cgi?id=149734
+    if (name == "GL_ANGLE_translated_shader_source")
+        return false;
+
     if (name == "GL_EXT_sRGB")
 #if PLATFORM(IOS)
         return m_availableExtensions.contains("GL_EXT_sRGB");
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to