#pragma once
#include "ResourceRequestBase.h"
typedef const struct _CFURLRequest* CFURLRequestRef;
namespace WebCore {
class ResourceRequest : public ResourceRequestBase {
public:
ResourceRequest(const String& url)
: ResourceRequestBase(URL(ParsedURLString, url), ResourceRequestCachePolicy::UseProtocolCachePolicy)
{
}
ResourceRequest(const URL& url)
: ResourceRequestBase(url, ResourceRequestCachePolicy::UseProtocolCachePolicy)
{
}
ResourceRequest(const URL& url, const String& referrer, ResourceRequestCachePolicy policy = ResourceRequestCachePolicy::UseProtocolCachePolicy)
: ResourceRequestBase(url, policy)
{
setHTTPReferrer(referrer);
}
ResourceRequest()
: ResourceRequestBase(URL(), ResourceRequestCachePolicy::UseProtocolCachePolicy)
{
}
ResourceRequest(CFURLRequestRef)
: ResourceRequestBase()
{
}
void updateFromDelegatePreservingOldProperties(const ResourceRequest& delegateProvidedRequest) { *this = delegateProvidedRequest; }
CFURLRequestRef cfURLRequest(HTTPBodyUpdatePolicy) const { return 0; }
static bool httpPipeliningEnabled() { return false; }
static void setHTTPPipeliningEnabled(bool) { }
template<class Encoder> void encodeWithPlatformData(Encoder&) const;
template<class Decoder> bool decodeWithPlatformData(Decoder&);
private:
friend class ResourceRequestBase;
void doUpdatePlatformRequest() { }
void doUpdateResourceRequest() { }
void doUpdatePlatformHTTPBody() { }
void doUpdateResourceHTTPBody() { }
void doPlatformSetAsIsolatedCopy(const ResourceRequest&) { }
static bool s_httpPipeliningEnabled;
};
template<class Encoder>
void ResourceRequest::encodeWithPlatformData(Encoder& encoder) const
{
encodeBase(encoder);
}
template<class Decoder>
bool ResourceRequest::decodeWithPlatformData(Decoder& decoder)
{
if (!decodeBase(decoder))
return false;
return true;
}
}