Index: tools/telemetry/telemetry/page/shared_page_state.py |
diff --git a/tools/telemetry/telemetry/page/shared_page_state.py b/tools/telemetry/telemetry/page/shared_page_state.py |
index c32b72c58a14eab8a8f910ccb5d8b02810a476fe..2ff781b1f5adfdcdf9b300f9e2e05dbdb18755ca 100644 |
--- a/tools/telemetry/telemetry/page/shared_page_state.py |
+++ b/tools/telemetry/telemetry/page/shared_page_state.py |
@@ -77,8 +77,6 @@ class SharedPageState(story.SharedState): |
self._possible_browser = self._GetPossibleBrowser( |
self._test, finder_options) |
- # TODO(slamm): Remove _append_to_existing_wpr when replay lifetime changes. |
- self._append_to_existing_wpr = False |
self._first_browser = True |
self._did_login_for_current_page = False |
self._current_page = None |
@@ -88,6 +86,19 @@ class SharedPageState(story.SharedState): |
self._pregenerated_profile_archive_dir = None |
self._test.SetOptions(self._finder_options) |
+ # TODO(crbug/404771): Move network controller options out of |
+ # browser_options and into finder_options. |
+ browser_options = finder_options.browser_options |
+ if finder_options.use_live_sites: |
+ wpr_mode = wpr_modes.WPR_OFF |
+ elif browser_options.wpr_mode == wpr_modes.WPR_RECORD: |
+ wpr_mode = wpr_modes.WPR_RECORD |
+ else: |
+ wpr_mode = wpr_modes.WPR_REPLAY |
+ |
+ self.platform.network_controller.Open( |
+ wpr_mode, browser_options.netsim, browser_options.extra_wpr_args) |
+ |
@property |
def browser(self): |
return self._browser |
@@ -167,28 +178,6 @@ class SharedPageState(story.SharedState): |
def platform(self): |
return self._possible_browser.platform |
- def _PrepareWpr(self, network_controller, archive_path, |
- make_javascript_deterministic): |
- browser_options = self._finder_options.browser_options |
- if self._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. |
- 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 _StartBrowser(self, page): |
assert self._browser is None |
self._possible_browser.SetCredentialsPath(page.credentials_path) |
@@ -241,13 +230,16 @@ class SharedPageState(story.SharedState): |
if self._test.RestartBrowserBeforeEachPage() or page.startup_url: |
self._StopBrowser() |
started_browser = not self.browser |
- self._PrepareWpr(self.platform.network_controller, |
- page_set.WprFilePathForStory(page), |
- page.make_javascript_deterministic) |
+ |
+ archive_path = page_set.WprFilePathForStory(page) |
+ if archive_path and not os.path.isfile(archive_path): |
+ archive_path = None |
+ self.platform.network_controller.StartReplay( |
+ archive_path, page.make_javascript_deterministic) |
+ |
if self.browser: |
# Set new credential path for browser. |
self.browser.credentials.credentials_path = page.credentials_path |
- self.platform.network_controller.UpdateReplayForExistingBrowser() |
else: |
self._StartBrowser(page) |
if self.browser.supports_tab_control and self._test.close_tabs_before_run: |
@@ -348,6 +340,7 @@ class SharedPageState(story.SharedState): |
self._migrated_profile = None |
self._StopBrowser() |
+ self.platform.network_controller.Close() |
self.platform.StopAllLocalServers() |
def _StopBrowser(self): |
@@ -355,11 +348,6 @@ class SharedPageState(story.SharedState): |
self._browser.Close() |
self._browser = None |
- # Restarting the state will also restart the wpr server. If we're |
- # recording, we need to continue adding into the same wpr archive, |
- # not overwrite it. |
- self._append_to_existing_wpr = True |
- |
def _StartProfiling(self, page): |
output_file = os.path.join(self._finder_options.output_dir, |
page.file_safe_name) |