mirror of
https://github.com/roytam1/basilisk55.git
synced 2026-05-26 15:02:46 +00:00
import from UXP: Issue #2646 - Parse "variations" keywords. (8d536c0c)
This commit is contained in:
@@ -191,14 +191,23 @@ public:
|
||||
FLAG_FORMAT_WOFF = 1 << 6,
|
||||
FLAG_FORMAT_WOFF2 = 1 << 7,
|
||||
|
||||
FLAG_FORMAT_OPENTYPE_VARIATIONS = 1 << 8,
|
||||
FLAG_FORMAT_TRUETYPE_VARIATIONS = 1 << 9,
|
||||
FLAG_FORMAT_WOFF_VARIATIONS = 1 << 10,
|
||||
FLAG_FORMAT_WOFF2_VARIATIONS = 1 << 11,
|
||||
|
||||
// the common formats that we support everywhere
|
||||
FLAG_FORMATS_COMMON = FLAG_FORMAT_OPENTYPE |
|
||||
FLAG_FORMAT_TRUETYPE |
|
||||
FLAG_FORMAT_WOFF |
|
||||
FLAG_FORMAT_WOFF2,
|
||||
FLAG_FORMAT_WOFF2 |
|
||||
FLAG_FORMAT_OPENTYPE_VARIATIONS |
|
||||
FLAG_FORMAT_TRUETYPE_VARIATIONS |
|
||||
FLAG_FORMAT_WOFF_VARIATIONS |
|
||||
FLAG_FORMAT_WOFF2_VARIATIONS,
|
||||
|
||||
// mask of all unused bits, update when adding new formats
|
||||
FLAG_FORMAT_NOT_USED = ~((1 << 8)-1)
|
||||
FLAG_FORMAT_NOT_USED = ~((1 << 12)-1)
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -178,6 +178,18 @@ nsFontFace::GetFormat(nsAString & aFormat)
|
||||
if (formatFlags & gfxUserFontSet::FLAG_FORMAT_WOFF2) {
|
||||
AppendToFormat(aFormat, "woff2");
|
||||
}
|
||||
if (formatFlags & gfxUserFontSet::FLAG_FORMAT_OPENTYPE_VARIATIONS) {
|
||||
AppendToFormat(aFormat, "opentype-variations");
|
||||
}
|
||||
if (formatFlags & gfxUserFontSet::FLAG_FORMAT_TRUETYPE_VARIATIONS) {
|
||||
AppendToFormat(aFormat, "truetype-variations");
|
||||
}
|
||||
if (formatFlags & gfxUserFontSet::FLAG_FORMAT_WOFF_VARIATIONS) {
|
||||
AppendToFormat(aFormat, "woff-variations");
|
||||
}
|
||||
if (formatFlags & gfxUserFontSet::FLAG_FORMAT_WOFF2_VARIATIONS) {
|
||||
AppendToFormat(aFormat, "woff2-variations");
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -1130,6 +1130,15 @@ FontFaceSet::FindOrCreateUserFontEntryFromFontFace(const nsAString& aFamilyName,
|
||||
face->mFormatFlags |= gfxUserFontSet::FLAG_FORMAT_EOT;
|
||||
} else if (valueString.LowerCaseEqualsASCII("svg")) {
|
||||
face->mFormatFlags |= gfxUserFontSet::FLAG_FORMAT_SVG;
|
||||
} else if (valueString.LowerCaseEqualsASCII("woff-variations")) {
|
||||
face->mFormatFlags |= gfxUserFontSet::FLAG_FORMAT_WOFF_VARIATIONS;
|
||||
} else if (Preferences::GetBool(GFX_PREF_WOFF2_ENABLED) &&
|
||||
valueString.LowerCaseEqualsASCII("woff2-variations")) {
|
||||
face->mFormatFlags |= gfxUserFontSet::FLAG_FORMAT_WOFF2_VARIATIONS;
|
||||
} else if (valueString.LowerCaseEqualsASCII("opentype-variations")) {
|
||||
face->mFormatFlags |= gfxUserFontSet::FLAG_FORMAT_OPENTYPE_VARIATIONS;
|
||||
} else if (valueString.LowerCaseEqualsASCII("truetype-variations")) {
|
||||
face->mFormatFlags |= gfxUserFontSet::FLAG_FORMAT_TRUETYPE_VARIATIONS;
|
||||
} else {
|
||||
// unknown format specified, mark to distinguish from the
|
||||
// case where no format hints are specified
|
||||
|
||||
Reference in New Issue
Block a user