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

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

Issue 1282243002: Prepare for multiple !important author ranges. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Missing STACK_ALLOCATED() Created 5 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
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 * Copyright (C) 2013 Google Inc. All rights reserved. 4 * Copyright (C) 2013 Google Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 25 matching lines...) Expand all
36 class ComputedStyle; 36 class ComputedStyle;
37 class StyleResolverState; 37 class StyleResolverState;
38 38
39 class CachedMatchedProperties final : public NoBaseWillBeGarbageCollectedFinaliz ed<CachedMatchedProperties> { 39 class CachedMatchedProperties final : public NoBaseWillBeGarbageCollectedFinaliz ed<CachedMatchedProperties> {
40 40
41 public: 41 public:
42 WillBeHeapVector<MatchedProperties> matchedProperties; 42 WillBeHeapVector<MatchedProperties> matchedProperties;
43 RefPtr<ComputedStyle> computedStyle; 43 RefPtr<ComputedStyle> computedStyle;
44 RefPtr<ComputedStyle> parentComputedStyle; 44 RefPtr<ComputedStyle> parentComputedStyle;
45 45
46 void set(const ComputedStyle&, const ComputedStyle& parentStyle, const Match Result&); 46 void set(const ComputedStyle&, const ComputedStyle& parentStyle, const Match edPropertiesVector&);
47 void clear(); 47 void clear();
48 DEFINE_INLINE_TRACE() 48 DEFINE_INLINE_TRACE()
49 { 49 {
50 #if ENABLE(OILPAN) 50 #if ENABLE(OILPAN)
51 visitor->trace(matchedProperties); 51 visitor->trace(matchedProperties);
52 #endif 52 #endif
53 } 53 }
54 }; 54 };
55 55
56 // Specialize the HashTraits for CachedMatchedProperties to check for dead 56 // Specialize the HashTraits for CachedMatchedProperties to check for dead
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 } 88 }
89 }; 89 };
90 #endif 90 #endif
91 91
92 class MatchedPropertiesCache { 92 class MatchedPropertiesCache {
93 DISALLOW_ALLOCATION(); 93 DISALLOW_ALLOCATION();
94 WTF_MAKE_NONCOPYABLE(MatchedPropertiesCache); 94 WTF_MAKE_NONCOPYABLE(MatchedPropertiesCache);
95 public: 95 public:
96 MatchedPropertiesCache(); 96 MatchedPropertiesCache();
97 97
98 const CachedMatchedProperties* find(unsigned hash, const StyleResolverState& , const MatchResult&); 98 const CachedMatchedProperties* find(unsigned hash, const StyleResolverState& , const MatchedPropertiesVector&);
99 void add(const ComputedStyle&, const ComputedStyle& parentStyle, unsigned ha sh, const MatchResult&); 99 void add(const ComputedStyle&, const ComputedStyle& parentStyle, unsigned ha sh, const MatchedPropertiesVector&);
100 100
101 void clear(); 101 void clear();
102 void clearViewportDependent(); 102 void clearViewportDependent();
103 103
104 static bool isCacheable(const Element*, const ComputedStyle&, const Computed Style& parentStyle); 104 static bool isCacheable(const Element*, const ComputedStyle&, const Computed Style& parentStyle);
105 105
106 DECLARE_TRACE(); 106 DECLARE_TRACE();
107 107
108 private: 108 private:
109 #if ENABLE(OILPAN) 109 #if ENABLE(OILPAN)
110 typedef HeapHashMap<unsigned, Member<CachedMatchedProperties>, DefaultHash<u nsigned>::Hash, HashTraits<unsigned>, CachedMatchedPropertiesHashTraits > Cache; 110 typedef HeapHashMap<unsigned, Member<CachedMatchedProperties>, DefaultHash<u nsigned>::Hash, HashTraits<unsigned>, CachedMatchedPropertiesHashTraits > Cache;
111 #else 111 #else
112 // Every N additions to the matched declaration cache trigger a sweep where entries holding 112 // Every N additions to the matched declaration cache trigger a sweep where entries holding
113 // the last reference to a style declaration are garbage collected. 113 // the last reference to a style declaration are garbage collected.
114 void sweep(Timer<MatchedPropertiesCache>*); 114 void sweep(Timer<MatchedPropertiesCache>*);
115 115
116 unsigned m_additionsSinceLastSweep; 116 unsigned m_additionsSinceLastSweep;
117 117
118 typedef HashMap<unsigned, OwnPtr<CachedMatchedProperties>> Cache; 118 typedef HashMap<unsigned, OwnPtr<CachedMatchedProperties>> Cache;
119 Timer<MatchedPropertiesCache> m_sweepTimer; 119 Timer<MatchedPropertiesCache> m_sweepTimer;
120 #endif 120 #endif
121 Cache m_cache; 121 Cache m_cache;
122 }; 122 };
123 123
124 } 124 }
125 125
126 #endif 126 #endif
OLDNEW
« no previous file with comments | « Source/core/css/resolver/MatchResultTest.cpp ('k') | Source/core/css/resolver/MatchedPropertiesCache.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698