12016-02-25 Antti Koivisto <antti@apple.com>
2
3 Implement ::slotted pseudo element
4 https://bugs.webkit.org/show_bug.cgi?id=149441
5 <rdar://problem/22731987>
6
7 Reviewed by NOBODY (OOPS!).
8
9 * css/CSSGrammar.y.in:
10
11 Parse ::slotted.
12
13 * css/CSSParser.cpp:
14 (WebCore::CSSParser::detectFunctionTypeToken):
15 * css/CSSParserValues.cpp:
16 (WebCore::CSSParserSelector::parsePseudoElementCueFunctionSelector):
17 (WebCore::CSSParserSelector::parsePseudoElementSlottedFunctionSelector):
18
19 Tokenize ::slotted.
20
21 (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
22 * css/CSSParserValues.h:
23 * css/CSSSelector.cpp:
24 (WebCore::CSSSelector::pseudoId):
25 * css/CSSSelector.h:
26 * css/ElementRuleCollector.cpp:
27 (WebCore::ElementRuleCollector::matchAuthorRules):
28 (WebCore::ElementRuleCollector::matchHostPseudoClassRules):
29 (WebCore::ElementRuleCollector::matchSlottedPseudoElementRules):
30
31 Match ::slotted selector.
32
33 (WebCore::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):
34
35 Collect ::slotted rules that may apply to an element in a slot.
36
37 (WebCore::ElementRuleCollector::matchUserRules):
38 (WebCore::ElementRuleCollector::matchUARules):
39 (WebCore::findSlottedPseudoElementSelector):
40 (WebCore::ElementRuleCollector::ruleMatches):
41 * css/ElementRuleCollector.h:
42 * css/RuleSet.cpp:
43 (WebCore::RuleSet::addRule):
44
45 Collect ::slotted rules.
46
47 (WebCore::RuleSet::shrinkToFit):
48 * css/RuleSet.h:
49 (WebCore::RuleSet::hostPseudoClassRules):
50 (WebCore::RuleSet::slottedPseudoElementRules):
51 (WebCore::RuleSet::focusPseudoClassRules):
52 (WebCore::RuleSet::universalRules):
53 * css/SelectorChecker.cpp:
54 (WebCore::SelectorChecker::checkOne):
55 * style/StyleSharingResolver.cpp:
56 (WebCore::Style::SharingResolver::resolve):
57
58 Disable style sharing for children of shadow host. They may be affected by the shadow tree style
59 which is not considered in style sharing checks.
60