Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: ui/webui/resources/cr_elements/v1_0/network/cr_onc_types.js

Issue 1406023003: Elim cr_elements/v1_0 subdirectory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
-};

Powered by Google App Engine
This is Rietveld 408576698