Title: [236972] trunk
Revision
236972
Author
drou...@apple.com
Date
2018-10-09 12:04:18 -0700 (Tue, 09 Oct 2018)

Log Message

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`.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (236971 => 236972)


--- trunk/LayoutTests/ChangeLog	2018-10-09 18:38:47 UTC (rev 236971)
+++ trunk/LayoutTests/ChangeLog	2018-10-09 19:04:18 UTC (rev 236972)
@@ -1,3 +1,21 @@
+2018-10-09  Devin Rousso  <drou...@apple.com>
+
+        Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
+        https://bugs.webkit.org/show_bug.cgi?id=190403
+
+        Reviewed by Joseph Pecoraro.
+
+        * 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`.
+
 2018-10-09  Chris Dumez  <cdu...@apple.com>
 
         REGRESSION (Safari 12): Download of Blob URL fails

Modified: trunk/LayoutTests/inspector/canvas/create-context-webmetal.html (236971 => 236972)


--- trunk/LayoutTests/inspector/canvas/create-context-webmetal.html	2018-10-09 18:38:47 UTC (rev 236971)
+++ trunk/LayoutTests/inspector/canvas/create-context-webmetal.html	2018-10-09 19:04:18 UTC (rev 236972)
@@ -23,7 +23,7 @@
         contextType: WI.Canvas.ContextType.WebMetal,
     });
 
-    addCSSCanvasTestCase(WI.Canvas.ContextType.WebMetal;
+    addCSSCanvasTestCase(WI.Canvas.ContextType.WebMetal);
 
     suite.runTestCasesAndFinish();
 }

Modified: trunk/LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js (236971 => 236972)


--- trunk/LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js	2018-10-09 18:38:47 UTC (rev 236971)
+++ trunk/LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js	2018-10-09 19:04:18 UTC (rev 236972)
@@ -2,7 +2,9 @@
 let program;
 
 function createProgram(contextType) {
-    context = document.createElement("canvas").getContext(contextType);
+    if (!context)
+        context = document.createElement("canvas").getContext(contextType);
+
     program = context.createProgram();
 }
 
@@ -45,9 +47,10 @@
     let suite = null;
 
     function awaitProgramAdded() {
-        return WI.canvasManager.awaitEvent(WI.CanvasManager.Event.ShaderProgramAdded)
+        InspectorTest.assert(WI.canvasManager.canvases.length === 1, "There should only be one canvas.");
+        return WI.canvasManager.canvases[0].shaderProgramCollection.awaitEvent(WI.Collection.Event.ItemAdded)
         .then((event) => {
-            let program = event.data.program;
+            let program = event.data.item;
             InspectorTest.expectThat(program instanceof WI.ShaderProgram, "Added ShaderProgram.");
             InspectorTest.expectThat(program.canvas instanceof WI.Canvas, "ShaderProgram should have a parent Canvas.");
             return program;
@@ -55,9 +58,10 @@
     }
 
     function awaitProgramRemoved() {
-        return WI.canvasManager.awaitEvent(WI.CanvasManager.Event.ShaderProgramRemoved)
+        InspectorTest.assert(WI.canvasManager.canvases.length === 1, "There should only be one canvas.");
+        return WI.canvasManager.canvases[0].shaderProgramCollection.awaitEvent(WI.Collection.Event.ItemRemoved)
         .then((event) => {
-            let program = event.data.program;
+            let program = event.data.item;
             InspectorTest.expectThat(program instanceof WI.ShaderProgram, "Removed ShaderProgram.");
             InspectorTest.expectThat(program.canvas instanceof WI.Canvas, "ShaderProgram should have a parent Canvas.");
             return program;
@@ -71,7 +75,10 @@
             name: `${suite.name}.reloadPage`,
             description: "Check that ShaderProgramAdded is sent for a program created before CanvasAgent is enabled.",
             test(resolve, reject) {
-                awaitProgramAdded().then(resolve, reject);
+                // This can't use `awaitEvent` since the promise resolution happens on the next tick.
+                WI.canvasManager.singleFireEventListener(WI.CanvasManager.Event.CanvasAdded, (event) => {
+                    awaitProgramAdded().then(resolve, reject);
+                });
 
                 InspectorTest.reloadPage();
             }

Modified: trunk/Source/WebInspectorUI/ChangeLog (236971 => 236972)


--- trunk/Source/WebInspectorUI/ChangeLog	2018-10-09 18:38:47 UTC (rev 236971)
+++ trunk/Source/WebInspectorUI/ChangeLog	2018-10-09 19:04:18 UTC (rev 236972)
@@ -1,3 +1,15 @@
+2018-10-09  Devin Rousso  <drou...@apple.com>
+
+        Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
+        https://bugs.webkit.org/show_bug.cgi?id=190403
+
+        Reviewed by Joseph Pecoraro.
+
+        * 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`.
+
 2018-10-08  Justin Fan  <justin_...@apple.com>
 
         WebGPU: Rename old WebGPU prototype to WebMetal

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js (236971 => 236972)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js	2018-10-09 18:38:47 UTC (rev 236971)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js	2018-10-09 19:04:18 UTC (rev 236972)
@@ -199,6 +199,8 @@
         for (let program of canvas.shaderProgramCollection)
             this._shaderProgramIdentifierMap.delete(program.identifier);
 
+        canvas.shaderProgramCollection.clear();
+
         for (let recording of canvas.recordingCollection) {
             recording.source = null;
             recording.createDisplayName(recording.displayName);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to