[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
antti at apple.com
antti at apple.com
Wed Dec 22 16:33:37 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 02cdd03cf5f5feab66718269e825519c8e50633b
Author: antti at apple.com <antti at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Nov 25 20:29:37 2010 +0000
https://bugs.webkit.org/show_bug.cgi?id=50078
Simplify CachedResource error handling code by getting rid of the m_httpStatusCodeErrorOccurred boolean.
Reviewed by Dan Bernstein.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
* loader/cache/CachedImage.h:
(WebCore::CachedImage::shouldIgnoreHTTPStatusCodeErrors):
* loader/cache/CachedResource.h:
(WebCore::CachedResource::shouldIgnoreHTTPStatusCodeErrors):
(WebCore::CachedResource::httpStatusCodeErrorOccurred):
* loader/loader.cpp:
(WebCore::Loader::didReceiveData):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72743 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d9f2b0c..281c51f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-11-25 Antti Koivisto <antti at apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ https://bugs.webkit.org/show_bug.cgi?id=50078
+ Simplify CachedResource error handling code by getting rid of the m_httpStatusCodeErrorOccurred boolean.
+
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::CachedImage):
+ * loader/cache/CachedImage.h:
+ (WebCore::CachedImage::shouldIgnoreHTTPStatusCodeErrors):
+ * loader/cache/CachedResource.h:
+ (WebCore::CachedResource::shouldIgnoreHTTPStatusCodeErrors):
+ (WebCore::CachedResource::httpStatusCodeErrorOccurred):
+ * loader/loader.cpp:
+ (WebCore::Loader::didReceiveData):
+
2010-11-25 Andreas Kling <kling at webkit.org>
Reviewed by Tor Arne Vestbø.
diff --git a/WebCore/html/HTMLImageLoader.cpp b/WebCore/html/HTMLImageLoader.cpp
index f620542..a1a3b26 100644
--- a/WebCore/html/HTMLImageLoader.cpp
+++ b/WebCore/html/HTMLImageLoader.cpp
@@ -48,7 +48,7 @@ HTMLImageLoader::~HTMLImageLoader()
void HTMLImageLoader::dispatchLoadEvent()
{
bool errorOccurred = image()->errorOccurred();
- if (!errorOccurred && image()->httpStatusCodeErrorOccurred())
+ if (!errorOccurred && image()->response().httpStatusCode() >= 400)
errorOccurred = element()->hasTagName(HTMLNames::objectTag); // An <object> considers a 404 to be an error and should fire onerror.
element()->dispatchEvent(Event::create(errorOccurred ? eventNames().errorEvent : eventNames().loadEvent, false, false));
}
@@ -65,8 +65,9 @@ void HTMLImageLoader::notifyFinished(CachedResource*)
Element* elem = element();
ImageLoader::notifyFinished(cachedImage);
+ bool loadError = cachedImage->errorOccurred() || cachedImage->response().httpStatusCode() >= 400;
#if USE(JSC)
- if (!cachedImage->errorOccurred() && !cachedImage->httpStatusCodeErrorOccurred()) {
+ if (!loadError) {
if (!elem->inDocument()) {
JSC::JSGlobalData* globalData = JSDOMWindowBase::commonJSGlobalData();
globalData->heap.reportExtraMemoryCost(cachedImage->encodedSize());
@@ -74,7 +75,7 @@ void HTMLImageLoader::notifyFinished(CachedResource*)
}
#endif
- if ((cachedImage->errorOccurred() || cachedImage->httpStatusCodeErrorOccurred()) && elem->hasTagName(HTMLNames::objectTag))
+ if (loadError && elem->hasTagName(HTMLNames::objectTag))
static_cast<HTMLObjectElement*>(elem)->renderFallbackContent();
}
diff --git a/WebCore/loader/cache/CachedImage.cpp b/WebCore/loader/cache/CachedImage.cpp
index d5d167d..29baef8 100644
--- a/WebCore/loader/cache/CachedImage.cpp
+++ b/WebCore/loader/cache/CachedImage.cpp
@@ -55,7 +55,6 @@ CachedImage::CachedImage(const String& url)
: CachedResource(url, ImageResource)
, m_image(0)
, m_decodedDataDeletionTimer(this, &CachedImage::decodedDataDeletionTimerFired)
- , m_httpStatusCodeErrorOccurred(false)
{
setStatus(Unknown);
}
@@ -64,7 +63,6 @@ CachedImage::CachedImage(Image* image)
: CachedResource(String(), ImageResource)
, m_image(image)
, m_decodedDataDeletionTimer(this, &CachedImage::decodedDataDeletionTimerFired)
- , m_httpStatusCodeErrorOccurred(false)
{
setStatus(Cached);
setLoading(false);
@@ -307,7 +305,7 @@ void CachedImage::error(CachedResource::Status status)
{
clear();
setStatus(status);
- ASSERT(errorOccurred() || httpStatusCodeErrorOccurred());
+ ASSERT(errorOccurred());
m_data.clear();
notifyObservers();
setLoading(false);
diff --git a/WebCore/loader/cache/CachedImage.h b/WebCore/loader/cache/CachedImage.h
index af36534..e889ea0 100644
--- a/WebCore/loader/cache/CachedImage.h
+++ b/WebCore/loader/cache/CachedImage.h
@@ -67,8 +67,8 @@ public:
virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived);
virtual void error(CachedResource::Status);
- virtual void httpStatusCodeError() { m_httpStatusCodeErrorOccurred = true; }
- bool httpStatusCodeErrorOccurred() const { return m_httpStatusCodeErrorOccurred; }
+ // For compatibility, images keep loading even if there are HTTP errors.
+ virtual bool shouldIgnoreHTTPStatusCodeErrors() const { return true; }
void checkNotify();
@@ -97,7 +97,6 @@ private:
RefPtr<Image> m_image;
Timer<CachedImage> m_decodedDataDeletionTimer;
- bool m_httpStatusCodeErrorOccurred;
};
}
diff --git a/WebCore/loader/cache/CachedResource.h b/WebCore/loader/cache/CachedResource.h
index ed60f84..9a54c53 100644
--- a/WebCore/loader/cache/CachedResource.h
+++ b/WebCore/loader/cache/CachedResource.h
@@ -85,7 +85,8 @@ public:
virtual String encoding() const { return String(); }
virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived);
virtual void error(CachedResource::Status) { }
- virtual void httpStatusCodeError() { error(LoadError); } // Images keep loading in spite of HTTP errors (for legacy compat with <img>, etc.).
+
+ virtual bool shouldIgnoreHTTPStatusCodeErrors() const { return false; }
const String &url() const { return m_url; }
Type type() const { return static_cast<Type>(m_type); }
diff --git a/WebCore/loader/loader.cpp b/WebCore/loader/loader.cpp
index 1d32f82..af4d7c7 100644
--- a/WebCore/loader/loader.cpp
+++ b/WebCore/loader/loader.cpp
@@ -323,7 +323,8 @@ void Loader::didReceiveData(SubresourceLoader* loader, const char* data, int siz
return;
if (resource->response().httpStatusCode() >= 400) {
- resource->httpStatusCodeError();
+ if (!resource->shouldIgnoreHTTPStatusCodeErrors())
+ resource->error(CachedResource::LoadError);
return;
}
@@ -336,7 +337,7 @@ void Loader::didReceiveData(SubresourceLoader* loader, const char* data, int siz
} else if (request->isIncremental())
resource->data(loader->resourceData(), false);
}
-
+
void Loader::didReceiveCachedMetadata(SubresourceLoader* loader, const char* data, int size)
{
Request* request = m_requestsLoading.get(loader);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list