Title: [242556] trunk/Source/WebInspectorUI
Revision
242556
Author
[email protected]
Date
2019-03-06 11:22:30 -0800 (Wed, 06 Mar 2019)

Log Message

Web Inspector: CSS Changes: only show changes for the given node
https://bugs.webkit.org/show_bug.cgi?id=194608
<rdar://problem/48050206>

Reviewed by Timothy Hatcher.

* UserInterface/Views/ChangesDetailsSidebarPanel.js:
(WI.ChangesDetailsSidebarPanel.prototype.inspect):
(WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode):
(WI.ChangesDetailsSidebarPanel.prototype.layout):
Make this panel a subclass of `WI.DOMDetailsSidebarPanel` so it has access to the selected
DOM node in the Elements tab.

* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
Create new general setting for controlling this change.

* Localizations/en.lproj/localizedStrings.js:

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (242555 => 242556)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-03-06 19:20:53 UTC (rev 242555)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-03-06 19:22:30 UTC (rev 242556)
@@ -1,5 +1,27 @@
 2019-03-06  Devin Rousso  <[email protected]>
 
+        Web Inspector: CSS Changes: only show changes for the given node
+        https://bugs.webkit.org/show_bug.cgi?id=194608
+        <rdar://problem/48050206>
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/ChangesDetailsSidebarPanel.js:
+        (WI.ChangesDetailsSidebarPanel.prototype.inspect):
+        (WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode):
+        (WI.ChangesDetailsSidebarPanel.prototype.layout):
+        Make this panel a subclass of `WI.DOMDetailsSidebarPanel` so it has access to the selected
+        DOM node in the Elements tab.
+
+        * UserInterface/Base/Setting.js:
+        * UserInterface/Views/SettingsTabContentView.js:
+        (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
+        Create new general setting for controlling this change.
+
+        * Localizations/en.lproj/localizedStrings.js:
+
+2019-03-06  Devin Rousso  <[email protected]>
+
         Web Inspector: Canvas: color swatches aren't shown for valid inputs with leading/trailing whitespace
         https://bugs.webkit.org/show_bug.cgi?id=195298
 

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


--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2019-03-06 19:20:53 UTC (rev 242555)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2019-03-06 19:22:30 UTC (rev 242556)
@@ -176,6 +176,7 @@
 localizedStrings["CSP Hash"] = "CSP Hash";
 localizedStrings["CSS"] = "CSS";
 localizedStrings["CSS Canvas"] = "CSS Canvas";
+localizedStrings["CSS Changes:"] = "CSS Changes:";
 localizedStrings["CSS canvas \u201C%s\u201D"] = "CSS canvas \u201C%s\u201D";
 localizedStrings["Cached"] = "Cached";
 localizedStrings["Call Frames Truncated"] = "Call Frames Truncated";
@@ -915,6 +916,7 @@
 localizedStrings["Show hidden tabs"] = "Show hidden tabs";
 localizedStrings["Show messages logged to the Console"] = "Show messages logged to the Console";
 localizedStrings["Show network information"] = "Show network information";
+localizedStrings["Show only for selected node"] = "Show only for selected node";
 localizedStrings["Show page load timing"] = "Show page load timing";
 localizedStrings["Show page resources"] = "Show page resources";
 localizedStrings["Show shadow DOM nodes"] = "Show shadow DOM nodes";

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js (242555 => 242556)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js	2019-03-06 19:20:53 UTC (rev 242555)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js	2019-03-06 19:22:30 UTC (rev 242556)
@@ -127,6 +127,7 @@
 WI.settings = {
     canvasRecordingAutoCaptureEnabled: new WI.Setting("canvas-recording-auto-capture-enabled", false),
     canvasRecordingAutoCaptureFrameCount: new WI.Setting("canvas-recording-auto-capture-frame-count", 1),
+    cssChangesPerNode: new WI.Setting("css-changes-per-node", false),
     clearLogOnNavigate: new WI.Setting("clear-log-on-navigate", true),
     clearNetworkOnNavigate: new WI.Setting("clear-network-on-navigate", true),
     cpuTimelineThreadDetailsExpanded: new WI.Setting("cpu-timeline-thread-details-expanded", false),

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ChangesDetailsSidebarPanel.js (242555 => 242556)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ChangesDetailsSidebarPanel.js	2019-03-06 19:20:53 UTC (rev 242555)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ChangesDetailsSidebarPanel.js	2019-03-06 19:22:30 UTC (rev 242556)
@@ -23,7 +23,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-WI.ChangesDetailsSidebarPanel = class ChangesDetailsSidebarPanel extends WI.DetailsSidebarPanel
+WI.ChangesDetailsSidebarPanel = class ChangesDetailsSidebarPanel extends WI.DOMDetailsSidebarPanel
 {
     constructor()
     {
@@ -36,11 +36,20 @@
 
     inspect(objects)
     {
+        let inspectable = super.inspect(objects);
+
+        if (WI.settings.cssChangesPerNode.value)
+            return inspectable;
+
+        // Display Changes panel regardless of the selected DOM node.
         return true;
     }
 
     supportsDOMNode(nodeToInspect)
     {
+        if (WI.settings.cssChangesPerNode.value)
+            return nodeToInspect.nodeType() === Node.ELEMENT_NODE;
+
         // Display Changes panel regardless of the selected DOM node.
         return true;
     }
@@ -74,6 +83,14 @@
 
         let cssRules = WI.cssManager.modifiedCSSRules;
 
+        if (WI.settings.cssChangesPerNode.value) {
+            if (this.domNode) {
+                let styles = WI.cssManager.stylesForNode(this.domNode);
+                cssRules = cssRules.filter((cssRule) => styles.matchedRules.some((matchedRule) => cssRule.isEqualTo(matchedRule)));
+            } else
+                cssRules = [];
+        }
+
         this.element.classList.toggle("empty", !cssRules.length);
         if (!cssRules.length) {
             this.element.textContent = WI.UIString("No CSS Changes");

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js (242555 => 242556)


--- trunk/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js	2019-03-06 19:20:53 UTC (rev 242555)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js	2019-03-06 19:22:30 UTC (rev 242556)
@@ -217,6 +217,10 @@
 
         generalSettingsView.addSeparator();
 
+        generalSettingsView.addSetting(WI.UIString("CSS Changes:"), WI.settings.cssChangesPerNode, WI.UIString("Show only for selected node"));
+
+        generalSettingsView.addSeparator();
+
         const zoomLevels = [0.6, 0.8, 1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4];
         const zoomValues = zoomLevels.map((level) => [level, Number.percentageString(level, 0)]);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to