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

Side by Side Diff: telemetry/telemetry/internal/backends/chrome/desktop_browser_finder.py

Issue 2868703002: Retry browser startup in desktop_browser_finder. (Closed)
Patch Set: Addressed review feedback from nednguyen. Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 """Finds desktop browsers that can be controlled by telemetry.""" 4 """Finds desktop browsers that can be controlled by telemetry."""
5 5
6 import logging 6 import logging
7 import os 7 import os
8 import sys 8 import sys
9 9
10 import dependency_manager # pylint: disable=import-error 10 import dependency_manager # pylint: disable=import-error
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 def Create(self, finder_options): 53 def Create(self, finder_options):
54 if self._flash_path and not os.path.exists(self._flash_path): 54 if self._flash_path and not os.path.exists(self._flash_path):
55 logging.warning( 55 logging.warning(
56 'Could not find Flash at %s. Continuing without Flash.\n' 56 'Could not find Flash at %s. Continuing without Flash.\n'
57 'To run with Flash, check it out via http://go/read-src-internal', 57 'To run with Flash, check it out via http://go/read-src-internal',
58 self._flash_path) 58 self._flash_path)
59 self._flash_path = None 59 self._flash_path = None
60 60
61 self._InitPlatformIfNeeded() 61 self._InitPlatformIfNeeded()
62 62
63 browser_backend = desktop_browser_backend.DesktopBrowserBackend( 63 num_retries = 3
64 self._platform_backend, 64 for x in range(0, num_retries):
65 finder_options.browser_options, self._local_executable, 65 returned_browser = None
66 self._flash_path, self._is_content_shell, self._browser_directory) 66 try:
67 return browser.Browser( 67 returned_browser = None
68 browser_backend, self._platform_backend, self._credentials_path) 68
69 browser_backend = desktop_browser_backend.DesktopBrowserBackend(
70 self._platform_backend,
71 finder_options.browser_options, self._local_executable,
72 self._flash_path, self._is_content_shell, self._browser_directory)
73
74 returned_browser = browser.Browser(
75 browser_backend, self._platform_backend, self._credentials_path)
76
77 # Try fetching the zeroth tab. If this works, then the browser
78 # appears to be working.
79 _ = returned_browser.tabs[0]
Ken Russell (switch to Gerrit) 2017/05/08 21:22:02 The fetching of the zeroth tab is causing DevTools
80
81 return returned_browser
82 except Exception:
83 logging.warning('Browser creation failed (attempt %d of %d), retrying' %
84 ((x + 1), num_retries))
85 # Attempt to clean up things left over from the failed browser startup.
86 try:
87 if returned_browser:
88 returned_browser.Close()
89 except Exception:
90 pass
91 # Re-raise the exception the last time through.
92 if x == num_retries - 1:
93 raise
69 94
70 def SupportsOptions(self, browser_options): 95 def SupportsOptions(self, browser_options):
71 if ((len(browser_options.extensions_to_load) != 0) 96 if ((len(browser_options.extensions_to_load) != 0)
72 and self._is_content_shell): 97 and self._is_content_shell):
73 return False 98 return False
74 return True 99 return True
75 100
76 def UpdateExecutableIfNeeded(self): 101 def UpdateExecutableIfNeeded(self):
77 pass 102 pass
78 103
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 if "--ozone-platform" in arg: 304 if "--ozone-platform" in arg:
280 has_ozone_platform = True 305 has_ozone_platform = True
281 306
282 if len(browsers) and not has_x11_display and not has_ozone_platform: 307 if len(browsers) and not has_x11_display and not has_ozone_platform:
283 logging.warning( 308 logging.warning(
284 'Found (%s), but you do not have a DISPLAY environment set.' % 309 'Found (%s), but you do not have a DISPLAY environment set.' %
285 ','.join([b.browser_type for b in browsers])) 310 ','.join([b.browser_type for b in browsers]))
286 return [] 311 return []
287 312
288 return browsers 313 return browsers
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698