Changeset 176494 in webkit
- Timestamp:
- Nov 21, 2014, 6:06:47 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 20 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/css/CSSGrammar.y.in (modified) (7 diffs)
-
WebCore/css/CSSParser.cpp (modified) (2 diffs)
-
WebCore/css/CSSSelector.cpp (modified) (9 diffs)
-
WebCore/css/CSSSelector.h (modified) (1 diff)
-
WebCore/css/SelectorChecker.cpp (modified) (5 diffs)
-
WebCore/css/SelectorPseudoClassAndCompatibilityElementMap.in (modified) (2 diffs)
-
WebCore/cssjit/SelectorCompiler.cpp (modified) (2 diffs)
-
WebInspectorUI/ChangeLog (modified) (1 diff)
-
WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.css (modified) (2 diffs)
-
WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.css (modified) (2 diffs)
-
WebInspectorUI/UserInterface/Views/ControlToolbarItem.css (modified) (2 diffs)
-
WebInspectorUI/UserInterface/Views/DOMStorageContentView.css (modified) (1 diff)
-
WebInspectorUI/UserInterface/Views/DashboardContainerView.css (modified) (3 diffs)
-
WebInspectorUI/UserInterface/Views/DataGrid.css (modified) (5 diffs)
-
WebInspectorUI/UserInterface/Views/DebuggerDashboardView.css (modified) (1 diff)
-
WebInspectorUI/UserInterface/Views/DefaultDashboardView.css (modified) (3 diffs)
-
WebInspectorUI/UserInterface/Views/DetailsSection.css (modified) (4 diffs)
-
WebInspectorUI/UserInterface/Views/FindBanner.css (modified) (1 diff)
-
WebInspectorUI/UserInterface/Views/FlexibleSpaceNavigationItem.css (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r176492 r176494 1 2014-11-21 Benjamin Poulain <bpoulain@apple.com> 2 3 Start using the new :not() and :matches() in the Web Inspector 4 https://bugs.webkit.org/show_bug.cgi?id=138978 5 6 Reviewed by Joseph Pecoraro. 7 8 There are only minor pending issues on :not() and :matches(). The feedback 9 has only been positive so far. It is time to move them out the experimental 10 flag. 11 12 * css/CSSGrammar.y.in: 13 * css/CSSParser.cpp: 14 (WebCore::CSSParser::detectFunctionTypeToken): 15 * css/CSSSelector.cpp: 16 (WebCore::simpleSelectorSpecificityInternal): 17 (WebCore::simpleSelectorFunctionalPseudoClassStaticSpecificity): 18 (WebCore::appendSelectorList): 19 (WebCore::CSSSelector::selectorText): 20 * css/CSSSelector.h: 21 * css/SelectorChecker.cpp: 22 (WebCore::SelectorChecker::checkOne): 23 (WebCore::SelectorChecker::determineLinkMatchType): 24 * css/SelectorPseudoClassAndCompatibilityElementMap.in: 25 * cssjit/SelectorCompiler.cpp: 26 (WebCore::SelectorCompiler::addPseudoClassType): 27 1 28 2014-11-21 Chris Dumez <cdumez@apple.com> 2 29 -
trunk/Source/WebCore/css/CSSGrammar.y.in
r176368 r176494 58 58 case NOTFUNCTION: 59 59 case CALCFUNCTION: 60 case MATCHESFUNCTION: 61 case MAXFUNCTION: 60 62 case MINFUNCTION: 61 case MAXFUNCTION:62 63 case NTHCHILDFUNCTIONS: 63 64 case NTHCHILDSELECTORSEPARATOR: 64 65 #if ENABLE_CSS_SELECTORS_LEVEL4 65 66 case LANGFUNCTION: 66 case MATCHESFUNCTION:67 67 case ROLEFUNCTION: 68 68 #endif … … 227 227 %token <string> NOTFUNCTION 228 228 %token <string> CALCFUNCTION 229 %token <string> MATCHESFUNCTION 230 %token <string> MAXFUNCTION 229 231 %token <string> MINFUNCTION 230 %token <string> MAXFUNCTION231 232 %token <string> NTHCHILDFUNCTIONS 232 233 233 234 #if ENABLE_CSS_SELECTORS_LEVEL4 234 235 %token <string> LANGFUNCTION 235 %token <string> MATCHESFUNCTION236 236 %token <string> ROLEFUNCTION 237 237 #endif … … 1364 1364 } 1365 1365 } 1366 | ':' MATCHESFUNCTION maybe_space nested_selector_list maybe_space ')' { 1367 $$ = nullptr; 1368 if ($4) { 1369 auto selector = std::make_unique<CSSParserSelector>(); 1370 selector->setMatch(CSSSelector::PseudoClass); 1371 selector->adoptSelectorVector(*std::unique_ptr<Vector<std::unique_ptr<CSSParserSelector>>>($4)); 1372 selector->setPseudoClassValue($2); 1373 if (selector->pseudoClassType() == CSSSelector::PseudoClassMatches) 1374 $$ = selector.release(); 1375 } 1376 } 1366 1377 1367 1378 #if ENABLE_CSS_SELECTORS_LEVEL4 … … 1375 1386 if (selector->pseudoClassType() == CSSSelector::PseudoClassLang) 1376 1387 $$ = selector.release(); 1377 }1378 }1379 1380 | ':' MATCHESFUNCTION maybe_space nested_selector_list maybe_space ')' {1381 $$ = nullptr;1382 if ($4) {1383 auto selector = std::make_unique<CSSParserSelector>();1384 selector->setMatch(CSSSelector::PseudoClass);1385 selector->adoptSelectorVector(*std::unique_ptr<Vector<std::unique_ptr<CSSParserSelector>>>($4));1386 selector->setPseudoClassValue($2);1387 if (selector->pseudoClassType() == CSSSelector::PseudoClassMatches)1388 $$ = selector.release();1389 1388 } 1390 1389 } … … 1484 1483 $$ = selector.release(); 1485 1484 } 1486 1487 1485 // Definition of :not(). 1488 #if ENABLE_CSS_SELECTORS_LEVEL41489 1486 | ':' NOTFUNCTION maybe_space nested_selector_list maybe_space ')' { 1490 1487 $$ = nullptr; … … 1498 1495 } 1499 1496 } 1500 #else1501 | ':' NOTFUNCTION maybe_space compound_selector maybe_space ')' {1502 std::unique_ptr<CSSParserSelector> selector($4);1503 $$ = nullptr;1504 if (selector && selector->isSimple()) {1505 $$ = new CSSParserSelector;1506 $$->setMatch(CSSSelector::PseudoClass);1507 1508 Vector<std::unique_ptr<CSSParserSelector>> selectorVector;1509 selectorVector.append(WTF::move(selector));1510 $$->adoptSelectorVector(selectorVector);1511 $$->setPseudoClassValue($2);1512 }1513 }1514 #endif1515 1497 ; 1516 1498 … … 1890 1872 1891 1873 opening_parenthesis: 1892 '(' | FUNCTION | CALCFUNCTION | M INFUNCTION | MAXFUNCTION | ANYFUNCTION | NOTFUNCTION1874 '(' | FUNCTION | CALCFUNCTION | MATCHESFUNCTION | MAXFUNCTION | MINFUNCTION | ANYFUNCTION | NOTFUNCTION 1893 1875 #if ENABLE_CSS_SELECTORS_LEVEL4 1894 | LANGFUNCTION | MATCHESFUNCTION |ROLEFUNCTION1876 | LANGFUNCTION | ROLEFUNCTION 1895 1877 #endif 1896 1878 #if ENABLE_VIDEO_TRACK -
trunk/Source/WebCore/css/CSSParser.cpp
r176454 r176494 10712 10712 return false; 10713 10713 10714 #if ENABLE(CSS_SELECTORS_LEVEL4)10715 10714 case 7: 10716 10715 if (isEqualToCSSIdentifier(name, "matches")) { … … 10719 10718 } 10720 10719 return false; 10721 #endif10722 10720 10723 10721 case 9: -
trunk/Source/WebCore/css/CSSSelector.cpp
r176436 r176494 90 90 break; 91 91 case CSSSelector::PseudoClass: 92 #if ENABLE(CSS_SELECTORS_LEVEL4)93 92 if (simpleSelector.pseudoClassType() == CSSSelector::PseudoClassMatches) { 94 93 ASSERT_WITH_MESSAGE(simpleSelector.selectorList() && simpleSelector.selectorList()->first(), "The parser should never generate a valid selector for an empty :matches()."); … … 103 102 } 104 103 FALLTHROUGH; 105 #else106 if (simpleSelector.pseudoClassType() == CSSSelector::PseudoClassNot && simpleSelector.selectorList())107 return simpleSelector.selectorList()->first()->simpleSelectorSpecificity();108 FALLTHROUGH;109 #endif110 104 case CSSSelector::Exact: 111 105 case CSSSelector::Class: … … 137 131 static unsigned simpleSelectorFunctionalPseudoClassStaticSpecificity(const CSSSelector& simpleSelector, bool& ok) 138 132 { 139 #if ENABLE(CSS_SELECTORS_LEVEL4)140 133 if (simpleSelector.match() == CSSSelector::PseudoClass) { 141 134 if (simpleSelector.pseudoClassType() == CSSSelector::PseudoClassMatches) { … … 158 151 } 159 152 } 160 #endif161 153 return 0; 162 154 } … … 355 347 } 356 348 } 349 #endif 357 350 358 351 static void appendSelectorList(StringBuilder& str, const CSSSelectorList* selectorList) … … 365 358 } 366 359 } 367 #endif368 360 369 361 String CSSSelector::selectorText(const String& rightSide) const … … 521 513 case CSSSelector::PseudoClassNot: 522 514 str.appendLiteral(":not("); 523 #if ENABLE(CSS_SELECTORS_LEVEL4)524 515 appendSelectorList(str, cs->selectorList()); 525 #else526 if (const CSSSelectorList* selectorList = cs->selectorList())527 str.append(selectorList->first()->selectorText());528 #endif529 516 str.append(')'); 530 517 break; … … 572 559 str.appendLiteral(":optional"); 573 560 break; 574 #if ENABLE(CSS_SELECTORS_LEVEL4)575 561 case CSSSelector::PseudoClassMatches: { 576 562 str.appendLiteral(":matches("); … … 579 565 break; 580 566 } 567 #if ENABLE(CSS_SELECTORS_LEVEL4) 581 568 case CSSSelector::PseudoClassPlaceholderShown: 582 569 str.appendLiteral(":placeholder-shown"); -
trunk/Source/WebCore/css/CSSSelector.h
r176436 r176494 123 123 PseudoClassOptional, 124 124 #if ENABLE(CSS_SELECTORS_LEVEL4) 125 PseudoClassPlaceholderShown, 126 #endif 125 127 PseudoClassMatches, 126 PseudoClassPlaceholderShown,127 #endif128 128 PseudoClassRequired, 129 129 PseudoClassReadOnly, -
trunk/Source/WebCore/css/SelectorChecker.cpp
r176313 r176494 577 577 const CSSSelectorList* selectorList = selector->selectorList(); 578 578 579 #if !ENABLE(CSS_SELECTORS_LEVEL4)580 // FIXME: We probably should fix the parser and make it never produce :not rules with missing selector list.581 if (!selectorList)582 return false;583 #endif584 585 579 for (const CSSSelector* subselector = selectorList->first(); subselector; subselector = CSSSelectorList::next(subselector)) { 586 580 CheckingContextWithStatus subcontext(context); … … 592 586 593 587 unsigned ignoredSpecificity; 594 #if ENABLE(CSS_SELECTORS_LEVEL4)595 588 if (matchRecursively(subcontext, ignoreDynamicPseudo, ignoredSpecificity).match == Match::SelectorMatches) { 596 589 ASSERT(!ignoreDynamicPseudo); 597 590 return false; 598 591 } 599 #else 600 if (subcontext.selector->match() == CSSSelector::PseudoClass) { 601 // :not cannot nest. I don't really know why this is a 602 // restriction in CSS3, but it is, so let's honor it. 603 // the parser enforces that this never occurs 604 ASSERT(subcontext.selector->pseudoClassType() != CSSSelector::PseudoClassNot); 605 // We select between :visited and :link when applying. We don't know which one applied (or not) yet. 606 if (subcontext.selector->pseudoClassType() == CSSSelector::PseudoClassVisited) 607 return true; 608 } 609 // Since :not cannot contain pseudo elements, there's no effect on matchType. 610 MatchType ignoreMatchType = MatchType::Element; 611 if (!checkOne(subcontext, ignoreDynamicPseudo, ignoreMatchType, ignoredSpecificity)) 612 return true; 613 #endif 614 } 615 #if ENABLE(CSS_SELECTORS_LEVEL4) 592 } 616 593 return true; 617 #endif618 594 } else if (context.hasScrollbarPseudo) { 619 595 // CSS scrollbars match a specific subset of pseudo classes, and they have specialized rules for each … … 723 699 } 724 700 break; 725 #if ENABLE(CSS_SELECTORS_LEVEL4)726 701 case CSSSelector::PseudoClassMatches: 727 702 { … … 755 730 return hasMatchedAnything; 756 731 } 757 732 #if ENABLE(CSS_SELECTORS_LEVEL4) 758 733 case CSSSelector::PseudoClassPlaceholderShown: 759 734 if (is<HTMLTextFormControlElement>(*element)) { … … 1121 1096 if (selector->match() == CSSSelector::PseudoClass) { 1122 1097 switch (selector->pseudoClassType()) { 1123 #if! ENABLE(CSS_SELECTORS_LEVEL4)1124 case CSSSelector::PseudoClassNot:1125 {1126 // :not(:visited) is equivalent to :link. Parser enforces that :not can't nest.1127 const CSSSelectorList* selectorList = selector->selectorList();1128 if (!selectorList)1129 break;1130 1131 for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = subSelector->tagHistory()) {1132 if (subSelector->match() == CSSSelector::PseudoClass) {1133 CSSSelector::PseudoClassType subType = subSelector->pseudoClassType();1134 if (subType == CSSSelector::PseudoClassVisited)1135 linkMatchType &= ~SelectorChecker::MatchVisited;1136 else if (subType == CSSSelector::PseudoClassLink)1137 linkMatchType &= ~SelectorChecker::MatchLink;1138 }1139 }1140 }1141 break;1142 #endif1143 1098 case CSSSelector::PseudoClassLink: 1144 1099 linkMatchType &= ~SelectorChecker::MatchVisited; -
trunk/Source/WebCore/css/SelectorPseudoClassAndCompatibilityElementMap.in
r176241 r176494 35 35 last-of-type 36 36 link 37 matches( 37 38 no-button 38 39 not( … … 47 48 #if ENABLE(CSS_SELECTORS_LEVEL4) 48 49 placeholder-shown 49 matches(50 50 #endif 51 51 read-only -
trunk/Source/WebCore/cssjit/SelectorCompiler.cpp
r176313 r176494 757 757 } 758 758 759 #if ENABLE(CSS_SELECTORS_LEVEL4)760 759 case CSSSelector::PseudoClassMatches: 761 760 { … … 805 804 return functionType; 806 805 } 807 #endif808 806 809 807 case CSSSelector::PseudoClassUnknown: -
trunk/Source/WebInspectorUI/ChangeLog
r176376 r176494 1 2014-11-21 Benjamin Poulain <bpoulain@apple.com> 2 3 Start using the new :not() and :matches() in the Web Inspector 4 https://bugs.webkit.org/show_bug.cgi?id=138978 5 6 Reviewed by Joseph Pecoraro. 7 8 Start simpifying some definitions by using modern CSS. 9 10 * UserInterface/Views/CSSStyleDeclarationSection.css: 11 (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)): 12 (.style-declaration-section:matches(.locked, .selector-locked) > .header > .selector): 13 (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted. 14 (.style-declaration-section.selector-locked > .header > .selector): Deleted. 15 * UserInterface/Views/CSSStyleDeclarationTextEditor.css: 16 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.disabled, .invalid, .other-vendor, .not-inherited, .overridden)): 17 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)): 18 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property:matches(.disabled, .other-vendor, .not-inherited, .overridden)): 19 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.overridden): Deleted. 20 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited): Deleted. 21 (.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.overridden): Deleted. 22 * UserInterface/Views/ControlToolbarItem.css: 23 (.toolbar:matches(.icon-and-label-horizontal, .toolbar.icon-only) .item.control): 24 (.toolbar.icon-only .item.control): Deleted. 25 * UserInterface/Views/DOMStorageContentView.css: 26 * UserInterface/Views/DashboardContainerView.css: 27 (.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container): 28 (.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard-container): 29 (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): 30 (.toolbar.normal-size.icon-and-label-vertical .dashboard-container): Deleted. 31 (.toolbar.small-size.icon-and-label-horizontal .dashboard-container): Deleted. 32 (.toolbar.normal-size.icon-and-label-horizontal .dashboard-container): Deleted. 33 * UserInterface/Views/DataGrid.css: 34 (.data-grid :matches(th, td):not(:last-child)): 35 (.data-grid th:matches(.sort-ascending, .sort-descending)): 36 (.data-grid :matches(th, td) > div): 37 (.data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child): 38 (.data-grid tr:matches(.selected, :hover) .go-to-arrow): 39 (.data-grid :-webkit-any(th, td):not(:last-child)): Deleted. 40 (.data-grid th:-webkit-any(.sort-ascending, .sort-descending)): Deleted. 41 (.data-grid :-webkit-any(th, td) > div): Deleted. 42 (.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child): Deleted. 43 (.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow): Deleted. 44 * UserInterface/Views/DebuggerDashboardView.css: 45 (.toolbar.collapsed .dashboard.debugger > :not(.message, .navigation-bar )): 46 (.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )): Deleted. 47 * UserInterface/Views/DefaultDashboardView.css: 48 (body.web .toolbar.collapsed .dashboard.default > :matches(.time, .resourcesSize, .logs)): 49 (body.javascript .toolbar .dashboard.default > :matches(.time, .resourcesSize, .resourcesCount)): 50 (.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard.default > .item): 51 (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item): 52 (body.web .toolbar.collapsed .dashboard.default > .logs): Deleted. 53 (body.javascript .toolbar .dashboard.default > .resourcesCount): Deleted. 54 (.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item): Deleted. 55 (.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item): Deleted. 56 * UserInterface/Views/DetailsSection.css: 57 (.details-section > .header > :matches(.node-link, .go-to-arrow)): 58 (.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)): 59 (body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *): 60 (.details-section > .content > .group > .row:matches(.empty, .text)): 61 (body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)): 62 (.details-section > .header > .go-to-arrow): Deleted. 63 (.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *): Deleted. 64 (body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted. 65 (.details-section > .content > .group > .row.text): Deleted. 66 (body.mac-platform.legacy .details-section > .content > .group > .row.text): Deleted. 67 * UserInterface/Views/FindBanner.css: 68 (:matches(.find-banner, .supports-find-banner).no-find-banner-transition): 69 (.supports-find-banner.no-find-banner-transition): Deleted. 70 * UserInterface/Views/FlexibleSpaceNavigationItem.css: 71 (:matches(.navigation-bar, .toolbar) .item.flexible-space): 72 (.toolbar .item.flexible-space): Deleted. 73 1 74 2014-11-19 Joseph Pecoraro <pecoraro@apple.com> 2 75 -
trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.css
r173707 r176494 65 65 body.mac-platform.legacy .style-declaration-section:first-child, 66 66 body.mac-platform.legacy div:not(.style-declaration-section) + .style-declaration-section, 67 body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section.last-in-group, 68 body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child { 67 body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child) { 69 68 box-shadow: rgba(0, 0, 0, 0.3) 0 1px 3px 1px; 70 69 } … … 122 121 } 123 122 124 .style-declaration-section.locked > .header > .selector, 125 .style-declaration-section.selector-locked > .header > .selector { 123 .style-declaration-section:matches(.locked, .selector-locked) > .header > .selector { 126 124 -webkit-user-modify: read-only; 127 125 } -
trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.css
r174631 r176494 61 61 } 62 62 63 .css-style-text-editor > .CodeMirror .CodeMirror-lines pre > span span:not(.css-style-declaration-property):not(.CodeMirror-widget):not(.cm-comment):not(.cm-tab), 64 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.disabled, 65 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.invalid, 66 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.other-vendor, 67 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited, 68 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.overridden { 63 .css-style-text-editor > .CodeMirror .CodeMirror-lines pre > span span:not(.css-style-declaration-property, .CodeMirror-widget, .cm-comment, .cm-tab), 64 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.disabled, .invalid, .other-vendor, .not-inherited, .overridden) { 69 65 text-decoration: line-through; 70 66 -webkit-text-stroke-width: 0.000000000000001px; /* A hack to get a different line-through color. */ … … 72 68 } 73 69 74 .css-style-text-editor > .CodeMirror .CodeMirror-lines pre > span span:not(.css-style-declaration-property ):not(.CodeMirror-widget):not(.cm-comment):not(.cm-tab),70 .css-style-text-editor > .CodeMirror .CodeMirror-lines pre > span span:not(.css-style-declaration-property, .CodeMirror-widget, .cm-comment, .cm-tab), 75 71 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.invalid { 76 72 -webkit-text-stroke-color: rgba(255, 0, 0, 0.6); 77 73 } 78 74 79 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.implicit, 80 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited { 75 .css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited) { 81 76 opacity: 0.5; 82 77 } 83 78 84 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.disabled, 85 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.other-vendor, 86 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.not-inherited, 87 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.overridden { 79 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property:matches(.disabled, .other-vendor, .not-inherited, .overridden) { 88 80 -webkit-text-stroke-color: rgba(0, 0, 0, 0.3); 89 81 } 90 82 91 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line span:not(.css-style-declaration-property ):not(.CodeMirror-widget):not(.cm-comment):not(.cm-tab),83 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line span:not(.css-style-declaration-property, .CodeMirror-widget, .cm-comment, .cm-tab), 92 84 .css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.invalid { 93 85 text-decoration: none; -
trunk/Source/WebInspectorUI/UserInterface/Views/ControlToolbarItem.css
r173715 r176494 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 41 41 } 42 42 43 .toolbar.icon-and-label-horizontal .item.control, 44 .toolbar.icon-only .item.control { 43 .toolbar:matches(.icon-and-label-horizontal, .icon-only) .item.control { 45 44 padding: 0 2px; 46 45 } -
trunk/Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.css
r172399 r176494 32 32 } 33 33 34 .content-view.dom-storage > .data-grid tr.duplicate-key td.key-column, 35 .content-view.dom-storage > .data-grid tr.missing-key td.key-column, 34 .content-view.dom-storage > .data-grid tr:matches(.duplicate-key, .missing-key) td.key-column, 36 35 .content-view.dom-storage > .data-grid tr.missing-value td.value-column { 37 36 background-color: #fee; 38 37 } 39 38 40 .content-view.dom-storage > .data-grid:focus tr.selected.duplicate-key td.key-column, 41 .content-view.dom-storage > .data-grid:focus tr.selected.missing-key td.key-column, 39 .content-view.dom-storage > .data-grid:focus tr.selected:matches(.duplicate-key, .missing-key) td.key-column, 42 40 .content-view.dom-storage > .data-grid:focus tr.selected.missing-value td.value-column { 43 41 background-color: #daa; -
trunk/Source/WebInspectorUI/UserInterface/Views/DashboardContainerView.css
r172526 r176494 64 64 } 65 65 66 .toolbar.small-size.icon-and-label-vertical .dashboard-container, 67 .toolbar.normal-size.icon-and-label-vertical .dashboard-container { 66 .toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container { 68 67 margin-top: 6px; 69 68 } … … 72 71 73 72 .toolbar.label-only .dashboard-container, 74 .toolbar.small-size.icon-only .dashboard-container, 75 .toolbar.small-size.icon-and-label-vertical .dashboard-container, 76 .toolbar.small-size.icon-and-label-horizontal .dashboard-container { 73 .toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container { 77 74 height: 22px; 78 75 } … … 80 77 /* Styles for the fairly short style, one row with quite a bit of y-margin */ 81 78 82 .toolbar.normal-size.icon-only .dashboard-container, 83 .toolbar.normal-size.icon-and-label-vertical .dashboard-container, 84 .toolbar.normal-size.icon-and-label-horizontal .dashboard-container { 79 .toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container { 85 80 height: 30px; 86 81 } -
trunk/Source/WebInspectorUI/UserInterface/Views/DataGrid.css
r172399 r176494 87 87 } 88 88 89 .data-grid : -webkit-any(th, td):not(:last-child) {89 .data-grid :matches(th, td):not(:last-child) { 90 90 border-right: 1px solid rgb(179, 179, 179); 91 91 } … … 95 95 } 96 96 97 .data-grid th: -webkit-any(.sort-ascending, .sort-descending) {97 .data-grid th:matches(.sort-ascending, .sort-descending) { 98 98 background-color: rgb(230, 230, 230); 99 99 } … … 151 151 } 152 152 153 .data-grid : -webkit-any(th, td) > div {153 .data-grid :matches(th, td) > div { 154 154 white-space: nowrap; 155 155 text-overflow: ellipsis; … … 169 169 } 170 170 171 .data-grid th: -webkit-any(.sort-ascending, .sort-descending) > div:first-child {171 .data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child { 172 172 padding-right: 12px; 173 173 } … … 299 299 } 300 300 301 .data-grid tr: -webkit-any(.selected, :hover) .go-to-arrow {301 .data-grid tr:matches(.selected, :hover) .go-to-arrow { 302 302 display: block; 303 303 } -
trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerDashboardView.css
r173715 r176494 131 131 } 132 132 133 .toolbar.collapsed .dashboard.debugger > :not(.message ):not(.navigation-bar) {133 .toolbar.collapsed .dashboard.debugger > :not(.message, .navigation-bar) { 134 134 display: none; 135 135 } -
trunk/Source/WebInspectorUI/UserInterface/Views/DefaultDashboardView.css
r173715 r176494 24 24 */ 25 25 26 body.web .toolbar.collapsed .dashboard.default > .time, 27 body.web .toolbar.collapsed .dashboard.default > .resourcesSize, 28 body.web .toolbar.collapsed .dashboard.default > .logs { 26 body.web .toolbar.collapsed .dashboard.default > :matches(.time, .resourcesSize, .logs) { 29 27 display: none; 30 28 } 31 29 32 body.javascript .toolbar .dashboard.default > .time, 33 body.javascript .toolbar .dashboard.default > .resourcesSize, 34 body.javascript .toolbar .dashboard.default > .resourcesCount { 30 body.javascript .toolbar .dashboard.default > :matches(.time, .resourcesSize, .resourcesCount) { 35 31 display: none; 36 32 } … … 217 213 218 214 .toolbar.label-only .dashboard.default > .item, 219 .toolbar.small-size.icon-only .dashboard.default > .item, 220 .toolbar.small-size.icon-and-label-vertical .dashboard.default > .item, 221 .toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item { 215 .toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item { 222 216 margin: 1px 0; 223 217 } … … 225 219 /* Styles for the fairly short style, one row with quite a bit of y-margin */ 226 220 227 .toolbar.normal-size.icon-only .dashboard.default > .item, 228 .toolbar.normal-size.icon-and-label-vertical .dashboard.default > .item, 229 .toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item { 221 .toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item { 230 222 margin: 4px 0; 231 223 } -
trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSection.css
r175599 r176494 168 168 } 169 169 170 .details-section > .header > .node-link, 171 .details-section > .header > .go-to-arrow { 170 .details-section > .header > :matches(.node-link, .go-to-arrow) { 172 171 float: right; 173 172 } … … 211 210 } 212 211 213 .details-section > .content > .group:nth-child(even) > .row:not(.simple):first-child, 214 .details-section > .content > .group:nth-child(even) > .row.simple:first-child > * { 212 .details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child) { 215 213 border-top: 1px solid rgb(179, 179, 179); 216 214 } 217 215 218 body.mac-platform.legacy .details-section > .content > .group:nth-child(even) > .row:not(.simple):last-child, 219 body.mac-platform.legacy .details-section > .content > .group:last-child > .row:not(.simple):last-child, 220 body.mac-platform.legacy .details-section > .content > .group:nth-child(even) > .row.simple:last-child > *, 221 body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > * { 216 body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row:not(.simple):last-child, 217 body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > * { 222 218 border-bottom: 1px solid rgb(179, 179, 179); 223 219 } … … 299 295 } 300 296 301 .details-section > .content > .group > .row.empty, 302 .details-section > .content > .group > .row.text { 297 .details-section > .content > .group > .row:matches(.empty, .text) { 303 298 padding: 0 6px 7px 6px; 304 299 text-align: center; … … 306 301 } 307 302 308 body.mac-platform.legacy .details-section > .content > .group > .row.empty, 309 body.mac-platform.legacy .details-section > .content > .group > .row.text { 303 body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text) { 310 304 padding: 6px; 311 305 } -
trunk/Source/WebInspectorUI/UserInterface/Views/FindBanner.css
r172241 r176494 50 50 } 51 51 52 .find-banner.no-find-banner-transition, 53 .supports-find-banner.no-find-banner-transition { 52 .no-find-banner-transition:matches(.find-banner, .supports-find-banner) { 54 53 transition-duration: 0 !important; 55 54 } -
trunk/Source/WebInspectorUI/UserInterface/Views/FlexibleSpaceNavigationItem.css
r173707 r176494 24 24 */ 25 25 26 .navigation-bar .item.flexible-space, 27 .toolbar .item.flexible-space { 26 :matches(.navigation-bar, .toolbar) .item.flexible-space { 28 27 flex: 1; 29 28 }
Note:
See TracChangeset
for help on using the changeset viewer.