Index: lib/html/frog/html_frog.dart |
diff --git a/lib/html/frog/html_frog.dart b/lib/html/frog/html_frog.dart |
index 6cf802fd42b3c0f55e5773d1556f4dbde23edfe0..719ec906cab3af5ad8bdc38badc8c38b67f045c1 100644 |
--- a/lib/html/frog/html_frog.dart |
+++ b/lib/html/frog/html_frog.dart |
@@ -24,6 +24,144 @@ _DocumentImpl get _document() native "return document;"; |
class _HTMLElementImpl extends _ElementImpl native "*HTMLElement" { |
} |
+class _HistoryCrossFrameImpl implements History { |
+ |
+ void back() { |
+ _ptr.back(); |
+ return; |
+ } |
+ |
+ void forward() { |
+ _ptr.forward(); |
+ return; |
+ } |
+ |
+ void go(int distance) { |
+ _ptr.go(distance); |
+ return; |
+ } |
+ |
+ // Implementation. |
+ _HistoryImpl _ptr; |
+ |
+ _HistoryCrossFrameImpl._(this._ptr); |
+ |
+ static _createSafe(ptr) { |
+ if (ptr === window.history) { |
+ return window.history; |
+ } else { |
+ // TODO(vsm): Should we cache to try to get reference equality? |
+ return new _HistoryCrossFrameImpl._(ptr); |
+ } |
+ } |
+ |
+ operator ==(other) { |
+ return (other is _HistoryCrossFrameImpl) && |
+ (this._ptr === other._ptr); |
+ } |
+} |
+ |
+class _LocationCrossFrameImpl implements Location { |
+ |
+ void set href(String value) { _ptr.href = value; } |
+ |
+ // Implementation. |
+ _LocationImpl _ptr; |
+ |
+ _LocationCrossFrameImpl._(this._ptr); |
+ |
+ static _createSafe(ptr) { |
+ if (ptr === window.location) { |
+ return window.location; |
+ } else { |
+ // TODO(vsm): Should we cache to try to get reference equality? |
+ return new _LocationCrossFrameImpl._(ptr); |
+ } |
+ } |
+ |
+ operator ==(other) { |
+ return (other is _LocationCrossFrameImpl) && |
+ (this._ptr === other._ptr); |
+ } |
+} |
+ |
+class _WindowCrossFrameImpl implements Window { |
+ |
+ bool get closed() => _ptr.closed; |
+ |
+ Window get frames() => _ptr.frames; |
+ |
+ History get history() => _ptr.history; |
+ |
+ int get length() => _ptr.length; |
+ |
+ Location get location() => _ptr.location; |
+ |
+ void set location(Location value) { _ptr.location = value; } |
+ |
+ Window get opener() => _ptr.opener; |
+ |
+ Window get parent() => _ptr.parent; |
+ |
+ Window get self() => _ptr.self; |
+ |
+ Window get top() => _ptr.top; |
+ |
+ void blur() { |
+ _ptr.blur(); |
+ return; |
+ } |
+ |
+ void close() { |
+ _ptr.close(); |
+ return; |
+ } |
+ |
+ void focus() { |
+ _ptr.focus(); |
+ return; |
+ } |
+ |
+ void postMessage(/*SerializedScriptValue*/ message, String targetOrigin, [List messagePorts = null]) { |
+ if (messagePorts === null) { |
+ _ptr.postMessage(message, targetOrigin, messagePorts); |
sra1
2012/05/10 00:12:06
Why are the branches the same?
The main point of g
|
+ return; |
+ } else { |
+ _ptr.postMessage(message, targetOrigin, messagePorts); |
+ return; |
+ } |
+ } |
+ |
+ void webkitPostMessage(/*SerializedScriptValue*/ message, String targetOrigin, [List transferList = null]) { |
+ if (transferList === null) { |
+ _ptr.webkitPostMessage(message, targetOrigin, transferList); |
+ return; |
+ } else { |
+ _ptr.webkitPostMessage(message, targetOrigin, transferList); |
+ return; |
+ } |
+ } |
+ |
+ // Implementation. |
+ _WindowImpl _ptr; |
+ |
+ _WindowCrossFrameImpl._(this._ptr); |
+ |
+ static _createSafe(ptr) { |
+ if (ptr === window) { |
+ return window; |
+ } else { |
+ // TODO(vsm): Should we cache to try to get reference equality? |
+ return new _WindowCrossFrameImpl._(ptr); |
+ } |
+ } |
+ |
+ operator ==(other) { |
+ return (other is _WindowCrossFrameImpl) && |
+ (this._ptr === other._ptr); |
+ } |
+} |
+ |
class _AbstractWorkerImpl extends _EventTargetImpl implements AbstractWorker native "*AbstractWorker" { |
_AbstractWorkerEventsImpl get on() => |
@@ -4730,8 +4868,11 @@ class _DocumentImpl extends _NodeImpl |
String cookie; |
- _WindowImpl get window() native "return this.defaultView;"; |
+ _WindowImpl get _window() native "return this.defaultView;"; |
+ Window get window() { |
+ return _WindowCrossFrameImpl._createSafe(_window); |
+ } |
final _ElementImpl documentElement; |
final String domain; |
@@ -7214,10 +7355,11 @@ class _FormElementImpl extends _ElementImpl implements FormElement native "*HTML |
class _FrameElementImpl extends _ElementImpl implements FrameElement native "*HTMLFrameElement" { |
- final _DocumentImpl contentDocument; |
- |
- final _WindowImpl contentWindow; |
+ _WindowImpl get _contentWindow() native "return this.contentWindow;"; |
+ Window get contentWindow() { |
+ return _WindowCrossFrameImpl._createSafe(_contentWindow); |
+ } |
String frameBorder; |
final int height; |
@@ -7753,10 +7895,11 @@ class _IFrameElementImpl extends _ElementImpl implements IFrameElement native "* |
String align; |
- final _DocumentImpl contentDocument; |
- |
- final _WindowImpl contentWindow; |
+ _WindowImpl get _contentWindow() native "return this.contentWindow;"; |
+ Window get contentWindow() { |
+ return _WindowCrossFrameImpl._createSafe(_contentWindow); |
+ } |
String frameBorder; |
String height; |
@@ -8872,8 +9015,11 @@ class _MessageEventImpl extends _EventImpl implements MessageEvent native "*Mess |
final List ports; |
- final _WindowImpl source; |
+ _WindowImpl get _source() native "return this.source;"; |
+ Window get source() { |
+ return _WindowCrossFrameImpl._createSafe(_source); |
+ } |
void initMessageEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object dataArg, String originArg, String lastEventIdArg, _WindowImpl sourceArg, List messagePorts) native; |
void webkitInitMessageEvent(String typeArg, bool canBubbleArg, bool cancelableArg, Object dataArg, String originArg, String lastEventIdArg, _WindowImpl sourceArg, List transferables) native; |
@@ -9739,8 +9885,6 @@ class _ObjectElementImpl extends _ElementImpl implements ObjectElement native "* |
String codeType; |
- final _DocumentImpl contentDocument; |
- |
String data; |
bool declare; |
@@ -14872,8 +15016,11 @@ class _UIEventImpl extends _EventImpl implements UIEvent native "*UIEvent" { |
final int pageY; |
- final _WindowImpl view; |
+ _WindowImpl get _view() native "return this.view;"; |
+ Window get view() { |
+ return _WindowCrossFrameImpl._createSafe(_view); |
+ } |
final int which; |
void initUIEvent(String type, bool canBubble, bool cancelable, _WindowImpl view, int detail) native; |
@@ -16474,12 +16621,16 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
final _EventImpl event; |
- final _ElementImpl frameElement; |
- |
- final _WindowImpl frames; |
+ _WindowImpl get _frames() native "return this.frames;"; |
- final _HistoryImpl history; |
+ Window get frames() { |
+ return _WindowCrossFrameImpl._createSafe(_frames); |
+ } |
+ _HistoryImpl get _history() native "return this.history;"; |
+ History get history() { |
+ return _history; |
+ } |
final int innerHeight; |
final int innerWidth; |
@@ -16488,7 +16639,12 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
final _StorageImpl localStorage; |
- _LocationImpl location; |
+ _LocationImpl get _location() native "return this.location;"; |
+ |
+ Location get location() { |
+ return _location; |
+ } |
+ void set location(_LocationImpl value) native "this.location = value;"; |
final _BarInfoImpl locationbar; |
@@ -16500,8 +16656,11 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
final bool offscreenBuffering; |
- final _WindowImpl opener; |
+ _WindowImpl get _opener() native "return this.opener;"; |
+ Window get opener() { |
+ return _WindowCrossFrameImpl._createSafe(_opener); |
+ } |
final int outerHeight; |
final int outerWidth; |
@@ -16510,8 +16669,11 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
final int pageYOffset; |
- final _WindowImpl parent; |
+ _WindowImpl get _parent() native "return this.parent;"; |
+ Window get parent() { |
+ return _WindowCrossFrameImpl._createSafe(_parent); |
+ } |
final _PerformanceImpl performance; |
final _BarInfoImpl personalbar; |
@@ -16532,8 +16694,11 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
final _BarInfoImpl scrollbars; |
- final _WindowImpl self; |
+ _WindowImpl get _self() native "return this.self;"; |
+ Window get self() { |
+ return _WindowCrossFrameImpl._createSafe(_self); |
+ } |
final _StorageImpl sessionStorage; |
String status; |
@@ -16544,16 +16709,17 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
final _BarInfoImpl toolbar; |
- final _WindowImpl top; |
+ _WindowImpl get _top() native "return this.top;"; |
+ Window get top() { |
+ return _WindowCrossFrameImpl._createSafe(_top); |
+ } |
final _IDBFactoryImpl webkitIndexedDB; |
final _NotificationCenterImpl webkitNotifications; |
final _StorageInfoImpl webkitStorageInfo; |
- final _WindowImpl window; |
- |
void $dom_addEventListener(String type, EventListener listener, [bool useCapture = null]) native "addEventListener"; |
void alert(String message) native; |
@@ -16592,7 +16758,9 @@ class _WindowImpl extends _EventTargetImpl implements Window native "@*DOMWindow |
void moveTo(num x, num y) native; |
- _WindowImpl open(String url, String name, [String options = null]) native; |
+ _WindowImpl _open(String url, String name, [String options = null]) native "open"; |
+ |
+ Window open(String url, String name, [String options = null]) => _WindowCrossFrameImpl._createSafe(_open(url, name, options)); |
_DatabaseImpl openDatabase(String name, String version, String displayName, int estimatedSize, [DatabaseCallback creationCallback = null]) native; |
@@ -23973,9 +24141,6 @@ interface FormElement extends Element { |
/// @domName HTMLFrameElement |
interface FrameElement extends Element { |
- /** @domName HTMLFrameElement.contentDocument */ |
- final Document contentDocument; |
- |
/** @domName HTMLFrameElement.contentWindow */ |
final Window contentWindow; |
@@ -24729,9 +24894,6 @@ interface IFrameElement extends Element { |
/** @domName HTMLIFrameElement.align */ |
String align; |
- /** @domName HTMLIFrameElement.contentDocument */ |
- final Document contentDocument; |
- |
/** @domName HTMLIFrameElement.contentWindow */ |
final Window contentWindow; |
@@ -26889,9 +27051,6 @@ interface ObjectElement extends Element { |
/** @domName HTMLObjectElement.codeType */ |
String codeType; |
- /** @domName HTMLObjectElement.contentDocument */ |
- final Document contentDocument; |
- |
/** @domName HTMLObjectElement.data */ |
String data; |
@@ -34575,9 +34734,6 @@ interface Window extends EventTarget { |
/** @domName DOMWindow.event */ |
final Event event; |
- /** @domName DOMWindow.frameElement */ |
- final Element frameElement; |
- |
/** @domName DOMWindow.frames */ |
final Window frames; |
@@ -34692,9 +34848,6 @@ interface Window extends EventTarget { |
/** @domName DOMWindow.webkitStorageInfo */ |
final StorageInfo webkitStorageInfo; |
- /** @domName DOMWindow.window */ |
- final Window window; |
- |
/** @domName DOMWindow.addEventListener */ |
void $dom_addEventListener(String type, EventListener listener, [bool useCapture]); |