Bug 1401366. P1 - format HTMLMediaElement::ShutdownObserver. r=kaku
MozReview-Commit-ID: K9ZYTedgUjC
This commit is contained in:
@@ -3759,16 +3759,20 @@ HTMLMediaElement::LookupMediaElementURITable(nsIURI* aURI)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
class HTMLMediaElement::ShutdownObserver : public nsIObserver {
|
||||
enum class Phase : int8_t {
|
||||
class HTMLMediaElement::ShutdownObserver : public nsIObserver
|
||||
{
|
||||
enum class Phase : int8_t
|
||||
{
|
||||
Init,
|
||||
Subscribed,
|
||||
Unsubscribed
|
||||
};
|
||||
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD Observe(nsISupports*, const char* aTopic, const char16_t*) override {
|
||||
NS_IMETHOD Observe(nsISupports*, const char* aTopic, const char16_t*) override
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(mPhase == Phase::Subscribed);
|
||||
MOZ_DIAGNOSTIC_ASSERT(mWeak);
|
||||
if (strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID) == 0) {
|
||||
@@ -3776,28 +3780,28 @@ public:
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
void Subscribe(HTMLMediaElement* aPtr) {
|
||||
void Subscribe(HTMLMediaElement* aPtr)
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(mPhase == Phase::Init);
|
||||
MOZ_DIAGNOSTIC_ASSERT(!mWeak);
|
||||
mWeak = aPtr;
|
||||
nsContentUtils::RegisterShutdownObserver(this);
|
||||
mPhase = Phase::Subscribed;
|
||||
}
|
||||
void Unsubscribe() {
|
||||
void Unsubscribe()
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(mPhase == Phase::Subscribed);
|
||||
MOZ_DIAGNOSTIC_ASSERT(mWeak);
|
||||
mWeak = nullptr;
|
||||
nsContentUtils::UnregisterShutdownObserver(this);
|
||||
mPhase = Phase::Unsubscribed;
|
||||
}
|
||||
void AddRefMediaElement() {
|
||||
mWeak->AddRef();
|
||||
}
|
||||
void ReleaseMediaElement() {
|
||||
mWeak->Release();
|
||||
}
|
||||
void AddRefMediaElement() { mWeak->AddRef(); }
|
||||
void ReleaseMediaElement() { mWeak->Release(); }
|
||||
|
||||
private:
|
||||
virtual ~ShutdownObserver() {
|
||||
virtual ~ShutdownObserver()
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(mPhase == Phase::Unsubscribed);
|
||||
MOZ_DIAGNOSTIC_ASSERT(!mWeak);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user