summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-06-15 09:06:43 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-06-15 09:31:31 (GMT)
commitc411f16870f112c3407c28c22b617f613a82cff4 (patch)
tree29a1bcd590c8b31af2aab445bfe8a978dc5bf582 /src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
parent3d77b56b32a0c53ec0bbfaa07236fedb900ff336 (diff)
downloadQt-c411f16870f112c3407c28c22b617f613a82cff4.zip
Qt-c411f16870f112c3407c28c22b617f613a82cff4.tar.gz
Qt-c411f16870f112c3407c28c22b617f613a82cff4.tar.bz2
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit-4.6-snapshot-15062009 ( 65232bf00dc494ebfd978f998c88f58d18ecce1e )
Diffstat (limited to 'src/3rdparty/webkit/WebCore/loader/DocLoader.cpp')
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocLoader.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp b/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
index 27c1552..c0e3f6f 100644
--- a/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
+++ b/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
@@ -3,6 +3,7 @@
Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved.
+ Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -36,6 +37,7 @@
#include "CString.h"
#include "Document.h"
#include "DOMWindow.h"
+#include "HTMLElement.h"
#include "Frame.h"
#include "FrameLoader.h"
#include "loader.h"
@@ -64,6 +66,9 @@ DocLoader::~DocLoader()
for (DocumentResourceMap::iterator it = m_documentResources.begin(); it != end; ++it)
it->second->setDocLoader(0);
m_cache->removeDocLoader(this);
+
+ // Make sure no requests still point to this DocLoader
+ ASSERT(m_requestCount == 0);
}
Frame* DocLoader::frame() const
@@ -191,7 +196,7 @@ CachedResource* DocLoader::requestResource(CachedResource::Type type, const Stri
{
KURL fullURL = m_doc->completeURL(url);
- if (!canRequest(type, fullURL))
+ if (!fullURL.isValid() || !canRequest(type, fullURL))
return 0;
if (cache()->disabled()) {
@@ -266,11 +271,16 @@ void DocLoader::setAutoLoadImages(bool enable)
CachePolicy DocLoader::cachePolicy() const
{
- return frame() ? frame()->loader()->cachePolicy() : CachePolicyVerify;
+ return frame() ? frame()->loader()->subresourceCachePolicy() : CachePolicyVerify;
}
void DocLoader::removeCachedResource(CachedResource* resource) const
{
+#ifndef NDEBUG
+ DocumentResourceMap::iterator it = m_documentResources.find(resource->url());
+ if (it != m_documentResources.end())
+ ASSERT(it->second.get() == resource);
+#endif
m_documentResources.remove(resource->url());
}
@@ -339,7 +349,9 @@ void DocLoader::checkForPendingPreloads()
return;
for (unsigned i = 0; i < count; ++i) {
PendingPreload& preload = m_pendingPreloads[i];
- requestPreload(preload.m_type, preload.m_url, preload.m_charset);
+ // Don't request preload if the resource already loaded normally (this will result in double load if the page is being reloaded with cached results ignored).
+ if (!cachedResource(m_doc->completeURL(preload.m_url)))
+ requestPreload(preload.m_type, preload.m_url, preload.m_charset);
}
m_pendingPreloads.clear();
}
@@ -377,6 +389,11 @@ void DocLoader::clearPreloads()
m_preloads.clear();
}
+void DocLoader::clearPendingPreloads()
+{
+ m_pendingPreloads.clear();
+}
+
#if PRELOAD_DEBUG
void DocLoader::printPreloadStats()
{