summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader/cache
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-10-23 10:25:11 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-23 10:25:11 +0200
commit5ea819f80c6840c492386bfafbffb059c7e2091f (patch)
tree42ad0b1d82eff090d14278a088ea0f4840a0f938 /Source/WebCore/loader/cache
parent43a42f108af6bcbd91f2672731c3047c26213af1 (diff)
downloadqtwebkit-5ea819f80c6840c492386bfafbffb059c7e2091f.tar.gz
Imported WebKit commit 20434eb8eb95065803473139d8794e98a7672f75 (http://svn.webkit.org/repository/webkit/trunk@132191)
New snapshot that should fix build with latest qtbase and the QPlastiqueStyle removal
Diffstat (limited to 'Source/WebCore/loader/cache')
-rw-r--r--Source/WebCore/loader/cache/CachedResourceLoader.cpp97
-rw-r--r--Source/WebCore/loader/cache/CachedResourceLoader.h29
-rw-r--r--Source/WebCore/loader/cache/CachedResourceRequest.cpp59
-rw-r--r--Source/WebCore/loader/cache/CachedResourceRequest.h62
4 files changed, 188 insertions, 59 deletions
diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/Source/WebCore/loader/cache/CachedResourceLoader.cpp
index 1ffca4fc1..1ccaed9bf 100644
--- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp
+++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp
@@ -32,6 +32,7 @@
#include "CachedFont.h"
#include "CachedImage.h"
#include "CachedRawResource.h"
+#include "CachedResourceRequest.h"
#include "CachedScript.h"
#include "CachedXSLStyleSheet.h"
#include "Console.h"
@@ -107,12 +108,6 @@ static CachedResource* createResource(CachedResource::Type type, ResourceRequest
return 0;
}
-static const ResourceLoaderOptions& defaultCachedResourceOptions()
-{
- static ResourceLoaderOptions options(SendCallbacks, SniffContent, BufferData, AllowStoredCredentials, AskClientForCrossOriginCredentials, DoSecurityCheck);
- return options;
-}
-
CachedResourceLoader::CachedResourceLoader(DocumentLoader* documentLoader)
: m_document(0)
, m_documentLoader(documentLoader)
@@ -155,56 +150,57 @@ Frame* CachedResourceLoader::frame() const
return m_documentLoader ? m_documentLoader->frame() : 0;
}
-CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(ResourceRequest& request)
+CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(CachedResourceRequest& request)
{
if (Frame* f = frame()) {
if (f->loader()->pageDismissalEventBeingDispatched() != FrameLoader::NoDismissal) {
- KURL requestURL = request.url();
+ KURL requestURL = request.resourceRequest().url();
if (requestURL.isValid() && canRequest(CachedResource::ImageResource, requestURL))
PingLoader::loadImage(f, requestURL);
return 0;
}
}
- return static_cast<CachedImage*>(requestResource(CachedResource::ImageResource, request, String(), defaultCachedResourceOptions(), ResourceLoadPriorityUnresolved, false, clientDefersImage(request.url()) ? DeferredByClient : NoDefer).get());
+ request.setDefer(clientDefersImage(request.resourceRequest().url()) ? DeferredByClient : NoDefer);
+ return static_cast<CachedImage*>(requestResource(CachedResource::ImageResource, request).get());
}
-CachedResourceHandle<CachedFont> CachedResourceLoader::requestFont(ResourceRequest& request)
+CachedResourceHandle<CachedFont> CachedResourceLoader::requestFont(CachedResourceRequest& request)
{
- return static_cast<CachedFont*>(requestResource(CachedResource::FontResource, request, String(), defaultCachedResourceOptions()).get());
+ return static_cast<CachedFont*>(requestResource(CachedResource::FontResource, request).get());
}
#if ENABLE(VIDEO_TRACK)
-CachedResourceHandle<CachedTextTrack> CachedResourceLoader::requestTextTrack(ResourceRequest& request)
+CachedResourceHandle<CachedTextTrack> CachedResourceLoader::requestTextTrack(CachedResourceRequest& request)
{
- return static_cast<CachedTextTrack*>(requestResource(CachedResource::TextTrackResource, request, String(), defaultCachedResourceOptions()).get());
+ return static_cast<CachedTextTrack*>(requestResource(CachedResource::TextTrackResource, request).get());
}
#endif
#if ENABLE(CSS_SHADERS)
-CachedResourceHandle<CachedShader> CachedResourceLoader::requestShader(ResourceRequest& request)
+CachedResourceHandle<CachedShader> CachedResourceLoader::requestShader(CachedResourceRequest& request)
{
- return static_cast<CachedShader*>(requestResource(CachedResource::ShaderResource, request, String(), defaultCachedResourceOptions()).get());
+ return static_cast<CachedShader*>(requestResource(CachedResource::ShaderResource, request).get());
}
#endif
-CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(ResourceRequest& request, const String& charset, ResourceLoadPriority priority)
+CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(CachedResourceRequest& request)
{
- return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, request, charset, defaultCachedResourceOptions(), priority).get());
+ return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, request).get());
}
-CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(ResourceRequest& request, const String& charset)
+CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(CachedResourceRequest& request)
{
- KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(request.url());
+ KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(request.resourceRequest().url());
if (CachedResource* existing = memoryCache()->resourceForURL(url)) {
if (existing->type() == CachedResource::CSSStyleSheet)
return static_cast<CachedCSSStyleSheet*>(existing);
memoryCache()->remove(existing);
}
- if (url.string() != request.url())
- request.setURL(url);
+ if (url.string() != request.resourceRequest().url())
+ request.mutableResourceRequest().setURL(url);
- CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(request, charset);
+ CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(request.resourceRequest(), request.charset());
memoryCache()->add(userSheet.get());
// FIXME: loadResource calls setOwningCachedResourceLoader() if the resource couldn't be added to cache. Does this function need to call it, too?
@@ -214,37 +210,37 @@ CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSSt
return userSheet;
}
-CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(ResourceRequest& request, const String& charset)
+CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(CachedResourceRequest& request)
{
- return static_cast<CachedScript*>(requestResource(CachedResource::Script, request, charset, defaultCachedResourceOptions()).get());
+ return static_cast<CachedScript*>(requestResource(CachedResource::Script, request).get());
}
#if ENABLE(XSLT)
-CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleSheet(ResourceRequest& request)
+CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleSheet(CachedResourceRequest& request)
{
- return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSLStyleSheet, request, String(), defaultCachedResourceOptions()).get());
+ return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSLStyleSheet, request).get());
}
#endif
#if ENABLE(SVG)
-CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument(ResourceRequest& request)
+CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument(CachedResourceRequest& request)
{
- return static_cast<CachedSVGDocument*>(requestResource(CachedResource::SVGDocumentResource, request, String(), defaultCachedResourceOptions()).get());
+ return static_cast<CachedSVGDocument*>(requestResource(CachedResource::SVGDocumentResource, request).get());
}
#endif
#if ENABLE(LINK_PREFETCH)
-CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, ResourceRequest& request, ResourceLoadPriority priority)
+CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, CachedResourceRequest& request)
{
ASSERT(frame());
ASSERT(type == CachedResource::LinkPrefetch || type == CachedResource::LinkSubresource);
- return requestResource(type, request, String(), defaultCachedResourceOptions(), priority);
+ return requestResource(type, request);
}
#endif
-CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource(ResourceRequest& request, const ResourceLoaderOptions& options)
+CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource(CachedResourceRequest& request)
{
- return static_cast<CachedRawResource*>(requestResource(CachedResource::RawResource, request, String(), options, ResourceLoadPriorityUnresolved, false).get());
+ return static_cast<CachedRawResource*>(requestResource(CachedResource::RawResource, request).get());
}
bool CachedResourceLoader::checkInsecureContent(CachedResource::Type type, const KURL& url) const
@@ -402,11 +398,11 @@ bool CachedResourceLoader::canRequest(CachedResource::Type type, const KURL& url
return true;
}
-CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, ResourceRequest& request, const String& charset, const ResourceLoaderOptions& options, ResourceLoadPriority priority, bool forPreload, DeferOption defer)
+CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, CachedResourceRequest& request)
{
- KURL url = request.url();
+ KURL url = request.resourceRequest().url();
- LOG(ResourceLoading, "CachedResourceLoader::requestResource '%s', charset '%s', priority=%d, forPreload=%u", url.string().latin1().data(), charset.latin1().data(), priority, forPreload);
+ LOG(ResourceLoading, "CachedResourceLoader::requestResource '%s', charset '%s', priority=%d, forPreload=%u", url.string().latin1().data(), request.charset().latin1().data(), request.priority(), request.forPreload());
// If only the fragment identifiers differ, it is the same resource.
url = MemoryCache::removeFragmentIdentifierIfNeeded(url);
@@ -414,7 +410,7 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache
if (!url.isValid())
return 0;
- if (!canRequest(type, url, forPreload))
+ if (!canRequest(type, url, request.forPreload()))
return 0;
if (memoryCache()->disabled()) {
@@ -428,16 +424,16 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache
// See if we can use an existing resource from the cache.
CachedResourceHandle<CachedResource> resource = memoryCache()->resourceForURL(url);
- if (request.url() != url)
- request.setURL(url);
+ if (request.resourceRequest().url() != url)
+ request.mutableResourceRequest().setURL(url);
- const RevalidationPolicy policy = determineRevalidationPolicy(type, request, forPreload, resource.get(), defer);
+ const RevalidationPolicy policy = determineRevalidationPolicy(type, request.mutableResourceRequest(), request.forPreload(), resource.get(), request.defer());
switch (policy) {
case Reload:
memoryCache()->remove(resource.get());
// Fall through
case Load:
- resource = loadResource(type, request, charset);
+ resource = loadResource(type, request.mutableResourceRequest(), request.charset());
break;
case Revalidate:
resource = revalidateResource(resource.get());
@@ -451,9 +447,9 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache
if (!resource)
return 0;
- resource->setLoadPriority(priority);
- if ((policy != Use || resource->stillNeedsLoad()) && NoDefer == defer) {
- resource->load(this, options);
+ resource->setLoadPriority(request.priority());
+ if ((policy != Use || resource->stillNeedsLoad()) && NoDefer == request.defer()) {
+ resource->load(this, request.options());
// We don't support immediate loads, but we do support immediate failure.
if (resource->errorOccurred()) {
@@ -463,8 +459,8 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache
}
}
- if (!request.url().protocolIsData())
- m_validatedURLs.add(request.url());
+ if (!request.resourceRequest().url().protocolIsData())
+ m_validatedURLs.add(request.resourceRequest().url());
ASSERT(resource->url() == url.string());
m_documentResources.set(resource->url(), resource);
@@ -793,7 +789,10 @@ void CachedResourceLoader::requestPreload(CachedResource::Type type, ResourceReq
if (type == CachedResource::Script || type == CachedResource::CSSStyleSheet)
encoding = charset.isEmpty() ? m_document->charset() : charset;
- CachedResourceHandle<CachedResource> resource = requestResource(type, request, encoding, defaultCachedResourceOptions(), ResourceLoadPriorityUnresolved, true);
+ CachedResourceRequest cachedResourceRequest(request, encoding);
+ cachedResourceRequest.setForPreload(true);
+
+ CachedResourceHandle<CachedResource> resource = requestResource(type, cachedResourceRequest);
if (!resource || (m_preloads && m_preloads->contains(resource.get())))
return;
resource->increasePreloadCount();
@@ -912,4 +911,10 @@ void CachedResourceLoader::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo)
info.addMember(m_pendingPreloads);
}
+const ResourceLoaderOptions& CachedResourceLoader::defaultCachedResourceOptions()
+{
+ static ResourceLoaderOptions options(SendCallbacks, SniffContent, BufferData, AllowStoredCredentials, AskClientForCrossOriginCredentials, DoSecurityCheck);
+ return options;
+}
+
}
diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.h b/Source/WebCore/loader/cache/CachedResourceLoader.h
index 2a7985e6c..0fcb1e37d 100644
--- a/Source/WebCore/loader/cache/CachedResourceLoader.h
+++ b/Source/WebCore/loader/cache/CachedResourceLoader.h
@@ -44,6 +44,7 @@ class CachedSVGDocument;
class CachedFont;
class CachedImage;
class CachedRawResource;
+class CachedResourceRequest;
class CachedScript;
class CachedShader;
class CachedTextTrack;
@@ -68,30 +69,31 @@ friend class ImageLoader;
friend class ResourceCacheValidationSuppressor;
public:
+ enum DeferOption { NoDefer, DeferredByClient };
static PassRefPtr<CachedResourceLoader> create(DocumentLoader* documentLoader) { return adoptRef(new CachedResourceLoader(documentLoader)); }
~CachedResourceLoader();
- CachedResourceHandle<CachedImage> requestImage(ResourceRequest&);
- CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(ResourceRequest&, const String& charset, ResourceLoadPriority = ResourceLoadPriorityUnresolved);
- CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(ResourceRequest&, const String& charset);
- CachedResourceHandle<CachedScript> requestScript(ResourceRequest&, const String& charset);
- CachedResourceHandle<CachedFont> requestFont(ResourceRequest&);
- CachedResourceHandle<CachedRawResource> requestRawResource(ResourceRequest&, const ResourceLoaderOptions&);
+ CachedResourceHandle<CachedImage> requestImage(CachedResourceRequest&);
+ CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(CachedResourceRequest&);
+ CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(CachedResourceRequest&);
+ CachedResourceHandle<CachedScript> requestScript(CachedResourceRequest&);
+ CachedResourceHandle<CachedFont> requestFont(CachedResourceRequest&);
+ CachedResourceHandle<CachedRawResource> requestRawResource(CachedResourceRequest&);
#if ENABLE(SVG)
- CachedResourceHandle<CachedSVGDocument> requestSVGDocument(ResourceRequest&);
+ CachedResourceHandle<CachedSVGDocument> requestSVGDocument(CachedResourceRequest&);
#endif
#if ENABLE(XSLT)
- CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(ResourceRequest&);
+ CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(CachedResourceRequest&);
#endif
#if ENABLE(LINK_PREFETCH)
- CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, ResourceRequest&, ResourceLoadPriority = ResourceLoadPriorityUnresolved);
+ CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, CachedResourceRequest&);
#endif
#if ENABLE(VIDEO_TRACK)
- CachedResourceHandle<CachedTextTrack> requestTextTrack(ResourceRequest&);
+ CachedResourceHandle<CachedTextTrack> requestTextTrack(CachedResourceRequest&);
#endif
#if ENABLE(CSS_SHADERS)
- CachedResourceHandle<CachedShader> requestShader(ResourceRequest&);
+ CachedResourceHandle<CachedShader> requestShader(CachedResourceRequest&);
#endif
// Logs an access denied message to the console for the specified URL.
@@ -135,11 +137,12 @@ public:
void reportMemoryUsage(MemoryObjectInfo*) const;
+ static const ResourceLoaderOptions& defaultCachedResourceOptions();
+
private:
explicit CachedResourceLoader(DocumentLoader*);
- enum DeferOption { NoDefer, DeferredByClient };
- CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, ResourceRequest&, const String& charset, const ResourceLoaderOptions&, ResourceLoadPriority = ResourceLoadPriorityUnresolved, bool isPreload = false, DeferOption = NoDefer);
+ CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, CachedResourceRequest&);
CachedResourceHandle<CachedResource> revalidateResource(CachedResource*);
CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, ResourceRequest&, const String& charset);
void requestPreload(CachedResource::Type, ResourceRequest&, const String& charset);
diff --git a/Source/WebCore/loader/cache/CachedResourceRequest.cpp b/Source/WebCore/loader/cache/CachedResourceRequest.cpp
new file mode 100644
index 000000000..6add39b96
--- /dev/null
+++ b/Source/WebCore/loader/cache/CachedResourceRequest.cpp
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2012 Google, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "CachedResourceRequest.h"
+
+namespace WebCore {
+
+CachedResourceRequest::CachedResourceRequest(const ResourceRequest& resourceRequest, const String& charset, ResourceLoadPriority priority)
+ : m_resourceRequest(resourceRequest)
+ , m_charset(charset)
+ , m_options(CachedResourceLoader::defaultCachedResourceOptions())
+ , m_priority(priority)
+ , m_forPreload(false)
+ , m_defer(CachedResourceLoader::NoDefer)
+{
+}
+
+CachedResourceRequest::CachedResourceRequest(const ResourceRequest& resourceRequest, const ResourceLoaderOptions& options)
+ : m_resourceRequest(resourceRequest)
+ , m_options(options)
+ , m_priority(ResourceLoadPriorityUnresolved)
+ , m_forPreload(false)
+ , m_defer(CachedResourceLoader::NoDefer)
+{
+}
+
+CachedResourceRequest::CachedResourceRequest(const ResourceRequest& resourceRequest, ResourceLoadPriority priority)
+ : m_resourceRequest(resourceRequest)
+ , m_options(CachedResourceLoader::defaultCachedResourceOptions())
+ , m_priority(priority)
+ , m_forPreload(false)
+ , m_defer(CachedResourceLoader::NoDefer)
+{
+}
+
+}
diff --git a/Source/WebCore/loader/cache/CachedResourceRequest.h b/Source/WebCore/loader/cache/CachedResourceRequest.h
new file mode 100644
index 000000000..cb043dfe3
--- /dev/null
+++ b/Source/WebCore/loader/cache/CachedResourceRequest.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2012 Google, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef CachedResourceRequest_h
+#define CachedResourceRequest_h
+
+#include "CachedResourceLoader.h"
+#include "ResourceLoadPriority.h"
+
+namespace WebCore {
+
+class CachedResourceRequest {
+public:
+ explicit CachedResourceRequest(const ResourceRequest&, const String& charset = String(), ResourceLoadPriority = ResourceLoadPriorityUnresolved);
+ CachedResourceRequest(const ResourceRequest&, const ResourceLoaderOptions&);
+ CachedResourceRequest(const ResourceRequest&, ResourceLoadPriority);
+
+ ResourceRequest& mutableResourceRequest() { return m_resourceRequest; }
+ const ResourceRequest& resourceRequest() const { return m_resourceRequest; }
+ const String& charset() const { return m_charset; }
+ void setCharset(const String& charset) { m_charset = charset; }
+ const ResourceLoaderOptions& options() const { return m_options; }
+ ResourceLoadPriority priority() const { return m_priority; }
+ bool forPreload() const { return m_forPreload; }
+ void setForPreload(bool forPreload) { m_forPreload = forPreload; }
+ CachedResourceLoader::DeferOption defer() const { return m_defer; }
+ void setDefer(CachedResourceLoader::DeferOption defer) { m_defer = defer; }
+
+private:
+ ResourceRequest m_resourceRequest;
+ String m_charset;
+ ResourceLoaderOptions m_options;
+ ResourceLoadPriority m_priority;
+ bool m_forPreload;
+ CachedResourceLoader::DeferOption m_defer;
+};
+
+} // namespace WebCore
+
+#endif