diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/loader/cache/CachedRawResource.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/loader/cache/CachedRawResource.h')
-rw-r--r-- | Source/WebCore/loader/cache/CachedRawResource.h | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/Source/WebCore/loader/cache/CachedRawResource.h b/Source/WebCore/loader/cache/CachedRawResource.h index 48e04ffec..7d7468c0e 100644 --- a/Source/WebCore/loader/cache/CachedRawResource.h +++ b/Source/WebCore/loader/cache/CachedRawResource.h @@ -20,19 +20,19 @@ Boston, MA 02110-1301, USA. */ -#ifndef CachedRawResource_h -#define CachedRawResource_h +#pragma once #include "CachedResource.h" namespace WebCore { class CachedResourceClient; +class ResourceTiming; class SubresourceLoader; class CachedRawResource final : public CachedResource { public: - CachedRawResource(ResourceRequest&, Type); + CachedRawResource(CachedResourceRequest&&, Type, SessionID); // FIXME: AssociatedURLLoader shouldn't be a DocumentThreadableLoader and therefore shouldn't // use CachedRawResource. However, it is, and it needs to be able to defer loading. @@ -40,38 +40,44 @@ public: virtual void setDefersLoading(bool); virtual void setDataBufferingPolicy(DataBufferingPolicy); - - // FIXME: This is exposed for the InpsectorInstrumentation for preflights in DocumentThreadableLoader. It's also really lame. + + // FIXME: This is exposed for the InspectorInstrumentation for preflights in DocumentThreadableLoader. It's also really lame. unsigned long identifier() const { return m_identifier; } void clear(); -private: - virtual void didAddClient(CachedResourceClient*) override; - virtual void addDataBuffer(ResourceBuffer*) override; - virtual void addData(const char* data, unsigned length) override; - virtual void finishLoading(ResourceBuffer*) override; + bool canReuse(const ResourceRequest&) const; + + bool wasRedirected() const { return !m_redirectChain.isEmpty(); }; - virtual bool shouldIgnoreHTTPStatusCodeErrors() const override { return true; } - virtual void allClientsRemoved() override; + void finishedTimingForWorkerLoad(ResourceTiming&&); + +private: + void didAddClient(CachedResourceClient&) final; + void addDataBuffer(SharedBuffer&) final; + void addData(const char* data, unsigned length) final; + void finishLoading(SharedBuffer*) final; - virtual void willSendRequest(ResourceRequest&, const ResourceResponse&) override; - virtual void responseReceived(const ResourceResponse&) override; - virtual void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override; + bool shouldIgnoreHTTPStatusCodeErrors() const override { return true; } + void allClientsRemoved() override; - virtual void switchClientsToRevalidatedResource() override; - virtual bool mayTryReplaceEncodedData() const override { return true; } + void redirectReceived(ResourceRequest&, const ResourceResponse&) override; + void responseReceived(const ResourceResponse&) override; + bool shouldCacheResponse(const ResourceResponse&) override; + void didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent) override; - virtual bool canReuse(const ResourceRequest&) const override; + void switchClientsToRevalidatedResource() override; + bool mayTryReplaceEncodedData() const override { return m_allowEncodedDataReplacement; } - const char* calculateIncrementalDataChunk(ResourceBuffer*, unsigned& incrementalDataLength); + const char* calculateIncrementalDataChunk(SharedBuffer*, unsigned& incrementalDataLength); void notifyClientsDataWasReceived(const char* data, unsigned length); #if USE(SOUP) - virtual char* getOrCreateReadBuffer(size_t requestedSize, size_t& actualSize); + char* getOrCreateReadBuffer(size_t requestedSize, size_t& actualSize) override; #endif unsigned long m_identifier; + bool m_allowEncodedDataReplacement; struct RedirectPair { public: @@ -88,6 +94,8 @@ private: Vector<RedirectPair> m_redirectChain; }; -} +} // namespace WebCore -#endif // CachedRawResource_h +SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::CachedRawResource) + static bool isType(const WebCore::CachedResource& resource) { return resource.isMainOrMediaOrRawResource(); } +SPECIALIZE_TYPE_TRAITS_END() |