summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/renderer/resources/extension_process_bindings.js10
-rw-r--r--chrome/test/data/extensions/api_test/webrequest/events/test.html2
2 files changed, 11 insertions, 1 deletions
diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js
index 98e31cb..b2d10ff 100644
--- a/chrome/renderer/resources/extension_process_bindings.js
+++ b/chrome/renderer/resources/extension_process_bindings.js
@@ -274,6 +274,16 @@ var chrome = chrome || {};
this.callbackMap_ = {};
};
+ // Test if the given callback is registered for this event.
+ chrome.WebRequestEvent.prototype.hasListener = function(cb) {
+ return this.findListener_(cb) > -1;
+ };
+
+ // Test if any callbacks are registered fur thus event.
+ chrome.WebRequestEvent.prototype.hasListeners = function(cb) {
+ return this.subEvents_.length > 0;
+ };
+
// Registers a callback to be called when this event is dispatched. If
// opt_filter is specified, then the callback is only called for events that
// match the given filters. If opt_extraInfo is specified, the given optional
diff --git a/chrome/test/data/extensions/api_test/webrequest/events/test.html b/chrome/test/data/extensions/api_test/webrequest/events/test.html
index 2a35531..181acda 100644
--- a/chrome/test/data/extensions/api_test/webrequest/events/test.html
+++ b/chrome/test/data/extensions/api_test/webrequest/events/test.html
@@ -226,7 +226,7 @@ function removeListeners() {
for (var cb in event.callbackMap_) {
event.removeListener(cb);
}
- chrome.test.assertEq(0, event.subEvents_.length);
+ chrome.test.assertFalse(event.hasListeners());
}
helper(chrome.experimental.webRequest.onBeforeRequest);
helper(chrome.experimental.webRequest.onBeforeSendHeaders);