Fixing WheelEvent.deltaMode polyfill after IDL update.
BUG=8713
Review URL: https://codereview.chromium.org//12335036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18904 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index f125ed2..7cf2fcc 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -1478,7 +1478,7 @@
'#.lineDashOffset || #.webkitLineDashOffset', this, this);
@DomName('CanvasRenderingContext2D.lineDashOffset')
- void set lineDashOffset(num value) => JS('void',
+ void set lineDashOffset(num value) => JS('void',
'typeof #.lineDashOffset != "undefined" ? #.lineDashOffset = # : '
'#.webkitLineDashOffset = #', this, this, value, this, value);
}
@@ -11096,7 +11096,7 @@
@DomName('Float32Array.fromBuffer')
@DocsEditable
- factory Float32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Float32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createFloat32Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 4;
@@ -11312,7 +11312,7 @@
@DomName('Float64Array.fromBuffer')
@DocsEditable
- factory Float64Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Float64Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createFloat64Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 8;
@@ -14173,7 +14173,7 @@
@DomName('Int16Array.fromBuffer')
@DocsEditable
- factory Int16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Int16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createInt16Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 2;
@@ -14389,7 +14389,7 @@
@DomName('Int32Array.fromBuffer')
@DocsEditable
- factory Int32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Int32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createInt32Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 4;
@@ -14605,7 +14605,7 @@
@DomName('Int8Array.fromBuffer')
@DocsEditable
- factory Int8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Int8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createInt8Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 1;
@@ -19012,17 +19012,17 @@
}
/**
- * Checks if Real Time Communication (RTC) APIs are supported and enabled on
+ * Checks if Real Time Communication (RTC) APIs are supported and enabled on
* the current platform.
*/
static bool get supported {
// Currently in Firefox some of the RTC elements are defined but throw an
- // error unless the user has specifically enabled them in their
+ // error unless the user has specifically enabled them in their
// about:config. So we have to construct an element to actually test if RTC
// is supported at at the given time.
try {
var c = new RtcPeerConnection({"iceServers": [ {"url":"stun:foo.com"}]});
- return c is RtcPeerConnection;
+ return c is RtcPeerConnection;
} catch (_) {}
return false;
}
@@ -22511,7 +22511,7 @@
@DomName('Uint16Array.fromBuffer')
@DocsEditable
- factory Uint16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Uint16Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createUint16Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 2;
@@ -22727,7 +22727,7 @@
@DomName('Uint32Array.fromBuffer')
@DocsEditable
- factory Uint32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Uint32Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createUint32Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 4;
@@ -22943,7 +22943,7 @@
@DomName('Uint8Array.fromBuffer')
@DocsEditable
- factory Uint8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Uint8Array.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createUint8Array_fromBuffer(buffer, byteOffset, length);
static const int BYTES_PER_ELEMENT = 1;
@@ -23159,7 +23159,7 @@
@DomName('Uint8ClampedArray.fromBuffer')
@DocsEditable
- factory Uint8ClampedArray.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
+ factory Uint8ClampedArray.fromBuffer(ArrayBuffer buffer, [int byteOffset, int length]) =>
_TypedArrayFactoryProvider.createUint8ClampedArray_fromBuffer(buffer, byteOffset, length);
// Use implementation from Uint8Array.
@@ -25359,10 +25359,6 @@
static const int DOM_DELTA_PIXEL = 0x00;
- @DomName('WheelEvent.deltaMode')
- @DocsEditable
- final int deltaMode;
-
@JSName('webkitDirectionInvertedFromDevice')
@DomName('WheelEvent.webkitDirectionInvertedFromDevice')
@DocsEditable
@@ -25435,6 +25431,15 @@
'deltaX is not supported');
}
+ @DomName('WheelEvent.deltaMode')
+ int get deltaMode {
+ if (JS('bool', '!!(#.deltaMode)', this)) {
+ return JS('int', '#.deltaMode', this);
+ }
+ // If not available then we're poly-filling and doing pixel scroll.
+ return 0;
+ }
+
num get _deltaY => JS('num', '#.deltaY', this);
num get _deltaX => JS('num', '#.deltaX', this);
num get _wheelDelta => JS('num', '#.wheelDelta', this);
@@ -25503,7 +25508,7 @@
* 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);
}
/**
@@ -25534,7 +25539,7 @@
* If you need to later cancel this animation, use [requestAnimationFrame]
* instead.
*
- * Note: The code that runs when the future completes should call
+ * Note: The code that runs when the future completes should call
* [animationFrame] again for the animation to continue.
*/
Future<num> get animationFrame {
@@ -25609,7 +25614,7 @@
/**
* Called to draw an animation frame and then request the window to repaint
- * after [callback] has finished (creating the animation).
+ * 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
@@ -30088,9 +30093,9 @@
/**
- * Defines the keycode values for keys that are returned by
+ * Defines the keycode values for keys that are returned by
* KeyboardEvent.keyCode.
- *
+ *
* Important note: There is substantial divergence in how different browsers
* handle keycodes and their variants in different locales/keyboard layouts. We
* provide these constants to help make code processing keys more readable.
@@ -30098,7 +30103,7 @@
abstract class KeyCode {
// These constant names were borrowed from Closure's Keycode enumeration
// class.
- // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keycodes.js.source.html
+ // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keycodes.js.source.html
static const int WIN_KEY_FF_LINUX = 0;
static const int MAC_ENTER = 3;
static const int BACKSPACE = 8;
@@ -30293,12 +30298,12 @@
(keyCode >= A && keyCode <= Z)) {
return true;
}
-
+
// Safari sends zero key code for non-latin characters.
if (_Device.isWebKit && keyCode == 0) {
return true;
}
-
+
return (keyCode == SPACE || keyCode == QUESTION_MARK || keyCode == NUM_PLUS
|| keyCode == NUM_MINUS || keyCode == NUM_PERIOD ||
keyCode == NUM_DIVISION || keyCode == SEMICOLON ||
@@ -32086,7 +32091,7 @@
final int _length; // Cache array length for faster access.
int _position;
T _current;
-
+
FixedSizeListIterator(List<T> array)
: _array = array,
_position = -1,
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index 50578b2..0dc02f2 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -27873,7 +27873,6 @@
num get deltaX => $dom_wheelDeltaX;
@DomName('WheelEvent.deltaY')
num get deltaY => $dom_wheelDeltaY;
-
}
// 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
diff --git a/tests/html/wheelevent_test.dart b/tests/html/wheelevent_test.dart
index 6de1528..2dc9adc 100644
--- a/tests/html/wheelevent_test.dart
+++ b/tests/html/wheelevent_test.dart
@@ -20,6 +20,7 @@
expect(e.screenX, 100);
expect(e.deltaX, 0);
expect(e.deltaY, 240);
+ expect(e.deltaMode, isNotNull);
}));
var event = new WheelEvent(eventType,
deltaX: 0,
diff --git a/tools/dom/scripts/systemhtml.py b/tools/dom/scripts/systemhtml.py
index 81f1a71..e3ba590 100644
--- a/tools/dom/scripts/systemhtml.py
+++ b/tools/dom/scripts/systemhtml.py
@@ -58,6 +58,7 @@
'Navigator.webkitGetUserMedia',
'URL.createObjectURL',
'URL.revokeObjectURL',
+ 'WheelEvent.deltaMode',
'WheelEvent.wheelDeltaX',
'WheelEvent.wheelDeltaY',
'Window.cancelAnimationFrame',
diff --git a/tools/dom/templates/html/impl/impl_WheelEvent.darttemplate b/tools/dom/templates/html/impl/impl_WheelEvent.darttemplate
index 1ce1169..c49d8f6 100644
--- a/tools/dom/templates/html/impl/impl_WheelEvent.darttemplate
+++ b/tools/dom/templates/html/impl/impl_WheelEvent.darttemplate
@@ -134,6 +134,15 @@
'deltaX is not supported');
}
+ @DomName('WheelEvent.deltaMode')
+ int get deltaMode {
+ if (JS('bool', '!!(#.deltaMode)', this)) {
+ return JS('int', '#.deltaMode', this);
+ }
+ // If not available then we're poly-filling and doing pixel scroll.
+ return 0;
+ }
+
num get _deltaY => JS('num', '#.deltaY', this);
num get _deltaX => JS('num', '#.deltaX', this);
num get _wheelDelta => JS('num', '#.wheelDelta', this);
@@ -188,6 +197,5 @@
num get deltaX => $dom_wheelDeltaX;
@DomName('WheelEvent.deltaY')
num get deltaY => $dom_wheelDeltaY;
-
$endif
}