| 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 |