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

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

Issue 2397523004: Reland of ServiceWorker: Added --mojo-service-worker to the browser tests (Closed)
Patch Set: Created 4 years, 2 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 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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 version_id = infos[index].active_version.version_id; 330 version_id = infos[index].active_version.version_id;
331 else 331 else
332 return; 332 return;
333 333
334 ServiceWorkerVersion* version = wrapper->GetLiveVersion(version_id); 334 ServiceWorkerVersion* version = wrapper->GetLiveVersion(version_id);
335 *num_resources = static_cast<int>(version->script_cache_map()->size()); 335 *num_resources = static_cast<int>(version->script_cache_map()->size());
336 } 336 }
337 337
338 } // namespace 338 } // namespace
339 339
340 class ServiceWorkerBrowserTest : public ContentBrowserTest { 340 class ServiceWorkerBrowserTest : public testing::WithParamInterface<bool>,
341 public ContentBrowserTest {
341 protected: 342 protected:
342 using self = ServiceWorkerBrowserTest; 343 using self = ServiceWorkerBrowserTest;
343 344
345 void SetUp() override {
346 is_mojo_enabled_ = GetParam();
347 if (is_mojo_enabled()) {
348 base::CommandLine::ForCurrentProcess()->AppendSwitch(
349 switches::kMojoServiceWorker);
350 }
351 ContentBrowserTest::SetUp();
352 }
353
344 void SetUpOnMainThread() override { 354 void SetUpOnMainThread() override {
345 ASSERT_TRUE(embedded_test_server()->Start()); 355 ASSERT_TRUE(embedded_test_server()->Start());
346 StoragePartition* partition = BrowserContext::GetDefaultStoragePartition( 356 StoragePartition* partition = BrowserContext::GetDefaultStoragePartition(
347 shell()->web_contents()->GetBrowserContext()); 357 shell()->web_contents()->GetBrowserContext());
348 wrapper_ = static_cast<ServiceWorkerContextWrapper*>( 358 wrapper_ = static_cast<ServiceWorkerContextWrapper*>(
349 partition->GetServiceWorkerContext()); 359 partition->GetServiceWorkerContext());
350 360
351 // Navigate to the page to set up a renderer page (where we can embed 361 // Navigate to the page to set up a renderer page (where we can embed
352 // a worker). 362 // a worker).
353 NavigateToURLBlockUntilNavigationsComplete( 363 NavigateToURLBlockUntilNavigationsComplete(
354 shell(), 364 shell(),
355 embedded_test_server()->GetURL("/service_worker/empty.html"), 1); 365 embedded_test_server()->GetURL("/service_worker/empty.html"), 1);
356 366
357 RunOnIOThread(base::Bind(&self::SetUpOnIOThread, base::Unretained(this))); 367 RunOnIOThread(base::Bind(&self::SetUpOnIOThread, base::Unretained(this)));
358 } 368 }
359 369
360 void TearDownOnMainThread() override { 370 void TearDownOnMainThread() override {
361 RunOnIOThread( 371 RunOnIOThread(
362 base::Bind(&self::TearDownOnIOThread, base::Unretained(this))); 372 base::Bind(&self::TearDownOnIOThread, base::Unretained(this)));
363 wrapper_ = NULL; 373 wrapper_ = NULL;
364 } 374 }
365 375
366 virtual void SetUpOnIOThread() {} 376 virtual void SetUpOnIOThread() {}
367 virtual void TearDownOnIOThread() {} 377 virtual void TearDownOnIOThread() {}
368 378
369 ServiceWorkerContextWrapper* wrapper() { return wrapper_.get(); } 379 ServiceWorkerContextWrapper* wrapper() { return wrapper_.get(); }
370 ServiceWorkerContext* public_context() { return wrapper(); } 380 ServiceWorkerContext* public_context() { return wrapper(); }
381 bool is_mojo_enabled() const { return is_mojo_enabled_; }
371 382
372 void AssociateRendererProcessToPattern(const GURL& pattern) { 383 void AssociateRendererProcessToPattern(const GURL& pattern) {
373 wrapper_->process_manager()->AddProcessReferenceToPattern( 384 wrapper_->process_manager()->AddProcessReferenceToPattern(
374 pattern, shell()->web_contents()->GetRenderProcessHost()->GetID()); 385 pattern, shell()->web_contents()->GetRenderProcessHost()->GetID());
375 } 386 }
376 387
377 private: 388 private:
378 scoped_refptr<ServiceWorkerContextWrapper> wrapper_; 389 scoped_refptr<ServiceWorkerContextWrapper> wrapper_;
390 bool is_mojo_enabled_ = false;
379 }; 391 };
380 392
381 class ConsoleListener : public EmbeddedWorkerInstance::Listener { 393 class ConsoleListener : public EmbeddedWorkerInstance::Listener {
382 public: 394 public:
383 void OnReportConsoleMessage(int source_identifier, 395 void OnReportConsoleMessage(int source_identifier,
384 int message_level, 396 int message_level,
385 const base::string16& message, 397 const base::string16& message,
386 int line_number, 398 int line_number,
387 const GURL& source_url) override { 399 const GURL& source_url) override {
388 DCHECK_CURRENTLY_ON(BrowserThread::IO); 400 DCHECK_CURRENTLY_ON(BrowserThread::IO);
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 version_->StopWorker(CreateReceiver(BrowserThread::UI, done, result)); 792 version_->StopWorker(CreateReceiver(BrowserThread::UI, done, result));
781 } 793 }
782 794
783 protected: 795 protected:
784 scoped_refptr<ServiceWorkerRegistration> registration_; 796 scoped_refptr<ServiceWorkerRegistration> registration_;
785 scoped_refptr<ServiceWorkerVersion> version_; 797 scoped_refptr<ServiceWorkerVersion> version_;
786 scoped_refptr<ChromeBlobStorageContext> blob_context_; 798 scoped_refptr<ChromeBlobStorageContext> blob_context_;
787 std::unique_ptr<ServiceWorkerFetchDispatcher> fetch_dispatcher_; 799 std::unique_ptr<ServiceWorkerFetchDispatcher> fetch_dispatcher_;
788 }; 800 };
789 801
790 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, StartAndStop) { 802 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, StartAndStop) {
791 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 803 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
792 base::Unretained(this), 804 base::Unretained(this),
793 "/service_worker/worker.js")); 805 "/service_worker/worker.js"));
794 806
795 // Start a worker. 807 // Start a worker.
796 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 808 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
797 base::RunLoop start_run_loop; 809 base::RunLoop start_run_loop;
798 BrowserThread::PostTask( 810 BrowserThread::PostTask(
799 BrowserThread::IO, FROM_HERE, 811 BrowserThread::IO, FROM_HERE,
800 base::Bind(&self::StartOnIOThread, base::Unretained(this), 812 base::Bind(&self::StartOnIOThread, base::Unretained(this),
801 start_run_loop.QuitClosure(), &status)); 813 start_run_loop.QuitClosure(), &status));
802 start_run_loop.Run(); 814 start_run_loop.Run();
803 ASSERT_EQ(SERVICE_WORKER_OK, status); 815 ASSERT_EQ(SERVICE_WORKER_OK, status);
804 816
805 // Stop the worker. 817 // Stop the worker.
806 status = SERVICE_WORKER_ERROR_FAILED; 818 status = SERVICE_WORKER_ERROR_FAILED;
807 base::RunLoop stop_run_loop; 819 base::RunLoop stop_run_loop;
808 BrowserThread::PostTask( 820 BrowserThread::PostTask(
809 BrowserThread::IO, FROM_HERE, 821 BrowserThread::IO, FROM_HERE,
810 base::Bind(&self::StopOnIOThread, base::Unretained(this), 822 base::Bind(&self::StopOnIOThread, base::Unretained(this),
811 stop_run_loop.QuitClosure(), &status)); 823 stop_run_loop.QuitClosure(), &status));
812 stop_run_loop.Run(); 824 stop_run_loop.Run();
813 ASSERT_EQ(SERVICE_WORKER_OK, status); 825 ASSERT_EQ(SERVICE_WORKER_OK, status);
814 } 826 }
815 827
816 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, StartNotFound) { 828 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, StartNotFound) {
817 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 829 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
818 base::Unretained(this), 830 base::Unretained(this),
819 "/service_worker/nonexistent.js")); 831 "/service_worker/nonexistent.js"));
820 832
821 // Start a worker for nonexistent URL. 833 // Start a worker for nonexistent URL.
822 StartWorker(SERVICE_WORKER_ERROR_NETWORK); 834 StartWorker(SERVICE_WORKER_ERROR_NETWORK);
823 } 835 }
824 836
825 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, ReadResourceFailure) { 837 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, ReadResourceFailure) {
826 // Create a registration. 838 // Create a registration.
827 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 839 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
828 base::Unretained(this), 840 base::Unretained(this),
829 "/service_worker/worker.js")); 841 "/service_worker/worker.js"));
830 version_->set_fetch_handler_existence( 842 version_->set_fetch_handler_existence(
831 ServiceWorkerVersion::FetchHandlerExistence::EXISTS); 843 ServiceWorkerVersion::FetchHandlerExistence::EXISTS);
832 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 844 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
833 845
834 // Add a non-existent resource to the version. 846 // Add a non-existent resource to the version.
835 std::vector<ServiceWorkerDatabase::ResourceRecord> records; 847 std::vector<ServiceWorkerDatabase::ResourceRecord> records;
(...skipping 10 matching lines...) Expand all
846 858
847 // The registration should be deleted from storage since the broken worker was 859 // The registration should be deleted from storage since the broken worker was
848 // the stored one. 860 // the stored one.
849 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread, 861 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread,
850 base::Unretained(this), registration_->id())); 862 base::Unretained(this), registration_->id()));
851 FindRegistrationForId(registration_->id(), 863 FindRegistrationForId(registration_->id(),
852 registration_->pattern().GetOrigin(), 864 registration_->pattern().GetOrigin(),
853 SERVICE_WORKER_ERROR_NOT_FOUND); 865 SERVICE_WORKER_ERROR_NOT_FOUND);
854 } 866 }
855 867
856 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 868 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
857 ReadResourceFailure_WaitingWorker) { 869 ReadResourceFailure_WaitingWorker) {
858 // Create a registration and active version. 870 // Create a registration and active version.
859 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 871 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
860 base::Unretained(this), 872 base::Unretained(this),
861 "/service_worker/worker.js")); 873 "/service_worker/worker.js"));
862 base::RunLoop activate_run_loop; 874 base::RunLoop activate_run_loop;
863 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 875 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
864 BrowserThread::PostTask( 876 BrowserThread::PostTask(
865 BrowserThread::IO, FROM_HERE, 877 BrowserThread::IO, FROM_HERE,
866 base::Bind(&self::ActivateOnIOThread, base::Unretained(this), 878 base::Bind(&self::ActivateOnIOThread, base::Unretained(this),
(...skipping 28 matching lines...) Expand all
895 907
896 // The registration should still be in storage since the waiting worker was 908 // The registration should still be in storage since the waiting worker was
897 // the stored one. 909 // the stored one.
898 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread, 910 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread,
899 base::Unretained(this), registration_->id())); 911 base::Unretained(this), registration_->id()));
900 FindRegistrationForId(registration_->id(), 912 FindRegistrationForId(registration_->id(),
901 registration_->pattern().GetOrigin(), 913 registration_->pattern().GetOrigin(),
902 SERVICE_WORKER_OK); 914 SERVICE_WORKER_OK);
903 } 915 }
904 916
905 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Install) { 917 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, Install) {
906 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); 918 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
907 } 919 }
908 920
909 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 921 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
910 InstallWithWaitUntil_Fulfilled) { 922 InstallWithWaitUntil_Fulfilled) {
911 InstallTestHelper("/service_worker/worker_install_fulfilled.js", 923 InstallTestHelper("/service_worker/worker_install_fulfilled.js",
912 SERVICE_WORKER_OK); 924 SERVICE_WORKER_OK);
913 } 925 }
914 926
915 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 927 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
916 InstallWithFetchHandler) { 928 InstallWithFetchHandler) {
917 InstallTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK); 929 InstallTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK);
918 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::EXISTS, 930 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::EXISTS,
919 version_->fetch_handler_existence()); 931 version_->fetch_handler_existence());
920 } 932 }
921 933
922 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 934 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
923 InstallWithoutFetchHandler) { 935 InstallWithoutFetchHandler) {
924 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); 936 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
925 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST, 937 EXPECT_EQ(ServiceWorkerVersion::FetchHandlerExistence::DOES_NOT_EXIST,
926 version_->fetch_handler_existence()); 938 version_->fetch_handler_existence());
927 } 939 }
928 940
929 // Check that ServiceWorker script requests set a "Service-Worker: script" 941 // Check that ServiceWorker script requests set a "Service-Worker: script"
930 // header. 942 // header.
931 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 943 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
932 ServiceWorkerScriptHeader) { 944 ServiceWorkerScriptHeader) {
933 embedded_test_server()->RegisterRequestHandler( 945 embedded_test_server()->RegisterRequestHandler(
934 base::Bind(&VerifyServiceWorkerHeaderInRequest)); 946 base::Bind(&VerifyServiceWorkerHeaderInRequest));
935 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK); 947 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK);
936 } 948 }
937 949
938 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 950 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
939 Activate_NoEventListener) { 951 Activate_NoEventListener) {
940 ActivateTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); 952 ActivateTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK);
941 ASSERT_EQ(ServiceWorkerVersion::ACTIVATING, version_->status()); 953 ASSERT_EQ(ServiceWorkerVersion::ACTIVATING, version_->status());
942 } 954 }
943 955
944 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Activate_Rejected) { 956 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, Activate_Rejected) {
945 ActivateTestHelper("/service_worker/worker_activate_rejected.js", 957 ActivateTestHelper("/service_worker/worker_activate_rejected.js",
946 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED); 958 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED);
947 } 959 }
948 960
949 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 961 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
950 InstallWithWaitUntil_Rejected) { 962 InstallWithWaitUntil_Rejected) {
951 InstallTestHelper("/service_worker/worker_install_rejected.js", 963 InstallTestHelper("/service_worker/worker_install_rejected.js",
952 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED); 964 SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED);
953 } 965 }
954 966
955 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 967 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
956 InstallWithWaitUntil_RejectConsoleMessage) { 968 InstallWithWaitUntil_RejectConsoleMessage) {
957 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 969 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
958 base::Unretained(this), 970 base::Unretained(this),
959 "/service_worker/worker_install_rejected.js")); 971 "/service_worker/worker_install_rejected.js"));
960 972
961 ConsoleListener console_listener; 973 ConsoleListener console_listener;
962 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener, 974 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener,
963 base::Unretained(version_->embedded_worker()), 975 base::Unretained(version_->embedded_worker()),
964 &console_listener)); 976 &console_listener));
965 977
(...skipping 24 matching lines...) Expand all
990 void OnThreadStarted() override { 1002 void OnThreadStarted() override {
991 DCHECK_CURRENTLY_ON(BrowserThread::IO); 1003 DCHECK_CURRENTLY_ON(BrowserThread::IO);
992 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, quit_); 1004 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, quit_);
993 } 1005 }
994 bool OnMessageReceived(const IPC::Message& message) override { return false; } 1006 bool OnMessageReceived(const IPC::Message& message) override { return false; }
995 1007
996 private: 1008 private:
997 base::Closure quit_; 1009 base::Closure quit_;
998 }; 1010 };
999 1011
1000 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, TimeoutStartingWorker) { 1012 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, TimeoutStartingWorker) {
1001 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 1013 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
1002 base::Unretained(this), 1014 base::Unretained(this),
1003 "/service_worker/while_true_worker.js")); 1015 "/service_worker/while_true_worker.js"));
1004 1016
1005 // Start a worker, waiting until the script is loaded. 1017 // Start a worker, waiting until the script is loaded.
1006 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 1018 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
1007 base::RunLoop start_run_loop; 1019 base::RunLoop start_run_loop;
1008 base::RunLoop load_run_loop; 1020 base::RunLoop load_run_loop;
1009 WaitForLoaded wait_for_load(load_run_loop.QuitClosure()); 1021 WaitForLoaded wait_for_load(load_run_loop.QuitClosure());
1010 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener, 1022 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener,
(...skipping 16 matching lines...) Expand all
1027 // before it's started execution. 1039 // before it's started execution.
1028 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); 1040 EXPECT_TRUE(version_->timeout_timer_.IsRunning());
1029 RunOnIOThreadWithDelay( 1041 RunOnIOThreadWithDelay(
1030 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), 1042 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)),
1031 base::TimeDelta::FromMilliseconds(100)); 1043 base::TimeDelta::FromMilliseconds(100));
1032 start_run_loop.Run(); 1044 start_run_loop.Run();
1033 1045
1034 EXPECT_EQ(SERVICE_WORKER_ERROR_TIMEOUT, status); 1046 EXPECT_EQ(SERVICE_WORKER_ERROR_TIMEOUT, status);
1035 } 1047 }
1036 1048
1037 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, TimeoutWorkerInEvent) { 1049 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, TimeoutWorkerInEvent) {
1038 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, 1050 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread,
1039 base::Unretained(this), 1051 base::Unretained(this),
1040 "/service_worker/while_true_in_install_worker.js")); 1052 "/service_worker/while_true_in_install_worker.js"));
1041 1053
1042 // Start a worker. 1054 // Start a worker.
1043 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; 1055 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
1044 base::RunLoop start_run_loop; 1056 base::RunLoop start_run_loop;
1045 BrowserThread::PostTask( 1057 BrowserThread::PostTask(
1046 BrowserThread::IO, FROM_HERE, 1058 BrowserThread::IO, FROM_HERE,
1047 base::Bind(&self::StartOnIOThread, base::Unretained(this), 1059 base::Bind(&self::StartOnIOThread, base::Unretained(this),
(...skipping 14 matching lines...) Expand all
1062 RunOnIOThreadWithDelay( 1074 RunOnIOThreadWithDelay(
1063 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), 1075 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)),
1064 base::TimeDelta::FromMilliseconds(100)); 1076 base::TimeDelta::FromMilliseconds(100));
1065 install_run_loop.Run(); 1077 install_run_loop.Run();
1066 1078
1067 // Terminating a worker, even one in an infinite loop, is treated as if 1079 // Terminating a worker, even one in an infinite loop, is treated as if
1068 // waitUntil was rejected in the renderer code. 1080 // waitUntil was rejected in the renderer code.
1069 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status); 1081 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status);
1070 } 1082 }
1071 1083
1072 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Response) { 1084 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchEvent_Response) {
1073 ServiceWorkerFetchEventResult result; 1085 ServiceWorkerFetchEventResult result;
1074 ServiceWorkerResponse response; 1086 ServiceWorkerResponse response;
1075 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1087 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1076 ActivateTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK); 1088 ActivateTestHelper("/service_worker/fetch_event.js", SERVICE_WORKER_OK);
1077 1089
1078 FetchOnRegisteredWorker(&result, &response, &blob_data_handle); 1090 FetchOnRegisteredWorker(&result, &response, &blob_data_handle);
1079 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); 1091 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result);
1080 EXPECT_EQ(301, response.status_code); 1092 EXPECT_EQ(301, response.status_code);
1081 EXPECT_EQ("Moved Permanently", response.status_text); 1093 EXPECT_EQ("Moved Permanently", response.status_text);
1082 ServiceWorkerHeaderMap expected_headers; 1094 ServiceWorkerHeaderMap expected_headers;
1083 expected_headers["content-language"] = "fi"; 1095 expected_headers["content-language"] = "fi";
1084 expected_headers["content-type"] = "text/html; charset=UTF-8"; 1096 expected_headers["content-type"] = "text/html; charset=UTF-8";
1085 EXPECT_EQ(expected_headers, response.headers); 1097 EXPECT_EQ(expected_headers, response.headers);
1086 1098
1087 std::string body; 1099 std::string body;
1088 RunOnIOThread( 1100 RunOnIOThread(
1089 base::Bind(&ReadResponseBody, 1101 base::Bind(&ReadResponseBody,
1090 &body, base::Owned(blob_data_handle.release()))); 1102 &body, base::Owned(blob_data_handle.release())));
1091 EXPECT_EQ("This resource is gone. Gone, gone, gone.", body); 1103 EXPECT_EQ("This resource is gone. Gone, gone, gone.", body);
1092 } 1104 }
1093 1105
1094 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 1106 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1095 FetchEvent_ResponseViaCache) { 1107 FetchEvent_ResponseViaCache) {
1096 ServiceWorkerFetchEventResult result; 1108 ServiceWorkerFetchEventResult result;
1097 ServiceWorkerResponse response1; 1109 ServiceWorkerResponse response1;
1098 ServiceWorkerResponse response2; 1110 ServiceWorkerResponse response2;
1099 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1111 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1100 const base::Time start_time(base::Time::Now()); 1112 const base::Time start_time(base::Time::Now());
1101 ActivateTestHelper("/service_worker/fetch_event_response_via_cache.js", 1113 ActivateTestHelper("/service_worker/fetch_event_response_via_cache.js",
1102 SERVICE_WORKER_OK); 1114 SERVICE_WORKER_OK);
1103 1115
1104 FetchOnRegisteredWorker(&result, &response1, &blob_data_handle); 1116 FetchOnRegisteredWorker(&result, &response1, &blob_data_handle);
1105 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); 1117 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result);
1106 EXPECT_EQ(200, response1.status_code); 1118 EXPECT_EQ(200, response1.status_code);
1107 EXPECT_EQ("OK", response1.status_text); 1119 EXPECT_EQ("OK", response1.status_text);
1108 EXPECT_TRUE(response1.response_time >= start_time); 1120 EXPECT_TRUE(response1.response_time >= start_time);
1109 EXPECT_FALSE(response1.is_in_cache_storage); 1121 EXPECT_FALSE(response1.is_in_cache_storage);
1110 EXPECT_EQ(std::string(), response2.cache_storage_cache_name); 1122 EXPECT_EQ(std::string(), response2.cache_storage_cache_name);
1111 1123
1112 FetchOnRegisteredWorker(&result, &response2, &blob_data_handle); 1124 FetchOnRegisteredWorker(&result, &response2, &blob_data_handle);
1113 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); 1125 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result);
1114 EXPECT_EQ(200, response2.status_code); 1126 EXPECT_EQ(200, response2.status_code);
1115 EXPECT_EQ("OK", response2.status_text); 1127 EXPECT_EQ("OK", response2.status_text);
1116 EXPECT_EQ(response1.response_time, response2.response_time); 1128 EXPECT_EQ(response1.response_time, response2.response_time);
1117 EXPECT_TRUE(response2.is_in_cache_storage); 1129 EXPECT_TRUE(response2.is_in_cache_storage);
1118 EXPECT_EQ("cache_name", response2.cache_storage_cache_name); 1130 EXPECT_EQ("cache_name", response2.cache_storage_cache_name);
1119 } 1131 }
1120 1132
1121 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 1133 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1122 FetchEvent_respondWithRejection) { 1134 FetchEvent_respondWithRejection) {
1123 ServiceWorkerFetchEventResult result; 1135 ServiceWorkerFetchEventResult result;
1124 ServiceWorkerResponse response; 1136 ServiceWorkerResponse response;
1125 std::unique_ptr<storage::BlobDataHandle> blob_data_handle; 1137 std::unique_ptr<storage::BlobDataHandle> blob_data_handle;
1126 ActivateTestHelper("/service_worker/fetch_event_rejected.js", 1138 ActivateTestHelper("/service_worker/fetch_event_rejected.js",
1127 SERVICE_WORKER_OK); 1139 SERVICE_WORKER_OK);
1128 1140
1129 ConsoleListener console_listener; 1141 ConsoleListener console_listener;
1130 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener, 1142 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::AddListener,
1131 base::Unretained(version_->embedded_worker()), 1143 base::Unretained(version_->embedded_worker()),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 1178
1167 void OverrideWebkitPrefs(RenderViewHost* render_view_host, 1179 void OverrideWebkitPrefs(RenderViewHost* render_view_host,
1168 WebPreferences* prefs) override { 1180 WebPreferences* prefs) override {
1169 prefs->data_saver_enabled = data_saver_enabled_; 1181 prefs->data_saver_enabled = data_saver_enabled_;
1170 } 1182 }
1171 1183
1172 private: 1184 private:
1173 bool data_saver_enabled_; 1185 bool data_saver_enabled_;
1174 }; 1186 };
1175 1187
1176 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchWithSaveData) { 1188 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchWithSaveData) {
1177 embedded_test_server()->RegisterRequestHandler( 1189 embedded_test_server()->RegisterRequestHandler(
1178 base::Bind(&VerifySaveDataHeaderInRequest)); 1190 base::Bind(&VerifySaveDataHeaderInRequest));
1179 MockContentBrowserClient content_browser_client; 1191 MockContentBrowserClient content_browser_client;
1180 content_browser_client.set_data_saver_enabled(true); 1192 content_browser_client.set_data_saver_enabled(true);
1181 ContentBrowserClient* old_client = 1193 ContentBrowserClient* old_client =
1182 SetBrowserClientForTesting(&content_browser_client); 1194 SetBrowserClientForTesting(&content_browser_client);
1183 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK); 1195 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK);
1184 SetBrowserClientForTesting(old_client); 1196 SetBrowserClientForTesting(old_client);
1185 } 1197 }
1186 1198
1187 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, 1199 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest,
1188 RequestWorkerScriptWithSaveData) { 1200 RequestWorkerScriptWithSaveData) {
1189 embedded_test_server()->RegisterRequestHandler( 1201 embedded_test_server()->RegisterRequestHandler(
1190 base::Bind(&VerifySaveDataHeaderInRequest)); 1202 base::Bind(&VerifySaveDataHeaderInRequest));
1191 MockContentBrowserClient content_browser_client; 1203 MockContentBrowserClient content_browser_client;
1192 content_browser_client.set_data_saver_enabled(true); 1204 content_browser_client.set_data_saver_enabled(true);
1193 ContentBrowserClient* old_client = 1205 ContentBrowserClient* old_client =
1194 SetBrowserClientForTesting(&content_browser_client); 1206 SetBrowserClientForTesting(&content_browser_client);
1195 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK); 1207 InstallTestHelper("/service_worker/generated_sw.js", SERVICE_WORKER_OK);
1196 SetBrowserClientForTesting(old_client); 1208 SetBrowserClientForTesting(old_client);
1197 } 1209 }
1198 1210
1199 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchWithoutSaveData) { 1211 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserTest, FetchWithoutSaveData) {
1200 embedded_test_server()->RegisterRequestHandler( 1212 embedded_test_server()->RegisterRequestHandler(
1201 base::Bind(&VerifySaveDataHeaderNotInRequest)); 1213 base::Bind(&VerifySaveDataHeaderNotInRequest));
1202 MockContentBrowserClient content_browser_client; 1214 MockContentBrowserClient content_browser_client;
1203 ContentBrowserClient* old_client = 1215 ContentBrowserClient* old_client =
1204 SetBrowserClientForTesting(&content_browser_client); 1216 SetBrowserClientForTesting(&content_browser_client);
1205 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK); 1217 InstallTestHelper("/service_worker/fetch_in_install.js", SERVICE_WORKER_OK);
1206 SetBrowserClientForTesting(old_client); 1218 SetBrowserClientForTesting(old_client);
1207 } 1219 }
1208 1220
1209 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, FetchPageWithSaveData) { 1221 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, FetchPageWithSaveData) {
1210 const char kPageUrl[] = "/service_worker/handle_fetch.html"; 1222 const char kPageUrl[] = "/service_worker/handle_fetch.html";
1211 const char kWorkerUrl[] = "/service_worker/add_save_data_to_title.js"; 1223 const char kWorkerUrl[] = "/service_worker/add_save_data_to_title.js";
1212 MockContentBrowserClient content_browser_client; 1224 MockContentBrowserClient content_browser_client;
1213 content_browser_client.set_data_saver_enabled(true); 1225 content_browser_client.set_data_saver_enabled(true);
1214 ContentBrowserClient* old_client = 1226 ContentBrowserClient* old_client =
1215 SetBrowserClientForTesting(&content_browser_client); 1227 SetBrowserClientForTesting(&content_browser_client);
1216 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged(); 1228 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged();
1217 scoped_refptr<WorkerActivatedObserver> observer = 1229 scoped_refptr<WorkerActivatedObserver> observer =
1218 new WorkerActivatedObserver(wrapper()); 1230 new WorkerActivatedObserver(wrapper());
1219 observer->Init(); 1231 observer->Init();
(...skipping 14 matching lines...) Expand all
1234 base::RunLoop run_loop; 1246 base::RunLoop run_loop;
1235 public_context()->UnregisterServiceWorker( 1247 public_context()->UnregisterServiceWorker(
1236 embedded_test_server()->GetURL(kPageUrl), 1248 embedded_test_server()->GetURL(kPageUrl),
1237 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1249 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1238 run_loop.Run(); 1250 run_loop.Run();
1239 } 1251 }
1240 1252
1241 // Tests that when data saver is enabled and a cross-origin fetch by a webpage 1253 // Tests that when data saver is enabled and a cross-origin fetch by a webpage
1242 // is intercepted by a serviceworker, and the serviceworker does a fetch, the 1254 // is intercepted by a serviceworker, and the serviceworker does a fetch, the
1243 // preflight request does not have save-data in Access-Control-Request-Headers. 1255 // preflight request does not have save-data in Access-Control-Request-Headers.
1244 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, CrossOriginFetchWithSaveData) { 1256 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, CrossOriginFetchWithSaveData) {
1245 const char kPageUrl[] = "/service_worker/fetch_cross_origin.html"; 1257 const char kPageUrl[] = "/service_worker/fetch_cross_origin.html";
1246 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js"; 1258 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js";
1247 net::EmbeddedTestServer cross_origin_server; 1259 net::EmbeddedTestServer cross_origin_server;
1248 cross_origin_server.ServeFilesFromSourceDirectory("content/test/data"); 1260 cross_origin_server.ServeFilesFromSourceDirectory("content/test/data");
1249 cross_origin_server.RegisterRequestHandler( 1261 cross_origin_server.RegisterRequestHandler(
1250 base::Bind(&VerifySaveDataNotInAccessControlRequestHeader)); 1262 base::Bind(&VerifySaveDataNotInAccessControlRequestHeader));
1251 ASSERT_TRUE(cross_origin_server.Start()); 1263 ASSERT_TRUE(cross_origin_server.Start());
1252 1264
1253 MockContentBrowserClient content_browser_client; 1265 MockContentBrowserClient content_browser_client;
1254 content_browser_client.set_data_saver_enabled(true); 1266 content_browser_client.set_data_saver_enabled(true);
(...skipping 22 matching lines...) Expand all
1277 SetBrowserClientForTesting(old_client); 1289 SetBrowserClientForTesting(old_client);
1278 shell()->Close(); 1290 shell()->Close();
1279 1291
1280 base::RunLoop run_loop; 1292 base::RunLoop run_loop;
1281 public_context()->UnregisterServiceWorker( 1293 public_context()->UnregisterServiceWorker(
1282 embedded_test_server()->GetURL(kPageUrl), 1294 embedded_test_server()->GetURL(kPageUrl),
1283 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1295 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1284 run_loop.Run(); 1296 run_loop.Run();
1285 } 1297 }
1286 1298
1287 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, 1299 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest,
1288 FetchPageWithSaveDataPassThroughOnFetch) { 1300 FetchPageWithSaveDataPassThroughOnFetch) {
1289 const char kPageUrl[] = "/service_worker/pass_through_fetch.html"; 1301 const char kPageUrl[] = "/service_worker/pass_through_fetch.html";
1290 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js"; 1302 const char kWorkerUrl[] = "/service_worker/fetch_event_pass_through.js";
1291 MockContentBrowserClient content_browser_client; 1303 MockContentBrowserClient content_browser_client;
1292 content_browser_client.set_data_saver_enabled(true); 1304 content_browser_client.set_data_saver_enabled(true);
1293 ContentBrowserClient* old_client = 1305 ContentBrowserClient* old_client =
1294 SetBrowserClientForTesting(&content_browser_client); 1306 SetBrowserClientForTesting(&content_browser_client);
1295 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged(); 1307 shell()->web_contents()->GetRenderViewHost()->OnWebkitPreferencesChanged();
1296 scoped_refptr<WorkerActivatedObserver> observer = 1308 scoped_refptr<WorkerActivatedObserver> observer =
1297 new WorkerActivatedObserver(wrapper()); 1309 new WorkerActivatedObserver(wrapper());
(...skipping 13 matching lines...) Expand all
1311 SetBrowserClientForTesting(old_client); 1323 SetBrowserClientForTesting(old_client);
1312 shell()->Close(); 1324 shell()->Close();
1313 1325
1314 base::RunLoop run_loop; 1326 base::RunLoop run_loop;
1315 public_context()->UnregisterServiceWorker( 1327 public_context()->UnregisterServiceWorker(
1316 embedded_test_server()->GetURL(kPageUrl), 1328 embedded_test_server()->GetURL(kPageUrl),
1317 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1329 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1318 run_loop.Run(); 1330 run_loop.Run();
1319 } 1331 }
1320 1332
1321 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, Reload) { 1333 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, Reload) {
1322 const char kPageUrl[] = "/service_worker/reload.html"; 1334 const char kPageUrl[] = "/service_worker/reload.html";
1323 const char kWorkerUrl[] = "/service_worker/fetch_event_reload.js"; 1335 const char kWorkerUrl[] = "/service_worker/fetch_event_reload.js";
1324 scoped_refptr<WorkerActivatedObserver> observer = 1336 scoped_refptr<WorkerActivatedObserver> observer =
1325 new WorkerActivatedObserver(wrapper()); 1337 new WorkerActivatedObserver(wrapper());
1326 observer->Init(); 1338 observer->Init();
1327 public_context()->RegisterServiceWorker( 1339 public_context()->RegisterServiceWorker(
1328 embedded_test_server()->GetURL(kPageUrl), 1340 embedded_test_server()->GetURL(kPageUrl),
1329 embedded_test_server()->GetURL(kWorkerUrl), 1341 embedded_test_server()->GetURL(kWorkerUrl),
1330 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); 1342 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing)));
1331 observer->Wait(); 1343 observer->Wait();
(...skipping 16 matching lines...) Expand all
1348 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1360 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1349 run_loop.Run(); 1361 run_loop.Run();
1350 } 1362 }
1351 1363
1352 // Flaky on Win/Mac: http://crbug.com/533631 1364 // Flaky on Win/Mac: http://crbug.com/533631
1353 #if defined(OS_WIN) || defined(OS_MACOSX) 1365 #if defined(OS_WIN) || defined(OS_MACOSX)
1354 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure DISABLED_ResponseFr omHTTPSServiceWorkerIsMarkedAsSecure 1366 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure DISABLED_ResponseFr omHTTPSServiceWorkerIsMarkedAsSecure
1355 #else 1367 #else
1356 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure ResponseFromHTTPSSe rviceWorkerIsMarkedAsSecure 1368 #define MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure ResponseFromHTTPSSe rviceWorkerIsMarkedAsSecure
1357 #endif 1369 #endif
1358 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, 1370 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest,
1359 MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure) { 1371 MAYBE_ResponseFromHTTPSServiceWorkerIsMarkedAsSecure) {
1360 const char kPageUrl[] = "/service_worker/fetch_event_blob.html"; 1372 const char kPageUrl[] = "/service_worker/fetch_event_blob.html";
1361 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 1373 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
1362 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 1374 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
1363 https_server.ServeFilesFromSourceDirectory("content/test/data"); 1375 https_server.ServeFilesFromSourceDirectory("content/test/data");
1364 ASSERT_TRUE(https_server.Start()); 1376 ASSERT_TRUE(https_server.Start());
1365 1377
1366 scoped_refptr<WorkerActivatedObserver> observer = 1378 scoped_refptr<WorkerActivatedObserver> observer =
1367 new WorkerActivatedObserver(wrapper()); 1379 new WorkerActivatedObserver(wrapper());
1368 observer->Init(); 1380 observer->Init();
(...skipping 15 matching lines...) Expand all
1384 1396
1385 shell()->Close(); 1397 shell()->Close();
1386 1398
1387 base::RunLoop run_loop; 1399 base::RunLoop run_loop;
1388 public_context()->UnregisterServiceWorker( 1400 public_context()->UnregisterServiceWorker(
1389 https_server.GetURL(kPageUrl), 1401 https_server.GetURL(kPageUrl),
1390 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1402 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1391 run_loop.Run(); 1403 run_loop.Run();
1392 } 1404 }
1393 1405
1394 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, 1406 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest,
1395 ResponseFromHTTPServiceWorkerIsNotMarkedAsSecure) { 1407 ResponseFromHTTPServiceWorkerIsNotMarkedAsSecure) {
1396 const char kPageUrl[] = "/service_worker/fetch_event_blob.html"; 1408 const char kPageUrl[] = "/service_worker/fetch_event_blob.html";
1397 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 1409 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
1398 scoped_refptr<WorkerActivatedObserver> observer = 1410 scoped_refptr<WorkerActivatedObserver> observer =
1399 new WorkerActivatedObserver(wrapper()); 1411 new WorkerActivatedObserver(wrapper());
1400 observer->Init(); 1412 observer->Init();
1401 public_context()->RegisterServiceWorker( 1413 public_context()->RegisterServiceWorker(
1402 embedded_test_server()->GetURL(kPageUrl), 1414 embedded_test_server()->GetURL(kPageUrl),
1403 embedded_test_server()->GetURL(kWorkerUrl), 1415 embedded_test_server()->GetURL(kWorkerUrl),
1404 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing))); 1416 base::Bind(&ExpectResultAndRun, true, base::Bind(&base::DoNothing)));
(...skipping 11 matching lines...) Expand all
1416 1428
1417 shell()->Close(); 1429 shell()->Close();
1418 1430
1419 base::RunLoop run_loop; 1431 base::RunLoop run_loop;
1420 public_context()->UnregisterServiceWorker( 1432 public_context()->UnregisterServiceWorker(
1421 embedded_test_server()->GetURL(kPageUrl), 1433 embedded_test_server()->GetURL(kPageUrl),
1422 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure())); 1434 base::Bind(&ExpectResultAndRun, true, run_loop.QuitClosure()));
1423 run_loop.Run(); 1435 run_loop.Run();
1424 } 1436 }
1425 1437
1426 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, ImportsBustMemcache) { 1438 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, ImportsBustMemcache) {
1427 const char kScopeUrl[] = "/service_worker/imports_bust_memcache_scope/"; 1439 const char kScopeUrl[] = "/service_worker/imports_bust_memcache_scope/";
1428 const char kPageUrl[] = "/service_worker/imports_bust_memcache.html"; 1440 const char kPageUrl[] = "/service_worker/imports_bust_memcache.html";
1429 const char kScriptUrl[] = "/service_worker/worker_with_one_import.js"; 1441 const char kScriptUrl[] = "/service_worker/worker_with_one_import.js";
1430 const char kImportUrl[] = "/service_worker/long_lived_import.js"; 1442 const char kImportUrl[] = "/service_worker/long_lived_import.js";
1431 const base::string16 kOKTitle(base::ASCIIToUTF16("OK")); 1443 const base::string16 kOKTitle(base::ASCIIToUTF16("OK"));
1432 const base::string16 kFailTitle(base::ASCIIToUTF16("FAIL")); 1444 const base::string16 kFailTitle(base::ASCIIToUTF16("FAIL"));
1433 1445
1434 RunOnIOThread( 1446 RunOnIOThread(
1435 base::Bind(&CreateLongLivedResourceInterceptors, 1447 base::Bind(&CreateLongLivedResourceInterceptors,
1436 embedded_test_server()->GetURL(kScriptUrl), 1448 embedded_test_server()->GetURL(kScriptUrl),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1481 static int CountRenderProcessHosts() { 1493 static int CountRenderProcessHosts() {
1482 int result = 0; 1494 int result = 0;
1483 for (RenderProcessHost::iterator iter(RenderProcessHost::AllHostsIterator()); 1495 for (RenderProcessHost::iterator iter(RenderProcessHost::AllHostsIterator());
1484 !iter.IsAtEnd(); 1496 !iter.IsAtEnd();
1485 iter.Advance()) { 1497 iter.Advance()) {
1486 result++; 1498 result++;
1487 } 1499 }
1488 return result; 1500 return result;
1489 } 1501 }
1490 1502
1491 IN_PROC_BROWSER_TEST_F(ServiceWorkerBlackBoxBrowserTest, Registration) { 1503 IN_PROC_BROWSER_TEST_P(ServiceWorkerBlackBoxBrowserTest, Registration) {
1492 // Close the only window to be sure we're not re-using its RenderProcessHost. 1504 // Close the only window to be sure we're not re-using its RenderProcessHost.
1493 shell()->Close(); 1505 shell()->Close();
1494 EXPECT_EQ(0, CountRenderProcessHosts()); 1506 EXPECT_EQ(0, CountRenderProcessHosts());
1495 1507
1496 const char kWorkerUrl[] = "/service_worker/fetch_event.js"; 1508 const char kWorkerUrl[] = "/service_worker/fetch_event.js";
1497 const char kScope[] = "/service_worker/"; 1509 const char kScope[] = "/service_worker/";
1498 1510
1499 // Unregistering nothing should return false. 1511 // Unregistering nothing should return false.
1500 { 1512 {
1501 base::RunLoop run_loop; 1513 base::RunLoop run_loop;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1563 embedded_test_server()->GetURL("/service_worker/empty.html"), &status)); 1575 embedded_test_server()->GetURL("/service_worker/empty.html"), &status));
1564 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, status); 1576 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, status);
1565 } 1577 }
1566 } 1578 }
1567 1579
1568 #if defined(ANDROID) 1580 #if defined(ANDROID)
1569 #define MAYBE_CrossSiteTransfer DISABLED_CrossSiteTransfer 1581 #define MAYBE_CrossSiteTransfer DISABLED_CrossSiteTransfer
1570 #else 1582 #else
1571 #define MAYBE_CrossSiteTransfer CrossSiteTransfer 1583 #define MAYBE_CrossSiteTransfer CrossSiteTransfer
1572 #endif 1584 #endif
1573 IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, MAYBE_CrossSiteTransfer) { 1585 IN_PROC_BROWSER_TEST_P(ServiceWorkerBrowserTest, MAYBE_CrossSiteTransfer) {
1574 // The first page registers a service worker. 1586 // The first page registers a service worker.
1575 const char kRegisterPageUrl[] = "/service_worker/cross_site_xfer.html"; 1587 const char kRegisterPageUrl[] = "/service_worker/cross_site_xfer.html";
1576 const base::string16 kOKTitle1(base::ASCIIToUTF16("OK_1")); 1588 const base::string16 kOKTitle1(base::ASCIIToUTF16("OK_1"));
1577 const base::string16 kFailTitle1(base::ASCIIToUTF16("FAIL_1")); 1589 const base::string16 kFailTitle1(base::ASCIIToUTF16("FAIL_1"));
1578 content::TitleWatcher title_watcher1(shell()->web_contents(), kOKTitle1); 1590 content::TitleWatcher title_watcher1(shell()->web_contents(), kOKTitle1);
1579 title_watcher1.AlsoWaitForTitle(kFailTitle1); 1591 title_watcher1.AlsoWaitForTitle(kFailTitle1);
1580 1592
1581 NavigateToURL(shell(), embedded_test_server()->GetURL(kRegisterPageUrl)); 1593 NavigateToURL(shell(), embedded_test_server()->GetURL(kRegisterPageUrl));
1582 ASSERT_EQ(kOKTitle1, title_watcher1.WaitAndGetTitle()); 1594 ASSERT_EQ(kOKTitle1, title_watcher1.WaitAndGetTitle());
1583 1595
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1617 protected: 1629 protected:
1618 // ServiceWorkerVersion::Listener overrides 1630 // ServiceWorkerVersion::Listener overrides
1619 void OnCachedMetadataUpdated(ServiceWorkerVersion* version) override { 1631 void OnCachedMetadataUpdated(ServiceWorkerVersion* version) override {
1620 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 1632 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
1621 cache_updated_closure_); 1633 cache_updated_closure_);
1622 } 1634 }
1623 1635
1624 base::Closure cache_updated_closure_; 1636 base::Closure cache_updated_closure_;
1625 }; 1637 };
1626 1638
1627 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserV8CacheTest, Restart) { 1639 IN_PROC_BROWSER_TEST_P(ServiceWorkerVersionBrowserV8CacheTest, Restart) {
1628 RunOnIOThread(base::Bind(&self::SetUpRegistrationAndListenerOnIOThread, 1640 RunOnIOThread(base::Bind(&self::SetUpRegistrationAndListenerOnIOThread,
1629 base::Unretained(this), 1641 base::Unretained(this),
1630 "/service_worker/worker.js")); 1642 "/service_worker/worker.js"));
1631 1643
1632 base::RunLoop cached_metadata_run_loop; 1644 base::RunLoop cached_metadata_run_loop;
1633 cache_updated_closure_ = cached_metadata_run_loop.QuitClosure(); 1645 cache_updated_closure_ = cached_metadata_run_loop.QuitClosure();
1634 1646
1635 // Start a worker. 1647 // Start a worker.
1636 StartWorker(SERVICE_WORKER_OK); 1648 StartWorker(SERVICE_WORKER_OK);
1637 1649
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
1884 const std::string ServiceWorkerV8CacheStrategiesTest::kPageUrl = 1896 const std::string ServiceWorkerV8CacheStrategiesTest::kPageUrl =
1885 "/service_worker/v8_cache_test.html"; 1897 "/service_worker/v8_cache_test.html";
1886 const std::string ServiceWorkerV8CacheStrategiesTest::kWorkerUrl = 1898 const std::string ServiceWorkerV8CacheStrategiesTest::kWorkerUrl =
1887 "/service_worker/fetch_event_response_via_cache.js"; 1899 "/service_worker/fetch_event_response_via_cache.js";
1888 const std::string ServiceWorkerV8CacheStrategiesTest::kScriptUrl = 1900 const std::string ServiceWorkerV8CacheStrategiesTest::kScriptUrl =
1889 "/service_worker/v8_cache_test.js"; 1901 "/service_worker/v8_cache_test.js";
1890 // V8ScriptRunner::setCacheTimeStamp() stores 12 byte data (tag + timestamp). 1902 // V8ScriptRunner::setCacheTimeStamp() stores 12 byte data (tag + timestamp).
1891 const int ServiceWorkerV8CacheStrategiesTest::kV8CacheTimeStampDataSize = 1903 const int ServiceWorkerV8CacheStrategiesTest::kV8CacheTimeStampDataSize =
1892 sizeof(unsigned) + sizeof(double); 1904 sizeof(unsigned) + sizeof(double);
1893 1905
1894 IN_PROC_BROWSER_TEST_F(ServiceWorkerV8CacheStrategiesTest, 1906 IN_PROC_BROWSER_TEST_P(ServiceWorkerV8CacheStrategiesTest,
1895 V8CacheOnCacheStorage) { 1907 V8CacheOnCacheStorage) {
1896 // The strategy is "aggressive" on default. 1908 // The strategy is "aggressive" on default.
1897 CheckStrategyIsAggressive(); 1909 CheckStrategyIsAggressive();
1898 } 1910 }
1899 1911
1900 class ServiceWorkerV8CacheStrategiesNoneTest 1912 class ServiceWorkerV8CacheStrategiesNoneTest
1901 : public ServiceWorkerV8CacheStrategiesTest { 1913 : public ServiceWorkerV8CacheStrategiesTest {
1902 public: 1914 public:
1903 ServiceWorkerV8CacheStrategiesNoneTest() {} 1915 ServiceWorkerV8CacheStrategiesNoneTest() {}
1904 ~ServiceWorkerV8CacheStrategiesNoneTest() override {} 1916 ~ServiceWorkerV8CacheStrategiesNoneTest() override {}
1905 void SetUpCommandLine(base::CommandLine* command_line) override { 1917 void SetUpCommandLine(base::CommandLine* command_line) override {
1906 command_line->AppendSwitchASCII(switches::kV8CacheStrategiesForCacheStorage, 1918 command_line->AppendSwitchASCII(switches::kV8CacheStrategiesForCacheStorage,
1907 "none"); 1919 "none");
1908 } 1920 }
1909 1921
1910 private: 1922 private:
1911 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerV8CacheStrategiesNoneTest); 1923 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerV8CacheStrategiesNoneTest);
1912 }; 1924 };
1913 1925
1914 IN_PROC_BROWSER_TEST_F(ServiceWorkerV8CacheStrategiesNoneTest, 1926 IN_PROC_BROWSER_TEST_P(ServiceWorkerV8CacheStrategiesNoneTest,
1915 V8CacheOnCacheStorage) { 1927 V8CacheOnCacheStorage) {
1916 CheckStrategyIsNone(); 1928 CheckStrategyIsNone();
1917 } 1929 }
1918 1930
1919 class ServiceWorkerV8CacheStrategiesNormalTest 1931 class ServiceWorkerV8CacheStrategiesNormalTest
1920 : public ServiceWorkerV8CacheStrategiesTest { 1932 : public ServiceWorkerV8CacheStrategiesTest {
1921 public: 1933 public:
1922 ServiceWorkerV8CacheStrategiesNormalTest() {} 1934 ServiceWorkerV8CacheStrategiesNormalTest() {}
1923 ~ServiceWorkerV8CacheStrategiesNormalTest() override {} 1935 ~ServiceWorkerV8CacheStrategiesNormalTest() override {}
1924 void SetUpCommandLine(base::CommandLine* command_line) override { 1936 void SetUpCommandLine(base::CommandLine* command_line) override {
1925 command_line->AppendSwitchASCII(switches::kV8CacheStrategiesForCacheStorage, 1937 command_line->AppendSwitchASCII(switches::kV8CacheStrategiesForCacheStorage,
1926 "normal"); 1938 "normal");
1927 } 1939 }
1928 1940
1929 private: 1941 private:
1930 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerV8CacheStrategiesNormalTest); 1942 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerV8CacheStrategiesNormalTest);
1931 }; 1943 };
1932 1944
1933 IN_PROC_BROWSER_TEST_F(ServiceWorkerV8CacheStrategiesNormalTest, 1945 IN_PROC_BROWSER_TEST_P(ServiceWorkerV8CacheStrategiesNormalTest,
1934 V8CacheOnCacheStorage) { 1946 V8CacheOnCacheStorage) {
1935 CheckStrategyIsNormal(); 1947 CheckStrategyIsNormal();
1936 } 1948 }
1937 1949
1938 class ServiceWorkerV8CacheStrategiesAggressiveTest 1950 class ServiceWorkerV8CacheStrategiesAggressiveTest
1939 : public ServiceWorkerV8CacheStrategiesTest { 1951 : public ServiceWorkerV8CacheStrategiesTest {
1940 public: 1952 public:
1941 ServiceWorkerV8CacheStrategiesAggressiveTest() {} 1953 ServiceWorkerV8CacheStrategiesAggressiveTest() {}
1942 ~ServiceWorkerV8CacheStrategiesAggressiveTest() override {} 1954 ~ServiceWorkerV8CacheStrategiesAggressiveTest() override {}
1943 void SetUpCommandLine(base::CommandLine* command_line) override { 1955 void SetUpCommandLine(base::CommandLine* command_line) override {
1944 command_line->AppendSwitchASCII(switches::kV8CacheStrategiesForCacheStorage, 1956 command_line->AppendSwitchASCII(switches::kV8CacheStrategiesForCacheStorage,
1945 "aggressive"); 1957 "aggressive");
1946 } 1958 }
1947 1959
1948 private: 1960 private:
1949 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerV8CacheStrategiesAggressiveTest); 1961 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerV8CacheStrategiesAggressiveTest);
1950 }; 1962 };
1951 1963
1952 IN_PROC_BROWSER_TEST_F(ServiceWorkerV8CacheStrategiesAggressiveTest, 1964 IN_PROC_BROWSER_TEST_P(ServiceWorkerV8CacheStrategiesAggressiveTest,
1953 V8CacheOnCacheStorage) { 1965 V8CacheOnCacheStorage) {
1954 CheckStrategyIsAggressive(); 1966 CheckStrategyIsAggressive();
1955 } 1967 }
1956 1968
1957 // ServiceWorkerDisableWebSecurityTests check the behavior when the web security 1969 // ServiceWorkerDisableWebSecurityTests check the behavior when the web security
1958 // is disabled. If '--disable-web-security' flag is set, we don't check the 1970 // is disabled. If '--disable-web-security' flag is set, we don't check the
1959 // origin equality in Blink. So the Service Worker related APIs should succeed 1971 // origin equality in Blink. So the Service Worker related APIs should succeed
1960 // even if it is thouching other origin Service Workers. 1972 // even if it is thouching other origin Service Workers.
1961 class ServiceWorkerDisableWebSecurityTest : public ServiceWorkerBrowserTest { 1973 class ServiceWorkerDisableWebSecurityTest : public ServiceWorkerBrowserTest {
1962 public: 1974 public:
(...skipping 30 matching lines...) Expand all
1993 test_page + "?" + 2005 test_page + "?" +
1994 cross_origin_server_.GetURL(cross_origin_url).spec())); 2006 cross_origin_server_.GetURL(cross_origin_url).spec()));
1995 EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); 2007 EXPECT_EQ(title, title_watcher.WaitAndGetTitle());
1996 } 2008 }
1997 2009
1998 private: 2010 private:
1999 net::EmbeddedTestServer cross_origin_server_; 2011 net::EmbeddedTestServer cross_origin_server_;
2000 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDisableWebSecurityTest); 2012 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDisableWebSecurityTest);
2001 }; 2013 };
2002 2014
2003 IN_PROC_BROWSER_TEST_F(ServiceWorkerDisableWebSecurityTest, 2015 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest,
2004 GetRegistrationNoCrash) { 2016 GetRegistrationNoCrash) {
2005 const char kPageUrl[] = 2017 const char kPageUrl[] =
2006 "/service_worker/disable_web_security_get_registration.html"; 2018 "/service_worker/disable_web_security_get_registration.html";
2007 const char kScopeUrl[] = "/service_worker/"; 2019 const char kScopeUrl[] = "/service_worker/";
2008 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2020 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2009 } 2021 }
2010 2022
2011 IN_PROC_BROWSER_TEST_F(ServiceWorkerDisableWebSecurityTest, RegisterNoCrash) { 2023 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, RegisterNoCrash) {
2012 const char kPageUrl[] = "/service_worker/disable_web_security_register.html"; 2024 const char kPageUrl[] = "/service_worker/disable_web_security_register.html";
2013 const char kScopeUrl[] = "/service_worker/"; 2025 const char kScopeUrl[] = "/service_worker/";
2014 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2026 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2015 } 2027 }
2016 2028
2017 IN_PROC_BROWSER_TEST_F(ServiceWorkerDisableWebSecurityTest, UnregisterNoCrash) { 2029 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, UnregisterNoCrash) {
2018 const char kPageUrl[] = 2030 const char kPageUrl[] =
2019 "/service_worker/disable_web_security_unregister.html"; 2031 "/service_worker/disable_web_security_unregister.html";
2020 const char kScopeUrl[] = "/service_worker/scope/"; 2032 const char kScopeUrl[] = "/service_worker/scope/";
2021 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 2033 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
2022 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl); 2034 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl);
2023 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2035 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2024 } 2036 }
2025 2037
2026 IN_PROC_BROWSER_TEST_F(ServiceWorkerDisableWebSecurityTest, UpdateNoCrash) { 2038 IN_PROC_BROWSER_TEST_P(ServiceWorkerDisableWebSecurityTest, UpdateNoCrash) {
2027 const char kPageUrl[] = "/service_worker/disable_web_security_update.html"; 2039 const char kPageUrl[] = "/service_worker/disable_web_security_update.html";
2028 const char kScopeUrl[] = "/service_worker/scope/"; 2040 const char kScopeUrl[] = "/service_worker/scope/";
2029 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js"; 2041 const char kWorkerUrl[] = "/service_worker/fetch_event_blob.js";
2030 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl); 2042 RegisterServiceWorkerOnCrossOriginServer(kScopeUrl, kWorkerUrl);
2031 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl); 2043 RunTestWithCrossOriginURL(kPageUrl, kScopeUrl);
2032 } 2044 }
2033 2045
2046 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2047 ServiceWorkerBrowserTest,
2048 ::testing::Values(true, false));
2049 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2050 ServiceWorkerVersionBrowserV8CacheTest,
2051 ::testing::Values(true, false));
2052 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2053 ServiceWorkerVersionBrowserTest,
2054 ::testing::Values(true, false));
2055 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2056 ServiceWorkerBlackBoxBrowserTest,
2057 ::testing::Values(true, false));
2058 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2059 ServiceWorkerV8CacheStrategiesTest,
2060 ::testing::Values(true, false));
2061 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2062 ServiceWorkerV8CacheStrategiesNoneTest,
2063 ::testing::Values(true, false));
2064 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2065 ServiceWorkerV8CacheStrategiesNormalTest,
2066 ::testing::Values(true, false));
2067 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2068 ServiceWorkerV8CacheStrategiesAggressiveTest,
2069 ::testing::Values(true, false));
2070 INSTANTIATE_TEST_CASE_P(ServiceWorkerBrowserTest,
2071 ServiceWorkerDisableWebSecurityTest,
2072 ::testing::Values(true, false));
2073
2034 } // namespace content 2074 } // 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