1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 from py_trace_event
import trace_event
8 class NetworkController(object):
9 """Control network settings and servers to simulate the Web.
11 Network changes include forwarding device ports to host platform ports.
12 Web Page Replay is used to record and replay HTTP/HTTPS responses.
15 __metaclass__
= trace_event
.TracedMetaClass
17 def __init__(self
, network_controller_backend
):
18 self
._network
_controller
_backend
= network_controller_backend
20 def InitializeIfNeeded(self
, use_live_traffic
=False):
21 self
._network
_controller
_backend
.InitializeIfNeeded(use_live_traffic
)
23 def Open(self
, wpr_mode
, extra_wpr_args
):
24 self
._network
_controller
_backend
.Open(wpr_mode
, extra_wpr_args
)
26 def UpdateTrafficSettings(self
, round_trip_latency_ms
=None,
27 download_bandwidth_kbps
=None, upload_bandwidth_kbps
=None):
28 self
._network
_controller
_backend
.ts_proxy_server
.UpdateTrafficSettings(
29 round_trip_latency_ms
, download_bandwidth_kbps
, upload_bandwidth_kbps
)
33 return self
._network
_controller
_backend
.is_open
36 self
._network
_controller
_backend
.Close()
38 def StartReplay(self
, archive_path
, make_javascript_deterministic
=False):
39 self
._network
_controller
_backend
.StartReplay(
40 archive_path
, make_javascript_deterministic
)
43 self
._network
_controller
_backend
.StopReplay()