Check permissions for chrome.tabs.executeScript() in the
renderer just before injection to avoid races.

BUG=30937

Review URL: http://codereview.chromium.org/509032

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35176 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/execute_script_apitest.cc b/chrome/browser/extensions/execute_script_apitest.cc
index 902ffe6..07662b6c 100644
--- a/chrome/browser/extensions/execute_script_apitest.cc
+++ b/chrome/browser/extensions/execute_script_apitest.cc
@@ -7,10 +7,13 @@
 // This test failed at times on the Vista dbg builder and has been marked as
 // flaky for now. Bug http://code.google.com/p/chromium/issues/detail?id=28630
 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, FLAKY_ExecuteScript) {
-  host_resolver()->AddRule("a.com", "127.0.0.1");
+  // We need a.com to be a little bit slow to trigger a race condition.
+  host_resolver()->AddRuleWithLatency("a.com", "127.0.0.1", 500);
   host_resolver()->AddRule("b.com", "127.0.0.1");
+  host_resolver()->AddRule("c.com", "127.0.0.1");
   StartHTTPServer();
 
   ASSERT_TRUE(RunExtensionTest("executescript/basic")) << message_;
   ASSERT_TRUE(RunExtensionTest("executescript/in_frame")) << message_;
+  ASSERT_TRUE(RunExtensionTest("executescript/permissions")) << message_;
 }