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 if (identical(win, window)) { |
| 1073 // The current Window object is the only window object that should not |
| 1074 // use _DOMWindowCrossFrame. |
| 1075 return window; |
| 1076 } |
| 1077 return win is _DOMWindowCrossFrame ? win : _blink.Blink_Utils.setInstanceInt
erceptor(win, _DOMWindowCrossFrame); |
| 1078 } |
1076 | 1079 |
1077 // Fields. | 1080 // Fields. |
1078 HistoryBase get history => _blink.Blink_DOMWindowCrossFrame.get_history(this); | 1081 HistoryBase get history { |
1079 LocationBase get location => | 1082 var history = _blink.BlinkWindow.instance.history_Getter_(this); |
1080 _blink.Blink_DOMWindowCrossFrame.get_location(this); | 1083 return history is _HistoryCrossFrame ? history : _blink.Blink_Utils.setInsta
nceInterceptor(history, _HistoryCrossFrame); |
1081 bool get closed => _blink.Blink_DOMWindowCrossFrame.get_closed(this); | 1084 } |
1082 WindowBase get opener => _blink.Blink_DOMWindowCrossFrame.get_opener(this); | 1085 |
1083 WindowBase get parent => _blink.Blink_DOMWindowCrossFrame.get_parent(this); | 1086 LocationBase get location { |
1084 WindowBase get top => _blink.Blink_DOMWindowCrossFrame.get_top(this); | 1087 var location = _blink.BlinkWindow.instance.location_Getter_(this); |
| 1088 return location is _LocationCrossFrame ? location : _blink.Blink_Utils.setIn
stanceInterceptor(location, _LocationCrossFrame); |
| 1089 } |
| 1090 |
| 1091 bool get closed => _blink.BlinkWindow.instance.closed_Getter_(this); |
| 1092 WindowBase get opener => _convertNativeToDart_Window(_blink.BlinkWindow.instan
ce.opener_Getter_(this)); |
| 1093 WindowBase get parent => _convertNativeToDart_Window(_blink.BlinkWindow.instan
ce.parent_Getter_(this)); |
| 1094 WindowBase get top => _convertNativeToDart_Window(_blink.BlinkWindow.instance.
top_Getter_(this)); |
1085 | 1095 |
1086 // Methods. | 1096 // Methods. |
1087 void close() => _blink.Blink_DOMWindowCrossFrame.close(this); | 1097 void close() => _blink.BlinkWindow.instance.close_Callback_0_(this); |
1088 void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, | 1098 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 | 1099 |
1096 // Implementation support. | 1100 // Implementation support. |
1097 String get typeName => "Window"; | 1101 String get typeName => "Window"; |
1098 | 1102 |
1099 // TODO(efortuna): Remove this method. dartbug.com/16814 | 1103 // TODO(efortuna): Remove this method. dartbug.com/16814 |
1100 Events get on => throw new UnsupportedError( | 1104 Events get on => throw new UnsupportedError( |
1101 'You can only attach EventListeners to your own window.'); | 1105 'You can only attach EventListeners to your own window.'); |
1102 // TODO(efortuna): Remove this method. dartbug.com/16814 | 1106 // TODO(efortuna): Remove this method. dartbug.com/16814 |
1103 void _addEventListener( | 1107 void _addEventListener( |
1104 [String type, EventListener listener, bool useCapture]) => | 1108 [String type, EventListener listener, bool useCapture]) => |
(...skipping 16 matching lines...) Expand all Loading... |
1121 void removeEventListener(String type, EventListener listener, | 1125 void removeEventListener(String type, EventListener listener, |
1122 [bool useCapture]) => | 1126 [bool useCapture]) => |
1123 throw new UnsupportedError( | 1127 throw new UnsupportedError( |
1124 'You can only attach EventListeners to your own window.'); | 1128 'You can only attach EventListeners to your own window.'); |
1125 } | 1129 } |
1126 | 1130 |
1127 class _HistoryCrossFrame extends DartHtmlDomObject implements HistoryBase { | 1131 class _HistoryCrossFrame extends DartHtmlDomObject implements HistoryBase { |
1128 _HistoryCrossFrame.internal(); | 1132 _HistoryCrossFrame.internal(); |
1129 | 1133 |
1130 // Methods. | 1134 // Methods. |
1131 void back() => _blink.Blink_HistoryCrossFrame.back(this); | 1135 void back() => _blink.BlinkHistory.instance.back_Callback_0_(this); |
1132 void forward() => _blink.Blink_HistoryCrossFrame.forward(this); | 1136 void forward() => _blink.BlinkHistory.instance.forward_Callback_0_(this); |
1133 void go(int distance) => _blink.Blink_HistoryCrossFrame.go(this, distance); | 1137 void go([int delta]) { |
| 1138 if (delta != null) { |
| 1139 _blink.BlinkHistory.instance.go_Callback_1_(this, delta); |
| 1140 return; |
| 1141 } |
| 1142 _blink.BlinkHistory.instance.go_Callback_0_(this); |
| 1143 return; |
| 1144 } |
1134 | 1145 |
1135 // Implementation support. | 1146 // Implementation support. |
1136 String get typeName => "History"; | 1147 String get typeName => "History"; |
1137 } | 1148 } |
1138 | 1149 |
1139 class _LocationCrossFrame extends DartHtmlDomObject implements LocationBase { | 1150 class _LocationCrossFrame extends DartHtmlDomObject implements LocationBase { |
1140 _LocationCrossFrame.internal(); | 1151 _LocationCrossFrame.internal(); |
1141 | 1152 |
1142 // Fields. | 1153 // Fields. |
1143 set href(String h) => _blink.Blink_LocationCrossFrame.set_href(this, h); | 1154 set href(String value) => _blink.BlinkLocation.instance.href_Setter_(this, val
ue); |
1144 | 1155 |
1145 // Implementation support. | 1156 // Implementation support. |
1146 String get typeName => "Location"; | 1157 String get typeName => "Location"; |
1147 } | 1158 } |
1148 | 1159 |
1149 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates | 1160 // TODO(vsm): Remove DOM isolate code once we have Dartium isolates |
1150 // as workers. This is only used to support | 1161 // as workers. This is only used to support |
1151 // printing and timers in background isolates. As workers they should | 1162 // printing and timers in background isolates. As workers they should |
1152 // be able to just do those things natively. | 1163 // be able to just do those things natively. |
1153 | 1164 |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1360 get _scheduleImmediateClosure => (void callback()) { | 1371 get _scheduleImmediateClosure => (void callback()) { |
1361 _scheduleImmediateHelper._schedule(callback); | 1372 _scheduleImmediateHelper._schedule(callback); |
1362 }; | 1373 }; |
1363 | 1374 |
1364 get _pureIsolateScheduleImmediateClosure => ((void callback()) => | 1375 get _pureIsolateScheduleImmediateClosure => ((void callback()) => |
1365 throw new UnimplementedError("scheduleMicrotask in background isolates " | 1376 throw new UnimplementedError("scheduleMicrotask in background isolates " |
1366 "are not supported in the browser")); | 1377 "are not supported in the browser")); |
1367 | 1378 |
1368 // Class for unsupported native browser 'DOM' objects. | 1379 // Class for unsupported native browser 'DOM' objects. |
1369 class _UnsupportedBrowserObject extends DartHtmlDomObject {} | 1380 class _UnsupportedBrowserObject extends DartHtmlDomObject {} |
OLD | NEW |