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