Index: chrome/renderer/resources/extension_process_bindings.js |
=================================================================== |
--- chrome/renderer/resources/extension_process_bindings.js (revision 13446) |
+++ chrome/renderer/resources/extension_process_bindings.js (working copy) |
@@ -6,8 +6,15 @@ |
// callback handling |
var callbacks = []; |
chromium._dispatchCallback = function(callbackId, str) { |
- callbacks[callbackId](goog.json.parse(str)); |
- delete callbacks[callbackId]; |
+ try { |
+ if (str) { |
+ callbacks[callbackId](goog.json.parse(str)); |
+ } else { |
+ callbacks[callbackId](); |
+ } |
+ } finally { |
+ delete callbacks[callbackId]; |
+ } |
}; |
// Send an API request and optionally register a callback. |
@@ -29,8 +36,20 @@ |
native function GetTabsForWindow(); |
sendRequest(GetTabsForWindow, null, callback); |
}; |
+ chromium.tabs.getTab = function(tabId, callback) { |
+ native function GetTab(); |
+ sendRequest(GetTab, tabId, callback); |
+ }; |
chromium.tabs.createTab = function(tab, callback) { |
native function CreateTab(); |
sendRequest(CreateTab, tab, callback); |
}; |
+ chromium.tabs.updateTab = function(tab) { |
+ native function UpdateTab(); |
+ sendRequest(UpdateTab, tab); |
+ }; |
+ chromium.tabs.removeTab = function(tabId) { |
+ native function RemoveTab(); |
+ sendRequest(RemoveTab, tabId); |
+ }; |
})(); |