Title: [243272] trunk/Source/WebInspectorUI
Revision
243272
Author
[email protected]
Date
2019-03-20 19:27:35 -0700 (Wed, 20 Mar 2019)

Log Message

Web Inspector: Canvas: rework how Canvas.enable/Canvas.disable is used so that events are not sent when the Canvas tab isn't enabled
https://bugs.webkit.org/show_bug.cgi?id=195828
<rdar://problem/48941756>

Reviewed by Timothy Hatcher.

* UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager):
(WI.CanvasManager.prototype.initializeTarget):
(WI.CanvasManager.prototype.enable): Added.
(WI.CanvasManager.prototype.disable): Added.

* UserInterface/Views/CanvasTabContentView.js:
(WI.CanvasTabContentView):
(WI.CanvasTabContentView.prototype.closed): Added.

* UserInterface/Base/Test.js:
(WI.contentLoaded):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (243271 => 243272)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-03-21 02:23:21 UTC (rev 243271)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-03-21 02:27:35 UTC (rev 243272)
@@ -1,5 +1,26 @@
 2019-03-20  Devin Rousso  <[email protected]>
 
+        Web Inspector: Canvas: rework how Canvas.enable/Canvas.disable is used so that events are not sent when the Canvas tab isn't enabled
+        https://bugs.webkit.org/show_bug.cgi?id=195828
+        <rdar://problem/48941756>
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Controllers/CanvasManager.js:
+        (WI.CanvasManager):
+        (WI.CanvasManager.prototype.initializeTarget):
+        (WI.CanvasManager.prototype.enable): Added.
+        (WI.CanvasManager.prototype.disable): Added.
+
+        * UserInterface/Views/CanvasTabContentView.js:
+        (WI.CanvasTabContentView):
+        (WI.CanvasTabContentView.prototype.closed): Added.
+
+        * UserInterface/Base/Test.js:
+        (WI.contentLoaded):
+
+2019-03-20  Devin Rousso  <[email protected]>
+
         Web Inspector: Sources: collapsing a section doesn't shrink the space used by that section
         https://bugs.webkit.org/show_bug.cgi?id=196045
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js (243271 => 243272)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js	2019-03-21 02:23:21 UTC (rev 243271)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js	2019-03-21 02:27:35 UTC (rev 243272)
@@ -31,11 +31,12 @@
     {
         super();
 
-        WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
-
+        this._enabled = false;
         this._canvasIdentifierMap = new Map;
         this._shaderProgramIdentifierMap = new Map;
         this._importedRecordings = new Set;
+
+        WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
     }
 
     // Target
@@ -42,6 +43,9 @@
 
     initializeTarget(target)
     {
+        if (!this._enabled)
+            return;
+
         if (target.CanvasAgent) {
             target.CanvasAgent.enable();
 
@@ -97,6 +101,32 @@
         this.dispatchEventToListeners(WI.CanvasManager.Event.RecordingImported, {recording, initiatedByUser: true});
     }
 
+    enable()
+    {
+        console.assert(!this._enabled);
+
+        this._enabled = true;
+
+        for (let target of WI.targets)
+            this.initializeTarget(target);
+    }
+
+    disable()
+    {
+        console.assert(this._enabled);
+
+        for (let target of WI.targets) {
+            if (target.CanvasAgent)
+                target.CanvasAgent.disable();
+        }
+
+        this._canvasIdentifierMap.clear();
+        this._shaderProgramIdentifierMap.clear();
+        this._importedRecordings.clear();
+
+        this._enabled = false;
+    }
+
     setRecordingAutoCaptureFrameCount(enabled, count)
     {
         console.assert(!isNaN(count) && count >= 0);

Modified: trunk/Source/WebInspectorUI/UserInterface/Test/Test.js (243271 => 243272)


--- trunk/Source/WebInspectorUI/UserInterface/Test/Test.js	2019-03-21 02:23:21 UTC (rev 243271)
+++ trunk/Source/WebInspectorUI/UserInterface/Test/Test.js	2019-03-21 02:27:35 UTC (rev 243272)
@@ -129,6 +129,9 @@
 
 WI.contentLoaded = function()
 {
+    // Things that would normally get called by the UI, that we still want to do in tests.
+    WI.canvasManager.enable();
+
     // Signal that the frontend is now ready to receive messages.
     InspectorFrontendAPI.loadCompleted();
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js (243271 => 243272)


--- trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js	2019-03-21 02:23:21 UTC (rev 243271)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js	2019-03-21 02:27:35 UTC (rev 243272)
@@ -58,6 +58,8 @@
 
         this.element.addEventListener("dragover", this._handleDragOver.bind(this));
         this.element.addEventListener("drop", this._handleDrop.bind(this));
+
+        WI.canvasManager.enable();
     }
 
     static tabInfo()
@@ -122,6 +124,13 @@
         super.hidden();
     }
 
+    closed()
+    {
+        WI.canvasManager.disable();
+
+        super.closed();
+    }
+
     restoreStateFromCookie(cookie)
     {
         // FIXME: implement once <https://webkit.org/b/177606> is complete.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to