Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Unified Diff: third_party/WebKit/Source/core/dom/Element.cpp

Issue 2387883002: Use float for scroll offset. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/dom/Element.cpp
diff --git a/third_party/WebKit/Source/core/dom/Element.cpp b/third_party/WebKit/Source/core/dom/Element.cpp
index 859e620d73a1d15efda12b051e3dadda933dc15a..a91cb7a10abb4d9195e2913257c298ad7f1e2b2b 100644
--- a/third_party/WebKit/Source/core/dom/Element.cpp
+++ b/third_party/WebKit/Source/core/dom/Element.cpp
@@ -910,14 +910,13 @@ void Element::scrollLayoutBoxBy(const ScrollToOptions& scrollToOptions) {
scrollBehavior);
LayoutBox* box = layoutBox();
if (box) {
- double currentScaledLeft = box->scrollLeft();
- double currentScaledTop = box->scrollTop();
- double newScaledLeft =
+ float currentScaledLeft = box->scrollLeft().toFloat();
+ float currentScaledTop = box->scrollTop().toFloat();
+ float newScaledLeft =
left * box->style()->effectiveZoom() + currentScaledLeft;
- double newScaledTop =
- top * box->style()->effectiveZoom() + currentScaledTop;
- box->scrollToOffset(DoubleSize(newScaledLeft, newScaledTop),
- scrollBehavior);
+ float newScaledTop = top * box->style()->effectiveZoom() + currentScaledTop;
+ box->scrollToPosition(FloatPoint(newScaledLeft, newScaledTop),
+ scrollBehavior);
}
}
@@ -928,8 +927,8 @@ void Element::scrollLayoutBoxTo(const ScrollToOptions& scrollToOptions) {
LayoutBox* box = layoutBox();
if (box) {
- double scaledLeft = box->scrollLeft();
- double scaledTop = box->scrollTop();
+ float scaledLeft = box->scrollLeft().toFloat();
+ float scaledTop = box->scrollTop().toFloat();
if (scrollToOptions.hasLeft())
scaledLeft =
ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) *
@@ -938,7 +937,7 @@ void Element::scrollLayoutBoxTo(const ScrollToOptions& scrollToOptions) {
scaledTop =
ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) *
box->style()->effectiveZoom();
- box->scrollToOffset(DoubleSize(scaledLeft, scaledTop), scrollBehavior);
+ box->scrollToPosition(FloatPoint(scaledLeft, scaledTop), scrollBehavior);
}
}
@@ -963,12 +962,12 @@ void Element::scrollFrameBy(const ScrollToOptions& scrollToOptions) {
if (!viewport)
return;
- double newScaledLeft =
- left * frame->pageZoomFactor() + viewport->scrollPositionDouble().x();
- double newScaledTop =
- top * frame->pageZoomFactor() + viewport->scrollPositionDouble().y();
- viewport->setScrollPosition(DoublePoint(newScaledLeft, newScaledTop),
- ProgrammaticScroll, scrollBehavior);
+ float newScaledLeft =
+ left * frame->pageZoomFactor() + viewport->scrollOffset().width();
+ float newScaledTop =
+ top * frame->pageZoomFactor() + viewport->scrollOffset().height();
+ viewport->setScrollOffset(ScrollOffset(newScaledLeft, newScaledTop),
+ ProgrammaticScroll, scrollBehavior);
}
void Element::scrollFrameTo(const ScrollToOptions& scrollToOptions) {
@@ -983,8 +982,8 @@ void Element::scrollFrameTo(const ScrollToOptions& scrollToOptions) {
if (!viewport)
return;
- double scaledLeft = viewport->scrollPositionDouble().x();
- double scaledTop = viewport->scrollPositionDouble().y();
+ float scaledLeft = viewport->scrollOffset().width();
+ float scaledTop = viewport->scrollOffset().height();
if (scrollToOptions.hasLeft())
scaledLeft =
ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) *
@@ -993,8 +992,8 @@ void Element::scrollFrameTo(const ScrollToOptions& scrollToOptions) {
scaledTop =
ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) *
frame->pageZoomFactor();
- viewport->setScrollPosition(DoublePoint(scaledLeft, scaledTop),
- ProgrammaticScroll, scrollBehavior);
+ viewport->setScrollOffset(ScrollOffset(scaledLeft, scaledTop),
+ ProgrammaticScroll, scrollBehavior);
}
bool Element::hasCompositorProxy() const {
@@ -1598,7 +1597,7 @@ void Element::removedFrom(ContainerNode* insertionPoint) {
if (document().page())
document().page()->pointerLockController().elementRemoved(this);
- setSavedLayerScrollOffset(IntSize());
+ setSavedLayerScrollOffset(ScrollOffset());
if (insertionPoint->isInTreeScope() && treeScope() == document()) {
const AtomicString& idValue = getIdAttribute();
@@ -3583,12 +3582,12 @@ void Element::scheduleSVGFilterLayerUpdateHack() {
document().scheduleSVGFilterLayerUpdateHack(*this);
}
-IntSize Element::savedLayerScrollOffset() const {
+ScrollOffset Element::savedLayerScrollOffset() const {
return hasRareData() ? elementRareData()->savedLayerScrollOffset()
- : IntSize();
+ : ScrollOffset();
}
-void Element::setSavedLayerScrollOffset(const IntSize& size) {
+void Element::setSavedLayerScrollOffset(const ScrollOffset& size) {
if (size.isZero() && !hasRareData())
return;
ensureElementRareData().setSavedLayerScrollOffset(size);

Powered by Google App Engine
This is Rietveld 408576698