Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Unified Diff: chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc

Issue 2575523002: Prerender: Confirm ServiceWorkers are invoked for NoState Prefetch (Closed)
Patch Set: comments/big hammer Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/test/data/prerender/service_worker.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
diff --git a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
index a14ad92b52bd494d7856eab917ba6c61e43d3f8b..753ca3031b3f691e7c5e6037e0431862b0b8620a 100644
--- a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
+++ b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
@@ -5,6 +5,7 @@
#include "base/command_line.h"
#include "base/strings/string16.h"
#include "base/strings/string_split.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/task_scheduler/post_task.h"
#include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/history/history_test_utils.h"
@@ -20,6 +21,8 @@
#include "chrome/common/chrome_switches.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/service_worker_context.h"
+#include "content/public/browser/storage_partition.h"
#include "content/public/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
#include "net/base/escape.h"
@@ -49,6 +52,7 @@ const char kPrefetchResponseHeaderCSP[] =
"prerender/prefetch_response_csp.html";
const char kPrefetchScript[] = "prerender/prefetch.js";
const char kPrefetchScript2[] = "prerender/prefetch2.js";
+const char kServiceWorkerLoader[] = "prerender/service_worker.html";
const char kPrefetchSubresourceRedirectPage[] =
"prerender/prefetch_subresource_redirect.html";
@@ -536,4 +540,32 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, IssuesIdlePriorityRequests) {
script_counter.WaitForCount(1);
}
+// Checks that a registered ServiceWorker (SW) that is not currently running
+// will intercepts a prefetch request.
+IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, ServiceWorkerIntercept) {
+ // Register and launch a SW.
+ base::string16 expected_title = base::ASCIIToUTF16("SW READY");
+ content::TitleWatcher title_watcher(GetActiveWebContents(), expected_title);
+ ui_test_utils::NavigateToURL(
+ current_browser(),
+ src_server()->GetURL(MakeAbsolute(kServiceWorkerLoader)));
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
+
+ // Stop any SW.
+ content::StoragePartition* storage_partition =
+ content::BrowserContext::GetStoragePartitionForSite(
+ GetActiveWebContents()->GetBrowserContext(),
+ src_server()->GetURL(MakeAbsolute(kPrefetchPng)));
+ storage_partition->GetServiceWorkerContext()
+ ->KillAllServiceWorkersForOrigin(src_server()->GetURL("/"));
falken 2017/01/09 15:42:23 Could we move the RenderProcessHost shutdown code
mattcary 2017/01/10 12:47:29 Done.
+
+ // The SW intercepts kPrefetchPage and replaces it with a body that contains
+ // an <img> tage for kPrefetchPng. This verifies that the SW ran correctly by
+ // observing the fetch of the image.
+ RequestCounter image_counter;
+ CountRequestFor(kPrefetchPng, &image_counter);
+ PrefetchFromFile(kPrefetchPage, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
+ image_counter.WaitForCount(1);
+}
+
} // namespace prerender
« no previous file with comments | « no previous file | chrome/test/data/prerender/service_worker.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698