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

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

Issue 1306823004: Split out String, URI and CustomIdent from CSSPrimitiveValue (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@split_out_attr_values
Patch Set: Fixing tests Created 5 years, 3 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/StyleBuilderCustom.cpp
diff --git a/Source/core/css/resolver/StyleBuilderCustom.cpp b/Source/core/css/resolver/StyleBuilderCustom.cpp
index ebd5ed5d1efa43c4a51ad65617cc900d051f62d1..5dca340b22c49b099f3203dd21c7de7f5d52d87c 100644
--- a/Source/core/css/resolver/StyleBuilderCustom.cpp
+++ b/Source/core/css/resolver/StyleBuilderCustom.cpp
@@ -571,12 +571,12 @@ void StyleBuilderFunctions::applyValueCSSPropertyWebkitClipPath(StyleResolverSta
state.style()->setClipPath(nullptr);
} else if (primitiveValue->isShape()) {
state.style()->setClipPath(ShapeClipPathOperation::create(basicShapeForValue(state, primitiveValue->getShapeValue())));
- } else if (primitiveValue->isURI()) {
- String cssURLValue = primitiveValue->getStringValue();
- KURL url = state.document().completeURL(cssURLValue);
- // FIXME: It doesn't work with forward or external SVG references (see https://bugs.webkit.org/show_bug.cgi?id=90405)
- state.style()->setClipPath(ReferenceClipPathOperation::create(cssURLValue, AtomicString(url.fragmentIdentifier())));
}
+ } else if (value->isURIValue()) {
+ String cssURLValue = toCSSURIValue(value)->value();
+ KURL url = state.document().completeURL(cssURLValue);
+ // FIXME: It doesn't work with forward or external SVG references (see https://bugs.webkit.org/show_bug.cgi?id=90405)
+ state.style()->setClipPath(ReferenceClipPathOperation::create(cssURLValue, AtomicString(url.fragmentIdentifier())));
}
}
@@ -626,15 +626,14 @@ void StyleBuilderFunctions::applyValueCSSPropertyWebkitTextEmphasisStyle(StyleRe
return;
}
- CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
-
- if (primitiveValue->isString()) {
+ if (value->isStringValue()) {
state.style()->setTextEmphasisFill(TextEmphasisFillFilled);
state.style()->setTextEmphasisMark(TextEmphasisMarkCustom);
- state.style()->setTextEmphasisCustomMark(AtomicString(primitiveValue->getStringValue()));
+ state.style()->setTextEmphasisCustomMark(AtomicString(toCSSStringValue(value)->value()));
return;
}
+ CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
state.style()->setTextEmphasisCustomMark(nullAtom);
if (primitiveValue->getValueID() == CSSValueFilled || primitiveValue->getValueID() == CSSValueOpen) {
@@ -736,21 +735,21 @@ void StyleBuilderFunctions::applyValueCSSPropertyContent(StyleResolverState& sta
state.style()->setUnique();
else
state.parentStyle()->setUnique();
- QualifiedName attr(nullAtom, AtomicString(toCSSPrimitiveValue(functionValue->item(0))->getStringValue()), nullAtom);
+ QualifiedName attr(nullAtom, AtomicString(toCSSCustomIdentValue(functionValue->item(0))->value()), nullAtom);
const AtomicString& value = state.element()->getAttribute(attr);
state.style()->setContent(value.isNull() ? emptyString() : value.string(), didSet);
didSet = true;
}
- if (!item->isPrimitiveValue())
+ if (!item->isPrimitiveValue() && !item->isStringValue())
alancutter (OOO until 2018) 2015/09/17 02:59:29 Shouldn't this be ||?
sashab 2015/09/17 04:19:49 It's a bit confusing, but it should be &&. "If the
continue;
- CSSPrimitiveValue* contentValue = toCSSPrimitiveValue(item.get());
-
- if (contentValue->isString()) {
- state.style()->setContent(contentValue->getStringValue().impl(), didSet);
+ if (item->isStringValue()) {
+ CSSStringValue* contentValue = toCSSStringValue(item.get());
+ state.style()->setContent(contentValue->value().impl(), didSet);
didSet = true;
} else {
+ CSSPrimitiveValue* contentValue = toCSSPrimitiveValue(item.get());
switch (contentValue->getValueID()) {
case CSSValueOpenQuote:
state.style()->setContent(OPEN_QUOTE, didSet);
@@ -780,12 +779,10 @@ void StyleBuilderFunctions::applyValueCSSPropertyContent(StyleResolverState& sta
void StyleBuilderFunctions::applyValueCSSPropertyWebkitLocale(StyleResolverState& state, CSSValue* value)
{
- const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
- if (primitiveValue->getValueID() == CSSValueAuto) {
+ if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() == CSSValueAuto) {
state.style()->setLocale(nullAtom);
} else {
- ASSERT(primitiveValue->isString());
- state.style()->setLocale(AtomicString(primitiveValue->getStringValue()));
+ state.style()->setLocale(AtomicString(toCSSStringValue(value)->value()));
}
state.fontBuilder().setScript(state.style()->locale());
}
« Source/core/css/CSSStringValueBase.h ('K') | « Source/core/css/resolver/StyleBuilderConverter.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698