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 152777e57229f666d6fda7066f26041a661f0bf7..560c2ba4df8db16114c9ace44e84a3839aa762a1 100644 |
--- a/third_party/WebKit/Source/core/fetch/ImageResource.h |
+++ b/third_party/WebKit/Source/core/fetch/ImageResource.h |
@@ -71,7 +71,10 @@ class CORE_EXPORT ImageResource final |
// If this ImageResource has the Lo-Fi response headers or is a placeholder, |
// reload the full original image with the Lo-Fi state set to off and |
// optionally bypassing the cache. |
- void reloadIfLoFiOrPlaceholder( |
+ // Returns a new ImageResource that is used for reloading if reloading is |
+ // started, and the original ImageResourceContent is attached to the new |
+ // ImageResource. The original ImageResource shouldn't be used anymore. |
+ ImageResource* reloadIfLoFiOrPlaceholder( |
ResourceFetcher*, |
ReloadCachePolicy = ReloadCachePolicy::BypassCache); |
@@ -83,10 +86,11 @@ class CORE_EXPORT ImageResource final |
PassRefPtr<const SharedBuffer> resourceBuffer() const override; |
void appendData(const char*, size_t) override; |
- void error(const ResourceError&) override; |
+ void error(const ResourceError&, ResourceFetcher* fetcherForReload) override; |
void responseReceived(const ResourceResponse&, |
std::unique_ptr<WebDataConsumerHandle>) override; |
- void finish(double finishTime = 0.0) override; |
+ void finish(double finishTime = 0.0, |
+ ResourceFetcher* fetcherForReload = nullptr) override; |
// For compatibility, images keep loading even if there are HTTP errors. |
bool shouldIgnoreHTTPStatusCodeErrors() const override { return true; } |
@@ -130,8 +134,6 @@ class CORE_EXPORT ImageResource final |
void updateImageAndClearBuffer(); |
- void checkNotify() override; |
- |
void destroyDecodedDataIfPossible() override; |
void destroyDecodedDataForFailedRevalidation() override; |
@@ -140,11 +142,14 @@ class CORE_EXPORT ImageResource final |
// new image creation. |
void updateImage(PassRefPtr<SharedBuffer>, |
ImageResourceContent::ClearImageOption, |
- bool allDataReceived); |
+ bool allDataReceived, |
+ ResourceFetcher* fetcherForReload = nullptr); |
void flushImageIfNeeded(TimerBase*); |
bool willPaintBrokenImage() const; |
+ void detachContent(); |
+ |
Member<ImageResourceContent> m_content; |
// Indicates whether updateImage() is called for this resource, or for this |
@@ -159,10 +164,6 @@ class CORE_EXPORT ImageResource final |
MultipartParsingState::WaitingForFirstPart; |
bool m_hasDevicePixelRatioHeaderValue; |
- // Indicates if the ImageResource is currently scheduling a reload, e.g. |
- // because reloadIfLoFi() was called. |
- bool m_isSchedulingReload; |
- |
// Indicates if this ImageResource is either attempting to load a placeholder |
// image, or is a (possibly broken) placeholder image. |
bool m_isPlaceholder; |