OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // DO NOT EDIT | 5 // DO NOT EDIT |
6 // Auto-generated dart:html library. | 6 // Auto-generated dart:html library. |
7 | 7 |
8 /** | 8 /** |
9 * HTML elements and other resources for web-based applications that need to | 9 * HTML elements and other resources for web-based applications that need to |
10 * interact with the browser and the DOM (Document Object Model). | 10 * interact with the browser and the DOM (Document Object Model). |
(...skipping 19 matching lines...) Expand all Loading... |
30 * on Github. | 30 * on Github. |
31 */ | 31 */ |
32 library dart.dom.html; | 32 library dart.dom.html; |
33 | 33 |
34 import 'dart:async'; | 34 import 'dart:async'; |
35 import 'dart:collection'; | 35 import 'dart:collection'; |
36 import 'dart:_internal' hide Symbol; | 36 import 'dart:_internal' hide Symbol; |
37 import 'dart:html_common'; | 37 import 'dart:html_common'; |
38 import 'dart:indexed_db'; | 38 import 'dart:indexed_db'; |
39 import 'dart:indexed_db' show indexed_dbBlinkMap; | 39 import 'dart:indexed_db' show indexed_dbBlinkMap; |
40 import 'dart:indexed_db' show indexed_dbBlinkFunctionMap; | |
41 import 'dart:isolate'; | 40 import 'dart:isolate'; |
42 import 'dart:js' as js; | 41 import 'dart:js' as js; |
43 import "dart:convert"; | 42 import "dart:convert"; |
44 import 'dart:math'; | 43 import 'dart:math'; |
45 // TODO(vsm): Remove this when we can do the proper checking in | 44 // TODO(vsm): Remove this when we can do the proper checking in |
46 // native code for custom elements. | 45 // native code for custom elements. |
47 import 'dart:mirrors'; | 46 import 'dart:mirrors'; |
48 import 'dart:nativewrappers'; | 47 import 'dart:nativewrappers'; |
49 import 'dart:typed_data'; | 48 import 'dart:typed_data'; |
50 import 'dart:web_gl' as gl; | 49 import 'dart:web_gl' as gl; |
51 import 'dart:web_gl' show web_glBlinkMap; | 50 import 'dart:web_gl' show web_glBlinkMap; |
52 import 'dart:web_gl' show web_glBlinkFunctionMap; | |
53 import 'dart:web_sql'; | 51 import 'dart:web_sql'; |
54 // Not actually used, but imported since dart:html can generate these objects. | 52 // Not actually used, but imported since dart:html can generate these objects. |
55 import 'dart:svg' as svg; | 53 import 'dart:svg' as svg; |
56 import 'dart:svg' show svgBlinkMap; | 54 import 'dart:svg' show svgBlinkMap; |
57 import 'dart:svg' show svgBlinkFunctionMap; | |
58 import 'dart:svg' show Matrix; | 55 import 'dart:svg' show Matrix; |
59 import 'dart:svg' show SvgSvgElement; | 56 import 'dart:svg' show SvgSvgElement; |
60 import 'dart:web_audio' as web_audio; | 57 import 'dart:web_audio' as web_audio; |
61 import 'dart:web_audio' show web_audioBlinkMap; | 58 import 'dart:web_audio' show web_audioBlinkMap; |
62 import 'dart:web_audio' show web_audioBlinkFunctionMap; | |
63 import 'dart:_blink' as _blink; | 59 import 'dart:_blink' as _blink; |
64 import 'dart:developer'; | 60 import 'dart:developer'; |
65 | 61 |
66 export 'dart:math' show Rectangle, Point; | 62 export 'dart:math' show Rectangle, Point; |
67 | 63 |
68 $!GENERATED_DART_FILES | 64 $!GENERATED_DART_FILES |
69 | 65 |
70 // Issue 14721, order important for WrappedEvent. | 66 // Issue 14721, order important for WrappedEvent. |
71 part '$AUXILIARY_DIR/AttributeMap.dart'; | 67 part '$AUXILIARY_DIR/AttributeMap.dart'; |
72 part '$AUXILIARY_DIR/CanvasImageSource.dart'; | 68 part '$AUXILIARY_DIR/CanvasImageSource.dart'; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 * See also: | 107 * See also: |
112 * | 108 * |
113 * * [Window](https://developer.mozilla.org/en-US/docs/Web/API/window) from MD
N. | 109 * * [Window](https://developer.mozilla.org/en-US/docs/Web/API/window) from MD
N. |
114 */ | 110 */ |
115 Window get window { | 111 Window get window { |
116 if (_window != null) { | 112 if (_window != null) { |
117 return _window; | 113 return _window; |
118 } | 114 } |
119 $if DARTIUM | 115 $if DARTIUM |
120 $if JSINTEROP | 116 $if JSINTEROP |
121 _window = wrap_jso(js.JsNative.getProperty(js.context, 'window')); | 117 _window = js.JsNative.toTypedObject(js.context); |
122 $else | 118 $else |
123 _window = _Utils.window(); | 119 _window = _Utils.window(); |
124 $endif | 120 $endif |
125 $endif | 121 $endif |
126 return _window; | 122 return _window; |
127 } | 123 } |
128 | 124 |
129 HtmlDocument _document; | 125 HtmlDocument _document; |
130 | 126 |
131 /** | 127 /** |
(...skipping 22 matching lines...) Expand all Loading... |
154 @Deprecated("Internal Use Only") | 150 @Deprecated("Internal Use Only") |
155 final htmlBlinkMap = { | 151 final htmlBlinkMap = { |
156 '_HistoryCrossFrame': () => _HistoryCrossFrame, | 152 '_HistoryCrossFrame': () => _HistoryCrossFrame, |
157 '_LocationCrossFrame': () => _LocationCrossFrame, | 153 '_LocationCrossFrame': () => _LocationCrossFrame, |
158 '_DOMWindowCrossFrame': () => _DOMWindowCrossFrame, | 154 '_DOMWindowCrossFrame': () => _DOMWindowCrossFrame, |
159 // FIXME: Move these to better locations. | 155 // FIXME: Move these to better locations. |
160 'DateTime': () => DateTime, | 156 'DateTime': () => DateTime, |
161 'JsObject': () => js.JsObject, | 157 'JsObject': () => js.JsObject, |
162 'JsFunction': () => js.JsFunction, | 158 'JsFunction': () => js.JsFunction, |
163 'JsArray': () => js.JsArray, | 159 'JsArray': () => js.JsArray, |
| 160 // We have to call .instanceRuntimeType as these classes have a private |
| 161 // implementation class defined dynamically at runtime via a patch file. |
| 162 'JSObject': () => js.JSObject.instanceRuntimeType, |
| 163 'JSFunction': () => js.JSFunction.instanceRuntimeType, |
| 164 'JSArray': () => js.JSArray.instanceRuntimeType, |
164 $!TYPE_MAP | 165 $!TYPE_MAP |
165 }; | 166 }; |
166 | 167 |
167 // TODO(leafp): We may want to move this elsewhere if html becomes | 168 // TODO(leafp): We may want to move this elsewhere if html becomes |
168 // a package to avoid dartium depending on pkg:html. | 169 // a package to avoid dartium depending on pkg:html. |
| 170 @Deprecated("Internal Use Only") |
| 171 getHtmlCreateType(String key) => _getType(key); |
| 172 |
169 Type _getType(String key) { | 173 Type _getType(String key) { |
170 var result; | 174 var result; |
171 | 175 |
172 // TODO(vsm): Add Cross Frame and JS types here as well. | 176 // TODO(vsm): Add Cross Frame and JS types here as well. |
173 | 177 |
174 // Check the html library. | 178 // Check the html library. |
175 result = _getHtmlType(key); | 179 result = _getHtmlType(key); |
176 if (result != null) { | 180 if (result != null) { |
177 return result; | 181 return result; |
178 } | 182 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 return null; | 249 return null; |
246 } | 250 } |
247 | 251 |
248 Type _getSvgType(String key) { | 252 Type _getSvgType(String key) { |
249 if (svgBlinkMap.containsKey(key)) { | 253 if (svgBlinkMap.containsKey(key)) { |
250 return svgBlinkMap[key](); | 254 return svgBlinkMap[key](); |
251 } | 255 } |
252 return null; | 256 return null; |
253 } | 257 } |
254 | 258 |
255 $if JSINTEROP | 259 // TODO(jacobr): it would be nice to place this in a consistent place for dart2j
s and dartium. |
256 // FIXME: Can we make this private? | 260 _convertNativeToDart_XHR_Response(o) { |
257 @Deprecated("Internal Use Only") | 261 if (o is Document) { |
258 final htmlBlinkFunctionMap = { | 262 return o; |
259 $!TYPE_FUNCTION_MAP | |
260 }; | |
261 | |
262 // TODO(terry): We may want to move this elsewhere if html becomes | |
263 // a package to avoid dartium depending on pkg:html. | |
264 @Deprecated("Internal Use Only") | |
265 getHtmlCreateFunction(String key) { | |
266 var result; | |
267 | |
268 // TODO(vsm): Add Cross Frame and JS types here as well. | |
269 | |
270 // Check the html library. | |
271 result = _getHtmlFunction(key); | |
272 if (result != null) { | |
273 return result; | |
274 } | 263 } |
275 | 264 return convertNativeToDart_SerializedScriptValue(o); |
276 // Check the web gl library. | |
277 result = _getWebGlFunction(key); | |
278 if (result != null) { | |
279 return result; | |
280 } | |
281 | |
282 // Check the indexed db library. | |
283 result = _getIndexDbFunction(key); | |
284 if (result != null) { | |
285 return result; | |
286 } | |
287 | |
288 // Check the web audio library. | |
289 result = _getWebAudioFunction(key); | |
290 if (result != null) { | |
291 return result; | |
292 } | |
293 | |
294 // Check the web sql library. | |
295 result = _getWebSqlFunction(key); | |
296 if (result != null) { | |
297 return result; | |
298 } | |
299 | |
300 // Check the svg library. | |
301 result = _getSvgFunction(key); | |
302 if (result != null) { | |
303 return result; | |
304 } | |
305 | |
306 return null; | |
307 } | 265 } |
308 | 266 |
309 Function _getHtmlFunction(String key) { | 267 $if JSINTEROP |
310 if (htmlBlinkFunctionMap.containsKey(key)) { | |
311 return htmlBlinkFunctionMap[key](); | |
312 } | |
313 return null; | |
314 } | |
315 | |
316 Function _getWebGlFunction(String key) { | |
317 if (web_glBlinkFunctionMap.containsKey(key)) { | |
318 return web_glBlinkFunctionMap[key](); | |
319 } | |
320 return null; | |
321 } | |
322 | |
323 Function _getIndexDbFunction(String key) { | |
324 if (indexed_dbBlinkFunctionMap.containsKey(key)) { | |
325 return indexed_dbBlinkFunctionMap[key](); | |
326 } | |
327 return null; | |
328 } | |
329 | |
330 Function _getWebAudioFunction(String key) { | |
331 if (web_audioBlinkFunctionMap.containsKey(key)) { | |
332 return web_audioBlinkFunctionMap[key](); | |
333 } | |
334 return null; | |
335 } | |
336 | |
337 Function _getWebSqlFunction(String key) { | |
338 if (web_sqlBlinkFunctionMap.containsKey(key)) { | |
339 return web_sqlBlinkFunctionMap[key](); | |
340 } | |
341 return null; | |
342 } | |
343 | |
344 Function _getSvgFunction(String key) { | |
345 if (svgBlinkFunctionMap.containsKey(key)) { | |
346 return svgBlinkFunctionMap[key](); | |
347 } | |
348 return null; | |
349 } | |
350 | |
351 | 268 |
352 /****************************************************************************** | 269 /****************************************************************************** |
353 ********** ********** | 270 ********** ********** |
354 ********** JS Interop Support ********** | 271 ********** JS Interop Support ********** |
355 ********** ********** | 272 ********** ********** |
356 ******************************************************************************/ | 273 ******************************************************************************/ |
357 | 274 |
358 String _getCustomElementExtends(object) { | 275 String _getCustomElementExtends(object) { |
359 var entry = getCustomElementEntry(object); | 276 var entry = getCustomElementEntry(object); |
360 if (entry != null) { | 277 if (entry != null) { |
361 return entry['extends']; | 278 return entry['extends']; |
362 } | 279 } |
363 return null; | 280 return null; |
364 } | 281 } |
365 | 282 |
366 // Return the tag name or is attribute of the custom element or data binding. | 283 // Return the tag name or is attribute of the custom element or data binding. |
367 String _getCustomElementName(element) { | 284 String _getCustomElementName(element) { |
368 var jsObject; | 285 var jsObject; |
369 var tag = ""; | 286 var tag = ""; |
370 var runtimeType = element.runtimeType; | 287 var runtimeType = element.runtimeType; |
371 if (runtimeType == HtmlElement) { | 288 if (runtimeType == TemplateElement) { |
372 tag = element.localName; | |
373 } else if (runtimeType == TemplateElement) { | |
374 // Data binding with a Dart class. | 289 // Data binding with a Dart class. |
375 tag = element.attributes['is']; | 290 tag = element.attributes['is']; |
376 } else if (runtimeType == js.JsObject) { | 291 } else if (element is HtmlElement) { |
377 // It's a Polymer core element (written in JS). | 292 tag = element.attributes['is']; |
378 // Make sure it's an element anything else we can ignore. | 293 if (tag == null) { |
379 if (element.hasProperty('nodeType') && element['nodeType'] == 1) { | 294 // It's a custom element we want the local name. |
380 if (js.JsNative.callMethod(element, 'hasAttribute', ['is'])) { | 295 tag = element.localName; |
381 // It's data binding use the is attribute. | |
382 tag = js.JsNative.callMethod(element, 'getAttribute', ['is']); | |
383 } else { | |
384 // It's a custom element we want the local name. | |
385 tag = element['localName']; | |
386 } | |
387 } | 296 } |
388 } else { | 297 } else { |
389 throw new UnsupportedError('Element is incorrect type. Got ${runtimeType}, e
xpected HtmlElement/HtmlTemplate/JsObject.'); | 298 throw new UnsupportedError('Element is incorrect type. Got ${runtimeType}, e
xpected HtmlElement/HtmlTemplate/JsObject.'); |
390 } | 299 } |
391 | 300 |
392 return tag; | 301 return tag; |
393 } | 302 } |
394 | 303 |
395 /// An abstract class for all DOM objects we wrap in dart:html and related | 304 /// An abstract class for all DOM objects we wrap in dart:html and related |
396 /// libraries. | 305 /// libraries. |
397 @Deprecated("Internal Use Only") | 306 @Deprecated("Internal Use Only") |
398 class DartHtmlDomObject extends js.JSObject { | 307 class DartHtmlDomObject extends js.JSObject { |
399 DartHtmlDomObject() : super.internal(); | 308 DartHtmlDomObject() : super.internal(); |
400 } | 309 } |
401 | 310 |
402 @Deprecated("Internal Use Only") | 311 @Deprecated("Internal Use Only") |
403 class DebugAssertException implements Exception { | 312 class DebugAssertException implements Exception { |
404 String message; | 313 String message; |
405 DebugAssertException(this.message); | 314 DebugAssertException(this.message); |
406 } | 315 } |
407 | 316 |
408 @Deprecated("Internal Use Only") | 317 @Deprecated("Internal Use Only") |
409 debug_or_assert(message, expression) { | 318 debug_or_assert(message, expression) { |
410 if (!expression) { | 319 if (!expression) { |
411 throw new DebugAssertException("$message"); | 320 throw new DebugAssertException("$message"); |
412 } | 321 } |
413 } | 322 } |
414 | 323 |
| 324 // TODO(jacobr): we shouldn't be generating this call in the dart:html |
| 325 // bindings but we are. |
| 326 _convertDartToNative_EventTarget(target) => target; |
| 327 |
415 @Deprecated("Internal Use Only") | 328 @Deprecated("Internal Use Only") |
416 Map<String, dynamic> convertNativeObjectToDartMap(js.JsObject jsObject) { | 329 Map<String, dynamic> convertNativeObjectToDartMap(js.JsObject jsObject) { |
417 var result = new Map(); | 330 var result = new Map(); |
418 var keys = js.JsNative.callMethod(js.JsNative.getProperty(js.context, 'Object'
), 'keys', [jsObject]); | 331 var keys = js.JsNative.callMethod(js.JsNative.getProperty(js.context, 'Object'
), 'keys', [jsObject]); |
419 for (var key in keys) { | 332 for (var key in keys) { |
420 result[key] = wrap_jso(js.JsNative.getProperty(jsObject, key)); | 333 result[key] = js.JsNative.getProperty(jsObject, key); |
421 } | 334 } |
422 return result; | 335 return result; |
423 } | 336 } |
424 | 337 |
425 /** | 338 /** |
426 * Upgrade the JS HTMLElement to the Dart class. Used by Dart's Polymer. | 339 * Upgrade the JS HTMLElement to the Dart class. Used by Dart's Polymer. |
427 */ | 340 */ |
428 _createCustomUpgrader(Type customElementClass, $this) { | 341 _createCustomUpgrader(Type customElementClass, $this) { |
429 var dartClass; | 342 return _blink.Blink_Utils.setInstanceInterceptor($this, customElementClass, cu
stomElement: true); |
430 try { | |
431 dartClass = _blink.Blink_Utils.constructElement(customElementClass, $this); | |
432 } catch (e) { | |
433 // Did the dartClass get allocated but the created failed? Otherwise, other | |
434 // components inside of this failed somewhere (could be JS custom element). | |
435 if (dartClass != null) { | |
436 // Yes, mark as didn't upgrade. | |
437 dartClass._badUpgrade(); | |
438 } | |
439 throw e; | |
440 } finally { | |
441 // Need to remember the Dart class that was created for this custom so | |
442 // return it and setup the blink_jsObject to the $this that we'll be working | |
443 // with as we talk to blink. | |
444 js.setDartHtmlWrapperFor($this, dartClass); | |
445 } | |
446 | |
447 return dartClass; | |
448 } | 343 } |
449 | 344 |
450 $else | 345 $else |
451 class DartHtmlDomObject extends NativeFieldWrapperClass2 {} | 346 class DartHtmlDomObject extends NativeFieldWrapperClass2 {} |
452 | 347 |
453 _createCustomUpgrader(Type customElementClass, $this) => $this; | 348 _createCustomUpgrader(Type customElementClass, $this) => $this; |
454 | 349 |
455 $endif | 350 $endif |
OLD | NEW |