@types/webextension-polyfill
Version:
TypeScript definitions for webextension-polyfill
146 lines (128 loc) • 4.89 kB
TypeScript
//////////////////////////////////////////////////////
// BEWARE: DO NOT EDIT MANUALLY! Changes will be lost!
//////////////////////////////////////////////////////
import { Events } from "./events";
import { Manifest } from "./manifest";
/**
* Namespace: browser.devtools.panels
*/
export namespace DevtoolsPanels {
/**
* Represents the Elements panel.
*/
interface ElementsPanel {
/**
* Creates a pane within panel's sidebar.
*
* @param title Text that is displayed in sidebar caption.
* @returns A callback invoked when the sidebar is created.
*/
createSidebarPane(title: string): Promise<ExtensionSidebarPane>;
/**
* Fired when an object is selected in the panel.
*/
onSelectionChanged: Events.Event<() => void>;
}
/**
* Represents the Sources panel.
*/
interface SourcesPanel {
[s: string]: unknown;
}
/**
* Represents a panel created by extension.
*/
interface ExtensionPanel {
/**
* Fired when the user switches to the panel.
*
* @param window The JavaScript <code>window</code> object of panel's page.
*/
onShown: Events.Event<(window: Window) => void>;
/**
* Fired when the user switches away from the panel.
*/
onHidden: Events.Event<() => void>;
}
/**
* A sidebar created by the extension.
*/
interface ExtensionSidebarPane {
/**
* Sets an expression that is evaluated within the inspected page. The result is displayed in the sidebar pane.
*
* @param expression An expression to be evaluated in context of the inspected page. JavaScript objects and DOM nodes are
* displayed in an expandable tree similar to the console/watch.
* @param rootTitle Optional. An optional title for the root of the expression tree.
* @returns A callback invoked after the sidebar pane is updated with the expression evaluation results.
*/
setExpression(expression: string, rootTitle?: string): Promise<void>;
/**
* Sets a JSON-compliant object to be displayed in the sidebar pane.
*
* @param jsonObject An object to be displayed in context of the inspected page. Evaluated in the context of the caller
* (API client).
* @param rootTitle Optional. An optional title for the root of the expression tree.
* @returns A callback invoked after the sidebar is updated with the object.
*/
setObject(jsonObject: string | unknown[] | Record<string, unknown>, rootTitle?: string): Promise<void>;
/**
* Sets an HTML page to be displayed in the sidebar pane.
*
* @param path Relative path of an extension page to display within the sidebar.
*/
setPage(path: Manifest.ExtensionURL): Promise<void>;
/**
* Fired when the sidebar pane becomes visible as a result of user switching to the panel that hosts it.
*
* @param window The JavaScript <code>window</code> object of the sidebar page, if one was set with the <code>setPage()
* </code> method.
*/
onShown: Events.Event<(window: Window) => void>;
/**
* Fired when the sidebar pane becomes hidden as a result of the user switching away from the panel that hosts the sidebar
* pane.
*/
onHidden: Events.Event<() => void>;
}
/**
* A button created by the extension.
*/
interface Button {
[s: string]: unknown;
}
interface Static {
/**
* Creates an extension panel.
*
* @param title Title that is displayed next to the extension icon in the Developer Tools toolbar.
* @param iconPath Path of the panel's icon relative to the extension directory, or an empty string to use the default
* extension icon as the panel icon.
* @param pagePath Path of the panel's HTML page relative to the extension directory.
* @returns A function that is called when the panel is created.
*/
create(
title: string,
iconPath: "" | Manifest.ExtensionURL,
pagePath: Manifest.ExtensionURL,
): Promise<ExtensionPanel>;
/**
* Fired when the devtools theme changes.
*
* @param themeName The name of the current devtools theme.
*/
onThemeChanged: Events.Event<(themeName: string) => void>;
/**
* Elements panel.
*/
elements: ElementsPanel;
/**
* Sources panel.
*/
sources: SourcesPanel;
/**
* The name of the current devtools theme.
*/
themeName: string;
}
}