Title: [253421] trunk/Source/WebInspectorUI
Revision
253421
Author
[email protected]
Date
2019-12-12 00:24:24 -0800 (Thu, 12 Dec 2019)

Log Message

Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'target.DOMAgent.setInspectModeEnabled')
https://bugs.webkit.org/show_bug.cgi?id=205148

Reviewed by Joseph Pecoraro.

* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.setElementSelectionEnabled):
If there are no targets available yet (`WI.targetsAvailable()`), then wait for targets to
be available (`WI.whenTargetsAvailable()`) before performing the intended logic, as the
`InspectorFrontendAPI` only waits for the backend connection to be established before
dispatching, meaning that there may not be a page target yet. Other `InspectorFrontendAPI`
functions don't need to be changed because they don't cause commands to be invoked.

* UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.set inspectModeEnabled):
Drive-by: don't assume that inspect mode is disabled if an error is thrown.

* UserInterface/Base/Main.js:
Drive-by: remove duplicate function `WI._toggleInspectMode` as it already exists.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (253420 => 253421)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-12-12 07:03:03 UTC (rev 253420)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-12-12 08:24:24 UTC (rev 253421)
@@ -1,3 +1,26 @@
+2019-12-12  Devin Rousso  <[email protected]>
+
+        Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'target.DOMAgent.setInspectModeEnabled')
+        https://bugs.webkit.org/show_bug.cgi?id=205148
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Protocol/InspectorFrontendAPI.js:
+        (InspectorFrontendAPI.setTimelineProfilingEnabled):
+        (InspectorFrontendAPI.setElementSelectionEnabled):
+        If there are no targets available yet (`WI.targetsAvailable()`), then wait for targets to
+        be available (`WI.whenTargetsAvailable()`) before performing the intended logic, as the
+        `InspectorFrontendAPI` only waits for the backend connection to be established before
+        dispatching, meaning that there may not be a page target yet. Other `InspectorFrontendAPI`
+        functions don't need to be changed because they don't cause commands to be invoked.
+
+        * UserInterface/Controllers/DOMManager.js:
+        (WI.DOMManager.prototype.set inspectModeEnabled):
+        Drive-by: don't assume that inspect mode is disabled if an error is thrown.
+
+        * UserInterface/Base/Main.js:
+        Drive-by: remove duplicate function `WI._toggleInspectMode` as it already exists.
+
 2019-12-11  Devin Rousso  <[email protected]>
 
         Web Inspector: REGRESSION: Console: unable to switch execution contexts

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (253420 => 253421)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2019-12-12 07:03:03 UTC (rev 253420)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2019-12-12 08:24:24 UTC (rev 253421)
@@ -2322,11 +2322,6 @@
     WI._inspectModeToolbarButton.hidden = !InspectorBackend.hasDomain("DOM");
 };
 
-WI._toggleInspectMode = function(event)
-{
-    WI.domManager.inspectModeEnabled = !WI.domManager.inspectModeEnabled;
-};
-
 WI._showConsoleTab = function(event)
 {
     WI.showConsoleTab();

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js (253420 => 253421)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js	2019-12-12 07:03:03 UTC (rev 253420)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMManager.js	2019-12-12 08:24:24 UTC (rev 253421)
@@ -587,7 +587,12 @@
             showRulers: WI.settings.showRulersDuringElementSelection.value,
         };
         target.DOMAgent.setInspectModeEnabled.invoke(commandArguments, (error) => {
-            this._inspectModeEnabled = error ? false : enabled;
+            if (error) {
+                WI.reportInternalError(error);
+                return;
+            }
+
+            this._inspectModeEnabled = enabled;
             this.dispatchEventToListeners(WI.DOMManager.Event.InspectModeStateChanged);
         });
     }

Modified: trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js (253420 => 253421)


--- trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js	2019-12-12 07:03:03 UTC (rev 253420)
+++ trunk/Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js	2019-12-12 08:24:24 UTC (rev 253421)
@@ -44,6 +44,13 @@
 
     setTimelineProfilingEnabled: function(enabled)
     {
+        if (!WI.targetsAvailable()) {
+            WI.whenTargetsAvailable().then(() => {
+                InspectorFrontendAPI.setTimelineProfilingEnabled(enabled);
+            });
+            return;
+        }
+
         WI.showTimelineTab();
 
         if (WI.timelineManager.isCapturing() === enabled)
@@ -57,6 +64,13 @@
 
     setElementSelectionEnabled: function(enabled)
     {
+        if (!WI.targetsAvailable()) {
+            WI.whenTargetsAvailable().then(() => {
+                InspectorFrontendAPI.setElementSelectionEnabled(enabled);
+            });
+            return;
+        }
+
         WI.domManager.inspectModeEnabled = enabled;
     },
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to