| 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 c518cc4d50564e617386a6fa3fc11e706e47094e..92e75d0d9987e9d159c078338ae09e6fe6572b8e 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();
 | 
| @@ -339,8 +348,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();
 | 
|  
 | 
| @@ -355,8 +369,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);
 | 
|  
 | 
| @@ -411,7 +423,6 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>,
 | 
|    };
 | 
|  
 | 
|   private:
 | 
| -  class ResourceCallback;
 | 
|    class CachedMetadataHandlerImpl;
 | 
|    class ServiceWorkerResponseCachedMetadataHandler;
 | 
|  
 | 
| @@ -424,6 +435,8 @@ class PLATFORM_EXPORT Resource : public GarbageCollectedFinalized<Resource>,
 | 
|  
 | 
|    String ReasonNotDeletable() const;
 | 
|  
 | 
| +  ResourceCallback& GetResourceCallback();
 | 
| +
 | 
|    // MemoryCoordinatorClient overrides:
 | 
|    void OnPurgeMemory() override;
 | 
|  
 | 
| @@ -478,6 +491,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_;
 | 
| @@ -492,7 +506,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:
 | 
| 
 |