Index: third_party/WebKit/Source/core/fetch/ImageResource.h |
diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.h b/third_party/WebKit/Source/core/fetch/ImageResource.h |
index cc4f7aba07f3f8a0c3763d2779538d2ef5877059..e085120358f1d814ad63137b00984ff5f7035b2f 100644 |
--- a/third_party/WebKit/Source/core/fetch/ImageResource.h |
+++ b/third_party/WebKit/Source/core/fetch/ImageResource.h |
@@ -35,19 +35,20 @@ |
namespace blink { |
-class ImageResourceClient; |
class FetchRequest; |
-class ResourceFetcher; |
class FloatSize; |
+class ImageResourceObserver; |
class Length; |
class MemoryCache; |
+class ResourceClient; |
+class ResourceFetcher; |
class SecurityOrigin; |
class CORE_EXPORT ImageResource final : public Resource, public ImageObserver, public MultipartImageResourceParser::Client { |
friend class MemoryCache; |
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(ImageResource); |
public: |
- using ClientType = ImageResourceClient; |
+ using ClientType = ResourceClient; |
static PassRefPtrWillBeRawPtr<ImageResource> fetch(FetchRequest&, ResourceFetcher*); |
@@ -99,10 +100,13 @@ public: |
bool isMultipartImage() const { return m_multipartParser; } |
- void didAddClient(ResourceClient*) override; |
- void didRemoveClient(ResourceClient*) override; |
+ void addObserver(ImageResourceObserver*); |
+ void removeObserver(ImageResourceObserver*); |
+ bool hasClientsOrObservers() const override { return Resource::hasClientsOrObservers() || !m_observers.isEmpty(); } |
+ |
+ ResourcePriority priorityFromObservers() override; |
- void allClientsRemoved() override; |
+ void allClientsAndObserversRemoved() override; |
void appendData(const char*, size_t) override; |
void error(Resource::Status) override; |
@@ -164,6 +168,7 @@ private: |
PersistentWillBeMember<MultipartImageResourceParser> m_multipartParser; |
RefPtr<blink::Image> m_image; |
bool m_hasDevicePixelRatioHeaderValue; |
+ HashCountedSet<ImageResourceObserver*> m_observers; |
}; |
DEFINE_RESOURCE_TYPE_CASTS(Image); |