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 #library("html"); | 8 #library("html"); |
9 | 9 |
10 #import("dart:isolate"); | 10 #import("dart:isolate"); |
11 #import("dart:json"); | |
11 #import("dart:nativewrappers"); | 12 #import("dart:nativewrappers"); |
12 | 13 |
13 $!GENERATED_DART_FILES | 14 $!GENERATED_DART_FILES |
14 | 15 |
15 #source('$AUXILIARY_DIR/EventListener.dart'); | 16 #source('$AUXILIARY_DIR/EventListener.dart'); |
16 #source('$AUXILIARY_DIR/KeyLocation.dart'); | 17 #source('$AUXILIARY_DIR/KeyLocation.dart'); |
17 #source('$AUXILIARY_DIR/KeyName.dart'); | 18 #source('$AUXILIARY_DIR/KeyName.dart'); |
18 #source('$AUXILIARY_DIR/ReadyState.dart'); | 19 #source('$AUXILIARY_DIR/ReadyState.dart'); |
19 #source('$AUXILIARY_DIR/_Collections.dart'); | 20 #source('$AUXILIARY_DIR/_Collections.dart'); |
20 #source('$AUXILIARY_DIR/_XMLHttpRequestUtils.dart'); | 21 #source('$AUXILIARY_DIR/_XMLHttpRequestUtils.dart'); |
21 #source('$AUXILIARY_DIR/../../html/src/shared_FactoryProviders.dart'); | 22 #source('$AUXILIARY_DIR/../../html/src/shared_FactoryProviders.dart'); |
22 #source('$AUXILIARY_DIR/../../html/src/dartium_FactoryProviders.dart'); | 23 #source('$AUXILIARY_DIR/../../html/src/dartium_FactoryProviders.dart'); |
23 #source('$AUXILIARY_DIR/../../html/src/IDBOpenDBRequest.dart'); | 24 #source('$AUXILIARY_DIR/../../html/src/IDBOpenDBRequest.dart'); |
24 #source('$AUXILIARY_DIR/../../html/src/Measurement.dart'); | 25 #source('$AUXILIARY_DIR/../../html/src/Measurement.dart'); |
25 #source('$AUXILIARY_DIR/../../html/src/Device.dart'); | 26 #source('$AUXILIARY_DIR/../../html/src/Device.dart'); |
26 #source('$AUXILIARY_DIR/../../html/src/_Testing.dart'); | 27 #source('$AUXILIARY_DIR/../../html/src/_Testing.dart'); |
27 #source('$AUXILIARY_DIR/_ListIterators.dart'); | 28 #source('$AUXILIARY_DIR/_ListIterators.dart'); |
28 #source('$AUXILIARY_DIR/_Lists.dart'); | 29 #source('$AUXILIARY_DIR/_Lists.dart'); |
30 #source('$AUXILIARY_DIR/../../isolate/serialization.dart'); | |
29 | 31 |
30 #source('$AUXILIARY_DIR/native_DOMPublic.dart'); | 32 #source('$AUXILIARY_DIR/native_DOMPublic.dart'); |
31 #source('$AUXILIARY_DIR/native_DOMImplementation.dart'); | 33 #source('$AUXILIARY_DIR/native_DOMImplementation.dart'); |
32 | 34 |
33 Window __window; | 35 Window __window; |
34 | 36 |
35 Window get window() { | 37 Window get window() { |
36 if (__window !== null) { | 38 if (__window !== null) { |
37 return __window; | 39 return __window; |
38 } | 40 } |
(...skipping 16 matching lines...) Expand all Loading... | |
55 Document get _document() => _window.document; | 57 Document get _document() => _window.document; |
56 | 58 |
57 Element query(String selector) => _document.query(selector); | 59 Element query(String selector) => _document.query(selector); |
58 ElementList queryAll(String selector) => _document.queryAll(selector); | 60 ElementList queryAll(String selector) => _document.queryAll(selector); |
59 | 61 |
60 class _Null { | 62 class _Null { |
61 const _Null(); | 63 const _Null(); |
62 } | 64 } |
63 | 65 |
64 final _null = const _Null(); | 66 final _null = const _Null(); |
67 | |
68 // TODO(vsm): Move this to a separate Isolates.dart file. | |
69 _serialize(var message) { | |
70 // TODO(kasperl): Specialize the serializer. | |
71 return new _Serializer().traverse(message); | |
72 } | |
73 | |
74 _deserialize(var message) { | |
75 return new _JsDeserializer().deserialize(message); | |
76 } | |
77 | |
78 class _JsDeserializer extends _Deserializer { | |
79 | |
80 deserializeSendPort(List x) { | |
81 num id = x[1]; | |
82 return new _JsSendPortSync(id); | |
83 } | |
84 | |
85 } | |
86 | |
87 class _JsSendPortSync implements SendPortSync { | |
88 | |
89 static bool initialized = false; | |
90 static var lastResult = null; | |
91 | |
92 num _id; | |
93 _JsSendPortSync(this._id) { | |
94 if (initialized) return; | |
95 window.on['js-result'].add((event) { | |
96 print(event.data); | |
vsm
2012/07/04 10:25:51
Remove the print.
| |
97 lastResult = JSON.parse(event.data); | |
98 }, false); | |
99 initialized = true; | |
100 } | |
101 | |
102 callSync(var message) { | |
103 var serialized = _serialize(message); | |
104 var result = _callUsingEvent(_id, serialized); | |
105 return _deserialize(result); | |
106 } | |
107 | |
108 static _callUsingEvent(num id, var message) { | |
109 var data = JSON.stringify({ 'id': id, 'message': message }); | |
110 var event = document.$dom_createEvent('TextEvent'); | |
111 event.initTextEvent('js-sync-message', false, false, window, data); | |
112 assert(lastResult == null); | |
113 window.$dom_dispatchEvent(event); | |
114 var result = lastResult; | |
115 lastResult = null; | |
116 return result; | |
117 } | |
118 | |
119 } | |
OLD | NEW |