Index: chrome/ext/content.js |
=================================================================== |
--- a/chrome/ext/content.js |
+++ b/chrome/ext/content.js |
@@ -2,3 +2,33 @@ |
{ |
return ext.onMessage._dispatch(message, {}, sendResponse).indexOf(true) != -1; |
}); |
+ |
+ext.onExtensionUnloaded = (function() |
+{ |
+ var port = null; |
+ |
+ return { |
+ addListener: function(listener) |
+ { |
+ if (!port) |
+ port = chrome.runtime.connect(); |
+ |
+ // When the extension is reloaded, disabled or uninstalled the |
+ // background page dies and automatically disconnects all ports |
+ port.onDisconnect.addListener(listener); |
+ }, |
+ removeListener: function(listener) |
+ { |
+ if (port) |
+ { |
+ port.onDisconnect.removeListener(listener) |
+ |
+ if (!port.onDisconnect.hasListeners()) |
+ { |
+ port.disconnect(); |
+ port = null; |
+ } |
+ } |
+ } |
+ }; |
+})(); |