| Index: sdk/lib/html/dartium/html_dartium.dart
|
| diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
|
| index dfe548507359978ac83d76748dc005dddb78a773..a581703256c98716c13899fa739cb7a2763238e3 100644
|
| --- a/sdk/lib/html/dartium/html_dartium.dart
|
| +++ b/sdk/lib/html/dartium/html_dartium.dart
|
| @@ -28189,19 +28189,23 @@ class Window extends EventTarget implements WindowBase {
|
| /**
|
| * Executes a [callback] after the immediate execution stack has completed.
|
| *
|
| - * This will cause the callback to be executed after all processing has
|
| + * 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) {
|
| + void setImmediate(TimeoutHandler callback) {
|
| _addMicrotaskCallback(callback);
|
| }
|
| -
|
| /**
|
| * Lookup a port by its [name]. Return null if no port is
|
| * registered under [name].
|
| */
|
| - lookupPort(String name) {
|
| - var port = json.parse(document.documentElement.attributes['dart-port:$name']);
|
| + SendPortSync lookupPort(String name) {
|
| + var port =
|
| + json.parse(document.documentElement.attributes['dart-port:$name']);
|
| return _deserialize(port);
|
| }
|
|
|
| @@ -28210,9 +28214,26 @@ class Window extends EventTarget implements WindowBase {
|
| * port may be retrieved by any isolate (or JavaScript script)
|
| * running in this window.
|
| */
|
| - registerPort(String name, var port) {
|
| + void registerPort(String name, var port) {
|
| var serialized = _serialize(port);
|
| - document.documentElement.attributes['dart-port:$name'] = json.stringify(serialized);
|
| + 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;
|
| }
|
|
|
| /// Checks if _setImmediate is supported.
|
| @@ -28553,11 +28574,11 @@ class Window extends EventTarget implements WindowBase {
|
|
|
| @DomName('DOMWindow.clearInterval')
|
| @DocsEditable
|
| - void clearInterval(int handle) native "DOMWindow_clearInterval_Callback";
|
| + void _clearInterval(int handle) native "DOMWindow_clearInterval_Callback";
|
|
|
| @DomName('DOMWindow.clearTimeout')
|
| @DocsEditable
|
| - void clearTimeout(int handle) native "DOMWindow_clearTimeout_Callback";
|
| + void _clearTimeout(int handle) native "DOMWindow_clearTimeout_Callback";
|
|
|
| @DomName('DOMWindow.close')
|
| @DocsEditable
|
| @@ -28652,11 +28673,11 @@ class Window extends EventTarget implements WindowBase {
|
|
|
| @DomName('DOMWindow.setInterval')
|
| @DocsEditable
|
| - int setInterval(TimeoutHandler handler, int timeout) native "DOMWindow_setInterval_Callback";
|
| + int _setInterval(TimeoutHandler handler, int timeout) native "DOMWindow_setInterval_Callback";
|
|
|
| @DomName('DOMWindow.setTimeout')
|
| @DocsEditable
|
| - int setTimeout(TimeoutHandler handler, int timeout) native "DOMWindow_setTimeout_Callback";
|
| + int _setTimeout(TimeoutHandler handler, int timeout) native "DOMWindow_setTimeout_Callback";
|
|
|
| @DomName('DOMWindow.showModalDialog')
|
| @DocsEditable
|
| @@ -33848,11 +33869,11 @@ get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool
|
| var maker;
|
| var canceller;
|
| if (repeating) {
|
| - maker = window.setInterval;
|
| - canceller = window.clearInterval;
|
| + maker = window._setInterval;
|
| + canceller = window._clearInterval;
|
| } else {
|
| - maker = window.setTimeout;
|
| - canceller = window.clearTimeout;
|
| + maker = window._setTimeout;
|
| + canceller = window._clearTimeout;
|
| }
|
| Timer timer;
|
| final int id = maker(() { callback(timer); }, milliSeconds);
|
|
|