summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/cache/CachedResource.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-05 14:36:32 +0100
committerBen Murdoch <benm@google.com>2011-05-10 15:38:30 +0100
commitf05b935882198ccf7d81675736e3aeb089c5113a (patch)
tree4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebCore/loader/cache/CachedResource.cpp
parent60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff)
downloadexternal_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip
external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz
external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebCore/loader/cache/CachedResource.cpp')
-rw-r--r--WebCore/loader/cache/CachedResource.cpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/WebCore/loader/cache/CachedResource.cpp b/WebCore/loader/cache/CachedResource.cpp
index 844065d..19e535f 100644
--- a/WebCore/loader/cache/CachedResource.cpp
+++ b/WebCore/loader/cache/CachedResource.cpp
@@ -30,12 +30,12 @@
#include "CachedResourceClientWalker.h"
#include "CachedResourceHandle.h"
#include "CachedResourceLoader.h"
+#include "CachedResourceRequest.h"
#include "Frame.h"
#include "FrameLoaderClient.h"
#include "KURL.h"
#include "Logging.h"
#include "PurgeableBuffer.h"
-#include "Request.h"
#include "ResourceHandle.h"
#include "SharedBuffer.h"
#include <wtf/CurrentTime.h>
@@ -47,6 +47,28 @@
using namespace WTF;
namespace WebCore {
+
+static ResourceLoadPriority defaultPriorityForResourceType(CachedResource::Type type)
+{
+ switch (type) {
+ case CachedResource::CSSStyleSheet:
+#if ENABLE(XSLT)
+ case CachedResource::XSLStyleSheet:
+#endif
+ return ResourceLoadPriorityHigh;
+ case CachedResource::Script:
+ case CachedResource::FontResource:
+ return ResourceLoadPriorityMedium;
+ case CachedResource::ImageResource:
+ return ResourceLoadPriorityLow;
+#if ENABLE(LINK_PREFETCH)
+ case CachedResource::LinkPrefetch:
+ return ResourceLoadPriorityVeryLow;
+#endif
+ }
+ ASSERT_NOT_REACHED();
+ return ResourceLoadPriorityLow;
+}
#ifndef NDEBUG
static RefCountedLeakCounter cachedResourceLeakCounter("CachedResource");
@@ -55,6 +77,7 @@ static RefCountedLeakCounter cachedResourceLeakCounter("CachedResource");
CachedResource::CachedResource(const String& url, Type type)
: m_url(url)
, m_request(0)
+ , m_loadPriority(defaultPriorityForResourceType(type))
, m_responseTimestamp(currentTime())
, m_lastDecodedAccessTime(0)
, m_encodedSize(0)
@@ -93,7 +116,7 @@ CachedResource::~CachedResource()
ASSERT(canDelete());
ASSERT(!inCache());
ASSERT(!m_deleted);
- ASSERT(url().isNull() || cache()->resourceForURL(url()) != this);
+ ASSERT(url().isNull() || cache()->resourceForURL(KURL(ParsedURLString, url())) != this);
#ifndef NDEBUG
m_deleted = true;
cachedResourceLeakCounter.decrement();
@@ -106,7 +129,7 @@ CachedResource::~CachedResource()
void CachedResource::load(CachedResourceLoader* cachedResourceLoader, bool incremental, SecurityCheckPolicy securityCheck, bool sendResourceLoadCallbacks)
{
m_sendResourceLoadCallbacks = sendResourceLoadCallbacks;
- cache()->loader()->load(cachedResourceLoader, this, incremental, securityCheck, sendResourceLoadCallbacks);
+ cachedResourceLoader->load(this, incremental, securityCheck, sendResourceLoadCallbacks);
m_loading = true;
}
@@ -115,6 +138,7 @@ void CachedResource::data(PassRefPtr<SharedBuffer>, bool allDataReceived)
if (!allDataReceived)
return;
+ setLoading(false);
CachedResourceClientWalker w(m_clients);
while (CachedResourceClient* c = w.next())
c->notifyFinished(this);
@@ -201,7 +225,7 @@ CachedMetadata* CachedResource::cachedMetadata(unsigned dataTypeID) const
return m_cachedMetadata.get();
}
-void CachedResource::setRequest(Request* request)
+void CachedResource::setRequest(CachedResourceRequest* request)
{
if (request && !m_request)
m_status = Pending;