blob: 90589e349e48d927b1387ae710fcccd650398902 [file] [log] [blame]
// Copyright 2014 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.
// https://wicg.github.io/netinfo/#the-networkinformation-interface
enum ConnectionType {
"cellular",
"bluetooth",
"ethernet",
"wifi",
"wimax",
"other",
"none",
"unknown"
};
enum EffectiveConnectionType {
"slow-2g",
"2g",
"3g",
"4g"
};
typedef unrestricted double Megabit;
typedef unsigned long long Milliseconds;
[
ActiveScriptWrappable,
DependentLifetime,
Exposed=(Window,Worker)
] interface NetworkInformation : EventTarget {
[RuntimeEnabled=NetInfoDownlinkMax, MeasureAs=NetInfoType] readonly attribute ConnectionType type;
[RuntimeEnabled=NetInfoDownlinkMax, MeasureAs=NetInfoDownlinkMax] readonly attribute Megabit downlinkMax;
[RuntimeEnabled=NetInfoEffectiveType, MeasureAs=NetInfoOnChange] attribute EventHandler onchange;
[RuntimeEnabled=NetInfoDownlinkMax, MeasureAs=NetInfoOnTypeChange] attribute EventHandler ontypechange;
[RuntimeEnabled=NetInfoEffectiveType, MeasureAs=NetInfoEffectiveType] readonly attribute EffectiveConnectionType effectiveType;
[RuntimeEnabled=NetInfoRtt, MeasureAs=NetInfoRtt] readonly attribute Milliseconds rtt;
[RuntimeEnabled=NetInfoDownlink, MeasureAs=NetInfoDownlink] readonly attribute Megabit downlink;
};