#include "platform/network/ResourceLoadPriority.h"
#include "platform/weborigin/KURL.h"
#include "platform/weborigin/Referrer.h"
+#include "public/platform/WebURLRequest.h"
#include "wtf/OwnPtr.h"
-namespace WebCore {
+namespace blink {
enum ResourceRequestCachePolicy {
UseProtocolCachePolicy, // normal load
class PLATFORM_EXPORT ResourceRequest {
WTF_MAKE_FAST_ALLOCATED;
public:
- // The type of this ResourceRequest, based on how the resource will be used.
- enum TargetType {
- TargetIsMainFrame,
- TargetIsSubframe,
- TargetIsSubresource, // Resource is a generic subresource. (Generally a specific type should be specified)
- TargetIsStyleSheet,
- TargetIsScript,
- TargetIsFont,
- TargetIsImage,
- TargetIsObject,
- TargetIsMedia,
- TargetIsWorker,
- TargetIsSharedWorker,
- TargetIsPrefetch,
- TargetIsFavicon,
- TargetIsXHR,
- TargetIsTextTrack,
- TargetIsPing,
- TargetIsServiceWorker,
- TargetIsUnspecified,
- };
-
class ExtraData : public RefCounted<ExtraData> {
public:
virtual ~ExtraData() { }
const AtomicString& httpOrigin() const { return httpHeaderField("Origin"); }
void setHTTPOrigin(const AtomicString& httpOrigin) { setHTTPHeaderField("Origin", httpOrigin); }
void clearHTTPOrigin();
+ void addHTTPOriginIfNeeded(const AtomicString& origin);
const AtomicString& httpUserAgent() const { return httpHeaderField("User-Agent"); }
void setHTTPUserAgent(const AtomicString& httpUserAgent) { setHTTPHeaderField("User-Agent", httpUserAgent); }
ExtraData* extraData() const { return m_extraData.get(); }
void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData; }
- // What this request is for.
- TargetType targetType() const { return m_targetType; }
- void setTargetType(TargetType type) { m_targetType = type; }
+ blink::WebURLRequest::RequestContext requestContext() const { return m_requestContext; }
+ void setRequestContext(blink::WebURLRequest::RequestContext context) { m_requestContext = context; }
+
+ blink::WebURLRequest::FrameType frameType() const { return m_frameType; }
+ void setFrameType(blink::WebURLRequest::FrameType frameType) { m_frameType = frameType; }
- bool cacheControlContainsNoCache();
- bool cacheControlContainsNoStore();
- bool hasCacheValidatorFields();
+ bool cacheControlContainsNoCache() const;
+ bool cacheControlContainsNoStore() const;
+ bool hasCacheValidatorFields() const;
static double defaultTimeoutInterval(); // May return 0 when using platform default.
static void setDefaultTimeoutInterval(double);
private:
void initialize(const KURL& url, ResourceRequestCachePolicy cachePolicy);
+ const CacheControlHeader& cacheControlHeader() const;
+
KURL m_url;
ResourceRequestCachePolicy m_cachePolicy;
double m_timeoutInterval; // 0 is a magic value for platform default on platforms that have one.
int m_requestorProcessID;
int m_appCacheHostID;
RefPtr<ExtraData> m_extraData;
- TargetType m_targetType;
+ blink::WebURLRequest::RequestContext m_requestContext;
+ blink::WebURLRequest::FrameType m_frameType;
ReferrerPolicy m_referrerPolicy;
- CacheControlHeader m_cacheControlHeader;
+
+ mutable CacheControlHeader m_cacheControlHeaderCache;
static double s_defaultTimeoutInterval;
};
int m_requestorID;
int m_requestorProcessID;
int m_appCacheHostID;
- ResourceRequest::TargetType m_targetType;
+ blink::WebURLRequest::RequestContext m_requestContext;
+ blink::WebURLRequest::FrameType m_frameType;
ReferrerPolicy m_referrerPolicy;
};
unsigned initializeMaximumHTTPConnectionCountPerHost();
-} // namespace WebCore
+} // namespace blink
#endif // ResourceRequest_h