summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/DocLoader.cpp
diff options
context:
space:
mode:
authorLeon Clarke <leonclarke@google.com>2010-03-09 14:12:21 +0000
committerLeon Clarke <leonclarke@google.com>2010-05-04 10:59:37 +0100
commitf91ac8eab3399adb5325701bebe0590a77e49df7 (patch)
tree04ff055963cf2bfe147998ca3396134b243be38d /WebCore/loader/DocLoader.cpp
parentb97e8541004c77ec0c85f74b896b9d3bdb6de6b4 (diff)
downloadexternal_webkit-f91ac8eab3399adb5325701bebe0590a77e49df7.zip
external_webkit-f91ac8eab3399adb5325701bebe0590a77e49df7.tar.gz
external_webkit-f91ac8eab3399adb5325701bebe0590a77e49df7.tar.bz2
Link prefetch support
http://b/issue?id=2268353
Diffstat (limited to 'WebCore/loader/DocLoader.cpp')
-rw-r--r--WebCore/loader/DocLoader.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/WebCore/loader/DocLoader.cpp b/WebCore/loader/DocLoader.cpp
index 8c0a1b2..08dfa33 100644
--- a/WebCore/loader/DocLoader.cpp
+++ b/WebCore/loader/DocLoader.cpp
@@ -44,6 +44,9 @@
#include "loader.h"
#include "SecurityOrigin.h"
#include "Settings.h"
+#if ENABLE(LINK_PREFETCH)
+#include "CachedLinkPrefetch.h"
+#endif
#define PRELOAD_DEBUG 0
@@ -176,6 +179,13 @@ CachedXBLDocument* DocLoader::requestXBLDocument(const String& url)
}
#endif
+#if ENABLE(LINK_PREFETCH)
+CachedLinkPrefetch* DocLoader::requestLinkPrefetch(const String& url)
+{
+ return static_cast<CachedLinkPrefetch*>(requestResource(CachedResource::LinkPrefetch, url, String()));
+}
+#endif
+
bool DocLoader::canRequest(CachedResource::Type type, const KURL& url)
{
// Some types of resources can be loaded only from the same origin. Other
@@ -186,6 +196,9 @@ bool DocLoader::canRequest(CachedResource::Type type, const KURL& url)
case CachedResource::CSSStyleSheet:
case CachedResource::Script:
case CachedResource::FontResource:
+#if ENABLE(LINK_PREFETCH)
+ case CachedResource::LinkPrefetch:
+#endif
// These types of resources can be loaded from any origin.
// FIXME: Are we sure about CachedResource::FontResource?
break;
@@ -228,6 +241,9 @@ bool DocLoader::canRequest(CachedResource::Type type, const KURL& url)
break;
case CachedResource::ImageResource:
case CachedResource::CSSStyleSheet:
+#if ENABLE(LINK_PREFETCH)
+ case CachedResource::LinkPrefetch:
+#endif
case CachedResource::FontResource: {
// These resources can corrupt only the frame's pixels.
if (Frame* f = frame()) {
@@ -402,13 +418,19 @@ void DocLoader::checkCacheObjectStatus(CachedResource* resource)
frame()->loader()->loadedResourceFromMemoryCache(resource);
}
-void DocLoader::incrementRequestCount()
+void DocLoader::incrementRequestCount(const CachedResource* res)
{
+ if (res->isPrefetch())
+ return;
+
++m_requestCount;
}
-void DocLoader::decrementRequestCount()
+void DocLoader::decrementRequestCount(const CachedResource* res)
{
+ if (res->isPrefetch())
+ return;
+
--m_requestCount;
ASSERT(m_requestCount > -1);
}