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

Side by Side Diff: chrome/browser/resources/options/chromeos/onc_data.js

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview ONC Data support class. Wraps a dictionary object containing 6 * @fileoverview ONC Data support class. Wraps a dictionary object containing
7 * ONC managed or unmanaged dictionaries. Supports nested dictionaries, 7 * ONC managed or unmanaged dictionaries. Supports nested dictionaries,
8 * e.g. data.getManagedProperty('VPN.Type'). 8 * e.g. data.getManagedProperty('VPN.Type').
9 */ 9 */
10 10
11 cr.exportPath('cr.onc'); 11 cr.exportPath('cr.onc');
12 12
13 cr.define('cr.onc', function() { 13 cr.define('cr.onc', function() {
14 'use strict'; 14 'use strict';
15 15
16 /** 16 /**
17 * @constructor 17 * @constructor
18 */ 18 */
19 function OncData(data) { 19 function OncData(data) {
20 this.data_ = data; 20 this.data_ = data;
21 } 21 }
22 22
23 OncData.prototype = { 23 OncData.prototype = {
24 /** @return {string} The GUID of the network. */ 24 /** @return {string} The GUID of the network. */
25 guid: function() { return this.data_['GUID']; }, 25 guid: function() {
26 return this.data_['GUID'];
27 },
26 28
27 /** 29 /**
28 * Returns either a managed property dictionary or an unmanaged value. 30 * Returns either a managed property dictionary or an unmanaged value.
29 * @param {string} key The property key. 31 * @param {string} key The property key.
30 * @return {?} The property value or dictionary if it exists, otherwise 32 * @return {?} The property value or dictionary if it exists, otherwise
31 * undefined. 33 * undefined.
32 */ 34 */
33 getManagedProperty: function(key) { 35 getManagedProperty: function(key) {
34 var data = this.data_; 36 var data = this.data_;
35 while (true) { 37 while (true) {
(...skipping 20 matching lines...) Expand all
56 while (true) { 58 while (true) {
57 var index = key.indexOf('.'); 59 var index = key.indexOf('.');
58 if (index < 0) 60 if (index < 0)
59 break; 61 break;
60 var keyComponent = key.substr(0, index); 62 var keyComponent = key.substr(0, index);
61 if (!(keyComponent in data)) 63 if (!(keyComponent in data))
62 data[keyComponent] = {}; 64 data[keyComponent] = {};
63 data = data[keyComponent]; 65 data = data[keyComponent];
64 key = key.substr(index + 1); 66 key = key.substr(index + 1);
65 } 67 }
66 if (!(key in data) || 68 if (!(key in data) || (typeof data[key] != 'object') ||
67 (typeof data[key] != 'object') ||
68 (!('Active' in data[key]) && !('Effective' in data[key]))) { 69 (!('Active' in data[key]) && !('Effective' in data[key]))) {
69 data[key] = value; 70 data[key] = value;
70 } else { 71 } else {
71 var effective = data[key]['Effective']; 72 var effective = data[key]['Effective'];
72 assert(effective != 'UserPolicy' || data[key]['UserEditable']); 73 assert(effective != 'UserPolicy' || data[key]['UserEditable']);
73 assert(effective != 'DevicePolicy' || data[key]['DeviceEditable']); 74 assert(effective != 'DevicePolicy' || data[key]['DeviceEditable']);
74 // For now, just update the active value. TODO(stevenjb): Eventually we 75 // For now, just update the active value. TODO(stevenjb): Eventually we
75 // should update the 'UserSetting' and 'Effective' properties correctly 76 // should update the 'UserSetting' and 'Effective' properties correctly
76 // and send that back to Chrome. 77 // and send that back to Chrome.
77 data[key]['Active'] = value; 78 data[key]['Active'] = value;
78 } 79 }
79 }, 80 },
80 81
81 /** 82 /**
82 * Gets the active value of a property. 83 * Gets the active value of a property.
83 * @param {string} key The property key. 84 * @param {string} key The property key.
84 * @return {?} The property value or undefined. 85 * @return {?} The property value or undefined.
85 */ 86 */
86 getActiveValue: function(key) { 87 getActiveValue: function(key) {
87 var property = this.getManagedProperty(key); 88 var property = this.getManagedProperty(key);
88 if (Array.isArray(property) || typeof property != 'object') 89 if (Array.isArray(property) || typeof property != 'object')
89 return property; 90 return property;
90 // Otherwise get the Active value (default behavior). 91 // Otherwise get the Active value (default behavior).
91 if ('Active' in property) 92 if ('Active' in property)
92 return property['Active']; 93 return property['Active'];
93 // If no Active value is defined, return the effective value if present. 94 // If no Active value is defined, return the effective value if present.
94 var effective = this.getEffectiveValueFromProperty_( 95 var effective = this.getEffectiveValueFromProperty_(
95 /** @type {Object} */(property)); 96 /** @type {Object} */ (property));
96 if (effective != undefined) 97 if (effective != undefined)
97 return effective; 98 return effective;
98 // Otherwise this is an Object but not a Managed one. 99 // Otherwise this is an Object but not a Managed one.
99 return property; 100 return property;
100 }, 101 },
101 102
102 /** 103 /**
103 * Gets the translated ONC value from the result of getActiveValue() using 104 * Gets the translated ONC value from the result of getActiveValue() using
104 * loadTimeData. If no translation exists, returns the untranslated value. 105 * loadTimeData. If no translation exists, returns the untranslated value.
105 * @param {string} key The property key. 106 * @param {string} key The property key.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 }, 183 },
183 184
184 /** 185 /**
185 * Returns the complete ONC dictionary. 186 * Returns the complete ONC dictionary.
186 */ 187 */
187 getData: function() { 188 getData: function() {
188 return this.data_; 189 return this.data_;
189 } 190 }
190 }; 191 };
191 192
192 return { 193 return {OncData: OncData};
193 OncData: OncData
194 };
195 }); 194 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698