| Index: Source/core/css/CSSPrimitiveValue.cpp
|
| diff --git a/Source/core/css/CSSPrimitiveValue.cpp b/Source/core/css/CSSPrimitiveValue.cpp
|
| index 62439ceb280f407e57f881e1ae3a198e2e408767..fcc60f0ae59b2ffbcdd252b2355a64b03f235d77 100644
|
| --- a/Source/core/css/CSSPrimitiveValue.cpp
|
| +++ b/Source/core/css/CSSPrimitiveValue.cpp
|
| @@ -598,33 +598,31 @@ double CSSPrimitiveValue::computeLengthDouble(const CSSToLengthConversionData& c
|
| if (m_primitiveUnitType == CSS_CALC)
|
| return m_value.calc->computeLengthPx(conversionData);
|
|
|
| - const RenderStyle& style = conversionData.style();
|
| - const RenderStyle* rootStyle = conversionData.rootStyle();
|
| bool computingFontSize = conversionData.computingFontSize();
|
|
|
| double factor;
|
|
|
| switch (primitiveType()) {
|
| case CSS_EMS:
|
| - factor = computingFontSize ? style.fontDescription().specifiedSize() : style.fontDescription().computedSize();
|
| + factor = computingFontSize ? conversionData.fontSpecifiedSize() : conversionData.fontComputedSize();
|
| break;
|
| case CSS_EXS:
|
| // FIXME: We have a bug right now where the zoom will be applied twice to EX units.
|
| // We really need to compute EX using fontMetrics for the original specifiedSize and not use
|
| // our actual constructed rendering font.
|
| - if (style.fontMetrics().hasXHeight())
|
| - factor = style.fontMetrics().xHeight();
|
| + if (conversionData.hasXHeight())
|
| + factor = conversionData.xHeight();
|
| else
|
| - factor = (computingFontSize ? style.fontDescription().specifiedSize() : style.fontDescription().computedSize()) / 2.0;
|
| + factor = (computingFontSize ? conversionData.fontSpecifiedSize() : conversionData.fontComputedSize()) / 2.0;
|
| break;
|
| case CSS_REMS:
|
| - if (rootStyle)
|
| - factor = computingFontSize ? rootStyle->fontDescription().specifiedSize() : rootStyle->fontDescription().computedSize();
|
| + if (conversionData.hasRoot())
|
| + factor = computingFontSize ? conversionData.rootFontSpecifiedSize() : conversionData.rootFontComputedSize();
|
| else
|
| factor = 1.0;
|
| break;
|
| case CSS_CHS:
|
| - factor = style.fontMetrics().zeroWidth();
|
| + factor = conversionData.zeroWidth();
|
| break;
|
| case CSS_PX:
|
| factor = 1.0;
|
|
|