From e8be5a3e1462ccd2f02a82867db721fe8d3e8387 Mon Sep 17 00:00:00 2001 From: Mark Finkle Date: Mon, 24 Jan 2011 23:20:26 -0500 Subject: [PATCH] Bug 627293 - backout for Ts regression [r=me] --- mobile/chrome/content/bindings/browser.xml | 3 -- mobile/chrome/content/browser.js | 43 ++++++++++------------ 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/mobile/chrome/content/bindings/browser.xml b/mobile/chrome/content/bindings/browser.xml index 128b8f2036a7..793a3871ad3f 100644 --- a/mobile/chrome/content/bindings/browser.xml +++ b/mobile/chrome/content/bindings/browser.xml @@ -142,9 +142,6 @@ // Recalculate whether the visible area is actually in bounds let view = self.getRootView(); view.scrollBy(0, 0); - - // XXX Actually this fire a SetCacheViewport event as well as the - // scrolledAreaChanged handler in content/chrome/browser.js view._updateCacheViewport(); break; } diff --git a/mobile/chrome/content/browser.js b/mobile/chrome/content/browser.js index 0f3febfb55f5..50f6bb1c7a23 100644 --- a/mobile/chrome/content/browser.js +++ b/mobile/chrome/content/browser.js @@ -2544,8 +2544,7 @@ Tab.prototype = { } } - if (browser.contentWindowWidth != viewportW || browser.contentWindowHeight != viewportH) - browser.setWindowSize(viewportW, viewportH); + browser.setWindowSize(viewportW, viewportH); }, restoreViewportPosition: function restoreViewportPosition(aOldWidth, aNewWidth) { @@ -2858,31 +2857,29 @@ var ViewableAreaObserver = { let newWidth = this.width; let newHeight = this.height; - if (newHeight == oldHeight && newWidth == oldWidth) - return; + if (newHeight != oldHeight || newWidth != oldWidth) { + Browser.styles["viewable-height"].height = newHeight + "px"; + Browser.styles["viewable-height"].maxHeight = newHeight + "px"; - Browser.styles["viewable-height"].height = newHeight + "px"; - Browser.styles["viewable-height"].maxHeight = newHeight + "px"; + Browser.styles["viewable-width"].width = newWidth + "px"; + Browser.styles["viewable-width"].maxWidth = newWidth + "px"; - Browser.styles["viewable-width"].width = newWidth + "px"; - Browser.styles["viewable-width"].maxWidth = newWidth + "px"; + for (let i = Browser.tabs.length - 1; i >= 0; i--) { + let tab = Browser.tabs[i]; + tab.updateViewportSize(); - for (let i = Browser.tabs.length - 1; i >= 0; i--) { - let tab = Browser.tabs[i]; - tab.updateViewportSize(); - tab.updateDefaultZoomLevel(); + // If the viewport width is still the same, the page layout has not + // changed, so we can keep keep the same content on-screen. + if (tab.browser.contentWindowWidth == oldWidth) + tab.restoreViewportPosition(oldWidth, newWidth); + } - // If the viewport width is still the same, the page layout has not - // changed, so we can keep keep the same content on-screen. - if (tab.browser.contentWindowWidth == oldWidth) - tab.restoreViewportPosition(oldWidth, newWidth); + // setTimeout(callback, 0) to ensure the resize event handler dispatch is finished + setTimeout(function() { + let event = document.createEvent("Events"); + event.initEvent("SizeChanged", true, false); + Elements.browsers.dispatchEvent(event); + }, 0); } - - // setTimeout(callback, 0) to ensure the resize event handler dispatch is finished - setTimeout(function() { - let event = document.createEvent("Events"); - event.initEvent("SizeChanged", true, false); - Elements.browsers.dispatchEvent(event); - }, 0); } };