Changeset 90630 in webkit


Ignore:
Timestamp:
Jul 8, 2011 7:51:00 AM (13 years ago)
Author:
apavlov@chromium.org
Message:

Web Inspector: CSS inspector gets confused about specificity of !important properties
https://bugs.webkit.org/show_bug.cgi?id=64074

Reviewed by Yury Semikhatsky.

Source/WebCore:

  • inspector/front-end/StylesSidebarPane.js:

(WebInspector.StylesSidebarPane.prototype._markUsedProperties):

LayoutTests:

  • inspector/elements/elements-panel-styles-expected.txt:
  • inspector/elements/resources/elements-panel-styles.css:

(#container .foo):
(.foo):

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r90625 r90630  
     12011-07-08  Alexander Pavlov  <apavlov@chromium.org>
     2
     3        Web Inspector: CSS inspector gets confused about specificity of !important properties
     4        https://bugs.webkit.org/show_bug.cgi?id=64074
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/elements/elements-panel-styles-expected.txt:
     9        * inspector/elements/resources/elements-panel-styles.css:
     10        (#container .foo):
     11        (.foo):
     12
    1132011-07-08  Andrey Kosyakov  <caseq@chromium.org>
    214
  • trunk/LayoutTests/inspector/elements/elements-panel-styles-expected.txt

    r78535 r90630  
    33[expanded]  ()
    44border-bottom-left-radius: 5px;
    5     .foo - 5px 5px elements-panel-styles.css:10
     5    .foo - 5px 5px elements-panel-styles.css:14
    66border-bottom-right-radius: 5px;
    7     .foo - 5px 5px elements-panel-styles.css:10
     7    .foo - 5px 5px elements-panel-styles.css:14
    88border-top-left-radius: 5px;
    9     .foo - 5px 5px elements-panel-styles.css:10
     9    .foo - 5px 5px elements-panel-styles.css:14
    1010border-top-right-radius: 5px;
    11     .foo - 5px 5px elements-panel-styles.css:10
     11    .foo - 5px 5px elements-panel-styles.css:14
    1212color: blue;
    13     .foo, .foo::before - blue elements-panel-styles.css:16
    14     /-- overloaded --/ .foo - black elements-panel-styles.css:10
     13    .foo, .foo::before - blue elements-panel-styles.css:21
     14    /-- overloaded --/ .foo - black elements-panel-styles.css:14
    1515display: none;
    1616    element.style - none
     
    2121    #container - 14px elements-panel-styles.css:5
    2222    /-- overloaded --/ body - 12px elements-panel-styles.css:1
     23font-style: italic;
     24    #container .foo - italic !important elements-panel-styles.css:10
     25    /-- overloaded --/ .foo - normal !important elements-panel-styles.css:14
    2326margin-bottom: 2px;
    24     .foo - 2px elements-panel-styles.css:10
     27    .foo - 2px elements-panel-styles.css:14
    2528margin-left: 0px;
    26     .foo - 0px elements-panel-styles.css:10
     29    .foo - 0px elements-panel-styles.css:14
    2730margin-right: 0px;
    28     .foo - 0px elements-panel-styles.css:10
     31    .foo - 0px elements-panel-styles.css:14
    2932margin-top: 10px;
    30     .foo - 10px elements-panel-styles.css:10
     33    .foo - 10px elements-panel-styles.css:14
    3134
    3235[expanded] element.style { ()
     
    3437
    3538======== Matched CSS Rules ========
    36 [expanded] .foo { (elements-panel-styles.css:34)
     39[expanded] #container .foo { (elements-panel-styles.css:10)
     40font-style: italic !important;
    3741
    38 [expanded] .foo, .foo::before { (elements-panel-styles.css:16)
     42[expanded] .foo { (elements-panel-styles.css:39)
     43
     44[expanded] .foo, .foo::before { (elements-panel-styles.css:21)
    3945content: "[before Foo]";
    4046color: blue;
    4147
    42 [expanded] .foo { (elements-panel-styles.css:10)
     48[expanded] .foo { (elements-panel-styles.css:14)
    4349/-- overloaded --/ color: black;
    4450margin: 10px 0 2px;
     
    5258    border-bottom-right-radius: 5px 5px;
    5359    border-bottom-left-radius: 5px 5px;
     60/-- overloaded --/ font-style: normal !important;
    5461
    5562[expanded] div { (user agent stylesheet)
     
    6774
    6875======== Pseudo ::before element ========
    69 [expanded] .foo::before { (elements-panel-styles.css:38)
     76[expanded] .foo::before { (elements-panel-styles.css:43)
    7077
    71 [expanded] .foo::before { (elements-panel-styles.css:21)
     78[expanded] .foo::before { (elements-panel-styles.css:26)
    7279color: red;
    7380
    74 [expanded] .foo, .foo::before { (elements-panel-styles.css:16)
     81[expanded] .foo, .foo::before { (elements-panel-styles.css:21)
    7582content: "[before Foo]";
    7683/-- overloaded --/ color: blue;
     
    7885
    7986======== Pseudo ::after element ========
    80 [expanded] .foo::after { (elements-panel-styles.css:29)
     87[expanded] .foo::after { (elements-panel-styles.css:34)
    8188font-family: courier;
    8289content: "[after Foo 2]";
    8390
    84 [expanded] .foo::after { (elements-panel-styles.css:25)
     91[expanded] .foo::after { (elements-panel-styles.css:30)
    8592/-- overloaded --/ content: "[after Foo]";
    8693color: green;
  • trunk/LayoutTests/inspector/elements/resources/elements-panel-styles.css

    r78535 r90630  
    88}
    99
     10#container .foo {
     11    font-style: italic !important;
     12}
     13
    1014.foo {
    1115    color: black;
    1216    margin: 10px 0 2px;
    1317    border-radius: 5px;
     18    font-style: normal !important;
    1419}
    1520
  • trunk/Source/WebCore/ChangeLog

    r90628 r90630  
     12011-07-08  Alexander Pavlov  <apavlov@chromium.org>
     2
     3        Web Inspector: CSS inspector gets confused about specificity of !important properties
     4        https://bugs.webkit.org/show_bug.cgi?id=64074
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/front-end/StylesSidebarPane.js:
     9        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
     10
    1112011-07-08  Alexander Pavlov  <apavlov@chromium.org>
    212
  • trunk/Source/WebCore/inspector/front-end/StylesSidebarPane.js

    r90567 r90630  
    453453            var foundPriorityProperties = [];
    454454
    455             // Walk in reverse to match the order !important overrides.
    456             for (var i = (styleRules.length - 1); i >= 0; --i) {
     455            // Walk in direct order to detect the active/most specific rule providing a priority
     456            // (in this case all subsequent !important values get canceled.)
     457            for (var i = 0; i < styleRules.length; ++i) {
    457458                if (styleRules[i].computedStyle || styleRules[i].isStyleSeparator)
    458459                    continue;
Note: See TracChangeset for help on using the changeset viewer.