[Pkg-mozext-commits] [tabmixplus] 14/34: [e10s] Update session manager to use content script to collect scroll position
David Prévot
taffit at moszumanska.debian.org
Mon Mar 9 23:28:07 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository tabmixplus.
commit 02f015821e12e5ace415f1f16a16f5b20e328511
Author: onemen <tabmix.onemen at gmail.com>
Date: Fri Feb 20 14:00:59 2015 +0200
[e10s] Update session manager to use content script to collect scroll position
---
chrome/content/content.js | 6 ++++++
chrome/content/session/session.js | 13 ++++++++++---
modules/Utils.jsm | 6 ++++++
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/chrome/content/content.js b/chrome/content/content.js
index 3b96f1c..5671c77 100644
--- a/chrome/content/content.js
+++ b/chrome/content/content.js
@@ -29,6 +29,7 @@ let TabmixContentHandler = {
"Tabmix:resetContentName",
"Tabmix:sendDOMTitleChanged",
"Tabmix:updateHistoryTitle",
+ "Tabmix:collectScrollPosition",
],
init: function () {
@@ -67,6 +68,11 @@ let TabmixContentHandler = {
let history = docShell.QueryInterface(Ci.nsIWebNavigation).sessionHistory;
TabmixUtils.updateHistoryTitle(history, data.title);
break;
+ case "Tabmix:collectScrollPosition":
+ let scroll = {scrollX: content.scrollX,
+ scrollY: content.scrollY};
+ sendAsyncMessage("Tabmix:updateScrollPosition", { scroll: scroll });
+ break;
}
},
diff --git a/chrome/content/session/session.js b/chrome/content/session/session.js
index 9db037f..894485a 100644
--- a/chrome/content/session/session.js
+++ b/chrome/content/session/session.js
@@ -2758,9 +2758,15 @@ try{
return;
var aBrowser = gBrowser.getBrowserForTab(aTab);
if (gBrowser.isBlankBrowser(aBrowser)) return;
- var bContent = aBrowser[TabmixSvc.contentWindowAsCPOW];
- if (bContent)
- this.setLiteral(this.getNodeForTab(aTab), "scroll", bContent.scrollX + "," + bContent.scrollY);
+ if (Tabmix.isVersion(320))
+ aBrowser.messageManager.sendAsyncMessage("Tabmix:collectScrollPosition");
+ else
+ this.updateScrollPosition(aTab, aBrowser.contentWindow);
+ },
+
+ updateScrollPosition: function(tab, scroll) {
+ if (scroll)
+ this.setLiteral(this.getNodeForTab(tab), "scroll", scroll.scrollX + "," + scroll.scrollY);
},
tabSelected: function(needFlush) {
@@ -3389,6 +3395,7 @@ try{
browser.stop();
// reset old history
let history = browser.webNavigation.sessionHistory;
+///XXX - unsafe CPOW usage
if (history) {
if (history.count > 0)
history.PurgeHistory(history.count);
diff --git a/modules/Utils.jsm b/modules/Utils.jsm
index f59a8c2..cc43dea 100644
--- a/modules/Utils.jsm
+++ b/modules/Utils.jsm
@@ -8,6 +8,7 @@ const {interfaces: Ci, utils: Cu} = Components;
const FMM_MESSAGES = [
"Tabmix:SetSyncHandler",
"Tabmix:restorePermissionsComplete",
+ "Tabmix:updateScrollPosition",
];
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@@ -42,6 +43,11 @@ this.TabmixUtils = {
case "Tabmix:restorePermissionsComplete":
DocShellCapabilities.update(browser, message.data);
break;
+ case "Tabmix:updateScrollPosition":
+ let win = browser.ownerDocument.defaultView;
+ let tab = win.gBrowser.getTabForBrowser(browser);
+ win.TabmixSessionManager.updateScrollPosition(tab, message.data.scroll);
+ break;
}
},
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git
More information about the Pkg-mozext-commits
mailing list