| Index: Source/core/loader/ImageLoader.cpp
|
| diff --git a/Source/core/loader/ImageLoader.cpp b/Source/core/loader/ImageLoader.cpp
|
| index ff02d1e6ec65ee79518a522984a61d7344267abf..f177dd996f833c9b8ce095731bff8715c335309c 100644
|
| --- a/Source/core/loader/ImageLoader.cpp
|
| +++ b/Source/core/loader/ImageLoader.cpp
|
| @@ -38,12 +38,6 @@
|
|
|
| namespace WebCore {
|
|
|
| -static ImageEventSender& beforeLoadEventSender()
|
| -{
|
| - DEFINE_STATIC_LOCAL(ImageEventSender, sender, (EventTypeNames::beforeload));
|
| - return sender;
|
| -}
|
| -
|
| static ImageEventSender& loadEventSender()
|
| {
|
| DEFINE_STATIC_LOCAL(ImageEventSender, sender, (EventTypeNames::load));
|
| @@ -65,7 +59,6 @@ ImageLoader::ImageLoader(Element* element)
|
| : m_element(element)
|
| , m_image(0)
|
| , m_derefElementTimer(this, &ImageLoader::timerFired)
|
| - , m_hasPendingBeforeLoadEvent(false)
|
| , m_hasPendingLoadEvent(false)
|
| , m_hasPendingErrorEvent(false)
|
| , m_imageComplete(true)
|
| @@ -80,10 +73,6 @@ ImageLoader::~ImageLoader()
|
| if (m_image)
|
| m_image->removeClient(this);
|
|
|
| - ASSERT(m_hasPendingBeforeLoadEvent || !beforeLoadEventSender().hasPendingEvents(this));
|
| - if (m_hasPendingBeforeLoadEvent)
|
| - beforeLoadEventSender().cancelEvent(this);
|
| -
|
| ASSERT(m_hasPendingLoadEvent || !loadEventSender().hasPendingEvents(this));
|
| if (m_hasPendingLoadEvent)
|
| loadEventSender().cancelEvent(this);
|
| @@ -114,10 +103,6 @@ void ImageLoader::setImageWithoutConsideringPendingLoadEvent(ImageResource* newI
|
| if (newImage != oldImage) {
|
| sourceImageChanged();
|
| m_image = newImage;
|
| - if (m_hasPendingBeforeLoadEvent) {
|
| - beforeLoadEventSender().cancelEvent(this);
|
| - m_hasPendingBeforeLoadEvent = false;
|
| - }
|
| if (m_hasPendingLoadEvent) {
|
| loadEventSender().cancelEvent(this);
|
| m_hasPendingLoadEvent = false;
|
| @@ -191,10 +176,6 @@ void ImageLoader::updateFromElement()
|
| if (newImage != oldImage) {
|
| sourceImageChanged();
|
|
|
| - if (m_hasPendingBeforeLoadEvent) {
|
| - beforeLoadEventSender().cancelEvent(this);
|
| - m_hasPendingBeforeLoadEvent = false;
|
| - }
|
| if (m_hasPendingLoadEvent) {
|
| loadEventSender().cancelEvent(this);
|
| m_hasPendingLoadEvent = false;
|
| @@ -210,18 +191,11 @@ void ImageLoader::updateFromElement()
|
| }
|
|
|
| m_image = newImage;
|
| - m_hasPendingBeforeLoadEvent = !m_element->document().isImageDocument() && newImage;
|
| m_hasPendingLoadEvent = newImage;
|
| m_imageComplete = !newImage;
|
|
|
| if (newImage) {
|
| - if (!m_element->document().isImageDocument()) {
|
| - if (!m_element->document().hasListenerType(Document::BEFORELOAD_LISTENER))
|
| - dispatchPendingBeforeLoadEvent();
|
| - else
|
| - beforeLoadEventSender().dispatchEventSoon(this);
|
| - } else
|
| - updateRenderer();
|
| + updateRenderer();
|
|
|
| // If newImage is cached, addClient() will result in the load event
|
| // being queued to fire. Ensure this happens after beforeload is
|
| @@ -255,8 +229,7 @@ void ImageLoader::notifyFinished(Resource* resource)
|
| ASSERT(resource == m_image.get());
|
|
|
| m_imageComplete = true;
|
| - if (!hasPendingBeforeLoadEvent())
|
| - updateRenderer();
|
| + updateRenderer();
|
|
|
| if (!m_hasPendingLoadEvent)
|
| return;
|
| @@ -348,45 +321,14 @@ void ImageLoader::timerFired(Timer<ImageLoader>*)
|
|
|
| void ImageLoader::dispatchPendingEvent(ImageEventSender* eventSender)
|
| {
|
| - ASSERT(eventSender == &beforeLoadEventSender() || eventSender == &loadEventSender() || eventSender == &errorEventSender());
|
| + ASSERT(eventSender == &loadEventSender() || eventSender == &errorEventSender());
|
| const AtomicString& eventType = eventSender->eventType();
|
| - if (eventType == EventTypeNames::beforeload)
|
| - dispatchPendingBeforeLoadEvent();
|
| if (eventType == EventTypeNames::load)
|
| dispatchPendingLoadEvent();
|
| if (eventType == EventTypeNames::error)
|
| dispatchPendingErrorEvent();
|
| }
|
|
|
| -void ImageLoader::dispatchPendingBeforeLoadEvent()
|
| -{
|
| - if (!m_hasPendingBeforeLoadEvent)
|
| - return;
|
| - if (!m_image)
|
| - return;
|
| - if (!m_element->document().frame())
|
| - return;
|
| - m_hasPendingBeforeLoadEvent = false;
|
| - if (m_element->dispatchBeforeLoadEvent(m_image->url().string())) {
|
| - updateRenderer();
|
| - return;
|
| - }
|
| - if (m_image) {
|
| - m_image->removeClient(this);
|
| - m_image = 0;
|
| - }
|
| -
|
| - loadEventSender().cancelEvent(this);
|
| - m_hasPendingLoadEvent = false;
|
| -
|
| - if (isHTMLObjectElement(*m_element))
|
| - toHTMLObjectElement(*m_element).renderFallbackContent();
|
| -
|
| - // Only consider updating the protection ref-count of the Element immediately before returning
|
| - // from this function as doing so might result in the destruction of this ImageLoader.
|
| - updatedHasPendingEvent();
|
| -}
|
| -
|
| void ImageLoader::dispatchPendingLoadEvent()
|
| {
|
| if (!m_hasPendingLoadEvent)
|
| @@ -434,11 +376,6 @@ void ImageLoader::removeClient(ImageLoaderClient* client)
|
| m_clients.remove(client);
|
| }
|
|
|
| -void ImageLoader::dispatchPendingBeforeLoadEvents()
|
| -{
|
| - beforeLoadEventSender().dispatchPendingEvents();
|
| -}
|
| -
|
| void ImageLoader::dispatchPendingLoadEvents()
|
| {
|
| loadEventSender().dispatchPendingEvents();
|
|
|