#ifndef FetchRequest_h
#define FetchRequest_h
#include "core/dom/Element.h"
#include "core/fetch/FetchInitiatorInfo.h"
#include "core/fetch/ResourceLoaderOptions.h"
#include "platform/network/ResourceLoadPriority.h"
#include "platform/network/ResourceRequest.h"
#include "wtf/text/AtomicString.h"
namespace WebCore {
class SecurityOrigin;
class FetchRequest {
public:
enum DeferOption { NoDefer, DeferredByClient };
enum OriginRestriction { UseDefaultOriginRestrictionForType, RestrictToSameOrigin };
explicit FetchRequest(const ResourceRequest&, const AtomicString& initiator, const String& charset = String(), ResourceLoadPriority = ResourceLoadPriorityUnresolved);
FetchRequest(const ResourceRequest&, const AtomicString& initiator, const ResourceLoaderOptions&);
FetchRequest(const ResourceRequest&, const FetchInitiatorInfo&);
~FetchRequest();
ResourceRequest& mutableResourceRequest() { return m_resourceRequest; }
const ResourceRequest& resourceRequest() const { return m_resourceRequest; }
const KURL& url() const { return m_resourceRequest.url(); }
const String& charset() const { return m_charset; }
void setCharset(const String& charset) { m_charset = charset; }
const ResourceLoaderOptions& options() const { return m_options; }
void setOptions(const ResourceLoaderOptions& options) { m_options = options; }
ResourceLoadPriority priority() const { return m_priority; }
bool forPreload() const { return m_forPreload; }
void setForPreload(bool forPreload) { m_forPreload = forPreload; }
DeferOption defer() const { return m_defer; }
void setDefer(DeferOption defer) { m_defer = defer; }
void setContentSecurityCheck(ContentSecurityPolicyCheck contentSecurityPolicyOption) { m_options.contentSecurityPolicyOption = contentSecurityPolicyOption; }
void setCrossOriginAccessControl(SecurityOrigin*, StoredCredentials, CredentialRequest);
void setCrossOriginAccessControl(SecurityOrigin*, StoredCredentials);
void setCrossOriginAccessControl(SecurityOrigin*, const AtomicString& crossOriginMode);
OriginRestriction originRestriction() const { return m_originRestriction; }
void setOriginRestriction(OriginRestriction restriction) { m_originRestriction = restriction; }
private:
ResourceRequest m_resourceRequest;
String m_charset;
ResourceLoaderOptions m_options;
ResourceLoadPriority m_priority;
bool m_forPreload;
DeferOption m_defer;
OriginRestriction m_originRestriction;
};
}
#endif