Bug 1426492 - Print out memory used by data url for testing with/without xbl draft
authorBrian Grinstead <bgrinstead@mozilla.com>
Fri, 19 Jan 2018 10:09:31 -0800
changeset 722722 0accdd6e64c4cd2876aedb70eb0152bc847b855b
parent 722672 6ffbba9ce0ef9ec77a63445f068f2e218ed4830f
child 722723 07594f17c3192c27b09e84733c1bb3d8bb5222c1
push id96215
push userbgrinstead@mozilla.com
push dateFri, 19 Jan 2018 18:35:46 +0000
bugs1426492
milestone59.0a1
Bug 1426492 - Print out memory used by data url for testing with/without xbl Run via: ./mach run --profile $(mktemp -d) "data:text/html,$(printf '<span></span>'%.0s {1..10})" MozReview-Commit-ID: 2g1m07VUXN
browser/base/content/browser.js
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1550,16 +1550,29 @@ var gBrowserInit = {
 
     SessionStore.promiseAllWindowsRestored.then(() => {
       this._schedulePerWindowIdleTasks();
       document.documentElement.setAttribute("sessionrestored", "true");
     });
 
     Services.obs.notifyObservers(window, "browser-delayed-startup-finished");
     TelemetryTimestamps.add("delayedStartupFinished");
+
+    function printMemoryReport() {
+      var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager);
+      var spanMem = 0;
+      function handleReport(aProcess, aUnsafePath, aKind, aUnits, aAmount, aDescription) {
+        if (aUnsafePath.includes("top(data:text\\html,<span>") && aUnits === 0) {
+          spanMem += aAmount;
+        }
+      }
+      gMgr.minimizeMemoryUsage(() => gMgr.getReports(handleReport, null, () => { dump("\n\n\nTotal bytes:\n" + spanMem + "\n\n\n"); }, null, false))
+    }
+
+    printMemoryReport();
   },
 
   _setInitialFocus() {
     let initiallyFocusedElement = document.commandDispatcher.focusedElement;
 
     let firstBrowserPaintDeferred = {};
     firstBrowserPaintDeferred.promise = new Promise(resolve => {
       firstBrowserPaintDeferred.resolve = resolve;