summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLImageLoader.cpp
diff options
context:
space:
mode:
authorFeng Qian <fqian@google.com>2009-06-18 18:20:56 -0700
committerFeng Qian <fqian@google.com>2009-06-18 18:20:56 -0700
commit1edef79f87f9c52c21d69c87c19f8e2b140a9119 (patch)
treecad337ef493b0d9710bf3ae478cb87cb534f598d /WebCore/html/HTMLImageLoader.cpp
parentb83fc086000e27bc227580bd0e35b9d7bee1179a (diff)
parentc9c4d65c1547996ed3748026904d6e7f09aec2b4 (diff)
downloadexternal_webkit-1edef79f87f9c52c21d69c87c19f8e2b140a9119.zip
external_webkit-1edef79f87f9c52c21d69c87c19f8e2b140a9119.tar.gz
external_webkit-1edef79f87f9c52c21d69c87c19f8e2b140a9119.tar.bz2
Merge commit 'goog/master-webkit-merge' into webkit-merge-44544
Diffstat (limited to 'WebCore/html/HTMLImageLoader.cpp')
-rw-r--r--WebCore/html/HTMLImageLoader.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/WebCore/html/HTMLImageLoader.cpp b/WebCore/html/HTMLImageLoader.cpp
index 5dac8bf..ea53d7e 100644
--- a/WebCore/html/HTMLImageLoader.cpp
+++ b/WebCore/html/HTMLImageLoader.cpp
@@ -42,7 +42,10 @@ HTMLImageLoader::~HTMLImageLoader()
void HTMLImageLoader::dispatchLoadEvent()
{
- element()->dispatchEventForType(image()->errorOccurred() ? eventNames().errorEvent : eventNames().loadEvent, false, false);
+ bool errorOccurred = image()->errorOccurred();
+ if (!errorOccurred && image()->httpStatusCodeErrorOccurred())
+ errorOccurred = element()->hasTagName(HTMLNames::objectTag); // An <object> considers a 404 to be an error and should fire onerror.
+ element()->dispatchEvent(errorOccurred ? eventNames().errorEvent : eventNames().loadEvent, false, false);
}
String HTMLImageLoader::sourceURI(const AtomicString& attr) const
@@ -50,12 +53,14 @@ String HTMLImageLoader::sourceURI(const AtomicString& attr) const
return parseURL(attr);
}
-void HTMLImageLoader::notifyFinished(CachedResource* image)
-{
+void HTMLImageLoader::notifyFinished(CachedResource*)
+{
+ CachedImage* cachedImage = image();
+
Element* elem = element();
- ImageLoader::notifyFinished(image);
+ ImageLoader::notifyFinished(cachedImage);
- if (image->errorOccurred() && elem->hasTagName(HTMLNames::objectTag))
+ if ((cachedImage->errorOccurred() || cachedImage->httpStatusCodeErrorOccurred()) && elem->hasTagName(HTMLNames::objectTag))
static_cast<HTMLObjectElement*>(elem)->renderFallbackContent();
}