This object contains details of a script to be registered or that is registered.


Values of this type are objects. They contain these properties:

allFrames Optional

boolean. If specified true, the script is inject into all frames, even if the frame is not the top-most frame in the tab. Each frame is checked independently for URL requirements; it does not inject into child frames if the URL requirements are not met. Defaults to false, meaning that only the top frame is matched.

css Optional

array of string. The list of CSS files to be injected into matching pages. These are injected in the order they appear in this array.

excludeMatches Optional

array of string. Array of pages that this content script is excluded from but would otherwise be injected into.


string. The ID of the content script, specified in the API call.

js Optional

array of string. Array of path to JavaScript files in the extension package to inject into matching pages. Scripts are injected in the order they appear in this array.

matches Optional

array of string. Array of the pages this content script is injected into. Must be specified for scripting.registerContentScripts().

persistAcrossSessions Optional

boolean. Specifies if this content script persists across browser restarts and updates and extension restarts. Defaults to true.

runAt Optional

extensionTypes.RunAt. Specifies when JavaScript files are injected into the web page. The default value is document_idle. In Firefox, runAt also affects the point where the CSS is inserted. In Chrome, runAt does not affect the CSS insertion point.

Browser compatibility

BCD tables only load in the browser

Note: This API is based on Chromium's chrome.scripting API.