Bug 1318506 - Label MessagePort runnables by DocGroup (r?bkelly) draft
authorBill McCloskey <billm@mozilla.com>
Sun, 13 Nov 2016 10:22:40 -0800
changeset 440696 e043e1f8997c15bb4793cb48c2e4236623f51833
parent 440695 d3226ea42a55a13c550e6253b9032b7b401f700b
child 440697 9c9baf7457f047f7096e84e2afce600ff6d20a86
push id36297
push userbmo:wmccloskey@mozilla.com
push dateFri, 18 Nov 2016 00:53:48 +0000
reviewersbkelly
bugs1318506
milestone53.0a1
Bug 1318506 - Label MessagePort runnables by DocGroup (r?bkelly) MozReview-Commit-ID: 8uhgm7ivVSh
dom/messagechannel/MessagePort.cpp
--- a/dom/messagechannel/MessagePort.cpp
+++ b/dom/messagechannel/MessagePort.cpp
@@ -559,16 +559,23 @@ MessagePort::Dispatch()
       break;
   }
 
   RefPtr<SharedMessagePortMessage> data = mMessages.ElementAt(0);
   mMessages.RemoveElementAt(0);
 
   mPostMessageRunnable = new PostMessageRunnable(this, data);
 
+  if (NS_IsMainThread()) {
+    if (nsCOMPtr<nsIGlobalObject> global = GetOwnerGlobal()) {
+      MOZ_ALWAYS_SUCCEEDS(global->Dispatch("MessagePortMessage", TaskCategory::Other, do_AddRef(mPostMessageRunnable)));
+      return;
+    }
+  }
+
   MOZ_ALWAYS_SUCCEEDS(NS_DispatchToCurrentThread(mPostMessageRunnable));
 }
 
 void
 MessagePort::Close()
 {
   CloseInternal(true /* aSoftly */);
 }