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

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py

Issue 806843002: Reland of Migrate DeviceUtils.ReadFile to adb_wrapper (try 3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added android_browser_backend_unittest Created 6 years 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
index 4b486beab404c4e0f3bb6dddd9156522fa8676ac..94390bbe9c7659fdf095cb2da04d2fa2dd3b6cd4 100644
--- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
+++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
@@ -153,7 +153,7 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
# Initialize fields so that an explosion during init doesn't break in Close.
self._backend_settings = backend_settings
- self._saved_cmdline = ''
+ self._saved_cmdline = None
self._target_arch = target_arch
self._saved_sslflag = ''
@@ -219,24 +219,33 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
self._adb.IsUserBuild())
try:
- # Save the current command line to restore later, except if it appears to
- # 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_cmdline = ''.join(self._adb.device().ReadFile(cmdline_file))
+ # Save the current command line to restore later
+ self._saved_cmdline = self._adb.device().ReadFile(
+ cmdline_file, as_root=True)
+ # ... except if it appears to be a Telemetry created one. This is to
+ # prevent common bug where --host-resolver-rules borks people's browsers
+ # if something goes wrong with Telemetry.
if '--host-resolver-rules' in self._saved_cmdline:
- self._saved_cmdline = ''
+ self._saved_cmdline = None
+ except device_errors.CommandFailedError: # file may not exist
+ self._saved_cmdline = None
+
+ try:
self._adb.device().WriteFile(cmdline_file, content, as_root=True)
- except device_errors.CommandFailedError:
- logging.critical('Cannot set Chrome command line. '
- 'Fix this by flashing to a userdebug build.')
+ except device_errors.CommandFailedError as exc:
+ logging.critical('Cannot set Chrome command line: %s', str(exc))
+ logging.critical('May be fixed by flashing to a userdebug build.')
sys.exit(1)
def _RestoreCommandLine(self):
cmdline_file = self._backend_settings.GetCommandLineFile(
self._adb.IsUserBuild())
- self._adb.device().WriteFile(cmdline_file, self._saved_cmdline,
- as_root=True)
+ if self._saved_cmdline is not None:
+ self._adb.device().WriteFile(cmdline_file, self._saved_cmdline,
+ as_root=True)
+ else:
+ self._adb.device().RunShellCommand(['rm', cmdline_file],
+ as_root=True)
def Start(self):
self._SetUpCommandLine()

Powered by Google App Engine
This is Rietveld 408576698