Bug 1105109 - Have content send the parent process a scroll id and pres shell id as part of the Autoscroll:Start message. r=kats
MozReview-Commit-ID: 5Jnr8jFsSHF
--- a/toolkit/content/browser-content.js
+++ b/toolkit/content/browser-content.js
@@ -129,20 +129,36 @@ var ClickEventHandler = {
startScroll(event) {
this.findNearestScrollableElement(event.originalTarget);
if (!this._scrollable)
return;
+ let domUtils = content.QueryInterface(Ci.nsIInterfaceRequestor)
+ .getInterface(Ci.nsIDOMWindowUtils);
+ let scrollable = this._scrollable;
+ if (scrollable instanceof Ci.nsIDOMWindow) {
+ // getViewId() needs an element to operate on.
+ scrollable = scrollable.document.documentElement;
+ }
+ let scrollId = null;
+ try {
+ scrollId = domUtils.getViewId(scrollable);
+ } catch (e) {
+ // No view ID - leave it as null. Receiving side will check.
+ }
+ let presShellId = domUtils.getPresShellId();
let [enabled] = sendSyncMessage("Autoscroll:Start",
{scrolldir: this._scrolldir,
screenX: event.screenX,
- screenY: event.screenY});
+ screenY: event.screenY,
+ scrollId,
+ presShellId});
if (!enabled) {
this._scrollable = null;
return;
}
Services.els.addSystemEventListener(global, "mousemove", this, true);
addEventListener("pagehide", this, true);