Я создаю расширение Chrome для автоматического заполнения имени пользователя и пароля, и пока оно работает нормально, включая диалог HTTP Basic Auth.
Но есть одна проблема, если я предоставляю неверное имя пользователя и пароль в диалоге HTTP Basic auth, он продолжает отправку и не выдает никакой ошибки.
Manifest.js
{
"name": "All Passwords List",
"version": "0.3",
"description": "Manage all Passwords",
"permissions": [
"contentSettings",
"tabs",
"activeTab",
"http://*/",
"storage",
"webRequest",
"webRequestBlocking",
"debugger",
"<all_urls>"
],
"browser_action": {
"default_icon": "images/icon.png",
"default_popup": "app.html"
},
"manifest_version": 2,
"content_scripts": [
{
"matches": [
"*://*/*"
],
"js": [
"scripts/jquery.js"
]
}],
"background": {
"scripts": [
"scripts/jquery.js",
"scripts/custom.js"
],
"persistent": true
}
}
Custom.js [фоновый скрипт]
chrome.webRequest.onAuthRequired.addListener(retrieveCredentials,
{urls: ["<all_urls>"]},
['asyncBlocking']
);
function retrieveCredentials() {
chrome.storage.local.get(['key'], function(result) {
if (result == ""){
return {
cancel: true
};
}else{
authCredentials: {
return {
username: result.key.username,
password: result.key.password
};
}
}
});
}
chrome.webRequest.onCompleted.addListener( function(details) {
console.log(details)
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"])
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
console.log(details)
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]);
Я не уверен, как я могу остановить эти множественные представления, если введены неправильный пароль и имя пользователя.