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

Side by Side Diff: tools/android/loading/device_setup.py

Issue 1619713002: Upgrade analyze.py and related scripts to new world order. (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 unified diff | Download patch
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 contextlib 5 import contextlib
6 import logging
6 import os 7 import os
7 import sys 8 import sys
8 import time 9 import time
9 10
10 _SRC_DIR = os.path.abspath(os.path.join( 11 _SRC_DIR = os.path.abspath(os.path.join(
11 os.path.dirname(__file__), '..', '..', '..')) 12 os.path.dirname(__file__), '..', '..', '..'))
12 13
13 sys.path.append(os.path.join(_SRC_DIR, 'third_party', 'catapult', 'devil')) 14 sys.path.append(os.path.join(_SRC_DIR, 'third_party', 'catapult', 'devil'))
15 from devil.android import device_utils
14 from devil.android.sdk import intent 16 from devil.android.sdk import intent
15 17
16 sys.path.append(os.path.join(_SRC_DIR, 'build', 'android')) 18 sys.path.append(os.path.join(_SRC_DIR, 'build', 'android'))
17 from pylib import constants 19 from pylib import constants
18 from pylib import flag_changer 20 from pylib import flag_changer
19 21
20 import devtools_monitor 22 import devtools_monitor
21 23
22 DEVTOOLS_PORT = 9222 24 DEVTOOLS_PORT = 9222
23 DEVTOOLS_HOSTNAME = 'localhost' 25 DEVTOOLS_HOSTNAME = 'localhost'
24 DEFAULT_CHROME_PACKAGE = 'chrome' 26 DEFAULT_CHROME_PACKAGE = 'chrome'
25 27
28
29 class DeviceSetupException(Exception):
30 def __init__(self, msg):
31 super(DeviceSetupException, self).__init__(msg)
32 logging.error(msg)
33
34
35 def GetFirstDevice():
36 """Returns the first connected device.
37
38 Raises:
39 DeviceSetupException if there is no such device.
40 """
41 devices = device_utils.DeviceUtils.HealthyDevices()
42 if not devices:
43 raise DeviceSetupException('No devices found')
44 return devices[0]
45
46
26 @contextlib.contextmanager 47 @contextlib.contextmanager
27 def FlagReplacer(device, command_line_path, new_flags): 48 def FlagReplacer(device, command_line_path, new_flags):
28 """Replaces chrome flags in a context, restores them afterwards. 49 """Replaces chrome flags in a context, restores them afterwards.
29 50
30 Args: 51 Args:
31 device: Device to target, from DeviceUtils. Can be None, in which case this 52 device: Device to target, from DeviceUtils. Can be None, in which case this
32 context manager is a no-op. 53 context manager is a no-op.
33 command_line_path: Full path to the command-line file. 54 command_line_path: Full path to the command-line file.
34 new_flags: Flags to replace. 55 new_flags: Flags to replace.
35 """ 56 """
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 97
77 Sets up and restores any device and tracing appropriately 98 Sets up and restores any device and tracing appropriately
78 99
79 Args: 100 Args:
80 device: Android device, or None for a local run (in which case chrome needs 101 device: Android device, or None for a local run (in which case chrome needs
81 to have been started with --remote-debugging-port=XXX). 102 to have been started with --remote-debugging-port=XXX).
82 package: the key for chrome package info. 103 package: the key for chrome package info.
83 104
84 Returns: 105 Returns:
85 A context manager type which evaluates to a DevToolsConnection. 106 A context manager type which evaluates to a DevToolsConnection.
107
Benoit L 2016/01/21 14:14:38 nit: no blank line here.
mattcary 2016/01/21 16:11:35 Done.
86 """ 108 """
87 package_info = constants.PACKAGE_INFO[package] 109 package_info = constants.PACKAGE_INFO[package]
88 command_line_path = '/data/local/chrome-command-line' 110 command_line_path = '/data/local/chrome-command-line'
89 new_flags = ['--enable-test-events', 111 new_flags = ['--enable-test-events',
90 '--remote-debugging-port=%d' % port] 112 '--remote-debugging-port=%d' % port]
91 if device: 113 if device:
92 _SetUpDevice(device, package_info) 114 _SetUpDevice(device, package_info)
93 with FlagReplacer(device, command_line_path, new_flags): 115 with FlagReplacer(device, command_line_path, new_flags):
94 if device: 116 if device:
95 start_intent = intent.Intent( 117 start_intent = intent.Intent(
(...skipping 17 matching lines...) Expand all
113 package: the key for chrome package info. 135 package: the key for chrome package info.
114 fn: the function to execute that launches chrome and performs the 136 fn: the function to execute that launches chrome and performs the
115 appropriate instrumentation. The function will receive a 137 appropriate instrumentation. The function will receive a
116 DevToolsConnection as its sole parameter. 138 DevToolsConnection as its sole parameter.
117 139
118 Returns: 140 Returns:
119 As fn() returns. 141 As fn() returns.
120 """ 142 """
121 with DeviceConnection(device, package) as connection: 143 with DeviceConnection(device, package) as connection:
122 return fn(connection) 144 return fn(connection)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698