Bug 1325158: Part 1 - Don't return error result from OnRedirectVerifyCallback. r=ehsan draft
authorKris Maglione <maglione.k@gmail.com>
Sat, 24 Dec 2016 18:24:41 -0800
changeset 454927 447f2e11e9e3f59f984de56689681780d85b7bd3
parent 454701 a8ffca5ca37e912b2c3943bf37072425dbeb79b7
child 454928 1ad1f43b7da1bb0be3b04814347396fc29fbb4f6
push id40082
push usermaglione.k@gmail.com
push dateFri, 30 Dec 2016 19:18:45 +0000
reviewersehsan
bugs1325158
milestone53.0a1
Bug 1325158: Part 1 - Don't return error result from OnRedirectVerifyCallback. r=ehsan MozReview-Commit-ID: Hb3I0U8kxdz
dom/xhr/XMLHttpRequestMainThread.cpp
--- a/dom/xhr/XMLHttpRequestMainThread.cpp
+++ b/dom/xhr/XMLHttpRequestMainThread.cpp
@@ -3376,17 +3376,20 @@ XMLHttpRequestMainThread::OnRedirectVeri
     mErrorLoad = true;
   }
 
   mNewRedirectChannel = nullptr;
 
   mRedirectCallback->OnRedirectVerifyCallback(result);
   mRedirectCallback = nullptr;
 
-  return result;
+  // It's important that we return success here. If we return the result code
+  // that we were passed, JavaScript callers who cancel the redirect will wind
+  // up throwing an exception in the process.
+  return NS_OK;
 }
 
 /////////////////////////////////////////////////////
 // nsIProgressEventSink methods:
 //
 
 NS_IMETHODIMP
 XMLHttpRequestMainThread::OnProgress(nsIRequest *aRequest, nsISupports *aContext, int64_t aProgress, int64_t aProgressMax)