blob: caffa09c608ffb5cffc3756e8ccd7e08ad7934af [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import collections
_Configs = collections.namedtuple(
'_Configs', ('download_bandwidth_kbps,'
'upload_bandwidth_kbps,'
'round_trip_latency_ms'))
# These presets are copied from devtool's:
# https://cs.chromium.org/chromium/src/third_party/WebKit/Source/devtools/front_end/components/NetworkConditionsSelector.js?l=43
NONE = 'none'
GPRS = 'GPRS'
REGULAR_2G = 'Regular-2G'
GOOD_2G = 'Good-2G'
REGULAR_3G = 'Regular-3G'
GOOD_3G = 'Good-3G'
REGULAR_4G = 'Regular-4G'
DSL = 'DSL'
WIFI = 'WiFi'
NETWORK_CONFIGS = {
NONE: _Configs(0, 0, 0),
GPRS: _Configs(50 * 1024 / 8, 20 * 1024 / 8, 500),
REGULAR_2G: _Configs(250 * 1024 / 8, 50 * 1024 / 8, 300),
GOOD_2G: _Configs(450 * 1024 / 8, 150 * 1024 / 8, 150),
REGULAR_3G: _Configs(750 * 1024 / 8, 250 * 1024 / 8, 100),
GOOD_3G: _Configs(1.5 * 1024 * 1024 / 8, 750 * 1024 / 8, 40),
REGULAR_4G: _Configs(4 * 1024 * 1024 / 8, 3 * 1024 * 1024 / 8, 20),
DSL: _Configs(2 * 1024 * 1024 / 8, 1 * 1024 * 1024 / 8, 5),
WIFI: _Configs(30 * 1024 * 1024 / 8, 15 * 1024 * 1024 / 8, 2),
}