gecko-dev/dom/serviceworkers/ServiceWorkerUpdaterChild.cpp
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00

67 lines
1.8 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "ServiceWorkerUpdaterChild.h"
#include "nsThreadUtils.h"
namespace mozilla {
namespace dom {
ServiceWorkerUpdaterChild::ServiceWorkerUpdaterChild(
GenericPromise* aPromise, CancelableRunnable* aSuccessRunnable,
CancelableRunnable* aFailureRunnable)
: mSuccessRunnable(aSuccessRunnable), mFailureRunnable(aFailureRunnable) {
// TODO: remove the main thread restriction after fixing bug 1364821.
MOZ_ASSERT(NS_IsMainThread());
MOZ_DIAGNOSTIC_ASSERT(!ServiceWorkerParentInterceptEnabled());
MOZ_ASSERT(aPromise);
MOZ_ASSERT(aSuccessRunnable);
MOZ_ASSERT(aFailureRunnable);
aPromise
->Then(GetMainThreadSerialEventTarget(), __func__,
[this]() {
mPromiseHolder.Complete();
Unused << Send__delete__(this);
})
.Track(mPromiseHolder);
}
mozilla::ipc::IPCResult ServiceWorkerUpdaterChild::RecvProceed(
const bool& aAllowed) {
// If we have a callback, it will resolve the promise.
if (aAllowed) {
mSuccessRunnable->Run();
mFailureRunnable->Cancel();
} else {
mFailureRunnable->Run();
mSuccessRunnable->Cancel();
}
mSuccessRunnable = nullptr;
mFailureRunnable = nullptr;
return IPC_OK();
}
void ServiceWorkerUpdaterChild::ActorDestroy(ActorDestroyReason aWhy) {
if (mSuccessRunnable) {
mSuccessRunnable->Cancel();
}
if (mFailureRunnable) {
mFailureRunnable->Cancel();
}
mPromiseHolder.DisconnectIfExists();
}
} // namespace dom
} // namespace mozilla