javascriptgoogle-chrome-extensionwebrequest

chrome.webRequest.onAuthRequired Listener


i'm trying to intercept the proxy authorization inside a chrome extension. Following the answer to here: Domain Authorization in Chrome Extension and reading the docs here my code looks like this:

chrome.webRequest.onAuthRequired.addListener(
    function(details, callbackFn) {
        console.log("onAuthRequired!", details, callbackFn);
        //callback({
        //    authCredentials: {username: "1", password: "__TestUse"}
        //});
    },
    {urls: ["<all_urls>"]}
);

The problem is that callbackFn is undefined but should be a function.

Anyone got some ideas why callbackFn is undefined. As I read the docs I'm doing it right ..


Solution

  • The code works, I just forgot to add another parameter ['asyncBlocking']. This code works just fine:

    chrome.webRequest.onAuthRequired.addListener(
        function(details, callbackFn) {
            console.log("onAuthRequired!", details, callbackFn);
            callbackFn({
                authCredentials: {username: "1", password: "__TestUser"}
            });
        },
        {urls: ["<all_urls>"]},
        ['asyncBlocking']
    );
    

    Note that you need the webRequest and webRequestAuthProvider permissions for Manifest V3 (available as of Chrome 108): https://developer.chrome.com/docs/extensions/reference/webRequest/#event-onAuthRequired