| 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 4d86f62b4ef7d8b059f13463294634c3641d1848..a39a72b40f59d7a6c632232f008b4162fcc1c106 100644
|
| --- a/tools/telemetry/telemetry/page/page_runner.py
|
| +++ b/tools/telemetry/telemetry/page/page_runner.py
|
| @@ -37,11 +37,13 @@ class _RunState(object):
|
| self.profiler_dir = None
|
| self.repeat_state = None
|
|
|
| - def StartBrowser(self, test, page_set, page, possible_browser,
|
| + def StartBrowserIfNeeded(self, test, page_set, page, possible_browser,
|
| credentials_path, archive_path):
|
| started_browser = not self.browser
|
| # Create a browser.
|
| if not self.browser:
|
| + test.CustomizeBrowserOptionsForSinglePage(page,
|
| + possible_browser.finder_options)
|
| self.browser = possible_browser.Create()
|
| self.browser.credentials.credentials_path = credentials_path
|
|
|
| @@ -211,7 +213,11 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
|
| tries = 3
|
| while tries:
|
| try:
|
| - state.StartBrowser(test, page_set, page, possible_browser,
|
| + if test.RestartBrowserBeforeEachPage():
|
| + state.StopBrowser()
|
| + # If we are restarting the browser for each page customize the per page
|
| + # options for just the current page before starting the browser.
|
| + state.StartBrowserIfNeeded(test, page_set, page, possible_browser,
|
| credentials_path, page.archive_path)
|
|
|
| expectation = expectations.GetExpectationForPage(state.browser, page)
|
| @@ -237,7 +243,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
|
| if finder_options.profiler:
|
| state.StopProfiling()
|
|
|
| - if test.NeedsBrowserRestartAfterEachRun(state.browser):
|
| + if (test.StopBrowserAfterPage(state.browser, page)):
|
| state.StopBrowser()
|
|
|
| break
|
| @@ -298,8 +304,8 @@ def Run(test, page_set, expectations, finder_options):
|
| if page_set.user_agent_type:
|
| browser_options.browser_user_agent_type = page_set.user_agent_type
|
|
|
| - for page in pages:
|
| - test.CustomizeBrowserOptionsForPage(page, possible_browser.finder_options)
|
| + test.CustomizeBrowserOptionsForPageSet(page_set,
|
| + possible_browser.finder_options)
|
| if finder_options.profiler:
|
| profiler_class = profiler_finder.FindProfiler(finder_options.profiler)
|
| profiler_class.CustomizeBrowserOptions(possible_browser.browser_type,
|
|
|