Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef mozilla_dom_ContentBridgeChild_h
8 : #define mozilla_dom_ContentBridgeChild_h
9 :
10 : #include "mozilla/dom/PContentBridgeChild.h"
11 : #include "mozilla/dom/nsIContentChild.h"
12 :
13 : namespace mozilla {
14 : namespace dom {
15 :
16 : class ContentBridgeChild final : public PContentBridgeChild
17 : , public nsIContentChild
18 : {
19 : public:
20 : explicit ContentBridgeChild();
21 :
22 : NS_DECL_ISUPPORTS
23 :
24 : static void
25 : Create(Endpoint<PContentBridgeChild>&& aEndpoint);
26 :
27 : virtual void ActorDestroy(ActorDestroyReason aWhy) override;
28 : void DeferredDestroy();
29 :
30 : virtual mozilla::ipc::IPCResult RecvAsyncMessage(const nsString& aMsg,
31 : InfallibleTArray<jsipc::CpowEntry>&& aCpows,
32 : const IPC::Principal& aPrincipal,
33 : const ClonedMessageData& aData) override;
34 :
35 : jsipc::CPOWManager* GetCPOWManager() override;
36 :
37 : virtual bool SendPBrowserConstructor(PBrowserChild* aActor,
38 : const TabId& aTabId,
39 : const TabId& aSameTabGroupAs,
40 : const IPCTabContext& aContext,
41 : const uint32_t& aChromeFlags,
42 : const ContentParentId& aCpID,
43 : const bool& aIsForBrowser) override;
44 :
45 : virtual mozilla::ipc::PFileDescriptorSetChild*
46 : SendPFileDescriptorSetConstructor(const mozilla::ipc::FileDescriptor&) override;
47 :
48 : virtual mozilla::ipc::PChildToParentStreamChild*
49 : SendPChildToParentStreamConstructor(mozilla::ipc::PChildToParentStreamChild*) override;
50 :
51 : virtual mozilla::ipc::IPCResult RecvActivate(PBrowserChild* aTab) override;
52 :
53 : virtual mozilla::ipc::IPCResult RecvDeactivate(PBrowserChild* aTab) override;
54 :
55 : virtual mozilla::ipc::IPCResult RecvParentActivated(PBrowserChild* aTab,
56 : const bool& aActivated) override;
57 :
58 : virtual already_AddRefed<nsIEventTarget> GetEventTargetFor(TabChild* aTabChild) override;
59 :
60 0 : FORWARD_SHMEM_ALLOCATOR_TO(PContentBridgeChild)
61 :
62 : protected:
63 : virtual ~ContentBridgeChild();
64 :
65 : virtual PBrowserChild* AllocPBrowserChild(const TabId& aTabId,
66 : const TabId& aSameTabGroupAs,
67 : const IPCTabContext& aContext,
68 : const uint32_t& aChromeFlags,
69 : const ContentParentId& aCpID,
70 : const bool& aIsForBrowser) override;
71 : virtual bool DeallocPBrowserChild(PBrowserChild*) override;
72 : virtual mozilla::ipc::IPCResult RecvPBrowserConstructor(PBrowserChild* aCctor,
73 : const TabId& aTabId,
74 : const TabId& aSameTabGroupAs,
75 : const IPCTabContext& aContext,
76 : const uint32_t& aChromeFlags,
77 : const ContentParentId& aCpID,
78 : const bool& aIsForBrowser) override;
79 :
80 : virtual mozilla::jsipc::PJavaScriptChild* AllocPJavaScriptChild() override;
81 : virtual bool DeallocPJavaScriptChild(mozilla::jsipc::PJavaScriptChild*) override;
82 :
83 : virtual PIPCBlobInputStreamChild*
84 : AllocPIPCBlobInputStreamChild(const nsID& aID,
85 : const uint64_t& aSize) override;
86 :
87 : virtual bool
88 : DeallocPIPCBlobInputStreamChild(PIPCBlobInputStreamChild*) override;
89 :
90 : virtual mozilla::ipc::PChildToParentStreamChild*
91 : AllocPChildToParentStreamChild() override;
92 :
93 : virtual bool
94 : DeallocPChildToParentStreamChild(mozilla::ipc::PChildToParentStreamChild* aActor) override;
95 :
96 : virtual PParentToChildStreamChild* AllocPParentToChildStreamChild() override;
97 :
98 : virtual bool
99 : DeallocPParentToChildStreamChild(PParentToChildStreamChild* aActor) override;
100 :
101 : virtual PFileDescriptorSetChild*
102 : AllocPFileDescriptorSetChild(const mozilla::ipc::FileDescriptor& aFD) override;
103 :
104 : virtual bool
105 : DeallocPFileDescriptorSetChild(mozilla::ipc::PFileDescriptorSetChild* aActor) override;
106 :
107 : DISALLOW_EVIL_CONSTRUCTORS(ContentBridgeChild);
108 :
109 : private:
110 : virtual already_AddRefed<nsIEventTarget>
111 : GetConstructedEventTarget(const Message& aMsg) override;
112 :
113 : protected: // members
114 : RefPtr<ContentBridgeChild> mSelfRef;
115 : };
116 :
117 : } // namespace dom
118 : } // namespace mozilla
119 :
120 : #endif // mozilla_dom_ContentBridgeChild_h
|