Bug 1401366. P1 - format HTMLMediaElement::ShutdownObserver. r=kaku

MozReview-Commit-ID: K9ZYTedgUjC
This commit is contained in:
JW Wang
2017-09-20 17:46:34 +08:00
parent 0c6d7f7df8
commit 7cbc898888

View File

@@ -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);
}