void WorkerThreadableLoader::MainThreadBridge::didReceiveResponse(unsigned long identifier, const ResourceResponse& response) { RefPtr<ThreadableLoaderClientWrapper> workerClientWrapper = m_workerClientWrapper; auto* responseData = response.copyData().release(); if (!m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, identifier, responseData] (ScriptExecutionContext& context) { ASSERT_UNUSED(context, context.isWorkerGlobalScope()); auto response(ResourceResponse::adopt(std::unique_ptr<CrossThreadResourceResponseData>(responseData))); workerClientWrapper->didReceiveResponse(identifier, *response); }, m_taskMode)) delete responseData; }
CrossThreadCopierBase<false, false, ResourceResponse>::Type CrossThreadCopierBase<false, false, ResourceResponse>::copy(const ResourceResponse& response) { return response.copyData(); }
void WorkerLoaderClientBridgeSyncHelper::didReceiveResponse(unsigned long identifier, const ResourceResponse& response, PassOwnPtr<WebDataConsumerHandle> handle) { ASSERT(isMainThread()); m_clientTasks.append(bind(&didReceiveResponseAdapter, &m_client, identifier, response.copyData(), handle)); }
CrossThreadCopier<ResourceResponse>::Type CrossThreadCopier<ResourceResponse>::copy(const ResourceResponse& response) { return passed(response.copyData()); }