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 645 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 | 656 |
657 // Make the registration findable via storage functions. | 657 // Make the registration findable via storage functions. |
658 wrapper()->context()->storage()->NotifyInstallingRegistration( | 658 wrapper()->context()->storage()->NotifyInstallingRegistration( |
659 registration_.get()); | 659 registration_.get()); |
660 | 660 |
661 AssociateRendererProcessToPattern(pattern); | 661 AssociateRendererProcessToPattern(pattern); |
662 } | 662 } |
663 | 663 |
664 void TimeoutWorkerOnIOThread() { | 664 void TimeoutWorkerOnIOThread() { |
665 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 665 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 666 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); |
666 version_->SimulatePingTimeoutForTesting(); | 667 version_->SimulatePingTimeoutForTesting(); |
667 } | 668 } |
668 | 669 |
669 void AddControlleeOnIOThread() { | 670 void AddControlleeOnIOThread() { |
670 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 671 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
671 std::unique_ptr<ServiceWorkerProviderHost> host = | 672 std::unique_ptr<ServiceWorkerProviderHost> host = |
672 CreateProviderHostForWindow(33 /* dummy render process id */, | 673 CreateProviderHostForWindow(33 /* dummy render process id */, |
673 1 /* dummy provider_id */, | 674 1 /* dummy provider_id */, |
674 true /* is_parent_frame_secure */, | 675 true /* is_parent_frame_secure */, |
675 wrapper()->context()->AsWeakPtr()); | 676 wrapper()->context()->AsWeakPtr()); |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::RemoveListener, | 1168 RunOnIOThread(base::Bind(&EmbeddedWorkerInstance::RemoveListener, |
1168 base::Unretained(version_->embedded_worker()), | 1169 base::Unretained(version_->embedded_worker()), |
1169 &wait_for_load)); | 1170 &wait_for_load)); |
1170 | 1171 |
1171 // The script has loaded but start has not completed yet. | 1172 // The script has loaded but start has not completed yet. |
1172 ASSERT_EQ(SERVICE_WORKER_ERROR_FAILED, status); | 1173 ASSERT_EQ(SERVICE_WORKER_ERROR_FAILED, status); |
1173 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); | 1174 EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status()); |
1174 | 1175 |
1175 // Simulate execution timeout. Use a delay to prevent killing the worker | 1176 // Simulate execution timeout. Use a delay to prevent killing the worker |
1176 // before it's started execution. | 1177 // before it's started execution. |
1177 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); | |
1178 RunOnIOThreadWithDelay( | 1178 RunOnIOThreadWithDelay( |
1179 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), | 1179 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), |
1180 base::TimeDelta::FromMilliseconds(100)); | 1180 base::TimeDelta::FromMilliseconds(100)); |
1181 start_run_loop.Run(); | 1181 start_run_loop.Run(); |
1182 | 1182 |
1183 EXPECT_EQ(SERVICE_WORKER_ERROR_TIMEOUT, status); | 1183 EXPECT_EQ(SERVICE_WORKER_ERROR_TIMEOUT, status); |
1184 } | 1184 } |
1185 | 1185 |
1186 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, TimeoutWorkerInEvent) { | 1186 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, TimeoutWorkerInEvent) { |
1187 StartServerAndNavigateToSetup(); | 1187 StartServerAndNavigateToSetup(); |
(...skipping 13 matching lines...) Expand all Loading... |
1201 | 1201 |
1202 // Dispatch an event. | 1202 // Dispatch an event. |
1203 base::RunLoop install_run_loop; | 1203 base::RunLoop install_run_loop; |
1204 BrowserThread::PostTask( | 1204 BrowserThread::PostTask( |
1205 BrowserThread::IO, FROM_HERE, | 1205 BrowserThread::IO, FROM_HERE, |
1206 base::Bind(&self::InstallOnIOThread, base::Unretained(this), | 1206 base::Bind(&self::InstallOnIOThread, base::Unretained(this), |
1207 install_run_loop.QuitClosure(), &status)); | 1207 install_run_loop.QuitClosure(), &status)); |
1208 | 1208 |
1209 // Simulate execution timeout. Use a delay to prevent killing the worker | 1209 // Simulate execution timeout. Use a delay to prevent killing the worker |
1210 // before it's started execution. | 1210 // before it's started execution. |
1211 EXPECT_TRUE(version_->timeout_timer_.IsRunning()); | |
1212 RunOnIOThreadWithDelay( | 1211 RunOnIOThreadWithDelay( |
1213 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), | 1212 base::Bind(&self::TimeoutWorkerOnIOThread, base::Unretained(this)), |
1214 base::TimeDelta::FromMilliseconds(100)); | 1213 base::TimeDelta::FromMilliseconds(100)); |
1215 install_run_loop.Run(); | 1214 install_run_loop.Run(); |
1216 | 1215 |
1217 // Terminating a worker, even one in an infinite loop, is treated as if | 1216 // Terminating a worker, even one in an infinite loop, is treated as if |
1218 // waitUntil was rejected in the renderer code. | 1217 // waitUntil was rejected in the renderer code. |
1219 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status); | 1218 EXPECT_EQ(SERVICE_WORKER_ERROR_EVENT_WAITUNTIL_REJECTED, status); |
1220 } | 1219 } |
1221 | 1220 |
(...skipping 1806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3028 // effect in CanSuspendRenderer(). | 3027 // effect in CanSuspendRenderer(). |
3029 shell()->web_contents()->WasHidden(); | 3028 shell()->web_contents()->WasHidden(); |
3030 EXPECT_TRUE(rph->IsProcessBackgrounded()); | 3029 EXPECT_TRUE(rph->IsProcessBackgrounded()); |
3031 | 3030 |
3032 // The process which has service worker thread shouldn't be suspended. | 3031 // The process which has service worker thread shouldn't be suspended. |
3033 EXPECT_FALSE(memory_coordinator->CanSuspendRenderer(render_process_id)); | 3032 EXPECT_FALSE(memory_coordinator->CanSuspendRenderer(render_process_id)); |
3034 } | 3033 } |
3035 #endif | 3034 #endif |
3036 | 3035 |
3037 } // namespace content | 3036 } // namespace content |
OLD | NEW |