| Index: tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| index 5fa7a04f0185d9df326c08001ef9153325445031..19836151f4b6f17be064e8cddf0448c31462897b 100644
|
| --- a/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| @@ -76,16 +76,17 @@
|
| logging.info("Using profile directory:'%s'." % profile_dir)
|
| shutil.rmtree(self._tmp_profile_dir)
|
| shutil.copytree(profile_dir, self._tmp_profile_dir)
|
| - # No matter whether we're using an existing profile directory or
|
| - # creating a new one, always delete the well-known file containing
|
| - # the active DevTools port number.
|
| - port_file = self._GetDevToolsActivePortPath()
|
| - if os.path.isfile(port_file):
|
| - try:
|
| - os.remove(port_file)
|
| - except Exception as e:
|
| - logging.critical('Unable to remove DevToolsActivePort file: %s' % e)
|
| - sys.exit(1)
|
| + if self.browser_options.use_devtools_active_port:
|
| + # No matter whether we're using an existing profile directory or
|
| + # creating a new one, always delete the well-known file containing
|
| + # the active DevTools port number.
|
| + port_file = self._GetDevToolsActivePortPath()
|
| + if os.path.isfile(port_file):
|
| + try:
|
| + os.remove(port_file)
|
| + except Exception as e:
|
| + logging.critical('Unable to remove DevToolsActivePort file: %s' % e)
|
| + sys.exit(1)
|
|
|
| def _GetDevToolsActivePortPath(self):
|
| return os.path.join(self.profile_directory, 'DevToolsActivePort')
|
| @@ -129,33 +130,37 @@
|
| if not self.IsBrowserRunning():
|
| raise exceptions.ProcessGoneException(
|
| "Return code: %d" % self._proc.returncode)
|
| - # The Telemetry user selected the new code path to start DevTools on
|
| - # an ephemeral port. Wait for the well-known file containing the port
|
| - # number to exist.
|
| - port_file = self._GetDevToolsActivePortPath()
|
| - if not os.path.isfile(port_file):
|
| - # File isn't ready yet. Return false. Will retry.
|
| - return False
|
| - # Attempt to avoid reading the file until it's populated.
|
| - got_port = False
|
| - try:
|
| - if os.stat(port_file).st_size > 0:
|
| - with open(port_file) as f:
|
| - port_string = f.read()
|
| - self._port = int(port_string)
|
| - logging.info('Discovered ephemeral port %s' % self._port)
|
| - got_port = True
|
| - except Exception:
|
| - # Both stat and open can throw exceptions.
|
| - pass
|
| - if not got_port:
|
| - # File isn't ready yet. Return false. Will retry.
|
| - return False
|
| + if self.browser_options.use_devtools_active_port:
|
| + # The Telemetry user selected the new code path to start DevTools on
|
| + # an ephemeral port. Wait for the well-known file containing the port
|
| + # number to exist.
|
| + port_file = self._GetDevToolsActivePortPath()
|
| + if not os.path.isfile(port_file):
|
| + # File isn't ready yet. Return false. Will retry.
|
| + return False
|
| + # Attempt to avoid reading the file until it's populated.
|
| + got_port = False
|
| + try:
|
| + if os.stat(port_file).st_size > 0:
|
| + with open(port_file) as f:
|
| + port_string = f.read()
|
| + self._port = int(port_string)
|
| + logging.info('Discovered ephemeral port %s' % self._port)
|
| + got_port = True
|
| + except Exception:
|
| + # Both stat and open can throw exceptions.
|
| + pass
|
| + if not got_port:
|
| + # File isn't ready yet. Return false. Will retry.
|
| + return False
|
| return super(DesktopBrowserBackend, self).HasBrowserFinishedLaunching()
|
|
|
| def GetBrowserStartupArgs(self):
|
| args = super(DesktopBrowserBackend, self).GetBrowserStartupArgs()
|
| - self._port = 0
|
| + if self.browser_options.use_devtools_active_port:
|
| + self._port = 0
|
| + else:
|
| + self._port = util.GetUnreservedAvailableLocalPort()
|
| logging.info('Requested remote debugging port: %d' % self._port)
|
| args.append('--remote-debugging-port=%i' % self._port)
|
| args.append('--enable-crash-reporter-for-testing')
|
|
|