Index: chrome/renderer/resources/extension_apitest.js |
diff --git a/chrome/renderer/resources/extension_apitest.js b/chrome/renderer/resources/extension_apitest.js |
index 90cc0554361326731b3fc4775c4e0e7a15f64ac7..e9d92b54141ad25f3ef7e48c56fa46f6e76fcd2c 100644 |
--- a/chrome/renderer/resources/extension_apitest.js |
+++ b/chrome/renderer/resources/extension_apitest.js |
@@ -48,17 +48,17 @@ var chrome = chrome || {}; |
chrome.test.notifyPass(); |
complete(); |
} |
- |
+ |
var pendingCallbacks = 0; |
- function callbackAdded() { |
+ chrome.test.callbackAdded = function () { |
pendingCallbacks++; |
- }; |
- function callbackCompleted() { |
- pendingCallbacks--; |
- if (pendingCallbacks == 0) { |
- chrome.test.succeed(); |
+ return function() { |
+ pendingCallbacks--; |
+ if (pendingCallbacks == 0) { |
+ chrome.test.succeed(); |
+ } |
} |
}; |
@@ -148,7 +148,7 @@ var chrome = chrome || {}; |
if (func) { |
chrome.test.assertEq(typeof(func), 'function'); |
} |
- callbackAdded(); |
+ var callbackCompleted = chrome.test.callbackAdded(); |
return function() { |
if (expectedError == null) { |
@@ -167,7 +167,7 @@ var chrome = chrome || {}; |
}; |
chrome.test.listenOnce = function(event, func) { |
- callbackAdded(); |
+ var callbackCompleted = chrome.test.callbackAdded(); |
var listener = function() { |
event.removeListener(listener); |
safeFunctionApply(func, arguments); |
@@ -177,14 +177,13 @@ var chrome = chrome || {}; |
}; |
chrome.test.listenForever = function(event, func) { |
- callbackAdded(); |
- |
+ var callbackCompleted = chrome.test.callbackAdded(); |
+ |
var listener = function() { |
safeFunctionApply(func, arguments); |
}; |
- var done = {}; |
- done.doneListening = function() { |
+ var done = function() { |
event.removeListener(listener); |
callbackCompleted(); |
}; |