void NetworkConnectionToWebProcess::convertMainResourceLoadToDownload(SessionID sessionID, uint64_t mainResourceLoadIdentifier, DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response) { auto& networkProcess = NetworkProcess::singleton(); if (!mainResourceLoadIdentifier) { networkProcess.downloadManager().startDownload(sessionID, downloadID, request); return; } NetworkResourceLoader* loader = m_networkResourceLoaders.get(mainResourceLoadIdentifier); if (!loader) { // If we're trying to download a blob here loader can be null. return; } #if USE(NETWORK_SESSION) loader->networkLoad()->convertTaskToDownload(downloadID, request); #else networkProcess.downloadManager().convertHandleToDownload(downloadID, loader->networkLoad()->handle(), request, response); // Unblock the URL connection operation queue. loader->networkLoad()->handle()->continueDidReceiveResponse(); #endif loader->didConvertToDownload(); }
void NetworkConnectionToWebProcess::convertMainResourceLoadToDownload(uint64_t mainResourceLoadIdentifier, uint64_t downloadID, const ResourceRequest& request, const ResourceResponse& response) { NetworkResourceLoader* loader = m_networkResourceLoaders.get(mainResourceLoadIdentifier); NetworkProcess::shared().downloadManager().convertHandleToDownload(downloadID, loader->handle(), request, response); // Unblock the URL connection operation queue. loader->handle()->continueDidReceiveResponse(); loader->didConvertHandleToDownload(); }
void NetworkConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder) { if (messageID.is<CoreIPC::MessageClassNetworkConnectionToWebProcess>()) { didReceiveNetworkConnectionToWebProcessMessage(connection, messageID, decoder); return; } if (messageID.is<CoreIPC::MessageClassNetworkResourceLoader>()) { NetworkResourceLoader* loader = NetworkProcess::shared().networkResourceLoadScheduler().networkResourceLoaderForIdentifier(decoder.destinationID()); if (loader) loader->didReceiveNetworkResourceLoaderMessage(connection, messageID, decoder); return; } ASSERT_NOT_REACHED(); }
void NetworkConnectionToWebProcess::convertMainResourceLoadToDownload(uint64_t mainResourceLoadIdentifier, uint64_t downloadID, const ResourceRequest& request, const ResourceResponse& response) { auto& networkProcess = NetworkProcess::singleton(); if (!mainResourceLoadIdentifier) { networkProcess.downloadManager().startDownload(downloadID, request); return; } NetworkResourceLoader* loader = m_networkResourceLoaders.get(mainResourceLoadIdentifier); networkProcess.downloadManager().convertHandleToDownload(downloadID, loader->handle(), request, response); // Unblock the URL connection operation queue. loader->handle()->continueDidReceiveResponse(); loader->didConvertHandleToDownload(); }
void NetworkConnectionToWebProcess::convertMainResourceLoadToDownload(SessionID sessionID, uint64_t mainResourceLoadIdentifier, DownloadID downloadID, const ResourceRequest& request, const ResourceResponse& response) { auto& networkProcess = NetworkProcess::singleton(); if (!mainResourceLoadIdentifier) { networkProcess.downloadManager().startDownload(this, sessionID, downloadID, request); return; } NetworkResourceLoader* loader = m_networkResourceLoaders.get(mainResourceLoadIdentifier); if (!loader) { // If we're trying to download a blob here loader can be null. return; } loader->convertToDownload(downloadID, request, response); }
void SynchronousNetworkLoaderClient::sendDelayedReply(NetworkResourceLoader& loader) { ASSERT(m_delayedReply); if (m_response.isNull()) { ASSERT(!m_error.isNull()); //platformSynthesizeErrorResponse(); } Vector<char> responseData; SharedBuffer* buffer = loader.bufferedData(); if (buffer && buffer->size()) responseData.append(buffer->data(), buffer->size()); m_delayedReply->send(m_error, m_response, responseData); m_delayedReply = nullptr; }
void NetworkConnectionToWebProcess::didCleanupResourceLoader(NetworkResourceLoader& loader) { RefPtr<NetworkResourceLoader> removedLoader = m_networkResourceLoaders.take(loader.identifier()); ASSERT(removedLoader == &loader); }
void NetworkConnectionToWebProcess::didCleanupResourceLoader(NetworkResourceLoader& loader) { ASSERT(m_networkResourceLoaders.get(loader.identifier()) == &loader); m_networkResourceLoaders.remove(loader.identifier()); }