| 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 86f65618292a28c53500d98bb06686c25897ba40..994069b1c57c042f1571d49393bad2062263d0b1 100644
|
| --- a/third_party/WebKit/Source/core/loader/ImageLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
|
| @@ -297,6 +297,7 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up
|
| if (!newImage && !pageIsBeingDismissed(&document)) {
|
| crossSiteOrCSPViolationOccurred(imageSourceURL);
|
| dispatchErrorEvent();
|
| + dispatchLoadendEventSoon();
|
| } else {
|
| clearFailedLoadURL();
|
| }
|
| @@ -304,6 +305,7 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up
|
| if (!imageSourceURL.isNull()) {
|
| // Fire an error event if the url string is not empty, but the KURL is.
|
| dispatchErrorEvent();
|
| + dispatchLoadendEventSoon();
|
| }
|
| noImageResourceToLoad();
|
| }
|
| @@ -547,12 +549,13 @@ void ImageLoader::timerFired(TimerBase*)
|
| void ImageLoader::dispatchPendingEvent(ImageEventSender* eventSender)
|
| {
|
| RESOURCE_LOADING_DVLOG(1) << "ImageLoader::dispatchPendingEvent " << this;
|
| - ASSERT(eventSender == &loadEventSender() || eventSender == &errorEventSender());
|
| const AtomicString& eventType = eventSender->eventType();
|
| if (eventType == EventTypeNames::load)
|
| dispatchPendingLoadEvent();
|
| if (eventType == EventTypeNames::error)
|
| dispatchPendingErrorEvent();
|
| + if (eventType == EventTypeNames::loadend)
|
| + dispatchPendingLoadendEvent();
|
| }
|
|
|
| void ImageLoader::dispatchPendingLoadEvent()
|
| @@ -584,6 +587,15 @@ void ImageLoader::dispatchPendingErrorEvent()
|
| updatedHasPendingEvent();
|
| }
|
|
|
| +void ImageLoader::dispatchPendingLoadendEvent()
|
| +{
|
| + if (element()->document().frame()) {
|
| + dispatchLoadendEvent();
|
| + }
|
| +
|
| + updatedHasPendingEvent();
|
| +}
|
| +
|
| bool ImageLoader::getImageAnimationPolicy(ImageAnimationPolicy& policy)
|
| {
|
| if (!element()->document().settings())
|
|
|