Bug 1473713 - Fix GeckoSession.saveState() when accessibility is used r=droeh
MozReview-Commit-ID: GG16D99S2Id
--- a/mobile/android/chrome/geckoview/GeckoViewContent.js
+++ b/mobile/android/chrome/geckoview/GeckoViewContent.js
@@ -14,16 +14,22 @@ XPCOMUtils.defineLazyModuleGetters(this,
ScrollPosition: "resource://gre/modules/ScrollPosition.jsm",
Utils: "resource://gre/modules/sessionstore/Utils.jsm",
});
class GeckoViewContent extends GeckoViewContentModule {
onInit() {
debug `onInit`;
+ // We don't load this in the global namespace because
+ // a Utils.jsm in a11y will clobber us.
+ XPCOMUtils.defineLazyModuleGetters(this, {
+ Utils: "resource://gre/modules/sessionstore/Utils.jsm",
+ });
+
this.messageManager.addMessageListener("GeckoView:SaveState",
this);
this.messageManager.addMessageListener("GeckoView:RestoreState",
this);
this.messageManager.addMessageListener("GeckoView:DOMFullscreenEntered",
this);
this.messageManager.addMessageListener("GeckoView:DOMFullscreenExited",
this);
@@ -54,17 +60,17 @@ class GeckoViewContent extends GeckoView
removeEventListener("MozDOMFullscreen:Exit", this);
removeEventListener("MozDOMFullscreen:Exited", this);
removeEventListener("MozDOMFullscreen:Request", this);
removeEventListener("contextmenu", this, { capture: true });
}
collectSessionState() {
let history = SessionHistory.collect(docShell);
- let [formdata, scrolldata] = Utils.mapFrameTree(content, FormData.collect, ScrollPosition.collect);
+ let [formdata, scrolldata] = this.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;