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 a957358ae3c8ba9be061c58c8bf97dd89b158e82..085ef01b081cfcd942aca84eb2e66c9a5866fdcf 100644 |
--- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py |
+++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py |
@@ -17,6 +17,8 @@ from telemetry.core.backends import browser_backend |
from telemetry.core.backends.chrome import chrome_browser_backend |
from telemetry.core.forwarders import android_forwarder |
+util.AddDirToPythonPath(util.GetChromiumSrcDir(), 'build', 'android') |
+from pylib.device import device_errors |
from pylib.device import intent |
@@ -76,7 +78,7 @@ class ChromeBackendSettings(AndroidBrowserBackendSettings): |
def PushProfile(self, new_profile_dir): |
# Pushing the profile is slow, so we don't want to do it every time. |
- # Avoid this by pushing to a safe location using PushIfNeeded, and |
+ # Avoid this by pushing to a safe location using PushChangedFiles, and |
# then copying into the correct location on each test run. |
(profile_parent, profile_base) = os.path.split(new_profile_dir) |
@@ -86,8 +88,7 @@ class ChromeBackendSettings(AndroidBrowserBackendSettings): |
profile_base = os.path.basename(profile_parent) |
saved_profile_location = '/sdcard/profile/%s' % profile_base |
- self.adb.device().old_interface.PushIfNeeded( |
- new_profile_dir, saved_profile_location) |
+ self.adb.device().PushChangedFiles(new_profile_dir, saved_profile_location) |
self.adb.device().old_interface.EfficientDeviceDirectoryCopy( |
saved_profile_location, self.profile_dir) |
@@ -245,24 +246,19 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend): |
else: |
return True |
- if IsProtectedFile(self._backend_settings.cmdline_file): |
- if not self._adb.device().old_interface.CanAccessProtectedFileContents(): |
- logging.critical('Cannot set Chrome command line. ' |
- 'Fix this by flashing to a userdebug build.') |
- sys.exit(1) |
- self._saved_cmdline = ''.join( |
- self._adb.device().old_interface.GetProtectedFileContents( |
- self._backend_settings.cmdline_file) |
- or []) |
- self._adb.device().old_interface.SetProtectedFileContents( |
- self._backend_settings.cmdline_file, file_contents) |
- else: |
+ protected = IsProtectedFile(self._backend_settings.cmdline_file) |
+ try: |
self._saved_cmdline = ''.join( |
- self._adb.device().old_interface.GetFileContents( |
- self._backend_settings.cmdline_file) |
+ self._adb.device().ReadFile( |
+ self._backend_settings.cmdline_file, as_root=protected) |
or []) |
- self._adb.device().old_interface.SetFileContents( |
- self._backend_settings.cmdline_file, file_contents) |
+ self._adb.device().WriteFile( |
+ self._backend_settings.cmdline_file, file_contents, |
+ as_root=protected) |
+ except device_errors.CommandFailedError: |
+ logging.critical('Cannot set Chrome command line. ' |
+ 'Fix this by flashing to a userdebug build.') |
+ sys.exit(1) |
def Start(self): |
self._SetUpCommandLine() |