Chromium Code Reviews| Index: tools/perf/measurements/page_cycler.py |
| diff --git a/tools/perf/measurements/page_cycler.py b/tools/perf/measurements/page_cycler.py |
| index 84c9dc25aa6f744de1491e3f1a6cfb46ad826628..c18d2ccdee5ce12b51129eed9df5c05a384be9aa 100644 |
| --- a/tools/perf/measurements/page_cycler.py |
| +++ b/tools/perf/measurements/page_cycler.py |
| @@ -45,6 +45,7 @@ class PageCycler(page_test.PageTest): |
| self._cpu_metric = None |
| self._v8_object_stats_metric = None |
| self._has_loaded_page = collections.defaultdict(int) |
| + self._initial_renderer_url = None # to avoid cross-renderer navigation |
| @classmethod |
| def AddCommandLineArgs(cls, parser): |
| @@ -94,12 +95,15 @@ class PageCycler(page_test.PageTest): |
| if self._record_v8_object_stats: |
| self._v8_object_stats_metric = v8_object_stats.V8ObjectStatsMetric() |
| - def DidStartHTTPServer(self, tab): |
| - # Avoid paying for a cross-renderer navigation on the first page on legacy |
| - # page cyclers which use the filesystem. |
| - tab.Navigate(tab.browser.http_server.UrlOf('nonexistent.html')) |
| - |
| def WillNavigateToPage(self, page, tab): |
| + if page.is_file: |
|
tonyg
2014/09/11 22:13:15
Looks like this'll work. An alternate approach wou
|
| + # For legacy page cyclers which use the filesystem, do an initial |
| + # navigate to avoid paying for a cross-renderer navigation. |
| + initial_url = tab.browser.http_server.UrlOf('nonexistent.html') |
| + if self._initial_renderer_url != initial_url: |
| + self._initial_renderer_url = initial_url |
| + tab.Navigate(self._initial_renderer_url) |
| + |
| page.script_to_evaluate_on_commit = self._page_cycler_js |
| if self.ShouldRunCold(page.url): |
| tab.ClearCache(force=True) |