2016-05-13 11 views
1

Ich arbeite an einem Projekt, bei dem ich mich auf einer BasicAuth-Website anmelden muss. Ich stoße auf das Dokument webRequest und stelle fest, dass es drei verschiedene onAuthRequiredOptions gibt: nämlich "responseHeaders", "blocking", "asyncBlocking".Was ist der Unterschied zwischen "responseHeaders", "blocking", "asyncBlocking" in onAuthRequiredOptions?

Ich habe sie versucht, und das einzige, was ich gefunden habe ist, dass mit „asyncBlocking“, wird Chrome lassen die Erweiterung eine Chance hat, einen Rückruf zu schießen, die die BasicAuth authentifizieren kann, die Request-Header ändern, usw.

Aber mit "responseHeaders", "blocking", scheint ihr Verhalten identisch zu sein, sie beide haben keinen Rückruf, aber dann konnte ich die anderen Unterschiede nicht herausfinden.

Ich glaube, dass es einen Grund gibt, in drei Werte zu trennen. Also würde ich gerne wissen, was ist die Philosophie hinter ihnen?

Vielen Dank.

Antwort

3

Die Berechtigung responseHeaders wird zum Auffüllen der optionalen Eigenschaft details verwendet und ist in einer Reihe von Methoden verfügbar. Ohne diese Berechtigung sind die empfangenen Header für den Handler webRequest nicht verfügbar. Wie für blocking und asyncBlocking sind sie gleich, außer einer ist synchron und der andere ist nicht. asyncBlocking können Sie einen Rückruf angeben, wie in Ihrem Beispiel, während blocking ein return im Handler selbst erwartet etwa so:

chrome.webRequest.onAuthRequired.addListener(function(details) { 
    return {authCredentials: {username: "login", password: "login"}}; 
}, 
{urls: ['<all_urls>']},['blocking']);