[ { "namespace": "types", "description": "Contains types used by other schemas.", "types": [ { "id": "SettingScope", "type": "string", "enum": [ "regular", "regular_only", "incognito_persistent", "incognito_session_only" ], "description": "The scope of the Setting. One of Only regular is supported by Firefox at this time." }, { "id": "LevelOfControl", "type": "string", "enum": [ "not_controllable", "controlled_by_other_extensions", "controllable_by_this_extension", "controlled_by_this_extension" ], "description": "One of" }, { "id": "Setting", "type": "object", "functions": [ { "name": "get", "type": "function", "description": "Gets the value of a setting.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "description": "Which setting to consider.", "properties": { "incognito": { "type": "boolean", "optional": true, "description": "Whether to return the value that applies to the incognito session (default false)." } } }, { "name": "callback", "type": "function", "parameters": [ { "name": "details", "type": "object", "description": "Details of the currently effective value.", "properties": { "value": { "description": "The value of the setting.", "type": "any" }, "levelOfControl": { "$ref": "types.LevelOfControl", "description": "The level of control of the setting." }, "incognitoSpecific": { "description": "Whether the effective value is specific to the incognito session.
This property will only be present if the incognito property in the details parameter of get() was true.", "type": "boolean", "optional": true } } } ] } ] }, { "name": "set", "type": "function", "description": "Sets the value of a setting.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "description": "Which setting to change.", "properties": { "value": { "description": "The value of the setting.
Note that every setting has a specific value type, which is described together with the setting. An extension should not set a value of a different type.", "type": "any" }, "scope": { "$ref": "types.SettingScope", "optional": true, "description": "Where to set the setting (default: regular)." } } }, { "name": "callback", "type": "function", "description": "Called at the completion of the set operation.", "optional": true, "parameters": [] } ] }, { "name": "clear", "type": "function", "description": "Clears the setting, restoring any default value.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "description": "Which setting to clear.", "properties": { "scope": { "$ref": "types.SettingScope", "optional": true, "description": "Where to clear the setting (default: regular)." } } }, { "name": "callback", "type": "function", "description": "Called at the completion of the clear operation.", "optional": true, "parameters": [] } ] } ], "events": [ { "name": "onChange", "type": "function", "description": "Fired after the setting changes.", "parameters": [ { "type": "object", "name": "details", "properties": { "value": { "description": "The value of the setting after the change.", "type": "any" }, "levelOfControl": { "$ref": "types.LevelOfControl", "description": "The level of control of the setting." }, "incognitoSpecific": { "description": "Whether the value that has changed is specific to the incognito session.
This property will only be present if the user has enabled the extension in incognito mode.", "type": "boolean", "optional": true } } } ] } ] } ] } ]