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

Unified Diff: third_party/WebKit/Source/core/css/resolver/ViewportStyleResolver.cpp

Issue 2346193002: Split CSSPrimitiveValue into CSSPrimitiveValue and CSSIdentifierValue (Closed)
Patch Set: Rebase please work Created 4 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: third_party/WebKit/Source/core/css/resolver/ViewportStyleResolver.cpp
diff --git a/third_party/WebKit/Source/core/css/resolver/ViewportStyleResolver.cpp b/third_party/WebKit/Source/core/css/resolver/ViewportStyleResolver.cpp
index 3f248994d466458ee3368f57787a1095980c3979..f2332066da700ffbbd429645898f99dfdc4d7154 100644
--- a/third_party/WebKit/Source/core/css/resolver/ViewportStyleResolver.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/ViewportStyleResolver.cpp
@@ -147,9 +147,28 @@ float ViewportStyleResolver::viewportArgumentValue(CSSPropertyID id) const
defaultValue = 1;
const CSSValue* value = m_propertySet->getPropertyCSSValue(id);
- if (!value || !value->isPrimitiveValue())
+ if (!value || !(value->isPrimitiveValue() || value->isIdentifierValue()))
return defaultValue;
+ if (value->isIdentifierValue()) {
+ switch (toCSSIdentifierValue(value)->getValueID()) {
+ case CSSValueAuto:
+ return defaultValue;
+ case CSSValueLandscape:
+ return ViewportDescription::ValueLandscape;
+ case CSSValuePortrait:
+ return ViewportDescription::ValuePortrait;
+ case CSSValueZoom:
+ return defaultValue;
+ case CSSValueInternalExtendToZoom:
+ return ViewportDescription::ValueExtendToZoom;
+ case CSSValueFixed:
+ return 0;
+ default:
+ return defaultValue;
+ }
+ }
+
const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
if (primitiveValue->isNumber() || primitiveValue->isPx())
@@ -166,27 +185,13 @@ float ViewportStyleResolver::viewportArgumentValue(CSSPropertyID id) const
case CSSPropertyZoom:
return percentValue;
default:
- ASSERT_NOT_REACHED();
+ NOTREACHED();
break;
}
}
- switch (primitiveValue->getValueID()) {
- case CSSValueAuto:
- return defaultValue;
- case CSSValueLandscape:
- return ViewportDescription::ValueLandscape;
- case CSSValuePortrait:
- return ViewportDescription::ValuePortrait;
- case CSSValueZoom:
- return defaultValue;
- case CSSValueInternalExtendToZoom:
- return ViewportDescription::ValueExtendToZoom;
- case CSSValueFixed:
- return 0;
- default:
- return defaultValue;
- }
+ NOTREACHED();
+ return defaultValue;
}
Length ViewportStyleResolver::viewportLengthValue(CSSPropertyID id) const
@@ -197,14 +202,18 @@ Length ViewportStyleResolver::viewportLengthValue(CSSPropertyID id) const
|| id == CSSPropertyMinWidth);
const CSSValue* value = m_propertySet->getPropertyCSSValue(id);
- if (!value || !value->isPrimitiveValue())
+ if (!value || !(value->isPrimitiveValue() || value->isIdentifierValue()))
return Length(); // auto
- const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
-
- if (primitiveValue->getValueID() == CSSValueInternalExtendToZoom)
- return Length(ExtendToZoom);
+ if (value->isIdentifierValue()) {
+ CSSValueID valueID = toCSSIdentifierValue(value)->getValueID();
+ if (valueID == CSSValueInternalExtendToZoom)
+ return Length(ExtendToZoom);
+ if (valueID == CSSValueAuto)
+ return Length(Auto);
+ }
+ const CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
ComputedStyle* documentStyle = m_document->mutableComputedStyle();
// If we have viewport units the conversion will mark the document style as having viewport units.
@@ -214,9 +223,6 @@ Length ViewportStyleResolver::viewportLengthValue(CSSPropertyID id) const
CSSToLengthConversionData::FontSizes fontSizes(documentStyle, documentStyle);
CSSToLengthConversionData::ViewportSize viewportSize(m_document->layoutViewItem());
- if (primitiveValue->getValueID() == CSSValueAuto)
- return Length(Auto);
-
Length result = primitiveValue->convertToLength(CSSToLengthConversionData(documentStyle, fontSizes, viewportSize, 1.0f));
if (documentStyle->hasViewportUnits())
m_document->setHasViewportUnits();
« no previous file with comments | « third_party/WebKit/Source/core/css/resolver/TransformBuilder.cpp ('k') | third_party/WebKit/Source/core/dom/Element.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698