gecko-dev/dom/media/BackgroundVideoDecodingPermissionObserver.h
Chris Pearce 4d4bf4593d Bug 1423372 - Move MediaDecoder::BackgroundVideoDecodingPermissionObserver to its own file. r=jwwang
This class contains a bunch of Gecko DOM specific stuff, and it would make
keeping the copy of MediaDecoder in Servo up to date easier if the Gecko
DOM stuff wasn't in MediaDecoder (and the other classes we import).

MozReview-Commit-ID: 3dP1nrQ7sT3

--HG--
extra : rebase_source : 79040a8d3cff6ac946b20a99d68e57630ec60848
2017-12-06 11:22:36 +13:00

49 lines
1.4 KiB
C++

/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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/. */
#if !defined(BackgroundVideoDecodingPermissionObserver_h_)
#define BackgroundVideoDecodingPermissionObserver_h_
#include "nsIObserver.h"
#include "nsISupportsImpl.h"
class nsIDocument;
class nsISupports;
class nsPIDOMWindowOuter;
namespace mozilla {
class MediaDecoder;
class BackgroundVideoDecodingPermissionObserver final
: public nsIObserver
{
public:
NS_DECL_ISUPPORTS
explicit BackgroundVideoDecodingPermissionObserver(MediaDecoder* aDecoder);
NS_IMETHOD Observe(nsISupports* aSubject, const char* aTopic,
const char16_t* aData) override;
void RegisterEvent();
void UnregisterEvent();
private:
~BackgroundVideoDecodingPermissionObserver();
void EnableEvent() const;
void DisableEvent() const;
already_AddRefed<nsPIDOMWindowOuter> GetOwnerWindow() const;
nsIDocument* GetOwnerDoc() const;
bool IsValidEventSender(nsISupports* aSubject) const;
// The life cycle of observer would always be shorter than decoder, so we
// use raw pointer here.
MediaDecoder* mDecoder;
bool mIsRegisteredForEvent;
};
} // namespace mozilla
#endif // BackgroundVideoDecodingPermissionObserver_h_