Bug 1435984 - patch 4 - Expose variationSettings on the FontFace webidl interface. r=bz,jwatt

--HG--
extra : source : 987305fa2a5faba6da86f8f0d494a6ce3dc77b33
This commit is contained in:
Jonathan Kew 2018-02-14 22:02:05 +11:00
Родитель 5bb5607380
Коммит 8cc473a34a
3 изменённых файлов: 24 добавлений и 0 удалений

Просмотреть файл

@ -19,6 +19,7 @@ dictionary FontFaceDescriptors {
DOMString unicodeRange = "U+0-10FFFF";
DOMString variant = "normal";
DOMString featureSettings = "normal";
DOMString variationSettings = "normal";
DOMString display = "auto";
};
@ -38,6 +39,7 @@ interface FontFace {
[SetterThrows] attribute DOMString unicodeRange;
[SetterThrows] attribute DOMString variant;
[SetterThrows] attribute DOMString featureSettings;
[SetterThrows, Pref="layout.css.font-variations.enabled"] attribute DOMString variationSettings;
[SetterThrows, Pref="layout.css.font-display.enabled"] attribute DOMString display;
readonly attribute FontFaceLoadStatus status;

Просмотреть файл

@ -20,6 +20,7 @@
#include "nsCSSParser.h"
#include "nsIDocument.h"
#include "nsStyleUtil.h"
#include "StylePrefs.h"
namespace mozilla {
namespace dom {
@ -344,6 +345,21 @@ FontFace::SetFeatureSettings(const nsAString& aValue, ErrorResult& aRv)
SetDescriptor(eCSSFontDesc_FontFeatureSettings, aValue, aRv);
}
void
FontFace::GetVariationSettings(nsString& aResult)
{
mFontFaceSet->FlushUserFontSet();
GetDesc(eCSSFontDesc_FontVariationSettings, eCSSProperty_font_variation_settings,
aResult);
}
void
FontFace::SetVariationSettings(const nsAString& aValue, ErrorResult& aRv)
{
mFontFaceSet->FlushUserFontSet();
SetDescriptor(eCSSFontDesc_FontVariationSettings, aValue, aRv);
}
void
FontFace::GetDisplay(nsString& aResult)
{
@ -600,6 +616,10 @@ FontFace::SetDescriptors(const nsAString& aFamily,
!ParseDescriptor(eCSSFontDesc_FontFeatureSettings,
aDescriptors.mFeatureSettings,
mDescriptors->mFontFeatureSettings) ||
(StylePrefs::sFontVariationsEnabled &&
!ParseDescriptor(eCSSFontDesc_FontVariationSettings,
aDescriptors.mVariationSettings,
mDescriptors->mFontVariationSettings)) ||
!ParseDescriptor(eCSSFontDesc_Display,
aDescriptors.mDisplay,
mDescriptors->mDisplay)) {

Просмотреть файл

@ -162,6 +162,8 @@ public:
void SetVariant(const nsAString& aValue, mozilla::ErrorResult& aRv);
void GetFeatureSettings(nsString& aResult);
void SetFeatureSettings(const nsAString& aValue, mozilla::ErrorResult& aRv);
void GetVariationSettings(nsString& aResult);
void SetVariationSettings(const nsAString& aValue, mozilla::ErrorResult& aRv);
void GetDisplay(nsString& aResult);
void SetDisplay(const nsAString& aValue, mozilla::ErrorResult& aRv);