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

Side by Side Diff: tools/cygprofile/profile_android_startup.py

Issue 1089163004: Make startup of of WPR components resilient to not starting up previous steps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2015 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 """Utility library for running a startup profile on an Android device. 5 """Utility library for running a startup profile on an Android device.
6 6
7 Sets up a device for cygprofile, disables sandboxing permissions, and sets up 7 Sets up a device for cygprofile, disables sandboxing permissions, and sets up
8 support for web page replay, device forwarding, and fake certificate authority 8 support for web page replay, device forwarding, and fake certificate authority
9 to make runs repeatable. 9 to make runs repeatable.
10 """ 10 """
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 self._is_test_ca_installed = False 128 self._is_test_ca_installed = False
129 129
130 shutil.rmtree(os.path.dirname(self._wpr_ca_cert_path), ignore_errors=True) 130 shutil.rmtree(os.path.dirname(self._wpr_ca_cert_path), ignore_errors=True)
131 self._wpr_ca_cert_path = None 131 self._wpr_ca_cert_path = None
132 self._device_cert_util = None 132 self._device_cert_util = None
133 133
134 def _BringUpWpr(self): 134 def _BringUpWpr(self):
135 """Start the WPR server on the host and the forwarder on the device.""" 135 """Start the WPR server on the host and the forwarder on the device."""
136 print 'Starting WPR on host...' 136 print 'Starting WPR on host...'
137 _DownloadFromCloudStorage(self._WPR_BUCKET, self._wpr_archive_hash) 137 _DownloadFromCloudStorage(self._WPR_BUCKET, self._wpr_archive_hash)
138 args = ['--user_closest_match']
139 if self._is_test_ca_installed:
140 args.extend(['--should_generate_certs',
141 '--https_root_ca_cert_path=' + self._wpr_ca_cert_path])
138 self._wpr_server = webpagereplay.ReplayServer(self._wpr_archive, 142 self._wpr_server = webpagereplay.ReplayServer(self._wpr_archive,
139 '127.0.0.1', 0, 0, None, 143 '127.0.0.1', 0, 0, None, args)
140 ['--should_generate_certs',
141 '--https_root_ca_cert_path=' + self._wpr_ca_cert_path,
142 '--use_closest_match'])
143 ports = self._wpr_server.StartServer()[:-1] 144 ports = self._wpr_server.StartServer()[:-1]
144 self._host_http_port = ports[0] 145 self._host_http_port = ports[0]
145 self._host_https_port = ports[1] 146 self._host_https_port = ports[1]
146 147
147 def _StopWpr(self): 148 def _StopWpr(self):
148 """ Stop the WPR and forwarder. """ 149 """ Stop the WPR and forwarder. """
149 print 'Stopping WPR on host...' 150 print 'Stopping WPR on host...'
150 if self._wpr_server: 151 if self._wpr_server:
151 self._wpr_server.StopServer() 152 self._wpr_server.StopServer()
153 self._wpr_server = None
152 154
153 def _StartForwarder(self): 155 def _StartForwarder(self):
154 """Sets up forwarding of device ports to the host, and configures chrome 156 """Sets up forwarding of device ports to the host, and configures chrome
155 to use those ports. 157 to use those ports.
156 """ 158 """
159 if not self._host_http_port or not self._host_https_port:
pasko 2015/04/15 09:59:02 I think it's easier to reason about error cases if
azarchs 2015/04/15 10:54:11 Done.
160 logging.warning('No host WPR server to forward to.')
161 return
157 print 'Starting device forwarder...' 162 print 'Starting device forwarder...'
158 forwarder.Forwarder.Map([(0, self._host_http_port), 163 forwarder.Forwarder.Map([(0, self._host_http_port),
159 (0, self._host_https_port)], 164 (0, self._host_https_port)],
160 self._device) 165 self._device)
161 device_http = forwarder.Forwarder.DevicePortForHostPort( 166 device_http = forwarder.Forwarder.DevicePortForHostPort(
162 self._host_http_port) 167 self._host_http_port)
163 device_https = forwarder.Forwarder.DevicePortForHostPort( 168 device_https = forwarder.Forwarder.DevicePortForHostPort(
164 self._host_https_port) 169 self._host_https_port)
165 self._flag_changer = flag_changer.FlagChanger( 170 self._flag_changer = flag_changer.FlagChanger(
166 self._device, self._cmdline_file) 171 self._device, self._cmdline_file)
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 print 'Pulling cyglog data...' 348 print 'Pulling cyglog data...'
344 self._SetUpHostFolders() 349 self._SetUpHostFolders()
345 self._device.old_interface.Adb().Pull( 350 self._device.old_interface.Adb().Pull(
346 self._DEVICE_CYGLOG_DIR, self._host_cyglog_dir) 351 self._DEVICE_CYGLOG_DIR, self._host_cyglog_dir)
347 files = os.listdir(self._host_cyglog_dir) 352 files = os.listdir(self._host_cyglog_dir)
348 353
349 if len(files) == 0: 354 if len(files) == 0:
350 raise NoCyglogDataError('No cyglog data was collected') 355 raise NoCyglogDataError('No cyglog data was collected')
351 356
352 return [os.path.join(self._host_cyglog_dir, x) for x in files] 357 return [os.path.join(self._host_cyglog_dir, x) for x in files]
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698