Bug 1267733 P3 Trigger service worker update after failed interception. r=jdm a=ritu
--- a/dom/workers/ServiceWorkerEvents.cpp
+++ b/dom/workers/ServiceWorkerEvents.cpp
@@ -59,18 +59,18 @@ CancelChannelRunnable::CancelChannelRunn
, mStatus(aStatus)
{
}
NS_IMETHODIMP
CancelChannelRunnable::Run()
{
MOZ_ASSERT(NS_IsMainThread());
- nsresult rv = mChannel->Cancel(mStatus);
- NS_ENSURE_SUCCESS(rv, rv);
+ mChannel->Cancel(mStatus);
+ mRegistration->MaybeScheduleUpdate();
return NS_OK;
}
FetchEvent::FetchEvent(EventTarget* aOwner)
: ExtendableEvent(aOwner)
, mPreventDefaultLineNumber(0)
, mPreventDefaultColumnNumber(0)
, mIsReload(false)
--- a/dom/workers/ServiceWorkerPrivate.cpp
+++ b/dom/workers/ServiceWorkerPrivate.cpp
@@ -1257,20 +1257,16 @@ private:
event->ReportCanceled();
} else if (event->WidgetEventPtr()->mFlags.mExceptionHasBeenRisen) {
// Exception logged via the WorkerPrivate ErrorReporter
} else {
runnable = new ResumeRequest(mInterceptedChannel);
}
if (!runnable) {
- nsCOMPtr<nsIRunnable> updateRunnable =
- new RegistrationUpdateRunnable(mRegistration, false /* time check */);
- NS_DispatchToMainThread(runnable.forget());
-
runnable = new CancelChannelRunnable(mInterceptedChannel,
mRegistration,
NS_ERROR_INTERCEPTION_FAILED);
}
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(NS_DispatchToMainThread(runnable)));
}