Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: tools/telemetry/telemetry/internal/backends/android_command_line_backend.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/internal/backends/android_command_line_backend.py
diff --git a/tools/telemetry/telemetry/internal/backends/android_command_line_backend.py b/tools/telemetry/telemetry/internal/backends/android_command_line_backend.py
deleted file mode 100644
index e1200f92c3344ca50b5610d29a98a599c65f0a2e..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/internal/backends/android_command_line_backend.py
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import logging
-import pipes
-import sys
-
-from devil.android import device_errors # pylint: disable=import-error
-
-
-def _QuoteIfNeeded(arg):
- # Properly escape "key=valueA valueB" to "key='valueA valueB'"
- # Values without spaces, or that seem to be quoted are left untouched.
- # This is required so CommandLine.java can parse valueB correctly rather
- # than as a separate switch.
- params = arg.split('=', 1)
- if len(params) != 2:
- return arg
- key, values = params
- if ' ' not in values:
- return arg
- if values[0] in '"\'' and values[-1] == values[0]:
- return arg
- return '%s=%s' % (key, pipes.quote(values))
-
-
-class SetUpCommandLineFlags(object):
- """A context manager for setting up the android command line flags.
-
- This provides a readable way of using the android command line backend class.
- Example usage:
-
- with android_command_line_backend.SetUpCommandLineFlags(
- device, backend_settings, startup_args):
- # Something to run while the command line flags are set appropriately.
- """
- def __init__(self, device, backend_settings, startup_args):
- self._android_command_line_backend = _AndroidCommandLineBackend(
- device, backend_settings, startup_args)
-
- def __enter__(self):
- self._android_command_line_backend.SetUpCommandLineFlags()
-
- def __exit__(self, *args):
- self._android_command_line_backend.RestoreCommandLineFlags()
-
-
-class _AndroidCommandLineBackend(object):
- """The backend for providing command line flags on android.
-
- There are command line flags that Chromium accept in order to enable
- particular features or modify otherwise default functionality. To set the
- flags for Chrome on Android, specific files on the device must be updated
- with the flags to enable. This class provides a wrapper around this
- functionality.
- """
-
- def __init__(self, device, backend_settings, startup_args):
- self._device = device
- self._backend_settings = backend_settings
- self._startup_args = startup_args
- self._saved_command_line_file_contents = None
-
- @property
- def command_line_file(self):
- return self._backend_settings.GetCommandLineFile(self._device.IsUserBuild())
-
- def SetUpCommandLineFlags(self):
- args = [self._backend_settings.pseudo_exec_name]
- args.extend(self._startup_args)
- content = ' '.join(_QuoteIfNeeded(arg) for arg in args)
-
- try:
- # Save the current command line to restore later, except if it appears to
- # be a Telemetry created one. This is to prevent a common bug where
- # --host-resolver-rules borks people's browsers if something goes wrong
- # with Telemetry.
- self._saved_command_line_file_contents = self._ReadFile()
- if (self._saved_command_line_file_contents and
- '--host-resolver-rules' in self._saved_command_line_file_contents):
- self._saved_command_line_file_contents = None
- except device_errors.CommandFailedError:
- self._saved_command_line_file_contents = None
-
- try:
- self._WriteFile(content)
- except device_errors.CommandFailedError as exc:
- logging.critical(exc)
- logging.critical('Cannot set Chrome command line. '
- 'Fix this by flashing to a userdebug build.')
- sys.exit(1)
-
- def RestoreCommandLineFlags(self):
- if self._saved_command_line_file_contents is None:
- self._RemoveFile()
- else:
- self._WriteFile(self._saved_command_line_file_contents)
-
- def _ReadFile(self):
- if self._device.PathExists(self.command_line_file):
- return self._device.ReadFile(self.command_line_file, as_root=True)
- else:
- return None
-
- def _WriteFile(self, contents):
- self._device.WriteFile(self.command_line_file, contents, as_root=True)
-
- def _RemoveFile(self):
- self._device.RunShellCommand(['rm', '-f', self.command_line_file],
- as_root=True, check_return=True)

Powered by Google App Engine
This is Rietveld 408576698