summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/css-font-loading.idl
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/interfaces/css-font-loading.idl')
-rw-r--r--testing/web-platform/tests/interfaces/css-font-loading.idl134
1 files changed, 134 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/css-font-loading.idl b/testing/web-platform/tests/interfaces/css-font-loading.idl
new file mode 100644
index 0000000000..6f2e16dd64
--- /dev/null
+++ b/testing/web-platform/tests/interfaces/css-font-loading.idl
@@ -0,0 +1,134 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: CSS Font Loading Module Level 3 (https://drafts.csswg.org/css-font-loading-3/)
+
+typedef (ArrayBuffer or ArrayBufferView) BinaryData;
+
+dictionary FontFaceDescriptors {
+ CSSOMString style = "normal";
+ CSSOMString weight = "normal";
+ CSSOMString stretch = "normal";
+ CSSOMString unicodeRange = "U+0-10FFFF";
+ CSSOMString variant = "normal";
+ CSSOMString featureSettings = "normal";
+ CSSOMString variationSettings = "normal";
+ CSSOMString display = "auto";
+ CSSOMString ascentOverride = "normal";
+ CSSOMString descentOverride = "normal";
+ CSSOMString lineGapOverride = "normal";
+};
+
+enum FontFaceLoadStatus { "unloaded", "loading", "loaded", "error" };
+
+[Exposed=(Window,Worker)]
+interface FontFace {
+ constructor(CSSOMString family, (CSSOMString or BinaryData) source,
+ optional FontFaceDescriptors descriptors = {});
+ attribute CSSOMString family;
+ attribute CSSOMString style;
+ attribute CSSOMString weight;
+ attribute CSSOMString stretch;
+ attribute CSSOMString unicodeRange;
+ attribute CSSOMString variant;
+ attribute CSSOMString featureSettings;
+ attribute CSSOMString variationSettings;
+ attribute CSSOMString display;
+ attribute CSSOMString ascentOverride;
+ attribute CSSOMString descentOverride;
+ attribute CSSOMString lineGapOverride;
+
+ readonly attribute FontFaceLoadStatus status;
+
+ Promise<FontFace> load();
+ readonly attribute Promise<FontFace> loaded;
+};
+
+[Exposed=(Window,Worker)]
+interface FontFaceFeatures {
+ /* The CSSWG is still discussing what goes in here */
+};
+
+[Exposed=(Window,Worker)]
+interface FontFaceVariationAxis {
+ readonly attribute DOMString name;
+ readonly attribute DOMString axisTag;
+ readonly attribute double minimumValue;
+ readonly attribute double maximumValue;
+ readonly attribute double defaultValue;
+};
+
+[Exposed=(Window,Worker)]
+interface FontFaceVariations {
+ readonly setlike<FontFaceVariationAxis>;
+};
+
+[Exposed=(Window,Worker)]
+interface FontFacePalette {
+ iterable<DOMString>;
+ readonly attribute unsigned long length;
+ getter DOMString (unsigned long index);
+ readonly attribute boolean usableWithLightBackground;
+ readonly attribute boolean usableWithDarkBackground;
+};
+
+[Exposed=(Window,Worker)]
+interface FontFacePalettes {
+ iterable<FontFacePalette>;
+ readonly attribute unsigned long length;
+ getter FontFacePalette (unsigned long index);
+};
+
+partial interface FontFace {
+ readonly attribute FontFaceFeatures features;
+ readonly attribute FontFaceVariations variations;
+ readonly attribute FontFacePalettes palettes;
+};
+
+dictionary FontFaceSetLoadEventInit : EventInit {
+ sequence<FontFace> fontfaces = [];
+};
+
+[Exposed=(Window,Worker)]
+interface FontFaceSetLoadEvent : Event {
+ constructor(CSSOMString type, optional FontFaceSetLoadEventInit eventInitDict = {});
+ [SameObject] readonly attribute FrozenArray<FontFace> fontfaces;
+};
+
+enum FontFaceSetLoadStatus { "loading", "loaded" };
+
+[Exposed=(Window,Worker)]
+interface FontFaceSet : EventTarget {
+ constructor(sequence<FontFace> initialFaces);
+
+ setlike<FontFace>;
+ FontFaceSet add(FontFace font);
+ boolean delete(FontFace font);
+ undefined clear();
+
+ // events for when loading state changes
+ attribute EventHandler onloading;
+ attribute EventHandler onloadingdone;
+ attribute EventHandler onloadingerror;
+
+ // check and start loads if appropriate
+ // and fulfill promise when all loads complete
+ Promise<sequence<FontFace>> load(CSSOMString font, optional CSSOMString text = " ");
+
+ // return whether all fonts in the fontlist are loaded
+ // (does not initiate load if not available)
+ boolean check(CSSOMString font, optional CSSOMString text = " ");
+
+ // async notification that font loading and layout operations are done
+ readonly attribute Promise<FontFaceSet> ready;
+
+ // loading state, "loading" while one or more fonts loading, "loaded" otherwise
+ readonly attribute FontFaceSetLoadStatus status;
+};
+
+interface mixin FontFaceSource {
+ readonly attribute FontFaceSet fonts;
+};
+
+Document includes FontFaceSource;
+WorkerGlobalScope includes FontFaceSource;