Index: Source/core/css/resolver/StyleBuilderConverter.cpp |
diff --git a/Source/core/css/resolver/StyleBuilderConverter.cpp b/Source/core/css/resolver/StyleBuilderConverter.cpp |
index a0b47c04dda70aa5305cf0804a0ee968bff1ffc8..e25942f7d5636c7f4f4a1aa29009fa95403d43ab 100644 |
--- a/Source/core/css/resolver/StyleBuilderConverter.cpp |
+++ b/Source/core/css/resolver/StyleBuilderConverter.cpp |
@@ -27,6 +27,7 @@ |
#include "config.h" |
#include "core/css/resolver/StyleBuilderConverter.h" |
+#include "core/css/CSSFontFeatureValue.h" |
#include "core/css/CSSFunctionValue.h" |
#include "core/css/CSSGridLineNamesValue.h" |
#include "core/css/CSSPrimitiveValueMappings.h" |
@@ -90,6 +91,21 @@ AtomicString StyleBuilderConverter::convertFragmentIdentifier(StyleResolverState |
return nullAtom; |
} |
+PassRefPtr<FontFeatureSettings> StyleBuilderConverter::convertFontFeatureSettings(StyleResolverState& state, CSSValue* value) |
+{ |
+ if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() == CSSValueNormal) |
+ return FontBuilder::initialFeatureSettings(); |
+ |
+ CSSValueList* list = toCSSValueList(value); |
+ RefPtr<FontFeatureSettings> settings = FontFeatureSettings::create(); |
+ int len = list->length(); |
+ for (int i = 0; i < len; ++i) { |
+ CSSFontFeatureValue* feature = toCSSFontFeatureValue(list->item(i)); |
+ settings->append(FontFeature(feature->tag(), feature->value())); |
+ } |
+ return settings; |
+} |
+ |
FontWeight StyleBuilderConverter::convertFontWeight(StyleResolverState& state, CSSValue* value) |
{ |
CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |