Index: Source/core/css/resolver/FontBuilder.cpp |
diff --git a/Source/core/css/resolver/FontBuilder.cpp b/Source/core/css/resolver/FontBuilder.cpp |
index 7e1e8f055fc60b38e305d48dea86fdecdb024603..d9cd018a69fb1bbcd9fab6ed757512558d036c71 100644 |
--- a/Source/core/css/resolver/FontBuilder.cpp |
+++ b/Source/core/css/resolver/FontBuilder.cpp |
@@ -48,8 +48,8 @@ void FontBuilder::setInitial(float effectiveZoom) |
if (!m_document.settings()) |
return; |
- setFamilyDescription(m_fontDescription, FontBuilder::initialFamilyDescription()); |
- setSize(m_fontDescription, FontBuilder::initialSize()); |
+ setFamilyDescription(FontBuilder::initialFamilyDescription()); |
+ setSize(FontBuilder::initialSize()); |
} |
void FontBuilder::didChangeEffectiveZoom() |
@@ -108,7 +108,12 @@ AtomicString FontBuilder::genericFontFamilyName(FontDescription::GenericFamilyTy |
void FontBuilder::setFamilyDescription(const FontDescription::FamilyDescription& familyDescription) |
{ |
- setFamilyDescription(m_fontDescription, familyDescription); |
+ set(PropertySetFlag::Family); |
+ |
+ bool isInitial = familyDescription.genericFamily == FontDescription::StandardFamily && familyDescription.family.familyIsEmpty(); |
+ |
+ m_fontDescription.setGenericFamily(familyDescription.genericFamily); |
+ m_fontDescription.setFamily(isInitial ? standardFontFamily() : familyDescription.family); |
} |
void FontBuilder::setWeight(FontWeight fontWeight) |
@@ -120,7 +125,20 @@ void FontBuilder::setWeight(FontWeight fontWeight) |
void FontBuilder::setSize(const FontDescription::Size& size) |
{ |
- setSize(m_fontDescription, size); |
+ float specifiedSize = size.value; |
+ |
+ if (specifiedSize < 0) |
+ return; |
+ |
+ set(PropertySetFlag::Size); |
+ |
+ // Overly large font sizes will cause crashes on some platforms (such as Windows). |
+ // Cap font size here to make sure that doesn't happen. |
+ specifiedSize = std::min(maximumAllowedFontSize, specifiedSize); |
+ |
+ m_fontDescription.setKeywordSize(size.keyword); |
+ m_fontDescription.setSpecifiedSize(specifiedSize); |
+ m_fontDescription.setIsAbsoluteSize(size.isAbsolute); |
} |
void FontBuilder::setStretch(FontStretch fontStretch) |
@@ -187,34 +205,6 @@ void FontBuilder::setFeatureSettings(PassRefPtr<FontFeatureSettings> settings) |
m_fontDescription.setFeatureSettings(settings); |
} |
-void FontBuilder::setFamilyDescription(FontDescription& fontDescription, const FontDescription::FamilyDescription& familyDescription) |
-{ |
- set(PropertySetFlag::Family); |
- |
- bool isInitial = familyDescription.genericFamily == FontDescription::StandardFamily && familyDescription.family.familyIsEmpty(); |
- |
- fontDescription.setGenericFamily(familyDescription.genericFamily); |
- fontDescription.setFamily(isInitial ? standardFontFamily() : familyDescription.family); |
-} |
- |
-void FontBuilder::setSize(FontDescription& fontDescription, const FontDescription::Size& size) |
-{ |
- float specifiedSize = size.value; |
- |
- if (specifiedSize < 0) |
- return; |
- |
- set(PropertySetFlag::Size); |
- |
- // Overly large font sizes will cause crashes on some platforms (such as Windows). |
- // Cap font size here to make sure that doesn't happen. |
- specifiedSize = std::min(maximumAllowedFontSize, specifiedSize); |
- |
- fontDescription.setKeywordSize(size.keyword); |
- fontDescription.setSpecifiedSize(specifiedSize); |
- fontDescription.setIsAbsoluteSize(size.isAbsolute); |
-} |
- |
float FontBuilder::getComputedSizeFromSpecifiedSize(FontDescription& fontDescription, float effectiveZoom, float specifiedSize) |
{ |
float zoomFactor = effectiveZoom; |
@@ -377,24 +367,4 @@ void FontBuilder::createFont(PassRefPtrWillBeRawPtr<FontSelector> fontSelector, |
m_flags = 0; |
} |
-void FontBuilder::createFontForDocument(PassRefPtrWillBeRawPtr<FontSelector> fontSelector, RenderStyle* documentStyle) |
-{ |
- FontDescription fontDescription = FontDescription(); |
- fontDescription.setLocale(documentStyle->locale()); |
- fontDescription.setScript(localeToScriptCodeForFontSelection(documentStyle->locale())); |
- |
- setFamilyDescription(fontDescription, FontBuilder::initialFamilyDescription()); |
- setSize(fontDescription, FontDescription::Size(FontSize::initialKeywordSize(), 0.0f, false)); |
- updateSpecifiedSize(fontDescription, documentStyle); |
- updateComputedSize(fontDescription, documentStyle); |
- |
- FontOrientation fontOrientation; |
- NonCJKGlyphOrientation glyphOrientation; |
- getFontAndGlyphOrientation(documentStyle, fontOrientation, glyphOrientation); |
- fontDescription.setOrientation(fontOrientation); |
- fontDescription.setNonCJKGlyphOrientation(glyphOrientation); |
- documentStyle->setFontDescription(fontDescription); |
- documentStyle->font().update(fontSelector); |
-} |
- |
} |