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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback.h" | 6 #include "base/callback.h" |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "content/browser/service_worker/embedded_worker_instance.h" | 9 #include "content/browser/service_worker/embedded_worker_instance.h" |
10 #include "content/browser/service_worker/embedded_worker_registry.h" | 10 #include "content/browser/service_worker/embedded_worker_registry.h" |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 worker_ = wrapper()->context()->embedded_worker_registry()->CreateWorker(); | 157 worker_ = wrapper()->context()->embedded_worker_registry()->CreateWorker(); |
158 EXPECT_EQ(EmbeddedWorkerInstance::STOPPED, worker_->status()); | 158 EXPECT_EQ(EmbeddedWorkerInstance::STOPPED, worker_->status()); |
159 worker_->AddListener(this); | 159 worker_->AddListener(this); |
160 | 160 |
161 AssociateRendererProcessToWorker(worker_.get()); | 161 AssociateRendererProcessToWorker(worker_.get()); |
162 | 162 |
163 const int64 service_worker_version_id = 33L; | 163 const int64 service_worker_version_id = 33L; |
164 const GURL scope = embedded_test_server()->GetURL("/*"); | 164 const GURL scope = embedded_test_server()->GetURL("/*"); |
165 const GURL script_url = embedded_test_server()->GetURL( | 165 const GURL script_url = embedded_test_server()->GetURL( |
166 "/service_worker/worker.js"); | 166 "/service_worker/worker.js"); |
167 ServiceWorkerStatusCode status = worker_->Start( | 167 std::vector<int> processes; |
168 service_worker_version_id, scope, script_url); | 168 processes.push_back( |
169 | 169 shell()->web_contents()->GetRenderProcessHost()->GetID()); |
| 170 worker_->Start( |
| 171 service_worker_version_id, |
| 172 scope, |
| 173 script_url, |
| 174 processes, |
| 175 base::Bind(&EmbeddedWorkerBrowserTest::StartOnIOThread2, this)); |
| 176 } |
| 177 void StartOnIOThread2(ServiceWorkerStatusCode status) { |
170 last_worker_status_ = worker_->status(); | 178 last_worker_status_ = worker_->status(); |
171 EXPECT_EQ(SERVICE_WORKER_OK, status); | 179 EXPECT_EQ(SERVICE_WORKER_OK, status); |
172 EXPECT_EQ(EmbeddedWorkerInstance::STARTING, last_worker_status_); | 180 EXPECT_EQ(EmbeddedWorkerInstance::STARTING, last_worker_status_); |
173 | 181 |
174 if (status != SERVICE_WORKER_OK && !done_closure_.is_null()) | 182 if (status != SERVICE_WORKER_OK && !done_closure_.is_null()) |
175 done_closure_.Run(); | 183 done_closure_.Run(); |
176 } | 184 } |
177 | 185 |
178 void StopOnIOThread() { | 186 void StopOnIOThread() { |
179 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 187 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 run_loop.QuitClosure())); | 597 run_loop.QuitClosure())); |
590 run_loop.Run(); | 598 run_loop.Run(); |
591 } | 599 } |
592 | 600 |
593 // Register returns when the promise would be resolved. | 601 // Register returns when the promise would be resolved. |
594 { | 602 { |
595 base::RunLoop run_loop; | 603 base::RunLoop run_loop; |
596 public_context()->RegisterServiceWorker( | 604 public_context()->RegisterServiceWorker( |
597 embedded_test_server()->GetURL("/*"), | 605 embedded_test_server()->GetURL("/*"), |
598 embedded_test_server()->GetURL(kWorkerUrl), | 606 embedded_test_server()->GetURL(kWorkerUrl), |
599 RenderProcessID(), | |
600 base::Bind(&ServiceWorkerBlackBoxBrowserTest::ExpectResultAndRun, | 607 base::Bind(&ServiceWorkerBlackBoxBrowserTest::ExpectResultAndRun, |
601 true, | 608 true, |
602 run_loop.QuitClosure())); | 609 run_loop.QuitClosure())); |
603 run_loop.Run(); | 610 run_loop.Run(); |
604 } | 611 } |
605 | 612 |
606 // Registering again should succeed, although the algo still | 613 // Registering again should succeed, although the algo still |
607 // might not be complete. | 614 // might not be complete. |
608 { | 615 { |
609 base::RunLoop run_loop; | 616 base::RunLoop run_loop; |
610 public_context()->RegisterServiceWorker( | 617 public_context()->RegisterServiceWorker( |
611 embedded_test_server()->GetURL("/*"), | 618 embedded_test_server()->GetURL("/*"), |
612 embedded_test_server()->GetURL(kWorkerUrl), | 619 embedded_test_server()->GetURL(kWorkerUrl), |
613 RenderProcessID(), | |
614 base::Bind(&ServiceWorkerBlackBoxBrowserTest::ExpectResultAndRun, | 620 base::Bind(&ServiceWorkerBlackBoxBrowserTest::ExpectResultAndRun, |
615 true, | 621 true, |
616 run_loop.QuitClosure())); | 622 run_loop.QuitClosure())); |
617 run_loop.Run(); | 623 run_loop.Run(); |
618 } | 624 } |
619 | 625 |
620 // The registration algo might not be far enough along to have | 626 // The registration algo might not be far enough along to have |
621 // stored the registration data, so it may not be findable | 627 // stored the registration data, so it may not be findable |
622 // at this point. | 628 // at this point. |
623 | 629 |
(...skipping 17 matching lines...) Expand all Loading... |
641 base::Bind(&ServiceWorkerBlackBoxBrowserTest::FindRegistrationOnIO, | 647 base::Bind(&ServiceWorkerBlackBoxBrowserTest::FindRegistrationOnIO, |
642 this, | 648 this, |
643 embedded_test_server()->GetURL("/service_worker/empty.html"), | 649 embedded_test_server()->GetURL("/service_worker/empty.html"), |
644 &status, | 650 &status, |
645 &script_url)); | 651 &script_url)); |
646 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, status); | 652 EXPECT_EQ(SERVICE_WORKER_ERROR_NOT_FOUND, status); |
647 } | 653 } |
648 } | 654 } |
649 | 655 |
650 } // namespace content | 656 } // namespace content |
OLD | NEW |