| 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 import collections | 5 import collections | 
| 6 | 6 | 
| 7 from measurements import startup | 7 from measurements import startup | 
| 8 from metrics import cpu | 8 from metrics import cpu | 
| 9 from metrics import startup_metric | 9 from metrics import startup_metric | 
| 10 from telemetry.core import util | 10 from telemetry.core import util | 
| (...skipping 24 matching lines...) Expand all  Loading... | 
| 35   def TabForPage(self, page, browser): | 35   def TabForPage(self, page, browser): | 
| 36     # Detect that the session restore has completed. | 36     # Detect that the session restore has completed. | 
| 37     util.WaitFor(lambda: browser.tabs and | 37     util.WaitFor(lambda: browser.tabs and | 
| 38                  histogram_util.GetHistogramCount( | 38                  histogram_util.GetHistogramCount( | 
| 39                      histogram_util.BROWSER_HISTOGRAM, | 39                      histogram_util.BROWSER_HISTOGRAM, | 
| 40                      'SessionRestore.AllTabsLoaded', | 40                      'SessionRestore.AllTabsLoaded', | 
| 41                      browser.foreground_tab), | 41                      browser.foreground_tab), | 
| 42                  60) | 42                  60) | 
| 43     return browser.foreground_tab | 43     return browser.foreground_tab | 
| 44 | 44 | 
| 45   def CanRunForPage(self, page): |  | 
| 46     # No matter how many pages in the pageset, just perform one test iteration. |  | 
| 47     return page.page_set.pages.index(page) == 0 |  | 
| 48 |  | 
| 49   def RunNavigateSteps(self, page, tab): | 45   def RunNavigateSteps(self, page, tab): | 
| 50     # Overriden so that no page navigation occurs. | 46     # Overridden so that no page navigation occurs. | 
| 51     pass | 47     pass | 
| 52 | 48 | 
| 53   def ValidatePageSet(self, page_set): | 49   def ValidatePageSet(self, page_set): | 
| 54     wpr_archive_names_to_page_urls = collections.defaultdict(list) | 50     wpr_archive_names_to_page_urls = collections.defaultdict(list) | 
| 55     # Construct the map from pages' wpr archive names to pages' urls. | 51     # Construct the map from pages' wpr archive names to pages' urls. | 
| 56     for page in page_set: | 52     for page in page_set: | 
| 57       if page.is_local: | 53       if page.is_local: | 
| 58         continue | 54         continue | 
| 59       wpr_archive_name = page_set.WprFilePathForUserStory(page) | 55       wpr_archive_name = page_set.WprFilePathForUserStory(page) | 
| 60       wpr_archive_names_to_page_urls[wpr_archive_name].append(page.url) | 56       wpr_archive_names_to_page_urls[wpr_archive_name].append(page.url) | 
| 61 | 57 | 
| 62     # Reject any pageset that contains more than one WPR archive. | 58     # Reject any pageset that contains more than one WPR archive. | 
| 63     if len(wpr_archive_names_to_page_urls.keys()) > 1: | 59     if len(wpr_archive_names_to_page_urls.keys()) > 1: | 
| 64       raise Exception("Invalid pageset: more than 1 WPR archive found.: " + | 60       raise Exception("Invalid pageset: more than 1 WPR archive found.: " + | 
| 65           repr(wpr_archive_names_to_page_urls)) | 61           repr(wpr_archive_names_to_page_urls)) | 
| 66 | 62 | 
| 67   def DidStartBrowser(self, browser): | 63   def DidStartBrowser(self, browser): | 
| 68     self._cpu_metric = cpu.CpuMetric(browser) | 64     self._cpu_metric = cpu.CpuMetric(browser) | 
| 69     self._cpu_metric.Start(None, None) | 65     self._cpu_metric.Start(None, None) | 
| 70 | 66 | 
| 71   def ValidateAndMeasurePage(self, page, tab, results): | 67   def ValidateAndMeasurePage(self, page, tab, results): | 
| 72     tab.WaitForDocumentReadyStateToBeComplete() | 68     tab.WaitForDocumentReadyStateToBeComplete() | 
| 73     super(SessionRestore, self).ValidateAndMeasurePage(page, tab, results) | 69     super(SessionRestore, self).ValidateAndMeasurePage(page, tab, results) | 
| 74 | 70 | 
| 75     # Record CPU usage from browser start to when the foreground page is loaded. | 71     # Record CPU usage from browser start to when the foreground page is loaded. | 
| 76     self._cpu_metric.Stop(None, None) | 72     self._cpu_metric.Stop(None, None) | 
| 77     self._cpu_metric.AddResults(tab, results, 'cpu_utilization') | 73     self._cpu_metric.AddResults(tab, results, 'cpu_utilization') | 
| 78 | 74 | 
| 79     # TODO(jeremy): Measure time to load - first, last and frontmost tab here. | 75     # TODO(jeremy): Measure time to load - first, last and frontmost tab here. | 
| OLD | NEW | 
|---|