commit 47df7aa33aa1ea4a72ac029169725609f2f518aa Author: Kathy Brade brade@pearlcrescent.com Date: Tue Jul 18 16:22:32 2017 -0400
Revert "Bug 19273: Avoid JavaScript patching of the external app helper dialog."
This reverts commit 648d842b127e6ca6457d43e45244c65ee1773aa3. --- netwerk/protocol/http/HttpBaseChannel.cpp | 7 --- netwerk/protocol/http/HttpBaseChannel.h | 1 - netwerk/protocol/http/NullHttpChannel.cpp | 6 --- netwerk/protocol/http/nsIHttpChannel.idl | 9 +--- .../protocol/viewsource/nsViewSourceChannel.cpp | 11 ----- .../exthandler/nsExternalHelperAppService.cpp | 57 ---------------------- 6 files changed, 1 insertion(+), 90 deletions(-)
diff --git a/netwerk/protocol/http/HttpBaseChannel.cpp b/netwerk/protocol/http/HttpBaseChannel.cpp index 5ea6a002a40f..e0f7edec05f9 100644 --- a/netwerk/protocol/http/HttpBaseChannel.cpp +++ b/netwerk/protocol/http/HttpBaseChannel.cpp @@ -1233,13 +1233,6 @@ NS_IMETHODIMP HttpBaseChannel::SetTopLevelContentWindowId(uint64_t aWindowId) return NS_OK; }
-NS_IMETHODIMP HttpBaseChannel::IsPendingUnforced(bool *aIsPendingUnforced) -{ - NS_ENSURE_ARG_POINTER(aIsPendingUnforced); - *aIsPendingUnforced = mIsPending; - return NS_OK; -} - NS_IMETHODIMP HttpBaseChannel::GetTransferSize(uint64_t *aTransferSize) { diff --git a/netwerk/protocol/http/HttpBaseChannel.h b/netwerk/protocol/http/HttpBaseChannel.h index 3a1a8ba525b0..c8184a601b9e 100644 --- a/netwerk/protocol/http/HttpBaseChannel.h +++ b/netwerk/protocol/http/HttpBaseChannel.h @@ -190,7 +190,6 @@ public: NS_IMETHOD SetChannelId(const nsACString& aChannelId) override; NS_IMETHOD GetTopLevelContentWindowId(uint64_t *aContentWindowId) override; NS_IMETHOD SetTopLevelContentWindowId(uint64_t aContentWindowId) override; - NS_IMETHOD IsPendingUnforced(bool *aIsPendingUnforced) override;
// nsIHttpChannelInternal NS_IMETHOD GetDocumentURI(nsIURI **aDocumentURI) override; diff --git a/netwerk/protocol/http/NullHttpChannel.cpp b/netwerk/protocol/http/NullHttpChannel.cpp index 8b362cb24233..8c048a6b5a7e 100644 --- a/netwerk/protocol/http/NullHttpChannel.cpp +++ b/netwerk/protocol/http/NullHttpChannel.cpp @@ -82,12 +82,6 @@ NullHttpChannel::SetTopLevelContentWindowId(uint64_t aWindowId) }
NS_IMETHODIMP -NullHttpChannel::IsPendingUnforced(bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP NullHttpChannel::GetTransferSize(uint64_t *aTransferSize) { return NS_ERROR_NOT_IMPLEMENTED; diff --git a/netwerk/protocol/http/nsIHttpChannel.idl b/netwerk/protocol/http/nsIHttpChannel.idl index 0de0676ad156..75ec2c73989a 100644 --- a/netwerk/protocol/http/nsIHttpChannel.idl +++ b/netwerk/protocol/http/nsIHttpChannel.idl @@ -14,7 +14,7 @@ interface nsIHttpHeaderVisitor; * the inspection of the resulting HTTP response status and headers when they * become available. */ -[builtinclass, scriptable, uuid(e0d8071b-5389-48c2-92c7-6708c968044d)] +[builtinclass, scriptable, uuid(c5a4a073-4539-49c7-a3f2-cec3f0619c6c)] interface nsIHttpChannel : nsIChannel { /************************************************************************** @@ -469,11 +469,4 @@ interface nsIHttpChannel : nsIChannel * this channels is being load in. */ attribute uint64_t topLevelContentWindowId; - - /** - * Returns true if a request is pending due to "natural" causes and - * not just because ForcePending() has been called. See isPending() - * in nsIRequest.idl for more details about pending requests. - */ - boolean isPendingUnforced(); }; diff --git a/netwerk/protocol/viewsource/nsViewSourceChannel.cpp b/netwerk/protocol/viewsource/nsViewSourceChannel.cpp index 9f9b89438fba..9ed71c4ef001 100644 --- a/netwerk/protocol/viewsource/nsViewSourceChannel.cpp +++ b/netwerk/protocol/viewsource/nsViewSourceChannel.cpp @@ -740,17 +740,6 @@ nsViewSourceChannel::SetTopLevelContentWindowId(uint64_t aWindowId) }
NS_IMETHODIMP -nsViewSourceChannel::IsPendingUnforced(bool *result) -{ - if (mHttpChannel) { - return mHttpChannel->IsPendingUnforced(result); - } - - NS_ENSURE_TRUE(mChannel, NS_ERROR_FAILURE); - return mChannel->IsPending(result); -} - -NS_IMETHODIMP nsViewSourceChannel::GetRequestMethod(nsACString & aRequestMethod) { return !mHttpChannel ? NS_ERROR_NULL_POINTER : diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp index 4a7fd7f92f15..51a7ee0f6ab6 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -41,7 +41,6 @@ #include "nsThreadUtils.h" #include "nsAutoPtr.h" #include "nsIMutableArray.h" -#include "nsISupportsPrimitives.h" // for nsISupportsPRBool
// used to access our datastore of user-configured helper applications #include "nsIHandlerService.h" @@ -106,7 +105,6 @@
#include "mozilla/Preferences.h" #include "mozilla/ipc/URIUtils.h" -#include "mozilla/Unused.h"
using namespace mozilla; using namespace mozilla::ipc; @@ -436,22 +434,6 @@ static nsresult GetDownloadDirectory(nsIFile **_directory, return NS_OK; }
-static nsresult shouldCancel(bool *aShouldCancel) -{ - NS_ENSURE_ARG_POINTER(aShouldCancel); - - nsCOMPtr<nsISupportsPRBool> cancelObj = - do_CreateInstance(NS_SUPPORTS_PRBOOL_CONTRACTID); - cancelObj->SetData(false); - nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); - if (!obs) - return NS_ERROR_FAILURE; - - obs->NotifyObservers(cancelObj, "external-app-requested", nullptr); - cancelObj->GetData(aShouldCancel); - return NS_OK; -} - /** * Structure for storing extension->type mappings. * @see defaultMimeEntries @@ -1028,14 +1010,6 @@ nsExternalHelperAppService::LoadURI(nsIURI *aURI, return NS_OK; // explicitly denied }
- // Give other modules, including extensions, a chance to cancel. - bool doCancel = false; - rv = shouldCancel(&doCancel); - NS_ENSURE_SUCCESS(rv, rv); - if (doCancel) { - return NS_OK; - } - nsCOMPtr<nsIHandlerInfo> handler; rv = GetProtocolHandlerInfo(scheme, getter_AddRefs(handler)); NS_ENSURE_SUCCESS(rv, rv); @@ -1669,37 +1643,6 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest *request, nsISuppo return NS_OK; }
- // Give other modules, including extensions, a chance to cancel. - // To avoid a problem where OnDataAvailable fires but is not handled - // correctly while a modal dialog displayed by Torbutton is open, we - // suspend and then we either cancel or resume active requests. - // See bugs 21766 and 21886. - bool isPending = false; - nsCOMPtr<nsIHttpChannel> httpChan = do_QueryInterface(request); - if (httpChan) { - rv = httpChan->IsPendingUnforced(&isPending); - } else { - rv = request->IsPending(&isPending); - } - NS_ENSURE_SUCCESS(rv, rv); - - if (isPending) { - Unused << request->Suspend(); // Best effort: ignore failures. - } - - bool doCancel = false; - rv = shouldCancel(&doCancel); - NS_ENSURE_SUCCESS(rv, rv); - if (doCancel) { - mCanceled = true; - request->Cancel(NS_BINDING_ABORTED); - return NS_OK; - } - - if (isPending) { - Unused << request->Resume(); // Best effort: ignore failures. - } - rv = SetUpTempFile(aChannel); if (NS_FAILED(rv)) { nsresult transferError = rv;