| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
| 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| (...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 | 897 |
| 898 bool matched = false; | 898 bool matched = false; |
| 899 unsigned maxSpecificity = 0; | 899 unsigned maxSpecificity = 0; |
| 900 | 900 |
| 901 // If one of simple selectors matches an element, returns Select
orMatches. Just "OR". | 901 // If one of simple selectors matches an element, returns Select
orMatches. Just "OR". |
| 902 for (subContext.selector = selector.selectorList()->first(); sub
Context.selector; subContext.selector = CSSSelectorList::next(*subContext.select
or)) { | 902 for (subContext.selector = selector.selectorList()->first(); sub
Context.selector; subContext.selector = CSSSelectorList::next(*subContext.select
or)) { |
| 903 subContext.behaviorAtBoundary = ScopeIsShadowHostInPseudoHos
tParameter; | 903 subContext.behaviorAtBoundary = ScopeIsShadowHostInPseudoHos
tParameter; |
| 904 subContext.scope = shadowHost; | 904 subContext.scope = shadowHost; |
| 905 // Use NodeRenderingTraversal to traverse a composed ancesto
r list of a given element. | 905 // Use NodeRenderingTraversal to traverse a composed ancesto
r list of a given element. |
| 906 Element* nextElement = &element; | 906 Element* nextElement = &element; |
| 907 SelectorCheckingContext hostContext(subContext); |
| 907 do { | 908 do { |
| 908 MatchResult subResult; | 909 MatchResult subResult; |
| 909 subContext.element = nextElement; | 910 hostContext.element = nextElement; |
| 910 if (match(subContext, siblingTraversalStrategy, &subResu
lt) == SelectorMatches) { | 911 if (match(hostContext, siblingTraversalStrategy, &subRes
ult) == SelectorMatches) { |
| 911 matched = true; | 912 matched = true; |
| 912 // Consider div:host(div:host(div:host(div:host...))
). | 913 // Consider div:host(div:host(div:host(div:host...))
). |
| 913 maxSpecificity = std::max(maxSpecificity, subContext
.selector->specificity() + subResult.specificity); | 914 maxSpecificity = std::max(maxSpecificity, hostContex
t.selector->specificity() + subResult.specificity); |
| 914 break; | 915 break; |
| 915 } | 916 } |
| 916 subContext.behaviorAtBoundary = DoesNotCrossBoundary; | 917 hostContext.behaviorAtBoundary = DoesNotCrossBoundary; |
| 917 subContext.scope = 0; | 918 hostContext.scope = 0; |
| 918 | 919 |
| 919 if (selector.pseudoType() == CSSSelector::PseudoHost) | 920 if (selector.pseudoType() == CSSSelector::PseudoHost) |
| 920 break; | 921 break; |
| 921 | 922 |
| 923 hostContext.elementStyle = 0; |
| 922 nextElement = NodeRenderingTraversal::parentElement(next
Element); | 924 nextElement = NodeRenderingTraversal::parentElement(next
Element); |
| 923 } while (nextElement); | 925 } while (nextElement); |
| 924 } | 926 } |
| 925 if (matched) { | 927 if (matched) { |
| 926 if (specificity) | 928 if (specificity) |
| 927 *specificity = maxSpecificity; | 929 *specificity = maxSpecificity; |
| 928 return true; | 930 return true; |
| 929 } | 931 } |
| 930 } | 932 } |
| 931 break; | 933 break; |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1101 return element.focused() && isFrameFocused(element); | 1103 return element.focused() && isFrameFocused(element); |
| 1102 } | 1104 } |
| 1103 | 1105 |
| 1104 template | 1106 template |
| 1105 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst DOMSiblingTraversalStrategy&, MatchResult*) const; | 1107 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst DOMSiblingTraversalStrategy&, MatchResult*) const; |
| 1106 | 1108 |
| 1107 template | 1109 template |
| 1108 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst ShadowDOMSiblingTraversalStrategy&, MatchResult*) const; | 1110 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst ShadowDOMSiblingTraversalStrategy&, MatchResult*) const; |
| 1109 | 1111 |
| 1110 } | 1112 } |
| OLD | NEW |