ContentBridgeChild.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* This Source Code Form is subject to the terms of the Mozilla Public
  3. * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  4. * You can obtain one at http://mozilla.org/MPL/2.0/. */
  5. #ifndef mozilla_dom_ContentBridgeChild_h
  6. #define mozilla_dom_ContentBridgeChild_h
  7. #include "mozilla/dom/PContentBridgeChild.h"
  8. #include "mozilla/dom/nsIContentChild.h"
  9. namespace mozilla {
  10. namespace dom {
  11. class ContentBridgeChild final : public PContentBridgeChild
  12. , public nsIContentChild
  13. {
  14. public:
  15. explicit ContentBridgeChild(Transport* aTransport);
  16. NS_DECL_ISUPPORTS
  17. static ContentBridgeChild*
  18. Create(Transport* aTransport, ProcessId aOtherProcess);
  19. virtual void ActorDestroy(ActorDestroyReason aWhy) override;
  20. void DeferredDestroy();
  21. virtual bool RecvAsyncMessage(const nsString& aMsg,
  22. InfallibleTArray<jsipc::CpowEntry>&& aCpows,
  23. const IPC::Principal& aPrincipal,
  24. const ClonedMessageData& aData) override;
  25. virtual PBlobChild*
  26. SendPBlobConstructor(PBlobChild* actor,
  27. const BlobConstructorParams& aParams) override;
  28. jsipc::CPOWManager* GetCPOWManager() override;
  29. virtual bool SendPBrowserConstructor(PBrowserChild* aActor,
  30. const TabId& aTabId,
  31. const IPCTabContext& aContext,
  32. const uint32_t& aChromeFlags,
  33. const ContentParentId& aCpID,
  34. const bool& aIsForApp,
  35. const bool& aIsForBrowser) override;
  36. virtual mozilla::ipc::PFileDescriptorSetChild*
  37. SendPFileDescriptorSetConstructor(const mozilla::ipc::FileDescriptor&) override;
  38. virtual mozilla::ipc::PSendStreamChild*
  39. SendPSendStreamConstructor(mozilla::ipc::PSendStreamChild*) override;
  40. FORWARD_SHMEM_ALLOCATOR_TO(PContentBridgeChild)
  41. protected:
  42. virtual ~ContentBridgeChild();
  43. virtual PBrowserChild* AllocPBrowserChild(const TabId& aTabId,
  44. const IPCTabContext& aContext,
  45. const uint32_t& aChromeFlags,
  46. const ContentParentId& aCpID,
  47. const bool& aIsForApp,
  48. const bool& aIsForBrowser) override;
  49. virtual bool DeallocPBrowserChild(PBrowserChild*) override;
  50. virtual bool RecvPBrowserConstructor(PBrowserChild* aCctor,
  51. const TabId& aTabId,
  52. const IPCTabContext& aContext,
  53. const uint32_t& aChromeFlags,
  54. const ContentParentId& aCpID,
  55. const bool& aIsForApp,
  56. const bool& aIsForBrowser) override;
  57. virtual mozilla::jsipc::PJavaScriptChild* AllocPJavaScriptChild() override;
  58. virtual bool DeallocPJavaScriptChild(mozilla::jsipc::PJavaScriptChild*) override;
  59. virtual PBlobChild* AllocPBlobChild(const BlobConstructorParams& aParams) override;
  60. virtual bool DeallocPBlobChild(PBlobChild*) override;
  61. virtual mozilla::ipc::PSendStreamChild* AllocPSendStreamChild() override;
  62. virtual bool
  63. DeallocPSendStreamChild(mozilla::ipc::PSendStreamChild* aActor) override;
  64. virtual PFileDescriptorSetChild*
  65. AllocPFileDescriptorSetChild(const mozilla::ipc::FileDescriptor& aFD) override;
  66. virtual bool
  67. DeallocPFileDescriptorSetChild(mozilla::ipc::PFileDescriptorSetChild* aActor) override;
  68. DISALLOW_EVIL_CONSTRUCTORS(ContentBridgeChild);
  69. protected: // members
  70. RefPtr<ContentBridgeChild> mSelfRef;
  71. Transport* mTransport; // owned
  72. };
  73. } // namespace dom
  74. } // namespace mozilla
  75. #endif // mozilla_dom_ContentBridgeChild_h