Index: tools/perf/profile_creators/profile_extender.py |
diff --git a/tools/perf/profile_creators/profile_extender.py b/tools/perf/profile_creators/profile_extender.py |
index 292afa736524b276e8e443ec69fa6e716bec6c1f..072e9b7d1d0d02df69b6ae69eb7f2bf4e47a9574 100644 |
--- a/tools/perf/profile_creators/profile_extender.py |
+++ b/tools/perf/profile_creators/profile_extender.py |
@@ -35,7 +35,8 @@ class ProfileExtender(object): |
# A reference to the browser that will be performing all of the tab |
# navigations. |
- # This member is initialized during SetUpBrowser(). |
+ # These members are initialized during SetUpBrowser(). |
+ self._possible_browser = None |
self._browser = None |
def Run(self): |
@@ -88,18 +89,18 @@ class ProfileExtender(object): |
if the subclass needs to start a browser. If a subclass does call this |
method, the subclass must also call TearDownBrowser(). |
""" |
- possible_browser = self._GetPossibleBrowser(self.finder_options) |
+ self._possible_browser = self._GetPossibleBrowser(self.finder_options) |
enabled_os_list = self.EnabledOSList() |
if self._os_name not in enabled_os_list: |
raise NotImplementedError( |
'This profile extender on %s is not yet supported' |
% self._os_name) |
- if possible_browser.IsRemote(): |
+ if self._possible_browser.IsRemote(): |
raise NotImplementedError( |
'Profile extenders are not yet supported on remote platforms.') |
- assert possible_browser.supports_tab_control |
+ assert self._possible_browser.supports_tab_control |
- self._SetUpWebPageReplay(self.finder_options, possible_browser) |
+ self._SetUpWebPageReplay(self.finder_options) |
self._browser = possible_browser.Create(self.finder_options) |
def TearDownBrowser(self): |
@@ -111,6 +112,8 @@ class ProfileExtender(object): |
if self._browser: |
self._browser.Close() |
self._browser = None |
+ if self._possible_browser: |
+ self._possible_browser.platform.network_controller.Close() |
def FetchWebPageReplayArchives(self): |
"""Fetches the web page replay archives. |
@@ -119,7 +122,7 @@ class ProfileExtender(object): |
""" |
pass |
- def _SetUpWebPageReplay(self, finder_options, possible_browser): |
+ def _SetUpWebPageReplay(self, finder_options): |
"""Sets up Web Page Replay, if necessary.""" |
wpr_archive_path = self.WebPageReplayArchivePath() |
@@ -128,20 +131,17 @@ class ProfileExtender(object): |
self.FetchWebPageReplayArchives() |
- # The browser options needs to be passed to both the network controller |
- # as well as the browser backend. |
browser_options = finder_options.browser_options |
if finder_options.use_live_sites: |
- browser_options.wpr_mode = wpr_modes.WPR_OFF |
+ wpr_mode = wpr_modes.WPR_OFF |
else: |
- browser_options.wpr_mode = wpr_modes.WPR_REPLAY |
+ wpr_mode = wpr_modes.WPR_REPLAY |
- network_controller = possible_browser.platform.network_controller |
- make_javascript_deterministic = True |
- |
- network_controller.SetReplayArgs( |
- wpr_archive_path, browser_options.wpr_mode, browser_options.netsim, |
- browser_options.extra_wpr_args, make_javascript_deterministic) |
+ network_controller = self._possible_browser.platform.network_controller |
+ network_controller.Open( |
+ wpr_mode, browser_options.netsim, browser_options.extra_wpr_args) |
+ network_controller.StartReplay( |
+ wpr_archive_path, make_javascript_deterministic=True) |
def _GetPossibleBrowser(self, finder_options): |
"""Return a possible_browser with the given options.""" |
@@ -154,4 +154,3 @@ class ProfileExtender(object): |
possible_browser.browser_type) |
return possible_browser |
- |