@mirawision/chrome-api
Version:
A comprehensive TypeScript library for Chrome Extension API, providing type-safe wrappers and utilities for bookmarks, commands, context menus, cookies, downloads, storage, notifications, runtime, scripting, and side panel functionalities.
45 lines (44 loc) • 3.83 kB
TypeScript
/// <reference types="chrome" />
interface RequestFilter {
urls: string[];
types?: chrome.webRequest.ResourceType[];
tabId?: number;
windowId?: number;
}
interface BlockingResponse {
cancel?: boolean;
redirectUrl?: string;
requestHeaders?: chrome.webRequest.HttpHeader[];
responseHeaders?: chrome.webRequest.HttpHeader[];
authCredentials?: {
username: string;
password: string;
};
upgradeToSecure?: boolean;
}
interface UploadData {
bytes?: ArrayBuffer;
file?: string;
}
declare class WebRequest {
static addBeforeRequestListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebRequestBodyDetails) => BlockingResponse | undefined, extraInfoSpec?: ('blocking' | 'requestBody' | 'extraHeaders')[]): void;
static addBeforeSendHeadersListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebRequestHeadersDetails) => BlockingResponse | undefined, extraInfoSpec?: ('blocking' | 'requestHeaders' | 'extraHeaders')[]): void;
static addSendHeadersListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebRequestHeadersDetails) => void, extraInfoSpec?: ('requestHeaders' | 'extraHeaders')[]): void;
static addHeadersReceivedListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebResponseHeadersDetails) => BlockingResponse | undefined, extraInfoSpec?: ('blocking' | 'responseHeaders' | 'extraHeaders')[]): void;
static addAuthRequiredListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebAuthenticationChallengeDetails, callback?: (response: BlockingResponse) => void) => BlockingResponse | undefined, extraInfoSpec?: ('blocking' | 'asyncBlocking' | 'responseHeaders' | 'extraHeaders')[]): void;
static addResponseStartedListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebResponseCacheDetails) => void, extraInfoSpec?: ('responseHeaders' | 'extraHeaders')[]): void;
static addBeforeRedirectListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebRedirectionResponseDetails) => void, extraInfoSpec?: ('responseHeaders' | 'extraHeaders')[]): void;
static addCompletedListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebResponseCacheDetails) => void, extraInfoSpec?: ('responseHeaders' | 'extraHeaders')[]): void;
static addErrorOccurredListener(filter: RequestFilter, callback: (details: chrome.webRequest.WebResponseErrorDetails) => void): void;
static removeBeforeRequestListener(callback: (details: chrome.webRequest.WebRequestBodyDetails) => BlockingResponse | undefined): void;
static removeBeforeSendHeadersListener(callback: (details: chrome.webRequest.WebRequestHeadersDetails) => BlockingResponse | undefined): void;
static removeSendHeadersListener(callback: (details: chrome.webRequest.WebRequestHeadersDetails) => void): void;
static removeHeadersReceivedListener(callback: (details: chrome.webRequest.WebResponseHeadersDetails) => BlockingResponse | undefined): void;
static removeAuthRequiredListener(callback: (details: chrome.webRequest.WebAuthenticationChallengeDetails, callback?: (response: BlockingResponse) => void) => BlockingResponse | undefined): void;
static removeResponseStartedListener(callback: (details: chrome.webRequest.WebResponseCacheDetails) => void): void;
static removeBeforeRedirectListener(callback: (details: chrome.webRequest.WebRedirectionResponseDetails) => void): void;
static removeCompletedListener(callback: (details: chrome.webRequest.WebResponseCacheDetails) => void): void;
static removeErrorOccurredListener(callback: (details: chrome.webRequest.WebResponseErrorDetails) => void): void;
static handlerBehaviorChanged(): Promise<void>;
}
export { WebRequest, RequestFilter, BlockingResponse, UploadData };