| Index: Source/core/css/resolver/FontBuilder.cpp
|
| diff --git a/Source/core/css/resolver/FontBuilder.cpp b/Source/core/css/resolver/FontBuilder.cpp
|
| index 81936b177ede18ee0554337e0646c0816757efec..9e8523001d50e4f74b29668e102e88007b290610 100644
|
| --- a/Source/core/css/resolver/FontBuilder.cpp
|
| +++ b/Source/core/css/resolver/FontBuilder.cpp
|
| @@ -80,6 +80,21 @@ void FontBuilder::initForStyleResolve(const Document& document, RenderStyle* sty
|
| m_fontDirty = false;
|
| }
|
|
|
| +inline static void setFontFamilyToStandard(FontDescription& fontDescription, const Document* document)
|
| +{
|
| + if (!document || !document->settings())
|
| + return;
|
| +
|
| + fontDescription.setGenericFamily(FontDescription::StandardFamily);
|
| + const AtomicString& standardFontFamily = document->settings()->genericFontFamilySettings().standard();
|
| + if (standardFontFamily.isEmpty())
|
| + return;
|
| +
|
| + fontDescription.firstFamily().setFamily(standardFontFamily);
|
| + // FIXME: Why is this needed here?
|
| + fontDescription.firstFamily().appendFamily(nullptr);
|
| +}
|
| +
|
| void FontBuilder::setInitial(float effectiveZoom)
|
| {
|
| ASSERT(m_document && m_document->settings());
|
| @@ -89,13 +104,8 @@ void FontBuilder::setInitial(float effectiveZoom)
|
| FontDescriptionChangeScope scope(this);
|
|
|
| scope.reset();
|
| - scope.fontDescription().setGenericFamily(FontDescription::StandardFamily);
|
| scope.fontDescription().setUsePrinterFont(m_document->printing());
|
| - const AtomicString& standardFontFamily = m_document->settings()->genericFontFamilySettings().standard();
|
| - if (!standardFontFamily.isEmpty()) {
|
| - scope.fontDescription().firstFamily().setFamily(standardFontFamily);
|
| - scope.fontDescription().firstFamily().appendFamily(nullptr);
|
| - }
|
| + setFontFamilyToStandard(scope.fontDescription(), m_document);
|
| scope.fontDescription().setKeywordSize(CSSValueMedium - CSSValueXxSmall + 1);
|
| setSize(scope.fontDescription(), effectiveZoom, FontSize::fontSizeForKeyword(m_document, CSSValueMedium, false));
|
| }
|
| @@ -139,7 +149,7 @@ void FontBuilder::setFontFamilyInitial()
|
| {
|
| FontDescriptionChangeScope scope(this);
|
|
|
| - scope.fontDescription().setGenericFamily(FontBuilder::initialGenericFamily());
|
| + setFontFamilyToStandard(scope.fontDescription(), m_document);
|
| }
|
|
|
| void FontBuilder::setFontFamilyInherit(const FontDescription& parentFontDescription)
|
| @@ -650,21 +660,13 @@ void FontBuilder::createFontForDocument(PassRefPtr<FontSelector> fontSelector, R
|
| {
|
| FontDescription fontDescription = FontDescription();
|
| fontDescription.setScript(localeToScriptCodeForFontSelection(documentStyle->locale()));
|
| - if (Settings* settings = m_document->settings()) {
|
| - fontDescription.setUsePrinterFont(m_document->printing());
|
| - const AtomicString& standardFont = settings->genericFontFamilySettings().standard(fontDescription.script());
|
| - if (!standardFont.isEmpty()) {
|
| - fontDescription.setGenericFamily(FontDescription::StandardFamily);
|
| - fontDescription.firstFamily().setFamily(standardFont);
|
| - fontDescription.firstFamily().appendFamily(nullptr);
|
| - }
|
| - fontDescription.setKeywordSize(CSSValueMedium - CSSValueXxSmall + 1);
|
| - int size = FontSize::fontSizeForKeyword(m_document, CSSValueMedium, false);
|
| - fontDescription.setSpecifiedSize(size);
|
| - fontDescription.setComputedSize(getComputedSizeFromSpecifiedSize(fontDescription, documentStyle->effectiveZoom(), size));
|
| - } else {
|
| - fontDescription.setUsePrinterFont(m_document->printing());
|
| - }
|
| + fontDescription.setUsePrinterFont(m_document->printing());
|
| +
|
| + setFontFamilyToStandard(fontDescription, m_document);
|
| + fontDescription.setKeywordSize(CSSValueMedium - CSSValueXxSmall + 1);
|
| + int size = FontSize::fontSizeForKeyword(m_document, CSSValueMedium, false);
|
| + fontDescription.setSpecifiedSize(size);
|
| + fontDescription.setComputedSize(getComputedSizeFromSpecifiedSize(fontDescription, documentStyle->effectiveZoom(), size));
|
|
|
| FontOrientation fontOrientation;
|
| NonCJKGlyphOrientation glyphOrientation;
|
|
|