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 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1058 } | 1058 } |
1059 | 1059 |
1060 static void _register(Document document, String tag, Type customType, | 1060 static void _register(Document document, String tag, Type customType, |
1061 String extendsTagName) => | 1061 String extendsTagName) => |
1062 _blink.Blink_Utils.register(document, tag, customType, extendsTagName); | 1062 _blink.Blink_Utils.register(document, tag, customType, extendsTagName); |
1063 | 1063 |
1064 static Element createElement(Document document, String tagName) => | 1064 static Element createElement(Document document, String tagName) => |
1065 _blink.Blink_Utils.createElement(document, tagName); | 1065 _blink.Blink_Utils.createElement(document, tagName); |
1066 } | 1066 } |
1067 | 1067 |
1068 // TODO(jacobr): this seems busted. I believe we are actually | |
1069 // giving users real windows for opener, parent, top, etc. | |
1070 // Or worse, we are probaly returning a raw JSObject. | |
1071 class _DOMWindowCrossFrame extends DartHtmlDomObject implements WindowBase { | 1068 class _DOMWindowCrossFrame extends DartHtmlDomObject implements WindowBase { |
1072 _DOMWindowCrossFrame.internal(); | 1069 _DOMWindowCrossFrame.internal(); |
1073 | 1070 |
1074 static _createSafe(win) => | 1071 static _createSafe(win) => |
1075 _blink.Blink_Utils.setInstanceInterceptor(win, _DOMWindowCrossFrame); | 1072 win is _DOMWindowCrossFrame ? win : _blink.Blink_Utils.setInstanceIntercepto
r(win, _DOMWindowCrossFrame); |
1076 | 1073 |
1077 // Fields. | 1074 // Fields. |
1078 HistoryBase get history => _blink.Blink_DOMWindowCrossFrame.get_history(this); | 1075 HistoryBase get history { |
1079 LocationBase get location => | 1076 var history = _blink.BlinkWindow.instance.history_Getter_(this); |
1080 _blink.Blink_DOMWindowCrossFrame.get_location(this); | 1077 return history is _HistoryCrossFrame ? history : _blink.Blink_Utils.setInsta
nceInterceptor(history, _HistoryCrossFrame); |
1081 bool get closed => _blink.Blink_DOMWindowCrossFrame.get_closed(this); | 1078 } |
1082 WindowBase get opener => _blink.Blink_DOMWindowCrossFrame.get_opener(this); | 1079 |
1083 WindowBase get parent => _blink.Blink_DOMWindowCrossFrame.get_parent(this); | 1080 LocationBase get location { |
1084 WindowBase get top => _blink.Blink_DOMWindowCrossFrame.get_top(this); | 1081 var location = _blink.BlinkWindow.instance.location_Getter_(this); |
| 1082 return location is _LocationCrossFrame ? location : _blink.Blink_Utils.setIn
stanceInterceptor(location, _LocationCrossFrame); |
| 1083 } |
| 1084 |
| 1085 bool get closed => _blink.BlinkWindow.instance.closed_Getter_(this); |
| 1086 WindowBase get opener => _convertNativeToDart_Window(_blink.BlinkWindow.instan
ce.opener_Getter_(this)); |
| 1087 WindowBase get parent => _convertNativeToDart_Window(_blink.BlinkWindow.instan
ce.parent_Getter_(this)); |
| 1088 WindowBase get top => _convertNativeToDart_Window(_blink.BlinkWindow.instance.
top_Getter_(this)); |
1085 | 1089 |
1086 // Methods. | 1090 // Methods. |
1087 void close() => _blink.Blink_DOMWindowCrossFrame.close(this); | 1091 void close() => _blink.BlinkWindow.instance.close_Callback_0_(this); |
1088 void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, | 1092 void postMessage(Object message, String targetOrigin, [List<MessagePort> trans
fer]) => _blink.BlinkWindow.instance.postMessage_Callback_3_(this, convertDartTo
Native_SerializedScriptValue(message), targetOrigin, transfer); |
1089 [List messagePorts]) => | |
1090 _blink.Blink_DOMWindowCrossFrame.postMessage( | |
1091 this, | |
1092 convertDartToNative_SerializedScriptValue(message), | |
1093 targetOrigin, | |
1094 messagePorts); | |
1095 | 1093 |
1096 // Implementation support. | 1094 // Implementation support. |
1097 String get typeName => "Window"; | 1095 String get typeName => "Window"; |
1098 | 1096 |
1099 // TODO(efortuna): Remove this method. dartbug.com/16814 | 1097 // TODO(efortuna): Remove this method. dartbug.com/16814 |
1100 Events get on => throw new UnsupportedError( | 1098 Events get on => throw new UnsupportedError( |
1101 'You can only attach EventListeners to your own window.'); | 1099 'You can only attach EventListeners to your own window.'); |
1102 // TODO(efortuna): Remove this method. dartbug.com/16814 | 1100 // TODO(efortuna): Remove this method. dartbug.com/16814 |
1103 void _addEventListener( | 1101 void _addEventListener( |
1104 [String type, EventListener listener, bool useCapture]) => | 1102 [String type, EventListener listener, bool useCapture]) => |
(...skipping 16 matching lines...) Expand all Loading... |
1121 void removeEventListener(String type, EventListener listener, | 1119 void removeEventListener(String type, EventListener listener, |
1122 [bool useCapture]) => | 1120 [bool useCapture]) => |
1123 throw new UnsupportedError( | 1121 throw new UnsupportedError( |
1124 'You can only attach EventListeners to your own window.'); | 1122 'You can only attach EventListeners to your own window.'); |
1125 } | 1123 } |
1126 | 1124 |
1127 class _HistoryCrossFrame extends DartHtmlDomObject implements HistoryBase { | 1125 class _HistoryCrossFrame extends DartHtmlDomObject implements HistoryBase { |
1128 _HistoryCrossFrame.internal(); | 1126 _HistoryCrossFrame.internal(); |
1129 | 1127 |
1130 // Methods. | 1128 // Methods. |
1131 void back() => _blink.Blink_HistoryCrossFrame.back(this); | 1129 void back() => _blink.BlinkHistory.instance.back_Callback_0_(this); |
1132 void forward() => _blink.Blink_HistoryCrossFrame.forward(this); | 1130 void forward() => _blink.BlinkHistory.instance.forward_Callback_0_(this); |
1133 void go(int distance) => _blink.Blink_HistoryCrossFrame.go(this, distance); | 1131 void go([int delta]) { |
| 1132 if (delta != null) { |
| 1133 _blink.BlinkHistory.instance.go_Callback_1_(this, delta); |
| 1134 return; |
| 1135 } |
| 1136 _blink.BlinkHistory.instance.go_Callback_0_(this); |
| 1137 return; |
| 1138 } |
1134 | 1139 |
1135 // Implementation support. | 1140 // Implementation support. |
1136 String get typeName => "History"; | 1141 String get typeName => "History"; |
1137 } | 1142 } |
1138 | 1143 |
1139 class _LocationCrossFrame extends DartHtmlDomObject implements LocationBase { | 1144 class _LocationCrossFrame extends DartHtmlDomObject implements LocationBase { |
1140 _LocationCrossFrame.internal(); | 1145 _LocationCrossFrame.internal(); |
1141 | 1146 |
1142 // Fields. | 1147 // Fields. |
1143 set href(String h) => _blink.Blink_LocationCrossFrame.set_href(this, h); | 1148 set href(String value) => _blink.BlinkLocation.instance.href_Setter_(this, val
ue); |
1144 | 1149 |
1145 // Implementation support. | 1150 // Implementation support. |
1146 String get typeName => "Location"; | 1151 String get typeName => "Location"; |
1147 } | 1152 } |
1148 | 1153 |
1149 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates | 1154 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates |
1150 // as workers. This is only used to support | 1155 // as workers. This is only used to support |
1151 // printing and timers in background isolates. As workers they should | 1156 // printing and timers in background isolates. As workers they should |
1152 // be able to just do those things natively. | 1157 // be able to just do those things natively. |
1153 | 1158 |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1360 get _scheduleImmediateClosure => (void callback()) { | 1365 get _scheduleImmediateClosure => (void callback()) { |
1361 _scheduleImmediateHelper._schedule(callback); | 1366 _scheduleImmediateHelper._schedule(callback); |
1362 }; | 1367 }; |
1363 | 1368 |
1364 get _pureIsolateScheduleImmediateClosure => ((void callback()) => | 1369 get _pureIsolateScheduleImmediateClosure => ((void callback()) => |
1365 throw new UnimplementedError("scheduleMicrotask in background isolates " | 1370 throw new UnimplementedError("scheduleMicrotask in background isolates " |
1366 "are not supported in the browser")); | 1371 "are not supported in the browser")); |
1367 | 1372 |
1368 // Class for unsupported native browser 'DOM' objects. | 1373 // Class for unsupported native browser 'DOM' objects. |
1369 class _UnsupportedBrowserObject extends DartHtmlDomObject {} | 1374 class _UnsupportedBrowserObject extends DartHtmlDomObject {} |
OLD | NEW |