OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import logging | 5 import logging |
6 import os | 6 import os |
7 import subprocess | 7 import subprocess |
8 import sys | 8 import sys |
9 import time | 9 import time |
10 | 10 |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 | 200 |
201 args = [self._backend_settings.pseudo_exec_name] | 201 args = [self._backend_settings.pseudo_exec_name] |
202 args.extend(self.GetBrowserStartupArgs()) | 202 args.extend(self.GetBrowserStartupArgs()) |
203 args = ' '.join(map(QuoteIfNeeded, args)) | 203 args = ' '.join(map(QuoteIfNeeded, args)) |
204 | 204 |
205 self._SetCommandLineFile(args) | 205 self._SetCommandLineFile(args) |
206 | 206 |
207 def _SetCommandLineFile(self, file_contents): | 207 def _SetCommandLineFile(self, file_contents): |
208 def IsProtectedFile(name): | 208 def IsProtectedFile(name): |
209 if self._adb.Adb().FileExistsOnDevice(name): | 209 if self._adb.Adb().FileExistsOnDevice(name): |
210 ls_output = self._adb.RunShellCommand('ls -l %s' % name)[0] | 210 return not self._adb.Adb().IsFileWritableOnDevice(name) |
211 return ls_output == 'opendir failed, Permission denied' or \ | |
212 ls_output.split()[1] == 'root' | |
213 else: | 211 else: |
214 parent_name = os.path.dirname(name) | 212 parent_name = os.path.dirname(name) |
215 if parent_name != '': | 213 if parent_name != '': |
216 return IsProtectedFile(parent_name) | 214 return IsProtectedFile(parent_name) |
217 else: | 215 else: |
218 return True | 216 return True |
219 | 217 |
220 if IsProtectedFile(self._backend_settings.cmdline_file): | 218 if IsProtectedFile(self._backend_settings.cmdline_file): |
221 if not self._adb.Adb().CanAccessProtectedFileContents(): | 219 if not self._adb.Adb().CanAccessProtectedFileContents(): |
222 logging.critical('Cannot set Chrome command line. ' | 220 logging.critical('Cannot set Chrome command line. ' |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 forwarder.SetPorts(*port_pairs) | 351 forwarder.SetPorts(*port_pairs) |
354 assert self.WEBPAGEREPLAY_HOST == forwarder.host_ip, ( | 352 assert self.WEBPAGEREPLAY_HOST == forwarder.host_ip, ( |
355 'Host IP address on the RNDIS interface changed. Must restart browser!') | 353 'Host IP address on the RNDIS interface changed. Must restart browser!') |
356 if self._override_dns: | 354 if self._override_dns: |
357 forwarder.OverrideDns() | 355 forwarder.OverrideDns() |
358 return forwarder | 356 return forwarder |
359 assert not self._override_dns, ('The user-space forwarder does not support ' | 357 assert not self._override_dns, ('The user-space forwarder does not support ' |
360 'DNS override!') | 358 'DNS override!') |
361 logging.warning('Using the user-space forwarder.\n') | 359 logging.warning('Using the user-space forwarder.\n') |
362 return adb_commands.Forwarder(self._adb, *port_pairs) | 360 return adb_commands.Forwarder(self._adb, *port_pairs) |
OLD | NEW |