Bug 1401366. P2 - bail out Observe() if not subcribed per comment 2. draft
authorJW Wang <jwwang@mozilla.com>
Wed, 20 Sep 2017 17:51:10 +0800
changeset 667579 b180b91b64147156466fae532a314596c4241fd2
parent 667578 832c2d186fcc170f6c62f546aff405edd04849c4
child 732431 4ae8306f5e708459fa108b7a1073a3929e3f1089
push id80763
push userjwwang@mozilla.com
push dateWed, 20 Sep 2017 09:56:07 +0000
bugs1401366
milestone57.0a1
Bug 1401366. P2 - bail out Observe() if not subcribed per comment 2. MozReview-Commit-ID: 4LEBD3g0OwX
dom/html/HTMLMediaElement.cpp
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -3768,17 +3768,21 @@ class HTMLMediaElement::ShutdownObserver
     Unsubscribed
   };
 
 public:
   NS_DECL_ISUPPORTS
 
   NS_IMETHOD Observe(nsISupports*, const char* aTopic, const char16_t*) override
   {
-    MOZ_DIAGNOSTIC_ASSERT(mPhase == Phase::Subscribed);
+    if (mPhase != Phase::Subscribed) {
+      // Bail out if we are not subscribed for this might be called even after
+      // |nsContentUtils::UnregisterShutdownObserver(this)|.
+      return NS_OK;
+    }
     MOZ_DIAGNOSTIC_ASSERT(mWeak);
     if (strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID) == 0) {
       mWeak->NotifyShutdownEvent();
     }
     return NS_OK;
   }
   void Subscribe(HTMLMediaElement* aPtr)
   {