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 0054b138e7b1deeeee0105eaa03f6bee4a0089ac..0293217e0aac6b7b4a17a3afa3e846f76f715f1b 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 FetchParameters; |
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(); |
@@ -336,8 +345,13 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
Type, |
const AtomicString& fetch_initiator_name); |
+ void FinishPendingClients(); |
+ |
protected: |
- Resource(const ResourceRequest&, Type, const ResourceLoaderOptions&); |
+ Resource(const ResourceRequest&, |
+ Type, |
+ const ResourceLoaderOptions&, |
+ FetchContext* = nullptr); |
virtual void CheckNotify(); |
@@ -352,8 +366,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); |
@@ -408,7 +420,6 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
}; |
private: |
- class ResourceCallback; |
class CachedMetadataHandlerImpl; |
class ServiceWorkerResponseCachedMetadataHandler; |
@@ -421,6 +432,8 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
String ReasonNotDeletable() const; |
+ ResourceCallback& GetResourceCallback(); |
+ |
// MemoryCoordinatorClient overrides: |
void OnPurgeMemory() override; |
@@ -475,6 +488,7 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>, |
double response_timestamp_; |
TaskRunnerTimer<Resource> cancel_timer_; |
+ Member<FetchContext> fetch_context_; |
ResourceRequest resource_request_; |
Member<ResourceLoader> loader_; |
@@ -489,7 +503,8 @@ class ResourceFactory { |
public: |
virtual Resource* Create(const ResourceRequest&, |
const ResourceLoaderOptions&, |
- const String&) const = 0; |
+ const String&, |
+ FetchContext*) const = 0; |
Resource::Type GetType() const { return type_; } |
protected: |