Index: Source/core/css/CSSComputedStyleDeclaration.cpp |
diff --git a/Source/core/css/CSSComputedStyleDeclaration.cpp b/Source/core/css/CSSComputedStyleDeclaration.cpp |
index 28463bec6a3180ba3ac191da7cb5d6b745b52abc..8a7e5c5f6c95d18fd7ae69914d64b0ab4194ae67 100644 |
--- a/Source/core/css/CSSComputedStyleDeclaration.cpp |
+++ b/Source/core/css/CSSComputedStyleDeclaration.cpp |
@@ -205,6 +205,7 @@ static const CSSPropertyID staticComputableProperties[] = { |
CSSPropertyWhiteSpace, |
CSSPropertyWidows, |
CSSPropertyWidth, |
+ CSSPropertyWillChange, |
CSSPropertyWordBreak, |
CSSPropertyWordSpacing, |
CSSPropertyWordWrap, |
@@ -1083,6 +1084,20 @@ static PassRefPtr<CSSValue> valueForAnimationDirection(CSSAnimationData::Animati |
} |
} |
+static PassRefPtr<CSSValue> valueForWillChange(const Vector<CSSPropertyID>& willChangeProperties, bool willChangeContents, bool willChangeScrollPosition) |
+{ |
+ RefPtrWillBeRawPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); |
+ if (willChangeContents) |
+ list->append(cssValuePool().createIdentifierValue(CSSValueContents)); |
+ if (willChangeScrollPosition) |
+ list->append(cssValuePool().createIdentifierValue(CSSValueScrollPosition)); |
+ for (size_t i = 0; i < willChangeProperties.size(); ++i) |
+ list->append(cssValuePool().createIdentifierValue(willChangeProperties[i])); |
+ if (!list->length()) |
+ list->append(cssValuePool().createIdentifierValue(CSSValueAuto)); |
+ return list.release(); |
+} |
+ |
static PassRefPtr<CSSValue> createLineBoxContainValue(unsigned lineBoxContain) |
{ |
if (!lineBoxContain) |
@@ -2253,6 +2268,8 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(CSSPropert |
return zoomAdjustedPixelValue(sizingBox(renderer).width(), *style); |
} |
return zoomAdjustedPixelValueForLength(style->width(), *style); |
+ case CSSPropertyWillChange: |
+ return valueForWillChange(style->willChangeProperties(), style->willChangeContents(), style->willChangeScrollPosition()); |
case CSSPropertyWordBreak: |
return cssValuePool().createValue(style->wordBreak()); |
case CSSPropertyWordSpacing: |