Bug 552828 - update Form History to work with Electrolysis: use frame script unload event [r=dolske]

This commit is contained in:
Benjamin Stover 2010-08-16 21:10:37 -07:00
parent b67eb1a272
commit 157f63a272
2 changed files with 27 additions and 6 deletions

View File

@ -35,14 +35,15 @@
*
* ***** END LICENSE BLOCK ***** */
const Cc = Components.classes;
const Ci = Components.interfaces;
var Cc = Components.classes;
var Ci = Components.interfaces;
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
const satchelFormListener = {
var satchelFormListener = {
QueryInterface : XPCOMUtils.generateQI([Ci.nsIFormSubmitObserver,
Ci.nsIDOMEventListener,
Ci.nsObserver,
Ci.nsISupportsWeakReference]),
@ -55,9 +56,11 @@ const satchelFormListener = {
let prefBranch = Services.prefs.getBranch("browser.formfill.");
prefBranch.QueryInterface(Ci.nsIPrefBranch2);
prefBranch.addObserver("", this, true);
prefBranch.addObserver("", this, false);
this.updatePrefs();
addEventListener("unload", this, false);
},
updatePrefs : function () {
@ -101,6 +104,24 @@ const satchelFormListener = {
Services.console.logStringMessage("satchelFormListener: " + message);
},
/* ---- dom event handler ---- */
handleEvent: function(e) {
switch (e.type) {
case "unload":
Services.obs.removeObserver(this, "earlyformsubmit");
let prefBranch = Services.prefs.getBranch("browser.formfill.");
prefBranch.QueryInterface(Ci.nsIPrefBranch2);
prefBranch.removeObserver("", this);
break;
default:
this.log("Oops! Unexpected event: " + e.type);
break;
}
},
/* ---- nsIObserver interface ---- */
observe : function (subject, topic, data) {

View File

@ -55,7 +55,7 @@ FormHistory.prototype = {
QueryInterface : XPCOMUtils.generateQI([Ci.nsIFormHistory2,
Ci.nsIObserver,
Ci.nsIFrameMessageListener,
Ci.nsISupportsWeakReference]),
]),
debug : true,
enabled : true,
@ -129,7 +129,7 @@ FormHistory.prototype = {
let prefBranch = Services.prefs.getBranch("browser.formfill.");
prefBranch = prefBranch.QueryInterface(Ci.nsIPrefBranch2);
prefBranch.addObserver("", this, true);
prefBranch.addObserver("", this, false);
this.updatePrefs();