#include "nsISupports.idl"

interface nsIDOMCSSFontFaceRule;
interface nsIDOMCSSStyleDeclaration;

[scriptable, uuid(9a3b1272-6585-4f41-b08f-fdc5da444cd0)]
interface nsIDOMFontFace : nsISupports
{
  // An indication of how we found this font during font-matching.
  // Note that the same physical font may have been found in multiple ways within a range.
  readonly attribute boolean fromFontGroup;
  readonly attribute boolean fromLanguagePrefs;
  readonly attribute boolean fromSystemFallback;

  // available for all fonts
  readonly attribute DOMString name; // full font name as obtained from the font resource
  readonly attribute DOMString CSSFamilyName; // a family name that could be used in CSS font-family
                                              // (not necessarily the actual name that was used,
                                              // due to aliases, generics, localized names, etc)

  // meaningful only when the font is a user font defined using @font-face
  readonly attribute nsIDOMCSSFontFaceRule rule; // null if no associated @font-face rule
  readonly attribute long srcIndex; // index in the rule's src list, -1 if no @font-face rule
  readonly attribute DOMString URI; // null if not a downloaded font, i.e. local
  readonly attribute DOMString localName; // null if not a src:local(...) rule
  readonly attribute DOMString format; // as per http://www.w3.org/TR/css3-webfonts/#referencing
  readonly attribute DOMString metadata; // XML metadata from WOFF file (if any)
};
