Skip to content
This repository was archived by the owner on Jun 24, 2022. It is now read-only.

Commit a4a2ee3

Browse files
Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
https://bugs.webkit.org/show_bug.cgi?id=190403 Reviewed by Joseph Pecoraro. Source/WebInspectorUI: * UserInterface/Controllers/CanvasManager.js: (WI.CanvasManager.prototype._removeCanvas): Clear the `shaderProgramCollection` when a `WI.Canvas` is removed so that a remove event is fired for each `WI.ShaderProgram`. LayoutTests: * inspector/canvas/create-context-webmetal.html: Fix missing parenthesis. * inspector/canvas/resources/shaderProgram-utilities.js: (createProgram): (TestPage.registerInitializer.awaitProgramAdded): (TestPage.registerInitializer): (TestPage.registerInitializer.window.initializeTestSuite): Replace the `WI.CanvasManager` events (which were removed) with listeners for events on the specific `WI.Canvas`. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@236972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent b3c0448 commit a4a2ee3

File tree

5 files changed

+46
-7
lines changed

5 files changed

+46
-7
lines changed

LayoutTests/ChangeLog

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
1+
2018-10-09 Devin Rousso <[email protected]>
2+
3+
Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
4+
https://bugs.webkit.org/show_bug.cgi?id=190403
5+
6+
Reviewed by Joseph Pecoraro.
7+
8+
* inspector/canvas/create-context-webmetal.html:
9+
Fix missing parenthesis.
10+
11+
* inspector/canvas/resources/shaderProgram-utilities.js:
12+
(createProgram):
13+
(TestPage.registerInitializer.awaitProgramAdded):
14+
(TestPage.registerInitializer):
15+
(TestPage.registerInitializer.window.initializeTestSuite):
16+
Replace the `WI.CanvasManager` events (which were removed) with listeners for events on the
17+
specific `WI.Canvas`.
18+
119
2018-10-09 Chris Dumez <[email protected]>
220

321
REGRESSION (Safari 12): Download of Blob URL fails

LayoutTests/inspector/canvas/create-context-webmetal.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
contextType: WI.Canvas.ContextType.WebMetal,
2424
});
2525

26-
addCSSCanvasTestCase(WI.Canvas.ContextType.WebMetal;
26+
addCSSCanvasTestCase(WI.Canvas.ContextType.WebMetal);
2727

2828
suite.runTestCasesAndFinish();
2929
}

LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ let context;
22
let program;
33

44
function createProgram(contextType) {
5-
context = document.createElement("canvas").getContext(contextType);
5+
if (!context)
6+
context = document.createElement("canvas").getContext(contextType);
7+
68
program = context.createProgram();
79
}
810

@@ -45,19 +47,21 @@ TestPage.registerInitializer(() => {
4547
let suite = null;
4648

4749
function awaitProgramAdded() {
48-
return WI.canvasManager.awaitEvent(WI.CanvasManager.Event.ShaderProgramAdded)
50+
InspectorTest.assert(WI.canvasManager.canvases.length === 1, "There should only be one canvas.");
51+
return WI.canvasManager.canvases[0].shaderProgramCollection.awaitEvent(WI.Collection.Event.ItemAdded)
4952
.then((event) => {
50-
let program = event.data.program;
53+
let program = event.data.item;
5154
InspectorTest.expectThat(program instanceof WI.ShaderProgram, "Added ShaderProgram.");
5255
InspectorTest.expectThat(program.canvas instanceof WI.Canvas, "ShaderProgram should have a parent Canvas.");
5356
return program;
5457
});
5558
}
5659

5760
function awaitProgramRemoved() {
58-
return WI.canvasManager.awaitEvent(WI.CanvasManager.Event.ShaderProgramRemoved)
61+
InspectorTest.assert(WI.canvasManager.canvases.length === 1, "There should only be one canvas.");
62+
return WI.canvasManager.canvases[0].shaderProgramCollection.awaitEvent(WI.Collection.Event.ItemRemoved)
5963
.then((event) => {
60-
let program = event.data.program;
64+
let program = event.data.item;
6165
InspectorTest.expectThat(program instanceof WI.ShaderProgram, "Removed ShaderProgram.");
6266
InspectorTest.expectThat(program.canvas instanceof WI.Canvas, "ShaderProgram should have a parent Canvas.");
6367
return program;
@@ -71,7 +75,10 @@ TestPage.registerInitializer(() => {
7175
name: `${suite.name}.reloadPage`,
7276
description: "Check that ShaderProgramAdded is sent for a program created before CanvasAgent is enabled.",
7377
test(resolve, reject) {
74-
awaitProgramAdded().then(resolve, reject);
78+
// This can't use `awaitEvent` since the promise resolution happens on the next tick.
79+
WI.canvasManager.singleFireEventListener(WI.CanvasManager.Event.CanvasAdded, (event) => {
80+
awaitProgramAdded().then(resolve, reject);
81+
});
7582

7683
InspectorTest.reloadPage();
7784
}

Source/WebInspectorUI/ChangeLog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
2018-10-09 Devin Rousso <[email protected]>
2+
3+
Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
4+
https://bugs.webkit.org/show_bug.cgi?id=190403
5+
6+
Reviewed by Joseph Pecoraro.
7+
8+
* UserInterface/Controllers/CanvasManager.js:
9+
(WI.CanvasManager.prototype._removeCanvas):
10+
Clear the `shaderProgramCollection` when a `WI.Canvas` is removed so that a remove event is
11+
fired for each `WI.ShaderProgram`.
12+
113
2018-10-08 Justin Fan <[email protected]>
214

315
WebGPU: Rename old WebGPU prototype to WebMetal

Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@ WI.CanvasManager = class CanvasManager extends WI.Object
199199
for (let program of canvas.shaderProgramCollection)
200200
this._shaderProgramIdentifierMap.delete(program.identifier);
201201

202+
canvas.shaderProgramCollection.clear();
203+
202204
for (let recording of canvas.recordingCollection) {
203205
recording.source = null;
204206
recording.createDisplayName(recording.displayName);

0 commit comments

Comments
 (0)