# webRequest Documentation: [Chrome WebRequest API](https://developer.chrome.com/docs/extensions/reference/webRequest) A promise-based wrapper for the Chrome `webRequest` API, providing methods to observe and modify network requests through various lifecycle events. ## Methods - [handlerWebRequestBehaviorChanged()](#handlerWebRequestBehaviorChanged) ## Events - [onWebRequestAuthRequired(callback, filter, extraInfoSpec?)](#onWebRequestAuthRequired) - [onWebRequestBeforeRedirect(callback, filter, extraInfoSpec?)](#onWebRequestBeforeRedirect) - [onWebRequestBeforeRequest(callback, filter, extraInfoSpec?)](#onWebRequestBeforeRequest) - [onWebRequestBeforeSendHeaders(callback, filter, extraInfoSpec?)](#onWebRequestBeforeSendHeaders) - [onWebRequestSendHeaders(callback, filter, extraInfoSpec?)](#onWebRequestSendHeaders) - [onWebRequestHeadersReceived(callback, filter, extraInfoSpec?)](#onWebRequestHeadersReceived) - [onWebRequestResponseStarted(callback, filter, extraInfoSpec?)](#onWebRequestResponseStarted) - [onWebRequestCompleted(callback, filter, extraInfoSpec?)](#onWebRequestCompleted) - [onWebRequestErrorOccurred(callback, filter, extraInfoSpec?)](#onWebRequestErrorOccurred) --- ### handlerWebRequestBehaviorChanged ``` handlerWebRequestBehaviorChanged(): Promise ``` Notifies the browser that the extension's webRequest handling logic (filters or listeners) has changed, prompting the browser to update its internal event routing. ### onWebRequestAuthRequired ``` onWebRequestAuthRequired( callback: ( details: chrome.webRequest.OnAuthRequiredDetails, asyncCallback?: (response: chrome.webRequest.BlockingResponse) => void ) => chrome.webRequest.BlockingResponse | void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener for authentication challenges. You can provide credentials, cancel the request, or take no action. Returns a function to remove the listener. ### onWebRequestBeforeRedirect ``` onWebRequestBeforeRedirect( callback: (details: chrome.webRequest.OnBeforeRedirectDetails) => void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired before a server-initiated redirect occurs. Returns a function to remove the listener. ### onWebRequestBeforeRequest ``` onWebRequestBeforeRequest( callback: (details: chrome.webRequest.OnBeforeRequestDetails) => chrome.webRequest.BlockingResponse | void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired before a request is made. Can cancel or redirect the request by returning a BlockingResponse. Returns a function to remove the listener. ### onWebRequestBeforeSendHeaders ``` onWebRequestBeforeSendHeaders( callback: (details: chrome.webRequest.OnBeforeSendHeadersDetails) => chrome.webRequest.BlockingResponse | void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired before HTTP request headers are sent. Can modify or cancel the request headers. Returns a function to remove the listener. ### onWebRequestSendHeaders ``` onWebRequestSendHeaders( callback: (details: chrome.webRequest.OnSendHeadersDetails) => void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired after HTTP request headers are sent. Returns a function to remove the listener. ### onWebRequestHeadersReceived ``` onWebRequestHeadersReceived( callback: (details: chrome.webRequest.OnHeadersReceivedDetails) => chrome.webRequest.BlockingResponse | void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired when HTTP response headers are received. Can modify response headers or cancel the request. Returns a function to remove the listener. ### onWebRequestResponseStarted ``` onWebRequestResponseStarted( callback: (details: chrome.webRequest.OnResponseStartedDetails) => void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired when the first byte of the response body is received. Returns a function to remove the listener. ### onWebRequestCompleted ``` onWebRequestCompleted( callback: (details: chrome.webRequest.OnCompletedDetails) => void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired when a request is completed successfully. Returns a function to remove the listener. ### onWebRequestErrorOccurred ``` onWebRequestErrorOccurred( callback: (details: chrome.webRequest.OnErrorOccurredDetails) => void, filter: chrome.webRequest.RequestFilter, extraInfoSpec?: string[] ): () => void ``` Adds a listener fired when a request encounters an error and is aborted. Returns a function to remove the listener.