Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(985)

Unified Diff: Source/core/loader/ImageLoader.cpp

Issue 205523003: Remove beforeload events. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove more tests Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/loader/ImageLoader.h ('k') | Source/core/xml/parser/XMLDocumentParser.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « Source/core/loader/ImageLoader.h ('k') | Source/core/xml/parser/XMLDocumentParser.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698