Index: content/renderer/service_worker/service_worker_context_client.cc |
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc |
index 9119c5712fa26e496dbd9bdc301a726f474231e4..de6297c0956eb386cb5ff99ca9d60a7db989ecee 100644 |
--- a/content/renderer/service_worker/service_worker_context_client.cc |
+++ b/content/renderer/service_worker/service_worker_context_client.cc |
@@ -32,6 +32,7 @@ |
#include "content/common/mojo/service_registry_impl.h" |
#include "content/common/service_worker/embedded_worker_messages.h" |
#include "content/common/service_worker/service_worker_messages.h" |
+#include "content/public/common/push_event_payload.h" |
#include "content/public/common/referrer.h" |
#include "content/public/renderer/content_renderer_client.h" |
#include "content/public/renderer/document_state.h" |
@@ -761,10 +762,14 @@ void ServiceWorkerContextClient::OnNotificationClickEvent( |
} |
void ServiceWorkerContextClient::OnPushEvent(int request_id, |
- const std::string& data) { |
+ const PushEventPayload& payload) { |
TRACE_EVENT0("ServiceWorker", |
"ServiceWorkerContextClient::OnPushEvent"); |
- proxy_->dispatchPushEvent(request_id, blink::WebString::fromUTF8(data)); |
+ // Only set data to be a valid string if the payload had decrypted data. |
+ blink::WebString data; |
+ if (!payload.is_null) |
+ data.assign(blink::WebString::fromUTF8(payload.data)); |
+ proxy_->dispatchPushEvent(request_id, data); |
} |
void ServiceWorkerContextClient::OnGeofencingEvent( |