| Index: tools/telemetry/telemetry/internal/backends/chrome/android_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/internal/backends/chrome/android_browser_backend.py b/tools/telemetry/telemetry/internal/backends/chrome/android_browser_backend.py
|
| index 698b300573beadbd144da9e0d10f803e95e234c4..90bf88057949f91fb1228cd0b69f613d589aae1d 100644
|
| --- a/tools/telemetry/telemetry/internal/backends/chrome/android_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/internal/backends/chrome/android_browser_backend.py
|
| @@ -9,17 +9,14 @@
|
| from telemetry.core.platform import android_platform_backend as \
|
| android_platform_backend_module
|
| from telemetry.core import util
|
| +from telemetry.internal.backends import adb_commands
|
| from telemetry.internal.backends import android_command_line_backend
|
| from telemetry.internal.backends import browser_backend
|
| from telemetry.internal.backends.chrome import chrome_browser_backend
|
| from telemetry.internal import forwarders
|
|
|
| util.AddDirToPythonPath(util.GetChromiumSrcDir(), 'build', 'android')
|
| -try:
|
| - from pylib import ports # pylint: disable=import-error
|
| -except ImportError:
|
| - ports = None
|
| -from pylib.device import intent # pylint: disable=import-error
|
| +from pylib.device import intent # pylint: disable=F0401
|
|
|
|
|
| class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| @@ -46,7 +43,7 @@
|
|
|
| # TODO(tonyg): This is flaky because it doesn't reserve the port that it
|
| # allocates. Need to fix this.
|
| - self._port = ports.AllocateTestServerPort()
|
| + self._port = adb_commands.AllocateTestServerPort()
|
|
|
| # TODO(wuhu): Move to network controller backend.
|
| self.platform_backend.InstallTestCa()
|
| @@ -54,7 +51,7 @@
|
| # Kill old browser.
|
| self._KillBrowser()
|
|
|
| - if self.device.HasRoot() or self.device.NeedsSU():
|
| + if self._adb.device().old_interface.CanAccessProtectedFileContents():
|
| if self.browser_options.profile_dir:
|
| self.platform_backend.PushProfile(
|
| self._backend_settings.package,
|
| @@ -76,17 +73,17 @@
|
| self.platform_backend.SetDebugApp(self._backend_settings.package)
|
|
|
| @property
|
| - def device(self):
|
| - return self.platform_backend.device
|
| + def _adb(self):
|
| + return self.platform_backend.adb
|
|
|
| def _KillBrowser(self):
|
| - if self.device.IsUserBuild():
|
| + if self._adb.device().IsUserBuild():
|
| self.platform_backend.StopApplication(self._backend_settings.package)
|
| else:
|
| self.platform_backend.KillApplication(self._backend_settings.package)
|
|
|
| def Start(self):
|
| - self.device.RunShellCommand('logcat -c')
|
| + self._adb.device().RunShellCommand('logcat -c')
|
| if self.browser_options.startup_url:
|
| url = self.browser_options.startup_url
|
| elif self.browser_options.profile_dir:
|
| @@ -100,15 +97,15 @@
|
|
|
| browser_startup_args = self.GetBrowserStartupArgs()
|
| with android_command_line_backend.SetUpCommandLineFlags(
|
| - self.device, self._backend_settings, browser_startup_args):
|
| - self.device.StartActivity(
|
| + self._adb.device(), self._backend_settings, browser_startup_args):
|
| + self._adb.device().StartActivity(
|
| intent.Intent(package=self._backend_settings.package,
|
| activity=self._backend_settings.activity,
|
| action=None, data=url, category=None),
|
| blocking=True)
|
|
|
| remote_devtools_port = self._backend_settings.GetDevtoolsRemotePort(
|
| - self.device)
|
| + self._adb)
|
| self.platform_backend.ForwardHostToDevice(self._port,
|
| remote_devtools_port)
|
| try:
|
| @@ -116,7 +113,8 @@
|
| self._InitDevtoolsClientBackend(remote_devtools_port)
|
| except exceptions.BrowserGoneException:
|
| logging.critical('Failed to connect to browser.')
|
| - if not (self.device.HasRoot() or self.device.NeedsSU()):
|
| + device = self._adb.device()
|
| + if not device.old_interface.CanAccessProtectedFileContents():
|
| logging.critical(
|
| 'Resolve this by either: '
|
| '(1) Flashing to a userdebug build OR '
|
| @@ -137,11 +135,15 @@
|
| return args
|
|
|
| @property
|
| + def adb(self):
|
| + return self._adb
|
| +
|
| + @property
|
| def pid(self):
|
| - pids = self.device.GetPids(self._backend_settings.package)
|
| - if not pids or self._backend_settings.package not in pids:
|
| + pids = self._adb.ExtractPid(self._backend_settings.package)
|
| + if not pids:
|
| raise exceptions.BrowserGoneException(self.browser)
|
| - return int(pids[self._backend_settings.package])
|
| + return int(pids[0])
|
|
|
| @property
|
| def browser_directory(self):
|
|
|