| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Multi tab memory test. | 5 """Multi tab memory test. |
| 6 | 6 |
| 7 This test is a multi tab test, but we're interested in measurements for | 7 This test is a multi tab test, but we're interested in measurements for |
| 8 the entire test rather than each single page. | 8 the entire test rather than each single page. |
| 9 """ | 9 """ |
| 10 | 10 |
| 11 from measurements import PageTestMeasurement |
| 12 from metrics import memory |
| 11 | 13 |
| 12 from metrics import memory | 14 class MemoryMultiTab(PageTestMeasurement): |
| 13 from telemetry.page import page_test | |
| 14 | |
| 15 class MemoryMultiTab(page_test.PageTest): | |
| 16 def __init__(self, *args, **kwargs): | 15 def __init__(self, *args, **kwargs): |
| 17 super(MemoryMultiTab, self).__init__(*args, **kwargs) | 16 super(MemoryMultiTab, self).__init__(*args, **kwargs) |
| 18 self._memory_metric = None | 17 self._memory_metric = None |
| 19 # _first_tab is used to make memory measurements | 18 # _first_tab is used to make memory measurements |
| 20 self._first_tab = None | 19 self._first_tab = None |
| 21 | 20 |
| 22 def DidStartBrowser(self, browser): | 21 def DidStartBrowser(self, browser): |
| 23 self._memory_metric = memory.MemoryMetric(browser) | 22 self._memory_metric = memory.MemoryMetric(browser) |
| 24 | 23 |
| 25 def CustomizeBrowserOptions(self, options): | 24 def CustomizeBrowserOptions(self, options): |
| 25 super(MemoryMultiTab, self).CustomizeBrowserOptions(options) |
| 26 memory.MemoryMetric.CustomizeBrowserOptions(options) | 26 memory.MemoryMetric.CustomizeBrowserOptions(options) |
| 27 # Since this is a memory benchmark, we want to sample memory histograms at | 27 # Since this is a memory benchmark, we want to sample memory histograms at |
| 28 # a high frequency. | 28 # a high frequency. |
| 29 options.AppendExtraBrowserArgs('--memory-metrics') | 29 options.AppendExtraBrowserArgs('--memory-metrics') |
| 30 | 30 |
| 31 def TabForPage(self, page, browser): | 31 def TabForPage(self, page, browser): |
| 32 return browser.tabs.New() | 32 return browser.tabs.New() |
| 33 | 33 |
| 34 def DidNavigateToPage(self, page, tab): | 34 def DidNavigateToPage(self, page, tab): |
| 35 # Start measurement on the first tab. | 35 # Start measurement on the first tab. |
| 36 if not self._first_tab: | 36 if not self._first_tab: |
| 37 self._memory_metric.Start(page, tab) | 37 self._memory_metric.Start(page, tab) |
| 38 self._first_tab = tab | 38 self._first_tab = tab |
| 39 | 39 |
| 40 def ValidateAndMeasurePage(self, page, tab, results): | 40 def ValidateAndMeasurePage(self, page, tab, results): |
| 41 super(MemoryMultiTab, self).ValidateAndMeasurePage(page, tab, results) |
| 42 |
| 41 # Finalize measurement on the last tab. | 43 # Finalize measurement on the last tab. |
| 42 if len(tab.browser.tabs) == len(page.page_set.pages): | 44 if len(tab.browser.tabs) == len(page.page_set.pages): |
| 43 self._memory_metric.Stop(page, self._first_tab) | 45 self._memory_metric.Stop(page, self._first_tab) |
| 44 self._memory_metric.AddResults(self._first_tab, results) | 46 self._memory_metric.AddResults(self._first_tab, results) |
| OLD | NEW |