//////////////////////////////////////////////////////
// BEWARE: DO NOT EDIT MANUALLY! Changes will be lost!
//////////////////////////////////////////////////////
import { Events } from "./events";
/**
* Namespace: browser.declarativeContent
*/
export namespace DeclarativeContent {
/**
* See https://developer.mozilla.
* org/en-US/docs/Web/API/ImageData.
*/
interface ImageDataType extends ImageData {
[s: string]: unknown;
}
/**
* Matches the state of a web page based on various criteria.
*/
interface PageStateMatcher {
/**
* Matches if the conditions of the UrlFilter
are fulfilled for the top-level URL of the page.
* Optional.
*/
pageUrl?: Events.UrlFilter;
/**
* Matches if all of the CSS selectors in the array match displayed elements in a frame with the same origin as the page's
* main frame. All selectors in this array must be
* compound selectors to speed up matching. Note: Listing hundreds of CSS selectors or listing CSS selectors that match
* hundreds of times per page can slow down web sites.
* Optional.
*/
css?: string[];
/**
* Matches if the bookmarked state of the page is equal to the specified value. Requres the bookmarks permission.
* Optional.
*/
isBookmarked?: boolean;
}
/**
* Please use ShowAction.
*/
type ShowPageAction = never;
/**
* A declarative event action that sets the extension's toolbar $(ref:action action) to an enabled state while the
* corresponding conditions are met. This action can be used without host permissions.
* If the extension has the activeTab permission,
* clicking the page action grants access to the active tab.
On pages where the conditions are not met the extension's * toolbar action will be grey-scale, and clicking it will open the context menu, instead of triggering the action.
*/ interface ShowAction { [s: string]: unknown; } /** * Declarative event action that sets the n-dip * square icon for the extension's $(ref:pageAction page action) or $(ref:browserAction browser action) * while the corresponding conditions are met. This action can be used without host permissions, * but the extension must have a page or browser action.Exactly one of imageData
or path
* must be specified. Both are dictionaries mapping a number of pixels to an image representation.
* The image representation in imageData
is an ImageData object; for example, from a canvas
element,
* while the image representation in path
is the path to an image file relative to the extension's manifest.
* If scale
screen pixels fit into a device-independent pixel, the scale * n
icon is used.
* If that scale is missing, another image is resized to the required size.
ImageData
object or a dictionary {size -> ImageData} representing an icon to be set.
* If the icon is specified as a dictionary, the image used is chosen depending on the screen's pixel density.
* If the number of image pixels that fit into one screen space unit equals scale
,
* then an image with size scale * n
is selected, where n is the size of the icon in the UI.
* At least one image must be specified. Note that details.imageData = foo
is equivalent to details.
* imageData = {'16': foo}
.
* Optional.
*/
imageData?: ImageDataType | SetIconImageDataC2Type;
}
/**
* Declarative event action that injects a content script. WARNING: This action is still experimental and is not * supported on stable builds of Chrome.
*/ interface RequestContentScript { /** * Names of CSS files to be injected as a part of the content script. * Optional. */ css?: string[]; /** * Names of JavaScript files to be injected as a part of the content script. * Optional. */ js?: string[]; /** * Whether the content script runs in all frames of the matching page, or in only the top frame. Default is
* false
.
* Optional.
*/
allFrames?: boolean;
/**
* Whether to insert the content script on about:blank
and about:srcdoc
. Default is
* false
.
* Optional.
*/
matchAboutBlank?: boolean;
}
interface Rule