| Index: third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp
|
| index b3f3a4f3f184e47f3be1b0653ba5d48861f8223a..29d2b3ff761f0b606f7f33f471e132b9f395652b 100644
|
| --- a/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/resource/ImageResourceContent.cpp
|
| @@ -398,6 +398,15 @@ void ImageResourceContent::NotifyStartLoad() {
|
| content_status_ = ResourceStatus::kPending;
|
| }
|
|
|
| +void ImageResourceContent::LoadCompleted(const blink::Image* image) {
|
| + if (image_ != image)
|
| + return;
|
| + CHECK_EQ(size_available_, Image::kSizeAvailableAndLoadingAsynchronously);
|
| + size_available_ = Image::kSizeAvailable;
|
| + UpdateToLoadedContentStatus(ResourceStatus::kCached);
|
| + NotifyObservers(kShouldNotifyFinish);
|
| +}
|
| +
|
| ImageResourceContent::UpdateImageResult ImageResourceContent::UpdateImage(
|
| PassRefPtr<SharedBuffer> data,
|
| ResourceStatus status,
|
| @@ -438,6 +447,10 @@ ImageResourceContent::UpdateImageResult ImageResourceContent::UpdateImage(
|
| image_ = CreateImage();
|
| DCHECK(image_);
|
| size_available_ = image_->SetData(std::move(data), all_data_received);
|
| + if (!all_data_received) {
|
| + DCHECK_NE(size_available_,
|
| + Image::kSizeAvailableAndLoadingAsynchronously);
|
| + }
|
| }
|
|
|
| // Go ahead and tell our observers to try to draw if we have either
|
| @@ -464,8 +477,8 @@ ImageResourceContent::UpdateImageResult ImageResourceContent::UpdateImage(
|
| // Notifies the observers.
|
| // It would be nice to only redraw the decoded band of the image, but with the
|
| // current design (decoding delayed until painting) that seems hard.
|
| -
|
| - if (all_data_received) {
|
| + if (all_data_received &&
|
| + size_available_ != Image::kSizeAvailableAndLoadingAsynchronously) {
|
| UpdateToLoadedContentStatus(status);
|
| NotifyObservers(kShouldNotifyFinish);
|
| } else {
|
|
|