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

Side by Side Diff: tools/dom/src/_chrome/utils.dart

Issue 2827793002: Format all files under tools and utils directory. (Closed)
Patch Set: Format all files under tools and utils directory. Created 3 years, 8 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
« no previous file with comments | « tools/dom/src/_chrome/file_system.dart ('k') | tools/dom/src/dart2js_Conversions.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * A set of utilities for use with the Chrome Extension APIs. 6 * A set of utilities for use with the Chrome Extension APIs.
7 * 7 *
8 * Allows for easy access to required JS objects. 8 * Allows for easy access to required JS objects.
9 */ 9 */
10 part of chrome; 10 part of chrome;
(...skipping 28 matching lines...) Expand all
39 /** 39 /**
40 * Useful functions for converting arguments. 40 * Useful functions for converting arguments.
41 */ 41 */
42 42
43 /** 43 /**
44 * Converts the given map-type argument to js-friendly format, recursively. 44 * Converts the given map-type argument to js-friendly format, recursively.
45 * Returns the new Map object. 45 * Returns the new Map object.
46 */ 46 */
47 Object _convertMapArgument(Map argument) { 47 Object _convertMapArgument(Map argument) {
48 Map m = new Map(); 48 Map m = new Map();
49 for (Object key in argument.keys) 49 for (Object key in argument.keys) m[key] = convertArgument(argument[key]);
50 m[key] = convertArgument(argument[key]);
51 return convertDartToNative_Dictionary(m); 50 return convertDartToNative_Dictionary(m);
52 } 51 }
53 52
54 /** 53 /**
55 * Converts the given list-type argument to js-friendly format, recursively. 54 * Converts the given list-type argument to js-friendly format, recursively.
56 * Returns the new List object. 55 * Returns the new List object.
57 */ 56 */
58 List _convertListArgument(List argument) { 57 List _convertListArgument(List argument) {
59 List l = new List(); 58 List l = new List();
60 for (var i = 0; i < argument.length; i ++) 59 for (var i = 0; i < argument.length; i++) l.add(convertArgument(argument[i]));
61 l.add(convertArgument(argument[i]));
62 return l; 60 return l;
63 } 61 }
64 62
65 /** 63 /**
66 * Converts the given argument Object to js-friendly format, recursively. 64 * Converts the given argument Object to js-friendly format, recursively.
67 * 65 *
68 * Flattens out all Chrome objects into their corresponding ._toMap() 66 * Flattens out all Chrome objects into their corresponding ._toMap()
69 * definitions, then converts them to JS objects. 67 * definitions, then converts them to JS objects.
70 * 68 *
71 * Returns the new argument. 69 * Returns the new argument.
72 * 70 *
73 * Cannot be used for functions. 71 * Cannot be used for functions.
74 */ 72 */
75 Object convertArgument(var argument) { 73 Object convertArgument(var argument) {
76 if (argument == null) 74 if (argument == null) return argument;
77 return argument;
78 75
79 if (argument is num || argument is String || argument is bool) 76 if (argument is num || argument is String || argument is bool)
80 return argument; 77 return argument;
81 78
82 if (argument is ChromeObject) 79 if (argument is ChromeObject) return argument._jsObject;
83 return argument._jsObject;
84 80
85 if (argument is List) 81 if (argument is List) return _convertListArgument(argument);
86 return _convertListArgument(argument);
87 82
88 if (argument is Map) 83 if (argument is Map) return _convertMapArgument(argument);
89 return _convertMapArgument(argument);
90 84
91 if (argument is Function) 85 if (argument is Function)
92 throw new Exception("Cannot serialize Function argument ${argument}."); 86 throw new Exception("Cannot serialize Function argument ${argument}.");
93 87
94 // TODO(sashab): Try and detect whether the argument is already serialized. 88 // TODO(sashab): Try and detect whether the argument is already serialized.
95 return argument; 89 return argument;
96 } 90 }
97 91
98 /// Description of a declarative rule for handling events. 92 /// Description of a declarative rule for handling events.
99 class Rule extends ChromeObject { 93 class Rule extends ChromeObject {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 127
134 set actions(List actions) { 128 set actions(List actions) {
135 JS('void', '#.actions = #', this._jsObject, convertArgument(actions)); 129 JS('void', '#.actions = #', this._jsObject, convertArgument(actions));
136 } 130 }
137 131
138 int get priority => JS('int', '#.priority', this._jsObject); 132 int get priority => JS('int', '#.priority', this._jsObject);
139 133
140 set priority(int priority) { 134 set priority(int priority) {
141 JS('void', '#.priority = #', this._jsObject, priority); 135 JS('void', '#.priority = #', this._jsObject, priority);
142 } 136 }
143
144 } 137 }
145 138
146 /** 139 /**
147 * The Event class. 140 * The Event class.
148 * 141 *
149 * Chrome Event classes extend this interface. 142 * Chrome Event classes extend this interface.
150 * 143 *
151 * e.g. 144 * e.g.
152 * 145 *
153 * // chrome.app.runtime.onLaunched 146 * // chrome.app.runtime.onLaunched
(...skipping 26 matching lines...) Expand all
180 /* 173 /*
181 * Private constructor 174 * Private constructor
182 */ 175 */
183 Event._(this._jsObject, this._callbackArity); 176 Event._(this._jsObject, this._callbackArity);
184 177
185 /* 178 /*
186 * Methods 179 * Methods
187 */ 180 */
188 181
189 /// Registers an event listener <em>callback</em> to an event. 182 /// Registers an event listener <em>callback</em> to an event.
190 void addListener(Function callback) => 183 void addListener(Function callback) => JS('void', '#.addListener(#)',
191 JS('void', 184 this._jsObject, convertDartClosureToJS(callback, this._callbackArity));
192 '#.addListener(#)',
193 this._jsObject,
194 convertDartClosureToJS(callback, this._callbackArity)
195 );
196 185
197 /// Deregisters an event listener <em>callback</em> from an event. 186 /// Deregisters an event listener <em>callback</em> from an event.
198 void removeListener(Function callback) => 187 void removeListener(Function callback) => JS('void', '#.removeListener(#)',
199 JS('void', 188 this._jsObject, convertDartClosureToJS(callback, this._callbackArity));
200 '#.removeListener(#)',
201 this._jsObject,
202 convertDartClosureToJS(callback, this._callbackArity)
203 );
204 189
205 /// Returns True if <em>callback</em> is registered to the event. 190 /// Returns True if <em>callback</em> is registered to the event.
206 bool hasListener(Function callback) => 191 bool hasListener(Function callback) => JS('bool', '#.hasListener(#)',
207 JS('bool', 192 this._jsObject, convertDartClosureToJS(callback, this._callbackArity));
208 '#.hasListener(#)',
209 this._jsObject,
210 convertDartClosureToJS(callback, this._callbackArity)
211 );
212 193
213 /// Returns true if any event listeners are registered to the event. 194 /// Returns true if any event listeners are registered to the event.
214 bool hasListeners() => 195 bool hasListeners() => JS('bool', '#.hasListeners()', this._jsObject);
215 JS('bool',
216 '#.hasListeners()',
217 this._jsObject
218 );
219 196
220 /// Registers rules to handle events. 197 /// Registers rules to handle events.
221 /// 198 ///
222 /// [eventName] is the name of the event this function affects and [rules] are 199 /// [eventName] is the name of the event this function affects and [rules] are
223 /// the rules to be registered. These do not replace previously registered 200 /// the rules to be registered. These do not replace previously registered
224 /// rules. [callback] is called with registered rules. 201 /// rules. [callback] is called with registered rules.
225 /// 202 ///
226 void addRules(String eventName, List<Rule> rules, 203 void addRules(String eventName, List<Rule> rules,
227 [void callback(List<Rule> rules)]) { 204 [void callback(List<Rule> rules)]) {
228 // proxy the callback 205 // proxy the callback
229 void __proxy_callback(List rules) { 206 void __proxy_callback(List rules) {
230 if (callback != null) { 207 if (callback != null) {
231 List<Rule> __proxy_rules = new List<Rule>(); 208 List<Rule> __proxy_rules = new List<Rule>();
232 209
233 for (Object o in rules) 210 for (Object o in rules) __proxy_rules.add(new Rule._proxy(o));
234 __proxy_rules.add(new Rule._proxy(o));
235 211
236 callback(__proxy_rules); 212 callback(__proxy_rules);
237 } 213 }
238 } 214 }
239 215
240 JS('void', 216 JS(
241 '#.addRules(#, #, #)', 217 'void',
242 this._jsObject, 218 '#.addRules(#, #, #)',
243 convertArgument(eventName), 219 this._jsObject,
244 convertArgument(rules), 220 convertArgument(eventName),
245 convertDartClosureToJS(__proxy_callback, 1) 221 convertArgument(rules),
246 ); 222 convertDartClosureToJS(__proxy_callback, 1));
247 } 223 }
248 224
249 /// Returns currently registered rules. 225 /// Returns currently registered rules.
250 /// 226 ///
251 /// [eventName] is the name of the event this function affects and, if an arra y 227 /// [eventName] is the name of the event this function affects and, if an arra y
252 /// is passed as [ruleIdentifiers], only rules with identifiers contained in 228 /// is passed as [ruleIdentifiers], only rules with identifiers contained in
253 /// this array are returned. [callback] is called with registered rules. 229 /// this array are returned. [callback] is called with registered rules.
254 /// 230 ///
255 void getRules(String eventName, [List<String> ruleIdentifiers, 231 void getRules(String eventName,
256 void callback(List<Rule> rules)]) { 232 [List<String> ruleIdentifiers, void callback(List<Rule> rules)]) {
257 // proxy the callback 233 // proxy the callback
258 void __proxy_callback(List rules) { 234 void __proxy_callback(List rules) {
259 if (callback != null) { 235 if (callback != null) {
260 List<Rule> __proxy_rules = new List<Rule>(); 236 List<Rule> __proxy_rules = new List<Rule>();
261 237
262 for (Object o in rules) 238 for (Object o in rules) __proxy_rules.add(new Rule._proxy(o));
263 __proxy_rules.add(new Rule._proxy(o));
264 239
265 callback(__proxy_rules); 240 callback(__proxy_rules);
266 } 241 }
267 } 242 }
268 243
269 JS('void', 244 JS(
270 '#.getRules(#, #, #)', 245 'void',
271 this._jsObject, 246 '#.getRules(#, #, #)',
272 convertArgument(eventName), 247 this._jsObject,
273 convertArgument(ruleIdentifiers), 248 convertArgument(eventName),
274 convertDartClosureToJS(__proxy_callback, 1) 249 convertArgument(ruleIdentifiers),
275 ); 250 convertDartClosureToJS(__proxy_callback, 1));
276 } 251 }
277 252
278 /// Unregisters currently registered rules. 253 /// Unregisters currently registered rules.
279 /// 254 ///
280 /// [eventName] is the name of the event this function affects and, if an arra y 255 /// [eventName] is the name of the event this function affects and, if an arra y
281 /// is passed as [ruleIdentifiers], only rules with identifiers contained in 256 /// is passed as [ruleIdentifiers], only rules with identifiers contained in
282 /// this array are unregistered. [callback] is called when the rules are 257 /// this array are unregistered. [callback] is called when the rules are
283 /// unregistered. 258 /// unregistered.
284 /// 259 ///
285 void removeRules(String eventName, [List<String> ruleIdentifiers, 260 void removeRules(String eventName,
286 void callback()]) => 261 [List<String> ruleIdentifiers, void callback()]) =>
287 JS('void', 262 JS(
288 '#.removeRules(#, #, #)', 263 'void',
289 this._jsObject, 264 '#.removeRules(#, #, #)',
290 convertArgument(eventName), 265 this._jsObject,
291 convertArgument(ruleIdentifiers), 266 convertArgument(eventName),
292 convertDartClosureToJS(callback, 0) 267 convertArgument(ruleIdentifiers),
293 ); 268 convertDartClosureToJS(callback, 0));
294 } 269 }
295
OLDNEW
« no previous file with comments | « tools/dom/src/_chrome/file_system.dart ('k') | tools/dom/src/dart2js_Conversions.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698