// 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."
}
}
}
]
}
]
}
]