53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
/* 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 "RemoteWorkerNonLifeCycleOpControllerParent.h"
|
|
#include "mozilla/dom/RemoteWorkerController.h"
|
|
|
|
namespace mozilla::dom {
|
|
|
|
RemoteWorkerNonLifeCycleOpControllerParent::
|
|
RemoteWorkerNonLifeCycleOpControllerParent(
|
|
RemoteWorkerController* aController)
|
|
: mController(aController) {
|
|
MOZ_ASSERT(mController);
|
|
}
|
|
|
|
RemoteWorkerNonLifeCycleOpControllerParent::
|
|
~RemoteWorkerNonLifeCycleOpControllerParent() = default;
|
|
|
|
void RemoteWorkerNonLifeCycleOpControllerParent::Shutdown() {
|
|
if (CanSend()) {
|
|
Unused << SendShutdown();
|
|
}
|
|
if (mController) {
|
|
mController = nullptr;
|
|
}
|
|
if (GetIPCChannel()) {
|
|
GetIPCChannel()->Close();
|
|
}
|
|
}
|
|
|
|
IPCResult RemoteWorkerNonLifeCycleOpControllerParent::RecvTerminated() {
|
|
// mController could be nullptr when the controller had already shutted down.
|
|
if (mController) {
|
|
mController->mNonLifeCycleOpController = nullptr;
|
|
mController = nullptr;
|
|
}
|
|
|
|
if (GetIPCChannel()) {
|
|
GetIPCChannel()->Close();
|
|
}
|
|
|
|
return IPC_OK();
|
|
}
|
|
|
|
IPCResult RemoteWorkerNonLifeCycleOpControllerParent::RecvError(
|
|
const ErrorValue& aError) {
|
|
MOZ_ASSERT(mController);
|
|
mController->ErrorPropagation(aError);
|
|
return IPC_OK();
|
|
}
|
|
|
|
} // namespace mozilla::dom
|