user_scripts

Warning: This key is used by the legacy userScripts API, which is available to extensions using Manifest V2. This key is not required for the version of the userScripts API available for use with Manifest V3.

Type Object
Mandatory No
Manifest version 2
Example
json
  "user_scripts": {
    "api_script": "apiscript.js",
  }

Instructs the browser to load a script packaged in the extension, known as the API script, this script is used to export a set of custom API methods for use in user scripts. The API script path, relative to the manifest.json file, is defined as a string in "api_script".

Note: The user_script key is required for the userScripts API to function, even if no API script is specified. For example. user_scripts: {}.

The API script:

  • runs in the content processes.
  • has access to the window and document globals related to the webpage it is attached to.
  • has access to the same subset of WebExtension APIs usually available in a content script.

The script executes automatically on any webpage defined in matches by userScripts.register(). However, this is before the user script sandbox object is created and the custom API methods can be exported.

To export the custom API methods, the script listens for userScripts.onBeforeScript and then export the custom API methods.

Not every user script may need to consume all of the custom API methods. You can, therefore, include details of the APIs needed in scriptMetadata when running userScripts.register(). The API script then accesses the scriptMetadata through the script parameter received by the userScripts.onBeforeScript listener (as script.metadata).

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
user_scripts
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – Full support
Firefox 68 (Release date: 2019-07-09)
footnote
footnote Required for the legacy version of userScripts, which is only available for extensions using Manifest V2.
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 68 (Release date: 2019-07-09)
footnote
footnote Required for the legacy version of userScripts, which is only available for extensions using Manifest V2.
Safari on iOS – No support
Safari on iOS
footnote No support
api_script
Chrome – No support
Chrome
footnote No support
Edge – No support
Edge
footnote No support
Firefox – Full support
Firefox 68 (Release date: 2019-07-09)
footnote Full support
Opera – No support
Opera
footnote No support
Safari – No support
Safari
footnote No support
Firefox for Android – Full support
Firefox for Android 68 (Release date: 2019-07-09)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

See also