| Index: third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| index 07888c2cbe7b940b9e39a7772c084c63f4d97b8b..2e353337e7b8dd350f281854b554a6bd7f7a7ed8 100644
|
| --- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
|
| @@ -237,7 +237,10 @@ void ImageResource::didAddClient(ResourceClient* client) {
|
| }
|
|
|
| void ImageResource::destroyDecodedDataForFailedRevalidation() {
|
| - getContent()->clearImage();
|
| + // Clears the image, as we must create a new image for the failed
|
| + // revalidation response.
|
| + getContent()->updateImage(nullptr, ImageResourceContent::ClearAndUpdateImage,
|
| + false);
|
| setDecodedSize(0);
|
| }
|
|
|
| @@ -282,8 +285,8 @@ void ImageResource::appendData(const char* data, size_t length) {
|
|
|
| // Update the image immediately if needed.
|
| if (getContent()->shouldUpdateImageImmediately()) {
|
| - getContent()->updateImage(this->data(),
|
| - ImageResourceContent::KeepExistingImage, false);
|
| + getContent()->updateImage(this->data(), ImageResourceContent::UpdateImage,
|
| + false);
|
| return;
|
| }
|
|
|
| @@ -311,8 +314,8 @@ void ImageResource::flushImageIfNeeded(TimerBase*) {
|
| // to call |updateImage()|.
|
| if (isLoading()) {
|
| m_lastFlushTime = WTF::monotonicallyIncreasingTime();
|
| - getContent()->updateImage(this->data(),
|
| - ImageResourceContent::KeepExistingImage, false);
|
| + getContent()->updateImage(this->data(), ImageResourceContent::UpdateImage,
|
| + false);
|
| }
|
| }
|
|
|
| @@ -337,7 +340,7 @@ void ImageResource::decodeError(bool allDataReceived) {
|
| }
|
|
|
| void ImageResource::updateImageAndClearBuffer() {
|
| - getContent()->updateImage(data(), ImageResourceContent::ClearExistingImage,
|
| + getContent()->updateImage(data(), ImageResourceContent::ClearAndUpdateImage,
|
| true);
|
| clearData();
|
| }
|
| @@ -348,8 +351,7 @@ void ImageResource::finish(double loadFinishTime) {
|
| if (data())
|
| updateImageAndClearBuffer();
|
| } else {
|
| - getContent()->updateImage(data(), ImageResourceContent::KeepExistingImage,
|
| - true);
|
| + getContent()->updateImage(data(), ImageResourceContent::UpdateImage, true);
|
| // As encoded image data can be created from m_image (see
|
| // ImageResource::resourceBuffer(), we don't have to keep m_data. Let's
|
| // clear this. As for the lifetimes of m_image and m_data, see this
|
| @@ -367,8 +369,8 @@ void ImageResource::error(const ResourceError& error) {
|
| // is really needed, or remove it otherwise.
|
| setEncodedSize(0);
|
| Resource::error(error);
|
| - getContent()->clearImageAndNotifyObservers(
|
| - ImageResourceContent::ShouldNotifyFinish);
|
| + getContent()->updateImage(
|
| + nullptr, ImageResourceContent::ClearImageAndNotifyObservers, true);
|
| }
|
|
|
| void ImageResource::responseReceived(
|
| @@ -437,8 +439,8 @@ void ImageResource::reloadIfLoFiOrPlaceholderImage(
|
| } else {
|
| clearData();
|
| setEncodedSize(0);
|
| - getContent()->clearImageAndNotifyObservers(
|
| - ImageResourceContent::DoNotNotifyFinish);
|
| + getContent()->updateImage(
|
| + nullptr, ImageResourceContent::ClearImageAndNotifyObservers, false);
|
| }
|
|
|
| setStatus(NotStarted);
|
|
|