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_dispatcher_host.h" | 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 if (!provider_host->GetRegistrationForReady(base::Bind( | 686 if (!provider_host->GetRegistrationForReady(base::Bind( |
687 &ServiceWorkerDispatcherHost::GetRegistrationForReadyComplete, | 687 &ServiceWorkerDispatcherHost::GetRegistrationForReadyComplete, |
688 this, thread_id, request_id, provider_host->AsWeakPtr()))) { | 688 this, thread_id, request_id, provider_host->AsWeakPtr()))) { |
689 bad_message::ReceivedBadMessage( | 689 bad_message::ReceivedBadMessage( |
690 this, bad_message::SWDH_GET_REGISTRATION_FOR_READY_ALREADY_IN_PROGRESS); | 690 this, bad_message::SWDH_GET_REGISTRATION_FOR_READY_ALREADY_IN_PROGRESS); |
691 } | 691 } |
692 } | 692 } |
693 | 693 |
694 void ServiceWorkerDispatcherHost::OnPostMessageToWorker( | 694 void ServiceWorkerDispatcherHost::OnPostMessageToWorker( |
695 int handle_id, | 695 int handle_id, |
| 696 int provider_id, |
696 const base::string16& message, | 697 const base::string16& message, |
697 const std::vector<TransferredMessagePort>& sent_message_ports) { | 698 const std::vector<TransferredMessagePort>& sent_message_ports) { |
698 TRACE_EVENT0("ServiceWorker", | 699 TRACE_EVENT0("ServiceWorker", |
699 "ServiceWorkerDispatcherHost::OnPostMessageToWorker"); | 700 "ServiceWorkerDispatcherHost::OnPostMessageToWorker"); |
700 if (!GetContext()) | 701 if (!GetContext()) |
701 return; | 702 return; |
702 | 703 |
703 ServiceWorkerHandle* handle = handles_.Lookup(handle_id); | 704 ServiceWorkerHandle* handle = handles_.Lookup(handle_id); |
704 if (!handle) { | 705 if (!handle) { |
705 bad_message::ReceivedBadMessage(this, bad_message::SWDH_POST_MESSAGE); | 706 bad_message::ReceivedBadMessage(this, bad_message::SWDH_POST_MESSAGE); |
706 return; | 707 return; |
707 } | 708 } |
708 | 709 |
| 710 ServiceWorkerProviderHost* sender_provider_host = |
| 711 GetContext()->GetProviderHost(render_process_id_, provider_id); |
| 712 if (!sender_provider_host) { |
| 713 bad_message::ReceivedBadMessage(this, bad_message::SWDH_POST_MESSAGE); |
| 714 return; |
| 715 } |
| 716 |
709 handle->version()->DispatchExtendableMessageEvent( | 717 handle->version()->DispatchExtendableMessageEvent( |
710 message, sent_message_ports, | 718 sender_provider_host, message, sent_message_ports, |
711 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); | 719 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
712 } | 720 } |
713 | 721 |
714 void ServiceWorkerDispatcherHost::OnDeprecatedPostMessageToWorker( | 722 void ServiceWorkerDispatcherHost::OnDeprecatedPostMessageToWorker( |
715 int handle_id, | 723 int handle_id, |
716 const base::string16& message, | 724 const base::string16& message, |
717 const std::vector<TransferredMessagePort>& sent_message_ports) { | 725 const std::vector<TransferredMessagePort>& sent_message_ports) { |
718 TRACE_EVENT0("ServiceWorker", | 726 TRACE_EVENT0("ServiceWorker", |
719 "ServiceWorkerDispatcherHost::OnDeprecatedPostMessageToWorker"); | 727 "ServiceWorkerDispatcherHost::OnDeprecatedPostMessageToWorker"); |
720 if (!GetContext()) | 728 if (!GetContext()) |
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1345 if (!handle) { | 1353 if (!handle) { |
1346 bad_message::ReceivedBadMessage(this, | 1354 bad_message::ReceivedBadMessage(this, |
1347 bad_message::SWDH_TERMINATE_BAD_HANDLE); | 1355 bad_message::SWDH_TERMINATE_BAD_HANDLE); |
1348 return; | 1356 return; |
1349 } | 1357 } |
1350 handle->version()->StopWorker( | 1358 handle->version()->StopWorker( |
1351 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); | 1359 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
1352 } | 1360 } |
1353 | 1361 |
1354 } // namespace content | 1362 } // namespace content |
OLD | NEW |