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

Unified Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 2534403002: [ServiceWorker] Mojofy extendable message event. (Closed)
Patch Set: Fix win build Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_dispatcher_host.cc
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc
index ed7b357561fe7906d4c167ab13b5ee0316d19e17..be0e7fe77cc43e5a2eee1457d7f42e1cc8d734f0 100644
--- a/content/browser/service_worker/service_worker_dispatcher_host.cc
+++ b/content/browser/service_worker/service_worker_dispatcher_host.cc
@@ -27,6 +27,7 @@
#include "content/browser/service_worker/service_worker_registration.h"
#include "content/browser/service_worker/service_worker_registration_handle.h"
#include "content/common/service_worker/embedded_worker_messages.h"
+#include "content/common/service_worker/service_worker_event_dispatcher.mojom.h"
#include "content/common/service_worker/service_worker_messages.h"
#include "content/common/service_worker/service_worker_types.h"
#include "content/common/service_worker/service_worker_utils.h"
@@ -1142,24 +1143,27 @@ void ServiceWorkerDispatcherHost::
std::vector<int> new_routing_ids;
filter->UpdateMessagePortsWithNewRoutes(sent_message_ports, &new_routing_ids);
- ServiceWorkerMsg_ExtendableMessageEvent_Params params;
- params.message = message;
- params.source_origin = source_origin;
- params.message_ports = sent_message_ports;
- params.new_routing_ids = new_routing_ids;
- params.source = source;
+ mojom::ExtendableMessageEventPtr event = mojom::ExtendableMessageEvent::New();
+ event->message = message;
+ event->source_origin = source_origin;
+ event->message_ports = sent_message_ports;
+ event->new_routing_ids = new_routing_ids;
+ event->source = source;
// Hide the client url if the client has a unique origin.
if (source_origin.unique()) {
- if (params.source.client_info.IsValid())
- params.source.client_info.url = GURL();
+ if (event->source.client_info.IsValid())
+ event->source.client_info.url = GURL();
else
- params.source.service_worker_info.url = GURL();
+ event->source.service_worker_info.url = GURL();
}
- worker->DispatchSimpleEvent<
- ServiceWorkerHostMsg_ExtendableMessageEventFinished>(
- request_id, ServiceWorkerMsg_ExtendableMessageEvent(request_id, params));
+ // |event_dispatcher| is owned by |worker|, once |worker| got destroyed, the
+ // bound function will never be called, so it is safe to use
+ // base::Unretained() here.
+ worker->event_dispatcher()->DispatchExtendableMessageEvent(
+ std::move(event), base::Bind(&ServiceWorkerVersion::OnSimpleEventFinished,
+ base::Unretained(worker.get()), request_id));
}
template <typename SourceInfo>

Powered by Google App Engine
This is Rietveld 408576698