| Index: net/http/http_response_headers.h
|
| diff --git a/net/http/http_response_headers.h b/net/http/http_response_headers.h
|
| index ddab798c0a2c0795556d1b2da0a583574c581553..ac7c351bd519117d414cfb19c8a85383c07b213c 100644
|
| --- a/net/http/http_response_headers.h
|
| +++ b/net/http/http_response_headers.h
|
| @@ -28,6 +28,12 @@ namespace net {
|
|
|
| class HttpByteRange;
|
|
|
| +enum ValidationType {
|
| + VALIDATION_NONE = 0, // The resource is fresh.
|
| + VALIDATION_ASYNCHRONOUS, // The resource requires async revalidation.
|
| + VALIDATION_SYNCHRONOUS // The resource requires sync revalidation.
|
| +};
|
| +
|
| // HttpResponseHeaders: parses and holds HTTP response headers.
|
| class NET_EXPORT HttpResponseHeaders
|
| : public base::RefCountedThreadSafe<HttpResponseHeaders> {
|
| @@ -43,6 +49,14 @@ class NET_EXPORT HttpResponseHeaders
|
| static const PersistOptions PERSIST_SANS_RANGES = 1 << 4;
|
| static const PersistOptions PERSIST_SANS_SECURITY_STATE = 1 << 5;
|
|
|
| + struct FreshnessLifetimes {
|
| + // How long the resource will be fresh for.
|
| + base::TimeDelta fresh;
|
| + // How long after becoming not fresh that the resource will be stale but
|
| + // usable (if async revalidation is enabled).
|
| + base::TimeDelta stale;
|
| + };
|
| +
|
| static const char kContentRange[];
|
|
|
| // Parses the given raw_headers. raw_headers should be formatted thus:
|
| @@ -201,19 +215,28 @@ class NET_EXPORT HttpResponseHeaders
|
| // redirect.
|
| static bool IsRedirectResponseCode(int response_code);
|
|
|
| - // Returns true if the response cannot be reused without validation. The
|
| - // result is relative to the current_time parameter, which is a parameter to
|
| - // support unit testing. The request_time parameter indicates the time at
|
| - // which the request was made that resulted in this response, which was
|
| - // received at response_time.
|
| - bool RequiresValidation(const base::Time& request_time,
|
| - const base::Time& response_time,
|
| - const base::Time& current_time) const;
|
| -
|
| - // Returns the amount of time the server claims the response is fresh from
|
| + // Returns VALIDATION_NONE if the response can be reused without
|
| + // validation. VALIDATION_ASYNCHRONOUS means the response can be re-used, but
|
| + // asynchronous revalidation must be performed. VALIDATION_SYNCHRONOUS means
|
| + // that the result cannot be reused without revalidation.
|
| + // The result is relative to the current_time parameter, which is
|
| + // a parameter to support unit testing. The request_time parameter indicates
|
| + // the time at which the request was made that resulted in this response,
|
| + // which was received at response_time.
|
| + ValidationType RequiresValidation(const base::Time& request_time,
|
| + const base::Time& response_time,
|
| + const base::Time& current_time) const;
|
| +
|
| + // Calculates the amount of time the server claims the response is fresh from
|
| // the time the response was generated. See section 13.2.4 of RFC 2616. See
|
| - // RequiresValidation for a description of the response_time parameter.
|
| - base::TimeDelta GetFreshnessLifetime(const base::Time& response_time) const;
|
| + // RequiresValidation for a description of the response_time parameter. Sets
|
| + // |FreshnessLifetimes.fresh| to the length of time the response may be used
|
| + // without revalidation, and |FreshnessLifetimes.stale| to the length of time
|
| + // the response may be used stale with asynchronous revalidation if
|
| + // stale-while-revalidate support is enabled. See RFC 5861 section 3 for the
|
| + // definition of stale-while-revalidate.
|
| + FreshnessLifetimes GetFreshnessLifetimes(
|
| + const base::Time& response_time) const;
|
|
|
| // Returns the age of the response. See section 13.2.3 of RFC 2616.
|
| // See RequiresValidation for a description of this method's parameters.
|
|
|