| // 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; |
| }; |