|
|
|
@ -59,7 +59,7 @@ vAPI.app.restart = function() {
|
|
|
|
|
// List of things that needs to be destroyed when disabling the extension
|
|
|
|
|
// Only functions should be added to it
|
|
|
|
|
|
|
|
|
|
vAPI.unload = [];
|
|
|
|
|
cleanupTasks = [];
|
|
|
|
|
|
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
|
|
|
@ -83,7 +83,7 @@ var SQLite = {
|
|
|
|
|
'(name TEXT PRIMARY KEY NOT NULL, value TEXT);'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
vAPI.unload.push(function() {
|
|
|
|
|
cleanupTasks.push(function() {
|
|
|
|
|
// VACUUM somewhere else, instead on unload?
|
|
|
|
|
SQLite.run('VACUUM');
|
|
|
|
|
SQLite.db.asyncClose();
|
|
|
|
@ -334,7 +334,7 @@ vAPI.tabs.registerListeners = function() {
|
|
|
|
|
|
|
|
|
|
Services.ww.registerNotification(windowWatcher);
|
|
|
|
|
|
|
|
|
|
vAPI.unload.push(function() {
|
|
|
|
|
cleanupTasks.push(function() {
|
|
|
|
|
Services.ww.unregisterNotification(windowWatcher);
|
|
|
|
|
|
|
|
|
|
for ( var win of vAPI.tabs.getWindows() ) {
|
|
|
|
@ -743,7 +743,7 @@ vAPI.messaging.setup = function(defaultHandler) {
|
|
|
|
|
|
|
|
|
|
this.globalMessageManager.loadFrameScript(this.frameScript, true);
|
|
|
|
|
|
|
|
|
|
vAPI.unload.push(function() {
|
|
|
|
|
cleanupTasks.push(function() {
|
|
|
|
|
var gmm = vAPI.messaging.globalMessageManager;
|
|
|
|
|
|
|
|
|
|
gmm.removeDelayedFrameScript(vAPI.messaging.frameScript);
|
|
|
|
@ -966,12 +966,12 @@ var httpObserver = {
|
|
|
|
|
|
|
|
|
|
var sourceTabId = null;
|
|
|
|
|
|
|
|
|
|
// popup candidate (only for main_frame type)
|
|
|
|
|
// Popup candidate (only for main_frame type)
|
|
|
|
|
if ( lastRequest.openerURL ) {
|
|
|
|
|
for ( var tab of vAPI.tabs.getAll() ) {
|
|
|
|
|
var tabURI = tab.linkedBrowser.currentURI;
|
|
|
|
|
|
|
|
|
|
// not the best approach
|
|
|
|
|
// Not the best approach
|
|
|
|
|
if ( tabURI.spec === this.lastRequest.openerURL ) {
|
|
|
|
|
sourceTabId = vAPI.tabs.getTabId(tab);
|
|
|
|
|
break;
|
|
|
|
@ -988,7 +988,7 @@ var httpObserver = {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if request is not handled we may use the data in on-modify-request
|
|
|
|
|
// If request is not handled we may use the data in on-modify-request
|
|
|
|
|
if ( channel instanceof Ci.nsIWritablePropertyBag ) {
|
|
|
|
|
channel.setProperty(
|
|
|
|
|
location.host + 'reqdata',
|
|
|
|
@ -1040,7 +1040,7 @@ var httpObserver = {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// carry the data on in case of multiple redirects
|
|
|
|
|
// Carry the data on in case of multiple redirects
|
|
|
|
|
if ( newChannel instanceof Ci.nsIWritablePropertyBag ) {
|
|
|
|
|
newChannel.setProperty(location.host + 'reqdata', channelData);
|
|
|
|
|
}
|
|
|
|
@ -1096,7 +1096,7 @@ vAPI.net.registerListeners = function() {
|
|
|
|
|
|
|
|
|
|
httpObserver.register();
|
|
|
|
|
|
|
|
|
|
vAPI.unload.push(function() {
|
|
|
|
|
cleanupTasks.push(function() {
|
|
|
|
|
vAPI.messaging.globalMessageManager.removeMessageListener(
|
|
|
|
|
shouldLoadListenerMessageName,
|
|
|
|
|
shouldLoadListener
|
|
|
|
@ -1171,7 +1171,7 @@ vAPI.toolbarButton.init = function() {
|
|
|
|
|
this.closePopup
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
vAPI.unload.push(function() {
|
|
|
|
|
cleanupTasks.push(function() {
|
|
|
|
|
CustomizableUI.destroyWidget(this.id);
|
|
|
|
|
vAPI.messaging.globalMessageManager.removeMessageListener(
|
|
|
|
|
location.host + ':closePopup',
|
|
|
|
@ -1457,8 +1457,8 @@ vAPI.onLoadAllCompleted = function() {};
|
|
|
|
|
// clean up when the extension is disabled
|
|
|
|
|
|
|
|
|
|
window.addEventListener('unload', function() {
|
|
|
|
|
for ( var unload of vAPI.unload ) {
|
|
|
|
|
unload();
|
|
|
|
|
for ( var cleanup of cleanupTasks ) {
|
|
|
|
|
cleanup();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// frameModule needs to be cleared too
|
|
|
|
|