Index: tracing/tracing/model/helpers/chrome_model_helper.html |
diff --git a/tracing/tracing/model/helpers/chrome_model_helper.html b/tracing/tracing/model/helpers/chrome_model_helper.html |
index 51b762abb3ca39b6423e2dfe3c3da2be5cb35a23..4d6b5040a584d89897c3c5d527c6a3f64c953514 100644 |
--- a/tracing/tracing/model/helpers/chrome_model_helper.html |
+++ b/tracing/tracing/model/helpers/chrome_model_helper.html |
@@ -114,6 +114,33 @@ tr.exportTo('tr.model.helpers', function() { |
get rendererHelpers() { |
return this.rendererHelpers_; |
+ }, |
+ |
+ |
+ /** |
+ * Returns renderer with largest pid that is not chrome tracing ui. |
+ * |
+ * This is a very hacky approach to find the "target" renderer in metrics |
+ * calculation. Often in telemetry tests we are only interested in |
+ * calculating metrics for the page opened by the automated testing system, |
+ * but currently in tbmv2 there is no way to reliably single out this |
+ * renderer. One useful heuristic is that the page telemetry opens is opened |
+ * after all the other renderers in chrome were opened, and therefore has |
+ * the largest pid. |
+ * |
+ * TODO: Remove this after #2820 is resolved. |
+ */ |
+ get rendererWithLargestPid() { |
+ var largestPid = -1; |
+ for (var pid in this.rendererHelpers) { |
+ var rendererHelper = this.rendererHelpers[pid]; |
+ if (rendererHelper.isChromeTracingUI) continue; |
+ if (pid > largestPid) largestPid = pid; |
+ } |
+ |
+ if (largestPid === -1) return undefined; |
+ |
+ return this.rendererHelpers[largestPid]; |
} |
}; |