| Index: Source/platform/fonts/FontDescription.cpp | 
| diff --git a/Source/platform/fonts/FontDescription.cpp b/Source/platform/fonts/FontDescription.cpp | 
| index d5fad42b525a26d057f6288d25ea6649b66da1a9..829d815d24a66b92979278a8484d180831b93b64 100644 | 
| --- a/Source/platform/fonts/FontDescription.cpp | 
| +++ b/Source/platform/fonts/FontDescription.cpp | 
| @@ -101,6 +101,18 @@ FontTraits FontDescription::traits() const | 
| return FontTraits(style(), variant(), weight(), stretch()); | 
| } | 
|  | 
| +FontDescription::VariantLigatures FontDescription::variantLigatures() const | 
| +{ | 
| +    VariantLigatures ligatures; | 
| + | 
| +    ligatures.common = commonLigaturesState(); | 
| +    ligatures.discretionary = discretionaryLigaturesState(); | 
| +    ligatures.historical = historicalLigaturesState(); | 
| +    ligatures.contextual = contextualLigaturesState(); | 
| + | 
| +    return ligatures; | 
| +} | 
| + | 
| void FontDescription::setTraits(FontTraits traits) | 
| { | 
| setStyle(traits.style()); | 
| @@ -109,6 +121,16 @@ void FontDescription::setTraits(FontTraits traits) | 
| setStretch(traits.stretch()); | 
| } | 
|  | 
| +void FontDescription::setVariantLigatures(const VariantLigatures& ligatures) | 
| +{ | 
| +    m_commonLigaturesState = ligatures.common; | 
| +    m_discretionaryLigaturesState = ligatures.discretionary; | 
| +    m_historicalLigaturesState = ligatures.historical; | 
| +    m_contextualLigaturesState = ligatures.contextual; | 
| + | 
| +    updateTypesettingFeatures(); | 
| +} | 
| + | 
| FontDescription FontDescription::makeNormalFeatureSettings() const | 
| { | 
| FontDescription normalDescription(*this); | 
|  |