Chromium Code Reviews| Index: content/browser/service_worker/service_worker_browsertest.cc |
| diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc |
| index f595226d03ce9a1902e6314445f96dc1c3f8bc89..d3c4ac8891d27c4b1a4a0096ff2c7d385eeb0797 100644 |
| --- a/content/browser/service_worker/service_worker_browsertest.cc |
| +++ b/content/browser/service_worker/service_worker_browsertest.cc |
| @@ -1921,6 +1921,40 @@ IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, RejectRedirects) { |
| GetTextContent()); |
| } |
| +// When the content type of the page is not correctly set, |
| +// OnStartLoadingResponseBody() of mojom::URLLoaderClient is called before |
| +// OnReceiveResponse(). This behavior is caused by MimeSniffingResourceHandler. |
| +// This test checks that even if the MimeSniffingResourceHandler is triggerd |
| +// navigation preload must be handled correctly. |
|
falken
2016/11/04 09:46:55
Thanks for docu. s/triggerd/triggered
horo
2016/11/04 09:58:19
Done.
|
| +IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, |
| + RespondWithNavigationPreloadWithMimeSniffing) { |
| + const char kPageUrl[] = "/service_worker/navigation_preload.html"; |
| + const char kWorkerUrl[] = "/service_worker/navigation_preload.js"; |
| + const char kPage[] = "<title>PASS</title>Hello world."; |
| + const char kScript[] = |
| + "self.addEventListener('fetch', event => {\n" |
| + " event.respondWith(event.preloadResponse);\n" |
| + " });"; |
| + const GURL page_url = embedded_test_server()->GetURL(kPageUrl); |
| + const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); |
| + |
| + // Setting an empty content type to triger MimeSniffingResourceHandler. |
|
falken
2016/11/04 09:46:55
s/triger/trigger
horo
2016/11/04 09:58:19
Done.
|
| + RegisterStaticFile(page_url, kPage, ""); |
| + RegisterStaticFile(worker_url, kScript, "text/javascript"); |
| + |
| + SetupForNavigationPreloadTest(page_url, worker_url, |
| + true /* enable_navigation_preload */); |
| + |
| + TitleWatcher title_watcher(shell()->web_contents(), |
| + base::ASCIIToUTF16("PASS")); |
| + NavigateToURL(shell(), page_url); |
| + EXPECT_EQ("Hello world.", GetTextContent()); |
| + |
| + // The page request must be sent only once, since the worker responded with |
| + // the navigation preload response |
| + EXPECT_EQ(1, GetRequestCount(kPageUrl)); |
| +} |
| + |
| // Flaky on Win/Mac: http://crbug.com/533631 |
| #if defined(OS_WIN) || defined(OS_MACOSX) |
| #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure DISABLED_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure |