summaryrefslogtreecommitdiff
path: root/Source/WebCore/css/DeprecatedStyleBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/css/DeprecatedStyleBuilder.cpp')
-rw-r--r--Source/WebCore/css/DeprecatedStyleBuilder.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/Source/WebCore/css/DeprecatedStyleBuilder.cpp b/Source/WebCore/css/DeprecatedStyleBuilder.cpp
index 7c6105285..1d52de322 100644
--- a/Source/WebCore/css/DeprecatedStyleBuilder.cpp
+++ b/Source/WebCore/css/DeprecatedStyleBuilder.cpp
@@ -613,10 +613,18 @@ public:
if (originalLength >= 1.0)
length = 1.0;
}
- if (primitiveValue->isViewportPercentageHeight())
- length = styleResolver->document()->renderView()->viewportSize().height() * length / 100.0f;
- else if (primitiveValue->isViewportPercentageWidth())
- length = styleResolver->document()->renderView()->viewportSize().width() * length / 100.0f;
+ if (primitiveValue->isViewportPercentageLength()) {
+ int viewPortHeight = styleResolver->document()->renderView()->viewportSize().height() * length / 100.0f;
+ int viewPortWidth = styleResolver->document()->renderView()->viewportSize().width() * length / 100.0f;
+ if (primitiveValue->isViewportPercentageHeight())
+ length = viewPortHeight;
+ else if (primitiveValue->isViewportPercentageWidth())
+ length = viewPortWidth;
+ else if (primitiveValue->isViewportPercentageMax())
+ length = max(viewPortWidth, viewPortHeight);
+ else if (primitiveValue->isViewportPercentageMin())
+ length = min(viewPortWidth, viewPortHeight);
+ }
} else {
ASSERT_NOT_REACHED();
length = 0;