Index: chrome/renderer/resources/extension_process_bindings.js |
diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js |
index 9bd0aca30342c12e99274d7e947126eea276ab2d..5a9fcf1b49d29da657cc03d1f3175a7fb9fe99a7 100644 |
--- a/chrome/renderer/resources/extension_process_bindings.js |
+++ b/chrome/renderer/resources/extension_process_bindings.js |
@@ -10,6 +10,9 @@ |
var chrome; |
(function() { |
native function GetNextRequestId(); |
+ native function RegisterExtension(); |
+ native function UnregisterExtension(); |
+ native function GetViews(); |
native function GetWindow(); |
native function GetCurrentWindow(); |
native function GetLastFocusedWindow(); |
@@ -499,7 +502,19 @@ var chrome; |
//---------------------------------------------------------------------------- |
// Self. |
- chrome.self = {}; |
+ chrome.self = chrome.self || {}; |
chrome.self.onConnect = new chrome.Event("channel-connect"); |
+ |
+ // Register |
+ chrome.self.register_ = function() { |
+ var extensionId = RegisterExtension(); |
+ window.addEventListener('unload', function() { |
+ UnregisterExtension(extensionId); }, false); |
+ delete chrome.self.register_; |
+ } |
+ |
+ chrome.self.getViews = function() { |
+ return GetViews(); |
+ } |
})(); |