Index: tools/perf/measurements/power_many_tabs.py |
diff --git a/tools/perf/measurements/power_many_tabs.py b/tools/perf/measurements/power_many_tabs.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..492e6308e8016be7b7314a513f31505ef1763213 |
--- /dev/null |
+++ b/tools/perf/measurements/power_many_tabs.py |
@@ -0,0 +1,44 @@ |
+# Copyright 2014 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import time |
+ |
+from metrics import power |
+from telemetry.core import util |
+from telemetry.page import page_measurement |
+ |
+ |
+class PowerManyTabs(page_measurement.PageMeasurement): |
+ """Load pageset in multiple tabs, measure power after quiesencence.""" |
+ |
+ # Amount of time to measure power usage for, in seconds. |
+ POWER_MEAUSUREMENT_TIME_S = 5 |
+ |
+ def __init__(self, action_name_to_run=''): |
+ super(PowerManyTabs, self).__init__(action_name_to_run=action_name_to_run) |
+ self._power_metric = power.PowerMetric() |
+ |
+ def CustomizeBrowserOptions(self, options): |
+ power.PowerMetric.CustomizeBrowserOptions(options) |
+ |
+ def TabForPage(self, page, browser): |
+ return browser.tabs.New() |
+ |
+ def StopBrowserAfterPage(self, browser, page): |
+ # Restart browser after all pages in pageset are loaded. |
+ return len(browser.tabs) == len(page.page_set.pages) |
+ |
+ def MeasurePage(self, page, tab, results): |
+ """Only measure on the last tab.""" |
+ if len(tab.browser.tabs) != len(page.page_set.pages): |
+ return |
+ |
+ util.WaitFor(tab.HasReachedQuiescence, 60) |
qsr
2014/02/27 14:00:52
Should you wait for the quiescence of every tab, a
|
+ |
+ # Measure power after quiescence. |
+ self._power_metric.Start(page, tab) |
+ time.sleep(PowerManyTabs.POWER_MEAUSUREMENT_TIME_S) |
+ self._power_metric.Stop(page, tab) |
+ |
+ self._power_metric.AddResults(tab, results) |