Index: third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.h |
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.h b/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.h |
index b652d4e4fdbfe71acaa925e3795f92bdca8e0c85..9734d122388d396f7f4124623a683d9017b98a3a 100644 |
--- a/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.h |
+++ b/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.h |
@@ -27,6 +27,7 @@ |
#ifndef StyleBuilderConverter_h |
#define StyleBuilderConverter_h |
+#include "core/css/CSSIdentifierValue.h" |
#include "core/css/CSSStringValue.h" |
#include "core/css/CSSValue.h" |
#include "core/css/CSSValueList.h" |
@@ -136,37 +137,37 @@ template <typename T> |
T StyleBuilderConverter::convertFlags(StyleResolverState& state, const CSSValue& value) |
{ |
T flags = static_cast<T>(0); |
- if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == CSSValueNone) |
+ if (value.isIdentifierValue() && toCSSIdentifierValue(value).getValueID() == CSSValueNone) |
return flags; |
for (auto& flagValue : toCSSValueList(value)) |
- flags |= toCSSPrimitiveValue(*flagValue).convertTo<T>(); |
+ flags |= toCSSIdentifierValue(*flagValue).convertTo<T>(); |
return flags; |
} |
template <typename T> |
T StyleBuilderConverter::convertLineWidth(StyleResolverState& state, const CSSValue& value) |
{ |
- const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
- CSSValueID valueID = primitiveValue.getValueID(); |
- if (valueID == CSSValueThin) |
- return 1; |
- if (valueID == CSSValueMedium) |
- return 3; |
- if (valueID == CSSValueThick) |
- return 5; |
- if (valueID == CSSValueInvalid) { |
- // FIXME: We are moving to use the full page zoom implementation to handle high-dpi. |
- // In that case specyfing a border-width of less than 1px would result in a border that is one device pixel thick. |
- // With this change that would instead be rounded up to 2 device pixels. |
- // Consider clamping it to device pixels or zoom adjusted CSS pixels instead of raw CSS pixels. |
- // Reference crbug.com/485650 and crbug.com/382483 |
- double result = primitiveValue.computeLength<double>(state.cssToLengthConversionData()); |
- if (result > 0.0 && result < 1.0) |
- return 1.0; |
- return clampTo<T>(roundForImpreciseConversion<T>(result), defaultMinimumForClamp<T>(), defaultMaximumForClamp<T>()); |
+ if (value.isIdentifierValue()) { |
+ CSSValueID valueID = toCSSIdentifierValue(value).getValueID(); |
+ if (valueID == CSSValueThin) |
+ return 1; |
+ if (valueID == CSSValueMedium) |
+ return 3; |
+ if (valueID == CSSValueThick) |
+ return 5; |
+ NOTREACHED(); |
+ return 0; |
} |
- ASSERT_NOT_REACHED(); |
- return 0; |
+ const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); |
+ // FIXME: We are moving to use the full page zoom implementation to handle high-dpi. |
+ // In that case specyfing a border-width of less than 1px would result in a border that is one device pixel thick. |
+ // With this change that would instead be rounded up to 2 device pixels. |
+ // Consider clamping it to device pixels or zoom adjusted CSS pixels instead of raw CSS pixels. |
+ // Reference crbug.com/485650 and crbug.com/382483 |
+ double result = primitiveValue.computeLength<double>(state.cssToLengthConversionData()); |
+ if (result > 0.0 && result < 1.0) |
+ return 1.0; |
+ return clampTo<T>(roundForImpreciseConversion<T>(result), defaultMinimumForClamp<T>(), defaultMaximumForClamp<T>()); |
} |
template <CSSValueID IdForNone> |
@@ -174,7 +175,7 @@ AtomicString StyleBuilderConverter::convertString(StyleResolverState&, const CSS |
{ |
if (value.isStringValue()) |
return AtomicString(toCSSStringValue(value).value()); |
- ASSERT(toCSSPrimitiveValue(value).getValueID() == IdForNone); |
+ DCHECK_EQ(toCSSIdentifierValue(value).getValueID(), IdForNone); |
return nullAtom; |
} |