diff --git a/public/app/core/profiler.ts b/public/app/core/profiler.ts index 08e5ea457ab..6505cd0405f 100644 --- a/public/app/core/profiler.ts +++ b/public/app/core/profiler.ts @@ -99,7 +99,9 @@ export class Profiler { } renderingCompleted(panelId, panelTimings) { - this.panelsRendered++; + // add render counter to root scope + // used by phantomjs render.js to know when panel has rendered + this.$rootScope.panelsRendered = this.panelsRendered++; if (this.enabled) { panelTimings.renderEnd = new Date().getTime(); diff --git a/vendor/phantomjs/render.js b/vendor/phantomjs/render.js index f40a42380ad..92000bb9f12 100644 --- a/vendor/phantomjs/render.js +++ b/vendor/phantomjs/render.js @@ -36,7 +36,7 @@ // console.log('Loading a web page: ' + params.url + ' status: ' + status); function checkIsReady() { - var canvas = page.evaluate(function() { + var panelsRendered = page.evaluate(function() { if (!window.angular) { return false; } var body = window.angular.element(document.body); if (!body.injector) { return false; } @@ -44,12 +44,10 @@ var rootScope = body.injector().get('$rootScope'); if (!rootScope) {return false;} - if (!rootScope.performance) { return false; } - var panelsToLoad = window.angular.element('div.panel').length; - return rootScope.performance.panelsRendered >= panelsToLoad; + return rootScope.panelsRendered; }); - if (canvas || tries === 1000) { + if (panelsRendered || tries === 1000) { var bb = page.evaluate(function () { return document.getElementsByClassName("main-view")[0].getBoundingClientRect(); });