Index: Source/core/css/resolver/StyleResolver.cpp |
diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp |
index 25a940938b40222011ec24b4e557760485c1ba9d..30dccde5365630e8d28aba4a7f294ffb8b3d5bf4 100644 |
--- a/Source/core/css/resolver/StyleResolver.cpp |
+++ b/Source/core/css/resolver/StyleResolver.cpp |
@@ -42,6 +42,7 @@ |
#include "core/animation/css/CSSAnimations.h" |
#include "core/css/CSSCalculationValue.h" |
#include "core/css/CSSDefaultStyleSheets.h" |
+#include "core/css/CSSFontFace.h" |
#include "core/css/CSSFontSelector.h" |
#include "core/css/CSSKeyframeRule.h" |
#include "core/css/CSSKeyframesRule.h" |
@@ -121,6 +122,13 @@ static StylePropertySet* rightToLeftDeclaration() |
return rightToLeftDecl; |
} |
+static void addFontFaceRule(Document* document, CSSFontSelector* cssFontSelector, const StyleRuleFontFace* fontFaceRule) |
+{ |
+ RefPtr<CSSFontFace> cssFontFace = CSSFontFace::createFromStyleRule(document, fontFaceRule); |
+ if (cssFontFace) |
+ cssFontSelector->addFontFaceRule(fontFaceRule, cssFontFace); |
+} |
+ |
StyleResolver::StyleResolver(Document& document) |
: m_document(document) |
, m_fontSelector(CSSFontSelector::create(&document)) |
@@ -163,7 +171,7 @@ StyleResolver::StyleResolver(Document& document) |
const HashSet<SVGFontFaceElement*>& svgFontFaceElements = document.svgExtensions()->svgFontFaceElements(); |
HashSet<SVGFontFaceElement*>::const_iterator end = svgFontFaceElements.end(); |
for (HashSet<SVGFontFaceElement*>::const_iterator it = svgFontFaceElements.begin(); it != end; ++it) |
- fontSelector()->addFontFaceRule((*it)->fontFaceRule()); |
+ addFontFaceRule(&document, fontSelector(), (*it)->fontFaceRule()); |
} |
#endif |
} |
@@ -268,7 +276,7 @@ void StyleResolver::processScopedRules(const RuleSet& authorRules, const KURL& s |
if (!scope || scope->isDocumentNode()) { |
const Vector<StyleRuleFontFace*> fontFaceRules = authorRules.fontFaceRules(); |
for (unsigned i = 0; i < fontFaceRules.size(); ++i) |
- fontSelector()->addFontFaceRule(fontFaceRules[i]); |
+ addFontFaceRule(&m_document, fontSelector(), fontFaceRules[i]); |
if (fontFaceRules.size()) |
invalidateMatchedPropertiesCache(); |
} else { |