Index: content/browser/navigator_connect/navigator_connect_service_worker_service_factory.cc |
diff --git a/content/browser/navigator_connect/navigator_connect_service_worker_service_factory.cc b/content/browser/navigator_connect/navigator_connect_service_worker_service_factory.cc |
index 149ba81f2462cf993d047b84088ee1554515ffcc..802ae7207cb32054781e214d45ec2afcbf635ec1 100644 |
--- a/content/browser/navigator_connect/navigator_connect_service_worker_service_factory.cc |
+++ b/content/browser/navigator_connect/navigator_connect_service_worker_service_factory.cc |
@@ -30,19 +30,21 @@ class NavigatorConnectServiceWorkerService : public MessagePortDelegate { |
~NavigatorConnectServiceWorkerService() override; |
// MessagePortDelegate implementation. |
- void SendMessage(int route_id, |
- const MessagePortMessage& message, |
- const std::vector<int>& sent_message_port_ids) override; |
+ void SendMessage( |
+ int route_id, |
+ const MessagePortMessage& message, |
+ const std::vector<TransferredMessagePort>& sent_message_ports) override; |
void SendMessagesAreQueued(int route_id) override; |
private: |
// Callback called by SendMessage when the ServiceWorkerRegistration for this |
// service has been located. |
- void DeliverMessage(const base::string16& message, |
- const std::vector<int>& sent_message_port_ids, |
- ServiceWorkerStatusCode service_worker_status, |
- const scoped_refptr<ServiceWorkerRegistration>& |
- service_worker_registration); |
+ void DeliverMessage( |
+ const base::string16& message, |
+ const std::vector<TransferredMessagePort>& sent_message_ports, |
+ ServiceWorkerStatusCode service_worker_status, |
+ const scoped_refptr<ServiceWorkerRegistration>& |
+ service_worker_registration); |
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context_; |
NavigatorConnectClient client_; |
@@ -70,7 +72,7 @@ NavigatorConnectServiceWorkerService::~NavigatorConnectServiceWorkerService() { |
void NavigatorConnectServiceWorkerService::SendMessage( |
int route_id, |
const MessagePortMessage& message, |
- const std::vector<int>& sent_message_port_ids) { |
+ const std::vector<TransferredMessagePort>& sent_message_ports) { |
DCHECK(route_id == client_.message_port_id); |
DCHECK(message.message_as_value.empty()); |
@@ -78,14 +80,14 @@ void NavigatorConnectServiceWorkerService::SendMessage( |
// by the service can be asynchronous. When a message is delivered, |
// WebMessagePortChannelImpl instances will be constructed which send |
// MessagePortHostMsg_ReleaseMessages to release messages. |
- for (int sent_message_port_id : sent_message_port_ids) |
- MessagePortService::GetInstance()->HoldMessages(sent_message_port_id); |
+ for (const auto& port : sent_message_ports) |
+ MessagePortService::GetInstance()->HoldMessages(port.id); |
service_worker_context_->context()->storage()->FindRegistrationForId( |
service_worker_registration_id_, service_worker_registration_origin_, |
base::Bind(&NavigatorConnectServiceWorkerService::DeliverMessage, |
weak_factory_.GetWeakPtr(), message.message_as_string, |
- sent_message_port_ids)); |
+ sent_message_ports)); |
} |
void NavigatorConnectServiceWorkerService::SendMessagesAreQueued(int route_id) { |
@@ -94,7 +96,7 @@ void NavigatorConnectServiceWorkerService::SendMessagesAreQueued(int route_id) { |
void NavigatorConnectServiceWorkerService::DeliverMessage( |
const base::string16& message, |
- const std::vector<int>& sent_message_port_ids, |
+ const std::vector<TransferredMessagePort>& sent_message_ports, |
ServiceWorkerStatusCode service_worker_status, |
const scoped_refptr<ServiceWorkerRegistration>& |
service_worker_registration) { |
@@ -111,7 +113,7 @@ void NavigatorConnectServiceWorkerService::DeliverMessage( |
} |
active_version->DispatchCrossOriginMessageEvent( |
- client_, message, sent_message_port_ids, |
+ client_, message, sent_message_ports, |
base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); |
} |