servo-script-bindings 0.3.0

A component of the servo web-engine.
Documentation
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

typedef DOMString CSSOMString;

dictionary FontFaceDescriptors {
  CSSOMString style = "normal";
  CSSOMString weight = "normal";
  CSSOMString stretch = "normal";
  CSSOMString unicodeRange = "U+0-10FFFF";
  CSSOMString featureSettings = "normal";
  CSSOMString variationSettings = "normal";
  CSSOMString display = "auto";
  CSSOMString ascentOverride = "normal";
  CSSOMString descentOverride = "normal";
  CSSOMString lineGapOverride = "normal";
};

enum FontFaceLoadStatus { "unloaded", "loading", "loaded", "error" };

// https://drafts.csswg.org/css-font-loading/#fontface-interface
[Exposed=(Window /*, Worker */), Pref="dom_fontface_enabled"] // TODO: Add support for FontFace in Workers.
interface FontFace {
  constructor(CSSOMString family, (CSSOMString or BufferSource) source,
                optional FontFaceDescriptors descriptors = {});
  [SetterThrows]
  attribute CSSOMString family;
  [SetterThrows]
  attribute CSSOMString style;
  [SetterThrows]
  attribute CSSOMString weight;
  [SetterThrows]
  attribute CSSOMString stretch;
  [SetterThrows]
  attribute CSSOMString unicodeRange;
  [SetterThrows]
  attribute CSSOMString featureSettings;
  [SetterThrows]
  attribute CSSOMString variationSettings;
  [SetterThrows]
  attribute CSSOMString display;
  [SetterThrows]
  attribute CSSOMString ascentOverride;
  [SetterThrows]
  attribute CSSOMString descentOverride;
  [SetterThrows]
  attribute CSSOMString lineGapOverride;

  readonly attribute FontFaceLoadStatus status;

  Promise<FontFace> load();
  readonly attribute Promise<FontFace> loaded;
};