OSDN Git Service

Merge WebKit at r84325: Initial merge by git.
[android-x86/external-webkit.git] / Source / WebCore / platform / network / ResourceResponseBase.h
index 9c54bab..250411c 100644 (file)
 #include <wtf/PassOwnPtr.h>
 #include <wtf/RefPtr.h>
 
+#if OS(SOLARIS)
+#include <sys/time.h> // For time_t structure.
+#endif
+
 namespace WebCore {
 
 class ResourceResponse;
 struct CrossThreadResourceResponseData;
 
 // Do not use this class directly, use the class ResponseResponse instead
-class ResourceResponseBase : public FastAllocBase {
+class ResourceResponseBase {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static PassOwnPtr<ResourceResponse> adopt(PassOwnPtr<CrossThreadResourceResponseData>);
 
@@ -92,6 +97,7 @@ public:
     bool cacheControlContainsNoCache() const;
     bool cacheControlContainsNoStore() const;
     bool cacheControlContainsMustRevalidate() const;
+    bool hasCacheValidatorFields() const;
     double cacheControlMaxAge() const;
     double date() const;
     double age() const;
@@ -123,13 +129,19 @@ public:
     static bool compare(const ResourceResponse&, const ResourceResponse&);
 
 protected:
+    enum InitLevel {
+        Uninitialized,
+        CommonFieldsOnly,
+        AllFields
+    };
+
     ResourceResponseBase();
     ResourceResponseBase(const KURL& url, const String& mimeType, long long expectedLength, const String& textEncodingName, const String& filename);
 
-    void lazyInit() const;
+    void lazyInit(InitLevel) const;
 
     // The ResourceResponse subclass may "shadow" this method to lazily initialize platform specific fields
-    void platformLazyInit() { }
+    void platformLazyInit(InitLevel) { }
 
     // The ResourceResponse subclass may "shadow" this method to compare platform specific fields
     static bool platformCompare(const ResourceResponse&, const ResourceResponse&) { return true; }
@@ -175,7 +187,10 @@ private:
 inline bool operator==(const ResourceResponse& a, const ResourceResponse& b) { return ResourceResponseBase::compare(a, b); }
 inline bool operator!=(const ResourceResponse& a, const ResourceResponse& b) { return !(a == b); }
 
-struct CrossThreadResourceResponseDataBase : Noncopyable {
+struct CrossThreadResourceResponseDataBase {
+    WTF_MAKE_NONCOPYABLE(CrossThreadResourceResponseDataBase);
+public:
+    CrossThreadResourceResponseDataBase() { }
     KURL m_url;
     String m_mimeType;
     long long m_expectedContentLength;