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

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: Use callback id map, add getProperties 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 // This object provides a similar API to chrome.networkingPrivate. It simulates
8 // the extension callback model by storing callbacks in a member object and
9 // invoking them when the corresponding method is called by Chrome in response
10 // to a chrome.send call.
11
12 var networkConfig = {
13 // ONC types
14 Type: {
15 All: 'All',
16 Cellular: 'Cellular',
17 Ethernet: 'Ethernet',
18 VPN: 'VPN',
19 WiFi: 'WiFi'
20 },
21
22 // ONC Service properties
23 Service: {
pneubeck (no reviews) 2014/05/02 09:43:46 The term 'Service' doesn't appear in ONC (so far).
stevenjb 2014/05/02 22:07:38 Or 'ONC'?
pneubeck (no reviews) 2014/05/08 09:21:43 Fine with me, but then there should at least be a
24 Address: 'Address',
25 Cellular: {
26 NetworkTechnology: 'Cellular.NetworkTechnology',
pneubeck (no reviews) 2014/05/02 09:43:46 optional: since an access by path of a property d
stevenjb 2014/05/02 22:07:38 I think the implementation of that would be more c
27 ActivationState: 'Cellular.ActivationState',
28 RoamingState: 'Cellular.RoamingState',
29 OutOfCredits: 'Cellular.OutOfCredits'
30 },
31 Connectable: 'Connectable',
32 ConnectionState: 'ConnectionState',
33 EAP: {
34 EAP: 'EAP.EAP'
35 },
36 ErrorState: 'ErrorState',
37 GUID: 'GUID',
38 Name: 'Name',
39 OncSource: 'onc_source',
pneubeck (no reviews) 2014/05/02 09:43:46 add a comment: 'temporary' in the future we shoul
stevenjb 2014/05/02 22:07:38 Done.
40 Profile: 'Profile',
41 WiFi: {
42 Security: 'WiFi.Security',
43 SignalStrength: 'WiFi.SignalStrength'
44 },
45 ServicePath: 'ServicePath',
46 Type: 'Type'
47 },
48
49 /**
50 * Associate the callback with |id|
51 *
52 * @param {function} callback The associated callback
53 * @return {integer} The id of the callback
54 */
55 callbackId: 1,
56 callbackMap: {},
57 rememberCallback: function(callback) {
58 var id = networkConfig.callbackId++;
59 networkConfig.callbackMap[id] = callback;
60 return id;
61 },
62
63 /**
64 * Return the callback associated with |id|
65 *
66 * @param {integer} id The id of the callback
67 * @return {function} The associated callback
68 */
69 getCallback: function(id) {
pneubeck (no reviews) 2014/05/02 09:43:46 get -> pop/take/remove
stevenjb 2014/05/02 22:07:38 remember/get -> store/retrieve
70 var callback = networkConfig.callbackMap[id];
71 delete networkConfig.callbackMap[id];
72 return callback;
73 },
74
75 /**
76 * Callback invoked by Chrome
77 *
78 * @param {string} data A list of arguments passed to the callback
pneubeck (no reviews) 2014/05/02 09:43:46 optional: mention, first entry of list is callback
stevenjb 2014/05/02 22:07:38 Done.
79 */
80 chromeCallback: function(data) {
pneubeck (no reviews) 2014/05/02 09:43:46 unify the naming of chromeCallback vs. chromeError
stevenjb 2014/05/02 22:07:38 chromeCallbackSuccess / chromeCallbackError
81 var callbackId = data.shift();
82 var callback = networkConfig.getCallback(callbackId);
83 if (callback)
84 callback(data);
pneubeck (no reviews) 2014/05/02 09:43:46 callback.apply(null, data)
stevenjb 2014/05/02 22:07:38 Interesting. I'll need to change the callbacks to
85 else
86 console.log('Callback not found for id: ' + callbackId);
pneubeck (no reviews) 2014/05/02 09:43:46 log -> error
stevenjb 2014/05/02 22:07:38 Done.
87 },
88
89 /**
90 * Error Callback invoked by Chrome
91 *
92 * @param {string} data A list of arguments passed to the callback
pneubeck (no reviews) 2014/05/02 09:43:46 optional: mention, first entry of list is callback
stevenjb 2014/05/02 22:07:38 Done.
93 */
94 chromeError: function(data) {
95 var callbackId = data.shift();
96 var error = data.shift();
97 // Get the callback so that it is deleted from the map.
98 networkConfig.getCallback(callbackId);
99 console.log('Callback error: '' + error + '' for id: ' + callbackId);
pneubeck (no reviews) 2014/05/02 09:43:46 log -> error In case of an error, ext. APIs usual
stevenjb 2014/05/02 22:07:38 Hmm, I'd assumed that was an 'Extensions' mechanis
pneubeck (no reviews) 2014/05/08 09:21:43 The global is only for reporting an error to the c
100 },
101
102 /**
103 * Implement networkingPrivate.getProperties
104 *
105 * @param {string} type The type of networks to return
106 */
107 getProperties: function(guid, callback) {
108 var callbackId = networkConfig.rememberCallback(callback);
109 chrome.send('networkConfig.getProperties', [callbackId, guid]);
110 },
111
112 /**
113 * Implement networkingPrivate.getVisibleNetworks
114 *
115 * @param {string} type The type of networks to return
116 */
117 getVisibleNetworks: function(type, callback) {
118 var callbackId = networkConfig.rememberCallback(callback);
119 chrome.send('networkConfig.getVisibleNetworks', [callbackId, type]);
120 }
121
122 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698