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

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

Issue 2534403002: [ServiceWorker] Mojofy extendable message event. (Closed)
Patch Set: Rebase only 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 56d67cf1216e7025b888e84af305a9cf235ea484..c5578e693f8ad65ba051703c365794d3421c4127 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"
@@ -1167,24 +1168,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>
« no previous file with comments | « content/browser/service_worker/embedded_worker_test_helper.cc ('k') | content/browser/service_worker/service_worker_version.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698