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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 SelectorChecker::SelectorChecker(Document& document, Mode mode) | 62 SelectorChecker::SelectorChecker(Document& document, Mode mode) |
63 : m_strictParsing(!document.inQuirksMode()) | 63 : m_strictParsing(!document.inQuirksMode()) |
64 , m_documentIsHTML(document.isHTMLDocument()) | 64 , m_documentIsHTML(document.isHTMLDocument()) |
65 , m_mode(mode) | 65 , m_mode(mode) |
66 { | 66 { |
67 } | 67 } |
68 | 68 |
69 static bool matchesCustomPseudoElement(const Element* element, const CSSSelector
& selector) | 69 static bool matchesCustomPseudoElement(const Element* element, const CSSSelector
& selector) |
70 { | 70 { |
71 ShadowRoot* root = element->containingShadowRoot(); | 71 ShadowRoot* root = element->containingShadowRoot(); |
72 if (!root || root->type() != ShadowRoot::UserAgentShadowRoot) | 72 if (!root) |
73 return false; | 73 return false; |
74 | |
75 if (element->shadowPseudoId() != selector.value()) | 74 if (element->shadowPseudoId() != selector.value()) |
76 return false; | 75 return false; |
| 76 if (selector.pseudoType() == CSSSelector::PseudoWebKitCustomElement && root-
>type() != ShadowRoot::UserAgentShadowRoot) |
| 77 return false; |
77 | 78 |
78 return true; | 79 return true; |
79 } | 80 } |
80 | 81 |
81 Element* SelectorChecker::parentElement(const SelectorCheckingContext& context,
bool allowToCrossBoundary) const | 82 Element* SelectorChecker::parentElement(const SelectorCheckingContext& context,
bool allowToCrossBoundary) const |
82 { | 83 { |
83 // CrossesBoundary means we don't care any context.scope. So we can walk up
from a shadow root to its shadow host. | 84 // CrossesBoundary means we don't care any context.scope. So we can walk up
from a shadow root to its shadow host. |
84 if (allowToCrossBoundary) | 85 if (allowToCrossBoundary) |
85 return context.element->parentOrShadowHostElement(); | 86 return context.element->parentOrShadowHostElement(); |
86 | 87 |
(...skipping 995 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1082 return element.focused() && isFrameFocused(element); | 1083 return element.focused() && isFrameFocused(element); |
1083 } | 1084 } |
1084 | 1085 |
1085 template | 1086 template |
1086 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst DOMSiblingTraversalStrategy&, MatchResult*) const; | 1087 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst DOMSiblingTraversalStrategy&, MatchResult*) const; |
1087 | 1088 |
1088 template | 1089 template |
1089 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst ShadowDOMSiblingTraversalStrategy&, MatchResult*) const; | 1090 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, co
nst ShadowDOMSiblingTraversalStrategy&, MatchResult*) const; |
1090 | 1091 |
1091 } | 1092 } |
OLD | NEW |