Title: [214861] trunk/Source/WebInspectorUI
Revision
214861
Author
mattba...@apple.com
Date
2017-04-03 20:19:09 -0700 (Mon, 03 Apr 2017)

Log Message

Web Inspector: Show additional pause reason details for DOM "subtree modified" breakpoint
https://bugs.webkit.org/show_bug.cgi?id=169479

Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
New Pause Reason UI strings.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Include a link for the target node when breaking for subtree modifications.
This is either the parent of a node being inserted, or a node that is
being removed.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (214860 => 214861)


--- trunk/Source/WebInspectorUI/ChangeLog	2017-04-04 01:22:41 UTC (rev 214860)
+++ trunk/Source/WebInspectorUI/ChangeLog	2017-04-04 03:19:09 UTC (rev 214861)
@@ -1,3 +1,19 @@
+2017-04-03  Matt Baker  <mattba...@apple.com>
+
+        Web Inspector: Show additional pause reason details for DOM "subtree modified" breakpoint
+        https://bugs.webkit.org/show_bug.cgi?id=169479
+
+        Reviewed by Timothy Hatcher.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        New Pause Reason UI strings.
+
+        * UserInterface/Views/DebuggerSidebarPanel.js:
+        (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
+        Include a link for the target node when breaking for subtree modifications.
+        This is either the parent of a node being inserted, or a node that is
+        being removed.
+
 2017-04-03  Devin Rousso  <web...@devinrousso.com>
 
         Web Inspector: showing the Find banner doesn't immediately focus it

Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (214860 => 214861)


--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2017-04-04 01:22:41 UTC (rev 214860)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2017-04-04 03:19:09 UTC (rev 214861)
@@ -153,6 +153,7 @@
 localizedStrings["Charge ā€˜%sā€™ to Callers"] = "Charge ā€˜%sā€™ to Callers";
 localizedStrings["Checked"] = "Checked";
 localizedStrings["Child Layers"] = "Child Layers";
+localizedStrings["Child added to "] = "Child added to ";
 localizedStrings["Children"] = "Children";
 localizedStrings["Classes"] = "Classes";
 localizedStrings["Clear"] = "Clear";
@@ -659,6 +660,7 @@
 localizedStrings["Remove probe"] = "Remove probe";
 localizedStrings["Remove selected item"] = "Remove selected item";
 localizedStrings["Remove this breakpoint action"] = "Remove this breakpoint action";
+localizedStrings["Removed descendant "] = "Removed descendant ";
 localizedStrings["Rendering Frames"] = "Rendering Frames";
 localizedStrings["Repeat"] = "Repeat";
 localizedStrings["Repeating Linear Gradient"] = "Repeating Linear Gradient";
@@ -856,7 +858,6 @@
 localizedStrings["Transform"] = "Transform";
 localizedStrings["Transition"] = "Transition";
 localizedStrings["Triggered Breakpoint"] = "Triggered Breakpoint";
-localizedStrings["Triggered DOM Breakpoint"] = "Triggered DOM Breakpoint";
 localizedStrings["Triggered XHR Breakpoint"] = "Triggered XHR Breakpoint";
 localizedStrings["True"] = "True";
 localizedStrings["Type"] = "Type";

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js (214860 => 214861)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js	2017-04-04 01:22:41 UTC (rev 214860)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js	2017-04-04 03:19:09 UTC (rev 214861)
@@ -974,14 +974,43 @@
                 if (!domBreakpoint)
                     return;
 
-                this._pauseReasonTreeOutline = this.createContentTreeOutline(true, true);
+                const suppressFiltering = true;
+                this._pauseReasonTreeOutline = this.createContentTreeOutline(suppressFiltering);
 
-                let domBreakpointTreeElement = new WebInspector.DOMBreakpointTreeElement(domBreakpoint, WebInspector.DebuggerSidebarPanel.PausedBreakpointIconStyleClassName, WebInspector.UIString("Triggered DOM Breakpoint"));
-                let domBreakpointDetailsSection = new WebInspector.DetailsSectionRow;
+                let type = WebInspector.DOMBreakpointTreeElement.displayNameForType(domBreakpoint.type);
+                let domBreakpointTreeElement = new WebInspector.DOMBreakpointTreeElement(domBreakpoint, WebInspector.DebuggerSidebarPanel.PausedBreakpointIconStyleClassName, type);
+                let domBreakpointRow = new WebInspector.DetailsSectionRow;
                 this._pauseReasonTreeOutline.appendChild(domBreakpointTreeElement);
-                domBreakpointDetailsSection.element.appendChild(this._pauseReasonTreeOutline.element);
+                domBreakpointRow.element.appendChild(this._pauseReasonTreeOutline.element);
 
-                this._pauseReasonGroup.rows = [domBreakpointDetailsSection];
+                let ownerElementRow = new WebInspector.DetailsSectionSimpleRow(WebInspector.UIString("Element"), WebInspector.linkifyNodeReference(domNode));
+                this._pauseReasonGroup.rows = [domBreakpointRow, ownerElementRow];
+
+                if (domBreakpoint.type !== WebInspector.DOMBreakpoint.Type.SubtreeModified)
+                    return true;
+
+                console.assert(pauseData.targetNode);
+
+                let remoteObject = WebInspector.RemoteObject.fromPayload(pauseData.targetNode, target);
+                remoteObject.pushNodeToFrontend((nodeId) => {
+                    if (!nodeId)
+                        return;
+
+                    let node = WebInspector.domTreeManager.nodeForId(nodeId);
+                    console.assert(node, "Missing node for id.", nodeId);
+                    if (!node)
+                        return;
+
+                    let fragment = document.createDocumentFragment();
+                    let description = pauseData.insertion ? WebInspector.UIString("Child added to ") : WebInspector.UIString("Removed descendant ");
+                    fragment.append(description, WebInspector.linkifyNodeReference(node));
+
+                    let targetDescriptionRow = new WebInspector.DetailsSectionSimpleRow(WebInspector.UIString("Details"), fragment);
+                    targetDescriptionRow.element.classList.add("target-description");
+
+                    this._pauseReasonGroup.rows = this._pauseReasonGroup.rows.concat(targetDescriptionRow);
+                });
+
                 return true;
             }
             break;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to