| Index: Source/core/css/resolver/StyleResolver.cpp
|
| diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp
|
| index e5bb8a6b610b856fb63e4a73b7fcc483eac120e9..cd92129074c444eb8fe27fd60411c7dab5b8b7a6 100644
|
| --- a/Source/core/css/resolver/StyleResolver.cpp
|
| +++ b/Source/core/css/resolver/StyleResolver.cpp
|
| @@ -655,13 +655,13 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForKeyframe(Element& element, cons
|
| // relevant one is animation-timing-function and we special-case that in
|
| // CSSAnimations.cpp
|
| bool inheritedOnly = false;
|
| - applyMatchedProperties<HighPropertyPriority>(state, result, false, result.firstRule(), result.lastRule(), inheritedOnly);
|
| + applyMatchedProperties<HighPropertyPriority>(state, result, false, result.begin(), result.end(), inheritedOnly);
|
|
|
| // If our font got dirtied, go ahead and update it now.
|
| updateFont(state);
|
|
|
| // Now do rest of the properties.
|
| - applyMatchedProperties<LowPropertyPriority>(state, result, false, result.firstRule(), result.lastRule(), inheritedOnly);
|
| + applyMatchedProperties<LowPropertyPriority>(state, result, false, result.begin(), result.end(), inheritedOnly);
|
|
|
| loadPendingResources(state);
|
|
|
| @@ -850,12 +850,12 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForPage(int pageIndex)
|
| bool inheritedOnly = false;
|
|
|
| const MatchResult& result = collector.matchedResult();
|
| - applyMatchedProperties<HighPropertyPriority>(state, result, false, result.firstRule(), result.lastRule(), inheritedOnly);
|
| + applyMatchedProperties<HighPropertyPriority>(state, result, false, result.begin(), result.end(), inheritedOnly);
|
|
|
| // If our font got dirtied, go ahead and update it now.
|
| updateFont(state);
|
|
|
| - applyMatchedProperties<LowPropertyPriority>(state, result, false, result.firstRule(), result.lastRule(), inheritedOnly);
|
| + applyMatchedProperties<LowPropertyPriority>(state, result, false, result.begin(), result.end(), inheritedOnly);
|
|
|
| loadPendingResources(state);
|
|
|
| @@ -1253,15 +1253,15 @@ void StyleResolver::applyProperties(StyleResolverState& state, const StyleProper
|
| }
|
|
|
| template <CSSPropertyPriority priority>
|
| -void StyleResolver::applyMatchedProperties(StyleResolverState& state, const MatchResult& matchResult, bool isImportant, int startIndex, int endIndex, bool inheritedOnly)
|
| +void StyleResolver::applyMatchedProperties(StyleResolverState& state, const MatchResult& matchResult, bool isImportant, unsigned startIndex, unsigned endIndex, bool inheritedOnly)
|
| {
|
| - if (startIndex == -1)
|
| + if (startIndex == endIndex)
|
| return;
|
|
|
| - ASSERT(startIndex >= 0 && endIndex < static_cast<int>(matchResult.matchedProperties.size()));
|
| + ASSERT_WITH_SECURITY_IMPLICATION(endIndex <= matchResult.matchedProperties.size());
|
|
|
| if (state.style()->insideLink() != NotInsideLink) {
|
| - for (int i = startIndex; i <= endIndex; ++i) {
|
| + for (unsigned i = startIndex; i < endIndex; ++i) {
|
| const MatchedProperties& matchedProperties = matchResult.matchedProperties[i];
|
| unsigned linkMatchType = matchedProperties.m_types.linkMatchType;
|
| // FIXME: It would be nicer to pass these as arguments but that requires changes in many places.
|
| @@ -1274,7 +1274,7 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
|
| state.setApplyPropertyToVisitedLinkStyle(false);
|
| return;
|
| }
|
| - for (int i = startIndex; i <= endIndex; ++i) {
|
| + for (unsigned i = startIndex; i < endIndex; ++i) {
|
| const MatchedProperties& matchedProperties = matchResult.matchedProperties[i];
|
| applyProperties<priority>(state, matchedProperties.properties.get(), isImportant, inheritedOnly, static_cast<PropertyWhitelistType>(matchedProperties.m_types.whitelistType));
|
| }
|
| @@ -1336,9 +1336,9 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
|
| // high-priority properties first, i.e., those properties that other properties depend on.
|
| // The order is (1) high-priority not important, (2) high-priority important, (3) normal not important
|
| // and (4) normal important.
|
| - applyMatchedProperties<HighPropertyPriority>(state, matchResult, false, matchResult.firstRule(), matchResult.lastRule(), applyInheritedOnly);
|
| - applyMatchedProperties<HighPropertyPriority>(state, matchResult, true, matchResult.firstAuthorRule(), matchResult.lastAuthorRule(), applyInheritedOnly);
|
| - applyMatchedProperties<HighPropertyPriority>(state, matchResult, true, matchResult.firstUARule(), matchResult.lastUARule(), applyInheritedOnly);
|
| + applyMatchedProperties<HighPropertyPriority>(state, matchResult, false, matchResult.begin(), matchResult.end(), applyInheritedOnly);
|
| + applyMatchedProperties<HighPropertyPriority>(state, matchResult, true, matchResult.beginAuthor(), matchResult.endAuthor(), applyInheritedOnly);
|
| + applyMatchedProperties<HighPropertyPriority>(state, matchResult, true, matchResult.beginUA(), matchResult.endUA(), applyInheritedOnly);
|
|
|
| if (UNLIKELY(isSVGForeignObjectElement(element))) {
|
| // LayoutSVGRoot handles zooming for the whole SVG subtree, so foreignObject content should not be scaled again.
|
| @@ -1364,15 +1364,15 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
|
| applyInheritedOnly = false;
|
|
|
| // Now do the normal priority UA properties.
|
| - applyMatchedProperties<LowPropertyPriority>(state, matchResult, false, matchResult.firstUARule(), matchResult.lastUARule(), applyInheritedOnly);
|
| + applyMatchedProperties<LowPropertyPriority>(state, matchResult, false, matchResult.beginUA(), matchResult.endUA(), applyInheritedOnly);
|
|
|
| // Cache the UA properties to pass them to LayoutTheme in adjustComputedStyle.
|
| state.cacheUserAgentBorderAndBackground();
|
|
|
| // Now do the author and user normal priority properties and all the !important properties.
|
| - applyMatchedProperties<LowPropertyPriority>(state, matchResult, false, matchResult.firstAuthorRule(), matchResult.lastAuthorRule(), applyInheritedOnly);
|
| - applyMatchedProperties<LowPropertyPriority>(state, matchResult, true, matchResult.firstAuthorRule(), matchResult.lastAuthorRule(), applyInheritedOnly);
|
| - applyMatchedProperties<LowPropertyPriority>(state, matchResult, true, matchResult.firstUARule(), matchResult.lastUARule(), applyInheritedOnly);
|
| + applyMatchedProperties<LowPropertyPriority>(state, matchResult, false, matchResult.beginAuthor(), matchResult.endAuthor(), applyInheritedOnly);
|
| + applyMatchedProperties<LowPropertyPriority>(state, matchResult, true, matchResult.beginAuthor(), matchResult.endAuthor(), applyInheritedOnly);
|
| + applyMatchedProperties<LowPropertyPriority>(state, matchResult, true, matchResult.beginUA(), matchResult.endUA(), applyInheritedOnly);
|
|
|
| loadPendingResources(state);
|
|
|
|
|