Index: tools/dom/templates/html/impl/impl_Window.darttemplate |
diff --git a/tools/dom/templates/html/impl/impl_Window.darttemplate b/tools/dom/templates/html/impl/impl_Window.darttemplate |
deleted file mode 100644 |
index 083aebd2d559dac2d1867356598f496bf624e79b..0000000000000000000000000000000000000000 |
--- a/tools/dom/templates/html/impl/impl_Window.darttemplate |
+++ /dev/null |
@@ -1,224 +0,0 @@ |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-part of $LIBRARYNAME; |
- |
-$if DART2JS |
-$(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS native "@*DOMWindow" { |
-$else |
-$(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
-$endif |
- |
- /** |
- * Executes a [callback] after the immediate execution stack has completed. |
- * |
- * This differs from using Timer.run(callback) |
- * because Timer will run in about 4-15 milliseconds, depending on browser, |
- * depending on load. [setImmediate], in contrast, makes browser-specific |
- * changes in behavior to attempt to run immediately after the current |
- * frame unwinds, causing the future to complete after all processing has |
- * completed for the current event, but before any subsequent events. |
- */ |
- void setImmediate(TimeoutHandler callback) { |
- _addMicrotaskCallback(callback); |
- } |
- /** |
- * Lookup a port by its [name]. Return null if no port is |
- * registered under [name]. |
- */ |
- SendPortSync lookupPort(String name) { |
- var port = |
- json.parse(document.documentElement.attributes['dart-port:$name']); |
- return _deserialize(port); |
- } |
- |
- /** |
- * Register a [port] on this window under the given [name]. This |
- * port may be retrieved by any isolate (or JavaScript script) |
- * running in this window. |
- */ |
- void registerPort(String name, var port) { |
- var serialized = _serialize(port); |
- document.documentElement.attributes['dart-port:$name'] = |
- json.stringify(serialized); |
- } |
- |
- /** |
- * Returns a Future that completes just before the window is about to repaint |
- * so the user can draw an animation frame |
- * |
- * If you need to later cancel this animation, use [requestAnimationFrame] |
- * instead. |
- * |
- * Note: The code that runs when the future completes should call |
- * [animationFrame] again for the animation to continue. |
- */ |
- Future<num> get animationFrame { |
- var completer = new Completer<int>(); |
- requestAnimationFrame(completer.complete); |
- return completer.future; |
- } |
- |
-$if DART2JS |
- Document get document => JS('Document', '#.document', this); |
- |
- WindowBase _open2(url, name) => JS('Window', '#.open(#,#)', this, url, name); |
- |
- WindowBase _open3(url, name, options) => |
- JS('Window', '#.open(#,#,#)', this, url, name, options); |
- |
- WindowBase open(String url, String name, [String options]) { |
- if (options == null) { |
- return _DOMWindowCrossFrame._createSafe(_open2(url, name)); |
- } else { |
- return _DOMWindowCrossFrame._createSafe(_open3(url, name, options)); |
- } |
- } |
- |
- // API level getter and setter for Location. |
- // TODO: The cross domain safe wrapper can be inserted here or folded into |
- // _LocationWrapper. |
- Location get location { |
- // Firefox work-around for Location. The Firefox location object cannot be |
- // made to behave like a Dart object so must be wrapped. |
- var result = _location; |
- if (_isDartLocation(result)) return result; // e.g. on Chrome. |
- if (null == _location_wrapper) { |
- _location_wrapper = new _LocationWrapper(result); |
- } |
- return _location_wrapper; |
- } |
- |
- // TODO: consider forcing users to do: window.location.assign('string'). |
- /** |
- * Sets the window's location, which causes the browser to navigate to the new |
- * location. [value] may be a Location object or a string. |
- */ |
- void set location(value) { |
- if (value is _LocationWrapper) { |
- _location = value._ptr; |
- } else { |
- _location = value; |
- } |
- } |
- |
- _LocationWrapper _location_wrapper; // Cached wrapped Location object. |
- |
- // Native getter and setter to access raw Location object. |
- dynamic get _location => JS('Location|=Object', '#.location', this); |
- void set _location(value) { |
- JS('void', '#.location = #', this, value); |
- } |
- // Prevent compiled from thinking 'location' property is available for a Dart |
- // member. |
- @JSName('location') |
- _protect_location() native; |
- |
- static _isDartLocation(thing) { |
- // On Firefox the code that implements 'is Location' fails to find the patch |
- // stub on Object.prototype and throws an exception. |
- try { |
- return thing is Location; |
- } catch (e) { |
- return false; |
- } |
- } |
- |
- /** |
- * Called to draw an animation frame and then request the window to repaint |
- * after [callback] has finished (creating the animation). |
- * |
- * Use this method only if you need to later call [cancelAnimationFrame]. If |
- * not, the preferred Dart idiom is to set animation frames by calling |
- * [animationFrame], which returns a Future. |
- * |
- * Returns a non-zero valued integer to represent the request id for this |
- * request. This value only needs to be saved if you intend to call |
- * [cancelAnimationFrame] so you can specify the particular animation to |
- * cancel. |
- * |
- * Note: The supplied [callback] needs to call [requestAnimationFrame] again |
- * for the animation to continue. |
- */ |
- @DomName('DOMWindow.requestAnimationFrame') |
- int requestAnimationFrame(RequestAnimationFrameCallback callback) { |
- _ensureRequestAnimationFrame(); |
- return _requestAnimationFrame(callback); |
- } |
- |
- void cancelAnimationFrame(id) { |
- _ensureRequestAnimationFrame(); |
- _cancelAnimationFrame(id); |
- } |
- |
- @JSName('requestAnimationFrame') |
- int _requestAnimationFrame(RequestAnimationFrameCallback callback) native; |
- |
- @JSName('cancelAnimationFrame') |
- void _cancelAnimationFrame(int id) native; |
- |
- _ensureRequestAnimationFrame() { |
- if (JS('bool', |
- '!!(#.requestAnimationFrame && #.cancelAnimationFrame)', this, this)) |
- return; |
- |
- JS('void', |
- r""" |
- (function($this) { |
- var vendors = ['ms', 'moz', 'webkit', 'o']; |
- for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++i) { |
- $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFrame']; |
- $this.cancelAnimationFrame = |
- $this[vendors[i]+'CancelAnimationFrame'] || |
- $this[vendors[i]+'CancelRequestAnimationFrame']; |
- } |
- if ($this.requestAnimationFrame && $this.cancelAnimationFrame) return; |
- $this.requestAnimationFrame = function(callback) { |
- return window.setTimeout(function() { |
- callback(Date.now()); |
- }, 16 /* 16ms ~= 60fps */); |
- }; |
- $this.cancelAnimationFrame = function(id) { clearTimeout(id); } |
- })(#)""", |
- this); |
- } |
- |
- /** |
- * Gets an instance of the Indexed DB factory to being using Indexed DB. |
- * |
- * Use [IdbFactory.supported] to check if Indexed DB is supported on the |
- * current platform. |
- */ |
- @SupportedBrowser(SupportedBrowser.CHROME, '23.0') |
- @SupportedBrowser(SupportedBrowser.FIREFOX, '15.0') |
- @SupportedBrowser(SupportedBrowser.IE, '10.0') |
- @Experimental |
- IdbFactory get indexedDB => |
- JS('IdbFactory', |
- '#.indexedDB || #.webkitIndexedDB || #.mozIndexedDB', |
- this, this, this); |
- |
- @DomName('Window.console') |
- Console get console => Console.safeConsole; |
- |
- /// Checks if _setImmediate is supported. |
- static bool get _supportsSetImmediate => |
- JS('bool', '!!(window.setImmediate)'); |
- |
- // Set immediate implementation for IE |
- void _setImmediate(void callback()) { |
- JS('void', '#.setImmediate(#)', this, convertDartClosureToJS(callback, 0)); |
- } |
-$else |
- /// Checks if _setImmediate is supported. |
- static bool get _supportsSetImmediate => false; |
- |
- /// Dartium stub for IE's setImmediate. |
- void _setImmediate(void callback()) { |
- throw new UnsupportedError('setImmediate is not supported'); |
- } |
-$endif |
- |
-$!MEMBERS |
-} |