Bug 1411646 prevent oauth redirect requests from happening, r=rpl

MozReview-Commit-ID: L8ekyXDeCbp
This commit is contained in:
Shane Caraveo
2017-11-09 15:11:13 -08:00
parent 5738a90de9
commit a325bb6ea2
2 changed files with 21 additions and 12 deletions

View File

@@ -63,26 +63,25 @@ const openOAuthWindow = (details, redirectURI) => {
// If the user just closes the window we need to reject
function unloadlistener() {
window.removeEventListener("unload", unloadlistener);
window.gBrowser.removeTabsProgressListener(wpl);
window.gBrowser.removeProgressListener(wpl);
reject({message: "User cancelled or denied access."});
}
wpl = {
onLocationChange(browser, webProgress, request, locationURI) {
if (locationURI.spec.startsWith(redirectURI)) {
resolve(locationURI.spec);
onStateChange(progress, request, flags, status) {
if (request instanceof Ci.nsIHttpChannel &&
request.URI.spec.startsWith(redirectURI)) {
request.cancel(Components.results.NS_BINDING_ABORTED);
window.removeEventListener("unload", unloadlistener);
window.gBrowser.removeTabsProgressListener(wpl);
window.gBrowser.removeProgressListener(wpl);
window.close();
resolve(request.URI.spec);
}
},
onProgressChange() {},
onStatusChange() {},
onSecurityChange() {},
};
promiseDocumentLoaded(window.document).then(() => {
window.gBrowser.addTabsProgressListener(wpl);
window.gBrowser.addProgressListener(wpl);
window.addEventListener("unload", unloadlistener);
});
});