Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 /**
5 * Tests that the rendering is updated when a uniform variable is
6 * changed in one shader of a page with multiple WebGL contexts.
7 */
9 function ifWebGLSupported() {
10 let [target, debuggee, front] = yield initBackend(MULTIPLE_CONTEXTS_URL);
11 front.setup({ reload: true });
13 let [firstProgramActor, secondProgramActor] = yield getPrograms(front, 2);
15 let firstFragmentShader = yield firstProgramActor.getFragmentShader();
16 let secondFragmentShader = yield secondProgramActor.getFragmentShader();
18 let oldFragSource = yield firstFragmentShader.getText();
19 let newFragSource = oldFragSource.replace("vec4(uColor", "vec4(0.25, 0.25, 0.25");
20 let status = yield firstFragmentShader.compile(newFragSource);
21 ok(!status,
22 "The first new fragment shader source was compiled without errors.");
24 yield waitForFrame(debuggee);
25 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
26 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
27 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
28 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
29 ok(true, "The first fragment shader was changed.");
31 let oldFragSource = yield secondFragmentShader.getText();
32 let newFragSource = oldFragSource.replace("vec4(uColor", "vec4(0.75, 0.75, 0.75");
33 let status = yield secondFragmentShader.compile(newFragSource);
34 ok(!status,
35 "The second new fragment shader source was compiled without errors.");
37 yield waitForFrame(debuggee);
38 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
39 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
40 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 191, g: 191, b: 191, a: 255 }, true, "#canvas2");
41 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 191, g: 191, b: 191, a: 255 }, true, "#canvas2");
42 ok(true, "The second fragment shader was changed.");
44 yield removeTab(target.tab);
45 finish();
46 }