Title: [242914] trunk
Revision
242914
Author
[email protected]
Date
2019-03-13 15:09:27 -0700 (Wed, 13 Mar 2019)

Log Message

REGRESSION(r240946): Web Inspector: Styles: removing selected property doesn't update overridden status
https://bugs.webkit.org/show_bug.cgi?id=195389
<rdar://problem/48658929>

Reviewed by Matt Baker.

Source/WebInspectorUI:

* UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype.changeStyleText):
Call DOMNodeStyles.prototype.refresh after the callback. No updates
to CSSStyleDeclaration happen until the callback is called.

LayoutTests:

* inspector/css/overridden-property-expected.txt: Added.
* inspector/css/overridden-property.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (242913 => 242914)


--- trunk/LayoutTests/ChangeLog	2019-03-13 22:06:18 UTC (rev 242913)
+++ trunk/LayoutTests/ChangeLog	2019-03-13 22:09:27 UTC (rev 242914)
@@ -1,3 +1,14 @@
+2019-03-13  Nikita Vasilyev  <[email protected]>
+
+        REGRESSION(r240946): Web Inspector: Styles: removing selected property doesn't update overridden status
+        https://bugs.webkit.org/show_bug.cgi?id=195389
+        <rdar://problem/48658929>
+
+        Reviewed by Matt Baker.
+
+        * inspector/css/overridden-property-expected.txt: Added.
+        * inspector/css/overridden-property.html: Added.
+
 2019-03-13  Simon Fraser  <[email protected]>
 
         Scrolling tree should reposition non-stacking order descendents of overflow:scroll

Added: trunk/LayoutTests/inspector/css/overridden-property-expected.txt (0 => 242914)


--- trunk/LayoutTests/inspector/css/overridden-property-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/inspector/css/overridden-property-expected.txt	2019-03-13 22:09:27 UTC (rev 242914)
@@ -0,0 +1,13 @@
+Test that CSSProperty.prototype.overridden is cleared when the overriding (effective) property is removed.
+
+
+== Running test suite: OverriddenProperty
+-- Running test case: OverriddenProperty.effectivePropertyRemoved
+color: green;
+color: red; overridden
+
+OverriddenStatusChanged event fired.
+REMOVED
+color: red;
+
+

Added: trunk/LayoutTests/inspector/css/overridden-property.html (0 => 242914)


--- trunk/LayoutTests/inspector/css/overridden-property.html	                        (rev 0)
+++ trunk/LayoutTests/inspector/css/overridden-property.html	2019-03-13 22:09:27 UTC (rev 242914)
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script>
+function test() {
+    let nodeStyles = null;
+
+    let suite = InspectorTest.createAsyncSuite("OverriddenProperty");
+
+    function logProperty(property) {
+        let text = property.formattedText || "REMOVED";
+        if (property.overridden)
+            text += " overridden";
+        InspectorTest.log(text);
+    }
+
+    suite.addTestCase({
+        name: "OverriddenProperty.effectivePropertyRemoved",
+        test(resolve, reject) {
+            let inlineStyle = nodeStyles.inlineStyle;
+            let styleRule = nodeStyles.matchedRules[0];
+            let inlineStyleProperty = inlineStyle.enabledProperties[0];
+            let styleRuleProperty = styleRule.style.enabledProperties[0];
+
+            function log() {
+                logProperty(inlineStyleProperty);
+                logProperty(styleRuleProperty);
+                InspectorTest.log("");
+            }
+
+            log();
+
+            inlineStyleProperty.remove();
+
+            styleRuleProperty.addEventListener(WI.CSSProperty.Event.OverriddenStatusChanged, (event) => {
+                // FIXME: <https://webkit.org/b/195651> OverriddenStatusChanged may fire more than once.
+                if (styleRuleProperty.overridden)
+                    return;
+
+                InspectorTest.log("OverriddenStatusChanged event fired.");
+                log();
+                resolve();
+            });
+        }
+    });
+
+    WI.domManager.requestDocument((documentNode) => {
+        WI.domManager.querySelector(documentNode.id, "div#x", (contentNodeId) => {
+            if (!contentNodeId) {
+                InspectorTest.fail("DOM node not found.");
+                InspectorTest.completeTest();
+                return;
+            }
+
+            let domNode = WI.domManager.nodeForId(contentNodeId);
+            nodeStyles = WI.cssManager.stylesForNode(domNode);
+
+            if (nodeStyles.needsRefresh) {
+                nodeStyles.singleFireEventListener(WI.DOMNodeStyles.Event.Refreshed, (event) => {
+                    suite.runTestCasesAndFinish();
+                });
+            } else
+                suite.runTestCasesAndFinish();
+        });
+    });
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Test that CSSProperty.prototype.overridden is cleared when the overriding (effective) property is removed.</p>
+    <style>
+    #x {
+        color: red;
+    }
+    </style>
+    <div id="x" style="color: green"></div>
+</body>
+</html>

Modified: trunk/Source/WebInspectorUI/ChangeLog (242913 => 242914)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-03-13 22:06:18 UTC (rev 242913)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-03-13 22:09:27 UTC (rev 242914)
@@ -1,3 +1,16 @@
+2019-03-13  Nikita Vasilyev  <[email protected]>
+
+        REGRESSION(r240946): Web Inspector: Styles: removing selected property doesn't update overridden status
+        https://bugs.webkit.org/show_bug.cgi?id=195389
+        <rdar://problem/48658929>
+
+        Reviewed by Matt Baker.
+
+        * UserInterface/Models/DOMNodeStyles.js:
+        (WI.DOMNodeStyles.prototype.changeStyleText):
+        Call DOMNodeStyles.prototype.refresh after the callback. No updates
+        to CSSStyleDeclaration happen until the callback is called.
+
 2019-03-13  Devin Rousso  <[email protected]>
 
         Web Inspector: Protocol Logging: log messages with backtrace if inspector^2 is open

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js (242913 => 242914)


--- trunk/Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js	2019-03-13 22:06:18 UTC (rev 242913)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js	2019-03-13 22:09:27 UTC (rev 242914)
@@ -464,7 +464,8 @@
                 return;
             }
 
-            this.refresh().then(callback);
+            callback();
+            this.refresh();
         };
 
         CSSAgent.setStyleText(style.id, text, didSetStyleText);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to