| 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 <tuple> | 5 #include <tuple> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "content/browser/service_worker/embedded_worker_registry.h" | 10 #include "content/browser/service_worker/embedded_worker_registry.h" |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 helper_->context()->AsWeakPtr()); | 86 helper_->context()->AsWeakPtr()); |
| 87 version_ = new ServiceWorkerVersion( | 87 version_ = new ServiceWorkerVersion( |
| 88 registration_.get(), | 88 registration_.get(), |
| 89 GURL("http://www.example.com/service_worker.js"), | 89 GURL("http://www.example.com/service_worker.js"), |
| 90 1L, | 90 1L, |
| 91 helper_->context()->AsWeakPtr()); | 91 helper_->context()->AsWeakPtr()); |
| 92 std::vector<ServiceWorkerDatabase::ResourceRecord> records; | 92 std::vector<ServiceWorkerDatabase::ResourceRecord> records; |
| 93 records.push_back( | 93 records.push_back( |
| 94 ServiceWorkerDatabase::ResourceRecord(10, version_->script_url(), 100)); | 94 ServiceWorkerDatabase::ResourceRecord(10, version_->script_url(), 100)); |
| 95 version_->script_cache_map()->SetResources(records); | 95 version_->script_cache_map()->SetResources(records); |
| 96 version_->set_has_fetch_handler(true); |
| 97 version_->SetStatus(ServiceWorkerVersion::INSTALLING); |
| 96 | 98 |
| 97 // Make the registration findable via storage functions. | 99 // Make the registration findable via storage functions. |
| 98 helper_->context()->storage()->LazyInitialize(base::Bind(&base::DoNothing)); | 100 helper_->context()->storage()->LazyInitialize(base::Bind(&base::DoNothing)); |
| 99 base::RunLoop().RunUntilIdle(); | 101 base::RunLoop().RunUntilIdle(); |
| 100 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; | 102 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; |
| 101 helper_->context()->storage()->StoreRegistration( | 103 helper_->context()->storage()->StoreRegistration( |
| 102 registration_.get(), | 104 registration_.get(), |
| 103 version_.get(), | 105 version_.get(), |
| 104 CreateReceiverOnCurrentThread(&status)); | 106 CreateReceiverOnCurrentThread(&status)); |
| 105 base::RunLoop().RunUntilIdle(); | 107 base::RunLoop().RunUntilIdle(); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 ServiceWorkerHandle::Create(helper_->context()->AsWeakPtr(), | 145 ServiceWorkerHandle::Create(helper_->context()->AsWeakPtr(), |
| 144 provider_host_->AsWeakPtr(), version_.get()); | 146 provider_host_->AsWeakPtr(), version_.get()); |
| 145 | 147 |
| 146 // Start the worker, and then... | 148 // Start the worker, and then... |
| 147 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; | 149 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; |
| 148 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, | 150 version_->StartWorker(ServiceWorkerMetrics::EventType::UNKNOWN, |
| 149 CreateReceiverOnCurrentThread(&status)); | 151 CreateReceiverOnCurrentThread(&status)); |
| 150 base::RunLoop().RunUntilIdle(); | 152 base::RunLoop().RunUntilIdle(); |
| 151 EXPECT_EQ(SERVICE_WORKER_OK, status); | 153 EXPECT_EQ(SERVICE_WORKER_OK, status); |
| 152 | 154 |
| 153 // ...update state to installing... | 155 // ...update state to installed. |
| 154 version_->SetStatus(ServiceWorkerVersion::INSTALLING); | |
| 155 | |
| 156 // ...and update state to installed. | |
| 157 version_->SetStatus(ServiceWorkerVersion::INSTALLED); | 156 version_->SetStatus(ServiceWorkerVersion::INSTALLED); |
| 158 | 157 |
| 159 ASSERT_EQ(3UL, ipc_sink()->message_count()); | 158 ASSERT_EQ(2UL, ipc_sink()->message_count()); |
| 160 ASSERT_EQ(0L, dispatcher_host_->bad_message_received_count_); | 159 ASSERT_EQ(0L, dispatcher_host_->bad_message_received_count_); |
| 161 | 160 |
| 162 // We should be sending 1. StartWorker, | 161 // We should be sending 1. StartWorker, |
| 163 EXPECT_EQ(EmbeddedWorkerMsg_StartWorker::ID, | 162 EXPECT_EQ(EmbeddedWorkerMsg_StartWorker::ID, |
| 164 ipc_sink()->GetMessageAt(0)->type()); | 163 ipc_sink()->GetMessageAt(0)->type()); |
| 165 // 2. StateChanged (state == Installing), | 164 // 2. StateChanged (state == Installed). |
| 166 VerifyStateChangedMessage(handle->handle_id(), | |
| 167 blink::WebServiceWorkerStateInstalling, | |
| 168 ipc_sink()->GetMessageAt(1)); | |
| 169 // 3. StateChanged (state == Installed). | |
| 170 VerifyStateChangedMessage(handle->handle_id(), | 165 VerifyStateChangedMessage(handle->handle_id(), |
| 171 blink::WebServiceWorkerStateInstalled, | 166 blink::WebServiceWorkerStateInstalled, |
| 172 ipc_sink()->GetMessageAt(2)); | 167 ipc_sink()->GetMessageAt(1)); |
| 173 } | 168 } |
| 174 | 169 |
| 175 } // namespace content | 170 } // namespace content |
| OLD | NEW |