| Index: tools/telemetry/telemetry/page/page_runner.py
|
| diff --git a/tools/telemetry/telemetry/page/page_runner.py b/tools/telemetry/telemetry/page/page_runner.py
|
| index bc49abcc765f4c76e58c5c43cc13e01a9438e73f..c579e1a3e448afce75e4b75e3fe0ed569304b3cb 100644
|
| --- a/tools/telemetry/telemetry/page/page_runner.py
|
| +++ b/tools/telemetry/telemetry/page/page_runner.py
|
| @@ -38,21 +38,34 @@ class _RunState(object):
|
| self._current_page = None
|
| self._current_tab = None
|
|
|
| - def StartBrowserIfNeeded(self, test, page_set, page, possible_browser,
|
| - finder_options):
|
| - started_browser = not self.browser
|
| - wpr_mode = finder_options.browser_options.wpr_mode
|
| - if self._append_to_existing_wpr and wpr_mode == wpr_modes.WPR_RECORD:
|
| - wpr_mode = wpr_modes.WPR_APPEND
|
| + def _PrepareWpr(self, finder_options, network_controller, archive_path,
|
| + make_javascript_deterministic):
|
| + browser_options = finder_options.browser_options
|
| + if finder_options.use_live_sites:
|
| + browser_options.wpr_mode = wpr_modes.WPR_OFF
|
| + elif browser_options.wpr_mode != wpr_modes.WPR_RECORD:
|
| + browser_options.wpr_mode = (
|
| + wpr_modes.WPR_REPLAY
|
| + if archive_path and os.path.isfile(archive_path)
|
| + else wpr_modes.WPR_OFF)
|
| +
|
| # Replay's life-cycle is tied to the browser. Start and Stop are handled by
|
| # platform_backend.DidCreateBrowser and platform_backend.WillCloseBrowser,
|
| # respectively.
|
| # TODO(slamm): Update life-cycle comment with https://crbug.com/424777 fix.
|
| - possible_browser.platform.network_controller.SetReplayArgs(
|
| - page.archive_path, wpr_mode, finder_options.browser_options.netsim,
|
| - finder_options.browser_options.extra_wpr_args,
|
| - page_set.make_javascript_deterministic)
|
| + wpr_mode = browser_options.wpr_mode
|
| + if self._append_to_existing_wpr and wpr_mode == wpr_modes.WPR_RECORD:
|
| + wpr_mode = wpr_modes.WPR_APPEND
|
| + network_controller.SetReplayArgs(
|
| + archive_path, wpr_mode, browser_options.netsim,
|
| + browser_options.extra_wpr_args, make_javascript_deterministic)
|
|
|
| + def StartBrowserIfNeeded(self, test, page_set, page, possible_browser,
|
| + finder_options):
|
| + started_browser = not self.browser
|
| + self._PrepareWpr(
|
| + finder_options, possible_browser.platform.network_controller,
|
| + page.archive_path, page_set.make_javascript_deterministic)
|
| if self.browser:
|
| # Set new credential path for browser.
|
| self.browser.credentials.credentials_path = page.credentials_path
|
| @@ -230,15 +243,7 @@ def ProcessCommandLineArgs(parser, args):
|
|
|
|
|
| def _RunPageAndRetryRunIfNeeded(test, page_set, expectations, finder_options,
|
| - browser_options, page, possible_browser, results, state):
|
| - if finder_options.use_live_sites:
|
| - browser_options.wpr_mode = wpr_modes.WPR_OFF
|
| - elif browser_options.wpr_mode != wpr_modes.WPR_RECORD:
|
| - browser_options.wpr_mode = (
|
| - wpr_modes.WPR_REPLAY
|
| - if page.archive_path and os.path.isfile(page.archive_path)
|
| - else wpr_modes.WPR_OFF)
|
| -
|
| + page, possible_browser, results, state):
|
| max_attempts = test.attempts
|
| attempt_num = 0
|
| while attempt_num < max_attempts:
|
| @@ -388,8 +393,8 @@ def Run(test, page_set, expectations, finder_options, results):
|
| results.WillRunPage(page)
|
| try:
|
| _RunPageAndRetryRunIfNeeded(
|
| - test, page_set, expectations, finder_options, browser_options,
|
| - page, possible_browser, results, state)
|
| + test, page_set, expectations, finder_options, page,
|
| + possible_browser, results, state)
|
| finally:
|
| discard_run = (test.discard_first_result and
|
| page not in pages_with_discarded_first_result)
|
|
|