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 "content/browser/service_worker/service_worker_version.h" | 5 #include "content/browser/service_worker/service_worker_version.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <tuple> | 8 #include <tuple> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, | 648 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, |
649 CreateReceiverOnCurrentThread(&status)); | 649 CreateReceiverOnCurrentThread(&status)); |
650 base::RunLoop().RunUntilIdle(); | 650 base::RunLoop().RunUntilIdle(); |
651 EXPECT_EQ(SERVICE_WORKER_OK, status); | 651 EXPECT_EQ(SERVICE_WORKER_OK, status); |
652 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); | 652 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); |
653 EXPECT_LT(idle_time, version_->idle_time_); | 653 EXPECT_LT(idle_time, version_->idle_time_); |
654 | 654 |
655 // Adding a controllee resets the idle time. | 655 // Adding a controllee resets the idle time. |
656 version_->idle_time_ -= kOneSecond; | 656 version_->idle_time_ -= kOneSecond; |
657 idle_time = version_->idle_time_; | 657 idle_time = version_->idle_time_; |
658 std::unique_ptr<ServiceWorkerProviderHost> host(new ServiceWorkerProviderHost( | 658 std::unique_ptr<ServiceWorkerProviderHost> host = CreateProviderHostForWindow( |
659 33 /* dummy render process id */, MSG_ROUTING_NONE /* render_frame_id */, | 659 33 /* dummy render process id */, 1 /* dummy provider_id */, |
660 1 /* dummy provider_id */, SERVICE_WORKER_PROVIDER_FOR_WINDOW, | 660 true /* is_parent_frame_secure */, helper_->context()->AsWeakPtr()); |
661 ServiceWorkerProviderHost::FrameSecurityLevel::SECURE, | |
662 helper_->context()->AsWeakPtr(), NULL)); | |
663 version_->AddControllee(host.get()); | 661 version_->AddControllee(host.get()); |
664 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); | 662 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); |
665 EXPECT_LT(idle_time, version_->idle_time_); | 663 EXPECT_LT(idle_time, version_->idle_time_); |
666 | 664 |
667 // Completing an event resets the idle time. | 665 // Completing an event resets the idle time. |
668 version_->idle_time_ -= kOneSecond; | 666 version_->idle_time_ -= kOneSecond; |
669 idle_time = version_->idle_time_; | 667 idle_time = version_->idle_time_; |
670 SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); | 668 SimulateDispatchEvent(ServiceWorkerMetrics::EventType::FETCH_MAIN_FRAME); |
671 EXPECT_LT(idle_time, version_->idle_time_); | 669 EXPECT_LT(idle_time, version_->idle_time_); |
672 | 670 |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1123 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, | 1121 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, |
1124 CreateReceiverOnCurrentThread(&status)); | 1122 CreateReceiverOnCurrentThread(&status)); |
1125 base::RunLoop().RunUntilIdle(); | 1123 base::RunLoop().RunUntilIdle(); |
1126 | 1124 |
1127 // Callback has not completed yet. | 1125 // Callback has not completed yet. |
1128 EXPECT_EQ(SERVICE_WORKER_ERROR_NETWORK, status); | 1126 EXPECT_EQ(SERVICE_WORKER_ERROR_NETWORK, status); |
1129 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); | 1127 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); |
1130 | 1128 |
1131 // Simulate renderer crash: do what | 1129 // Simulate renderer crash: do what |
1132 // ServiceWorkerDispatcherHost::OnFilterRemoved does. | 1130 // ServiceWorkerDispatcherHost::OnFilterRemoved does. |
1133 int process_id = helper_->mock_render_process_id(); | 1131 helper_->context()->RemoveDispatcherHost(helper_->mock_render_process_id()); |
1134 helper_->context()->RemoveAllProviderHostsForProcess(process_id); | |
1135 helper_->context()->embedded_worker_registry()->RemoveChildProcessSender( | |
1136 process_id); | |
1137 base::RunLoop().RunUntilIdle(); | 1132 base::RunLoop().RunUntilIdle(); |
1138 | 1133 |
1139 // Callback completed. | 1134 // Callback completed. |
1140 EXPECT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status); | 1135 EXPECT_EQ(SERVICE_WORKER_ERROR_START_WORKER_FAILED, status); |
1141 EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); | 1136 EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); |
1142 } | 1137 } |
1143 | 1138 |
1144 TEST_F(ServiceWorkerFailToStartTest, Timeout) { | 1139 TEST_F(ServiceWorkerFailToStartTest, Timeout) { |
1145 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value | 1140 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_NETWORK; // dummy value |
1146 | 1141 |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1336 int request_id = | 1331 int request_id = |
1337 version_->StartRequest(ServiceWorkerMetrics::EventType::SYNC, | 1332 version_->StartRequest(ServiceWorkerMetrics::EventType::SYNC, |
1338 CreateReceiverOnCurrentThread(&status)); | 1333 CreateReceiverOnCurrentThread(&status)); |
1339 base::RunLoop().RunUntilIdle(); | 1334 base::RunLoop().RunUntilIdle(); |
1340 | 1335 |
1341 // Callback has not completed yet. | 1336 // Callback has not completed yet. |
1342 EXPECT_EQ(SERVICE_WORKER_OK, status); | 1337 EXPECT_EQ(SERVICE_WORKER_OK, status); |
1343 | 1338 |
1344 // Simulate renderer crash: do what | 1339 // Simulate renderer crash: do what |
1345 // ServiceWorkerDispatcherHost::OnFilterRemoved does. | 1340 // ServiceWorkerDispatcherHost::OnFilterRemoved does. |
1346 int process_id = helper_->mock_render_process_id(); | 1341 helper_->context()->RemoveDispatcherHost(helper_->mock_render_process_id()); |
1347 helper_->context()->RemoveAllProviderHostsForProcess(process_id); | |
1348 helper_->context()->embedded_worker_registry()->RemoveChildProcessSender( | |
1349 process_id); | |
1350 base::RunLoop().RunUntilIdle(); | 1342 base::RunLoop().RunUntilIdle(); |
1351 | 1343 |
1352 // Callback completed. | 1344 // Callback completed. |
1353 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status); | 1345 EXPECT_EQ(SERVICE_WORKER_ERROR_FAILED, status); |
1354 EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); | 1346 EXPECT_EQ(EmbeddedWorkerStatus::STOPPED, version_->running_status()); |
1355 | 1347 |
1356 // Request already failed, calling finsh should return false. | 1348 // Request already failed, calling finsh should return false. |
1357 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */, | 1349 EXPECT_FALSE(version_->FinishRequest(request_id, true /* was_handled */, |
1358 base::Time::Now())); | 1350 base::Time::Now())); |
1359 } | 1351 } |
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1855 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1); | 1847 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1); |
1856 histogram_tester_.ExpectTotalCount(kLinkTapDown, 0); | 1848 histogram_tester_.ExpectTotalCount(kLinkTapDown, 0); |
1857 EXPECT_EQ(SERVICE_WORKER_OK, status); | 1849 EXPECT_EQ(SERVICE_WORKER_OK, status); |
1858 StopWorker(); | 1850 StopWorker(); |
1859 // The UMA for kLinkMouseDown must be recorded when the worker stopped. | 1851 // The UMA for kLinkMouseDown must be recorded when the worker stopped. |
1860 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1); | 1852 histogram_tester_.ExpectTotalCount(kLinkMouseDown, 1); |
1861 histogram_tester_.ExpectTotalCount(kLinkTapDown, 1); | 1853 histogram_tester_.ExpectTotalCount(kLinkTapDown, 1); |
1862 } | 1854 } |
1863 | 1855 |
1864 } // namespace content | 1856 } // namespace content |
OLD | NEW |