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

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

Issue 1698883002: sandwich: Adds command line flag to disable WPR injections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@d04
Patch Set: Address matt's nits Created 4 years, 10 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 | tools/android/loading/run_sandwich.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 logging
7 import os 7 import os
8 import shutil 8 import shutil
9 import subprocess 9 import subprocess
10 import sys 10 import sys
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 device.adb.ForwardRemove(local) 108 device.adb.ForwardRemove(local)
109 109
110 110
111 def _SetUpDevice(device, package_info): 111 def _SetUpDevice(device, package_info):
112 """Enables root and closes Chrome on a device.""" 112 """Enables root and closes Chrome on a device."""
113 device.EnableRoot() 113 device.EnableRoot()
114 device.KillAll(package_info.package, quiet=True) 114 device.KillAll(package_info.package, quiet=True)
115 115
116 116
117 @contextlib.contextmanager 117 @contextlib.contextmanager
118 def WprHost(device, wpr_archive_path, record=False): 118 def WprHost(device, wpr_archive_path, record=False,
119 disable_script_injection=False):
119 """Launches web page replay host. 120 """Launches web page replay host.
120 121
121 Args: 122 Args:
122 device: Android device. 123 device: Android device.
123 wpr_archive_path: host sided WPR archive's path. 124 wpr_archive_path: host sided WPR archive's path.
124 record: Enables or disables WPR archive recording. 125 record: Enables or disables WPR archive recording.
125 126
126 Returns: 127 Returns:
127 Additional flags list that may be used for chromium to load web page through 128 Additional flags list that may be used for chromium to load web page through
128 the running web page replay host. 129 the running web page replay host.
129 """ 130 """
130 assert device 131 assert device
131 if wpr_archive_path == None: 132 if wpr_archive_path == None:
132 yield [] 133 yield []
133 return 134 return
134 135
135 wpr_server_args = ['--use_closest_match'] 136 wpr_server_args = ['--use_closest_match']
136 if record: 137 if record:
137 wpr_server_args.append('--record') 138 wpr_server_args.append('--record')
138 if os.path.exists(wpr_archive_path): 139 if os.path.exists(wpr_archive_path):
139 os.remove(wpr_archive_path) 140 os.remove(wpr_archive_path)
140 else: 141 else:
141 assert os.path.exists(wpr_archive_path) 142 assert os.path.exists(wpr_archive_path)
142 143
144 if disable_script_injection:
145 # Remove default WPR injected scripts like deterministic.js which
146 # overrides Math.random.
147 wpr_server_args.extend(['--inject_scripts', ''])
148
143 # Deploy certification authority to the device. 149 # Deploy certification authority to the device.
144 temp_certificate_dir = tempfile.mkdtemp() 150 temp_certificate_dir = tempfile.mkdtemp()
145 wpr_ca_cert_path = os.path.join(temp_certificate_dir, 'testca.pem') 151 wpr_ca_cert_path = os.path.join(temp_certificate_dir, 'testca.pem')
146 certutils.write_dummy_ca_cert(*certutils.generate_dummy_ca_cert(), 152 certutils.write_dummy_ca_cert(*certutils.generate_dummy_ca_cert(),
147 cert_path=wpr_ca_cert_path) 153 cert_path=wpr_ca_cert_path)
148 154
149 device_cert_util = adb_install_cert.AndroidCertInstaller( 155 device_cert_util = adb_install_cert.AndroidCertInstaller(
150 device.adb.GetDeviceSerial(), None, wpr_ca_cert_path) 156 device.adb.GetDeviceSerial(), None, wpr_ca_cert_path)
151 device_cert_util.install_cert(overwrite_cert=True) 157 device_cert_util.install_cert(overwrite_cert=True)
152 wpr_server_args.extend(['--should_generate_certs', 158 wpr_server_args.extend(['--should_generate_certs',
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 package: the key for chrome package info. 259 package: the key for chrome package info.
254 fn: the function to execute that launches chrome and performs the 260 fn: the function to execute that launches chrome and performs the
255 appropriate instrumentation. The function will receive a 261 appropriate instrumentation. The function will receive a
256 DevToolsConnection as its sole parameter. 262 DevToolsConnection as its sole parameter.
257 263
258 Returns: 264 Returns:
259 As fn() returns. 265 As fn() returns.
260 """ 266 """
261 with DeviceConnection(device, package) as connection: 267 with DeviceConnection(device, package) as connection:
262 return fn(connection) 268 return fn(connection)
OLDNEW
« no previous file with comments | « no previous file | tools/android/loading/run_sandwich.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698