From 32113c01eb0f7c2f181b7081e9511acb46e93886 Mon Sep 17 00:00:00 2001 From: Oleg Romashin Date: Thu, 18 Nov 2010 16:47:16 +0200 Subject: [PATCH] Bug 606672 - Fennec scrolling code is too expensive. part1, part2. [r=mfinkle] --HG-- extra : rebase_source : b7f80e3e0ac699b1593954aff57e9ca262c6eb61 --- mobile/chrome/content/browser-ui.js | 5 +++-- mobile/chrome/content/browser.js | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/mobile/chrome/content/browser-ui.js b/mobile/chrome/content/browser-ui.js index 8d115ef1323a..b0d5b62aec42 100644 --- a/mobile/chrome/content/browser-ui.js +++ b/mobile/chrome/content/browser-ui.js @@ -82,9 +82,10 @@ let Elements = {}; ["tabs", "tabs-container"], ["controls", "browser-controls"], ["panelUI", "panel-container"], - ["viewBuffer", "view-buffer"], ["toolbarContainer", "toolbar-container"], - ["browsers", "browsers"] + ["browsers", "browsers"], + ["contentViewport", "content-viewport"], + ["contentNavigator", "content-navigator"] ].forEach(function (aElementGlobal) { let [name, id] = aElementGlobal; XPCOMUtils.defineLazyGetter(Elements, name, function() { diff --git a/mobile/chrome/content/browser.js b/mobile/chrome/content/browser.js index d7a645027107..188d198de729 100644 --- a/mobile/chrome/content/browser.js +++ b/mobile/chrome/content/browser.js @@ -218,9 +218,9 @@ var Browser = { }, getPosition: function(aScrollX, aScrollY) { - let { x: x, y: y } = getBrowser().getPosition(); - aScrollX.value = x; - aScrollY.value = y; + let scroll = getBrowser().getPosition(); + aScrollX.value = scroll.x; + aScrollY.value = scroll.y; } }; @@ -772,8 +772,8 @@ var Browser = { tab.lastSelected = Date.now(); if (tab.pageScrollOffset) { - let { x: pageScrollX, y: pageScrollY } = tab.pageScrollOffset; - Browser.pageScrollboxScroller.scrollTo(pageScrollX, pageScrollY); + let pageScroll = tab.pageScrollOffset; + Browser.pageScrollboxScroller.scrollTo(pageScroll.x, pageScroll.y); } }, @@ -1166,8 +1166,8 @@ Browser.MainDragger.prototype = { if (doffset.x > 0 && rect.left > 0) x = Math.min(doffset.x, rect.left); - let height = document.getElementById("content-viewport").getBoundingClientRect().height; - height -= document.getElementById("content-navigator").getBoundingClientRect().height; + let height = Elements.contentViewport.getBoundingClientRect().height; + height -= Elements.contentNavigator.getBoundingClientRect().height; rect = Rect.fromRect(Browser.contentScrollbox.getBoundingClientRect()).map(Math.round); if (doffset.y < 0 && rect.bottom < height) y = Math.max(doffset.y, rect.bottom - height); @@ -1180,10 +1180,10 @@ Browser.MainDragger.prototype = { /** Pan scroller by the given amount. Updates doffset with leftovers. */ _panScroller: function _panScroller(scroller, doffset) { - let { x: x0, y: y0 } = Browser.getScrollboxPosition(scroller); + let scroll = Browser.getScrollboxPosition(scroller); scroller.scrollBy(doffset.x, doffset.y); - let { x: x1, y: y1 } = Browser.getScrollboxPosition(scroller); - doffset.subtract(x1 - x0, y1 - y0); + let scroll1 = Browser.getScrollboxPosition(scroller); + doffset.subtract(scroll1.x - scroll.x, scroll1.y - scroll.y); } };