diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-15 20:16:41 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-15 20:16:41 +0000 |
commit | d328413b739ed1150369743a64cacfb167086a32 (patch) | |
tree | 3c4c18ff0d0256bc3372420bf3c7a18ab0d64088 /chrome/renderer | |
parent | ad6d2c4304320a300009682901199278fabd3148 (diff) | |
download | chromium_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.grd | 2 | ||||
-rw-r--r-- | chrome/renderer/resources/extension_apitest.js | 25 |
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(); }; |