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 29fad8fa5aa7285fc66d58454b3be8d38db67766..2f8b9dc2b43821c55d78f69ddfae0b31c3a89dcc 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" |
@@ -18,6 +19,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 { |
@@ -337,4 +339,24 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerTest, |
EXPECT_TRUE(RunExtensionSubtest("service_worker/no_background", "page.html")); |
} |
+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 |