void CachedRawResource::addDataBuffer(ResourceBuffer* data) { CachedResourceHandle<CachedRawResource> protect(this); ASSERT(m_options.dataBufferingPolicy() == BufferData); m_data = data; unsigned incrementalDataLength; const char* incrementalData = calculateIncrementalDataChunk(data, incrementalDataLength); if (data) setEncodedSize(data->size()); notifyClientsDataWasReceived(incrementalData, incrementalDataLength); if (m_options.dataBufferingPolicy() == DoNotBufferData) { if (m_loader) m_loader->setDataBufferingPolicy(DoNotBufferData); clear(); } }
void CachedRawResource::addDataBuffer(SharedBuffer& data) { CachedResourceHandle<CachedRawResource> protectedThis(this); ASSERT(dataBufferingPolicy() == BufferData); m_data = &data; unsigned incrementalDataLength; const char* incrementalData = calculateIncrementalDataChunk(&data, incrementalDataLength); setEncodedSize(data.size()); notifyClientsDataWasReceived(incrementalData, incrementalDataLength); if (dataBufferingPolicy() == DoNotBufferData) { if (m_loader) m_loader->setDataBufferingPolicy(DoNotBufferData); clear(); return; } CachedResource::addDataBuffer(data); }
void CachedRawResource::finishLoading(SharedBuffer* data) { CachedResourceHandle<CachedRawResource> protect(this); DataBufferingPolicy dataBufferingPolicy = this->dataBufferingPolicy(); if (dataBufferingPolicy == BufferData) { m_data = data; unsigned incrementalDataLength; const char* incrementalData = calculateIncrementalDataChunk(data, incrementalDataLength); if (data) setEncodedSize(data->size()); notifyClientsDataWasReceived(incrementalData, incrementalDataLength); } m_allowEncodedDataReplacement = !m_loader->isQuickLookResource(); CachedResource::finishLoading(data); if (dataBufferingPolicy == BufferData && this->dataBufferingPolicy() == DoNotBufferData) { if (m_loader) m_loader->setDataBufferingPolicy(DoNotBufferData); clear(); } }