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 part of html; | 5 part of html; |
6 | 6 |
7 class _Property { | 7 class _Property { |
8 _Property(this.name) | 8 _Property(this.name) |
9 : _hasValue = false, | 9 : _hasValue = false, |
10 writable = false, | 10 writable = false, |
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 /** | 578 /** |
579 * Returns a list of completions to use if the receiver is o. | 579 * Returns a list of completions to use if the receiver is o. |
580 */ | 580 */ |
581 static List<String> getCompletions(o) { | 581 static List<String> getCompletions(o) { |
582 MirrorSystem system = currentMirrorSystem(); | 582 MirrorSystem system = currentMirrorSystem(); |
583 var completions = new Set<String>(); | 583 var completions = new Set<String>(); |
584 addAll(Map<Symbol, dynamic> map, bool isStatic) { | 584 addAll(Map<Symbol, dynamic> map, bool isStatic) { |
585 map.forEach((symbol, mirror) { | 585 map.forEach((symbol, mirror) { |
586 if (mirror.isStatic == isStatic && !mirror.isPrivate) { | 586 if (mirror.isStatic == isStatic && !mirror.isPrivate) { |
587 var name = MirrorSystem.getName(symbol); | 587 var name = MirrorSystem.getName(symbol); |
588 if (mirror is MethodMirror && mirror.isSetter) name = | 588 if (mirror is MethodMirror && mirror.isSetter) |
589 name.substring(0, name.length - 1); | 589 name = name.substring(0, name.length - 1); |
590 completions.add(name); | 590 completions.add(name); |
591 } | 591 } |
592 }); | 592 }); |
593 } | 593 } |
594 | 594 |
595 addForClass(ClassMirror mirror, bool isStatic) { | 595 addForClass(ClassMirror mirror, bool isStatic) { |
596 if (mirror == null) return; | 596 if (mirror == null) return; |
597 addAll(mirror.declarations, isStatic); | 597 addAll(mirror.declarations, isStatic); |
598 if (mirror.superclass != null) addForClass(mirror.superclass, isStatic); | 598 if (mirror.superclass != null) addForClass(mirror.superclass, isStatic); |
599 for (var interface in mirror.superinterfaces) { | 599 for (var interface in mirror.superinterfaces) { |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1067 | 1067 |
1068 class _DOMWindowCrossFrame extends DartHtmlDomObject implements WindowBase { | 1068 class _DOMWindowCrossFrame extends DartHtmlDomObject implements WindowBase { |
1069 _DOMWindowCrossFrame.internal(); | 1069 _DOMWindowCrossFrame.internal(); |
1070 | 1070 |
1071 static _createSafe(win) { | 1071 static _createSafe(win) { |
1072 if (identical(win, window)) { | 1072 if (identical(win, window)) { |
1073 // The current Window object is the only window object that should not | 1073 // The current Window object is the only window object that should not |
1074 // use _DOMWindowCrossFrame. | 1074 // use _DOMWindowCrossFrame. |
1075 return window; | 1075 return window; |
1076 } | 1076 } |
1077 return win is _DOMWindowCrossFrame ? win : _blink.Blink_Utils.setInstanceInt
erceptor(win, _DOMWindowCrossFrame); | 1077 return win is _DOMWindowCrossFrame |
| 1078 ? win |
| 1079 : _blink.Blink_Utils.setInstanceInterceptor(win, _DOMWindowCrossFrame); |
1078 } | 1080 } |
1079 | 1081 |
1080 // Fields. | 1082 // Fields. |
1081 HistoryBase get history { | 1083 HistoryBase get history { |
1082 var history = _blink.BlinkWindow.instance.history_Getter_(this); | 1084 var history = _blink.BlinkWindow.instance.history_Getter_(this); |
1083 return history is _HistoryCrossFrame ? history : _blink.Blink_Utils.setInsta
nceInterceptor(history, _HistoryCrossFrame); | 1085 return history is _HistoryCrossFrame |
| 1086 ? history |
| 1087 : _blink.Blink_Utils |
| 1088 .setInstanceInterceptor(history, _HistoryCrossFrame); |
1084 } | 1089 } |
1085 | 1090 |
1086 LocationBase get location { | 1091 LocationBase get location { |
1087 var location = _blink.BlinkWindow.instance.location_Getter_(this); | 1092 var location = _blink.BlinkWindow.instance.location_Getter_(this); |
1088 return location is _LocationCrossFrame ? location : _blink.Blink_Utils.setIn
stanceInterceptor(location, _LocationCrossFrame); | 1093 return location is _LocationCrossFrame |
| 1094 ? location |
| 1095 : _blink.Blink_Utils |
| 1096 .setInstanceInterceptor(location, _LocationCrossFrame); |
1089 } | 1097 } |
1090 | 1098 |
1091 bool get closed => _blink.BlinkWindow.instance.closed_Getter_(this); | 1099 bool get closed => _blink.BlinkWindow.instance.closed_Getter_(this); |
1092 WindowBase get opener => _convertNativeToDart_Window(_blink.BlinkWindow.instan
ce.opener_Getter_(this)); | 1100 WindowBase get opener => _convertNativeToDart_Window( |
1093 WindowBase get parent => _convertNativeToDart_Window(_blink.BlinkWindow.instan
ce.parent_Getter_(this)); | 1101 _blink.BlinkWindow.instance.opener_Getter_(this)); |
1094 WindowBase get top => _convertNativeToDart_Window(_blink.BlinkWindow.instance.
top_Getter_(this)); | 1102 WindowBase get parent => _convertNativeToDart_Window( |
| 1103 _blink.BlinkWindow.instance.parent_Getter_(this)); |
| 1104 WindowBase get top => _convertNativeToDart_Window( |
| 1105 _blink.BlinkWindow.instance.top_Getter_(this)); |
1095 | 1106 |
1096 // Methods. | 1107 // Methods. |
1097 void close() => _blink.BlinkWindow.instance.close_Callback_0_(this); | 1108 void close() => _blink.BlinkWindow.instance.close_Callback_0_(this); |
1098 void postMessage(Object message, String targetOrigin, [List<MessagePort> trans
fer]) => _blink.BlinkWindow.instance.postMessage_Callback_3_(this, convertDartTo
Native_SerializedScriptValue(message), targetOrigin, transfer); | 1109 void postMessage(Object message, String targetOrigin, |
| 1110 [List<MessagePort> transfer]) => |
| 1111 _blink.BlinkWindow.instance.postMessage_Callback_3_( |
| 1112 this, |
| 1113 convertDartToNative_SerializedScriptValue(message), |
| 1114 targetOrigin, |
| 1115 transfer); |
1099 | 1116 |
1100 // Implementation support. | 1117 // Implementation support. |
1101 String get typeName => "Window"; | 1118 String get typeName => "Window"; |
1102 | 1119 |
1103 // TODO(efortuna): Remove this method. dartbug.com/16814 | 1120 // TODO(efortuna): Remove this method. dartbug.com/16814 |
1104 Events get on => throw new UnsupportedError( | 1121 Events get on => throw new UnsupportedError( |
1105 'You can only attach EventListeners to your own window.'); | 1122 'You can only attach EventListeners to your own window.'); |
1106 // TODO(efortuna): Remove this method. dartbug.com/16814 | 1123 // TODO(efortuna): Remove this method. dartbug.com/16814 |
1107 void _addEventListener( | 1124 void _addEventListener( |
1108 [String type, EventListener listener, bool useCapture]) => | 1125 [String type, EventListener listener, bool useCapture]) => |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1144 } | 1161 } |
1145 | 1162 |
1146 // Implementation support. | 1163 // Implementation support. |
1147 String get typeName => "History"; | 1164 String get typeName => "History"; |
1148 } | 1165 } |
1149 | 1166 |
1150 class _LocationCrossFrame extends DartHtmlDomObject implements LocationBase { | 1167 class _LocationCrossFrame extends DartHtmlDomObject implements LocationBase { |
1151 _LocationCrossFrame.internal(); | 1168 _LocationCrossFrame.internal(); |
1152 | 1169 |
1153 // Fields. | 1170 // Fields. |
1154 set href(String value) => _blink.BlinkLocation.instance.href_Setter_(this, val
ue); | 1171 set href(String value) => |
| 1172 _blink.BlinkLocation.instance.href_Setter_(this, value); |
1155 | 1173 |
1156 // Implementation support. | 1174 // Implementation support. |
1157 String get typeName => "Location"; | 1175 String get typeName => "Location"; |
1158 } | 1176 } |
1159 | 1177 |
1160 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates | 1178 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates |
1161 // as workers. This is only used to support | 1179 // as workers. This is only used to support |
1162 // printing and timers in background isolates. As workers they should | 1180 // printing and timers in background isolates. As workers they should |
1163 // be able to just do those things natively. | 1181 // be able to just do those things natively. |
1164 | 1182 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1214 port.listen((args) { | 1232 port.listen((args) { |
1215 var msg = args.first; | 1233 var msg = args.first; |
1216 var replyTo = args.last; | 1234 var replyTo = args.last; |
1217 final cmd = msg[0]; | 1235 final cmd = msg[0]; |
1218 if (cmd == _NEW_TIMER) { | 1236 if (cmd == _NEW_TIMER) { |
1219 final duration = new Duration(milliseconds: msg[1]); | 1237 final duration = new Duration(milliseconds: msg[1]); |
1220 bool periodic = msg[2]; | 1238 bool periodic = msg[2]; |
1221 ping() { | 1239 ping() { |
1222 replyTo.send(_TIMER_PING); | 1240 replyTo.send(_TIMER_PING); |
1223 } | 1241 } |
| 1242 |
1224 ; | 1243 ; |
1225 _TIMER_REGISTRY[replyTo] = periodic | 1244 _TIMER_REGISTRY[replyTo] = periodic |
1226 ? new Timer.periodic(duration, (_) { | 1245 ? new Timer.periodic(duration, (_) { |
1227 ping(); | 1246 ping(); |
1228 }) | 1247 }) |
1229 : new Timer(duration, ping); | 1248 : new Timer(duration, ping); |
1230 } else if (cmd == _CANCEL_TIMER) { | 1249 } else if (cmd == _CANCEL_TIMER) { |
1231 _TIMER_REGISTRY.remove(replyTo).cancel(); | 1250 _TIMER_REGISTRY.remove(replyTo).cancel(); |
1232 } else if (cmd == _PRINT) { | 1251 } else if (cmd == _PRINT) { |
1233 final message = msg[1]; | 1252 final message = msg[1]; |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1371 get _scheduleImmediateClosure => (void callback()) { | 1390 get _scheduleImmediateClosure => (void callback()) { |
1372 _scheduleImmediateHelper._schedule(callback); | 1391 _scheduleImmediateHelper._schedule(callback); |
1373 }; | 1392 }; |
1374 | 1393 |
1375 get _pureIsolateScheduleImmediateClosure => ((void callback()) => | 1394 get _pureIsolateScheduleImmediateClosure => ((void callback()) => |
1376 throw new UnimplementedError("scheduleMicrotask in background isolates " | 1395 throw new UnimplementedError("scheduleMicrotask in background isolates " |
1377 "are not supported in the browser")); | 1396 "are not supported in the browser")); |
1378 | 1397 |
1379 // Class for unsupported native browser 'DOM' objects. | 1398 // Class for unsupported native browser 'DOM' objects. |
1380 class _UnsupportedBrowserObject extends DartHtmlDomObject {} | 1399 class _UnsupportedBrowserObject extends DartHtmlDomObject {} |
OLD | NEW |