| Index: third_party/WebKit/Source/core/loader/ImageLoader.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/ImageLoader.cpp b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
|
| index 74f02520228e0228d8772d8930f9f31b99fff916..b0fc819f4cbcb87768ad6e22b8d81b104fe5ecb9 100644
|
| --- a/third_party/WebKit/Source/core/loader/ImageLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
|
| @@ -519,6 +519,16 @@ void ImageLoader::ImageNotifyFinished(ImageResourceContent* resource) {
|
| DCHECK(failed_load_url_.IsEmpty());
|
| DCHECK_EQ(resource, image_.Get());
|
|
|
| + // |has_pending_load_event_| is always false and |image_complete_| is
|
| + // always true for entire ImageDocument loading for historical reason.
|
| + // DoUpdateFromElement() is not called and SetImageForImageDocument()
|
| + // is called instead for ImageDocument loading.
|
| + // TODO(hiroshige): Turn the CHECK()s to DCHECK()s before going to beta.
|
| + if (loading_image_document_)
|
| + CHECK(image_complete_);
|
| + else
|
| + CHECK(!image_complete_);
|
| +
|
| image_complete_ = true;
|
|
|
| // Update ImageAnimationPolicy for image_.
|
| @@ -531,8 +541,12 @@ void ImageLoader::ImageNotifyFinished(ImageResourceContent* resource) {
|
| ToSVGImage(image_->GetImage())
|
| ->UpdateUseCounters(GetElement()->GetDocument());
|
|
|
| - if (!has_pending_load_event_)
|
| + if (loading_image_document_) {
|
| + CHECK(!has_pending_load_event_);
|
| return;
|
| + }
|
| +
|
| + CHECK(has_pending_load_event_);
|
|
|
| if (resource->ErrorOccurred()) {
|
| LoadEventSender().CancelEvent(this);
|
| @@ -632,10 +646,10 @@ void ImageLoader::DispatchPendingEvent(ImageEventSender* event_sender) {
|
| }
|
|
|
| void ImageLoader::DispatchPendingLoadEvent() {
|
| - if (!has_pending_load_event_)
|
| - return;
|
| + CHECK(has_pending_load_event_);
|
| if (!image_)
|
| return;
|
| + CHECK(image_complete_);
|
| has_pending_load_event_ = false;
|
| if (GetElement()->GetDocument().GetFrame())
|
| DispatchLoadEvent();
|
| @@ -647,8 +661,7 @@ void ImageLoader::DispatchPendingLoadEvent() {
|
| }
|
|
|
| void ImageLoader::DispatchPendingErrorEvent() {
|
| - if (!has_pending_error_event_)
|
| - return;
|
| + CHECK(has_pending_error_event_);
|
| has_pending_error_event_ = false;
|
|
|
| if (GetElement()->GetDocument().GetFrame())
|
|
|