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

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

Issue 669873003: Avoid sub-tree style recalc for ::selection. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 Apple Inc. All r ights reserved. 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r ights 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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 case CSSSelector::PseudoLang: 110 case CSSSelector::PseudoLang:
111 case CSSSelector::PseudoNot: 111 case CSSSelector::PseudoNot:
112 case CSSSelector::PseudoRoot: 112 case CSSSelector::PseudoRoot:
113 case CSSSelector::PseudoScope: 113 case CSSSelector::PseudoScope:
114 case CSSSelector::PseudoScrollbar: 114 case CSSSelector::PseudoScrollbar:
115 case CSSSelector::PseudoScrollbarButton: 115 case CSSSelector::PseudoScrollbarButton:
116 case CSSSelector::PseudoScrollbarCorner: 116 case CSSSelector::PseudoScrollbarCorner:
117 case CSSSelector::PseudoScrollbarThumb: 117 case CSSSelector::PseudoScrollbarThumb:
118 case CSSSelector::PseudoScrollbarTrack: 118 case CSSSelector::PseudoScrollbarTrack:
119 case CSSSelector::PseudoScrollbarTrackPiece: 119 case CSSSelector::PseudoScrollbarTrackPiece:
120 case CSSSelector::PseudoWindowInactive:
121 case CSSSelector::PseudoSelection:
120 case CSSSelector::PseudoInRange: 122 case CSSSelector::PseudoInRange:
121 case CSSSelector::PseudoOutOfRange: 123 case CSSSelector::PseudoOutOfRange:
122 case CSSSelector::PseudoUnresolved: 124 case CSSSelector::PseudoUnresolved:
123 case CSSSelector::PseudoContent: 125 case CSSSelector::PseudoContent:
124 case CSSSelector::PseudoHost: 126 case CSSSelector::PseudoHost:
125 case CSSSelector::PseudoShadow: 127 case CSSSelector::PseudoShadow:
126 case CSSSelector::PseudoListBox: 128 case CSSSelector::PseudoListBox:
127 return true; 129 return true;
128 case CSSSelector::PseudoNotParsed: 130 case CSSSelector::PseudoNotParsed:
129 case CSSSelector::PseudoUnknown: 131 case CSSSelector::PseudoUnknown:
(...skipping 17 matching lines...) Expand all
147 if (!selector.matchesPseudoElement() && selector.match() != CSSSelector::Pse udoClass) { 149 if (!selector.matchesPseudoElement() && selector.match() != CSSSelector::Pse udoClass) {
148 ASSERT(supportsInvalidation(selector.match())); 150 ASSERT(supportsInvalidation(selector.match()));
149 return false; 151 return false;
150 } 152 }
151 153
152 switch (selector.pseudoType()) { 154 switch (selector.pseudoType()) {
153 case CSSSelector::PseudoFirstLine: 155 case CSSSelector::PseudoFirstLine:
154 case CSSSelector::PseudoFirstLetter: 156 case CSSSelector::PseudoFirstLetter:
155 case CSSSelector::PseudoFullPageMedia: 157 case CSSSelector::PseudoFullPageMedia:
156 case CSSSelector::PseudoResizer: 158 case CSSSelector::PseudoResizer:
157 case CSSSelector::PseudoWindowInactive:
158 case CSSSelector::PseudoCornerPresent: 159 case CSSSelector::PseudoCornerPresent:
159 case CSSSelector::PseudoDecrement: 160 case CSSSelector::PseudoDecrement:
160 case CSSSelector::PseudoIncrement: 161 case CSSSelector::PseudoIncrement:
161 case CSSSelector::PseudoHorizontal: 162 case CSSSelector::PseudoHorizontal:
162 case CSSSelector::PseudoVertical: 163 case CSSSelector::PseudoVertical:
163 case CSSSelector::PseudoStart: 164 case CSSSelector::PseudoStart:
164 case CSSSelector::PseudoEnd: 165 case CSSSelector::PseudoEnd:
165 case CSSSelector::PseudoDoubleButton: 166 case CSSSelector::PseudoDoubleButton:
166 case CSSSelector::PseudoSingleButton: 167 case CSSSelector::PseudoSingleButton:
167 case CSSSelector::PseudoNoButton: 168 case CSSSelector::PseudoNoButton:
168 case CSSSelector::PseudoSelection:
169 case CSSSelector::PseudoFullScreen: 169 case CSSSelector::PseudoFullScreen:
170 case CSSSelector::PseudoFullScreenDocument: 170 case CSSSelector::PseudoFullScreenDocument:
171 case CSSSelector::PseudoFullScreenAncestor: 171 case CSSSelector::PseudoFullScreenAncestor:
172 case CSSSelector::PseudoUserAgentCustomElement: 172 case CSSSelector::PseudoUserAgentCustomElement:
173 case CSSSelector::PseudoWebKitCustomElement: 173 case CSSSelector::PseudoWebKitCustomElement:
174 case CSSSelector::PseudoCue: 174 case CSSSelector::PseudoCue:
175 case CSSSelector::PseudoFutureCue: 175 case CSSSelector::PseudoFutureCue:
176 case CSSSelector::PseudoPastCue: 176 case CSSSelector::PseudoPastCue:
177 case CSSSelector::PseudoSpatialNavigationFocus: 177 case CSSSelector::PseudoSpatialNavigationFocus:
178 // FIXME: Most pseudo classes/elements above can be supported and moved 178 // FIXME: Most pseudo classes/elements above can be supported and moved
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 visitor->trace(uncommonAttributeRules); 639 visitor->trace(uncommonAttributeRules);
640 visitor->trace(m_classInvalidationSets); 640 visitor->trace(m_classInvalidationSets);
641 visitor->trace(m_attributeInvalidationSets); 641 visitor->trace(m_attributeInvalidationSets);
642 visitor->trace(m_idInvalidationSets); 642 visitor->trace(m_idInvalidationSets);
643 visitor->trace(m_pseudoInvalidationSets); 643 visitor->trace(m_pseudoInvalidationSets);
644 visitor->trace(m_styleInvalidator); 644 visitor->trace(m_styleInvalidator);
645 #endif 645 #endif
646 } 646 }
647 647
648 } // namespace blink 648 } // namespace blink
OLDNEW
« no previous file with comments | « LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698