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_provider_host.h" | 5 #include "content/browser/service_worker/service_worker_provider_host.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/feature_list.h" | 9 #include "base/feature_list.h" |
10 #include "base/guid.h" | 10 #include "base/guid.h" |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 return true; | 534 return true; |
535 } | 535 } |
536 | 536 |
537 std::unique_ptr<ServiceWorkerProviderHost> | 537 std::unique_ptr<ServiceWorkerProviderHost> |
538 ServiceWorkerProviderHost::PrepareForCrossSiteTransfer() { | 538 ServiceWorkerProviderHost::PrepareForCrossSiteTransfer() { |
539 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_); | 539 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_); |
540 DCHECK_NE(MSG_ROUTING_NONE, route_id_); | 540 DCHECK_NE(MSG_ROUTING_NONE, route_id_); |
541 DCHECK_EQ(kDocumentMainThreadId, render_thread_id_); | 541 DCHECK_EQ(kDocumentMainThreadId, render_thread_id_); |
542 DCHECK_NE(SERVICE_WORKER_PROVIDER_UNKNOWN, provider_type_); | 542 DCHECK_NE(SERVICE_WORKER_PROVIDER_UNKNOWN, provider_type_); |
543 | 543 |
544 std::unique_ptr<ServiceWorkerProviderHost> new_provider_host = | 544 std::unique_ptr<ServiceWorkerProviderHost> provisional_host = |
545 base::WrapUnique(new ServiceWorkerProviderHost( | 545 base::WrapUnique(new ServiceWorkerProviderHost( |
546 process_id(), frame_id(), provider_id(), provider_type(), | 546 process_id(), frame_id(), provider_id(), provider_type(), |
547 is_parent_frame_secure(), context_, dispatcher_host())); | 547 is_parent_frame_secure(), context_, dispatcher_host())); |
548 | 548 |
549 for (const GURL& pattern : associated_patterns_) | 549 for (const GURL& pattern : associated_patterns_) |
550 DecreaseProcessReference(pattern); | 550 DecreaseProcessReference(pattern); |
551 | 551 |
552 for (auto& key_registration : matching_registrations_) | 552 for (auto& key_registration : matching_registrations_) |
553 DecreaseProcessReference(key_registration.second->pattern()); | 553 DecreaseProcessReference(key_registration.second->pattern()); |
554 | 554 |
555 if (associated_registration_.get()) { | 555 if (associated_registration_.get()) { |
556 if (dispatcher_host_) { | 556 if (dispatcher_host_) { |
557 Send(new ServiceWorkerMsg_DisassociateRegistration( | 557 Send(new ServiceWorkerMsg_DisassociateRegistration( |
558 render_thread_id_, provider_id())); | 558 render_thread_id_, provider_id())); |
559 } | 559 } |
560 } | 560 } |
561 | 561 |
562 render_process_id_ = ChildProcessHost::kInvalidUniqueID; | 562 render_process_id_ = ChildProcessHost::kInvalidUniqueID; |
563 route_id_ = MSG_ROUTING_NONE; | 563 route_id_ = MSG_ROUTING_NONE; |
564 render_thread_id_ = kInvalidEmbeddedWorkerThreadId; | 564 render_thread_id_ = kInvalidEmbeddedWorkerThreadId; |
565 provider_id_ = kInvalidServiceWorkerProviderId; | 565 provider_id_ = kInvalidServiceWorkerProviderId; |
566 provider_type_ = SERVICE_WORKER_PROVIDER_UNKNOWN; | 566 provider_type_ = SERVICE_WORKER_PROVIDER_UNKNOWN; |
567 dispatcher_host_ = nullptr; | 567 dispatcher_host_ = nullptr; |
568 return new_provider_host; | 568 return provisional_host; |
569 } | 569 } |
570 | 570 |
571 void ServiceWorkerProviderHost::CompleteCrossSiteTransfer( | 571 void ServiceWorkerProviderHost::CompleteCrossSiteTransfer( |
572 int new_process_id, | 572 ServiceWorkerProviderHost* provisional_host) { |
573 int new_frame_id, | |
574 int new_provider_id, | |
575 ServiceWorkerProviderType new_provider_type, | |
576 ServiceWorkerDispatcherHost* new_dispatcher_host) { | |
577 DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_); | 573 DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_); |
578 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, new_process_id); | 574 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, provisional_host->process_id()); |
579 DCHECK_NE(MSG_ROUTING_NONE, new_frame_id); | 575 DCHECK_NE(MSG_ROUTING_NONE, provisional_host->frame_id()); |
580 | 576 |
581 render_thread_id_ = kDocumentMainThreadId; | 577 render_thread_id_ = kDocumentMainThreadId; |
582 provider_id_ = new_provider_id; | 578 provider_id_ = provisional_host->provider_id(); |
583 provider_type_ = new_provider_type; | 579 provider_type_ = provisional_host->provider_type(); |
584 | 580 |
585 FinalizeInitialization(new_process_id, new_frame_id, new_dispatcher_host); | 581 FinalizeInitialization(provisional_host->process_id(), |
| 582 provisional_host->frame_id(), |
| 583 provisional_host->dispatcher_host()); |
586 } | 584 } |
587 | 585 |
588 // PlzNavigate | 586 // PlzNavigate |
589 void ServiceWorkerProviderHost::CompleteNavigationInitialized( | 587 void ServiceWorkerProviderHost::CompleteNavigationInitialized( |
590 int process_id, | 588 int process_id, |
591 int frame_routing_id, | 589 int frame_routing_id, |
592 ServiceWorkerDispatcherHost* dispatcher_host) { | 590 ServiceWorkerDispatcherHost* dispatcher_host) { |
593 CHECK(IsBrowserSideNavigationEnabled()); | 591 CHECK(IsBrowserSideNavigationEnabled()); |
594 DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_); | 592 DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_); |
595 DCHECK_EQ(SERVICE_WORKER_PROVIDER_FOR_WINDOW, provider_type_); | 593 DCHECK_EQ(SERVICE_WORKER_PROVIDER_FOR_WINDOW, provider_type_); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
786 render_thread_id_, provider_id(), | 784 render_thread_id_, provider_id(), |
787 GetOrCreateServiceWorkerHandle( | 785 GetOrCreateServiceWorkerHandle( |
788 associated_registration_->active_version()), | 786 associated_registration_->active_version()), |
789 false /* shouldNotifyControllerChange */, | 787 false /* shouldNotifyControllerChange */, |
790 associated_registration_->active_version()->used_features())); | 788 associated_registration_->active_version()->used_features())); |
791 } | 789 } |
792 } | 790 } |
793 } | 791 } |
794 | 792 |
795 } // namespace content | 793 } // namespace content |
OLD | NEW |