Index: third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp |
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp b/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp |
index ffbdf4189a0a9d57bc6ca37530e831ee2b708482..620d6d567f88cf8a40d5db4a36e2feee9726ab99 100644 |
--- a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp |
+++ b/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp |
@@ -374,6 +374,40 @@ void StyleBuilderFunctions::applyValueCSSPropertySize(StyleResolverState& state, |
state.style()->setPageSize(size); |
} |
+void StyleBuilderFunctions::applyInitialCSSPropertySnapHeight(StyleResolverState& state) |
+{ |
+ state.style()->setSnapHeightUnit(0); |
+ state.style()->setSnapHeightPosition(0); |
+} |
+ |
+void StyleBuilderFunctions::applyInheritCSSPropertySnapHeight(StyleResolverState& state) |
+{ |
+ state.style()->setSnapHeightUnit(state.parentStyle()->snapHeightUnit()); |
+ state.style()->setSnapHeightPosition(state.parentStyle()->snapHeightPosition()); |
+} |
+ |
+void StyleBuilderFunctions::applyValueCSSPropertySnapHeight(StyleResolverState& state, CSSValue* value) |
+{ |
+ CSSValueList* list = toCSSValueList(value); |
+ CSSPrimitiveValue* first = toCSSPrimitiveValue(list->item(0)); |
+ ASSERT(first->isLength()); |
+ int unit = first->computeLength<int>(state.cssToLengthConversionData()); |
+ ASSERT(unit >= 0); |
+ state.style()->setSnapHeightUnit(clampTo<uint8_t>(unit)); |
+ |
+ if (list->length() == 1) { |
+ state.style()->setSnapHeightPosition(0); |
+ return; |
+ } |
+ |
+ ASSERT(list->length() == 2); |
+ CSSPrimitiveValue* second = toCSSPrimitiveValue(list->item(1)); |
+ ASSERT(second->isNumber()); |
+ int position = second->getIntValue(); |
+ ASSERT(position > 0 && position <= 100); |
+ state.style()->setSnapHeightPosition(position); |
+} |
+ |
void StyleBuilderFunctions::applyValueCSSPropertyTextAlign(StyleResolverState& state, CSSValue* value) |
{ |
CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |