| Index: ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js
|
| diff --git a/ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js b/ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js
|
| deleted file mode 100644
|
| index 1d7863509734831037a50981ddf1aa2e62dcad44..0000000000000000000000000000000000000000
|
| --- a/ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js
|
| +++ /dev/null
|
| @@ -1,469 +0,0 @@
|
| -// Copyright 2015 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.
|
| -
|
| -/**
|
| - * @fileoverview This file has two parts:
|
| - *
|
| - * 1. Typedefs for network properties. Note: These 'types' define a subset of
|
| - * ONC properties in the ONC data dictionary. The first letter is capitalized to
|
| - * match the ONC spec and avoid an extra layer of translation.
|
| - * See components/onc/docs/onc_spec.html for the complete spec.
|
| - * TODO(stevenjb): Replace with chrome.networkingPrivate.NetworkStateProperties
|
| - * once that is fully defined.
|
| - *
|
| - * 2. Helper functions to facilitate extracting and setting ONC properties.
|
| - */
|
| -
|
| -var CrOnc = {};
|
| -
|
| -/** @typedef {chrome.networkingPrivate.NetworkStateProperties} */
|
| -CrOnc.NetworkStateProperties;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.ManagedProperties} */
|
| -CrOnc.NetworkProperties;
|
| -
|
| -/** @typedef {string|number|boolean|Object|Array<Object>} */
|
| -CrOnc.NetworkPropertyType;
|
| -
|
| -/**
|
| - * Generic managed property type. This should match any of the basic managed
|
| - * types in chrome.networkingPrivate, e.g. networkingPrivate.ManagedBoolean.
|
| - * @typedef {{
|
| - * Active: (!CrOnc.NetworkPropertyType|undefined),
|
| - * Effective: (string|undefined),
|
| - * UserPolicy: (!CrOnc.NetworkPropertyType|undefined),
|
| - * DevicePolicy: (!CrOnc.NetworkPropertyType|undefined),
|
| - * UserSetting: (!CrOnc.NetworkPropertyType|undefined),
|
| - * SharedSetting: (!CrOnc.NetworkPropertyType|undefined),
|
| - * UserEditable: (boolean|undefined),
|
| - * DeviceEditable: (boolean|undefined)
|
| - * }}
|
| - */
|
| -CrOnc.ManagedProperty;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.SIMLockStatus} */
|
| -CrOnc.SIMLockStatus;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.APNProperties} */
|
| -CrOnc.APNProperties;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.CellularSimState} */
|
| -CrOnc.CellularSimState;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.IPConfigProperties} */
|
| -CrOnc.IPConfigProperties;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.ManualProxySettings} */
|
| -CrOnc.ManualProxySettings;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.ProxyLocation} */
|
| -CrOnc.ProxyLocation;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.ProxySettings} */
|
| -CrOnc.ProxySettings;
|
| -
|
| -// Modified version of IPConfigProperties to store RoutingPrefix as a
|
| -// human-readable string instead of as a number.
|
| -/**
|
| - * @typedef {{
|
| - * Gateway: (string|undefined),
|
| - * IPAddress: (string|undefined),
|
| - * NameServers: (!Array<string>|undefined),
|
| - * RoutingPrefix: (string|undefined),
|
| - * Type: (string|undefined),
|
| - * WebProxyAutoDiscoveryUrl: (string|undefined)
|
| - * }}
|
| - */
|
| -CrOnc.IPConfigUIProperties;
|
| -
|
| -/** @typedef {chrome.networkingPrivate.PaymentPortal} */
|
| -CrOnc.PaymentPortal;
|
| -
|
| -CrOnc.ActivationState = chrome.networkingPrivate.ActivationStateType;
|
| -CrOnc.ConnectionState = chrome.networkingPrivate.ConnectionStateType;
|
| -CrOnc.IPConfigType = chrome.networkingPrivate.IPConfigType;
|
| -CrOnc.ProxySettingsType = chrome.networkingPrivate.ProxySettingsType;
|
| -CrOnc.Type = chrome.networkingPrivate.NetworkType;
|
| -
|
| -/** @enum {string} */
|
| -CrOnc.IPType = {
|
| - IPV4: 'IPv4',
|
| - IPV6: 'IPv6',
|
| -};
|
| -
|
| -/** @enum {string} */
|
| -CrOnc.LockType = {
|
| - NONE: '',
|
| - PIN: 'sim-pin',
|
| - PUK: 'sim-puk',
|
| -};
|
| -
|
| -/** @enum {string} */
|
| -CrOnc.NetworkTechnology = {
|
| - CDMA1XRTT: 'CDMA1XRTT',
|
| - EDGE: 'EDGE',
|
| - EVDO: 'EVDO',
|
| - GPRS: 'GPRS',
|
| - GSM: 'GSM',
|
| - HSPA: 'HSPA',
|
| - HSPA_PLUS: 'HSPAPlus',
|
| - LTE: 'LTE',
|
| - LTE_ADVANCED: 'LTEAdvanced',
|
| - UMTS: 'UMTS',
|
| - UNKNOWN: 'Unknown',
|
| -};
|
| -
|
| -/** @enum {string} */
|
| -CrOnc.RoamingState = {
|
| - HOME: 'Home',
|
| - REQUIRED: 'Required',
|
| - ROAMING: 'Roaming',
|
| - UNKNOWN: 'Unknown',
|
| -};
|
| -
|
| -/** @enum {string} */
|
| -CrOnc.Security = {
|
| - NONE: 'None',
|
| - WEP_8021X: 'WEP-8021X',
|
| - WEP_PSK: 'WEP-PSK',
|
| - WPA_EAP: 'WPA-EAP',
|
| - WPA_PSK: 'WPA-PSK',
|
| -};
|
| -
|
| -/** @enum {string} */
|
| -CrOnc.Source = {
|
| - NONE: 'None',
|
| - DEVICE: 'Device',
|
| - DEVICE_POLICY: 'DevicePolicy',
|
| - USER: 'User',
|
| - USER_POLICY: 'UserPolicy',
|
| -};
|
| -
|
| -/**
|
| - * Helper function to retrieve the active ONC property value from a managed
|
| - * dictionary.
|
| - * @param {!CrOnc.ManagedProperty|undefined} property The managed dictionary
|
| - * for the property if it exists or undefined.
|
| - * @return {!CrOnc.NetworkPropertyType|undefined} The active property value
|
| - * if it exists, otherwise undefined.
|
| - */
|
| -CrOnc.getActiveValue = function(property) {
|
| - if (property == undefined)
|
| - return undefined;
|
| -
|
| - if (typeof property != 'object') {
|
| - console.error('getActiveValue called on non object: ' +
|
| - JSON.stringify(property));
|
| - return undefined;
|
| - }
|
| -
|
| - // Return the Active value if it exists.
|
| - if ('Active' in property)
|
| - return property['Active'];
|
| -
|
| - // If no Active value is defined, return the effective value.
|
| - if ('Effective' in property) {
|
| - var effective = property.Effective;
|
| - if (effective in property)
|
| - return property[effective];
|
| - }
|
| -
|
| - console.error('getActiveValue called on invalid ONC object: ' +
|
| - JSON.stringify(property));
|
| - return undefined;
|
| -};
|
| -
|
| -/**
|
| - * Converts a managed ONC dictionary into an unmanaged dictionary (i.e. a
|
| - * dictionary of active values).
|
| - * NOTE: This is not intended to be used with dictionaries that contain
|
| - * nested dictionaries. This will fail and return undefined in that case.
|
| - * @param {!Object|undefined} properties A managed ONC dictionary
|
| - * @return {!Object|undefined} An unmanaged version of |properties|.
|
| - */
|
| -CrOnc.getSimpleActiveProperties = function(properties) {
|
| - 'use strict';
|
| - if (!properties)
|
| - return undefined;
|
| - var result = {};
|
| - var keys = Object.keys(properties);
|
| - for (let k of keys) {
|
| - var prop = CrOnc.getActiveValue(properties[k]);
|
| - if (prop == undefined) {
|
| - console.error('getSimpleActiveProperties called on invalid ONC object:',
|
| - JSON.stringify(properties));
|
| - return undefined;
|
| - }
|
| - result[k] = prop;
|
| - }
|
| - return result;
|
| -};
|
| -
|
| -/**
|
| - * Returns an IPConfigProperties object for |type|. For IPV4, these will be the
|
| - * static properties if IPAddressConfigType is Static and StaticIPConfig is set.
|
| - * @param {!CrOnc.NetworkProperties|undefined} properties The ONC properties.
|
| - * @param {!CrOnc.IPType} type The IP Config type.
|
| - * @return {CrOnc.IPConfigProperties|undefined} The IP Config object, or
|
| - * undefined if no properties for |type| are available.
|
| - */
|
| -CrOnc.getIPConfigForType = function(properties, type) {
|
| - 'use strict';
|
| - /** @type {!CrOnc.IPConfigProperties|undefined} */ var ipConfig = undefined;
|
| - var ipConfigs = properties.IPConfigs;
|
| - if (ipConfigs) {
|
| - for (let i = 0; i < ipConfigs.length; ++i) {
|
| - ipConfig = ipConfigs[i];
|
| - if (ipConfig.Type == type)
|
| - break;
|
| - }
|
| - }
|
| - if (type != CrOnc.IPType.IPV4)
|
| - return ipConfig;
|
| -
|
| - var staticIpConfig =
|
| - /** @type {!CrOnc.IPConfigProperties|undefined} */(
|
| - CrOnc.getSimpleActiveProperties(properties.StaticIPConfig));
|
| - if (!staticIpConfig)
|
| - return ipConfig;
|
| -
|
| - // If there is no entry in IPConfigs for |type|, return the static config.
|
| - if (!ipConfig)
|
| - return staticIpConfig;
|
| -
|
| - // Otherwise, merge the appropriate static values into the result.
|
| - if (staticIpConfig.IPAddress &&
|
| - CrOnc.getActiveValue(properties.IPAddressConfigType) == 'Static') {
|
| - ipConfig.Gateway = staticIpConfig.Gateway;
|
| - ipConfig.IPAddress = staticIpConfig.IPAddress;
|
| - ipConfig.RoutingPrefix = staticIpConfig.RoutingPrefix;
|
| - ipConfig.Type = staticIpConfig.Type;
|
| - }
|
| - if (staticIpConfig.NameServers &&
|
| - CrOnc.getActiveValue(properties.NameServersConfigType) == 'Static') {
|
| - ipConfig.NameServers = staticIpConfig.NameServers;
|
| - }
|
| - return ipConfig;
|
| -};
|
| -
|
| -/**
|
| - * Gets the SignalStrength value from |properties| based on properties.Type.
|
| - * @param {!CrOnc.NetworkProperties|!CrOnc.NetworkStateProperties|undefined}
|
| - * properties The ONC network properties or state properties.
|
| - * @return {number} The signal strength value if it exists or 0.
|
| - */
|
| -CrOnc.getSignalStrength = function(properties) {
|
| - var type = properties.Type;
|
| - if (type == CrOnc.Type.CELLULAR && properties.Cellular)
|
| - return properties.Cellular.SignalStrength || 0;
|
| - if (type == CrOnc.Type.WI_FI && properties.WiFi)
|
| - return properties.WiFi.SignalStrength || 0;
|
| - if (type == CrOnc.Type.WI_MAX && properties.WiMAX)
|
| - return properties.WiMAX.SignalStrength || 0;
|
| - return 0;
|
| -}
|
| -
|
| -/**
|
| - * Gets the Managed AutoConnect dictionary from |properties| based on
|
| - * properties.Type.
|
| - * @param {!CrOnc.NetworkProperties|undefined}
|
| - * properties The ONC network properties or state properties.
|
| - * @return {!chrome.networkingPrivate.ManagedBoolean|undefined} The AutoConnect
|
| - * managed dictionary or undefined.
|
| - */
|
| -CrOnc.getManagedAutoConnect = function(properties) {
|
| - var type = properties.Type;
|
| - if (type == CrOnc.Type.CELLULAR && properties.Cellular)
|
| - return properties.Cellular.AutoConnect;
|
| - if (type == CrOnc.Type.VPN && properties.VPN)
|
| - return properties.VPN.AutoConnect;
|
| - if (type == CrOnc.Type.WI_FI && properties.WiFi)
|
| - return properties.WiFi.AutoConnect;
|
| - if (type == CrOnc.Type.WI_MAX && properties.WiMAX)
|
| - return properties.WiMAX.AutoConnect;
|
| - return undefined;
|
| -}
|
| -
|
| -/**
|
| - * Gets the AutoConnect value from |properties| based on properties.Type.
|
| - * @param {!CrOnc.NetworkProperties|undefined}
|
| - * properties The ONC network properties or state properties.
|
| - * @return {boolean} The AutoConnect value if it exists or false.
|
| - */
|
| -CrOnc.getAutoConnect = function(properties) {
|
| - var autoconnect = CrOnc.getManagedAutoConnect(properties);
|
| - return !!CrOnc.getActiveValue(autoconnect);
|
| -}
|
| -
|
| -/**
|
| - * @param {!CrOnc.NetworkProperties|!CrOnc.NetworkStateProperties|undefined}
|
| - * properties The ONC network properties or state properties.
|
| - * @return {boolean} True if |properties| is a Cellular network with a
|
| - * locked SIM.
|
| - */
|
| -CrOnc.isSimLocked = function(properties) {
|
| - if (!properties.Cellular)
|
| - return false;
|
| - var simLockStatus = properties.Cellular.SIMLockStatus;
|
| - if (simLockStatus == undefined)
|
| - return false;
|
| - return simLockStatus.LockType == CrOnc.LockType.PIN ||
|
| - simLockStatus.LockType == CrOnc.LockType.PUK;
|
| -};
|
| -
|
| -/**
|
| - * Modifies |config| to include the correct set of properties for configuring
|
| - * a network IP Address and NameServer configuration for |state|. Existing
|
| - * properties in |config| will be preserved unless invalid.
|
| - * @param {!chrome.networkingPrivate.NetworkConfigProperties} config A partial
|
| - * ONC configuration.
|
| - * @param {CrOnc.NetworkProperties|undefined} properties The ONC properties.
|
| - */
|
| -CrOnc.setValidStaticIPConfig = function(config, properties) {
|
| - if (!config.IPAddressConfigType) {
|
| - var ipConfigType = /** @type {chrome.networkingPrivate.IPConfigType} */(
|
| - CrOnc.getActiveValue(properties.IPAddressConfigType));
|
| - config.IPAddressConfigType = ipConfigType || CrOnc.IPConfigType.DHCP;
|
| - }
|
| - if (!config.NameServersConfigType) {
|
| - var nsConfigType = /** @type {chrome.networkingPrivate.IPConfigType} */(
|
| - CrOnc.getActiveValue(properties.NameServersConfigType));
|
| - config.NameServersConfigType = nsConfigType || CrOnc.IPConfigType.DHCP;
|
| - }
|
| - if (config.IPAddressConfigType != CrOnc.IPConfigType.STATIC &&
|
| - config.NameServersConfigType != CrOnc.IPConfigType.STATIC) {
|
| - if (config.hasOwnProperty('StaticIPConfig'))
|
| - delete config.StaticIPConfig;
|
| - return;
|
| - }
|
| -
|
| - if (!config.hasOwnProperty('StaticIPConfig')) {
|
| - config.StaticIPConfig =
|
| - /** @type {chrome.networkingPrivate.IPConfigProperties} */({});
|
| - }
|
| - var staticIP = config.StaticIPConfig;
|
| - var stateIPConfig = CrOnc.getIPConfigForType(properties, CrOnc.IPType.IPV4);
|
| - if (config.IPAddressConfigType == 'Static') {
|
| - staticIP.Gateway = staticIP.Gateway || stateIPConfig.Gateway || '';
|
| - staticIP.IPAddress = staticIP.IPAddress || stateIPConfig.IPAddress || '';
|
| - staticIP.RoutingPrefix =
|
| - staticIP.RoutingPrefix || stateIPConfig.RoutingPrefix || 0;
|
| - staticIP.Type = staticIP.Type || stateIPConfig.Type || CrOnc.IPType.IPV4;
|
| - }
|
| - if (config.NameServersConfigType == 'Static') {
|
| - staticIP.NameServers =
|
| - staticIP.NameServers || stateIPConfig.NameServers || [];
|
| - }
|
| -};
|
| -
|
| -
|
| -/**
|
| - * Sets the value of a property in an ONC dictionary.
|
| - * @param {!chrome.networkingPrivate.NetworkConfigProperties} properties
|
| - * The ONC property dictionary to modify.
|
| - * @param {string} key The property key which may be nested, e.g. 'Foo.Bar'.
|
| - * @param {!CrOnc.NetworkPropertyType} value The property value to set.
|
| - */
|
| -CrOnc.setProperty = function(properties, key, value) {
|
| - while (true) {
|
| - var index = key.indexOf('.');
|
| - if (index < 0)
|
| - break;
|
| - var keyComponent = key.substr(0, index);
|
| - if (!properties.hasOwnProperty(keyComponent))
|
| - properties[keyComponent] = {};
|
| - properties = properties[keyComponent];
|
| - key = key.substr(index + 1);
|
| - }
|
| - properties[key] = value;
|
| -};
|
| -
|
| -/**
|
| - * Calls setProperty with '{state.Type}.key', e.g. WiFi.AutoConnect.
|
| - * @param {!chrome.networkingPrivate.NetworkConfigProperties} properties The
|
| - * ONC properties to set. properties.Type must be set already.
|
| - * @param {string} key The type property key, e.g. 'AutoConnect'.
|
| - * @param {!CrOnc.NetworkPropertyType} value The property value to set.
|
| - */
|
| -CrOnc.setTypeProperty = function(properties, key, value) {
|
| - if (properties.Type == undefined) {
|
| - console.error('Type not defined in properties: ', properties);
|
| - return;
|
| - }
|
| - var typeKey = properties.Type + '.' + key;
|
| - CrOnc.setProperty(properties, typeKey, value);
|
| -};
|
| -
|
| -/**
|
| - * Returns the routing prefix as a string for a given prefix length.
|
| - * @param {number} prefixLength The ONC routing prefix length.
|
| - * @return {string} The corresponding netmask.
|
| - */
|
| -CrOnc.getRoutingPrefixAsNetmask = function(prefixLength) {
|
| - 'use strict';
|
| - // Return the empty string for invalid inputs.
|
| - if (prefixLength < 0 || prefixLength > 32)
|
| - return '';
|
| - var netmask = '';
|
| - for (let i = 0; i < 4; ++i) {
|
| - let remainder = 8;
|
| - if (prefixLength >= 8) {
|
| - prefixLength -= 8;
|
| - } else {
|
| - remainder = prefixLength;
|
| - prefixLength = 0;
|
| - }
|
| - if (i > 0)
|
| - netmask += '.';
|
| - let value = 0;
|
| - if (remainder != 0)
|
| - value = ((2 << (remainder - 1)) - 1) << (8 - remainder);
|
| - netmask += value.toString();
|
| - }
|
| - return netmask;
|
| -};
|
| -
|
| -/**
|
| - * Returns the routing prefix length as a number from the netmask string.
|
| - * @param {string} netmask The netmask string, e.g. 255.255.255.0.
|
| - * @return {number} The corresponding netmask or -1 if invalid.
|
| - */
|
| -CrOnc.getRoutingPrefixAsLength = function(netmask) {
|
| - 'use strict';
|
| - var prefixLength = 0;
|
| - var tokens = netmask.split('.');
|
| - if (tokens.length != 4)
|
| - return -1;
|
| - for (let i = 0; i < tokens.length; ++i) {
|
| - let token = tokens[i];
|
| - // If we already found the last mask and the current one is not
|
| - // '0' then the netmask is invalid. For example, 255.224.255.0
|
| - if (prefixLength / 8 != i) {
|
| - if (token != '0')
|
| - return -1;
|
| - } else if (token == '255') {
|
| - prefixLength += 8;
|
| - } else if (token == '254') {
|
| - prefixLength += 7;
|
| - } else if (token == '252') {
|
| - prefixLength += 6;
|
| - } else if (token == '248') {
|
| - prefixLength += 5;
|
| - } else if (token == '240') {
|
| - prefixLength += 4;
|
| - } else if (token == '224') {
|
| - prefixLength += 3;
|
| - } else if (token == '192') {
|
| - prefixLength += 2;
|
| - } else if (token == '128') {
|
| - prefixLength += 1;
|
| - } else if (token == '0') {
|
| - prefixLength += 0;
|
| - } else {
|
| - // mask is not a valid number.
|
| - return -1;
|
| - }
|
| - }
|
| - return prefixLength;
|
| -};
|
|
|