blob: 020d8c2f3bd3eec804cfdf40cda23e34c63c913c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "SocketProcessBridgeParent.h"
#include "SocketProcessLogging.h"
#include "mozilla/ipc/BackgroundParent.h"
#include "mozilla/ipc/Endpoint.h"
#include "SocketProcessChild.h"
namespace mozilla {
namespace net {
SocketProcessBridgeParent::SocketProcessBridgeParent(ProcessId aId)
: mId(aId), mClosed(false) {
LOG(
("CONSTRUCT SocketProcessBridgeParent::SocketProcessBridgeParent "
"mId=%" PRIPID "\n",
mId));
MOZ_COUNT_CTOR(SocketProcessBridgeParent);
}
SocketProcessBridgeParent::~SocketProcessBridgeParent() {
LOG(
("DESTRUCT SocketProcessBridgeParent::SocketProcessBridgeParent "
"mId=%" PRIPID "\n",
mId));
MOZ_COUNT_DTOR(SocketProcessBridgeParent);
}
mozilla::ipc::IPCResult SocketProcessBridgeParent::RecvTest() {
LOG(("SocketProcessBridgeParent::RecvTest\n"));
Unused << SendTest();
return IPC_OK();
}
mozilla::ipc::IPCResult SocketProcessBridgeParent::RecvInitBackground(
Endpoint<PBackgroundStarterParent>&& aEndpoint) {
LOG(("SocketProcessBridgeParent::RecvInitBackground mId=%" PRIPID "\n", mId));
if (!ipc::BackgroundParent::AllocStarter(nullptr, std::move(aEndpoint))) {
return IPC_FAIL(this, "BackgroundParent::Alloc failed");
}
return IPC_OK();
}
void SocketProcessBridgeParent::ActorDestroy(ActorDestroyReason aWhy) {
LOG(("SocketProcessBridgeParent::ActorDestroy mId=%" PRIPID "\n", mId));
mClosed = true;
GetCurrentSerialEventTarget()->Dispatch(
NewRunnableMethod("net::SocketProcessBridgeParent::DeferredDestroy", this,
&SocketProcessBridgeParent::DeferredDestroy));
}
void SocketProcessBridgeParent::DeferredDestroy() {
if (SocketProcessChild* child = SocketProcessChild::GetSingleton()) {
child->DestroySocketProcessBridgeParent(mId);
}
}
} // namespace net
} // namespace mozilla
|