Bug 1411322 - Call nsIMemoryReporterManager::EndReport after reporting. r?SingingTree draft
authorAndreas Pehrson <pehrsons@mozilla.com>
Fri, 10 Nov 2017 11:59:43 +0100
changeset 696537 a8f30f3e2f2712412289d5dd797f055ce9aa69eb
parent 696536 683ed14128b9194c24cfd81c1785170e92fe9109
child 739887 a7d114a61af854f82353d541644bff4bdb3f83b8
push id88745
push userbmo:apehrson@mozilla.com
push dateFri, 10 Nov 2017 20:53:59 +0000
reviewersSingingTree
bugs1411322
milestone58.0a1
Bug 1411322 - Call nsIMemoryReporterManager::EndReport after reporting. r?SingingTree This is required now that the reporter is async. MozReview-Commit-ID: djvw9v7kuj
dom/media/MediaRecorder.cpp
--- a/dom/media/MediaRecorder.cpp
+++ b/dom/media/MediaRecorder.cpp
@@ -99,26 +99,34 @@ public:
       promises.AppendElement(recorder->SizeOfExcludingThis(MallocSizeOf));
     }
 
     nsCOMPtr<nsIHandleReportCallback> handleReport = aHandleReport;
     nsCOMPtr<nsISupports> data = aData;
     MediaRecorder::SizeOfPromise::All(GetCurrentThreadSerialEventTarget(), promises)
       ->Then(GetCurrentThreadSerialEventTarget(), __func__,
           [handleReport, data](const nsTArray<size_t>& sizes) {
+            nsCOMPtr<nsIMemoryReporterManager> manager =
+              do_GetService("@mozilla.org/memory-reporter-manager;1");
+            if (!manager) {
+              return;
+            }
+
             size_t sum = 0;
             for (const size_t& size : sizes) {
               sum += size;
             }
 
             handleReport->Callback(
               EmptyCString(), NS_LITERAL_CSTRING("explicit/media/recorder"),
               KIND_HEAP, UNITS_BYTES, sum,
               NS_LITERAL_CSTRING("Memory used by media recorder."),
               data);
+
+            manager->EndReport();
           },
           [](size_t) { MOZ_CRASH("Unexpected reject"); });
 
     return NS_OK;
   }
 
 private:
   MOZ_DEFINE_MALLOC_SIZE_OF(MallocSizeOf)