summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-15 20:16:41 +0000
committerrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-15 20:16:41 +0000
commitd328413b739ed1150369743a64cacfb167086a32 (patch)
tree3c4c18ff0d0256bc3372420bf3c7a18ab0d64088 /chrome/renderer
parentad6d2c4304320a300009682901199278fabd3148 (diff)
downloadchromium_src-d328413b739ed1150369743a64cacfb167086a32.zip
chromium_src-d328413b739ed1150369743a64cacfb167086a32.tar.gz
chromium_src-d328413b739ed1150369743a64cacfb167086a32.tar.bz2
Address ExtensionApiTest.Tabs flakiness
This addresses two problems. (1) relativeUrlTabsUpdate could fail because it was depending on testTabId getting set from relativeUrlTabsCreate, which may have happened out of order. I have refactored the callback blocking so additional blocks can be created with chrome.test.callbackAdded(). (2) tabs.update({url:}) is still failing intermitantly. This changes addeds valid html files in the extension which can be navitation targets (previously, non-existent urls had been used), in the hopes that the random failures had to do with load errors. BUG=20828 Review URL: http://codereview.chromium.org/195090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26258 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/renderer_resources.grd2
-rw-r--r--chrome/renderer/resources/extension_apitest.js25
2 files changed, 13 insertions, 14 deletions
diff --git a/chrome/renderer/renderer_resources.grd b/chrome/renderer/renderer_resources.grd
index 80657868..50230d5 100644
--- a/chrome/renderer/renderer_resources.grd
+++ b/chrome/renderer/renderer_resources.grd
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- This comment is only here because changes to resources are not picked up
-without changes to the corresponding grd file. rw -->
+without changes to the corresponding grd file. rw2 -->
<grit latest_public_release="0" current_release="1">
<outputs>
<output filename="grit/renderer_resources.h" type="rc_header">
diff --git a/chrome/renderer/resources/extension_apitest.js b/chrome/renderer/resources/extension_apitest.js
index 90cc055..e9d92b5 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();
};