summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/resources/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/resources/extensions')
-rw-r--r--chrome/renderer/resources/extensions/browser_action_custom_bindings.js12
-rw-r--r--chrome/renderer/resources/extensions/chrome_web_view_internal_custom_bindings.js33
-rw-r--r--chrome/renderer/resources/extensions/file_entry_binding_util.js10
-rw-r--r--chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js25
-rw-r--r--chrome/renderer/resources/extensions/media_galleries_custom_bindings.js35
-rw-r--r--chrome/renderer/resources/extensions/page_capture_custom_bindings.js4
-rw-r--r--chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js14
-rw-r--r--chrome/renderer/resources/extensions/tab_capture_custom_bindings.js12
8 files changed, 77 insertions, 68 deletions
diff --git a/chrome/renderer/resources/extensions/browser_action_custom_bindings.js b/chrome/renderer/resources/extensions/browser_action_custom_bindings.js
index 5704305..cc22bef 100644
--- a/chrome/renderer/resources/extensions/browser_action_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/browser_action_custom_bindings.js
@@ -9,6 +9,7 @@ var binding = require('binding').Binding.create('browserAction');
var setIcon = require('setIcon').setIcon;
var getExtensionViews = requireNative('runtime').GetExtensionViews;
var sendRequest = require('sendRequest').sendRequest;
+var lastError = require('lastError');
binding.registerCustomHook(function(bindingsAPI) {
var apiFunctions = bindingsAPI.apiFunctions;
@@ -20,17 +21,16 @@ binding.registerCustomHook(function(bindingsAPI) {
});
apiFunctions.setCustomCallback('openPopup',
- function(name, request, response) {
- if (!request.callback)
+ function(name, request, callback, response) {
+ if (!callback)
return;
- if (chrome.runtime.lastError) {
- request.callback();
+ if (lastError.hasError(chrome)) {
+ callback();
} else {
var views = getExtensionViews(-1, 'POPUP');
- request.callback(views.length > 0 ? views[0] : null);
+ callback(views.length > 0 ? views[0] : null);
}
- request.callback = null;
});
});
diff --git a/chrome/renderer/resources/extensions/chrome_web_view_internal_custom_bindings.js b/chrome/renderer/resources/extensions/chrome_web_view_internal_custom_bindings.js
index c55d644..9346c11 100644
--- a/chrome/renderer/resources/extensions/chrome_web_view_internal_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/chrome_web_view_internal_custom_bindings.js
@@ -14,6 +14,7 @@ var EventBindings = require('event_bindings');
var binding = require('binding').Binding.create('chromeWebViewInternal');
var contextMenuNatives = requireNative('context_menus');
var sendRequest = require('sendRequest').sendRequest;
+var lastError = require('lastError');
binding.registerCustomHook(function(bindingsAPI) {
var apiFunctions = bindingsAPI.apiFunctions;
@@ -78,8 +79,10 @@ binding.registerCustomHook(function(bindingsAPI) {
});
apiFunctions.setCustomCallback('contextMenusCreate',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
+ function(name, request, callback, response) {
+ if (lastError.hasError(chrome)) {
+ if (callback)
+ callback();
return;
}
@@ -90,11 +93,15 @@ binding.registerCustomHook(function(bindingsAPI) {
webviewContextMenus.ensureListenerSetup();
webviewContextMenus.handlersForId(instanceId, id)[id] = onclick;
}
+ if (callback)
+ callback();
});
apiFunctions.setCustomCallback('contextMenusUpdate',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
+ function(name, request, callback, response) {
+ if (lastError.hasError(chrome)) {
+ if (callback)
+ callback();
return;
}
var instanceId = request.args[0];
@@ -103,26 +110,36 @@ binding.registerCustomHook(function(bindingsAPI) {
webviewContextMenus.handlersForId(instanceId, id)[id] =
request.args[2].onclick;
}
+ if (callback)
+ callback();
});
apiFunctions.setCustomCallback('contextMenusRemove',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
+ function(name, request, callback, response) {
+ if (lastError.hasError(chrome)) {
+ if (callback)
+ callback();
return;
}
var instanceId = request.args[0];
var id = request.args[1];
delete webviewContextMenus.handlersForId(instanceId, id)[id];
+ if (callback)
+ callback();
});
apiFunctions.setCustomCallback('contextMenusRemoveAll',
- function(name, request, response) {
- if (chrome.runtime.lastError) {
+ function(name, request, callback, response) {
+ if (lastError.hasError(chrome)) {
+ if (callback)
+ callback();
return;
}
var instanceId = request.args[0];
webviewContextMenus.stringIdHandlers[instanceId] = {};
webviewContextMenus.generatedIdHandlers[instanceId] = {};
+ if (callback)
+ callback();
});
});
diff --git a/chrome/renderer/resources/extensions/file_entry_binding_util.js b/chrome/renderer/resources/extensions/file_entry_binding_util.js
index 3e4216b..1789726 100644
--- a/chrome/renderer/resources/extensions/file_entry_binding_util.js
+++ b/chrome/renderer/resources/extensions/file_entry_binding_util.js
@@ -28,10 +28,12 @@ function getFileBindingsForApi(apiName) {
if (window == backgroundPage) {
var bindFileEntryCallback = function(functionName, apiFunctions) {
apiFunctions.setCustomCallback(functionName,
- function(name, request, response) {
- if (request.callback && response) {
- var callback = request.callback;
- request.callback = null;
+ function(name, request, callback, response) {
+ if (callback) {
+ if (!response) {
+ callback();
+ return;
+ }
var entries = [];
var hasError = false;
diff --git a/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js b/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js
index 9d374ae..7347e23 100644
--- a/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js
@@ -24,34 +24,32 @@ binding.registerCustomHook(function(bindingsAPI) {
var apiFunctions = bindingsAPI.apiFunctions;
apiFunctions.setCustomCallback('requestFileSystem',
- function(name, request, response) {
+ function(name, request, callback, response) {
var fs = null;
if (response && !response.error)
fs = GetFileSystem(response.name, response.root_url);
- if (request.callback)
- request.callback(fs);
- request.callback = null;
+ if (callback)
+ callback(fs);
});
apiFunctions.setCustomCallback('searchDrive',
- function(name, request, response) {
+ function(name, request, callback, response) {
if (response && !response.error && response.entries) {
response.entries = response.entries.map(function(entry) {
return GetExternalFileEntry(entry);
});
}
- // So |request.callback| doesn't break if response is not defined.
+ // So |callback| doesn't break if response is not defined.
if (!response)
response = {};
- if (request.callback)
- request.callback(response.entries, response.nextFeed);
- request.callback = null;
+ if (callback)
+ callback(response.entries, response.nextFeed);
});
apiFunctions.setCustomCallback('searchDriveMetadata',
- function(name, request, response) {
+ function(name, request, callback, response) {
if (response && !response.error) {
for (var i = 0; i < response.length; i++) {
response[i].entry =
@@ -59,13 +57,12 @@ binding.registerCustomHook(function(bindingsAPI) {
}
}
- // So |request.callback| doesn't break if response is not defined.
+ // So |callback| doesn't break if response is not defined.
if (!response)
response = {};
- if (request.callback)
- request.callback(response);
- request.callback = null;
+ if (callback)
+ callback(response);
});
apiFunctions.setHandleRequest('resolveIsolatedEntries',
diff --git a/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js b/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js
index bbe740a..7c52a38 100644
--- a/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js
@@ -34,23 +34,21 @@ binding.registerCustomHook(function(bindingsAPI, extensionId) {
// custom callback so that they can instantiate and return an array of file
// system objects.
apiFunctions.setCustomCallback('getMediaFileSystems',
- function(name, request, response) {
+ function(name, request, callback, response) {
var result = createFileSystemObjectsAndUpdateMetadata(response);
- if (request.callback)
- request.callback(result);
- request.callback = null;
+ if (callback)
+ callback(result);
});
apiFunctions.setCustomCallback('addScanResults',
- function(name, request, response) {
+ function(name, request, callback, response) {
var result = createFileSystemObjectsAndUpdateMetadata(response);
- if (request.callback)
- request.callback(result);
- request.callback = null;
+ if (callback)
+ callback(result);
});
apiFunctions.setCustomCallback('addUserSelectedFolder',
- function(name, request, response) {
+ function(name, request, callback, response) {
var fileSystems = [];
var selectedFileSystemName = "";
if (response && 'mediaFileSystems' in response &&
@@ -62,13 +60,12 @@ binding.registerCustomHook(function(bindingsAPI, extensionId) {
selectedFileSystemName = fileSystems[selectedFileSystemIndex].name;
}
}
- if (request.callback)
- request.callback(fileSystems, selectedFileSystemName);
- request.callback = null;
+ if (callback)
+ callback(fileSystems, selectedFileSystemName);
});
apiFunctions.setCustomCallback('dropPermissionForMediaFileSystem',
- function(name, request, response) {
+ function(name, request, callback, response) {
var galleryId = response;
if (galleryId) {
@@ -79,9 +76,8 @@ binding.registerCustomHook(function(bindingsAPI, extensionId) {
}
}
}
- if (request.callback)
- request.callback();
- request.callback = null;
+ if (callback)
+ callback();
});
apiFunctions.setHandleRequest('getMediaFileSystemMetadata',
@@ -110,7 +106,7 @@ binding.registerCustomHook(function(bindingsAPI, extensionId) {
});
apiFunctions.setCustomCallback('getMetadata',
- function(name, request, response) {
+ function(name, request, callback, response) {
if (response.attachedImagesBlobInfo) {
for (var i = 0; i < response.attachedImagesBlobInfo.length; i++) {
var blobInfo = response.attachedImagesBlobInfo[i];
@@ -120,9 +116,8 @@ binding.registerCustomHook(function(bindingsAPI, extensionId) {
}
}
- if (request.callback)
- request.callback(response.metadata);
- request.callback = null;
+ if (callback)
+ callback(response.metadata);
// The UUID was in position 0 in the setUpdateArgumentsPostValidate
// function.
diff --git a/chrome/renderer/resources/extensions/page_capture_custom_bindings.js b/chrome/renderer/resources/extensions/page_capture_custom_bindings.js
index 1848297..fa1a544 100644
--- a/chrome/renderer/resources/extensions/page_capture_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/page_capture_custom_bindings.js
@@ -15,9 +15,7 @@ binding.registerCustomHook(function(bindingsAPI) {
var apiFunctions = bindingsAPI.apiFunctions;
apiFunctions.setCustomCallback('saveAsMHTML',
- function(name, request, response) {
- var callback = request.callback;
- request.callback = null;
+ function(name, request, callback, response) {
if (response)
response = CreateBlob(response.mhtmlFilePath, response.mhtmlFileLength);
diff --git a/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js b/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js
index 352b0a7..21d4d47 100644
--- a/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js
@@ -48,21 +48,20 @@ binding.registerCustomHook(function(bindingsAPI) {
// Functions which return an [instanceOf=DOMFileSystem].
apiFunctions.setCustomCallback('requestFileSystem',
- function(name, request, response) {
+ function(name, request, callback, response) {
var result = null;
if (response) {
result = syncFileSystemNatives.GetSyncFileSystemObject(
response.name, response.root);
}
- if (request.callback)
- request.callback(result);
- request.callback = null;
+ if (callback)
+ callback(result);
});
// Functions which return an array of FileStatusInfo object
// which has [instanceOf=FileEntry].
apiFunctions.setCustomCallback('getFileStatuses',
- function(name, request, response) {
+ function(name, request, callback, response) {
var results = [];
if (response) {
for (var i = 0; i < response.length; i++) {
@@ -79,9 +78,8 @@ binding.registerCustomHook(function(bindingsAPI) {
$Array.push(results, result);
}
}
- if (request.callback)
- request.callback(results);
- request.callback = null;
+ if (callback)
+ callback(results);
});
});
diff --git a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
index 0e285d2..93a6054 100644
--- a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
@@ -9,9 +9,12 @@ var binding = require('binding').Binding.create('tabCapture');
binding.registerCustomHook(function(bindingsAPI, extensionId) {
var apiFunctions = bindingsAPI.apiFunctions;
- apiFunctions.setCustomCallback('capture', function(name, request, response) {
- if (response && request.callback) {
- var callback = request.callback;
+ apiFunctions.setCustomCallback('capture',
+ function(name, request, callback, response) {
+ if (!callback)
+ return;
+
+ if (response) {
var options = {};
if (response.audioConstraints)
options.audio = response.audioConstraints;
@@ -26,9 +29,8 @@ binding.registerCustomHook(function(bindingsAPI, extensionId) {
callback(null);
}
} else {
- request.callback(null);
+ callback(null);
}
- request.callback = null;
});
});