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

Unified Diff: Source/core/css/resolver/FilterOperationResolver.cpp

Issue 1266713003: Clean up some StyleBuilder property application code (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/css/resolver/FilterOperationResolver.cpp
diff --git a/Source/core/css/resolver/FilterOperationResolver.cpp b/Source/core/css/resolver/FilterOperationResolver.cpp
index a1052037cdbbeb9aba5b91cb358e41b4883d854e..a0b97cb42063897fe92d21b8dd47660627e44b32 100644
--- a/Source/core/css/resolver/FilterOperationResolver.cpp
+++ b/Source/core/css/resolver/FilterOperationResolver.cpp
@@ -71,36 +71,23 @@ static FilterOperation::OperationType filterOperationForType(CSSValueID type)
}
}
-bool FilterOperationResolver::createFilterOperations(CSSValue* inValue, const CSSToLengthConversionData& conversionData, FilterOperations& outOperations, StyleResolverState& state)
+void FilterOperationResolver::createFilterOperations(const CSSValue& inValue, const CSSToLengthConversionData& conversionData, FilterOperations& outOperations, StyleResolverState& state)
{
ASSERT(outOperations.isEmpty());
- if (!inValue)
- return false;
-
- if (inValue->isPrimitiveValue()) {
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(inValue);
- if (primitiveValue->getValueID() == CSSValueNone)
- return true;
+ if (inValue.isPrimitiveValue()) {
+ ASSERT(toCSSPrimitiveValue(inValue).getValueID() == CSSValueNone);
+ return;
}
- if (!inValue->isValueList())
- return false;
-
FilterOperations operations;
- for (auto& currValue : toCSSValueList(*inValue)) {
+ for (auto& currValue : toCSSValueList(inValue)) {
CSSFunctionValue* filterValue = toCSSFunctionValue(currValue.get());
FilterOperation::OperationType operationType = filterOperationForType(filterValue->functionType());
+ ASSERT(filterValue->length() <= 1);
if (operationType == FilterOperation::REFERENCE) {
- if (filterValue->length() != 1)
- continue;
- CSSValue* argument = filterValue->item(0);
-
- if (!argument->isSVGDocumentValue())
- continue;
-
- CSSSVGDocumentValue* svgDocumentValue = toCSSSVGDocumentValue(argument);
+ CSSSVGDocumentValue* svgDocumentValue = toCSSSVGDocumentValue(filterValue->item(0));
KURL url = state.document().completeURL(svgDocumentValue->url());
RefPtrWillBeRawPtr<ReferenceFilterOperation> operation = ReferenceFilterOperation::create(svgDocumentValue->url(), AtomicString(url.fragmentIdentifier()));
@@ -114,20 +101,6 @@ bool FilterOperationResolver::createFilterOperations(CSSValue* inValue, const CS
continue;
}
- // Check that all parameters are primitive values, with the
- // exception of drop shadow which has a CSSShadowValue parameter.
- if (operationType != FilterOperation::DROP_SHADOW) {
- bool haveNonPrimitiveValue = false;
- for (unsigned j = 0; j < filterValue->length(); ++j) {
- if (!filterValue->item(j)->isPrimitiveValue()) {
- haveNonPrimitiveValue = true;
- break;
- }
- }
- if (haveNonPrimitiveValue)
- continue;
- }
-
CSSPrimitiveValue* firstValue = filterValue->length() && filterValue->item(0)->isPrimitiveValue() ? toCSSPrimitiveValue(filterValue->item(0)) : 0;
switch (filterValue->functionType()) {
case CSSValueGrayscale:
@@ -173,14 +146,7 @@ bool FilterOperationResolver::createFilterOperations(CSSValue* inValue, const CS
break;
}
case CSSValueDropShadow: {
- if (filterValue->length() != 1)
- return false;
-
- CSSValue* cssValue = filterValue->item(0);
- if (!cssValue->isShadowValue())
- continue;
-
- CSSShadowValue* item = toCSSShadowValue(cssValue);
+ CSSShadowValue* item = toCSSShadowValue(filterValue->item(0));
IntPoint location(item->x->computeLength<int>(conversionData), item->y->computeLength<int>(conversionData));
int blur = item->blur ? item->blur->computeLength<int>(conversionData) : 0;
Color shadowColor = Color::black;
@@ -197,7 +163,6 @@ bool FilterOperationResolver::createFilterOperations(CSSValue* inValue, const CS
}
outOperations = operations;
- return true;
}
} // namespace blink
« no previous file with comments | « Source/core/css/resolver/FilterOperationResolver.h ('k') | Source/core/css/resolver/StyleBuilderConverter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698