Index: Source/core/loader/WorkerLoaderClientBridge.cpp |
diff --git a/Source/core/loader/WorkerLoaderClientBridge.cpp b/Source/core/loader/WorkerLoaderClientBridge.cpp |
index e0724974d1ff1a8f669f23d4fb9cf8c2fe906772..cd889bb191398102ca544fe5278d1cde9c15ad23 100644 |
--- a/Source/core/loader/WorkerLoaderClientBridge.cpp |
+++ b/Source/core/loader/WorkerLoaderClientBridge.cpp |
@@ -37,6 +37,7 @@ |
#include "core/workers/WorkerLoaderProxy.h" |
#include "platform/network/ResourceError.h" |
#include "platform/network/ResourceResponse.h" |
+#include "platform/network/ResourceTimingInfo.h" |
#include "wtf/PassOwnPtr.h" |
#include "wtf/PassRefPtr.h" |
#include <limits> |
@@ -157,6 +158,18 @@ void WorkerLoaderClientBridge::didFailRedirectCheck() |
m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeDidFailRedirectCheck, m_workerClientWrapper)); |
} |
+static void workerGlobalScopeReportResourceTiming(PassRefPtr<ThreadableLoaderClientWrapper> workerClientWrapper, PassOwnPtr<CrossThreadResourceTimingInfoData> timingData, ExecutionContext* context) |
+{ |
+ ASSERT_UNUSED(context, context->isWorkerGlobalScope()); |
+ OwnPtr<ResourceTimingInfo> info(ResourceTimingInfo::adopt(timingData)); |
+ workerClientWrapper->didReceiveResourceTiming(*info); |
+} |
+ |
+void WorkerLoaderClientBridge::didReceiveResourceTiming(const ResourceTimingInfo& info) |
+{ |
+ m_loaderProxy->postTaskToWorkerGlobalScope(createCrossThreadTask(&workerGlobalScopeReportResourceTiming, m_workerClientWrapper, info)); |
+} |
+ |
WorkerLoaderClientBridge::WorkerLoaderClientBridge(PassRefPtr<ThreadableLoaderClientWrapper> clientWrapper, PassRefPtr<WorkerLoaderProxy> loaderProxy) |
: m_workerClientWrapper(clientWrapper) |
, m_loaderProxy(loaderProxy) |