Index: tools/android/loading/device_setup.py |
diff --git a/tools/android/loading/device_setup.py b/tools/android/loading/device_setup.py |
index 0fe95fd80d357944dd6ac6ae4c8c5b425a2080c0..62b99b46239b4f2d09d6c8c7e9af8fcc94c139b9 100644 |
--- a/tools/android/loading/device_setup.py |
+++ b/tools/android/loading/device_setup.py |
@@ -105,12 +105,15 @@ def _SetUpDevice(device, package_info): |
@contextlib.contextmanager |
def WprHost(device, wpr_archive_path, record=False, |
+ network_condition_name=None, |
disable_script_injection=False): |
"""Launches web page replay host. |
Args: |
device: Android device. |
wpr_archive_path: host sided WPR archive's path. |
+ network_condition_name: Network condition name available in |
Benoit L
2016/02/22 14:11:25
tiny nit: the ordering of arguments should match t
|
+ chrome_setup.NETWORK_CONDITIONS. |
record: Enables or disables WPR archive recording. |
Returns: |
@@ -119,6 +122,9 @@ def WprHost(device, wpr_archive_path, record=False, |
""" |
assert device |
if wpr_archive_path == None: |
+ assert not record, 'WPR cannot record without a specified archive.' |
+ assert not network_condition_name, ('WPR cannot emulate network condition' + |
+ ' without a specified archive.') |
yield [] |
return |
@@ -129,6 +135,16 @@ def WprHost(device, wpr_archive_path, record=False, |
os.remove(wpr_archive_path) |
else: |
assert os.path.exists(wpr_archive_path) |
+ if network_condition_name: |
+ condition = chrome_setup.NETWORK_CONDITIONS[network_condition_name] |
+ if record: |
+ logging.warning('WPR network condition is ignored when recording.') |
+ else: |
+ wpr_server_args.extend([ |
+ '--down', chrome_setup.BandwidthToString(condition['download']), |
+ '--up', chrome_setup.BandwidthToString(condition['upload']), |
+ '--delay_ms', str(condition['latency']), |
+ '--shaping_type', 'proxy']) |
if disable_script_injection: |
# Remove default WPR injected scripts like deterministic.js which |