bool NetworkResourceLoader::sendBufferMaybeAborting(SharedBuffer& buffer, size_t encodedDataLength) { ASSERT(!isSynchronous()); IPC::SharedBufferDataReference dataReference(&buffer); return sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedDataLength)); }
static void encodeGKeyFile(ArgumentEncoder* encoder, GKeyFile* keyFile) { gsize dataSize; GOwnPtr<char> data(g_key_file_to_data(keyFile, &dataSize, 0)); DataReference dataReference(reinterpret_cast<uint8_t*>(data.get()), dataSize); encoder->encode(dataReference); }
void NetworkResourceLoader::sendBuffer(SharedBuffer& buffer, size_t encodedDataLength) { ASSERT(!isSynchronous()); IPC::SharedBufferDataReference dataReference(&buffer); send(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedDataLength)); }
void NetworkResourceLoader::bufferingTimerFired(Timer<NetworkResourceLoader>&) { ASSERT(m_bufferedData); ASSERT(m_handle); if (!m_bufferedData->size()) return; IPC::SharedBufferDataReference dataReference(m_bufferedData.get()); sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveData(dataReference, m_bufferedDataEncodedDataLength)); m_bufferedData = WebCore::SharedBuffer::create(); m_bufferedDataEncodedDataLength = 0; }
void NetworkResourceLoader::bufferingTimerFired() { ASSERT(m_bufferedData); ASSERT(m_networkLoad); if (m_bufferedData->isEmpty()) return; IPC::SharedBufferDataReference dataReference(m_bufferedData.get()); size_t encodedLength = m_bufferedDataEncodedDataLength; m_bufferedData = SharedBuffer::create(); m_bufferedDataEncodedDataLength = 0; send(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedLength)); }
void NetworkResourceLoader::sendBuffer(WebCore::SharedBuffer* buffer, int encodedDataLength) { ASSERT(!isSynchronous()); #if PLATFORM(IOS) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) ShareableResource::Handle shareableResourceHandle; NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer(shareableResourceHandle, buffer); if (!shareableResourceHandle.isNull()) { // Since we're delivering this resource by ourselves all at once and don't need anymore data or callbacks from the network layer, abort the loader. abort(); send(Messages::WebResourceLoader::DidReceiveResource(shareableResourceHandle, currentTime())); return; } #endif IPC::SharedBufferDataReference dataReference(buffer); sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedDataLength)); }
bool NetworkResourceLoader::sendBufferMaybeAborting(SharedBuffer& buffer, size_t encodedDataLength) { ASSERT(!isSynchronous()); #if PLATFORM(COCOA) ShareableResource::Handle shareableResourceHandle; NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer(shareableResourceHandle, buffer); if (!shareableResourceHandle.isNull()) { send(Messages::WebResourceLoader::DidReceiveResource(shareableResourceHandle, currentTime())); abort(); return false; } #endif IPC::SharedBufferDataReference dataReference(&buffer); return sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedDataLength)); }
void NetworkResourceLoader::bufferingTimerFired() { ASSERT(m_bufferedData); #if !USE(NETWORK_SESSION) ASSERT(m_handle); #endif if (!m_bufferedData->size()) return; IPC::SharedBufferDataReference dataReference(m_bufferedData.get()); size_t encodedLength = m_bufferedDataEncodedDataLength; m_bufferedData = WebCore::SharedBuffer::create(); m_bufferedDataEncodedDataLength = 0; sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedLength)); }
void NetworkResourceLoader::didReceiveBuffer(ResourceHandle* handle, PassRefPtr<SharedBuffer> buffer, int encodedDataLength) { ASSERT_UNUSED(handle, handle == m_handle); // FIXME (NetworkProcess): For the memory cache we'll also need to cache the response data here. // Such buffering will need to be thread safe, as this callback is happening on a background thread. m_bytesReceived += buffer->size(); #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 ShareableResource::Handle shareableResourceHandle; tryGetShareableHandleFromSharedBuffer(shareableResourceHandle, buffer.get()); if (!shareableResourceHandle.isNull()) { // Since we're delivering this resource by ourselves all at once, we'll abort the resource handle since we don't need anymore callbacks from ResourceHandle. abortInProgressLoad(); send(Messages::WebResourceLoader::DidReceiveResource(shareableResourceHandle, currentTime())); return; } #endif // __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 CoreIPC::DataReference dataReference(reinterpret_cast<const uint8_t*>(buffer->data()), buffer->size()); sendAbortingOnFailure(Messages::WebResourceLoader::DidReceiveData(dataReference, encodedDataLength)); }
void didFailCallback(CFURLDownloadRef, CFErrorRef error, const void* clientInfo) { CoreIPC::DataReference dataReference(0, 0); downloadFromClientInfo(clientInfo)->didFail(ResourceError(error), dataReference); }
void Data::encode(IPC::ArgumentEncoder& encoder) const { encoder << dataReference(); }