Bug 1456391 - Part 5: Fix zoom level saving in GeckoView. r?snorp
When the scroll position is "0,0" or suchlike, the scrolldata ends up as null.
We still need something to store the zoom data on, though, so we add a fallback.
MozReview-Commit-ID: FE8BYB9nn25
--- a/mobile/android/chrome/geckoview/GeckoViewContent.js
+++ b/mobile/android/chrome/geckoview/GeckoViewContent.js
@@ -67,16 +67,17 @@ class GeckoViewContent extends GeckoView
collectSessionState() {
let history = SessionHistory.collect(docShell);
let [formdata, scrolldata] = Utils.mapFrameTree(content, FormData.collect, ScrollPosition.collect);
// Save the current document resolution.
let zoom = { value: 1 };
let domWindowUtils = content.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
domWindowUtils.getResolution(zoom);
+ scrolldata = scrolldata || {};
scrolldata.zoom = {};
scrolldata.zoom.resolution = zoom.value;
// Save some data that'll help in adjusting the zoom level
// when restoring in a different screen orientation.
let displaySize = {};
let width = {}, height = {};
domWindowUtils.getContentViewerSize(width, height);