| Index: tools/telemetry/telemetry/core/backends/android_command_line_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/backends/android_command_line_backend.py b/tools/telemetry/telemetry/core/backends/android_command_line_backend.py
|
| index e2c3e1a1d4b6983732bbe1226638ac6601ad0e66..e05c0bbb1dc10bcd0281c9377f3c9f61e25cf5c4 100644
|
| --- a/tools/telemetry/telemetry/core/backends/android_command_line_backend.py
|
| +++ b/tools/telemetry/telemetry/core/backends/android_command_line_backend.py
|
| @@ -63,7 +63,7 @@ class _AndroidCommandLineBackend(object):
|
| self._adb = adb
|
| self._backend_settings = backend_settings
|
| self._startup_args = startup_args
|
| - self._saved_command_line_file_contents = ''
|
| + self._saved_command_line_file_contents = None
|
|
|
| @property
|
| def command_line_file(self):
|
| @@ -79,20 +79,32 @@ class _AndroidCommandLineBackend(object):
|
| # be a Telemetry created one. This is to prevent a common bug where
|
| # --host-resolver-rules borks people's browsers if something goes wrong
|
| # with Telemetry.
|
| - self._saved_command_line_file_contents = ''.join(self._ReadFile())
|
| + self._saved_command_line_file_contents = self._ReadFile()
|
| if '--host-resolver-rules' in self._saved_command_line_file_contents:
|
| - self._saved_command_line_file_contents = ''
|
| - self._WriteFile(content)
|
| + self._saved_command_line_file_contents = None
|
| except device_errors.CommandFailedError:
|
| + self._saved_command_line_file_contents = None
|
| +
|
| + try:
|
| + self._WriteFile(content)
|
| + except device_errors.CommandFailedError as exc:
|
| + logging.critical(exc)
|
| logging.critical('Cannot set Chrome command line. '
|
| 'Fix this by flashing to a userdebug build.')
|
| sys.exit(1)
|
|
|
| def RestoreCommandLineFlags(self):
|
| - self._WriteFile(self._saved_command_line_file_contents)
|
| + if self._saved_command_line_file_contents is None:
|
| + self._RemoveFile()
|
| + else:
|
| + self._WriteFile(self._saved_command_line_file_contents)
|
|
|
| def _ReadFile(self):
|
| - return self._adb.device().ReadFile(self.command_line_file)
|
| + return self._adb.device().ReadFile(self.command_line_file, as_root=True)
|
|
|
| def _WriteFile(self, contents):
|
| self._adb.device().WriteFile(self.command_line_file, contents, as_root=True)
|
| +
|
| + def _RemoveFile(self):
|
| + self._adb.device().RunShellCommand(['rm', '-f', self.command_line_file],
|
| + as_root=True, check_return=True)
|
|
|