Bug 1333289. Part 2 - retrieve debugging data from MediaDecoder/MDSM. r?jya draft
authorJW Wang <jwwang@mozilla.com>
Tue, 24 Jan 2017 10:49:37 +0800
changeset 465930 3109853b14a4aac1d4cb6ad2d2f307c3713b0bee
parent 465929 074da83deb1e89d2e212f00713ac975e2bb24467
child 543287 60b3f58148dc2ee3ba02dcceb0df115f99476dc2
push id42752
push userjwwang@mozilla.com
push dateWed, 25 Jan 2017 01:49:49 +0000
reviewersjya
bugs1333289
milestone54.0a1
Bug 1333289. Part 2 - retrieve debugging data from MediaDecoder/MDSM. r?jya MozReview-Commit-ID: F4AxZFBPVPB
dom/html/HTMLMediaElement.cpp
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -1474,20 +1474,32 @@ HTMLMediaElement::GetMozDebugReaderData(
 already_AddRefed<Promise>
 HTMLMediaElement::MozRequestDebugInfo(ErrorResult& aRv)
 {
   RefPtr<Promise> promise = CreateDOMPromise(aRv);
   if (NS_WARN_IF(aRv.Failed())) {
     return nullptr;
   }
 
-  // TODO: collect data from MDSM which must be done off the main thread.
   nsAutoString result;
   GetMozDebugReaderData(result);
-  promise->MaybeResolve(result);
+
+  if (mDecoder) {
+    mDecoder->RequestDebugInfo()->Then(
+      AbstractThread::MainThread(), __func__,
+      [promise, result] (const nsACString& aString) {
+        promise->MaybeResolve(result + NS_ConvertUTF8toUTF16(aString));
+      },
+      [promise, result] () {
+        promise->MaybeResolve(result);
+      });
+  } else {
+    promise->MaybeResolve(result);
+  }
+
   return promise.forget();
 }
 
 void
 HTMLMediaElement::MozDumpDebugInfo()
 {
   if (mDecoder) {
     mDecoder->DumpDebugInfo();