| Index: Source/core/css/resolver/StyleBuilderConverter.cpp
|
| diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| index dadc1ec303a7ca5137b07683f4f382574e585638..73dfc1dbf1b4bc24e80fd509b7d7da10ea533e30 100644
|
| --- a/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| +++ b/Source/core/css/resolver/StyleBuilderConverter.cpp
|
| @@ -189,29 +189,14 @@ PassRefPtr<FontFeatureSettings> StyleBuilderConverter::convertFontFeatureSetting
|
| return settings;
|
| }
|
|
|
| -class RedirectSetHasViewportUnits {
|
| -public:
|
| - RedirectSetHasViewportUnits(RenderStyle* from, RenderStyle* to)
|
| - : m_from(from), m_to(to), m_hadViewportUnits(from->hasViewportUnits())
|
| - {
|
| - from->setHasViewportUnits(false);
|
| - }
|
| - ~RedirectSetHasViewportUnits()
|
| - {
|
| - m_to->setHasViewportUnits(m_from->hasViewportUnits());
|
| - m_from->setHasViewportUnits(m_hadViewportUnits);
|
| - }
|
| -private:
|
| - RenderStyle* m_from;
|
| - RenderStyle* m_to;
|
| - bool m_hadViewportUnits;
|
| -};
|
| -
|
| static float computeFontSize(StyleResolverState& state, CSSPrimitiveValue* primitiveValue, const FontDescription::Size& parentSize)
|
| {
|
| - RedirectSetHasViewportUnits redirect(state.parentStyle(), state.style());
|
| + float em = state.parentStyle()->specifiedFontSize();
|
| + float rem = state.rootElementStyle() ? state.rootElementStyle()->specifiedFontSize() : 1.0f;
|
| + CSSToLengthConversionData::FontSizes fontSizes(em, rem, &state.parentStyle()->font());
|
| + CSSToLengthConversionData::ViewportSize viewportSize(state.document().renderView());
|
|
|
| - CSSToLengthConversionData conversionData(state.parentStyle(), state.rootElementStyle(), state.document().renderView(), 1.0f, true);
|
| + CSSToLengthConversionData conversionData(state.style(), fontSizes, viewportSize, 1.0f);
|
| if (primitiveValue->isLength())
|
| return primitiveValue->computeLength<float>(conversionData);
|
| if (primitiveValue->isCalculatedPercentageWithLength())
|
|
|