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

Unified Diff: content/browser/service_worker/service_worker_browsertest.cc

Issue 2497223002: Introduce a new ResourceRequesterInfo type for NavigationPreload. (Closed)
Patch Set: rebase Created 4 years 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
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 9b2189a3f1a410b590a172164d0d355073abbfa1..bf62e063391cbf2b957c0636fe12fa46b4155883 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -50,6 +50,7 @@
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/resource_dispatcher_host.h"
#include "content/public/browser/ssl_status.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/browser/web_contents.h"
@@ -1467,6 +1468,16 @@ class ServiceWorkerNavigationPreloadTest : public ServiceWorkerBrowserTest {
return request.headers.find(kNavigationPreloadHeaderName)->second;
}
+ static void CancellingInterceptorCallback(
+ const std::string& header,
+ const std::string& value,
+ int child_process_id,
+ content::ResourceContext* resource_context,
+ OnHeaderProcessedCallback callback) {
+ DCHECK_EQ(kNavigationPreloadHeaderName, header);
+ callback.Run(false, 0);
+ }
+
void SetupForNavigationPreloadTest(const GURL& scope,
const GURL& worker_url) {
scoped_refptr<WorkerActivatedObserver> observer =
@@ -1935,6 +1946,33 @@ IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, NetworkError) {
}
IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest,
+ CanceledByInterceptor) {
+ content::ResourceDispatcherHost::Get()->RegisterInterceptor(
+ kNavigationPreloadHeaderName, "",
+ base::Bind(&CancellingInterceptorCallback));
+
+ const char kPageUrl[] = "/service_worker/navigation_preload.html";
+ const char kWorkerUrl[] = "/service_worker/navigation_preload.js";
+ const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
+ const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
+ RegisterStaticFile(
+ kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript,
+ "text/javascript");
+
+ RegisterMonitorRequestHandler();
+ StartServerAndNavigateToSetup();
+ SetupForNavigationPreloadTest(page_url, worker_url);
+
+ const base::string16 title = base::ASCIIToUTF16("REJECTED");
+ TitleWatcher title_watcher(shell()->web_contents(), title);
+ title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED"));
+ NavigateToURL(shell(), page_url);
+ EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
+ EXPECT_EQ("NetworkError: Service Worker navigation preload network error.",
+ GetTextContent());
+}
+
+IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest,
PreloadHeadersSimple) {
const char kPageUrl[] = "/service_worker/navigation_preload.html";
const char kWorkerUrl[] = "/service_worker/navigation_preload.js";
« no previous file with comments | « content/browser/loader/url_loader_factory_impl.cc ('k') | content/browser/service_worker/service_worker_fetch_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698