Bug 1395022 - Fix MediaRecorder firing unnecessary start event when erroring. r?pehrsons draft
authorBryce Van Dyk <bvandyk@mozilla.com>
Mon, 04 Sep 2017 08:28:01 +1200
changeset 659251 ebeaa8fb22c9e476c7f0eddd517d7a8686dcb44f
parent 659233 973e8b890a62aee4b3170558ac3b608928162ef6
child 659252 533fd33efb53cf1b5b7e9fa9ab2e10b833de0aa7
push id78070
push userbvandyk@mozilla.com
push dateTue, 05 Sep 2017 19:05:16 +0000
reviewerspehrsons
bugs1395022
milestone57.0a1
Bug 1395022 - Fix MediaRecorder firing unnecessary start event when erroring. r?pehrsons MozReview-Commit-ID: 6ULFqlEHaqx
dom/media/MediaRecorder.cpp
--- a/dom/media/MediaRecorder.cpp
+++ b/dom/media/MediaRecorder.cpp
@@ -811,19 +811,20 @@ private:
     // end the session.
     mNeedSessionEndTask = false;
   }
   // application should get blob and onstop event
   void DoSessionEndTask(nsresult rv)
   {
     MOZ_ASSERT(NS_IsMainThread());
     CleanupStreams();
-
-    NS_DispatchToMainThread(
-      new DispatchStartEventRunnable(this, NS_LITERAL_STRING("start")));
+    if (!mIsStartEventFired) {
+      NS_DispatchToMainThread(
+        new DispatchStartEventRunnable(this, NS_LITERAL_STRING("start")));
+    }
 
     if (NS_FAILED(rv)) {
       mRecorder->ForceInactive();
       NS_DispatchToMainThread(
         NewRunnableMethod<nsresult>("dom::MediaRecorder::NotifyError",
                                     mRecorder,
                                     &MediaRecorder::NotifyError,
                                     rv));