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

Side by Side Diff: content/browser/service_worker/service_worker_browsertest.cc

Issue 2518403005: Correct EmbeddedTestServer usage in service worker browsertests. (Closed)
Patch Set: comment 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 } 384 }
385 385
386 } // namespace 386 } // namespace
387 387
388 class ServiceWorkerBrowserTest 388 class ServiceWorkerBrowserTest
389 : public MojoServiceWorkerTestP<ContentBrowserTest> { 389 : public MojoServiceWorkerTestP<ContentBrowserTest> {
390 protected: 390 protected:
391 using self = ServiceWorkerBrowserTest; 391 using self = ServiceWorkerBrowserTest;
392 392
393 void SetUpOnMainThread() override { 393 void SetUpOnMainThread() override {
394 ASSERT_TRUE(embedded_test_server()->Start()); 394 ASSERT_TRUE(embedded_test_server()->InitializeAndListen());
395 StoragePartition* partition = BrowserContext::GetDefaultStoragePartition( 395 StoragePartition* partition = BrowserContext::GetDefaultStoragePartition(
396 shell()->web_contents()->GetBrowserContext()); 396 shell()->web_contents()->GetBrowserContext());
397 wrapper_ = static_cast<ServiceWorkerContextWrapper*>( 397 wrapper_ = static_cast<ServiceWorkerContextWrapper*>(
398 partition->GetServiceWorkerContext()); 398 partition->GetServiceWorkerContext());
399 399
400 // Navigate to the page to set up a renderer page (where we can embed
401 // a worker).
402 NavigateToURLBlockUntilNavigationsComplete(
403 shell(),
404 embedded_test_server()->GetURL("/service_worker/empty.html"), 1);
405
406 RunOnIOThread(base::Bind(&self::SetUpOnIOThread, base::Unretained(this))); 400 RunOnIOThread(base::Bind(&self::SetUpOnIOThread, base::Unretained(this)));
407 } 401 }
408 402
409 void TearDownOnMainThread() override { 403 void TearDownOnMainThread() override {
410 RunOnIOThread( 404 RunOnIOThread(
411 base::Bind(&self::TearDownOnIOThread, base::Unretained(this))); 405 base::Bind(&self::TearDownOnIOThread, base::Unretained(this)));
412 wrapper_ = NULL; 406 wrapper_ = NULL;
413 } 407 }
414 408
409 // Starts the test server and navigates the renderer to an empty page. Call
410 // this after adding all request handlers to the test server. Adding handlers
411 // after the test server has started is not allowed.
412 void StartServerAndNavigateToSetup() {
falken 2016/11/29 02:24:06 Might it be good to DCHECK_CURRENTLY_ON(BrowserThr
martijnc 2016/11/29 17:42:12 Added.
413 embedded_test_server()->StartAcceptingConnections();
414
415 // Navigate to the page to set up a renderer page (where we can embed
416 // a worker).
417 NavigateToURLBlockUntilNavigationsComplete(
418 shell(), embedded_test_server()->GetURL("/service_worker/empty.html"),
419 1);
420 }
421
415 virtual void SetUpOnIOThread() {} 422 virtual void SetUpOnIOThread() {}
416 virtual void TearDownOnIOThread() {} 423 virtual void TearDownOnIOThread() {}
417 424
418 ServiceWorkerContextWrapper* wrapper() { return wrapper_.get(); } 425 ServiceWorkerContextWrapper* wrapper() { return wrapper_.get(); }
419 ServiceWorkerContext* public_context() { return wrapper(); } 426 ServiceWorkerContext* public_context() { return wrapper(); }
420 427
421 void AssociateRendererProcessToPattern(const GURL& pattern) { 428 void AssociateRendererProcessToPattern(const GURL& pattern) {
422 wrapper_->process_manager()->AddProcessReferenceToPattern( 429 wrapper_->process_manager()->AddProcessReferenceToPattern(
423 pattern, shell()->web_contents()->GetRenderProcessHost()->GetID()); 430 pattern, shell()->web_contents()->GetRenderProcessHost()->GetID());
424 } 431 }
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 } 837 }
831 838
832 protected: 839 protected:
833 scoped_refptr<ServiceWorkerRegistration> registration_; 840 scoped_refptr<ServiceWorkerRegistration> registration_;
834 scoped_refptr<ServiceWorkerVersion> version_; 841 scoped_refptr<ServiceWorkerVersion> version_;
835 scoped_refptr<ChromeBlobStorageContext> blob_context_; 842 scoped_refptr<ChromeBlobStorageContext> blob_context_;
836 std::unique_ptr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; 843 std::unique_ptr<ServiceWorkerFetchDispatcher> fetch_dispatcher_;
837 }; 844 };
838 845
839 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, StartAndStop) { 846 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, StartAndStop) {
847 StartServerAndNavigateToSetup();
840 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 848 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
841 base::Unretained(this), 849 base::Unretained(this),
842 "/service_worker/worker.js")); 850 "/service_worker/worker.js"));
843 851
844 // Start a worker. 852 // Start a worker.
845 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 853 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
846 base::RunLoop start_run_loop; 854 base::RunLoop start_run_loop;
847 BrowserThread::PostTask( 855 BrowserThread::PostTask(
848 BrowserThread::IO, FROM_HERE, 856 BrowserThread::IO, FROM_HERE,
849 base::Bind(&self::StartOnIOThread, base::Unretained(this), 857 base::Bind(&self::StartOnIOThread, base::Unretained(this),
850 start_run_loop.QuitClosure(), &status)); 858 start_run_loop.QuitClosure(), &status));
851 start_run_loop.Run(); 859 start_run_loop.Run();
852 ASSERT_EQ(SERVICE_WORKER_OK, status); 860 ASSERT_EQ(SERVICE_WORKER_OK, status);
853 861
854 // Stop the worker. 862 // Stop the worker.
855 status = SERVICE_WORKER_ERROR_FAILED; 863 status = SERVICE_WORKER_ERROR_FAILED;
856 base::RunLoop stop_run_loop; 864 base::RunLoop stop_run_loop;
857 BrowserThread::PostTask( 865 BrowserThread::PostTask(
858 BrowserThread::IO, FROM_HERE, 866 BrowserThread::IO, FROM_HERE,
859 base::Bind(&self::StopOnIOThread, base::Unretained(this), 867 base::Bind(&self::StopOnIOThread, base::Unretained(this),
860 stop_run_loop.QuitClosure(), &status)); 868 stop_run_loop.QuitClosure(), &status));
861 stop_run_loop.Run(); 869 stop_run_loop.Run();
862 ASSERT_EQ(SERVICE_WORKER_OK, status); 870 ASSERT_EQ(SERVICE_WORKER_OK, status);
863 } 871 }
864 872
865 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, StartNotFound) { 873 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, StartNotFound) {
874 StartServerAndNavigateToSetup();
866 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 875 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
867 base::Unretained(this), 876 base::Unretained(this),
868 "/service_worker/nonexistent.js")); 877 "/service_worker/nonexistent.js"));
869 878
870 // Start a worker for nonexistent URL. 879 // Start a worker for nonexistent URL.
871 StartWorker(SERVICE_WORKER_ERROR_NETWORK); 880 StartWorker(SERVICE_WORKER_ERROR_NETWORK);
872 } 881 }
873 882
874 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, ReadResourceFailure) { 883 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, ReadResourceFailure) {
884 StartServerAndNavigateToSetup();
875 // Create a registration. 885 // Create a registration.
876 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 886 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
877 base::Unretained(this), 887 base::Unretained(this),
878 "/service_worker/worker.js")); 888 "/service_worker/worker.js"));
879 version_->set_fetch_handler_existence( 889 version_->set_fetch_handler_existence(
880 ServiceWorkerVersion::FetchHandlerExistence::EXISTS); 890 ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
881 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 891 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
882 892
883 // Add a non-existent resource to the version. 893 // Add a non-existent resource to the version.
884 std::vector<ServiceWorkerDatabase::ResourceRecord> records; 894 std::vector<ServiceWorkerDatabase::ResourceRecord> records;
(...skipping 12 matching lines...) Expand all
897 // the stored one. 907 // the stored one.
898 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread, 908 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread,
899 base::Unretained(this), registration_->id())); 909 base::Unretained(this), registration_->id()));
900 FindRegistrationForId(registration_->id(), 910 FindRegistrationForId(registration_->id(),
901 registration_->pattern().GetOrigin(), 911 registration_->pattern().GetOrigin(),
902 SERVICE_WORKER_ERROR_NOT_FOUND); 912 SERVICE_WORKER_ERROR_NOT_FOUND);
903 } 913 }
904 914
905 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 915 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
906 ReadResourceFailure_WaitingWorker) { 916 ReadResourceFailure_WaitingWorker) {
917 StartServerAndNavigateToSetup();
907 // Create a registration and active version. 918 // Create a registration and active version.
908 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 919 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
909 base::Unretained(this), 920 base::Unretained(this),
910 "/service_worker/worker.js")); 921 "/service_worker/worker.js"));
911 base::RunLoop activate_run_loop; 922 base::RunLoop activate_run_loop;
912 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 923 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
913 BrowserThread::PostTask( 924 BrowserThread::PostTask(
914 BrowserThread::IO, FROM_HERE, 925 BrowserThread::IO, FROM_HERE,
915 base::Bind(&self::ActivateOnIOThread, base::Unretained(this), 926 base::Bind(&self::ActivateOnIOThread, base::Unretained(this),
916 activate_run_loop.QuitClosure(), &status)); 927 activate_run_loop.QuitClosure(), &status));
(...skipping 28 matching lines...) Expand all
945 // The registration should still be in storage since the waiting worker was 956 // The registration should still be in storage since the waiting worker was
946 // the stored one. 957 // the stored one.
947 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread, 958 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread,
948 base::Unretained(this), registration_->id())); 959 base::Unretained(this), registration_->id()));
949 FindRegistrationForId(registration_->id(), 960 FindRegistrationForId(registration_->id(),
950 registration_->pattern().GetOrigin(), 961 registration_->pattern().GetOrigin(),
951 SERVICE_WORKER_OK); 962 SERVICE_WORKER_OK);
952 } 963 }
953 964
954 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, Install) { 965 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, Install) {
966 StartServerAndNavigateToSetup();
955 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); 967 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
956 } 968 }
957 969
958 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 970 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
959 InstallWithWaitUntil_Fulfilled) { 971 InstallWithWaitUntil_Fulfilled) {
972 StartServerAndNavigateToSetup();
960 InstallTestHelper("/service_worker/worker_install_fulfilled.js", 973 InstallTestHelper("/service_worker/worker_install_fulfilled.js",
961 SERVICE_WORKER_OK); 974 SERVICE_WORKER_OK);
962 } 975 }
963 976
964 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 977 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
965 InstallWithFetchHandler) { 978 InstallWithFetchHandler) {
979 StartServerAndNavigateToSetup();
966 InstallTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK); 980 InstallTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK);
967 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::EXISTS, 981 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::EXISTS,
968 version_->fetch_handler_existence()); 982 version_->fetch_handler_existence());
969 } 983 }
970 984
971 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 985 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
972 InstallWithoutFetchHandler) { 986 InstallWithoutFetchHandler) {
987 StartServerAndNavigateToSetup();
973 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); 988 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
974 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST, 989 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST,
975 version_->fetch_handler_existence()); 990 version_->fetch_handler_existence());
976 } 991 }
977 992
978 // Check that ServiceWorker script requests set a "Service-Worker: script" 993 // Check that ServiceWorker script requests set a "Service-Worker: script"
979 // header. 994 // header.
980 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 995 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
981 ServiceWorkerScriptHeader) { 996 ServiceWorkerScriptHeader) {
982 embedded_test_server()->RegisterRequestHandler( 997 embedded_test_server()->RegisterRequestHandler(
983 base::Bind(&VerifyServiceWorkerHeaderInRequest)); 998 base::Bind(&VerifyServiceWorkerHeaderInRequest));
999 StartServerAndNavigateToSetup();
984 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK); 1000 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK);
985 } 1001 }
986 1002
987 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 1003 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
988 Activate_NoEventListener) { 1004 Activate_NoEventListener) {
1005 StartServerAndNavigateToSetup();
989 ActivateTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); 1006 ActivateTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
990 ASSERT_EQ(ServiceWorkerVersion::ACTIVATING, version_->status()); 1007 ASSERT_EQ(ServiceWorkerVersion::ACTIVATING, version_->status());
991 } 1008 }
992 1009
993 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, Activate_Rejected) { 1010 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, Activate_Rejected) {
1011 StartServerAndNavigateToSetup();
994 ActivateTestHelper("/service_worker/worker_activate_rejected.js", 1012 ActivateTestHelper("/service_worker/worker_activate_rejected.js",
995 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED); 1013 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED);
996 } 1014 }
997 1015
998 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 1016 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
999 InstallWithWaitUntil_Rejected) { 1017 InstallWithWaitUntil_Rejected) {
1018 StartServerAndNavigateToSetup();
1000 InstallTestHelper("/service_worker/worker_install_rejected.js", 1019 InstallTestHelper("/service_worker/worker_install_rejected.js",
1001 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED); 1020 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED);
1002 } 1021 }
1003 1022
1004 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 1023 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1005 InstallWithWaitUntil_RejectConsoleMessage) { 1024 InstallWithWaitUntil_RejectConsoleMessage) {
1025 StartServerAndNavigateToSetup();
1006 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 1026 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
1007 base::Unretained(this), 1027 base::Unretained(this),
1008 "/service_worker/worker_install_rejected.js")); 1028 "/service_worker/worker_install_rejected.js"));
1009 1029
1010 ConsoleListener console_listener; 1030 ConsoleListener console_listener;
1011 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener, 1031 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener,
1012 base::Unretained(version_->embedded_worker()), 1032 base::Unretained(version_->embedded_worker()),
1013 &console_listener)); 1033 &console_listener));
1014 1034
1015 // Dispatch install on a worker. 1035 // Dispatch install on a worker.
(...skipping 24 matching lines...) Expand all
1040 DCHECK_CURRENTLY_ON(BrowserThread::IO); 1060 DCHECK_CURRENTLY_ON(BrowserThread::IO);
1041 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, quit_); 1061 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, quit_);
1042 } 1062 }
1043 bool OnMessageReceived(const IPC::Message& message) override { return false; } 1063 bool OnMessageReceived(const IPC::Message& message) override { return false; }
1044 1064
1045 private: 1065 private:
1046 base::Closure quit_; 1066 base::Closure quit_;
1047 }; 1067 };
1048 1068
1049 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, TimeoutStartingWorker) { 1069 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, TimeoutStartingWorker) {
1070 StartServerAndNavigateToSetup();
1050 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 1071 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
1051 base::Unretained(this), 1072 base::Unretained(this),
1052 "/service_worker/while_true_worker.js")); 1073 "/service_worker/while_true_worker.js"));
1053 1074
1054 // Start a worker, waiting until the script is loaded. 1075 // Start a worker, waiting until the script is loaded.
1055 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 1076 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
1056 base::RunLoop start_run_loop; 1077 base::RunLoop start_run_loop;
1057 base::RunLoop load_run_loop; 1078 base::RunLoop load_run_loop;
1058 WaitForLoaded wait_for_load(load_run_loop.QuitClosure()); 1079 WaitForLoaded wait_for_load(load_run_loop.QuitClosure());
1059 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener, 1080 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener,
(...skipping 17 matching lines...) Expand all
1077 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); 1098 EXPECT_TRUE(version_->timeout_timer_.IsRunning());
1078 RunOnIOThreadWithDelay( 1099 RunOnIOThreadWithDelay(
1079 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), 1100 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)),
1080 base::TimeDelta::FromMilliseconds(100)); 1101 base::TimeDelta::FromMilliseconds(100));
1081 start_run_loop.Run(); 1102 start_run_loop.Run();
1082 1103
1083 EXPECT_EQ(SERVICE_WORKER_ERROR_TIMEOUT, status); 1104 EXPECT_EQ(SERVICE_WORKER_ERROR_TIMEOUT, status);
1084 } 1105 }
1085 1106
1086 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, TimeoutWorkerInEvent) { 1107 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, TimeoutWorkerInEvent) {
1108 StartServerAndNavigateToSetup();
1087 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 1109 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
1088 base::Unretained(this), 1110 base::Unretained(this),
1089 "/service_worker/while_true_in_install_worker.js")); 1111 "/service_worker/while_true_in_install_worker.js"));
1090 1112
1091 // Start a worker. 1113 // Start a worker.
1092 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 1114 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
1093 base::RunLoop start_run_loop; 1115 base::RunLoop start_run_loop;
1094 BrowserThread::PostTask( 1116 BrowserThread::PostTask(
1095 BrowserThread::IO, FROM_HERE, 1117 BrowserThread::IO, FROM_HERE,
1096 base::Bind(&self::StartOnIOThread, base::Unretained(this), 1118 base::Bind(&self::StartOnIOThread, base::Unretained(this),
(...skipping 15 matching lines...) Expand all
1112 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), 1134 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)),
1113 base::TimeDelta::FromMilliseconds(100)); 1135 base::TimeDelta::FromMilliseconds(100));
1114 install_run_loop.Run(); 1136 install_run_loop.Run();
1115 1137
1116 // Terminating a worker, even one in an infinite loop, is treated as if 1138 // Terminating a worker, even one in an infinite loop, is treated as if
1117 // waitUntil was rejected in the renderer code. 1139 // waitUntil was rejected in the renderer code.
1118 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status); 1140 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status);
1119 } 1141 }
1120 1142
1121 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchEvent_Response) { 1143 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchEvent_Response) {
1144 StartServerAndNavigateToSetup();
1122 ServiceWorkerFetchEventResult result; 1145 ServiceWorkerFetchEventResult result;
1123 ServiceWorkerResponse response; 1146 ServiceWorkerResponse response;
1124 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1147 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1125 ActivateTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK); 1148 ActivateTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK);
1126 1149
1127 FetchOnRegisteredWorker(&result, &response, &blob_data_handle); 1150 FetchOnRegisteredWorker(&result, &response, &blob_data_handle);
1128 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); 1151 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result);
1129 EXPECT_EQ(301, response.status_code); 1152 EXPECT_EQ(301, response.status_code);
1130 EXPECT_EQ("Moved Permanently", response.status_text); 1153 EXPECT_EQ("Moved Permanently", response.status_text);
1131 ServiceWorkerHeaderMap expected_headers; 1154 ServiceWorkerHeaderMap expected_headers;
1132 expected_headers["content-language"] = "fi"; 1155 expected_headers["content-language"] = "fi";
1133 expected_headers["content-type"] = "text/html; charset=UTF-8"; 1156 expected_headers["content-type"] = "text/html; charset=UTF-8";
1134 EXPECT_EQ(expected_headers, response.headers); 1157 EXPECT_EQ(expected_headers, response.headers);
1135 1158
1136 std::string body; 1159 std::string body;
1137 RunOnIOThread( 1160 RunOnIOThread(
1138 base::Bind(&ReadResponseBody, 1161 base::Bind(&ReadResponseBody,
1139 &body, base::Owned(blob_data_handle.release()))); 1162 &body, base::Owned(blob_data_handle.release())));
1140 EXPECT_EQ("This resource is gone. Gone, gone, gone.", body); 1163 EXPECT_EQ("This resource is gone. Gone, gone, gone.", body);
1141 } 1164 }
1142 1165
1143 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 1166 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1144 FetchEvent_ResponseViaCache) { 1167 FetchEvent_ResponseViaCache) {
1168 StartServerAndNavigateToSetup();
1145 ServiceWorkerFetchEventResult result; 1169 ServiceWorkerFetchEventResult result;
1146 ServiceWorkerResponse response1; 1170 ServiceWorkerResponse response1;
1147 ServiceWorkerResponse response2; 1171 ServiceWorkerResponse response2;
1148 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1172 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1149 const base::Time start_time(base::Time::Now()); 1173 const base::Time start_time(base::Time::Now());
1150 ActivateTestHelper("/service_worker/fetch_event_response_via_cache.js", 1174 ActivateTestHelper("/service_worker/fetch_event_response_via_cache.js",
1151 SERVICE_WORKER_OK); 1175 SERVICE_WORKER_OK);
1152 1176
1153 FetchOnRegisteredWorker(&result, &response1, &blob_data_handle); 1177 FetchOnRegisteredWorker(&result, &response1, &blob_data_handle);
1154 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); 1178 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result);
1155 EXPECT_EQ(200, response1.status_code); 1179 EXPECT_EQ(200, response1.status_code);
1156 EXPECT_EQ("OK", response1.status_text); 1180 EXPECT_EQ("OK", response1.status_text);
1157 EXPECT_TRUE(response1.response_time >= start_time); 1181 EXPECT_TRUE(response1.response_time >= start_time);
1158 EXPECT_FALSE(response1.is_in_cache_storage); 1182 EXPECT_FALSE(response1.is_in_cache_storage);
1159 EXPECT_EQ(std::string(), response2.cache_storage_cache_name); 1183 EXPECT_EQ(std::string(), response2.cache_storage_cache_name);
1160 1184
1161 FetchOnRegisteredWorker(&result, &response2, &blob_data_handle); 1185 FetchOnRegisteredWorker(&result, &response2, &blob_data_handle);
1162 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); 1186 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result);
1163 EXPECT_EQ(200, response2.status_code); 1187 EXPECT_EQ(200, response2.status_code);
1164 EXPECT_EQ("OK", response2.status_text); 1188 EXPECT_EQ("OK", response2.status_text);
1165 EXPECT_EQ(response1.response_time, response2.response_time); 1189 EXPECT_EQ(response1.response_time, response2.response_time);
1166 EXPECT_TRUE(response2.is_in_cache_storage); 1190 EXPECT_TRUE(response2.is_in_cache_storage);
1167 EXPECT_EQ("cache_name", response2.cache_storage_cache_name); 1191 EXPECT_EQ("cache_name", response2.cache_storage_cache_name);
1168 } 1192 }
1169 1193
1170 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 1194 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1171 FetchEvent_respondWithRejection) { 1195 FetchEvent_respondWithRejection) {
1196 StartServerAndNavigateToSetup();
1172 ServiceWorkerFetchEventResult result; 1197 ServiceWorkerFetchEventResult result;
1173 ServiceWorkerResponse response; 1198 ServiceWorkerResponse response;
1174 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1199 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1175 ActivateTestHelper("/service_worker/fetch_event_rejected.js", 1200 ActivateTestHelper("/service_worker/fetch_event_rejected.js",
1176 SERVICE_WORKER_OK); 1201 SERVICE_WORKER_OK);
1177 1202
1178 ConsoleListener console_listener; 1203 ConsoleListener console_listener;
1179 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener, 1204 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener,
1180 base::Unretained(version_->embedded_worker()), 1205 base::Unretained(version_->embedded_worker()),
1181 &console_listener)); 1206 &console_listener));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1218 prefs->data_saver_enabled = data_saver_enabled_; 1243 prefs->data_saver_enabled = data_saver_enabled_;
1219 } 1244 }
1220 1245
1221 private: 1246 private:
1222 bool data_saver_enabled_; 1247 bool data_saver_enabled_;
1223 }; 1248 };
1224 1249
1225 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchWithSaveData) { 1250 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchWithSaveData) {
1226 embedded_test_server()->RegisterRequestHandler( 1251 embedded_test_server()->RegisterRequestHandler(
1227 base::Bind(&VerifySaveDataHeaderInRequest)); 1252 base::Bind(&VerifySaveDataHeaderInRequest));
1253 StartServerAndNavigateToSetup();
1228 MockContentBrowserClient content_browser_client; 1254 MockContentBrowserClient content_browser_client;
1229 content_browser_client.set_data_saver_enabled(true); 1255 content_browser_client.set_data_saver_enabled(true);
1230 ContentBrowserClient* old_client = 1256 ContentBrowserClient* old_client =
1231 SetBrowserClientForTesting(&content_browser_client); 1257 SetBrowserClientForTesting(&content_browser_client);
1232 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK); 1258 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK);
1233 SetBrowserClientForTesting(old_client); 1259 SetBrowserClientForTesting(old_client);
1234 } 1260 }
1235 1261
1236 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, 1262 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1237 RequestWorkerScriptWithSaveData) { 1263 RequestWorkerScriptWithSaveData) {
1238 embedded_test_server()->RegisterRequestHandler( 1264 embedded_test_server()->RegisterRequestHandler(
1239 base::Bind(&VerifySaveDataHeaderInRequest)); 1265 base::Bind(&VerifySaveDataHeaderInRequest));
1266 StartServerAndNavigateToSetup();
1240 MockContentBrowserClient content_browser_client; 1267 MockContentBrowserClient content_browser_client;
1241 content_browser_client.set_data_saver_enabled(true); 1268 content_browser_client.set_data_saver_enabled(true);
1242 ContentBrowserClient* old_client = 1269 ContentBrowserClient* old_client =
1243 SetBrowserClientForTesting(&content_browser_client); 1270 SetBrowserClientForTesting(&content_browser_client);
1244 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK); 1271 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK);
1245 SetBrowserClientForTesting(old_client); 1272 SetBrowserClientForTesting(old_client);
1246 } 1273 }
1247 1274
1248 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchWithoutSaveData) { 1275 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchWithoutSaveData) {
1249 embedded_test_server()->RegisterRequestHandler( 1276 embedded_test_server()->RegisterRequestHandler(
1250 base::Bind(&VerifySaveDataHeaderNotInRequest)); 1277 base::Bind(&VerifySaveDataHeaderNotInRequest));
1278 StartServerAndNavigateToSetup();
1251 MockContentBrowserClient content_browser_client; 1279 MockContentBrowserClient content_browser_client;
1252 ContentBrowserClient* old_client = 1280 ContentBrowserClient* old_client =
1253 SetBrowserClientForTesting(&content_browser_client); 1281 SetBrowserClientForTesting(&content_browser_client);
1254 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK); 1282 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK);
1255 SetBrowserClientForTesting(old_client); 1283 SetBrowserClientForTesting(old_client);
1256 } 1284 }
1257 1285
1258 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, FetchPageWithSaveData) { 1286 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, FetchPageWithSaveData) {
1287 StartServerAndNavigateToSetup();
1259 const char kPageUrl[] = "/service_worker/handle_fetch.html"; 1288 const char kPageUrl[] = "/service_worker/handle_fetch.html";
1260 const char kWorkerUrl[] = "/service_worker/add_save_data_to_title.js"; 1289 const char kWorkerUrl[] = "/service_worker/add_save_data_to_title.js";
1261 MockContentBrowserClient content_browser_client; 1290 MockContentBrowserClient content_browser_client;
1262 content_browser_client.set_data_saver_enabled(true); 1291 content_browser_client.set_data_saver_enabled(true);
1263 ContentBrowserClient* old_client = 1292 ContentBrowserClient* old_client =
1264 SetBrowserClientForTesting(&content_browser_client); 1293 SetBrowserClientForTesting(&content_browser_client);
1265 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged(); 1294 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged();
1266 scoped_refptr<WorkerActivatedObserver> observer = 1295 scoped_refptr<WorkerActivatedObserver> observer =
1267 new WorkerActivatedObserver(wrapper()); 1296 new WorkerActivatedObserver(wrapper());
1268 observer->Init(); 1297 observer->Init();
(...skipping 15 matching lines...) Expand all
1284 public_context()->UnregisterServiceWorker( 1313 public_context()->UnregisterServiceWorker(
1285 embedded_test_server()->GetURL(kPageUrl), 1314 embedded_test_server()->GetURL(kPageUrl),
1286 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1315 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1287 run_loop.Run(); 1316 run_loop.Run();
1288 } 1317 }
1289 1318
1290 // Tests that when data saver is enabled and a cross-origin fetch by a webpage 1319 // Tests that when data saver is enabled and a cross-origin fetch by a webpage
1291 // is intercepted by a serviceworker, and the serviceworker does a fetch, the 1320 // is intercepted by a serviceworker, and the serviceworker does a fetch, the
1292 // preflight request does not have save-data in Access-Control-Request-Headers. 1321 // preflight request does not have save-data in Access-Control-Request-Headers.
1293 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, CrossOriginFetchWithSaveData) { 1322 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, CrossOriginFetchWithSaveData) {
1323 StartServerAndNavigateToSetup();
1294 const char kPageUrl[] = "/service_worker/fetch_cross_origin.html"; 1324 const char kPageUrl[] = "/service_worker/fetch_cross_origin.html";
1295 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js"; 1325 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js";
1296 net::EmbeddedTestServer cross_origin_server; 1326 net::EmbeddedTestServer cross_origin_server;
1297 cross_origin_server.ServeFilesFromSourceDirectory("content/test/data"); 1327 cross_origin_server.ServeFilesFromSourceDirectory("content/test/data");
1298 cross_origin_server.RegisterRequestHandler( 1328 cross_origin_server.RegisterRequestHandler(
1299 base::Bind(&VerifySaveDataNotInAccessControlRequestHeader)); 1329 base::Bind(&VerifySaveDataNotInAccessControlRequestHeader));
1300 ASSERT_TRUE(cross_origin_server.Start()); 1330 ASSERT_TRUE(cross_origin_server.Start());
1301 1331
1302 MockContentBrowserClient content_browser_client; 1332 MockContentBrowserClient content_browser_client;
1303 content_browser_client.set_data_saver_enabled(true); 1333 content_browser_client.set_data_saver_enabled(true);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 const char kPageUrl[] = "/service_worker/pass_through_fetch.html"; 1368 const char kPageUrl[] = "/service_worker/pass_through_fetch.html";
1339 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js"; 1369 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js";
1340 MockContentBrowserClient content_browser_client; 1370 MockContentBrowserClient content_browser_client;
1341 content_browser_client.set_data_saver_enabled(true); 1371 content_browser_client.set_data_saver_enabled(true);
1342 ContentBrowserClient* old_client = 1372 ContentBrowserClient* old_client =
1343 SetBrowserClientForTesting(&content_browser_client); 1373 SetBrowserClientForTesting(&content_browser_client);
1344 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged(); 1374 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged();
1345 scoped_refptr<WorkerActivatedObserver> observer = 1375 scoped_refptr<WorkerActivatedObserver> observer =
1346 new WorkerActivatedObserver(wrapper()); 1376 new WorkerActivatedObserver(wrapper());
1347 observer->Init(); 1377 observer->Init();
1378
1379 embedded_test_server()->RegisterRequestHandler(
1380 base::Bind(&VerifySaveDataHeaderInRequest));
1381 StartServerAndNavigateToSetup();
1382
1348 public_context()->RegisterServiceWorker( 1383 public_context()->RegisterServiceWorker(
1349 embedded_test_server()->GetURL(kPageUrl), 1384 embedded_test_server()->GetURL(kPageUrl),
1350 embedded_test_server()->GetURL(kWorkerUrl), 1385 embedded_test_server()->GetURL(kWorkerUrl),
1351 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); 1386 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing)));
1352 observer->Wait(); 1387 observer->Wait();
1353 1388
1354 embedded_test_server()->RegisterRequestHandler(
1355 base::Bind(&VerifySaveDataHeaderInRequest));
1356
1357 NavigateToURLBlockUntilNavigationsComplete( 1389 NavigateToURLBlockUntilNavigationsComplete(
1358 shell(), embedded_test_server()->GetURL(kPageUrl), 1); 1390 shell(), embedded_test_server()->GetURL(kPageUrl), 1);
1359 1391
1360 SetBrowserClientForTesting(old_client); 1392 SetBrowserClientForTesting(old_client);
1361 shell()->Close(); 1393 shell()->Close();
1362 1394
1363 base::RunLoop run_loop; 1395 base::RunLoop run_loop;
1364 public_context()->UnregisterServiceWorker( 1396 public_context()->UnregisterServiceWorker(
1365 embedded_test_server()->GetURL(kPageUrl), 1397 embedded_test_server()->GetURL(kPageUrl),
1366 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1398 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1367 run_loop.Run(); 1399 run_loop.Run();
1368 } 1400 }
1369 1401
1370 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, Reload) { 1402 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, Reload) {
1403 StartServerAndNavigateToSetup();
1371 const char kPageUrl[] = "/service_worker/reload.html"; 1404 const char kPageUrl[] = "/service_worker/reload.html";
1372 const char kWorkerUrl[] = "/service_worker/fetch_event_reload.js"; 1405 const char kWorkerUrl[] = "/service_worker/fetch_event_reload.js";
1373 scoped_refptr<WorkerActivatedObserver> observer = 1406 scoped_refptr<WorkerActivatedObserver> observer =
1374 new WorkerActivatedObserver(wrapper()); 1407 new WorkerActivatedObserver(wrapper());
1375 observer->Init(); 1408 observer->Init();
1376 public_context()->RegisterServiceWorker( 1409 public_context()->RegisterServiceWorker(
1377 embedded_test_server()->GetURL(kPageUrl), 1410 embedded_test_server()->GetURL(kPageUrl),
1378 embedded_test_server()->GetURL(kWorkerUrl), 1411 embedded_test_server()->GetURL(kWorkerUrl),
1379 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); 1412 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing)));
1380 observer->Wait(); 1413 observer->Wait();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1430 const net::test_server::HttpRequest& request) { 1463 const net::test_server::HttpRequest& request) {
1431 DCHECK(HasNavigationPreloadHeader(request)); 1464 DCHECK(HasNavigationPreloadHeader(request));
1432 return request.headers.find(kNavigationPreloadHeaderName)->second; 1465 return request.headers.find(kNavigationPreloadHeaderName)->second;
1433 } 1466 }
1434 1467
1435 void SetupForNavigationPreloadTest(const GURL& scope, 1468 void SetupForNavigationPreloadTest(const GURL& scope,
1436 const GURL& worker_url) { 1469 const GURL& worker_url) {
1437 scoped_refptr<WorkerActivatedObserver> observer = 1470 scoped_refptr<WorkerActivatedObserver> observer =
1438 new WorkerActivatedObserver(wrapper()); 1471 new WorkerActivatedObserver(wrapper());
1439 observer->Init(); 1472 observer->Init();
1473
1440 public_context()->RegisterServiceWorker( 1474 public_context()->RegisterServiceWorker(
1441 scope, worker_url, 1475 scope, worker_url,
1442 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); 1476 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing)));
1443 observer->Wait(); 1477 observer->Wait();
1478 }
1444 1479
1480 void RegisterMonitorRequestHandler() {
1445 embedded_test_server()->RegisterRequestMonitor( 1481 embedded_test_server()->RegisterRequestMonitor(
1446 base::Bind(&self::MonitorRequestHandler, base::Unretained(this))); 1482 base::Bind(&self::MonitorRequestHandler, base::Unretained(this)));
1447 } 1483 }
1448 1484
1449 void RegisterStaticFile(const std::string& relative_url, 1485 void RegisterStaticFile(const std::string& relative_url,
1450 const std::string& content, 1486 const std::string& content,
1451 const std::string& content_type) { 1487 const std::string& content_type) {
1452 embedded_test_server()->RegisterRequestHandler( 1488 embedded_test_server()->RegisterRequestHandler(
1453 base::Bind(&self::StaticRequestHandler, base::Unretained(this), 1489 base::Bind(&self::StaticRequestHandler, base::Unretained(this),
1454 relative_url, content, content_type)); 1490 relative_url, content, content_type));
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 const char kPage[] = "<title>PASS</title>Hello world."; 1654 const char kPage[] = "<title>PASS</title>Hello world.";
1619 const std::string kScript = kEnableNavigationPreloadScript + 1655 const std::string kScript = kEnableNavigationPreloadScript +
1620 "self.addEventListener('fetch', event => {\n" 1656 "self.addEventListener('fetch', event => {\n"
1621 " // Do nothing.\n" 1657 " // Do nothing.\n"
1622 " });"; 1658 " });";
1623 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1659 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1624 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1660 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1625 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1661 RegisterStaticFile(kPageUrl, kPage, "text/html");
1626 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 1662 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
1627 1663
1664 RegisterMonitorRequestHandler();
1665 StartServerAndNavigateToSetup();
1628 SetupForNavigationPreloadTest(page_url, worker_url); 1666 SetupForNavigationPreloadTest(page_url, worker_url);
1629 1667
1630 const base::string16 title = base::ASCIIToUTF16("PASS"); 1668 const base::string16 title = base::ASCIIToUTF16("PASS");
1631 TitleWatcher title_watcher(shell()->web_contents(), title); 1669 TitleWatcher title_watcher(shell()->web_contents(), title);
1632 NavigateToURL(shell(), page_url); 1670 NavigateToURL(shell(), page_url);
1633 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1671 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1634 EXPECT_EQ("Hello world.", GetTextContent()); 1672 EXPECT_EQ("Hello world.", GetTextContent());
1635 1673
1636 // The page request must be sent once or twice: 1674 // The page request must be sent once or twice:
1637 // - A navigation preload request may be sent. But it is possible that the 1675 // - A navigation preload request may be sent. But it is possible that the
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 " } else if (event.request.url.indexOf('?test') != -1) {\n" 1717 " } else if (event.request.url.indexOf('?test') != -1) {\n"
1680 " event.respondWith(event.preloadResponse.then(res =>\n" 1718 " event.respondWith(event.preloadResponse.then(res =>\n"
1681 " createResponse('TEST', res)));\n" 1719 " createResponse('TEST', res)));\n"
1682 " }\n" 1720 " }\n"
1683 " });"; 1721 " });";
1684 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1722 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1685 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1723 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1686 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1724 RegisterStaticFile(kPageUrl, kPage, "text/html");
1687 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 1725 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
1688 1726
1727 RegisterMonitorRequestHandler();
1728 StartServerAndNavigateToSetup();
1689 SetupForNavigationPreloadTest(page_url, worker_url); 1729 SetupForNavigationPreloadTest(page_url, worker_url);
1690 1730
1691 const std::string kPageUrl1 = kPageUrl + "?enable"; 1731 const std::string kPageUrl1 = kPageUrl + "?enable";
1692 const base::string16 title1 = base::ASCIIToUTF16("ENABLED"); 1732 const base::string16 title1 = base::ASCIIToUTF16("ENABLED");
1693 TitleWatcher title_watcher1(shell()->web_contents(), title1); 1733 TitleWatcher title_watcher1(shell()->web_contents(), title1);
1694 title_watcher1.AlsoWaitForTitle(base::ASCIIToUTF16("FROM_SERVER")); 1734 title_watcher1.AlsoWaitForTitle(base::ASCIIToUTF16("FROM_SERVER"));
1695 NavigateToURL(shell(), embedded_test_server()->GetURL(kPageUrl1)); 1735 NavigateToURL(shell(), embedded_test_server()->GetURL(kPageUrl1));
1696 EXPECT_EQ(title1, title_watcher1.WaitAndGetTitle()); 1736 EXPECT_EQ(title1, title_watcher1.WaitAndGetTitle());
1697 // When the navigation started, the navigation preload was not enabled yet. 1737 // When the navigation started, the navigation preload was not enabled yet.
1698 EXPECT_EQ("null", GetTextContent()); 1738 EXPECT_EQ("null", GetTextContent());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1748 " {headers: [['content-type', 'text/html']]}));\n" 1788 " {headers: [['content-type', 'text/html']]}));\n"
1749 " return;\n" 1789 " return;\n"
1750 " }\n" 1790 " }\n"
1751 " event.respondWith(event.preloadResponse);\n" 1791 " event.respondWith(event.preloadResponse);\n"
1752 " });"; 1792 " });";
1753 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1793 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1754 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1794 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1755 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1795 RegisterStaticFile(kPageUrl, kPage, "text/html");
1756 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 1796 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
1757 1797
1798 RegisterMonitorRequestHandler();
1799 StartServerAndNavigateToSetup();
1758 SetupForNavigationPreloadTest(page_url, worker_url); 1800 SetupForNavigationPreloadTest(page_url, worker_url);
1759 1801
1760 const base::string16 title = base::ASCIIToUTF16("PASS"); 1802 const base::string16 title = base::ASCIIToUTF16("PASS");
1761 TitleWatcher title_watcher(shell()->web_contents(), title); 1803 TitleWatcher title_watcher(shell()->web_contents(), title);
1762 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR")); 1804 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR"));
1763 NavigateToURL(shell(), page_url); 1805 NavigateToURL(shell(), page_url);
1764 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1806 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1765 EXPECT_EQ("Hello world.", GetTextContent()); 1807 EXPECT_EQ("Hello world.", GetTextContent());
1766 1808
1767 // The page request must be sent only once, since the worker responded with 1809 // The page request must be sent only once, since the worker responded with
(...skipping 16 matching lines...) Expand all
1784 " .then(text =>\n" 1826 " .then(text =>\n"
1785 " new Response(\n" 1827 " new Response(\n"
1786 " text,\n" 1828 " text,\n"
1787 " {headers: [['content-type', 'text/html']]})));\n" 1829 " {headers: [['content-type', 'text/html']]})));\n"
1788 " });"; 1830 " });";
1789 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1831 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1790 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1832 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1791 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1833 RegisterStaticFile(kPageUrl, kPage, "text/html");
1792 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 1834 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
1793 1835
1836 RegisterMonitorRequestHandler();
1837 StartServerAndNavigateToSetup();
1794 SetupForNavigationPreloadTest(page_url, worker_url); 1838 SetupForNavigationPreloadTest(page_url, worker_url);
1795 1839
1796 const base::string16 title = base::ASCIIToUTF16("PASS"); 1840 const base::string16 title = base::ASCIIToUTF16("PASS");
1797 TitleWatcher title_watcher(shell()->web_contents(), title); 1841 TitleWatcher title_watcher(shell()->web_contents(), title);
1798 NavigateToURL(shell(), page_url); 1842 NavigateToURL(shell(), page_url);
1799 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1843 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1800 EXPECT_EQ("Hello world.", GetTextContent()); 1844 EXPECT_EQ("Hello world.", GetTextContent());
1801 1845
1802 // The page request must be sent only once, since the worker responded with 1846 // The page request must be sent only once, since the worker responded with
1803 // "Hello world". 1847 // "Hello world".
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 "self.addEventListener('message', event => {\n" 1884 "self.addEventListener('message', event => {\n"
1841 " event.waitUntil(\n" 1885 " event.waitUntil(\n"
1842 " preload_promise.then(\n" 1886 " preload_promise.then(\n"
1843 " result => event.source.postMessage(result)));\n" 1887 " result => event.source.postMessage(result)));\n"
1844 " });"; 1888 " });";
1845 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1889 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1846 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1890 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1847 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1891 RegisterStaticFile(kPageUrl, kPage, "text/html");
1848 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 1892 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
1849 1893
1894 RegisterMonitorRequestHandler();
1895 StartServerAndNavigateToSetup();
1850 SetupForNavigationPreloadTest(page_url, worker_url); 1896 SetupForNavigationPreloadTest(page_url, worker_url);
1851 1897
1852 const base::string16 title = base::ASCIIToUTF16("REJECTED"); 1898 const base::string16 title = base::ASCIIToUTF16("REJECTED");
1853 TitleWatcher title_watcher(shell()->web_contents(), title); 1899 TitleWatcher title_watcher(shell()->web_contents(), title);
1854 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED")); 1900 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED"));
1855 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR")); 1901 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR"));
1856 NavigateToURL(shell(), page_url); 1902 NavigateToURL(shell(), page_url);
1857 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1903 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1858 1904
1859 EXPECT_EQ( 1905 EXPECT_EQ(
1860 "AbortError: Service Worker navigation preload aborted. Need to guard " 1906 "AbortError: Service Worker navigation preload aborted. Need to guard "
1861 "with respondWith or waitUntil.", 1907 "with respondWith or waitUntil.",
1862 GetTextContent()); 1908 GetTextContent());
1863 } 1909 }
1864 1910
1865 IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, NetworkError) { 1911 IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, NetworkError) {
1866 const char kPageUrl[] = "/service_worker/navigation_preload.html"; 1912 const char kPageUrl[] = "/service_worker/navigation_preload.html";
1867 const char kWorkerUrl[] = "/service_worker/navigation_preload.js"; 1913 const char kWorkerUrl[] = "/service_worker/navigation_preload.js";
1868 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1914 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1869 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1915 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1870 RegisterStaticFile( 1916 RegisterStaticFile(
1871 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript, 1917 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript,
1872 "text/javascript"); 1918 "text/javascript");
1873 1919
1920 RegisterMonitorRequestHandler();
1921 StartServerAndNavigateToSetup();
1874 SetupForNavigationPreloadTest(page_url, worker_url); 1922 SetupForNavigationPreloadTest(page_url, worker_url);
1875 1923
1876 EXPECT_TRUE(embedded_test_server()->ShutdownAndWaitUntilComplete()); 1924 EXPECT_TRUE(embedded_test_server()->ShutdownAndWaitUntilComplete());
1877 1925
1878 const base::string16 title = base::ASCIIToUTF16("REJECTED"); 1926 const base::string16 title = base::ASCIIToUTF16("REJECTED");
1879 TitleWatcher title_watcher(shell()->web_contents(), title); 1927 TitleWatcher title_watcher(shell()->web_contents(), title);
1880 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED")); 1928 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED"));
1881 NavigateToURL(shell(), page_url); 1929 NavigateToURL(shell(), page_url);
1882 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1930 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1883 EXPECT_EQ("NetworkError: Service Worker navigation preload network error.", 1931 EXPECT_EQ("NetworkError: Service Worker navigation preload network error.",
1884 GetTextContent()); 1932 GetTextContent());
1885 } 1933 }
1886 1934
1887 IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, 1935 IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest,
1888 PreloadHeadersSimple) { 1936 PreloadHeadersSimple) {
1889 const char kPageUrl[] = "/service_worker/navigation_preload.html"; 1937 const char kPageUrl[] = "/service_worker/navigation_preload.html";
1890 const char kWorkerUrl[] = "/service_worker/navigation_preload.js"; 1938 const char kWorkerUrl[] = "/service_worker/navigation_preload.js";
1891 const char kPage[] = "<title>ERROR</title>Hello world."; 1939 const char kPage[] = "<title>ERROR</title>Hello world.";
1892 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1940 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1893 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1941 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1894 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1942 RegisterStaticFile(kPageUrl, kPage, "text/html");
1895 RegisterStaticFile( 1943 RegisterStaticFile(
1896 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript, 1944 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript,
1897 "text/javascript"); 1945 "text/javascript");
1898 1946
1947 RegisterMonitorRequestHandler();
1948 StartServerAndNavigateToSetup();
1899 SetupForNavigationPreloadTest(page_url, worker_url); 1949 SetupForNavigationPreloadTest(page_url, worker_url);
1900 1950
1901 const base::string16 title = base::ASCIIToUTF16("RESOLVED"); 1951 const base::string16 title = base::ASCIIToUTF16("RESOLVED");
1902 TitleWatcher title_watcher(shell()->web_contents(), title); 1952 TitleWatcher title_watcher(shell()->web_contents(), title);
1903 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("REJECTED")); 1953 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("REJECTED"));
1904 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR")); 1954 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR"));
1905 NavigateToURL(shell(), page_url); 1955 NavigateToURL(shell(), page_url);
1906 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1956 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1907 1957
1908 // The page request must be sent only once, since the worker responded with 1958 // The page request must be sent only once, since the worker responded with
(...skipping 15 matching lines...) Expand all
1924 1974
1925 IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, NotEnabled) { 1975 IN_PROC_BROWSER_TEST_P(ServiceWorkerNavigationPreloadTest, NotEnabled) {
1926 const char kPageUrl[] = "/service_worker/navigation_preload.html"; 1976 const char kPageUrl[] = "/service_worker/navigation_preload.html";
1927 const char kWorkerUrl[] = "/service_worker/navigation_preload.js"; 1977 const char kWorkerUrl[] = "/service_worker/navigation_preload.js";
1928 const char kPage[] = "<title>ERROR</title>Hello world."; 1978 const char kPage[] = "<title>ERROR</title>Hello world.";
1929 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 1979 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1930 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 1980 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1931 RegisterStaticFile(kPageUrl, kPage, "text/html"); 1981 RegisterStaticFile(kPageUrl, kPage, "text/html");
1932 RegisterStaticFile(kWorkerUrl, kPreloadResponseTestScript, "text/javascript"); 1982 RegisterStaticFile(kWorkerUrl, kPreloadResponseTestScript, "text/javascript");
1933 1983
1984 RegisterMonitorRequestHandler();
1985 StartServerAndNavigateToSetup();
1934 SetupForNavigationPreloadTest(page_url, worker_url); 1986 SetupForNavigationPreloadTest(page_url, worker_url);
1935 1987
1936 const base::string16 title = base::ASCIIToUTF16("RESOLVED"); 1988 const base::string16 title = base::ASCIIToUTF16("RESOLVED");
1937 TitleWatcher title_watcher(shell()->web_contents(), title); 1989 TitleWatcher title_watcher(shell()->web_contents(), title);
1938 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("REJECTED")); 1990 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("REJECTED"));
1939 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR")); 1991 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR"));
1940 NavigateToURL(shell(), page_url); 1992 NavigateToURL(shell(), page_url);
1941 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 1993 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1942 1994
1943 // The page request must not be sent, since the worker responded with a 1995 // The page request must not be sent, since the worker responded with a
(...skipping 17 matching lines...) Expand all
1961 "Set-Cookie2: COOKIE2\r\n" 2013 "Set-Cookie2: COOKIE2\r\n"
1962 "\r\n" 2014 "\r\n"
1963 "<title>ERROR</title>Hello world."; 2015 "<title>ERROR</title>Hello world.";
1964 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 2016 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
1965 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 2017 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
1966 RegisterCustomResponse(kPageUrl, kPageResponse); 2018 RegisterCustomResponse(kPageUrl, kPageResponse);
1967 RegisterStaticFile( 2019 RegisterStaticFile(
1968 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript, 2020 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript,
1969 "text/javascript"); 2021 "text/javascript");
1970 2022
2023 RegisterMonitorRequestHandler();
2024 StartServerAndNavigateToSetup();
1971 SetupForNavigationPreloadTest(page_url, worker_url); 2025 SetupForNavigationPreloadTest(page_url, worker_url);
1972 2026
1973 const base::string16 title = base::ASCIIToUTF16("RESOLVED"); 2027 const base::string16 title = base::ASCIIToUTF16("RESOLVED");
1974 TitleWatcher title_watcher(shell()->web_contents(), title); 2028 TitleWatcher title_watcher(shell()->web_contents(), title);
1975 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("REJECTED")); 2029 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("REJECTED"));
1976 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR")); 2030 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("ERROR"));
1977 NavigateToURL(shell(), page_url); 2031 NavigateToURL(shell(), page_url);
1978 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 2032 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1979 2033
1980 // The page request must be sent only once, since the worker responded with 2034 // The page request must be sent only once, since the worker responded with
(...skipping 30 matching lines...) Expand all
2011 const GURL redirecred_page_url = 2065 const GURL redirecred_page_url =
2012 embedded_test_server()->GetURL(kRedirectedPageUrl); 2066 embedded_test_server()->GetURL(kRedirectedPageUrl);
2013 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 2067 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
2014 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 2068 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
2015 RegisterCustomResponse(kPageUrl, kPageResponse); 2069 RegisterCustomResponse(kPageUrl, kPageResponse);
2016 RegisterStaticFile( 2070 RegisterStaticFile(
2017 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript, 2071 kWorkerUrl, kEnableNavigationPreloadScript + kPreloadResponseTestScript,
2018 "text/javascript"); 2072 "text/javascript");
2019 RegisterStaticFile(kRedirectedPageUrl, kRedirectedPage, "text/html"); 2073 RegisterStaticFile(kRedirectedPageUrl, kRedirectedPage, "text/html");
2020 2074
2075 RegisterMonitorRequestHandler();
2076 StartServerAndNavigateToSetup();
2021 SetupForNavigationPreloadTest(page_url, worker_url); 2077 SetupForNavigationPreloadTest(page_url, worker_url);
2022 2078
2023 const base::string16 title = base::ASCIIToUTF16("REJECTED"); 2079 const base::string16 title = base::ASCIIToUTF16("REJECTED");
2024 TitleWatcher title_watcher(shell()->web_contents(), title); 2080 TitleWatcher title_watcher(shell()->web_contents(), title);
2025 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED")); 2081 title_watcher.AlsoWaitForTitle(base::ASCIIToUTF16("RESOLVED"));
2026 NavigateToURL(shell(), page_url); 2082 NavigateToURL(shell(), page_url);
2027 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 2083 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
2028 2084
2029 // The page request must be sent only once, since the worker responded with 2085 // The page request must be sent only once, since the worker responded with
2030 // a generated Response. 2086 // a generated Response.
(...skipping 27 matching lines...) Expand all
2058 RegisterStaticFile(kPageUrl, kPage, "text/html"); 2114 RegisterStaticFile(kPageUrl, kPage, "text/html");
2059 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 2115 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
2060 2116
2061 // Register redirects to the target URL. The service worker responds to the 2117 // Register redirects to the target URL. The service worker responds to the
2062 // target URL with the navigation preload response. 2118 // target URL with the navigation preload response.
2063 const char kRedirectPageUrl[] = "/redirect"; 2119 const char kRedirectPageUrl[] = "/redirect";
2064 const char kInScopeRedirectPageUrl[] = "/service_worker/redirect"; 2120 const char kInScopeRedirectPageUrl[] = "/service_worker/redirect";
2065 RegisterKeepSearchRedirect(kRedirectPageUrl, page_url.spec()); 2121 RegisterKeepSearchRedirect(kRedirectPageUrl, page_url.spec());
2066 RegisterKeepSearchRedirect(kInScopeRedirectPageUrl, page_url.spec()); 2122 RegisterKeepSearchRedirect(kInScopeRedirectPageUrl, page_url.spec());
2067 2123
2124 RegisterMonitorRequestHandler();
2125 StartServerAndNavigateToSetup();
2068 SetupForNavigationPreloadTest( 2126 SetupForNavigationPreloadTest(
2069 embedded_test_server()->GetURL("/service_worker/"), worker_url); 2127 embedded_test_server()->GetURL("/service_worker/"), worker_url);
2070 2128
2071 const GURL redirect_page_url = 2129 const GURL redirect_page_url =
2072 embedded_test_server()->GetURL(kRedirectPageUrl).Resolve("?1"); 2130 embedded_test_server()->GetURL(kRedirectPageUrl).Resolve("?1");
2073 const GURL in_scope_redirect_page_url = 2131 const GURL in_scope_redirect_page_url =
2074 embedded_test_server()->GetURL(kInScopeRedirectPageUrl).Resolve("?2"); 2132 embedded_test_server()->GetURL(kInScopeRedirectPageUrl).Resolve("?2");
2075 const GURL cross_origin_redirect_page_url = 2133 const GURL cross_origin_redirect_page_url =
2076 embedded_test_server()->GetURL("a.com", kRedirectPageUrl).Resolve("?3"); 2134 embedded_test_server()->GetURL("a.com", kRedirectPageUrl).Resolve("?3");
2077 2135
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2116 "self.addEventListener('fetch', event => {\n" 2174 "self.addEventListener('fetch', event => {\n"
2117 " event.respondWith(event.preloadResponse);\n" 2175 " event.respondWith(event.preloadResponse);\n"
2118 " });"; 2176 " });";
2119 const GURL page_url = embedded_test_server()->GetURL(kPageUrl); 2177 const GURL page_url = embedded_test_server()->GetURL(kPageUrl);
2120 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl); 2178 const GURL worker_url = embedded_test_server()->GetURL(kWorkerUrl);
2121 2179
2122 // Setting an empty content type to trigger MimeSniffingResourceHandler. 2180 // Setting an empty content type to trigger MimeSniffingResourceHandler.
2123 RegisterStaticFile(kPageUrl, kPage, ""); 2181 RegisterStaticFile(kPageUrl, kPage, "");
2124 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript"); 2182 RegisterStaticFile(kWorkerUrl, kScript, "text/javascript");
2125 2183
2184 RegisterMonitorRequestHandler();
2185 StartServerAndNavigateToSetup();
2126 SetupForNavigationPreloadTest(page_url, worker_url); 2186 SetupForNavigationPreloadTest(page_url, worker_url);
2127 2187
2128 const base::string16 title = base::ASCIIToUTF16("PASS"); 2188 const base::string16 title = base::ASCIIToUTF16("PASS");
2129 TitleWatcher title_watcher(shell()->web_contents(), title); 2189 TitleWatcher title_watcher(shell()->web_contents(), title);
2130 NavigateToURL(shell(), page_url); 2190 NavigateToURL(shell(), page_url);
2131 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 2191 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
2132 EXPECT_EQ("Hello world.", GetTextContent()); 2192 EXPECT_EQ("Hello world.", GetTextContent());
2133 2193
2134 // The page request must be sent only once, since the worker responded with 2194 // The page request must be sent only once, since the worker responded with
2135 // the navigation preload response 2195 // the navigation preload response
2136 EXPECT_EQ(1, GetRequestCount(kPageUrl)); 2196 EXPECT_EQ(1, GetRequestCount(kPageUrl));
2137 } 2197 }
2138 2198
2139 // Flaky on Win/Mac: http://crbug.com/533631 2199 // Flaky on Win/Mac: http://crbug.com/533631
2140 #if defined(OS_WIN) || defined(OS_MACOSX) 2200 #if defined(OS_WIN) || defined(OS_MACOSX)
2141 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure DISABLED_ResponseFr omHTTPSServiceWorkerIsMarkedAsSecure 2201 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure DISABLED_ResponseFr omHTTPSServiceWorkerIsMarkedAsSecure
2142 #else 2202 #else
2143 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure ResponseFromHTTPSSe rviceWorkerIsMarkedAsSecure 2203 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure ResponseFromHTTPSSe rviceWorkerIsMarkedAsSecure
2144 #endif 2204 #endif
2145 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, 2205 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest,
2146 MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure) { 2206 MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure) {
2207 StartServerAndNavigateToSetup();
2147 const char kPageUrl[] = "/service_worker/fetch_event_blob.html"; 2208 const char kPageUrl[] = "/service_worker/fetch_event_blob.html";
2148 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 2209 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
2149 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 2210 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
2150 https_server.ServeFilesFromSourceDirectory("content/test/data"); 2211 https_server.ServeFilesFromSourceDirectory("content/test/data");
2151 ASSERT_TRUE(https_server.Start()); 2212 ASSERT_TRUE(https_server.Start());
2152 2213
2153 scoped_refptr<WorkerActivatedObserver> observer = 2214 scoped_refptr<WorkerActivatedObserver> observer =
2154 new WorkerActivatedObserver(wrapper()); 2215 new WorkerActivatedObserver(wrapper());
2155 observer->Init(); 2216 observer->Init();
2156 public_context()->RegisterServiceWorker( 2217 public_context()->RegisterServiceWorker(
(...skipping 19 matching lines...) Expand all
2176 2237
2177 base::RunLoop run_loop; 2238 base::RunLoop run_loop;
2178 public_context()->UnregisterServiceWorker( 2239 public_context()->UnregisterServiceWorker(
2179 https_server.GetURL(kPageUrl), 2240 https_server.GetURL(kPageUrl),
2180 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 2241 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
2181 run_loop.Run(); 2242 run_loop.Run();
2182 } 2243 }
2183 2244
2184 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, 2245 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest,
2185 ResponseFromHTTPServiceWorkerIsNotMarkedAsSecure) { 2246 ResponseFromHTTPServiceWorkerIsNotMarkedAsSecure) {
2247 StartServerAndNavigateToSetup();
2186 const char kPageUrl[] = "/service_worker/fetch_event_blob.html"; 2248 const char kPageUrl[] = "/service_worker/fetch_event_blob.html";
2187 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 2249 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
2188 scoped_refptr<WorkerActivatedObserver> observer = 2250 scoped_refptr<WorkerActivatedObserver> observer =
2189 new WorkerActivatedObserver(wrapper()); 2251 new WorkerActivatedObserver(wrapper());
2190 observer->Init(); 2252 observer->Init();
2191 public_context()->RegisterServiceWorker( 2253 public_context()->RegisterServiceWorker(
2192 embedded_test_server()->GetURL(kPageUrl), 2254 embedded_test_server()->GetURL(kPageUrl),
2193 embedded_test_server()->GetURL(kWorkerUrl), 2255 embedded_test_server()->GetURL(kWorkerUrl),
2194 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); 2256 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing)));
2195 observer->Wait(); 2257 observer->Wait();
(...skipping 12 matching lines...) Expand all
2208 shell()->Close(); 2270 shell()->Close();
2209 2271
2210 base::RunLoop run_loop; 2272 base::RunLoop run_loop;
2211 public_context()->UnregisterServiceWorker( 2273 public_context()->UnregisterServiceWorker(
2212 embedded_test_server()->GetURL(kPageUrl), 2274 embedded_test_server()->GetURL(kPageUrl),
2213 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 2275 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
2214 run_loop.Run(); 2276 run_loop.Run();
2215 } 2277 }
2216 2278
2217 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, ImportsBustMemcache) { 2279 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, ImportsBustMemcache) {
2280 StartServerAndNavigateToSetup();
2218 const char kScopeUrl[] = "/service_worker/imports_bust_memcache_scope/"; 2281 const char kScopeUrl[] = "/service_worker/imports_bust_memcache_scope/";
2219 const char kPageUrl[] = "/service_worker/imports_bust_memcache.html"; 2282 const char kPageUrl[] = "/service_worker/imports_bust_memcache.html";
2220 const char kScriptUrl[] = "/service_worker/worker_with_one_import.js"; 2283 const char kScriptUrl[] = "/service_worker/worker_with_one_import.js";
2221 const char kImportUrl[] = "/service_worker/long_lived_import.js"; 2284 const char kImportUrl[] = "/service_worker/long_lived_import.js";
2222 const base::string16 kOKTitle(base::ASCIIToUTF16("OK")); 2285 const base::string16 kOKTitle(base::ASCIIToUTF16("OK"));
2223 const base::string16 kFailTitle(base::ASCIIToUTF16("FAIL")); 2286 const base::string16 kFailTitle(base::ASCIIToUTF16("FAIL"));
2224 2287
2225 RunOnIOThread( 2288 RunOnIOThread(
2226 base::Bind(&CreateLongLivedResourceInterceptors, 2289 base::Bind(&CreateLongLivedResourceInterceptors,
2227 embedded_test_server()->GetURL(kScriptUrl), 2290 embedded_test_server()->GetURL(kScriptUrl),
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2273 int result = 0; 2336 int result = 0;
2274 for (RenderProcessHost::iterator iter(RenderProcessHost::AllHostsIterator()); 2337 for (RenderProcessHost::iterator iter(RenderProcessHost::AllHostsIterator());
2275 !iter.IsAtEnd(); 2338 !iter.IsAtEnd();
2276 iter.Advance()) { 2339 iter.Advance()) {
2277 result++; 2340 result++;
2278 } 2341 }
2279 return result; 2342 return result;
2280 } 2343 }
2281 2344
2282 IN_PROC_BROWSER_TEST_P(ServiceWorkerBlackBoxBrowserTest, Registration) { 2345 IN_PROC_BROWSER_TEST_P(ServiceWorkerBlackBoxBrowserTest, Registration) {
2346 StartServerAndNavigateToSetup();
2283 // Close the only window to be sure we're not re-using its RenderProcessHost. 2347 // Close the only window to be sure we're not re-using its RenderProcessHost.
2284 shell()->Close(); 2348 shell()->Close();
2285 EXPECT_EQ(0, CountRenderProcessHosts()); 2349 EXPECT_EQ(0, CountRenderProcessHosts());
2286 2350
2287 const char kWorkerUrl[] = "/service_worker/fetch_event.js"; 2351 const char kWorkerUrl[] = "/service_worker/fetch_event.js";
2288 const char kScope[] = "/service_worker/"; 2352 const char kScope[] = "/service_worker/";
2289 2353
2290 // Unregistering nothing should return false. 2354 // Unregistering nothing should return false.
2291 { 2355 {
2292 base::RunLoop run_loop; 2356 base::RunLoop run_loop;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2355 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, status); 2419 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, status);
2356 } 2420 }
2357 } 2421 }
2358 2422
2359 #if defined(ANDROID) 2423 #if defined(ANDROID)
2360 #define MAYBE_CrossSiteTransfer DISABLED_CrossSiteTransfer 2424 #define MAYBE_CrossSiteTransfer DISABLED_CrossSiteTransfer
2361 #else 2425 #else
2362 #define MAYBE_CrossSiteTransfer CrossSiteTransfer 2426 #define MAYBE_CrossSiteTransfer CrossSiteTransfer
2363 #endif 2427 #endif
2364 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, MAYBE_CrossSiteTransfer) { 2428 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, MAYBE_CrossSiteTransfer) {
2429 StartServerAndNavigateToSetup();
2365 // The first page registers a service worker. 2430 // The first page registers a service worker.
2366 const char kRegisterPageUrl[] = "/service_worker/cross_site_xfer.html"; 2431 const char kRegisterPageUrl[] = "/service_worker/cross_site_xfer.html";
2367 const base::string16 kOKTitle1(base::ASCIIToUTF16("OK_1")); 2432 const base::string16 kOKTitle1(base::ASCIIToUTF16("OK_1"));
2368 const base::string16 kFailTitle1(base::ASCIIToUTF16("FAIL_1")); 2433 const base::string16 kFailTitle1(base::ASCIIToUTF16("FAIL_1"));
2369 content::TitleWatcher title_watcher1(shell()->web_contents(), kOKTitle1); 2434 content::TitleWatcher title_watcher1(shell()->web_contents(), kOKTitle1);
2370 title_watcher1.AlsoWaitForTitle(kFailTitle1); 2435 title_watcher1.AlsoWaitForTitle(kFailTitle1);
2371 2436
2372 NavigateToURL(shell(), embedded_test_server()->GetURL(kRegisterPageUrl)); 2437 NavigateToURL(shell(), embedded_test_server()->GetURL(kRegisterPageUrl));
2373 ASSERT_EQ(kOKTitle1, title_watcher1.WaitAndGetTitle()); 2438 ASSERT_EQ(kOKTitle1, title_watcher1.WaitAndGetTitle());
2374 2439
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2409 // ServiceWorkerVersion::Listener overrides 2474 // ServiceWorkerVersion::Listener overrides
2410 void OnCachedMetadataUpdated(ServiceWorkerVersion* version) override { 2475 void OnCachedMetadataUpdated(ServiceWorkerVersion* version) override {
2411 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 2476 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
2412 cache_updated_closure_); 2477 cache_updated_closure_);
2413 } 2478 }
2414 2479
2415 base::Closure cache_updated_closure_; 2480 base::Closure cache_updated_closure_;
2416 }; 2481 };
2417 2482
2418 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserV8CacheTest, Restart) { 2483 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserV8CacheTest, Restart) {
2484 StartServerAndNavigateToSetup();
2419 RunOnIOThread(base::Bind(&self::SetUpRegistrationAndListenerOnIOThread, 2485 RunOnIOThread(base::Bind(&self::SetUpRegistrationAndListenerOnIOThread,
2420 base::Unretained(this), 2486 base::Unretained(this),
2421 "/service_worker/worker.js")); 2487 "/service_worker/worker.js"));
2422 2488
2423 base::RunLoop cached_metadata_run_loop; 2489 base::RunLoop cached_metadata_run_loop;
2424 cache_updated_closure_ = cached_metadata_run_loop.QuitClosure(); 2490 cache_updated_closure_ = cached_metadata_run_loop.QuitClosure();
2425 2491
2426 // Start a worker. 2492 // Start a worker.
2427 StartWorker(SERVICE_WORKER_OK); 2493 StartWorker(SERVICE_WORKER_OK);
2428 2494
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
2563 std::unique_ptr<storage::BlobDataHandle> blob_data_handle_; 2629 std::unique_ptr<storage::BlobDataHandle> blob_data_handle_;
2564 std::unique_ptr<storage::BlobReader> blob_reader_; 2630 std::unique_ptr<storage::BlobReader> blob_reader_;
2565 DISALLOW_COPY_AND_ASSIGN(CacheStorageSideDataSizeChecker); 2631 DISALLOW_COPY_AND_ASSIGN(CacheStorageSideDataSizeChecker);
2566 }; 2632 };
2567 2633
2568 class ServiceWorkerV8CacheStrategiesTest : public ServiceWorkerBrowserTest { 2634 class ServiceWorkerV8CacheStrategiesTest : public ServiceWorkerBrowserTest {
2569 public: 2635 public:
2570 ServiceWorkerV8CacheStrategiesTest() {} 2636 ServiceWorkerV8CacheStrategiesTest() {}
2571 ~ServiceWorkerV8CacheStrategiesTest() override {} 2637 ~ServiceWorkerV8CacheStrategiesTest() override {}
2572 2638
2639 void SetUpOnMainThread() override {
2640 ServiceWorkerBrowserTest::SetUpOnMainThread();
2641 StartServerAndNavigateToSetup();
2642 }
2643
2573 protected: 2644 protected:
2574 void CheckStrategyIsNone() { 2645 void CheckStrategyIsNone() {
2575 RegisterAndActivateServiceWorker(); 2646 RegisterAndActivateServiceWorker();
2576 2647
2577 NavigateToTestPage(); 2648 NavigateToTestPage();
2578 WaitUntilSideDataSizeIs(0); 2649 WaitUntilSideDataSizeIs(0);
2579 2650
2580 NavigateToTestPage(); 2651 NavigateToTestPage();
2581 WaitUntilSideDataSizeIs(0); 2652 WaitUntilSideDataSizeIs(0);
2582 2653
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
2786 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 2857 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
2787 } 2858 }
2788 2859
2789 private: 2860 private:
2790 net::EmbeddedTestServer cross_origin_server_; 2861 net::EmbeddedTestServer cross_origin_server_;
2791 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDisableWebSecurityTest); 2862 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDisableWebSecurityTest);
2792 }; 2863 };
2793 2864
2794 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, 2865 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest,
2795 GetRegistrationNoCrash) { 2866 GetRegistrationNoCrash) {
2867 StartServerAndNavigateToSetup();
2796 const char kPageUrl[] = 2868 const char kPageUrl[] =
2797 "/service_worker/disable_web_security_get_registration.html"; 2869 "/service_worker/disable_web_security_get_registration.html";
2798 const char kScopeUrl[] = "/service_worker/"; 2870 const char kScopeUrl[] = "/service_worker/";
2799 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2871 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2800 } 2872 }
2801 2873
2802 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, RegisterNoCrash) { 2874 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, RegisterNoCrash) {
2875 StartServerAndNavigateToSetup();
2803 const char kPageUrl[] = "/service_worker/disable_web_security_register.html"; 2876 const char kPageUrl[] = "/service_worker/disable_web_security_register.html";
2804 const char kScopeUrl[] = "/service_worker/"; 2877 const char kScopeUrl[] = "/service_worker/";
2805 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2878 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2806 } 2879 }
2807 2880
2808 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, UnregisterNoCrash) { 2881 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, UnregisterNoCrash) {
2882 StartServerAndNavigateToSetup();
2809 const char kPageUrl[] = 2883 const char kPageUrl[] =
2810 "/service_worker/disable_web_security_unregister.html"; 2884 "/service_worker/disable_web_security_unregister.html";
2811 const char kScopeUrl[] = "/service_worker/scope/"; 2885 const char kScopeUrl[] = "/service_worker/scope/";
2812 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 2886 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
2813 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl); 2887 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl);
2814 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2888 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2815 } 2889 }
2816 2890
2817 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, UpdateNoCrash) { 2891 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, UpdateNoCrash) {
2892 StartServerAndNavigateToSetup();
2818 const char kPageUrl[] = "/service_worker/disable_web_security_update.html"; 2893 const char kPageUrl[] = "/service_worker/disable_web_security_update.html";
2819 const char kScopeUrl[] = "/service_worker/scope/"; 2894 const char kScopeUrl[] = "/service_worker/scope/";
2820 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 2895 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
2821 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl); 2896 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl);
2822 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2897 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2823 } 2898 }
2824 2899
2825 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest, 2900 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2826 ServiceWorkerBrowserTest, 2901 ServiceWorkerBrowserTest,
2827 ::testing::Values(true, false)); 2902 ::testing::Values(true, false));
(...skipping 19 matching lines...) Expand all
2847 ServiceWorkerV8CacheStrategiesNormalTest, 2922 ServiceWorkerV8CacheStrategiesNormalTest,
2848 ::testing::Values(true, false)); 2923 ::testing::Values(true, false));
2849 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest, 2924 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2850 ServiceWorkerV8CacheStrategiesAggressiveTest, 2925 ServiceWorkerV8CacheStrategiesAggressiveTest,
2851 ::testing::Values(true, false)); 2926 ::testing::Values(true, false));
2852 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest, 2927 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2853 ServiceWorkerDisableWebSecurityTest, 2928 ServiceWorkerDisableWebSecurityTest,
2854 ::testing::Values(true, false)); 2929 ::testing::Values(true, false));
2855 2930
2856 } // namespace content 2931 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698