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

Side by Side Diff: Source/core/css/resolver/StyleResolver.h

Issue 21012002: Web Animations: Trigger and update CSS Animations backed by the Web Animations model (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Recompute and apply updates to active animations after style resolution. 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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 24 matching lines...) Expand all
35 #include "core/css/resolver/StyleBuilder.h" 35 #include "core/css/resolver/StyleBuilder.h"
36 #include "core/css/resolver/StyleResolverState.h" 36 #include "core/css/resolver/StyleResolverState.h"
37 #include "core/css/resolver/StyleResourceLoader.h" 37 #include "core/css/resolver/StyleResourceLoader.h"
38 #include "wtf/HashMap.h" 38 #include "wtf/HashMap.h"
39 #include "wtf/HashSet.h" 39 #include "wtf/HashSet.h"
40 #include "wtf/RefPtr.h" 40 #include "wtf/RefPtr.h"
41 #include "wtf/Vector.h" 41 #include "wtf/Vector.h"
42 42
43 namespace WebCore { 43 namespace WebCore {
44 44
45 class CSSAnimationUpdate;
45 class CSSFontSelector; 46 class CSSFontSelector;
46 class CSSRuleList; 47 class CSSRuleList;
47 class CSSSelector; 48 class CSSSelector;
48 class CSSStyleSheet; 49 class CSSStyleSheet;
49 class CSSValue; 50 class CSSValue;
50 class ContainerNode; 51 class ContainerNode;
51 class Document; 52 class Document;
52 class DocumentTimeline; 53 class DocumentTimeline;
53 class Element; 54 class Element;
54 class ElementRuleCollector; 55 class ElementRuleCollector;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 bool buildScopedStyleTreeInDocumentOrder() const { return m_styleTree.buildI nDocumentOrder(); } 216 bool buildScopedStyleTreeInDocumentOrder() const { return m_styleTree.buildI nDocumentOrder(); }
216 217
217 ScopedStyleResolver* ensureScopedStyleResolver(const ContainerNode* scope) 218 ScopedStyleResolver* ensureScopedStyleResolver(const ContainerNode* scope)
218 { 219 {
219 return m_styleTree.ensureScopedStyleResolver(scope ? scope : document()) ; 220 return m_styleTree.ensureScopedStyleResolver(scope ? scope : document()) ;
220 } 221 }
221 222
222 // FIXME: Used by SharingStyleFinder, but should be removed. 223 // FIXME: Used by SharingStyleFinder, but should be removed.
223 bool styleSharingCandidateMatchesRuleSet(const ElementResolveContext&, Rende rStyle*, RuleSet*); 224 bool styleSharingCandidateMatchesRuleSet(const ElementResolveContext&, Rende rStyle*, RuleSet*);
224 225
225 const StyleRuleKeyframes* matchScopedKeyframesRule(Element*, const StringImp l* animationName); 226 const StyleRuleKeyframes* matchScopedKeyframesRule(const Element*, const Str ingImpl* animationName);
226 PassRefPtr<RenderStyle> styleForKeyframe(Element*, const RenderStyle*, const StyleKeyframe*, KeyframeValue&); 227 PassRefPtr<RenderStyle> styleForKeyframe(Element*, const RenderStyle*, const StyleKeyframe*, KeyframeValue&);
227 228
228 // These methods will give back the set of rules that matched for a given el ement (or a pseudo-element). 229 // These methods will give back the set of rules that matched for a given el ement (or a pseudo-element).
229 enum CSSRuleFilter { 230 enum CSSRuleFilter {
230 UAAndUserCSSRules = 1 << 1, 231 UAAndUserCSSRules = 1 << 1,
231 AuthorCSSRules = 1 << 2, 232 AuthorCSSRules = 1 << 2,
232 EmptyCSSRules = 1 << 3, 233 EmptyCSSRules = 1 << 3,
233 CrossOriginCSSRules = 1 << 4, 234 CrossOriginCSSRules = 1 << 4,
234 AllButEmptyCSSRules = UAAndUserCSSRules | AuthorCSSRules | CrossOriginCS SRules, 235 AllButEmptyCSSRules = UAAndUserCSSRules | AuthorCSSRules | CrossOriginCS SRules,
235 AllCSSRules = AllButEmptyCSSRules | EmptyCSSRules, 236 AllCSSRules = AllButEmptyCSSRules | EmptyCSSRules,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 void matchShadowDistributedRules(ElementRuleCollector&, bool includeEmptyRul es); 282 void matchShadowDistributedRules(ElementRuleCollector&, bool includeEmptyRul es);
282 void matchHostRules(Element*, ScopedStyleResolver*, ElementRuleCollector&, b ool includeEmptyRules); 283 void matchHostRules(Element*, ScopedStyleResolver*, ElementRuleCollector&, b ool includeEmptyRules);
283 void matchScopedAuthorRules(Element*, ElementRuleCollector&, bool includeEmp tyRules); 284 void matchScopedAuthorRules(Element*, ElementRuleCollector&, bool includeEmp tyRules);
284 void matchAllRules(StyleResolverState&, ElementRuleCollector&, bool matchAut horAndUserStyles, bool includeSMILProperties); 285 void matchAllRules(StyleResolverState&, ElementRuleCollector&, bool matchAut horAndUserStyles, bool includeSMILProperties);
285 void matchUARules(ElementRuleCollector&); 286 void matchUARules(ElementRuleCollector&);
286 void matchUserRules(ElementRuleCollector&, bool includeEmptyRules); 287 void matchUserRules(ElementRuleCollector&, bool includeEmptyRules);
287 void collectFeatures(); 288 void collectFeatures();
288 289
289 bool fastRejectSelector(const RuleData&) const; 290 bool fastRejectSelector(const RuleData&) const;
290 291
292 PassOwnPtr<CSSAnimationUpdate> calculateCSSAnimationUpdate(StyleResolverStat e&);
291 void applyMatchedProperties(StyleResolverState&, const MatchResult&); 293 void applyMatchedProperties(StyleResolverState&, const MatchResult&);
292 294
293 enum StyleApplicationPass { 295 enum StyleApplicationPass {
294 VariableDefinitions, 296 VariableDefinitions,
295 AnimationProperties, 297 AnimationProperties,
296 HighPriorityProperties, 298 HighPriorityProperties,
297 LowPriorityProperties 299 LowPriorityProperties
298 }; 300 };
299 template <StyleResolver::StyleApplicationPass pass> 301 template <StyleResolver::StyleApplicationPass pass>
300 static inline bool isPropertyForPass(CSSPropertyID); 302 static inline bool isPropertyForPass(CSSPropertyID);
301 template <StyleApplicationPass pass> 303 template <StyleApplicationPass pass>
302 void applyMatchedProperties(StyleResolverState&, const MatchResult&, bool im portant, int startIndex, int endIndex, bool inheritedOnly); 304 void applyMatchedProperties(StyleResolverState&, const MatchResult&, bool im portant, int startIndex, int endIndex, bool inheritedOnly);
303 template <StyleApplicationPass pass> 305 template <StyleApplicationPass pass>
304 void applyProperties(StyleResolverState&, const StylePropertySet* properties , StyleRule*, bool isImportant, bool inheritedOnly, PropertyWhitelistType = Prop ertyWhitelistNone); 306 void applyProperties(StyleResolverState&, const StylePropertySet* properties , StyleRule*, bool isImportant, bool inheritedOnly, PropertyWhitelistType = Prop ertyWhitelistNone);
305 template <StyleApplicationPass pass> 307 template <StyleApplicationPass pass>
306 void applyAnimatedProperties(StyleResolverState&, const Element*, const Docu mentTimeline*); 308 void applyAnimatedProperties(StyleResolverState&, const Element*, const Docu mentTimeline*, const CSSAnimationUpdate*);
307 void resolveVariables(StyleResolverState&, CSSPropertyID, CSSValue*, Vector< std::pair<CSSPropertyID, String> >& knownExpressions); 309 void resolveVariables(StyleResolverState&, CSSPropertyID, CSSValue*, Vector< std::pair<CSSPropertyID, String> >& knownExpressions);
308 void matchPageRules(MatchResult&, RuleSet*, bool isLeftPage, bool isFirstPag e, const String& pageName); 310 void matchPageRules(MatchResult&, RuleSet*, bool isLeftPage, bool isFirstPag e, const String& pageName);
309 void matchPageRulesForList(Vector<StyleRulePage*>& matchedRules, const Vecto r<StyleRulePage*>&, bool isLeftPage, bool isFirstPage, const String& pageName); 311 void matchPageRulesForList(Vector<StyleRulePage*>& matchedRules, const Vecto r<StyleRulePage*>&, bool isLeftPage, bool isFirstPage, const String& pageName);
310 void collectViewportRules(); 312 void collectViewportRules();
311 Settings* documentSettings() { return m_document->settings(); } 313 Settings* documentSettings() { return m_document->settings(); }
312 314
313 bool isLeftPage(int pageIndex) const; 315 bool isLeftPage(int pageIndex) const;
314 bool isRightPage(int pageIndex) const { return !isLeftPage(pageIndex); } 316 bool isRightPage(int pageIndex) const { return !isLeftPage(pageIndex); }
315 bool isFirstPage(int pageIndex) const; 317 bool isFirstPage(int pageIndex) const;
316 String pageName(int pageIndex) const; 318 String pageName(int pageIndex) const;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 PseudoId ignoreDynamicPseudo = NOPSEUDO; 373 PseudoId ignoreDynamicPseudo = NOPSEUDO;
372 if (selectorChecker.match(selectorCheckingContext, ignoreDynamicPseudo, DOMSiblingTraversalStrategy()) == SelectorChecker::SelectorMatches) 374 if (selectorChecker.match(selectorCheckingContext, ignoreDynamicPseudo, DOMSiblingTraversalStrategy()) == SelectorChecker::SelectorMatches)
373 return true; 375 return true;
374 } 376 }
375 return false; 377 return false;
376 } 378 }
377 379
378 } // namespace WebCore 380 } // namespace WebCore
379 381
380 #endif // StyleResolver_h 382 #endif // StyleResolver_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698