Bug 1380377 part 1 - Calculate FX_NEW_WINDOW_MS using MozAfterPaint. r=florian

MozReview-Commit-ID: KQ6aSkw423P

--HG--
extra : rebase_source : 167d55bfb7eba3fa4a3c1089132770aa595b364e
This commit is contained in:
Edouard Oger 2017-08-29 16:14:18 -04:00
parent 1a84bdf7ed
commit fa087214bb

View File

@ -4162,28 +4162,6 @@ function OpenBrowserWindow(options) {
var telemetryObj = {};
TelemetryStopwatch.start("FX_NEW_WINDOW_MS", telemetryObj);
function newDocumentShown(doc, topic, data) {
if (topic == "document-shown" &&
doc != document &&
doc.defaultView == win) {
Services.obs.removeObserver(newDocumentShown, "document-shown");
Services.obs.removeObserver(windowClosed, "domwindowclosed");
TelemetryStopwatch.finish("FX_NEW_WINDOW_MS", telemetryObj);
}
}
function windowClosed(subject) {
if (subject == win) {
Services.obs.removeObserver(newDocumentShown, "document-shown");
Services.obs.removeObserver(windowClosed, "domwindowclosed");
}
}
// Make sure to remove the 'document-shown' observer in case the window
// is being closed right after it was opened to avoid leaking.
Services.obs.addObserver(newDocumentShown, "document-shown");
Services.obs.addObserver(windowClosed, "domwindowclosed");
var handler = Components.classes["@mozilla.org/browser/clh;1"]
.getService(Components.interfaces.nsIBrowserHandler);
var defaultArgs = handler.defaultArgs;
@ -4228,6 +4206,10 @@ function OpenBrowserWindow(options) {
win = window.openDialog("chrome://browser/content/", "_blank", "chrome,all,dialog=no" + extraFeatures, defaultArgs);
}
win.addEventListener("MozAfterPaint", () => {
TelemetryStopwatch.finish("FX_NEW_WINDOW_MS", telemetryObj);
}, {once: true});
return win;
}