Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1247)

Unified Diff: tools/telemetry/telemetry/page/shared_page_state.py

Issue 1491183003: [Telemetry] Move WPR life cycle from browser to platform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: work in progress Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)
« no previous file with comments | « tools/telemetry/telemetry/internal/util/webpagereplay.py ('k') | tools/telemetry/telemetry/page/shared_page_state_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698