diff options
Diffstat (limited to 'dom/media/gmp/GMPProcessChild.h')
-rw-r--r-- | dom/media/gmp/GMPProcessChild.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/dom/media/gmp/GMPProcessChild.h b/dom/media/gmp/GMPProcessChild.h new file mode 100644 index 000000000..1a8df7653 --- /dev/null +++ b/dom/media/gmp/GMPProcessChild.h @@ -0,0 +1,43 @@ +/* -*- 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/. */ + +#ifndef GMPProcessChild_h_ +#define GMPProcessChild_h_ + +#include "mozilla/ipc/ProcessChild.h" +#include "GMPChild.h" + +namespace mozilla { +namespace gmp { + +class GMPLoader; + +class GMPProcessChild final : public mozilla::ipc::ProcessChild { +protected: + typedef mozilla::ipc::ProcessChild ProcessChild; + +public: + explicit GMPProcessChild(ProcessId aParentPid); + ~GMPProcessChild(); + + bool Init() override; + void CleanUp() override; + + // Set/get the GMPLoader singleton for this child process. + // Note: The GMPLoader is not deleted by this object, the caller of + // SetGMPLoader() must manage the GMPLoader's lifecycle. + static void SetGMPLoader(GMPLoader* aHost); + static GMPLoader* GetGMPLoader(); + +private: + GMPChild mPlugin; + static GMPLoader* mLoader; + DISALLOW_COPY_AND_ASSIGN(GMPProcessChild); +}; + +} // namespace gmp +} // namespace mozilla + +#endif // GMPProcessChild_h_ |