Clamp scrollX, scrollY, pageXOffset, and pageYOffset from double to int

TBR=vsm@google.com,asiva@google.com

Review URL: https://codereview.chromium.org//898993002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43477 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
terry@google.com 2015-02-04 16:59:12 +00:00
parent 1d6231bacd
commit 69e76a7b28
4 changed files with 82 additions and 14 deletions

View file

@ -30603,6 +30603,7 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
@DocsEditable()
final int outerWidth;
@JSName('pageXOffset')
/**
* The distance this window has been scrolled horizontally.
*
@ -30617,8 +30618,9 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
*/
@DomName('Window.pageXOffset')
@DocsEditable()
final int pageXOffset;
final int _pageXOffset;
@JSName('pageYOffset')
/**
* The distance this window has been scrolled vertically.
*
@ -30633,7 +30635,7 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
*/
@DomName('Window.pageYOffset')
@DocsEditable()
final int pageYOffset;
final int _pageYOffset;
@DomName('Window.parent')
@DocsEditable()
@ -31749,6 +31751,14 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
_moveTo(p.x, p.y);
}
@DomName('Window.pageXOffset')
@DocsEditable()
int get pageXOffset => JS('num', '#.pageXOffset', this).round();
@DomName('Window.pageYOffset')
@DocsEditable()
int get pageYOffset => JS('num', '#.pageYOffset', this).round();
/**
* The distance this window has been scrolled horizontally.
*
@ -31759,8 +31769,11 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
* * [scrollX]
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX) from MDN.
*/
int get scrollX => JS('bool', '("scrollX" in #)', this) ? JS('int',
'#.scrollX', this) : document.documentElement.scrollLeft;
@DomName('Window.scrollX')
@DocsEditable()
int get scrollX => JS('bool', '("scrollX" in #)', this) ?
JS('num', '#.scrollX', this).round() :
document.documentElement.scrollLeft;
/**
* The distance this window has been scrolled vertically.
@ -31772,8 +31785,11 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
* * [scrollY]
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY) from MDN.
*/
int get scrollY => JS('bool', '("scrollY" in #)', this) ? JS('int',
'#.scrollY', this) : document.documentElement.scrollTop;
@DomName('Window.scrollY')
@DocsEditable()
int get scrollY => JS('bool', '("scrollY" in #)', this) ?
JS('num', '#.scrollY', this).round() :
document.documentElement.scrollTop;
}
class _BeforeUnloadEvent extends _WrappedEvent implements BeforeUnloadEvent {

View file

@ -33207,7 +33207,7 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
*/
@DomName('Window.pageXOffset')
@DocsEditable()
int get pageXOffset => _blink.BlinkWindow.instance.pageXOffset_Getter_(this);
int get _pageXOffset => _blink.BlinkWindow.instance.pageXOffset_Getter_(this);
/**
* The distance this window has been scrolled vertically.
@ -33223,7 +33223,7 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
*/
@DomName('Window.pageYOffset')
@DocsEditable()
int get pageYOffset => _blink.BlinkWindow.instance.pageYOffset_Getter_(this);
int get _pageYOffset => _blink.BlinkWindow.instance.pageYOffset_Getter_(this);
@DomName('Window.parent')
@DocsEditable()
@ -33310,11 +33310,11 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
@DomName('Window.scrollX')
@DocsEditable()
int get scrollX => _blink.BlinkWindow.instance.scrollX_Getter_(this);
int get _scrollX => _blink.BlinkWindow.instance.scrollX_Getter_(this);
@DomName('Window.scrollY')
@DocsEditable()
int get scrollY => _blink.BlinkWindow.instance.scrollY_Getter_(this);
int get _scrollY => _blink.BlinkWindow.instance.scrollY_Getter_(this);
/**
* This window's scroll bars.
@ -34118,6 +34118,21 @@ class Window extends EventTarget implements WindowEventHandlers, WindowBase, Glo
_moveTo(p.x, p.y);
}
@DomName('Window.pageXOffset')
@DocsEditable()
int get pageXOffset => _blink.BlinkWindow.instance.pageXOffset_Getter_(this).round();
@DomName('Window.pageYOffset')
@DocsEditable()
int get pageYOffset => _blink.BlinkWindow.instance.pageYOffset_Getter_(this).round();
@DomName('Window.scrollX')
@DocsEditable()
int get scrollX => _blink.BlinkWindow.instance.scrollX_Getter_(this).round();
@DomName('Window.scrollY')
@DocsEditable()
int get scrollY => _blink.BlinkWindow.instance.scrollY_Getter_(this).round();
}

View file

@ -380,6 +380,13 @@ private_html_members = monitored.Set('htmlrenamer.private_html_members', [
'Window.getComputedStyle',
'Window.clearInterval',
'Window.clearTimeout',
# TODO(tll): These have been converted from int to double in Chrome 39 for
# subpixel precision. Special case for backward compatibility.
'Window.scrollX',
'Window.scrollY',
'Window.pageXOffset',
'Window.pageYOffset',
'WindowTimers.clearInterval',
'WindowTimers.clearTimeout',
'WindowTimers.setInterval',

View file

@ -254,6 +254,14 @@ $!MEMBERS
}
$if DART2JS
@DomName('Window.pageXOffset')
@DocsEditable()
int get pageXOffset => JS('num', '#.pageXOffset', this).round();
@DomName('Window.pageYOffset')
@DocsEditable()
int get pageYOffset => JS('num', '#.pageYOffset', this).round();
/**
* The distance this window has been scrolled horizontally.
*
@ -264,8 +272,11 @@ $if DART2JS
* * [scrollX]
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollX) from MDN.
*/
int get scrollX => JS('bool', '("scrollX" in #)', this) ? JS('int',
'#.scrollX', this) : document.documentElement.scrollLeft;
@DomName('Window.scrollX')
@DocsEditable()
int get scrollX => JS('bool', '("scrollX" in #)', this) ?
JS('num', '#.scrollX', this).round() :
document.documentElement.scrollLeft;
/**
* The distance this window has been scrolled vertically.
@ -277,8 +288,27 @@ $if DART2JS
* * [scrollY]
* (https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY) from MDN.
*/
int get scrollY => JS('bool', '("scrollY" in #)', this) ? JS('int',
'#.scrollY', this) : document.documentElement.scrollTop;
@DomName('Window.scrollY')
@DocsEditable()
int get scrollY => JS('bool', '("scrollY" in #)', this) ?
JS('num', '#.scrollY', this).round() :
document.documentElement.scrollTop;
$else
@DomName('Window.pageXOffset')
@DocsEditable()
int get pageXOffset => _blink.BlinkWindow.instance.pageXOffset_Getter_(this).round();
@DomName('Window.pageYOffset')
@DocsEditable()
int get pageYOffset => _blink.BlinkWindow.instance.pageYOffset_Getter_(this).round();
@DomName('Window.scrollX')
@DocsEditable()
int get scrollX => _blink.BlinkWindow.instance.scrollX_Getter_(this).round();
@DomName('Window.scrollY')
@DocsEditable()
int get scrollY => _blink.BlinkWindow.instance.scrollY_Getter_(this).round();
$endif
}