Title: [117336] trunk/Source/WebCore
Revision
117336
Author
jp...@apple.com
Date
2012-05-16 13:56:50 -0700 (Wed, 16 May 2012)

Log Message

ImageLoader can still dispatch beforeload events for ImageDocuments
https://bugs.webkit.org/show_bug.cgi?id=86658
<rdar://problem/11465863>

Reviewed by Brady Eidson.

Prevent flags regarding sending beforeload events from being set on ImageDocuments.

No new tests; testing framework doesn't allow for testing ImageDocuments with injected _javascript_.

* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (117335 => 117336)


--- trunk/Source/WebCore/ChangeLog	2012-05-16 20:50:53 UTC (rev 117335)
+++ trunk/Source/WebCore/ChangeLog	2012-05-16 20:56:50 UTC (rev 117336)
@@ -1,3 +1,18 @@
+2012-05-16  Jeffrey Pfau  <jp...@apple.com>
+
+        ImageLoader can still dispatch beforeload events for ImageDocuments
+        https://bugs.webkit.org/show_bug.cgi?id=86658
+        <rdar://problem/11465863>
+
+        Reviewed by Brady Eidson.
+
+        Prevent flags regarding sending beforeload events from being set on ImageDocuments.
+
+        No new tests; testing framework doesn't allow for testing ImageDocuments with injected _javascript_.
+
+        * loader/ImageLoader.cpp:
+        (WebCore::ImageLoader::updateFromElement):
+
 2012-05-16  Julien Chaffraix  <jchaffr...@webkit.org>
 
         layerX/layerY warning should be removed

Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (117335 => 117336)


--- trunk/Source/WebCore/loader/ImageLoader.cpp	2012-05-16 20:50:53 UTC (rev 117335)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp	2012-05-16 20:56:50 UTC (rev 117336)
@@ -194,15 +194,18 @@
             errorEventSender().cancelEvent(this);
 
         m_image = newImage;
-        m_hasPendingBeforeLoadEvent = newImage;
+        m_hasPendingBeforeLoadEvent = !m_element->document()->isImageDocument() && newImage;
         m_hasPendingLoadEvent = newImage;
         m_imageComplete = !newImage;
 
         if (newImage) {
-            if (!m_element->document()->hasListenerType(Document::BEFORELOAD_LISTENER) || m_element->document()->isImageDocument())
-                dispatchPendingBeforeLoadEvent();
-            else
-                beforeLoadEventSender().dispatchEventSoon(this);
+            if (!m_element->document()->isImageDocument()) {
+                if (!m_element->document()->hasListenerType(Document::BEFORELOAD_LISTENER))
+                    dispatchPendingBeforeLoadEvent();
+                else
+                    beforeLoadEventSender().dispatchEventSoon(this);
+            } else
+                updateRenderer();
 
             // If newImage is cached, addClient() will result in the load event
             // being queued to fire. Ensure this happens after beforeload is
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to