Beispiel #1
0
    def __init__(self, device, require_root):
        assert device, (
            'AndroidPlatformBackend can only be initialized from remote device'
        )
        super(AndroidPlatformBackend, self).__init__(device)
        self._device = device_utils.DeviceUtils(device.device_id)
        self._can_elevate_privilege = False
        self._require_root = require_root
        if self._require_root:
            # Trying to root the device, if possible.
            if not self._device.HasRoot():
                try:
                    self._device.EnableRoot()
                except device_errors.CommandFailedError:
                    logging.warning('Unable to root %s', str(self._device))
            self._can_elevate_privilege = (self._device.HasRoot()
                                           or self._device.NeedsSU())
            assert self._can_elevate_privilege, (
                'Android device must have root access to run Telemetry')
        self._battery = battery_utils.BatteryUtils(self._device)
        self._surface_stats_collector = None
        self._perf_tests_setup = perf_control.PerfControl(self._device)
        self._thermal_throttle = thermal_throttle.ThermalThrottle(self._device)
        self._raw_display_frame_rate_measurements = []
        self._device_copy_script = None
        self._system_ui = None
        self._device_host_clock_offset = None
        self._video_recorder = None

        # TODO(https://crbug.com/1026296): Remove this once --chromium-output-dir
        # has a default value we can use.
        self._build_dir = util.GetUsedBuildDirectory()

        _FixPossibleAdbInstability()
Beispiel #2
0
    def testGetUsedBuildDirectoryNoBrowserDirectory(self):
        def side_effect(arg):
            return arg == os.path.join('.', 'out', 'Release_x64')

        with mock.patch('os.path.exists') as m:
            m.side_effect = side_effect
            self.assertEquals(util.GetUsedBuildDirectory(chrome_root='.'),
                              os.path.join('.', 'out', 'Release_x64'))
  def __init__(self, android_platform_backend, browser_options,
               browser_directory, profile_directory, backend_settings):
    assert isinstance(android_platform_backend,
                      android_platform_backend_module.AndroidPlatformBackend)
    super(AndroidBrowserBackend, self).__init__(
        android_platform_backend,
        browser_options=browser_options,
        browser_directory=browser_directory,
        profile_directory=profile_directory,
        supports_extensions=False,
        supports_tab_control=backend_settings.supports_tab_control)
    self._backend_settings = backend_settings

    # Initialize fields so that an explosion during init doesn't break in Close.
    self._saved_sslflag = ''
    self._app_ui = None

    # Set the debug app if needed.
    self.platform_backend.SetDebugApp(self._backend_settings.package)

    # TODO(https://crbug.com/1026296): Remove this once --chromium-output-dir
    # has a default value we can use.
    self._build_dir = util.GetUsedBuildDirectory()
Beispiel #4
0
 def testGetUsedBuildDirectoryBrowserDirectoryDoesNotExist(self):
     with mock.patch('os.path.exists') as m:
         m.return_value = False
         self.assertNotEqual(util.GetUsedBuildDirectory('/foo/test'),
                             '/foo/test')
Beispiel #5
0
 def testGetUsedBuildDirectoryBrowserDirectoryExists(self):
     with mock.patch('os.path.exists') as m:
         m.return_value = True
         self.assertEquals(util.GetUsedBuildDirectory('/foo/test'),
                           '/foo/test')