Index: third_party/WebKit/Source/platform/loader/fetch/Resource.h |
diff --git a/third_party/WebKit/Source/platform/loader/fetch/Resource.h b/third_party/WebKit/Source/platform/loader/fetch/Resource.h |
index 878bd180330cbfe575cc740f476b4e1e654ba281..60f77acf7c8f88448731ef520d116af6a4cd3bd9 100644 |
--- a/third_party/WebKit/Source/platform/loader/fetch/Resource.h |
+++ b/third_party/WebKit/Source/platform/loader/fetch/Resource.h |
@@ -48,6 +48,7 @@ |
namespace blink { |
+class FetchContext; |
class FetchRequest; |
class ResourceClient; |
class ResourceFetcher; |
@@ -99,6 +100,14 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
kReloadAlways, |
}; |
+ class ResourceCallback { |
+ public: |
+ virtual ~ResourceCallback() {} |
+ virtual void schedule(Resource*) = 0; |
+ virtual void cancel(Resource*) = 0; |
+ virtual bool isScheduled(Resource*) const = 0; |
+ }; |
+ |
virtual ~Resource(); |
DECLARE_VIRTUAL_TRACE(); |
@@ -337,8 +346,13 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
Type, |
const AtomicString& fetchInitiatorName); |
+ void finishPendingClients(); |
+ |
protected: |
- Resource(const ResourceRequest&, Type, const ResourceLoaderOptions&); |
+ Resource(const ResourceRequest&, |
+ Type, |
+ const ResourceLoaderOptions&, |
+ FetchContext* = nullptr); |
virtual void checkNotify(); |
@@ -353,8 +367,6 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
void setEncodedSize(size_t); |
void setDecodedSize(size_t); |
- void finishPendingClients(); |
- |
virtual void didAddClient(ResourceClient*); |
void willAddClientOrObserver(PreloadReferencePolicy); |
@@ -409,7 +421,6 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
}; |
private: |
- class ResourceCallback; |
class CachedMetadataHandlerImpl; |
class ServiceWorkerResponseCachedMetadataHandler; |
@@ -422,6 +433,8 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
String reasonNotDeletable() const; |
+ ResourceCallback& resourceCallback(); |
+ |
// MemoryCoordinatorClient overrides: |
void onPurgeMemory() override; |
@@ -476,6 +489,7 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
double m_responseTimestamp; |
TaskRunnerTimer<Resource> m_cancelTimer; |
+ Member<FetchContext> m_fetchContext; |
ResourceRequest m_resourceRequest; |
Member<ResourceLoader> m_loader; |
@@ -490,7 +504,8 @@ class ResourceFactory { |
public: |
virtual Resource* create(const ResourceRequest&, |
const ResourceLoaderOptions&, |
- const String&) const = 0; |
+ const String&, |
+ FetchContext*) const = 0; |
Resource::Type type() const { return m_type; } |
protected: |