chromium/chrome/common/extensions/api/font_settings.json

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
  {
    "namespace": "fontSettings",
    "description": "Use the <code>chrome.fontSettings</code> API to manage Chrome's font settings.",
    "types": [
      {
        "id": "FontName",
        "type": "object",
        "description": "Represents a font name.",
        "properties": {
          "fontId": {
            "type": "string",
            "description": "The font ID."
          },
          "displayName": {
            "type": "string",
            "description": "The display name of the font."
          }
        }
      },
      {
        "id": "ScriptCode",
        "type": "string",
        "enum": [ "Afak", "Arab", "Armi", "Armn", "Avst", "Bali", "Bamu", "Bass", "Batk",
                  "Beng", "Blis", "Bopo", "Brah", "Brai", "Bugi", "Buhd", "Cakm", "Cans",
                  "Cari", "Cham", "Cher", "Cirt", "Copt", "Cprt", "Cyrl", "Cyrs", "Deva",
                  "Dsrt", "Dupl", "Egyd", "Egyh", "Egyp", "Elba", "Ethi", "Geor", "Geok",
                  "Glag", "Goth", "Gran", "Grek", "Gujr", "Guru", "Hang", "Hani", "Hano",
                  "Hans", "Hant", "Hebr", "Hluw", "Hmng", "Hung", "Inds", "Ital", "Java",
                  "Jpan", "Jurc", "Kali", "Khar", "Khmr", "Khoj", "Knda", "Kpel", "Kthi",
                  "Lana", "Laoo", "Latf", "Latg", "Latn", "Lepc", "Limb", "Lina", "Linb",
                  "Lisu", "Loma", "Lyci", "Lydi", "Mand", "Mani", "Maya", "Mend", "Merc",
                  "Mero", "Mlym", "Moon", "Mong", "Mroo", "Mtei", "Mymr", "Narb", "Nbat",
                  "Nkgb", "Nkoo", "Nshu", "Ogam", "Olck", "Orkh", "Orya", "Osma", "Palm",
                  "Perm", "Phag", "Phli", "Phlp", "Phlv", "Phnx", "Plrd", "Prti", "Rjng",
                  "Roro", "Runr", "Samr", "Sara", "Sarb", "Saur", "Sgnw", "Shaw", "Shrd",
                  "Sind", "Sinh", "Sora", "Sund", "Sylo", "Syrc", "Syre", "Syrj", "Syrn",
                  "Tagb", "Takr", "Tale", "Talu", "Taml", "Tang", "Tavt", "Telu", "Teng",
                  "Tfng", "Tglg", "Thaa", "Thai", "Tibt", "Tirh", "Ugar", "Vaii", "Visp",
                  "Wara", "Wole", "Xpeo", "Xsux", "Yiii", "Zmth", "Zsym", "Zyyy" ],
        "description": "An ISO 15924 script code. The default, or global, script is represented by script code \"Zyyy\"."
      },
      {
        "id": "GenericFamily",
        "type": "string",
        "enum": ["standard", "sansserif", "serif", "fixed", "cursive", "fantasy", "math"],
        "description": "A CSS generic font family."
      },
      {
        "id": "LevelOfControl",
        "description": "One of<br><var>not_controllable</var>: cannot be controlled by any extension<br><var>controlled_by_other_extensions</var>: controlled by extensions with higher precedence<br><var>controllable_by_this_extension</var>: can be controlled by this extension<br><var>controlled_by_this_extension</var>: controlled by this extension",
        "type": "string",
        "enum": ["not_controllable", "controlled_by_other_extensions", "controllable_by_this_extension", "controlled_by_this_extension"]
      }
    ],
    "functions": [
      {
        "name": "clearFont",
        "description": "Clears the font set by this extension, if any.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "properties": {
              "script": {
                "$ref": "ScriptCode",
                "description": "The script for which the font should be cleared. If omitted, the global script font setting is cleared.",
                "optional": true
              },
              "genericFamily": {
                "$ref": "GenericFamily",
                "description": "The generic font family for which the font should be cleared."
              }
            }
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "getFont",
        "description": "Gets the font for a given script and generic font family.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "properties": {
              "script": {
                "$ref": "ScriptCode",
                "description": "The script for which the font should be retrieved. If omitted, the font setting for the global script (script code \"Zyyy\") is retrieved.",
                "optional": true
              },
              "genericFamily": {
                "$ref": "GenericFamily",
                "description": "The generic font family for which the font should be retrieved."
              }
            }
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": [
            {
              "name": "details",
              "type": "object",
              "properties": {
                "fontId": {
                  "type": "string",
                  "description": "The font ID. Rather than the literal font ID preference value, this may be the ID of the font that the system resolves the preference value to. So, <var>fontId</var> can differ from the font passed to <code>setFont</code>, if, for example, the font is not available on the system. The empty string signifies fallback to the global script font setting."
                },
                "levelOfControl": {
                  "$ref": "LevelOfControl",
                  "description": "The level of control this extension has over the setting."
                }
              }
            }
          ]
        }
      },
      {
        "name": "setFont",
        "description": "Sets the font for a given script and generic font family.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "properties": {
              "script": {
                "$ref": "ScriptCode",
                "description": "The script code which the font should be set. If omitted, the font setting for the global script (script code \"Zyyy\") is set.",
                "optional": true
              },
              "genericFamily": {
                "$ref": "GenericFamily",
                "description": "The generic font family for which the font should be set."
              },
              "fontId": {
                "type": "string",
                "description": "The font ID. The empty string means to fallback to the global script font setting."
              }
            }
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "getFontList",
        "description": "Gets a list of fonts on the system.",
        "parameters": [],
        "returns_async": {
          "name": "callback",
          "parameters": [
            {
              "name": "results",
              "type": "array",
              "items": { "$ref": "FontName" }
            }
          ]
        }
      },
      {
        "name": "clearDefaultFontSize",
        "description": "Clears the default font size set by this extension, if any.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "optional": true,
            "description": "This parameter is currently unused.",
            "properties": {}
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "getDefaultFontSize",
        "description": "Gets the default font size.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "optional": true,
            "description": "This parameter is currently unused.",
            "properties": {}
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": [
            {
              "name": "details",
              "type": "object",
              "properties": {
                "pixelSize": {
                  "type": "integer",
                  "description": "The font size in pixels."
                },
                "levelOfControl": {
                  "$ref": "LevelOfControl",
                  "description": "The level of control this extension has over the setting."
                }
              }
            }
          ]
        }
      },
      {
        "name": "setDefaultFontSize",
        "description": "Sets the default font size.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "properties": {
              "pixelSize": {
                "type": "integer",
                "description": "The font size in pixels."
              }
            }
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "clearDefaultFixedFontSize",
        "description": "Clears the default fixed font size set by this extension, if any.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "optional": true,
            "description": "This parameter is currently unused.",
            "properties": {}
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "getDefaultFixedFontSize",
        "description": "Gets the default size for fixed width fonts.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "optional": true,
            "description": "This parameter is currently unused.",
            "properties": {}
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": [
            {
              "name": "details",
              "type": "object",
              "properties": {
                "pixelSize": {
                  "type": "integer",
                  "description": "The font size in pixels."
                },
                "levelOfControl": {
                  "$ref": "LevelOfControl",
                  "description": "The level of control this extension has over the setting."
                }
              }
            }
          ]
        }
      },
      {
        "name": "setDefaultFixedFontSize",
        "description": "Sets the default size for fixed width fonts.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "properties": {
              "pixelSize": {
                "type": "integer",
                "description": "The font size in pixels."
              }
            }
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "clearMinimumFontSize",
        "description": "Clears the minimum font size set by this extension, if any.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "optional": true,
            "description": "This parameter is currently unused.",
            "properties": {}
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      },
      {
        "name": "getMinimumFontSize",
        "description": "Gets the minimum font size.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "optional": true,
            "description": "This parameter is currently unused.",
            "properties": {}
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": [
            {
              "name": "details",
              "type": "object",
              "properties": {
                "pixelSize": {
                  "type": "integer",
                  "description": "The font size in pixels."
                },
                "levelOfControl": {
                  "$ref": "LevelOfControl",
                  "description": "The level of control this extension has over the setting."
                }
              }
            }
          ]
        }
      },
      {
        "name": "setMinimumFontSize",
        "description": "Sets the minimum font size.",
        "parameters": [
          {
            "name": "details",
            "type": "object",
            "properties": {
              "pixelSize": {
                "type": "integer",
                "description": "The font size in pixels."
              }
            }
          }
        ],
        "returns_async": {
          "name": "callback",
          "optional": true,
          "parameters": []
        }
      }
    ],
    "events": [
      {
        "name": "onFontChanged",
        "description": "Fired when a font setting changes.",
        "parameters": [
          {
            "type": "object",
            "name": "details",
            "properties": {
              "fontId": {
                "type": "string",
                "description": "The font ID. See the description in <code>getFont</code>."
              },
              "script": {
                "$ref": "ScriptCode",
                "description": "The script code for which the font setting has changed.",
                "optional": true
              },
              "genericFamily": {
                "$ref": "GenericFamily",
                "description": "The generic font family for which the font setting has changed."
              },
              "levelOfControl": {
                "$ref": "LevelOfControl",
                "description": "The level of control this extension has over the setting."
              }
            }
          }
        ]
      },
      {
        "name": "onDefaultFontSizeChanged",
        "description": "Fired when the default font size setting changes.",
        "parameters": [
          {
            "type": "object",
            "name": "details",
            "properties": {
              "pixelSize": {
                "type": "integer",
                "description": "The font size in pixels."
              },
              "levelOfControl": {
                "$ref": "LevelOfControl",
                "description": "The level of control this extension has over the setting."
              }
            }
          }
        ]
      },
      {
        "name": "onDefaultFixedFontSizeChanged",
        "description": "Fired when the default fixed font size setting changes.",
        "parameters": [
          {
            "type": "object",
            "name": "details",
            "properties": {
              "pixelSize": {
                "type": "integer",
                "description": "The font size in pixels."
              },
              "levelOfControl": {
                "$ref": "LevelOfControl",
                "description": "The level of control this extension has over the setting."
              }
            }
          }
        ]
      },
      {
        "name": "onMinimumFontSizeChanged",
        "description": "Fired when the minimum font size setting changes.",
        "parameters": [
          {
            "type": "object",
            "name": "details",
            "properties": {
              "pixelSize": {
                "type": "integer",
                "description": "The font size in pixels."
              },
              "levelOfControl": {
                "$ref": "LevelOfControl",
                "description": "The level of control this extension has over the setting."
              }
            }
          }
        ]
      }
    ]
  }
]