Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: content/browser/service_worker/service_worker_provider_host.cc

Issue 2460223003: Support Service Worker NavigationPreload with PlzNavigate. (Closed)
Patch Set: fix windows compile error Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/guid.h" 9 #include "base/guid.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "content/browser/loader/resource_message_filter.h"
12 #include "content/browser/message_port_message_filter.h" 13 #include "content/browser/message_port_message_filter.h"
13 #include "content/browser/service_worker/embedded_worker_status.h" 14 #include "content/browser/service_worker/embedded_worker_status.h"
14 #include "content/browser/service_worker/service_worker_context_core.h" 15 #include "content/browser/service_worker/service_worker_context_core.h"
15 #include "content/browser/service_worker/service_worker_context_request_handler. h" 16 #include "content/browser/service_worker/service_worker_context_request_handler. h"
16 #include "content/browser/service_worker/service_worker_controllee_request_handl er.h" 17 #include "content/browser/service_worker/service_worker_controllee_request_handl er.h"
17 #include "content/browser/service_worker/service_worker_dispatcher_host.h" 18 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
18 #include "content/browser/service_worker/service_worker_handle.h" 19 #include "content/browser/service_worker/service_worker_handle.h"
19 #include "content/browser/service_worker/service_worker_registration_handle.h" 20 #include "content/browser/service_worker/service_worker_registration_handle.h"
20 #include "content/browser/service_worker/service_worker_version.h" 21 #include "content/browser/service_worker/service_worker_version.h"
21 #include "content/common/resource_request_body_impl.h" 22 #include "content/common/resource_request_body_impl.h"
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 get_ready_callback_.reset(new OneShotGetReadyCallback(callback)); 429 get_ready_callback_.reset(new OneShotGetReadyCallback(callback));
429 ReturnRegistrationForReadyIfNeeded(); 430 ReturnRegistrationForReadyIfNeeded();
430 return true; 431 return true;
431 } 432 }
432 433
433 void ServiceWorkerProviderHost::PrepareForCrossSiteTransfer() { 434 void ServiceWorkerProviderHost::PrepareForCrossSiteTransfer() {
434 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_); 435 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, render_process_id_);
435 DCHECK_NE(MSG_ROUTING_NONE, route_id_); 436 DCHECK_NE(MSG_ROUTING_NONE, route_id_);
436 DCHECK_EQ(kDocumentMainThreadId, render_thread_id_); 437 DCHECK_EQ(kDocumentMainThreadId, render_thread_id_);
437 DCHECK_NE(SERVICE_WORKER_PROVIDER_UNKNOWN, provider_type_); 438 DCHECK_NE(SERVICE_WORKER_PROVIDER_UNKNOWN, provider_type_);
439 DCHECK(!IsBrowserSideNavigationEnabled());
440 // |resource_filter_for_navigation_preload_| is used only for PlzNavigate.
441 DCHECK(!resource_filter_for_navigation_preload_.get());
438 442
439 for (const GURL& pattern : associated_patterns_) 443 for (const GURL& pattern : associated_patterns_)
440 DecreaseProcessReference(pattern); 444 DecreaseProcessReference(pattern);
441 445
442 for (auto& key_registration : matching_registrations_) 446 for (auto& key_registration : matching_registrations_)
443 DecreaseProcessReference(key_registration.second->pattern()); 447 DecreaseProcessReference(key_registration.second->pattern());
444 448
445 if (associated_registration_.get()) { 449 if (associated_registration_.get()) {
446 if (dispatcher_host_) { 450 if (dispatcher_host_) {
447 Send(new ServiceWorkerMsg_DisassociateRegistration( 451 Send(new ServiceWorkerMsg_DisassociateRegistration(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_); 487 DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, render_process_id_);
484 DCHECK_EQ(SERVICE_WORKER_PROVIDER_FOR_WINDOW, provider_type_); 488 DCHECK_EQ(SERVICE_WORKER_PROVIDER_FOR_WINDOW, provider_type_);
485 DCHECK_EQ(kDocumentMainThreadId, render_thread_id_); 489 DCHECK_EQ(kDocumentMainThreadId, render_thread_id_);
486 490
487 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, process_id); 491 DCHECK_NE(ChildProcessHost::kInvalidUniqueID, process_id);
488 DCHECK_NE(MSG_ROUTING_NONE, frame_routing_id); 492 DCHECK_NE(MSG_ROUTING_NONE, frame_routing_id);
489 493
490 FinalizeInitialization(process_id, frame_routing_id, dispatcher_host); 494 FinalizeInitialization(process_id, frame_routing_id, dispatcher_host);
491 } 495 }
492 496
497 void ServiceWorkerProviderHost::set_resource_filter_for_navigation_preload(
498 scoped_refptr<ResourceMessageFilter> filter) {
499 DCHECK(IsBrowserSideNavigationEnabled());
500 resource_filter_for_navigation_preload_ = std::move(filter);
501 }
502
493 void ServiceWorkerProviderHost::SendUpdateFoundMessage( 503 void ServiceWorkerProviderHost::SendUpdateFoundMessage(
494 int registration_handle_id) { 504 int registration_handle_id) {
495 if (!dispatcher_host_) 505 if (!dispatcher_host_)
496 return; // Could be nullptr in some tests. 506 return; // Could be nullptr in some tests.
497 507
498 if (!IsReadyToSendMessages()) { 508 if (!IsReadyToSendMessages()) {
499 queued_events_.push_back( 509 queued_events_.push_back(
500 base::Bind(&ServiceWorkerProviderHost::SendUpdateFoundMessage, 510 base::Bind(&ServiceWorkerProviderHost::SendUpdateFoundMessage,
501 AsWeakPtr(), registration_handle_id)); 511 AsWeakPtr(), registration_handle_id));
502 return; 512 return;
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 Send(new ServiceWorkerMsg_SetControllerServiceWorker( 684 Send(new ServiceWorkerMsg_SetControllerServiceWorker(
675 render_thread_id_, provider_id(), 685 render_thread_id_, provider_id(),
676 GetOrCreateServiceWorkerHandle( 686 GetOrCreateServiceWorkerHandle(
677 associated_registration_->active_version()), 687 associated_registration_->active_version()),
678 false /* shouldNotifyControllerChange */)); 688 false /* shouldNotifyControllerChange */));
679 } 689 }
680 } 690 }
681 } 691 }
682 692
683 } // namespace content 693 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698