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 fbb10ca91d78ee51388ac9f28cc718bf8ee3dd94..4efd01bca69345e152c32b5d28ea24e8077500d7 100644 |
--- a/content/renderer/service_worker/service_worker_context_client.cc |
+++ b/content/renderer/service_worker/service_worker_context_client.cc |
@@ -14,6 +14,7 @@ |
#include "base/threading/thread_checker.h" |
#include "base/threading/thread_local.h" |
#include "base/threading/thread_task_runner_handle.h" |
+#include "base/time/time.h" |
#include "base/trace_event/trace_event.h" |
#include "content/child/notifications/notification_data_conversions.h" |
#include "content/child/request_extra_data.h" |
@@ -176,7 +177,8 @@ struct ServiceWorkerContextClient::WorkerContextData { |
using SkipWaitingCallbacksMap = |
IDMap<blink::WebServiceWorkerSkipWaitingCallbacks, IDMapOwnPointer>; |
using SyncEventCallbacksMap = |
- IDMap<const base::Callback<void(blink::mojom::ServiceWorkerEventStatus)>, |
+ IDMap<const base::Callback<void(blink::mojom::ServiceWorkerEventStatus, |
+ double /* dispatch_event_time */)>, |
IDMapOwnPointer>; |
explicit WorkerContextData(ServiceWorkerContextClient* owner) |
@@ -491,34 +493,43 @@ ServiceWorkerContextClient::createDevToolsMessageLoop() { |
void ServiceWorkerContextClient::didHandleActivateEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_ActivateEventFinished( |
- GetRoutingID(), request_id, result)); |
+ GetRoutingID(), request_id, result, |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandleExtendableMessageEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_ExtendableMessageEventFinished( |
- GetRoutingID(), request_id, result)); |
+ GetRoutingID(), request_id, result, |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandleInstallEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_InstallEventFinished( |
- GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler())); |
+ GetRoutingID(), request_id, result, proxy_->hasFetchEventHandler(), |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
-void ServiceWorkerContextClient::respondToFetchEvent(int response_id) { |
+void ServiceWorkerContextClient::respondToFetchEvent( |
+ int response_id, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_FetchEventResponse( |
GetRoutingID(), response_id, SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, |
- ServiceWorkerResponse())); |
+ ServiceWorkerResponse(), base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::respondToFetchEvent( |
int response_id, |
- const blink::WebServiceWorkerResponse& web_response) { |
+ const blink::WebServiceWorkerResponse& web_response, |
+ double event_dispatch_time) { |
ServiceWorkerHeaderMap headers; |
GetServiceWorkerHeaderMapFromWebResponse(web_response, &headers); |
ServiceWorkerHeaderList cors_exposed_header_names; |
@@ -534,48 +545,59 @@ void ServiceWorkerContextClient::respondToFetchEvent( |
web_response.cacheStorageCacheName().utf8(), cors_exposed_header_names); |
Send(new ServiceWorkerHostMsg_FetchEventResponse( |
GetRoutingID(), response_id, SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, |
- response)); |
+ response, base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandleFetchEvent( |
int event_finish_id, |
- blink::WebServiceWorkerEventResult result) { |
- Send(new ServiceWorkerHostMsg_FetchEventFinished(GetRoutingID(), |
- event_finish_id, result)); |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
+ Send(new ServiceWorkerHostMsg_FetchEventFinished( |
+ GetRoutingID(), event_finish_id, result, |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandleNotificationClickEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_NotificationClickEventFinished( |
- GetRoutingID(), request_id, result)); |
+ GetRoutingID(), request_id, result, |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandleNotificationCloseEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_NotificationCloseEventFinished( |
- GetRoutingID(), request_id, result)); |
+ GetRoutingID(), request_id, result, |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandlePushEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
Send(new ServiceWorkerHostMsg_PushEventFinished( |
- GetRoutingID(), request_id, result)); |
+ GetRoutingID(), request_id, result, |
+ base::Time::FromDoubleT(event_dispatch_time))); |
} |
void ServiceWorkerContextClient::didHandleSyncEvent( |
int request_id, |
- blink::WebServiceWorkerEventResult result) { |
+ blink::WebServiceWorkerEventResult result, |
+ double event_dispatch_time) { |
const SyncCallback* callback = |
context_->sync_event_callbacks.Lookup(request_id); |
if (!callback) |
return; |
if (result == blink::WebServiceWorkerEventResultCompleted) { |
- callback->Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED); |
+ callback->Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED, |
+ event_dispatch_time); |
} else { |
- callback->Run(blink::mojom::ServiceWorkerEventStatus::REJECTED); |
+ callback->Run(blink::mojom::ServiceWorkerEventStatus::REJECTED, |
+ event_dispatch_time); |
} |
context_->sync_event_callbacks.Remove(request_id); |
} |