OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_registration.h" | 5 #include "content/browser/service_worker/service_worker_registration.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 const GURL kScope("https://www.example.not/"); | 192 const GURL kScope("https://www.example.not/"); |
193 const GURL kScript("https://www.example.not/service_worker.js"); | 193 const GURL kScript("https://www.example.not/service_worker.js"); |
194 | 194 |
195 registration_ = new ServiceWorkerRegistration( | 195 registration_ = new ServiceWorkerRegistration( |
196 kScope, storage()->NewRegistrationId(), context()->AsWeakPtr()); | 196 kScope, storage()->NewRegistrationId(), context()->AsWeakPtr()); |
197 | 197 |
198 // Create an active version. | 198 // Create an active version. |
199 scoped_refptr<ServiceWorkerVersion> version_1 = new ServiceWorkerVersion( | 199 scoped_refptr<ServiceWorkerVersion> version_1 = new ServiceWorkerVersion( |
200 registration_.get(), kScript, storage()->NewVersionId(), | 200 registration_.get(), kScript, storage()->NewVersionId(), |
201 context()->AsWeakPtr()); | 201 context()->AsWeakPtr()); |
| 202 version_1->set_fetch_handler_existence( |
| 203 ServiceWorkerVersion::FetchHandlerExistence::EXISTS); |
202 registration_->SetActiveVersion(version_1); | 204 registration_->SetActiveVersion(version_1); |
203 version_1->SetStatus(ServiceWorkerVersion::ACTIVATED); | 205 version_1->SetStatus(ServiceWorkerVersion::ACTIVATED); |
204 | 206 |
205 // Store the registration. | 207 // Store the registration. |
206 std::vector<ServiceWorkerDatabase::ResourceRecord> records; | 208 std::vector<ServiceWorkerDatabase::ResourceRecord> records; |
207 records.push_back(ServiceWorkerDatabase::ResourceRecord( | 209 records.push_back(ServiceWorkerDatabase::ResourceRecord( |
208 10, version_1->script_url(), 100)); | 210 10, version_1->script_url(), 100)); |
209 version_1->script_cache_map()->SetResources(records); | 211 version_1->script_cache_map()->SetResources(records); |
210 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; | 212 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_MAX_VALUE; |
211 context()->storage()->StoreRegistration( | 213 context()->storage()->StoreRegistration( |
(...skipping 11 matching lines...) Expand all Loading... |
223 context()->AsWeakPtr(), nullptr)); | 225 context()->AsWeakPtr(), nullptr)); |
224 version_1->AddControllee(host_.get()); | 226 version_1->AddControllee(host_.get()); |
225 | 227 |
226 // Give the active version an in-flight request. | 228 // Give the active version an in-flight request. |
227 inflight_request_id_ = CreateInflightRequest(version_1.get()); | 229 inflight_request_id_ = CreateInflightRequest(version_1.get()); |
228 | 230 |
229 // Create a waiting version. | 231 // Create a waiting version. |
230 scoped_refptr<ServiceWorkerVersion> version_2 = new ServiceWorkerVersion( | 232 scoped_refptr<ServiceWorkerVersion> version_2 = new ServiceWorkerVersion( |
231 registration_.get(), kScript, storage()->NewVersionId(), | 233 registration_.get(), kScript, storage()->NewVersionId(), |
232 context()->AsWeakPtr()); | 234 context()->AsWeakPtr()); |
| 235 version_2->set_fetch_handler_existence( |
| 236 ServiceWorkerVersion::FetchHandlerExistence::EXISTS); |
233 registration_->SetWaitingVersion(version_2); | 237 registration_->SetWaitingVersion(version_2); |
234 version_2->SetStatus(ServiceWorkerVersion::INSTALLED); | 238 version_2->SetStatus(ServiceWorkerVersion::INSTALLED); |
235 | 239 |
236 // Set it to activate when ready. The original version should still be | 240 // Set it to activate when ready. The original version should still be |
237 // active. | 241 // active. |
238 registration_->ActivateWaitingVersionWhenReady(); | 242 registration_->ActivateWaitingVersionWhenReady(); |
239 base::RunLoop().RunUntilIdle(); | 243 base::RunLoop().RunUntilIdle(); |
240 EXPECT_EQ(version_1.get(), registration_->active_version()); | 244 EXPECT_EQ(version_1.get(), registration_->active_version()); |
241 } | 245 } |
242 | 246 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 base::RunLoop().RunUntilIdle(); | 325 base::RunLoop().RunUntilIdle(); |
322 EXPECT_EQ(version_1.get(), reg->active_version()); | 326 EXPECT_EQ(version_1.get(), reg->active_version()); |
323 | 327 |
324 // Finish the request. Activation should happen. | 328 // Finish the request. Activation should happen. |
325 version_1->FinishRequest(inflight_request_id(), true /* was_handled */); | 329 version_1->FinishRequest(inflight_request_id(), true /* was_handled */); |
326 base::RunLoop().RunUntilIdle(); | 330 base::RunLoop().RunUntilIdle(); |
327 EXPECT_EQ(version_2.get(), reg->active_version()); | 331 EXPECT_EQ(version_2.get(), reg->active_version()); |
328 } | 332 } |
329 | 333 |
330 } // namespace content | 334 } // namespace content |
OLD | NEW |