UNPKG

@types/webextension-polyfill

Version:
157 lines (129 loc) 4.75 kB
////////////////////////////////////////////////////// // BEWARE: DO NOT EDIT MANUALLY! Changes will be lost! ////////////////////////////////////////////////////// import { Manifest } from "./manifest"; /** * Namespace: browser.extensionTypes */ export namespace ExtensionTypes { /** * The format of an image. */ type ImageFormat = "jpeg" | "png"; /** * Details about the format, quality, area and scale of the capture. */ interface ImageDetails { /** * The format of the resulting image. Default is <code>"jpeg"</code>. * Optional. */ format?: ImageFormat; /** * When format is <code>"jpeg"</code>, controls the quality of the resulting image. This value is ignored for PNG images. * As quality is decreased, the resulting image will have more visual artifacts, and the number of bytes needed to store * it will decrease. * Optional. */ quality?: number; /** * The area of the document to capture, in CSS pixels, relative to the page. If omitted, capture the visible viewport. * Optional. */ rect?: ImageDetailsRectType; /** * The scale of the resulting image. Defaults to <code>devicePixelRatio</code>. * Optional. */ scale?: number; /** * If true, temporarily resets the scroll position of the document to 0. Only takes effect if rect is also specified. * Optional. */ resetScrollPosition?: boolean; } /** * The soonest that the JavaScript or CSS will be injected into the tab. */ type RunAt = "document_start" | "document_end" | "document_idle"; /** * The JavaScript world for a script to execute within. <code>ISOLATED</code> is the default execution environment of * content scripts, <code>MAIN</code> is the web page's execution environment. */ type ExecutionWorld = "ISOLATED" | "MAIN"; /** * The origin of the CSS to inject, this affects the cascading order (priority) of the stylesheet. */ type CSSOrigin = "user" | "author"; /** * Details of the script or CSS to inject. Either the code or the file property must be set, * but both may not be set at the same time. */ interface InjectDetails { /** * JavaScript or CSS code to inject.<br><br><b>Warning:</b><br>Be careful using the <code>code</code> parameter. * Incorrect use of it may open your extension to <a href="https://en.wikipedia.org/wiki/Cross-site_scripting"> * cross site scripting</a> attacks. * Optional. */ code?: string; /** * JavaScript or CSS file to inject. * Optional. */ file?: string; /** * If allFrames is <code>true</code>, implies that the JavaScript or CSS should be injected into all frames of current page. * By default, it's <code>false</code> and is only injected into the top frame. * Optional. */ allFrames?: boolean; /** * If matchAboutBlank is true, then the code is also injected in about:blank and about:srcdoc frames if your extension has * access to its parent document. Code cannot be inserted in top-level about:-frames. By default it is <code>false</code>. * Optional. */ matchAboutBlank?: boolean; /** * The ID of the frame to inject the script into. This may not be used in combination with <code>allFrames</code>. * Optional. */ frameId?: number; /** * The soonest that the JavaScript or CSS will be injected into the tab. Defaults to "document_idle". * Optional. */ runAt?: RunAt; /** * The css origin of the stylesheet to inject. Defaults to "author". * Optional. */ cssOrigin?: CSSOrigin; } type DateType = string | number | Date; type ExtensionFileOrCode = ExtensionFileOrCodeC1Type | ExtensionFileOrCodeC2Type; /** * A plain JSON value */ interface PlainJSONValue { [s: string]: unknown; } /** * The area of the document to capture, in CSS pixels, relative to the page. If omitted, capture the visible viewport. */ interface ImageDetailsRectType { x: number; y: number; width: number; height: number; } interface ExtensionFileOrCodeC1Type { file: Manifest.ExtensionURL; } interface ExtensionFileOrCodeC2Type { code: string; } interface Static { [s: string]: unknown; } }