Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: third_party/WebKit/Source/core/css/FontFace.cpp

Issue 1369513002: FontFace WIP Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: V2 Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/css/FontFace.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/css/FontFace.cpp
diff --git a/third_party/WebKit/Source/core/css/FontFace.cpp b/third_party/WebKit/Source/core/css/FontFace.cpp
index 91dee225068c2ce5022334c885f717dfd47367c6..8441cf6e6aecea13b6be8973652e6cc3d257a850 100644
--- a/third_party/WebKit/Source/core/css/FontFace.cpp
+++ b/third_party/WebKit/Source/core/css/FontFace.cpp
@@ -111,16 +111,13 @@ PassRefPtrWillBeRawPtr<FontFace> FontFace::create(Document* document, const Styl
const StylePropertySet& properties = fontFaceRule->properties();
// Obtain the font-family property and the src property. Both must be defined.
- RefPtrWillBeRawPtr<CSSValue> family = properties.getPropertyCSSValue(CSSPropertyFontFamily);
- if (!family || !family->isPrimitiveValue())
- return nullptr;
RefPtrWillBeRawPtr<CSSValue> src = properties.getPropertyCSSValue(CSSPropertySrc);
if (!src || !src->isValueList())
return nullptr;
RefPtrWillBeRawPtr<FontFace> fontFace = adoptRefWillBeNoop(new FontFace(document));
- if (fontFace->setFamilyValue(toCSSPrimitiveValue(family.get()))
+ if (fontFace->setPropertyFromStyle(properties, CSSPropertyFontFamily)
&& fontFace->setPropertyFromStyle(properties, CSSPropertyFontStyle)
&& fontFace->setPropertyFromStyle(properties, CSSPropertyFontWeight)
&& fontFace->setPropertyFromStyle(properties, CSSPropertyFontStretch)
@@ -144,10 +141,10 @@ FontFace::FontFace(ExecutionContext* context)
FontFace::FontFace(ExecutionContext* context, const AtomicString& family, const FontFaceDescriptors& descriptors)
: ActiveDOMObject(context)
- , m_family(family)
, m_status(Unloaded)
{
Document* document = toDocument(context);
+ setPropertyFromString(document, family, CSSPropertyFontFamily);
setPropertyFromString(document, descriptors.style(), CSSPropertyFontStyle);
setPropertyFromString(document, descriptors.weight(), CSSPropertyFontWeight);
setPropertyFromString(document, descriptors.stretch(), CSSPropertyFontStretch);
@@ -192,6 +189,11 @@ String FontFace::featureSettings() const
return m_featureSettings ? m_featureSettings->cssText() : "normal";
}
+void FontFace::setFamily(ExecutionContext* context, const String& s, ExceptionState& exceptionState)
+{
+ setPropertyFromString(toDocument(context), s, CSSPropertyFontFamily, &exceptionState);
+}
+
void FontFace::setStyle(ExecutionContext* context, const String& s, ExceptionState& exceptionState)
{
setPropertyFromString(toDocument(context), s, CSSPropertyFontStyle, &exceptionState);
@@ -243,6 +245,11 @@ bool FontFace::setPropertyFromStyle(const StylePropertySet& properties, CSSPrope
bool FontFace::setPropertyValue(PassRefPtrWillBeRawPtr<CSSValue> value, CSSPropertyID propertyID)
{
switch (propertyID) {
+ case CSSPropertyFontFamily:
+ if (!value || !value->isPrimitiveValue())
+ return false;
+ m_family = AtomicString(toCSSPrimitiveValue(value.get())->getStringValue());
+ break;
case CSSPropertyFontStyle:
m_style = value;
break;
@@ -270,41 +277,6 @@ bool FontFace::setPropertyValue(PassRefPtrWillBeRawPtr<CSSValue> value, CSSPrope
return true;
}
-bool FontFace::setFamilyValue(CSSPrimitiveValue* familyValue)
-{
- AtomicString family;
- if (familyValue->isCustomIdent()) {
- family = AtomicString(familyValue->getStringValue());
- } else if (familyValue->isValueID()) {
- // We need to use the raw text for all the generic family types, since @font-face is a way of actually
- // defining what font to use for those types.
- switch (familyValue->getValueID()) {
- case CSSValueSerif:
- family = FontFamilyNames::webkit_serif;
- break;
- case CSSValueSansSerif:
- family = FontFamilyNames::webkit_sans_serif;
- break;
- case CSSValueCursive:
- family = FontFamilyNames::webkit_cursive;
- break;
- case CSSValueFantasy:
- family = FontFamilyNames::webkit_fantasy;
- break;
- case CSSValueMonospace:
- family = FontFamilyNames::webkit_monospace;
- break;
- case CSSValueWebkitPictograph:
- family = FontFamilyNames::webkit_pictograph;
- break;
- default:
- return false;
- }
- }
- m_family = family;
- return true;
-}
-
String FontFace::status() const
{
switch (m_status) {
« no previous file with comments | « third_party/WebKit/Source/core/css/FontFace.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698