Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: Source/core/css/SelectorChecker.cpp

Issue 21151005: Implement ::content (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 if (context.selector->m_match == CSSSelector::PseudoElement) { 86 if (context.selector->m_match == CSSSelector::PseudoElement) {
87 if (context.selector->isCustomPseudoElement()) { 87 if (context.selector->isCustomPseudoElement()) {
88 if (ShadowRoot* root = context.element->containingShadowRoot()) { 88 if (ShadowRoot* root = context.element->containingShadowRoot()) {
89 if (context.element->shadowPseudoId() != context.selector->value ()) 89 if (context.element->shadowPseudoId() != context.selector->value ())
90 return SelectorFailsLocally; 90 return SelectorFailsLocally;
91 91
92 if (context.selector->pseudoType() == CSSSelector::PseudoWebKitC ustomElement && root->type() != ShadowRoot::UserAgentShadowRoot) 92 if (context.selector->pseudoType() == CSSSelector::PseudoWebKitC ustomElement && root->type() != ShadowRoot::UserAgentShadowRoot)
93 return SelectorFailsLocally; 93 return SelectorFailsLocally;
94 } else 94 } else
95 return SelectorFailsLocally; 95 return SelectorFailsLocally;
96 } else if (context.selector->isContentPseudoElement()) {
97 if (!context.element->isInShadowTree() || !context.element->isInsert ionPoint())
98 return SelectorFailsLocally;
96 } else { 99 } else {
97 if ((!context.elementStyle && m_mode == ResolvingStyle) || m_mode == QueryingRules) 100 if ((!context.elementStyle && m_mode == ResolvingStyle) || m_mode == QueryingRules)
98 return SelectorFailsLocally; 101 return SelectorFailsLocally;
99 102
100 PseudoId pseudoId = CSSSelector::pseudoId(context.selector->pseudoTy pe()); 103 PseudoId pseudoId = CSSSelector::pseudoId(context.selector->pseudoTy pe());
101 if (pseudoId == FIRST_LETTER) { 104 if (pseudoId == FIRST_LETTER) {
102 if (Document* document = context.element->document()) 105 if (Document* document = context.element->document())
103 document->styleSheetCollection()->setUsesFirstLetterRules(tr ue); 106 document->styleSheetCollection()->setUsesFirstLetterRules(tr ue);
104 } 107 }
105 if (pseudoId != NOPSEUDO && m_mode != SharingRules) 108 if (pseudoId != NOPSEUDO && m_mode != SharingRules)
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 return element->focused() && isFrameFocused(element); 915 return element->focused() && isFrameFocused(element);
913 } 916 }
914 917
915 template 918 template
916 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, Ps eudoId&, const DOMSiblingTraversalStrategy&) const; 919 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, Ps eudoId&, const DOMSiblingTraversalStrategy&) const;
917 920
918 template 921 template
919 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, Ps eudoId&, const ShadowDOMSiblingTraversalStrategy&) const; 922 SelectorChecker::Match SelectorChecker::match(const SelectorCheckingContext&, Ps eudoId&, const ShadowDOMSiblingTraversalStrategy&) const;
920 923
921 } 924 }
OLDNEW
« Source/core/css/CSSParserValues.h ('K') | « Source/core/css/CSSSelector.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698