diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h')
-rw-r--r-- | src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h b/src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h index 1cbf21e61b..2d87d6e361 100644 --- a/src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h +++ b/src/3rdparty/webkit/WebCore/platform/network/ResourceRequestBase.h @@ -1,6 +1,7 @@ /* * Copyright (C) 2003, 2006 Apple Computer, Inc. All rights reserved. * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> + * Copyright (C) 2009 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -31,6 +32,9 @@ #include "KURL.h" #include "HTTPHeaderMap.h" +#include <memory> +#include <wtf/OwnPtr.h> + namespace WebCore { enum ResourceRequestCachePolicy { @@ -42,25 +46,33 @@ namespace WebCore { const int unspecifiedTimeoutInterval = INT_MAX; - class ResourceRequest; + struct ResourceRequest; + struct CrossThreadResourceRequestData; // Do not use this type directly. Use ResourceRequest instead. class ResourceRequestBase { public: + static std::auto_ptr<ResourceRequest> adopt(std::auto_ptr<CrossThreadResourceRequestData>); + + // Gets a copy of the data suitable for passing to another thread. + std::auto_ptr<CrossThreadResourceRequestData> copyData() const; + bool isNull() const; bool isEmpty() const; const KURL& url() const; void setURL(const KURL& url); + void removeCredentials(); + ResourceRequestCachePolicy cachePolicy() const; void setCachePolicy(ResourceRequestCachePolicy cachePolicy); double timeoutInterval() const; void setTimeoutInterval(double timeoutInterval); - const KURL& mainDocumentURL() const; - void setMainDocumentURL(const KURL& mainDocumentURL); + const KURL& firstPartyForCookies() const; + void setFirstPartyForCookies(const KURL& firstPartyForCookies); const String& httpMethod() const; void setHTTPMethod(const String& httpMethod); @@ -97,12 +109,18 @@ namespace WebCore { void setAllowHTTPCookies(bool allowHTTPCookies); bool isConditional() const; - + + // Whether the associated ResourceHandleClient needs to be notified of + // upload progress made for that resource. + bool reportUploadProgress() const { return m_reportUploadProgress; } + void setReportUploadProgress(bool reportUploadProgress) { m_reportUploadProgress = reportUploadProgress; } + protected: // Used when ResourceRequest is initialized from a platform representation of the request ResourceRequestBase() : m_resourceRequestUpdated(false) , m_platformRequestUpdated(true) + , m_reportUploadProgress(false) { } @@ -114,6 +132,7 @@ namespace WebCore { , m_allowHTTPCookies(true) , m_resourceRequestUpdated(true) , m_platformRequestUpdated(false) + , m_reportUploadProgress(false) { } @@ -124,7 +143,7 @@ namespace WebCore { ResourceRequestCachePolicy m_cachePolicy; double m_timeoutInterval; - KURL m_mainDocumentURL; + KURL m_firstPartyForCookies; String m_httpMethod; HTTPHeaderMap m_httpHeaderFields; Vector<String> m_responseContentDispositionEncodingFallbackArray; @@ -132,6 +151,7 @@ namespace WebCore { bool m_allowHTTPCookies; mutable bool m_resourceRequestUpdated; mutable bool m_platformRequestUpdated; + bool m_reportUploadProgress; private: const ResourceRequest& asResourceRequest() const; @@ -142,6 +162,22 @@ namespace WebCore { bool operator==(const ResourceRequestBase&, const ResourceRequestBase&); inline bool operator!=(ResourceRequestBase& a, const ResourceRequestBase& b) { return !(a == b); } + struct CrossThreadResourceRequestData { + KURL m_url; + + ResourceRequestCachePolicy m_cachePolicy; + double m_timeoutInterval; + KURL m_firstPartyForCookies; + + String m_httpMethod; + OwnPtr<CrossThreadHTTPHeaderMapData> m_httpHeaders; + Vector<String> m_responseContentDispositionEncodingFallbackArray; + RefPtr<FormData> m_httpBody; + bool m_allowHTTPCookies; + }; + + unsigned initializeMaximumHTTPConnectionCountPerHost(); + } // namespace WebCore #endif // ResourceRequestBase_h |