457 lines
13 KiB
JSON
457 lines
13 KiB
JSON
[
|
|
{
|
|
"namespace": "manifest",
|
|
"types": [
|
|
{
|
|
"$extend": "PermissionNoPrompt",
|
|
"choices": [
|
|
{
|
|
"type": "string",
|
|
"enum": ["theme"]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "ThemeColor",
|
|
"choices": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"minItems": 3,
|
|
"maxItems": 3,
|
|
"items": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 255
|
|
}
|
|
},
|
|
{
|
|
"type": "array",
|
|
"minItems": 4,
|
|
"maxItems": 4,
|
|
"items": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "ThemeExperiment",
|
|
"type": "object",
|
|
"properties": {
|
|
"stylesheet": {
|
|
"optional": true,
|
|
"$ref": "ExtensionURL"
|
|
},
|
|
"images": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"colors": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "ThemeType",
|
|
"type": "object",
|
|
"properties": {
|
|
"images": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"properties": {
|
|
"additional_backgrounds": {
|
|
"type": "array",
|
|
"items": { "$ref": "ImageDataOrExtensionURL" },
|
|
"maxItems": 15,
|
|
"optional": true
|
|
},
|
|
"headerURL": {
|
|
"$ref": "ImageDataOrExtensionURL",
|
|
"optional": true,
|
|
"deprecated": "Unsupported images property, use 'theme.images.theme_frame', this alias is ignored in IceCat >= 70."
|
|
},
|
|
"theme_frame": {
|
|
"$ref": "ImageDataOrExtensionURL",
|
|
"optional": true
|
|
}
|
|
},
|
|
"additionalProperties": { "$ref": "ImageDataOrExtensionURL" }
|
|
},
|
|
"colors": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"properties": {
|
|
"tab_selected": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"accentcolor": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true,
|
|
"deprecated": "Unsupported colors property, use 'theme.colors.frame', this alias is ignored in IceCat >= 70."
|
|
},
|
|
"frame": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"frame_inactive": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"textcolor": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true,
|
|
"deprecated": "Unsupported color property, use 'theme.colors.tab_background_text', this alias is ignored in IceCat >= 70."
|
|
},
|
|
"tab_background_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"tab_background_separator": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"tab_loading": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"tab_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"tab_line": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true,
|
|
"description": "This color property is an alias of 'bookmark_text'."
|
|
},
|
|
"bookmark_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_border": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_separator": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true,
|
|
"deprecated": "This color property is ignored in IceCat >= 89."
|
|
},
|
|
"toolbar_top_separator": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_bottom_separator": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_vertical_separator": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"icons": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"icons_attention": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"button_background_hover": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"button_background_active": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"popup": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"popup_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"popup_border": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_focus": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_text_focus": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_border_focus": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"popup_highlight": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"popup_highlight_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"ntp_background": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"ntp_card_background": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"ntp_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"sidebar": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"sidebar_border": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"sidebar_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"sidebar_highlight": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"sidebar_highlight_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_highlight": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
},
|
|
"toolbar_field_highlight_text": {
|
|
"$ref": "ThemeColor",
|
|
"optional": true
|
|
}
|
|
},
|
|
"additionalProperties": { "$ref": "ThemeColor" }
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"properties": {
|
|
"additional_backgrounds_alignment": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"bottom",
|
|
"center",
|
|
"left",
|
|
"right",
|
|
"top",
|
|
"center bottom",
|
|
"center center",
|
|
"center top",
|
|
"left bottom",
|
|
"left center",
|
|
"left top",
|
|
"right bottom",
|
|
"right center",
|
|
"right top"
|
|
]
|
|
},
|
|
"maxItems": 15,
|
|
"optional": true
|
|
},
|
|
"additional_backgrounds_tiling": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["no-repeat", "repeat", "repeat-x", "repeat-y"]
|
|
},
|
|
"maxItems": 15,
|
|
"optional": true
|
|
},
|
|
"color_scheme": {
|
|
"optional": true,
|
|
"type": "string",
|
|
"enum": ["auto", "light", "dark", "system"]
|
|
},
|
|
"content_color_scheme": {
|
|
"optional": true,
|
|
"type": "string",
|
|
"enum": ["auto", "light", "dark", "system"]
|
|
}
|
|
},
|
|
"additionalProperties": { "type": "string" }
|
|
}
|
|
},
|
|
"additionalProperties": { "$ref": "UnrecognizedProperty" }
|
|
},
|
|
{
|
|
"id": "ThemeManifest",
|
|
"type": "object",
|
|
"description": "Contents of manifest.json for a static theme",
|
|
"$import": "manifest.ManifestBase",
|
|
"properties": {
|
|
"theme": {
|
|
"$ref": "ThemeType"
|
|
},
|
|
"dark_theme": {
|
|
"$ref": "ThemeType",
|
|
"optional": true
|
|
},
|
|
"default_locale": {
|
|
"type": "string",
|
|
"optional": true
|
|
},
|
|
"theme_experiment": {
|
|
"$ref": "ThemeExperiment",
|
|
"optional": true
|
|
},
|
|
"icons": {
|
|
"type": "object",
|
|
"optional": true,
|
|
"patternProperties": {
|
|
"^[1-9]\\d*$": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$extend": "WebExtensionManifest",
|
|
"properties": {
|
|
"theme_experiment": {
|
|
"$ref": "ThemeExperiment",
|
|
"optional": true
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"namespace": "theme",
|
|
"description": "The theme API allows customizing of visual elements of the browser.",
|
|
"types": [
|
|
{
|
|
"id": "ThemeUpdateInfo",
|
|
"type": "object",
|
|
"description": "Info provided in the onUpdated listener.",
|
|
"properties": {
|
|
"theme": {
|
|
"type": "object",
|
|
"description": "The new theme after update"
|
|
},
|
|
"windowId": {
|
|
"type": "integer",
|
|
"description": "The id of the window the theme has been applied to",
|
|
"optional": true
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"name": "onUpdated",
|
|
"type": "function",
|
|
"description": "Fired when a new theme has been applied",
|
|
"parameters": [
|
|
{
|
|
"$ref": "ThemeUpdateInfo",
|
|
"name": "updateInfo",
|
|
"description": "Details of the theme update"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"functions": [
|
|
{
|
|
"name": "getCurrent",
|
|
"type": "function",
|
|
"async": true,
|
|
"description": "Returns the current theme for the specified window or the last focused window.",
|
|
"parameters": [
|
|
{
|
|
"type": "integer",
|
|
"name": "windowId",
|
|
"optional": true,
|
|
"description": "The window for which we want the theme."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "update",
|
|
"type": "function",
|
|
"async": true,
|
|
"description": "Make complete updates to the theme. Resolves when the update has completed.",
|
|
"permissions": ["theme"],
|
|
"parameters": [
|
|
{
|
|
"type": "integer",
|
|
"name": "windowId",
|
|
"optional": true,
|
|
"description": "The id of the window to update. No id updates all windows."
|
|
},
|
|
{
|
|
"name": "details",
|
|
"$ref": "manifest.ThemeType",
|
|
"description": "The properties of the theme to update."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "reset",
|
|
"type": "function",
|
|
"async": true,
|
|
"description": "Removes the updates made to the theme.",
|
|
"permissions": ["theme"],
|
|
"parameters": [
|
|
{
|
|
"type": "integer",
|
|
"name": "windowId",
|
|
"optional": true,
|
|
"description": "The id of the window to reset. No id resets all windows."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|