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

Side by Side Diff: chrome/browser/resources/chromeos/network/network_config.js

Issue 260083007: Replace chrome://network implementation with networkConfig API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase +Feedback Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 'use strict';
6
7 /**
8 * @fileoverview This object provides a similar API to chrome.networkingPrivate.
9 * It simulates the extension callback model by storing callbacks in a member
10 * object and invoking them when the corresponding method is called by Chrome in
11 * response to a chrome.send call.
12 */
13
14 var networkConfig = {
15 /**
16 * Return the property associated with a key (which may reference a
17 * sub-object).
18 *
19 * @param {Object} properties The object containing the network properties.
20 * @param {string} key The ONC key for the property. May refer to a nested
21 * propety, e.g. 'WiFi.Security'.
xiyuan 2014/05/23 22:12:19 nit: add two more spaces before "property".
stevenjb 2014/05/27 15:58:35 Done.
22 * @return {Mixed} The value associated with the property.
23 */
24 getValueFromProperties: function(properties, key) {
25 if (!key) {
26 console.error('Empty key');
27 return undefined;
28 }
29 var dot = key.indexOf('.');
30 if (dot > 0) {
31 var key1 = key.substring(0, dot);
32 var key2 = key.substring(dot + 1);
33 var subobject = properties[key1];
34 if (subobject)
35 return this.getValueFromProperties(subobject, key2);
36 }
37 return properties[key];
38 },
39
40 /**
41 * Generate a unique id for 'callback' and store it for future retrieval.
42 *
43 * @param {function} callback The associated callback.
44 * @return {integer} The id of the callback.
45 * @private
46 */
47 callbackId: 1,
48 callbackMap: {},
49 storeCallback_: function(callback) {
50 var id = this.callbackId++;
51 this.callbackMap[id] = callback;
52 return id;
53 },
54
55 /**
56 * Retrieve the callback associated with |id| and remove it from the map.
57 *
58 * @param {integer} id The id of the callback.
59 * @return {function} The associated callback.
60 * @private
61 */
62 retrieveCallback_: function(id) {
63 var callback = this.callbackMap[id];
64 delete this.callbackMap[id];
65 return callback;
66 },
67
68 /**
69 * Callback invoked by Chrome.
70 *
71 * @param {Array} args A list of arguments passed to the callback. The first
72 * entry must be the callbackId passed to chrome.send.
73 */
74 chromeCallbackSuccess: function(args) {
75 var callbackId = args.shift();
76 var callback = this.retrieveCallback_(callbackId);
77 this.lastError = '';
78 if (callback)
79 callback.apply(null, args);
80 else
81 console.error('Callback not found for id: ' + callbackId);
82 },
83
84 /**
85 * Error Callback invoked by Chrome. Sets lastError and logs to the console.
86 *
87 * @param {Args} args A list of arguments. The first entry must be the
88 * callbackId passed to chrome.send.
89 */
90 lastError: '',
91 chromeCallbackError: function(args) {
92 var callbackId = args.shift();
93 this.lastError = args.shift();
94 console.error('Callback error: "' + this.lastError);
95 // We still invoke the callback, but with null args. The callback should
96 // check this.lastError and handle that.
97 var callback = this.retrieveCallback_(callbackId);
98 if (callback)
99 callback.apply(null, null);
100 },
101
102 /**
103 * Implement networkingPrivate.getProperties. See networking_private.json.
104 *
105 * @param {string} guid The guid identifying the network.
106 * @param {function()} callback The callback to call on completion.
107 */
108 getProperties: function(guid, callback) {
109 var callbackId = this.storeCallback_(callback);
110 chrome.send('networkConfig.getProperties', [callbackId, guid]);
111 },
112
113 /**
114 * Implement networkingPrivate.getNetworks. See networking_private.json.
115 *
116 * @param {string} guid The guid identifying the network.
117 * @param {function()} callback The callback to call on completion.
118 */
119 getNetworks: function(filter, callback) {
120 var callbackId = this.storeCallback_(callback);
121 chrome.send('networkConfig.getNetworks', [callbackId, filter]);
122 }
123 };
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/network.js ('k') | chrome/browser/resources/chromeos/network_ui/network_ui.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698