Chromium MV3扩展webRequest.onAuthRequired处理代理认证失效问题求助
Chromium MV3扩展webRequest.onAuthRequired处理代理认证失效问题求助
各位大佬好,我最近在Linux机器上用Chromium的快照版本,想通过自定义MV3扩展来处理带账号密码认证的代理服务器,但配置了webRequest.onAuthRequired监听器后,Chromium始终没法完成代理认证,完全没起作用,折腾好久没找到问题,来请教下大家!
环境与启动信息
Chromium详情
- 版本:chrome.137.0.7151.55
- 是从官方Linux_x64快照仓库下载的二进制包
- 启动命令(已替换占位符为真实值):
timeout -k 10 1800 /path_to_chrome_binary/chrome --disable-popup-blocking --allow-running-insecure-content --ignore-certificate-errors --no-sandbox --remote-allow-origins=* --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.112 Safari/537.36" --proxy-server='{proxy_host}:{proxy_port}' --user-data-dir={user_data_path} --remote-debugging-port=9732 --load-extension={path_to_extension}
自定义代理认证扩展
因为代理需要账号密码,我专门做了个极简的MV3扩展,文件如下:
manifest.json
{ "manifest_version": 3, "name": "Proxy Authenticator", "version": "1.0", "description": "Handles proxy authentication", "permissions": [ "proxy", "storage", "webRequest", "webRequestAuthProvider", "webRequestBlocking", "scripting" ], "host_permissions": ["<all_urls>"], "background": { "service_worker": "background.js" }, "action": { "default_title": "Proxy Authenticator" } }
background.js
chrome.webRequest.onAuthRequired.addListener( function(details, callback) { console.log(`Auth challenge for: ${details.uri}`); callback({ authCredentials: { username: '{proxy_username}', password: '{proxy_password}' } }); }, { urls: ["<all_urls>"] }, ['asyncBlocking'] );
(注:代码里的账号密码占位符已经替换成真实有效的代理账号)
当前问题
Chromium能正常启动,但就是无法通过代理连接网络,而且background.js里的console.log完全没触发过——我特意打开了扩展的后台service worker控制台查看,根本没有日志输出,感觉监听器根本没被触发,或者认证信息根本没被Chromium应用。
已排查的内容
我已经检查过这些点,都没问题:
- 启动命令里的
--load-extension路径是绝对路径,完全正确,扩展也确实被加载了(能在扩展管理页面看到) - 代理的主机和端口反复核对过,用curl测试过能正常连接并认证
- 代理账号密码是有效的,直接在系统代理设置里手动输入能正常使用
- 确认用的是MV3规范,background用的是service_worker,没有用旧的page格式
想请教下各位,我哪里配置错了吗?或者有没有什么MV3特有的限制我没注意到?比如权限配置、service worker的特性之类的?
内容来源于stack exchange
相关产品推荐
相关产品推荐

