summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader/cache/CachedRawResource.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/loader/cache/CachedRawResource.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/loader/cache/CachedRawResource.h')
-rw-r--r--Source/WebCore/loader/cache/CachedRawResource.h52
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()