diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2009-06-15 09:06:43 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-06-15 09:31:31 (GMT) |
commit | c411f16870f112c3407c28c22b617f613a82cff4 (patch) | |
tree | 29a1bcd590c8b31af2aab445bfe8a978dc5bf582 /src/3rdparty/webkit/WebCore/loader/DocLoader.cpp | |
parent | 3d77b56b32a0c53ec0bbfaa07236fedb900ff336 (diff) | |
download | Qt-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.cpp | 23 |
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() { |