Index: chrome/browser/extensions/service_worker_apitest.cc |
diff --git a/chrome/browser/extensions/service_worker_apitest.cc b/chrome/browser/extensions/service_worker_apitest.cc |
index a4786927c2e4d4b7960c05f10270aaa5f9322f8e..524da3b6def4cfd3b68e2b338dbd554b547e2d2f 100644 |
--- a/chrome/browser/extensions/service_worker_apitest.cc |
+++ b/chrome/browser/extensions/service_worker_apitest.cc |
@@ -4,6 +4,7 @@ |
#include "base/bind_helpers.h" |
#include "base/strings/stringprintf.h" |
+#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/extensions/extension_apitest.h" |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
@@ -20,6 +21,7 @@ |
#include "extensions/browser/process_manager.h" |
#include "extensions/test/background_page_watcher.h" |
#include "extensions/test/extension_test_message_listener.h" |
+#include "net/test/embedded_test_server/embedded_test_server.h" |
namespace extensions { |
@@ -391,4 +393,24 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerBackgroundSyncTest, Sync) { |
EXPECT_TRUE(sync_listener.WaitUntilSatisfied()); |
} |
+IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, |
+ FetchFromContentScriptShouldNotGoToServiceWorkerOfPage) { |
+ ASSERT_TRUE(StartEmbeddedTestServer()); |
+ GURL page_url = embedded_test_server()->GetURL( |
+ "/extensions/api_test/service_worker/content_script_fetch/" |
+ "controlled_page/index.html"); |
+ content::WebContents* tab = |
+ browser()->tab_strip_model()->GetActiveWebContents(); |
+ ui_test_utils::NavigateToURL(browser(), page_url); |
+ content::WaitForLoadStop(tab); |
+ |
+ std::string value; |
+ ASSERT_TRUE( |
+ content::ExecuteScriptAndExtractString(tab, "register();", &value)); |
+ EXPECT_EQ("SW controlled", value); |
+ |
+ ASSERT_TRUE(RunExtensionTest("service_worker/content_script_fetch")) |
+ << message_; |
+} |
+ |
} // namespace extensions |