Fix patch for getAttachedShaders (#24446)
* Fix patch for getAttachedShaders * Add browsertest for getAttachedShaders
This commit is contained in:
@@ -222,3 +222,15 @@ IN_PROC_BROWSER_TEST_F(BraveWebGLFarblingBrowserTest, GetExtension) {
|
||||
ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
|
||||
EXPECT_EQ(EvalJs(contents(), kTitleScript).ExtractString(), actual);
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_F(BraveWebGLFarblingBrowserTest, GetAttachedShaders) {
|
||||
std::string domain = "a.com";
|
||||
GURL url = embedded_test_server()->GetURL(domain, "/getAttachedShaders.html");
|
||||
// In default fingerprinting mode...
|
||||
SetFingerprintingDefault(domain);
|
||||
ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
|
||||
//... getAttachedShaders() should not be null:
|
||||
// https://github.com/brave/brave-browser/issues/37044
|
||||
EXPECT_EQ(EvalJs(contents(), kTitleScript).ExtractString(),
|
||||
"[object WebGLShader]");
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,8 +22,8 @@ index 801c6e3fc15714071ab325593c0ff40602450a87..6338179111fe0804d684e6c269e04977
|
||||
std::optional<HeapVector<Member<WebGLShader>>>
|
||||
WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program) {
|
||||
if (!ValidateWebGLProgramOrShader("getAttachedShaders", program))
|
||||
+ BRAVE_WEBGL_RENDERING_CONTEXT_BASE_NULLOPT
|
||||
return std::nullopt;
|
||||
+ BRAVE_WEBGL_RENDERING_CONTEXT_BASE_NULLOPT
|
||||
|
||||
HeapVector<Member<WebGLShader>> shader_objects;
|
||||
@@ -3260,6 +3263,7 @@ GLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program,
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>WebGL getAttachedShaders() test</title>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="test" width="8" height="8"></canvas>
|
||||
<script>
|
||||
const canvas = document.getElementById("test");
|
||||
const gl = canvas.getContext("webgl");
|
||||
const vsSource = `
|
||||
attribute vec4 aVertexPosition;
|
||||
void main(void) {
|
||||
gl_Position = aVertexPosition;
|
||||
}
|
||||
`;
|
||||
// Create a vertex shader
|
||||
const vertexShader = gl.createShader(gl.VERTEX_SHADER);
|
||||
gl.shaderSource(vertexShader, vsSource);
|
||||
gl.compileShader(vertexShader);
|
||||
const shaderProgram = gl.createProgram();
|
||||
gl.attachShader(shaderProgram, vertexShader);
|
||||
// Link the shader program
|
||||
gl.linkProgram(shaderProgram);
|
||||
// Get the attached shaders
|
||||
const attachedShaders = gl.getAttachedShaders(shaderProgram);
|
||||
document.title = attachedShaders;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -17,5 +17,3 @@
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user