Index: content/browser/push_messaging/push_messaging_router.cc |
diff --git a/content/browser/push_messaging/push_messaging_router.cc b/content/browser/push_messaging/push_messaging_router.cc |
index f6ff797ff2540b972d03d8e9a54fe25623969157..584dfa0f34cfc63a3d2028d831f7c4e9a613374c 100644 |
--- a/content/browser/push_messaging/push_messaging_router.cc |
+++ b/content/browser/push_messaging/push_messaging_router.cc |
@@ -123,8 +123,14 @@ void PushMessagingRouter::DeliverMessageToWorker( |
deliver_message_callback, service_worker_registration), |
base::TimeDelta::FromSeconds(kPushMessageTimeoutSeconds), |
ServiceWorkerVersion::KILL_ON_TIMEOUT); |
- service_worker->DispatchSimpleEvent<ServiceWorkerHostMsg_PushEventFinished>( |
- request_id, ServiceWorkerMsg_PushEvent(request_id, payload)); |
+ |
+ // |event_dispatcher| is owned by |service_worker|, once |service_worker| |
+ // got destroyed, the bound function will never be called, so it is safe to |
+ // use |
shimazu
2016/12/14 04:42:34
nit: please fix indent
xiaofengzhang
2016/12/15 01:30:49
Acknowledged.
|
+ // base::Unretained() here. |
+ service_worker->event_dispatcher()->DispatchPushEvent( |
+ payload, base::Bind(&ServiceWorkerVersion::OnSimpleEventFinished, |
+ base::Unretained(service_worker.get()), request_id)); |
Peter Beverloo
2016/12/13 13:31:32
Instead of using base::Unretained(), just pass |se
leonhsl(Using Gerrit)
2016/12/14 03:29:18
I have one question which I'm not so sure: This wa
xiaofengzhang
2016/12/15 01:30:48
I re-submit and pass |service_worker| directly, bu
xiaofengzhang
2016/12/16 01:34:48
Any comments on Leon's question:
"I have one quest
|
} |
// static |