| 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/public/browser/service_worker_context.h" | 5 #include "content/public/browser/service_worker_context.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 EXPECT_TRUE(registration->waiting_version()); | 72 EXPECT_TRUE(registration->waiting_version()); |
| 73 } else { | 73 } else { |
| 74 EXPECT_FALSE(registration->waiting_version()); | 74 EXPECT_FALSE(registration->waiting_version()); |
| 75 } | 75 } |
| 76 | 76 |
| 77 if (expect_active) { | 77 if (expect_active) { |
| 78 EXPECT_TRUE(registration->active_version()); | 78 EXPECT_TRUE(registration->active_version()); |
| 79 } else { | 79 } else { |
| 80 EXPECT_FALSE(registration->active_version()); | 80 EXPECT_FALSE(registration->active_version()); |
| 81 } | 81 } |
| 82 |
| 83 EXPECT_EQ(blink::WebServiceWorkerUpdateViaCache::kImports, |
| 84 registration->update_via_cache()); |
| 82 } | 85 } |
| 83 | 86 |
| 84 class RejectInstallTestHelper : public EmbeddedWorkerTestHelper { | 87 class RejectInstallTestHelper : public EmbeddedWorkerTestHelper { |
| 85 public: | 88 public: |
| 86 RejectInstallTestHelper() : EmbeddedWorkerTestHelper(base::FilePath()) {} | 89 RejectInstallTestHelper() : EmbeddedWorkerTestHelper(base::FilePath()) {} |
| 87 | 90 |
| 88 void OnInstallEvent( | 91 void OnInstallEvent( |
| 89 mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client, | 92 mojom::ServiceWorkerInstallEventMethodsAssociatedPtrInfo client, |
| 90 mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback | 93 mojom::ServiceWorkerEventDispatcher::DispatchInstallEventCallback |
| 91 callback) override { | 94 callback) override { |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 GURL pattern("http://www.example.com/"); | 206 GURL pattern("http://www.example.com/"); |
| 204 GURL script_url("http://www.example.com/service_worker.js"); | 207 GURL script_url("http://www.example.com/service_worker.js"); |
| 205 | 208 |
| 206 RecordableEmbeddedWorkerInstanceClient* client = nullptr; | 209 RecordableEmbeddedWorkerInstanceClient* client = nullptr; |
| 207 client = helper_->CreateAndRegisterMockInstanceClient< | 210 client = helper_->CreateAndRegisterMockInstanceClient< |
| 208 RecordableEmbeddedWorkerInstanceClient>(helper_->AsWeakPtr()); | 211 RecordableEmbeddedWorkerInstanceClient>(helper_->AsWeakPtr()); |
| 209 | 212 |
| 210 int64_t registration_id = kInvalidServiceWorkerRegistrationId; | 213 int64_t registration_id = kInvalidServiceWorkerRegistrationId; |
| 211 bool called = false; | 214 bool called = false; |
| 212 context()->RegisterServiceWorker( | 215 context()->RegisterServiceWorker( |
| 213 pattern, | 216 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 214 script_url, | |
| 215 NULL, | |
| 216 MakeRegisteredCallback(&called, ®istration_id)); | 217 MakeRegisteredCallback(&called, ®istration_id)); |
| 217 | 218 |
| 218 ASSERT_FALSE(called); | 219 ASSERT_FALSE(called); |
| 219 base::RunLoop().RunUntilIdle(); | 220 base::RunLoop().RunUntilIdle(); |
| 220 EXPECT_TRUE(called); | 221 EXPECT_TRUE(called); |
| 221 | 222 |
| 222 ASSERT_EQ(2UL, helper_->dispatched_events()->size()); | 223 ASSERT_EQ(2UL, helper_->dispatched_events()->size()); |
| 223 ASSERT_EQ(2UL, client->events().size()); | 224 ASSERT_EQ(2UL, client->events().size()); |
| 224 EXPECT_EQ(RecordableEmbeddedWorkerInstanceClient::Message::StartWorker, | 225 EXPECT_EQ(RecordableEmbeddedWorkerInstanceClient::Message::StartWorker, |
| 225 client->events()[0]); | 226 client->events()[0]); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 helper_.reset(new RejectInstallTestHelper); | 259 helper_.reset(new RejectInstallTestHelper); |
| 259 helper_->context_wrapper()->AddObserver(this); | 260 helper_->context_wrapper()->AddObserver(this); |
| 260 | 261 |
| 261 RecordableEmbeddedWorkerInstanceClient* client = nullptr; | 262 RecordableEmbeddedWorkerInstanceClient* client = nullptr; |
| 262 client = helper_->CreateAndRegisterMockInstanceClient< | 263 client = helper_->CreateAndRegisterMockInstanceClient< |
| 263 RecordableEmbeddedWorkerInstanceClient>(helper_->AsWeakPtr()); | 264 RecordableEmbeddedWorkerInstanceClient>(helper_->AsWeakPtr()); |
| 264 | 265 |
| 265 int64_t registration_id = kInvalidServiceWorkerRegistrationId; | 266 int64_t registration_id = kInvalidServiceWorkerRegistrationId; |
| 266 bool called = false; | 267 bool called = false; |
| 267 context()->RegisterServiceWorker( | 268 context()->RegisterServiceWorker( |
| 268 pattern, | 269 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 269 script_url, | |
| 270 NULL, | |
| 271 MakeRegisteredCallback(&called, ®istration_id)); | 270 MakeRegisteredCallback(&called, ®istration_id)); |
| 272 | 271 |
| 273 ASSERT_FALSE(called); | 272 ASSERT_FALSE(called); |
| 274 base::RunLoop().RunUntilIdle(); | 273 base::RunLoop().RunUntilIdle(); |
| 275 EXPECT_TRUE(called); | 274 EXPECT_TRUE(called); |
| 276 | 275 |
| 277 ASSERT_EQ(1UL, helper_->dispatched_events()->size()); | 276 ASSERT_EQ(1UL, helper_->dispatched_events()->size()); |
| 278 ASSERT_EQ(2UL, client->events().size()); | 277 ASSERT_EQ(2UL, client->events().size()); |
| 279 EXPECT_EQ(RecordableEmbeddedWorkerInstanceClient::Message::StartWorker, | 278 EXPECT_EQ(RecordableEmbeddedWorkerInstanceClient::Message::StartWorker, |
| 280 client->events()[0]); | 279 client->events()[0]); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 310 helper_.reset(new RejectActivateTestHelper); | 309 helper_.reset(new RejectActivateTestHelper); |
| 311 helper_->context_wrapper()->AddObserver(this); | 310 helper_->context_wrapper()->AddObserver(this); |
| 312 | 311 |
| 313 RecordableEmbeddedWorkerInstanceClient* client = nullptr; | 312 RecordableEmbeddedWorkerInstanceClient* client = nullptr; |
| 314 client = helper_->CreateAndRegisterMockInstanceClient< | 313 client = helper_->CreateAndRegisterMockInstanceClient< |
| 315 RecordableEmbeddedWorkerInstanceClient>(helper_->AsWeakPtr()); | 314 RecordableEmbeddedWorkerInstanceClient>(helper_->AsWeakPtr()); |
| 316 | 315 |
| 317 int64_t registration_id = kInvalidServiceWorkerRegistrationId; | 316 int64_t registration_id = kInvalidServiceWorkerRegistrationId; |
| 318 bool called = false; | 317 bool called = false; |
| 319 context()->RegisterServiceWorker( | 318 context()->RegisterServiceWorker( |
| 320 pattern, script_url, NULL, | 319 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 321 MakeRegisteredCallback(&called, ®istration_id)); | 320 MakeRegisteredCallback(&called, ®istration_id)); |
| 322 | 321 |
| 323 ASSERT_FALSE(called); | 322 ASSERT_FALSE(called); |
| 324 base::RunLoop().RunUntilIdle(); | 323 base::RunLoop().RunUntilIdle(); |
| 325 EXPECT_TRUE(called); | 324 EXPECT_TRUE(called); |
| 326 | 325 |
| 327 ASSERT_EQ(2UL, helper_->dispatched_events()->size()); | 326 ASSERT_EQ(2UL, helper_->dispatched_events()->size()); |
| 328 ASSERT_EQ(2UL, client->events().size()); | 327 ASSERT_EQ(2UL, client->events().size()); |
| 329 EXPECT_EQ(RecordableEmbeddedWorkerInstanceClient::Message::StartWorker, | 328 EXPECT_EQ(RecordableEmbeddedWorkerInstanceClient::Message::StartWorker, |
| 330 client->events()[0]); | 329 client->events()[0]); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 349 base::RunLoop().RunUntilIdle(); | 348 base::RunLoop().RunUntilIdle(); |
| 350 } | 349 } |
| 351 | 350 |
| 352 // Make sure registrations are cleaned up when they are unregistered. | 351 // Make sure registrations are cleaned up when they are unregistered. |
| 353 TEST_F(ServiceWorkerContextTest, Unregister) { | 352 TEST_F(ServiceWorkerContextTest, Unregister) { |
| 354 GURL pattern("http://www.example.com/"); | 353 GURL pattern("http://www.example.com/"); |
| 355 | 354 |
| 356 bool called = false; | 355 bool called = false; |
| 357 int64_t registration_id = kInvalidServiceWorkerRegistrationId; | 356 int64_t registration_id = kInvalidServiceWorkerRegistrationId; |
| 358 context()->RegisterServiceWorker( | 357 context()->RegisterServiceWorker( |
| 359 pattern, | |
| 360 GURL("http://www.example.com/service_worker.js"), | 358 GURL("http://www.example.com/service_worker.js"), |
| 361 NULL, | 359 ServiceWorkerRegistrationOptions(pattern), NULL, |
| 362 MakeRegisteredCallback(&called, ®istration_id)); | 360 MakeRegisteredCallback(&called, ®istration_id)); |
| 363 | 361 |
| 364 ASSERT_FALSE(called); | 362 ASSERT_FALSE(called); |
| 365 base::RunLoop().RunUntilIdle(); | 363 base::RunLoop().RunUntilIdle(); |
| 366 ASSERT_TRUE(called); | 364 ASSERT_TRUE(called); |
| 367 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id); | 365 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id); |
| 368 | 366 |
| 369 called = false; | 367 called = false; |
| 370 context()->UnregisterServiceWorker(pattern, | 368 context()->UnregisterServiceWorker(pattern, |
| 371 MakeUnregisteredCallback(&called)); | 369 MakeUnregisteredCallback(&called)); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 398 GURL origin1_p2("http://www.example.com/hello"); | 396 GURL origin1_p2("http://www.example.com/hello"); |
| 399 GURL origin2_p1("http://www.example.com:8080/again"); | 397 GURL origin2_p1("http://www.example.com:8080/again"); |
| 400 GURL origin3_p1("http://www.other.com/"); | 398 GURL origin3_p1("http://www.other.com/"); |
| 401 | 399 |
| 402 bool called = false; | 400 bool called = false; |
| 403 int64_t registration_id1 = kInvalidServiceWorkerRegistrationId; | 401 int64_t registration_id1 = kInvalidServiceWorkerRegistrationId; |
| 404 int64_t registration_id2 = kInvalidServiceWorkerRegistrationId; | 402 int64_t registration_id2 = kInvalidServiceWorkerRegistrationId; |
| 405 int64_t registration_id3 = kInvalidServiceWorkerRegistrationId; | 403 int64_t registration_id3 = kInvalidServiceWorkerRegistrationId; |
| 406 int64_t registration_id4 = kInvalidServiceWorkerRegistrationId; | 404 int64_t registration_id4 = kInvalidServiceWorkerRegistrationId; |
| 407 context()->RegisterServiceWorker( | 405 context()->RegisterServiceWorker( |
| 408 origin1_p1, | |
| 409 GURL("http://www.example.com/service_worker.js"), | 406 GURL("http://www.example.com/service_worker.js"), |
| 410 NULL, | 407 ServiceWorkerRegistrationOptions(origin1_p1), NULL, |
| 411 MakeRegisteredCallback(&called, ®istration_id1)); | 408 MakeRegisteredCallback(&called, ®istration_id1)); |
| 412 context()->RegisterServiceWorker( | 409 context()->RegisterServiceWorker( |
| 413 origin1_p2, | |
| 414 GURL("http://www.example.com/service_worker2.js"), | 410 GURL("http://www.example.com/service_worker2.js"), |
| 415 NULL, | 411 ServiceWorkerRegistrationOptions(origin1_p2), NULL, |
| 416 MakeRegisteredCallback(&called, ®istration_id2)); | 412 MakeRegisteredCallback(&called, ®istration_id2)); |
| 417 context()->RegisterServiceWorker( | 413 context()->RegisterServiceWorker( |
| 418 origin2_p1, | |
| 419 GURL("http://www.example.com:8080/service_worker3.js"), | 414 GURL("http://www.example.com:8080/service_worker3.js"), |
| 420 NULL, | 415 ServiceWorkerRegistrationOptions(origin2_p1), NULL, |
| 421 MakeRegisteredCallback(&called, ®istration_id3)); | 416 MakeRegisteredCallback(&called, ®istration_id3)); |
| 422 context()->RegisterServiceWorker( | 417 context()->RegisterServiceWorker( |
| 423 origin3_p1, | |
| 424 GURL("http://www.other.com/service_worker4.js"), | 418 GURL("http://www.other.com/service_worker4.js"), |
| 425 NULL, | 419 ServiceWorkerRegistrationOptions(origin3_p1), NULL, |
| 426 MakeRegisteredCallback(&called, ®istration_id4)); | 420 MakeRegisteredCallback(&called, ®istration_id4)); |
| 427 | 421 |
| 428 ASSERT_FALSE(called); | 422 ASSERT_FALSE(called); |
| 429 base::RunLoop().RunUntilIdle(); | 423 base::RunLoop().RunUntilIdle(); |
| 430 ASSERT_TRUE(called); | 424 ASSERT_TRUE(called); |
| 431 | 425 |
| 432 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id1); | 426 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id1); |
| 433 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id2); | 427 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id2); |
| 434 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id3); | 428 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id3); |
| 435 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id4); | 429 EXPECT_NE(kInvalidServiceWorkerRegistrationId, registration_id4); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 EXPECT_EQ(registration_id1, notifications_[5].registration_id); | 489 EXPECT_EQ(registration_id1, notifications_[5].registration_id); |
| 496 } | 490 } |
| 497 | 491 |
| 498 // Make sure registering a new script shares an existing registration. | 492 // Make sure registering a new script shares an existing registration. |
| 499 TEST_F(ServiceWorkerContextTest, RegisterNewScript) { | 493 TEST_F(ServiceWorkerContextTest, RegisterNewScript) { |
| 500 GURL pattern("http://www.example.com/"); | 494 GURL pattern("http://www.example.com/"); |
| 501 | 495 |
| 502 bool called = false; | 496 bool called = false; |
| 503 int64_t old_registration_id = kInvalidServiceWorkerRegistrationId; | 497 int64_t old_registration_id = kInvalidServiceWorkerRegistrationId; |
| 504 context()->RegisterServiceWorker( | 498 context()->RegisterServiceWorker( |
| 505 pattern, | |
| 506 GURL("http://www.example.com/service_worker.js"), | 499 GURL("http://www.example.com/service_worker.js"), |
| 507 NULL, | 500 ServiceWorkerRegistrationOptions(pattern), NULL, |
| 508 MakeRegisteredCallback(&called, &old_registration_id)); | 501 MakeRegisteredCallback(&called, &old_registration_id)); |
| 509 | 502 |
| 510 ASSERT_FALSE(called); | 503 ASSERT_FALSE(called); |
| 511 base::RunLoop().RunUntilIdle(); | 504 base::RunLoop().RunUntilIdle(); |
| 512 ASSERT_TRUE(called); | 505 ASSERT_TRUE(called); |
| 513 EXPECT_NE(kInvalidServiceWorkerRegistrationId, old_registration_id); | 506 EXPECT_NE(kInvalidServiceWorkerRegistrationId, old_registration_id); |
| 514 | 507 |
| 515 called = false; | 508 called = false; |
| 516 int64_t new_registration_id = kInvalidServiceWorkerRegistrationId; | 509 int64_t new_registration_id = kInvalidServiceWorkerRegistrationId; |
| 517 context()->RegisterServiceWorker( | 510 context()->RegisterServiceWorker( |
| 518 pattern, | |
| 519 GURL("http://www.example.com/service_worker_new.js"), | 511 GURL("http://www.example.com/service_worker_new.js"), |
| 520 NULL, | 512 ServiceWorkerRegistrationOptions(pattern), NULL, |
| 521 MakeRegisteredCallback(&called, &new_registration_id)); | 513 MakeRegisteredCallback(&called, &new_registration_id)); |
| 522 | 514 |
| 523 ASSERT_FALSE(called); | 515 ASSERT_FALSE(called); |
| 524 base::RunLoop().RunUntilIdle(); | 516 base::RunLoop().RunUntilIdle(); |
| 525 ASSERT_TRUE(called); | 517 ASSERT_TRUE(called); |
| 526 | 518 |
| 527 EXPECT_NE(kInvalidServiceWorkerRegistrationId, new_registration_id); | 519 EXPECT_NE(kInvalidServiceWorkerRegistrationId, new_registration_id); |
| 528 EXPECT_EQ(old_registration_id, new_registration_id); | 520 EXPECT_EQ(old_registration_id, new_registration_id); |
| 529 | 521 |
| 530 ASSERT_EQ(2u, notifications_.size()); | 522 ASSERT_EQ(2u, notifications_.size()); |
| 531 EXPECT_EQ(REGISTRATION_STORED, notifications_[0].type); | 523 EXPECT_EQ(REGISTRATION_STORED, notifications_[0].type); |
| 532 EXPECT_EQ(pattern, notifications_[0].pattern); | 524 EXPECT_EQ(pattern, notifications_[0].pattern); |
| 533 EXPECT_EQ(old_registration_id, notifications_[0].registration_id); | 525 EXPECT_EQ(old_registration_id, notifications_[0].registration_id); |
| 534 EXPECT_EQ(REGISTRATION_STORED, notifications_[1].type); | 526 EXPECT_EQ(REGISTRATION_STORED, notifications_[1].type); |
| 535 EXPECT_EQ(pattern, notifications_[1].pattern); | 527 EXPECT_EQ(pattern, notifications_[1].pattern); |
| 536 EXPECT_EQ(new_registration_id, notifications_[1].registration_id); | 528 EXPECT_EQ(new_registration_id, notifications_[1].registration_id); |
| 537 } | 529 } |
| 538 | 530 |
| 539 // Make sure that when registering a duplicate pattern+script_url | 531 // Make sure that when registering a duplicate pattern+script_url |
| 540 // combination, that the same registration is used. | 532 // combination, that the same registration is used. |
| 541 TEST_F(ServiceWorkerContextTest, RegisterDuplicateScript) { | 533 TEST_F(ServiceWorkerContextTest, RegisterDuplicateScript) { |
| 542 GURL pattern("http://www.example.com/"); | 534 GURL pattern("http://www.example.com/"); |
| 543 GURL script_url("http://www.example.com/service_worker.js"); | 535 GURL script_url("http://www.example.com/service_worker.js"); |
| 544 | 536 |
| 545 bool called = false; | 537 bool called = false; |
| 546 int64_t old_registration_id = kInvalidServiceWorkerRegistrationId; | 538 int64_t old_registration_id = kInvalidServiceWorkerRegistrationId; |
| 547 context()->RegisterServiceWorker( | 539 context()->RegisterServiceWorker( |
| 548 pattern, | 540 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 549 script_url, | |
| 550 NULL, | |
| 551 MakeRegisteredCallback(&called, &old_registration_id)); | 541 MakeRegisteredCallback(&called, &old_registration_id)); |
| 552 | 542 |
| 553 ASSERT_FALSE(called); | 543 ASSERT_FALSE(called); |
| 554 base::RunLoop().RunUntilIdle(); | 544 base::RunLoop().RunUntilIdle(); |
| 555 ASSERT_TRUE(called); | 545 ASSERT_TRUE(called); |
| 556 EXPECT_NE(kInvalidServiceWorkerRegistrationId, old_registration_id); | 546 EXPECT_NE(kInvalidServiceWorkerRegistrationId, old_registration_id); |
| 557 | 547 |
| 558 called = false; | 548 called = false; |
| 559 int64_t new_registration_id = kInvalidServiceWorkerRegistrationId; | 549 int64_t new_registration_id = kInvalidServiceWorkerRegistrationId; |
| 560 context()->RegisterServiceWorker( | 550 context()->RegisterServiceWorker( |
| 561 pattern, | 551 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 562 script_url, | |
| 563 NULL, | |
| 564 MakeRegisteredCallback(&called, &new_registration_id)); | 552 MakeRegisteredCallback(&called, &new_registration_id)); |
| 565 | 553 |
| 566 ASSERT_FALSE(called); | 554 ASSERT_FALSE(called); |
| 567 base::RunLoop().RunUntilIdle(); | 555 base::RunLoop().RunUntilIdle(); |
| 568 ASSERT_TRUE(called); | 556 ASSERT_TRUE(called); |
| 569 EXPECT_EQ(old_registration_id, new_registration_id); | 557 EXPECT_EQ(old_registration_id, new_registration_id); |
| 570 | 558 |
| 571 ASSERT_EQ(2u, notifications_.size()); | 559 ASSERT_EQ(2u, notifications_.size()); |
| 572 EXPECT_EQ(REGISTRATION_STORED, notifications_[0].type); | 560 EXPECT_EQ(REGISTRATION_STORED, notifications_[0].type); |
| 573 EXPECT_EQ(pattern, notifications_[0].pattern); | 561 EXPECT_EQ(pattern, notifications_[0].pattern); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 // Reinitialize the helper to test on-disk storage. | 671 // Reinitialize the helper to test on-disk storage. |
| 684 base::ScopedTempDir user_data_directory; | 672 base::ScopedTempDir user_data_directory; |
| 685 ASSERT_TRUE(user_data_directory.CreateUniqueTempDir()); | 673 ASSERT_TRUE(user_data_directory.CreateUniqueTempDir()); |
| 686 helper_.reset(new EmbeddedWorkerTestHelper(user_data_directory.GetPath())); | 674 helper_.reset(new EmbeddedWorkerTestHelper(user_data_directory.GetPath())); |
| 687 helper_->context_wrapper()->AddObserver(this); | 675 helper_->context_wrapper()->AddObserver(this); |
| 688 } | 676 } |
| 689 | 677 |
| 690 int64_t registration_id = kInvalidServiceWorkerRegistrationId; | 678 int64_t registration_id = kInvalidServiceWorkerRegistrationId; |
| 691 bool called = false; | 679 bool called = false; |
| 692 context()->RegisterServiceWorker( | 680 context()->RegisterServiceWorker( |
| 693 pattern, | 681 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 694 script_url, | |
| 695 NULL, | |
| 696 MakeRegisteredCallback(&called, ®istration_id)); | 682 MakeRegisteredCallback(&called, ®istration_id)); |
| 697 | 683 |
| 698 ASSERT_FALSE(called); | 684 ASSERT_FALSE(called); |
| 699 base::RunLoop().RunUntilIdle(); | 685 base::RunLoop().RunUntilIdle(); |
| 700 EXPECT_TRUE(called); | 686 EXPECT_TRUE(called); |
| 701 | 687 |
| 702 context()->storage()->FindRegistrationForId( | 688 context()->storage()->FindRegistrationForId( |
| 703 registration_id, | 689 registration_id, |
| 704 pattern.GetOrigin(), | 690 pattern.GetOrigin(), |
| 705 base::Bind(&ExpectRegisteredWorkers, | 691 base::Bind(&ExpectRegisteredWorkers, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 728 registration_id, | 714 registration_id, |
| 729 pattern.GetOrigin(), | 715 pattern.GetOrigin(), |
| 730 base::Bind(&ExpectRegisteredWorkers, | 716 base::Bind(&ExpectRegisteredWorkers, |
| 731 SERVICE_WORKER_ERROR_NOT_FOUND, | 717 SERVICE_WORKER_ERROR_NOT_FOUND, |
| 732 false /* expect_waiting */, | 718 false /* expect_waiting */, |
| 733 true /* expect_active */)); | 719 true /* expect_active */)); |
| 734 base::RunLoop().RunUntilIdle(); | 720 base::RunLoop().RunUntilIdle(); |
| 735 | 721 |
| 736 called = false; | 722 called = false; |
| 737 context()->RegisterServiceWorker( | 723 context()->RegisterServiceWorker( |
| 738 pattern, | 724 script_url, ServiceWorkerRegistrationOptions(pattern), NULL, |
| 739 script_url, | |
| 740 NULL, | |
| 741 MakeRegisteredCallback(&called, ®istration_id)); | 725 MakeRegisteredCallback(&called, ®istration_id)); |
| 742 | 726 |
| 743 ASSERT_FALSE(called); | 727 ASSERT_FALSE(called); |
| 744 base::RunLoop().RunUntilIdle(); | 728 base::RunLoop().RunUntilIdle(); |
| 745 EXPECT_TRUE(called); | 729 EXPECT_TRUE(called); |
| 746 | 730 |
| 747 context()->storage()->FindRegistrationForId( | 731 context()->storage()->FindRegistrationForId( |
| 748 registration_id, | 732 registration_id, |
| 749 pattern.GetOrigin(), | 733 pattern.GetOrigin(), |
| 750 base::Bind(&ExpectRegisteredWorkers, | 734 base::Bind(&ExpectRegisteredWorkers, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 765 EXPECT_EQ(REGISTRATION_STORED, notifications_[2].type); | 749 EXPECT_EQ(REGISTRATION_STORED, notifications_[2].type); |
| 766 EXPECT_EQ(pattern, notifications_[2].pattern); | 750 EXPECT_EQ(pattern, notifications_[2].pattern); |
| 767 EXPECT_EQ(registration_id, notifications_[2].registration_id); | 751 EXPECT_EQ(registration_id, notifications_[2].registration_id); |
| 768 } | 752 } |
| 769 | 753 |
| 770 INSTANTIATE_TEST_CASE_P(ServiceWorkerContextRecoveryTest, | 754 INSTANTIATE_TEST_CASE_P(ServiceWorkerContextRecoveryTest, |
| 771 ServiceWorkerContextRecoveryTest, | 755 ServiceWorkerContextRecoveryTest, |
| 772 testing::Bool()); | 756 testing::Bool()); |
| 773 | 757 |
| 774 } // namespace content | 758 } // namespace content |
| OLD | NEW |