OLD | NEW |
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 const CSSSelector& selector() const { return m_rule->selectorList().selector
At(m_selectorIndex); } | 79 const CSSSelector& selector() const { return m_rule->selectorList().selector
At(m_selectorIndex); } |
80 unsigned selectorIndex() const { return m_selectorIndex; } | 80 unsigned selectorIndex() const { return m_selectorIndex; } |
81 | 81 |
82 bool isLastInArray() const { return m_isLastInArray; } | 82 bool isLastInArray() const { return m_isLastInArray; } |
83 void setLastInArray(bool flag) { m_isLastInArray = flag; } | 83 void setLastInArray(bool flag) { m_isLastInArray = flag; } |
84 | 84 |
85 bool containsUncommonAttributeSelector() const { return m_containsUncommonAt
tributeSelector; } | 85 bool containsUncommonAttributeSelector() const { return m_containsUncommonAt
tributeSelector; } |
86 unsigned specificity() const { return m_specificity; } | 86 unsigned specificity() const { return m_specificity; } |
87 unsigned linkMatchType() const { return m_linkMatchType; } | 87 unsigned linkMatchType() const { return m_linkMatchType; } |
88 bool hasDocumentSecurityOrigin() const { return m_hasDocumentSecurityOrigin;
} | 88 bool hasDocumentSecurityOrigin() const { return m_hasDocumentSecurityOrigin;
} |
89 PropertyWhitelistType propertyWhitelistType(bool isMatchingUARules = false)
const { return isMatchingUARules ? PropertyWhitelistNone : static_cast<PropertyW
hitelistType>(m_propertyWhitelistType); } | 89 PropertyWhitelistType propertyWhitelist(bool isMatchingUARules = false) cons
t { return isMatchingUARules ? PropertyWhitelistNone : static_cast<PropertyWhite
listType>(m_propertyWhitelist); } |
90 // Try to balance between memory usage (there can be lots of RuleData object
s) and good filtering performance. | 90 // Try to balance between memory usage (there can be lots of RuleData object
s) and good filtering performance. |
91 static const unsigned maximumIdentifierCount = 4; | 91 static const unsigned maximumIdentifierCount = 4; |
92 const unsigned* descendantSelectorIdentifierHashes() const { return m_descen
dantSelectorIdentifierHashes; } | 92 const unsigned* descendantSelectorIdentifierHashes() const { return m_descen
dantSelectorIdentifierHashes; } |
93 | 93 |
94 DECLARE_TRACE(); | 94 DECLARE_TRACE(); |
95 | 95 |
96 private: | 96 private: |
97 RawPtrWillBeMember<StyleRule> m_rule; | 97 RawPtrWillBeMember<StyleRule> m_rule; |
98 unsigned m_selectorIndex : 13; | 98 unsigned m_selectorIndex : 13; |
99 unsigned m_isLastInArray : 1; // We store an array of RuleData objects in a
primitive array. | 99 unsigned m_isLastInArray : 1; // We store an array of RuleData objects in a
primitive array. |
100 // This number was picked fairly arbitrarily. We can probably lower it if we
need to. | 100 // This number was picked fairly arbitrarily. We can probably lower it if we
need to. |
101 // Some simple testing showed <100,000 RuleData's on large sites. | 101 // Some simple testing showed <100,000 RuleData's on large sites. |
102 unsigned m_position : 18; | 102 unsigned m_position : 18; |
103 unsigned m_specificity : 24; | 103 unsigned m_specificity : 24; |
104 unsigned m_containsUncommonAttributeSelector : 1; | 104 unsigned m_containsUncommonAttributeSelector : 1; |
105 unsigned m_linkMatchType : 2; // CSSSelector::LinkMatchMask | 105 unsigned m_linkMatchType : 2; // CSSSelector::LinkMatchMask |
106 unsigned m_hasDocumentSecurityOrigin : 1; | 106 unsigned m_hasDocumentSecurityOrigin : 1; |
107 unsigned m_propertyWhitelistType : 2; | 107 unsigned m_propertyWhitelist : 2; |
108 // Use plain array instead of a Vector to minimize memory overhead. | 108 // Use plain array instead of a Vector to minimize memory overhead. |
109 unsigned m_descendantSelectorIdentifierHashes[maximumIdentifierCount]; | 109 unsigned m_descendantSelectorIdentifierHashes[maximumIdentifierCount]; |
110 }; | 110 }; |
111 | 111 |
112 struct SameSizeAsRuleData { | 112 struct SameSizeAsRuleData { |
113 DISALLOW_NEW(); | 113 DISALLOW_NEW(); |
114 RawPtrWillBeMember<void*> a; | 114 RawPtrWillBeMember<void*> a; |
115 unsigned b; | 115 unsigned b; |
116 unsigned c; | 116 unsigned c; |
117 unsigned d[4]; | 117 unsigned d[4]; |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 WillBeHeapVector<RuleData> m_allRules; | 236 WillBeHeapVector<RuleData> m_allRules; |
237 #endif | 237 #endif |
238 }; | 238 }; |
239 | 239 |
240 } // namespace blink | 240 } // namespace blink |
241 | 241 |
242 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleData); | 242 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleData); |
243 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::MinimalRuleData); | 243 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::MinimalRuleData); |
244 | 244 |
245 #endif // RuleSet_h | 245 #endif // RuleSet_h |
OLD | NEW |