| Index: third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.cpp b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| index 7e04c4e4b68bf074b032cf960663411322bf8ba8..861ca24e5593d5c717342eeda851d9ba20e75a74 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
|
| @@ -237,8 +237,7 @@ void ImageResource::didAddClient(ResourceClient* client) {
|
| }
|
|
|
| void ImageResource::destroyDecodedDataForFailedRevalidation() {
|
| - getContent()->updateImage(nullptr, ImageResourceContent::ClearExistingImage,
|
| - false);
|
| + updateImage(nullptr, ImageResourceContent::ClearExistingImage, false);
|
| setDecodedSize(0);
|
| }
|
|
|
| @@ -290,8 +289,7 @@ void ImageResource::appendData(const char* data, size_t length) {
|
| if (!getContent()->isSizeAvailable() ||
|
| (getContent()->hasImage() &&
|
| getContent()->getImage()->maybeAnimated())) {
|
| - getContent()->updateImage(this->data(),
|
| - ImageResourceContent::KeepExistingImage, false);
|
| + updateImage(this->data(), ImageResourceContent::KeepExistingImage, false);
|
| return;
|
| }
|
|
|
| @@ -319,8 +317,7 @@ void ImageResource::flushImageIfNeeded(TimerBase*) {
|
| // to call |updateImage()|.
|
| if (isLoading()) {
|
| m_lastFlushTime = WTF::monotonicallyIncreasingTime();
|
| - getContent()->updateImage(this->data(),
|
| - ImageResourceContent::KeepExistingImage, false);
|
| + updateImage(this->data(), ImageResourceContent::KeepExistingImage, false);
|
| }
|
| }
|
|
|
| @@ -345,8 +342,7 @@ void ImageResource::decodeError(bool allDataReceived) {
|
| }
|
|
|
| void ImageResource::updateImageAndClearBuffer() {
|
| - getContent()->updateImage(data(), ImageResourceContent::ClearExistingImage,
|
| - true);
|
| + updateImage(data(), ImageResourceContent::ClearExistingImage, true);
|
| clearData();
|
| }
|
|
|
| @@ -356,8 +352,7 @@ void ImageResource::finish(double loadFinishTime) {
|
| if (data())
|
| updateImageAndClearBuffer();
|
| } else {
|
| - getContent()->updateImage(data(), ImageResourceContent::KeepExistingImage,
|
| - true);
|
| + updateImage(data(), ImageResourceContent::KeepExistingImage, 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
|
| @@ -373,8 +368,7 @@ void ImageResource::error(const ResourceError& error) {
|
| m_multipartParser->cancel();
|
| clearData();
|
| Resource::error(error);
|
| - getContent()->updateImage(nullptr, ImageResourceContent::ClearExistingImage,
|
| - true);
|
| + updateImage(nullptr, ImageResourceContent::ClearExistingImage, true);
|
| }
|
|
|
| void ImageResource::responseReceived(
|
| @@ -440,8 +434,7 @@ void ImageResource::reloadIfLoFiOrPlaceholder(
|
| } else {
|
| clearData();
|
| setEncodedSize(0);
|
| - getContent()->updateImage(nullptr, ImageResourceContent::ClearExistingImage,
|
| - false);
|
| + updateImage(nullptr, ImageResourceContent::ClearExistingImage, false);
|
| }
|
|
|
| setStatus(NotStarted);
|
| @@ -463,6 +456,7 @@ void ImageResource::onePartInMultipartReceived(
|
| return;
|
| }
|
| updateImageAndClearBuffer();
|
| + m_isUpdateImageCalled = false;
|
|
|
| if (m_multipartParsingState == MultipartParsingState::ParsingFirstPart) {
|
| m_multipartParsingState = MultipartParsingState::FinishedParsingFirstPart;
|
| @@ -505,4 +499,15 @@ ResourcePriority ImageResource::priorityFromObservers() {
|
| return getContent()->priorityFromObservers();
|
| }
|
|
|
| +void ImageResource::updateImage(
|
| + PassRefPtr<SharedBuffer> sharedBuffer,
|
| + ImageResourceContent::ClearImageOption clearImageOption,
|
| + bool allDataReceived) {
|
| + if (!m_isUpdateImageCalled)
|
| + clearImageOption = ImageResourceContent::ClearExistingImage;
|
| + m_isUpdateImageCalled = true;
|
| + getContent()->updateImage(std::move(sharedBuffer), clearImageOption,
|
| + allDataReceived);
|
| +}
|
| +
|
| } // namespace blink
|
|
|