author | Rob Wood <rwood@mozilla.com> |
Thu, 07 Sep 2017 12:11:19 -0400 | |
changeset 660819 | cdfe8efcba6d48c7f3e324675c80a1e6af29c318 |
parent 660738 | 37b95547f0d27565452136d16b2df2857be840f6 |
child 730381 | 1a3ec9759f1e9e4f682c7a83d22fc54fa23c683f |
push id | 78556 |
push user | rwood@mozilla.com |
push date | Thu, 07 Sep 2017 16:18:09 +0000 |
reviewers | jmaher |
bugs | 1372942 |
milestone | 57.0a1 |
--- a/testing/talos/talos/pageloader/chrome/pageloader.js +++ b/testing/talos/talos/pageloader/chrome/pageloader.js @@ -47,16 +47,18 @@ var useFNBPaint = false; var gPaintWindow = window; var gPaintListener = false; var loadNoCache = false; var scrollTest = false; var gDisableE10S = false; var gUseE10S = false; var profilingInfo = false; +var isIdleCallbackPending = false; + // when TEST_DOES_OWN_TIMING, we need to store the time from the page as MozAfterPaint can be slower than pageload var gTime = -1; var gStartTime = -1; var gReference = -1; var content; // These are binary flags. Use 1/2/4/8/... @@ -262,16 +264,27 @@ function plInit() { gUseE10S = !gDisableE10S || (plPageFlags() & EXECUTE_SCROLL_TEST) || (content.selectedBrowser && content.selectedBrowser.getAttribute("remote") == "true") // Load the frame script for e10s / IPC message support let contentScript = "data:,function _contentLoadHandler(e) { " + " if (e.originalTarget.defaultView == content) { " + " content.wrappedJSObject.tpRecordTime = function(t, s, n) { sendAsyncMessage('PageLoader:RecordTime', { time: t, startTime: s, testName: n }); }; "; + // setup idle-callback + contentScript += "" + + "var idleCallbackHandle; " + + "function _idleCallbackHandler() { " + + " content.window.cancelIdleCallback(idleCallbackHandle); " + + " sendAsyncMessage('PageLoader:IdleCallbackReceived', {}); " + + "}; " + + "function _setIdleCallback() { " + + " idleCallbackHandle = content.window.requestIdleCallback(_idleCallbackHandler); " + + " sendAsyncMessage('PageLoader:IdleCallbackSet', {}); " + + "}; "; if (useFNBPaint) { contentScript += "" + "var gRetryCounter = 0; " + "function _contentFNBPaintHandler() { " + " x = content.window.performance.timing.timeToNonBlankPaint; " + " if (typeof x == 'undefined') { " + " sendAsyncMessage('PageLoader:FNBPaintError', {}); " + " } " + @@ -302,16 +315,17 @@ function plInit() { " sendAsyncMessage('PageLoader:LoadEvent', {}); " + " } " + "}; " + "content.setTimeout(_contentPaintHandler, 0); "; } else { contentScript += " sendAsyncMessage('PageLoader:LoadEvent', {}); "; } contentScript += "" + + " content.setTimeout(_setIdleCallback, 0); " + " }" + "} " + "addEventListener('load', _contentLoadHandler, true); "; content.selectedBrowser.messageManager.loadFrameScript(contentScript, false, true); content.selectedBrowser.messageManager.loadFrameScript("chrome://pageloader/content/talos-content.js", false); content.selectedBrowser.messageManager.loadFrameScript("chrome://pageloader/content/tscroll.js", false, true); content.selectedBrowser.messageManager.loadFrameScript("chrome://pageloader/content/Profiler.js", false, true); @@ -335,16 +349,18 @@ function plPageFlags() { } var ContentListener = { receiveMessage(message) { switch (message.name) { case "PageLoader:LoadEvent": return plLoadHandlerMessage(message); case "PageLoader:FNBPaintError": return plFNBPaintErrorMessage(message); case "PageLoader:RecordTime": return plRecordTimeMessage(message); + case "PageLoader:IdleCallbackSet": return plIdleCallbackSet(); + case "PageLoader:IdleCallbackReceived": return plIdleCallbackReceived(); } return undefined; }, }; // load the current page, start timing var removeLastAddedListener = null; var removeLastAddedMsgListener = null; @@ -364,23 +380,27 @@ function plLoadPage() { removeLastAddedMsgListener(); removeLastAddedMsgListener = null; } // messages to watch for page load let mm = content.selectedBrowser.messageManager; mm.addMessageListener("PageLoader:LoadEvent", ContentListener); mm.addMessageListener("PageLoader:RecordTime", ContentListener); + mm.addMessageListener("PageLoader:IdleCallbackSet", ContentListener); + mm.addMessageListener("PageLoader:IdleCallbackReceived", ContentListener); if (useFNBPaint) { mm.addMessageListener("PageLoader:FNBPaintError", ContentListener); } removeLastAddedMsgListener = function() { mm.removeMessageListener("PageLoader:LoadEvent", ContentListener); mm.removeMessageListener("PageLoader:RecordTime", ContentListener); + mm.removeMessageListener("PageLoader:IdleCallbackSet", ContentListener); + mm.removeMessageListener("PageLoader:IdleCallbackReceived", ContentListener); if (useFNBPaint) { mm.removeMessageListener("PageLoader:FNBPaintError", ContentListener); } }; failTimeout.register(loadFail, timeout); // record which page we are about to open @@ -454,16 +474,22 @@ function loadFail() { // TODO: consider adding a tab and removing the old tab?!? setTimeout(plLoadPage, delay); } } var plNextPage = async function() { var doNextPage = false; + // ensure we've receive idle-callback before proceeding + if (isIdleCallbackPending) { + dumpLine("Waiting for idle-callback"); + await waitForIdleCallback(); + } + if (profilingInfo) { await TalosParentProfiler.finishTest(); } if (pageCycle < numPageCycles) { pageCycle++; doNextPage = true; } else if (pageIndex < pages.length - 1) { @@ -490,16 +516,39 @@ var plNextPage = async function() { } setTimeout(plLoadPage, delay); } else { plStop(false); } }; +function waitForIdleCallback() { + return new Promise(resolve => { + function checkForIdleCallback() { + if (!isIdleCallbackPending) { + resolve(); + } else { + setTimeout(checkForIdleCallback, 5); + } + } + checkForIdleCallback(); + }); +} + +function plIdleCallbackSet() { + if (!scrollTest) { + isIdleCallbackPending = true; + } +} + +function plIdleCallbackReceived() { + isIdleCallbackPending = false; +} + function forceContentGC() { return new Promise((resolve) => { let mm = browserWindow.getBrowser().selectedBrowser.messageManager; mm.addMessageListener("Talos:ForceGC:OK", function onTalosContentForceGC(msg) { mm.removeMessageListener("Talos:ForceGC:OK", onTalosContentForceGC); resolve(); }); mm.sendAsyncMessage("Talos:ForceGC"); @@ -804,16 +853,21 @@ function plStopAll(force) { let mm = content.selectedBrowser.messageManager; mm.removeMessageListener("PageLoader:LoadEvent", ContentListener); mm.removeMessageListener("PageLoader:RecordTime", ContentListener); if (useFNBPaint) { mm.removeMessageListener("PageLoader:FNBPaintError", ContentListener); } + if (isIdleCallbackPending) { + mm.removeMessageListener("PageLoader:IdleCallbackSet", ContentListener); + mm.removeMessageListener("PageLoader:IdleCallbackReceived", ContentListener); + } + mm.loadFrameScript("data:,removeEventListener('load', _contentLoadHandler, true);", false, true); } if (MozillaFileLogger && MozillaFileLogger._foStream) MozillaFileLogger.close(); goQuitApplication(); }
--- a/testing/talos/talos/pageloader/install.rdf +++ b/testing/talos/talos/pageloader/install.rdf @@ -1,15 +1,15 @@ <?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>pageloader@mozilla.org</em:id> - <em:version>1.0.23</em:version> + <em:version>1.0.27</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>44.0</em:minVersion> <em:maxVersion>*</em:maxVersion> </Description> </em:targetApplication> <!-- Front End MetaData -->
index 2507362fc6050c5b59a29e7bbe4dc9b2cfc85702..2c2526e3c9c8b59b88b649908a88a39ef7584b2a GIT binary patch literal 31107 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 Zrw=7raEO0=0OhaO@?SkK!}TAv{|ECBeP93p