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; |