Index: tools/telemetry/telemetry/android_browser_backend.py |
diff --git a/tools/telemetry/telemetry/android_browser_backend.py b/tools/telemetry/telemetry/android_browser_backend.py |
index 612515e937ed85e986a65e09455c88be86ba000d..6e2e76a71265d27e3317ad629683921bc81af4c7 100644 |
--- a/tools/telemetry/telemetry/android_browser_backend.py |
+++ b/tools/telemetry/telemetry/android_browser_backend.py |
@@ -67,8 +67,10 @@ class AndroidBrowserBackend(browser_backend.BrowserBackend): |
f.flush() |
self._adb.Push(f.name, cmdline_file) |
- # Force devtools protocol on, if not already done. |
- if not is_content_shell and self._adb.IsRootEnabled(): |
+ # Force devtools protocol on, if not already done and we can access |
+ # protected files. |
+ if (not is_content_shell and |
+ self._adb.Adb().CanAccessProtectedFileContents()): |
# Make sure we can find the apps' prefs file |
app_data_dir = '/data/data/%s' % self._package |
prefs_file = (app_data_dir + |
@@ -83,7 +85,7 @@ class AndroidBrowserBackend(browser_backend.BrowserBackend): |
retries = 0 |
timeout = 3 |
time.sleep(timeout) |
- while not self._adb.Adb().GetFileContents(prefs_file): |
+ while not self._adb.Adb().GetProtectedFileContents(prefs_file): |
time.sleep(timeout) |
retries += 1 |
timeout *= 2 |
@@ -93,30 +95,22 @@ class AndroidBrowserBackend(browser_backend.BrowserBackend): |
prefs_file, self._package) |
raise browser_gone_exception.BrowserGoneException( |
'Missing preferences file.') |
- self._adb.KillAll(self._package) |
- |
- with tempfile.NamedTemporaryFile() as raw_f: |
- self._adb.Pull(prefs_file, raw_f.name) |
- with open(raw_f.name, 'r') as f: |
- txt_in = f.read() |
- preferences = json.loads(txt_in) |
- changed = False |
- if 'devtools' not in preferences: |
- preferences['devtools'] = {} |
- changed = True |
- if 'remote_enabled' not in preferences['devtools']: |
- preferences['devtools']['remote_enabled'] = True |
- changed = True |
- if preferences['devtools']['remote_enabled'] != True: |
- preferences['devtools']['remote_enabled'] = True |
- changed = True |
- if changed: |
- logging.warning('Manually enabled devtools protocol on %s' % |
- self._package) |
- with open(raw_f.name, 'w') as f: |
- txt = json.dumps(preferences, indent=2) |
- f.write(txt) |
- self._adb.Push(raw_f.name, prefs_file) |
+ self._adb.CloseApplication(self._package) |
+ |
+ preferences = json.loads(''.join( |
+ self._adb.Adb().GetProtectedFileContents(prefs_file))) |
+ changed = False |
+ if 'devtools' not in preferences: |
+ preferences['devtools'] = {} |
+ changed = True |
+ if not preferences['devtools'].get('remote_enabled'): |
+ preferences['devtools']['remote_enabled'] = True |
+ changed = True |
+ if changed: |
+ logging.warning('Manually enabled devtools protocol on %s' % |
+ self._package) |
+ txt = json.dumps(preferences, indent=2) |
+ self._adb.Adb().SetProtectedFileContents(prefs_file, txt) |
# Start it up with a fresh log. |
self._adb.RunShellCommand('logcat -c') |