| Index: telemetry/telemetry/page/shared_page_state.py
|
| diff --git a/telemetry/telemetry/page/shared_page_state.py b/telemetry/telemetry/page/shared_page_state.py
|
| index 70fead41a51e0fd2a12c9a73e525576480751d45..52c6d4ba3624c37ce0aa51beed2e8dc08df86d74 100644
|
| --- a/telemetry/telemetry/page/shared_page_state.py
|
| +++ b/telemetry/telemetry/page/shared_page_state.py
|
| @@ -130,6 +130,19 @@ class SharedPageState(story.SharedState):
|
| sys.exit(0)
|
| return possible_browser
|
|
|
| + def DumpStateUponFailure(self, page, results):
|
| + # Dump browser standard output and log.
|
| + if self._browser:
|
| + self._browser.DumpStateUponFailure()
|
| + else:
|
| + logging.warning('Cannot dump browser state: No browser.')
|
| +
|
| + # Capture a screenshot
|
| + if self._finder_options.browser_options.take_screenshot_for_failed_page:
|
| + self._TryCaptureScreenShot(page, self._current_tab, results)
|
| + else:
|
| + logging.warning('Taking screenshots upon failures disabled.')
|
| +
|
| def _TryCaptureScreenShot(self, page, tab, results):
|
| try:
|
| # TODO(nednguyen): once all platforms support taking screenshot,
|
| @@ -307,20 +320,12 @@ class SharedPageState(story.SharedState):
|
| self._test.ValidateAndMeasurePage(
|
| self._current_page, self._current_tab, results)
|
| except exceptions.Error:
|
| - if self._finder_options.browser_options.take_screenshot_for_failed_page:
|
| - self._TryCaptureScreenShot(self._current_page, self._current_tab,
|
| - results)
|
| if self._test.is_multi_tab_test:
|
| # Avoid trying to recover from an unknown multi-tab state.
|
| exception_formatter.PrintFormattedException(
|
| msg='Telemetry Error during multi tab test:')
|
| raise legacy_page_test.MultiTabTestAppCrashError
|
| raise
|
| - except Exception:
|
| - if self._finder_options.browser_options.take_screenshot_for_failed_page:
|
| - self._TryCaptureScreenShot(self._current_page, self._current_tab,
|
| - results)
|
| - raise
|
|
|
| def TearDownState(self):
|
| self._StopBrowser()
|
|
|