Index: net/http/http_cache_transaction.cc |
diff --git a/net/http/http_cache_transaction.cc b/net/http/http_cache_transaction.cc |
index e2d46be45350eec82cb3ec0850f1e792f17e98f2..020d9d6a2ce522d485fd56733d4b599388af72e9 100644 |
--- a/net/http/http_cache_transaction.cc |
+++ b/net/http/http_cache_transaction.cc |
@@ -87,7 +87,6 @@ enum RequestOfflineStatus { |
// an offline error, and there was no servable data in cache (even |
// stale data). |
OFFLINE_STATUS_DATA_UNAVAILABLE_OFFLINE, |
- |
OFFLINE_STATUS_MAX_ENTRIES |
}; |
@@ -95,19 +94,14 @@ void RecordOfflineStatus(int load_flags, RequestOfflineStatus status) { |
// Restrict to main frame to keep statistics close to |
// "would have shown them something useful if offline mode was enabled". |
if (load_flags & net::LOAD_MAIN_FRAME) { |
- UMA_HISTOGRAM_ENUMERATION("HttpCache.OfflineStatus", status, |
- OFFLINE_STATUS_MAX_ENTRIES); |
+ UMA_HISTOGRAM_ENUMERATION( |
+ "HttpCache.OfflineStatus", status, OFFLINE_STATUS_MAX_ENTRIES); |
} |
} |
// TODO(rvargas): Remove once we get the data. |
void RecordVaryHeaderHistogram(const net::HttpResponseInfo* response) { |
- enum VaryType { |
- VARY_NOT_PRESENT, |
- VARY_UA, |
- VARY_OTHER, |
- VARY_MAX |
- }; |
+ enum VaryType { VARY_NOT_PRESENT, VARY_UA, VARY_OTHER, VARY_MAX }; |
VaryType vary = VARY_NOT_PRESENT; |
if (response->vary_data.is_valid()) { |
vary = VARY_OTHER; |
@@ -129,11 +123,10 @@ struct HeaderNameAndValue { |
// If the request includes one of these request headers, then avoid caching |
// to avoid getting confused. |
static const HeaderNameAndValue kPassThroughHeaders[] = { |
- { "if-unmodified-since", NULL }, // causes unexpected 412s |
- { "if-match", NULL }, // causes unexpected 412s |
- { "if-range", NULL }, |
- { NULL, NULL } |
-}; |
+ {"if-unmodified-since", NULL}, // causes unexpected 412s |
+ {"if-match", NULL}, // causes unexpected 412s |
+ {"if-range", NULL}, |
+ {NULL, NULL}}; |
struct ValidationHeaderInfo { |
const char* request_header_name; |
@@ -141,24 +134,22 @@ struct ValidationHeaderInfo { |
}; |
static const ValidationHeaderInfo kValidationHeaders[] = { |
- { "if-modified-since", "last-modified" }, |
- { "if-none-match", "etag" }, |
+ {"if-modified-since", "last-modified"}, |
+ {"if-none-match", "etag"}, |
}; |
// If the request includes one of these request headers, then avoid reusing |
// our cached copy if any. |
static const HeaderNameAndValue kForceFetchHeaders[] = { |
- { "cache-control", "no-cache" }, |
- { "pragma", "no-cache" }, |
- { NULL, NULL } |
-}; |
+ {"cache-control", "no-cache"}, |
+ {"pragma", "no-cache"}, |
+ {NULL, NULL}}; |
// If the request includes one of these request headers, then force our |
// cached copy (if any) to be revalidated before reusing it. |
static const HeaderNameAndValue kForceValidateHeaders[] = { |
- { "cache-control", "max-age=0" }, |
- { NULL, NULL } |
-}; |
+ {"cache-control", "max-age=0"}, |
+ {NULL, NULL}}; |
static bool HeaderMatches(const HttpRequestHeaders& headers, |
const HeaderNameAndValue* search) { |
@@ -181,9 +172,7 @@ static bool HeaderMatches(const HttpRequestHeaders& headers, |
//----------------------------------------------------------------------------- |
-HttpCache::Transaction::Transaction( |
- RequestPriority priority, |
- HttpCache* cache) |
+HttpCache::Transaction::Transaction(RequestPriority priority, HttpCache* cache) |
: next_state_(STATE_NONE), |
request_(NULL), |
priority_(priority), |
@@ -208,13 +197,13 @@ HttpCache::Transaction::Transaction( |
effective_load_flags_(0), |
write_len_(0), |
weak_factory_(this), |
- io_callback_(base::Bind(&Transaction::OnIOComplete, |
- weak_factory_.GetWeakPtr())), |
+ io_callback_( |
+ base::Bind(&Transaction::OnIOComplete, weak_factory_.GetWeakPtr())), |
transaction_pattern_(PATTERN_UNDEFINED), |
total_received_bytes_(0), |
websocket_handshake_stream_base_create_helper_(NULL) { |
COMPILE_ASSERT(HttpCache::Transaction::kNumValidationHeaders == |
- arraysize(kValidationHeaders), |
+ arraysize(kValidationHeaders), |
Invalid_number_of_validation_headers); |
} |
@@ -241,7 +230,8 @@ HttpCache::Transaction::~Transaction() { |
} |
} |
-int HttpCache::Transaction::WriteMetadata(IOBuffer* buf, int buf_len, |
+int HttpCache::Transaction::WriteMetadata(IOBuffer* buf, |
+ int buf_len, |
const CompletionCallback& callback) { |
DCHECK(buf); |
DCHECK_GT(buf_len, 0); |
@@ -253,8 +243,8 @@ int HttpCache::Transaction::WriteMetadata(IOBuffer* buf, int buf_len, |
// It could be possible to check if there is something already written and |
// avoid writing again (it should be the same, right?), but let's allow the |
// caller to "update" the contents with something new. |
- return entry_->disk_entry->WriteData(kMetadataIndex, 0, buf, buf_len, |
- callback, true); |
+ return entry_->disk_entry->WriteData( |
+ kMetadataIndex, 0, buf, buf_len, callback, true); |
} |
bool HttpCache::Transaction::AddTruncatedFlag() { |
@@ -385,7 +375,8 @@ bool HttpCache::Transaction::IsReadyToRestartForAuth() { |
return network_trans_->IsReadyToRestartForAuth(); |
} |
-int HttpCache::Transaction::Read(IOBuffer* buf, int buf_len, |
+int HttpCache::Transaction::Read(IOBuffer* buf, |
+ int buf_len, |
const CompletionCallback& callback) { |
DCHECK(buf); |
DCHECK_GT(buf_len, 0); |
@@ -514,7 +505,8 @@ UploadProgress HttpCache::Transaction::GetUploadProgress() const { |
} |
void HttpCache::Transaction::SetQuicServerInfo( |
- QuicServerInfo* quic_server_info) {} |
+ QuicServerInfo* quic_server_info) { |
+} |
bool HttpCache::Transaction::GetLoadTimingInfo( |
LoadTimingInfo* load_timing_info) const { |
@@ -879,8 +871,8 @@ int HttpCache::Transaction::DoSendRequest() { |
send_request_since_ = TimeTicks::Now(); |
// Create a network transaction. |
- int rv = cache_->network_layer_->CreateTransaction(priority_, |
- &network_trans_); |
+ int rv = |
+ cache_->network_layer_->CreateTransaction(priority_, &network_trans_); |
if (rv != OK) |
return rv; |
network_trans_->SetBeforeNetworkStartCallback(before_network_start_callback_); |
@@ -919,8 +911,8 @@ int HttpCache::Transaction::DoSendRequestComplete(int result) { |
} |
} else { |
RecordOfflineStatus(effective_load_flags_, |
- (result == OK ? OFFLINE_STATUS_NETWORK_SUCCEEDED : |
- OFFLINE_STATUS_NETWORK_FAILED)); |
+ (result == OK ? OFFLINE_STATUS_NETWORK_SUCCEEDED |
+ : OFFLINE_STATUS_NETWORK_FAILED)); |
} |
// If we tried to conditionalize the request and failed, we know |
@@ -1360,8 +1352,8 @@ int HttpCache::Transaction::DoOverwriteCachedResponse() { |
} |
target_state_ = STATE_TRUNCATE_CACHED_DATA; |
- next_state_ = truncated_ ? STATE_CACHE_WRITE_TRUNCATED_RESPONSE : |
- STATE_CACHE_WRITE_RESPONSE; |
+ next_state_ = truncated_ ? STATE_CACHE_WRITE_TRUNCATED_RESPONSE |
+ : STATE_CACHE_WRITE_RESPONSE; |
return OK; |
} |
@@ -1440,15 +1432,15 @@ int HttpCache::Transaction::DoCacheReadResponse() { |
read_buf_ = new IOBuffer(io_buf_len_); |
net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO); |
- return entry_->disk_entry->ReadData(kResponseInfoIndex, 0, read_buf_.get(), |
- io_buf_len_, io_callback_); |
+ return entry_->disk_entry->ReadData( |
+ kResponseInfoIndex, 0, read_buf_.get(), io_buf_len_, io_callback_); |
} |
int HttpCache::Transaction::DoCacheReadResponseComplete(int result) { |
net_log_.EndEventWithNetErrorCode(NetLog::TYPE_HTTP_CACHE_READ_INFO, result); |
if (result != io_buf_len_ || |
- !HttpCache::ParseResponseInfo(read_buf_->data(), io_buf_len_, |
- &response_, &truncated_)) { |
+ !HttpCache::ParseResponseInfo( |
+ read_buf_->data(), io_buf_len_, &response_, &truncated_)) { |
return OnCacheReadError(result, true); |
} |
@@ -1532,7 +1524,8 @@ int HttpCache::Transaction::DoCacheReadMetadata() { |
new IOBufferWithSize(entry_->disk_entry->GetDataSize(kMetadataIndex)); |
net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_INFO); |
- return entry_->disk_entry->ReadData(kMetadataIndex, 0, |
+ return entry_->disk_entry->ReadData(kMetadataIndex, |
+ 0, |
response_.metadata.get(), |
response_.metadata->size(), |
io_callback_); |
@@ -1571,12 +1564,14 @@ int HttpCache::Transaction::DoCacheReadData() { |
if (net_log_.IsLogging()) |
net_log_.BeginEvent(NetLog::TYPE_HTTP_CACHE_READ_DATA); |
if (partial_.get()) { |
- return partial_->CacheRead(entry_->disk_entry, read_buf_.get(), io_buf_len_, |
- io_callback_); |
+ return partial_->CacheRead( |
+ entry_->disk_entry, read_buf_.get(), io_buf_len_, io_callback_); |
} |
- return entry_->disk_entry->ReadData(kResponseContentIndex, read_offset_, |
- read_buf_.get(), io_buf_len_, |
+ return entry_->disk_entry->ReadData(kResponseContentIndex, |
+ read_offset_, |
+ read_buf_.get(), |
+ io_buf_len_, |
io_callback_); |
} |
@@ -1702,10 +1697,10 @@ void HttpCache::Transaction::SetRequest(const BoundNetLog& net_log, |
const HeaderNameAndValue* search; |
int load_flag; |
} kSpecialHeaders[] = { |
- { kPassThroughHeaders, LOAD_DISABLE_CACHE }, |
- { kForceFetchHeaders, LOAD_BYPASS_CACHE }, |
- { kForceValidateHeaders, LOAD_VALIDATE_CACHE }, |
- }; |
+ {kPassThroughHeaders, LOAD_DISABLE_CACHE}, |
+ {kForceFetchHeaders, LOAD_BYPASS_CACHE}, |
+ {kForceValidateHeaders, LOAD_VALIDATE_CACHE}, |
+ }; |
bool range_found = false; |
bool external_validation_error = false; |
@@ -1725,10 +1720,9 @@ void HttpCache::Transaction::SetRequest(const BoundNetLog& net_log, |
for (size_t i = 0; i < arraysize(kValidationHeaders); ++i) { |
const ValidationHeaderInfo& info = kValidationHeaders[i]; |
std::string validation_value; |
- if (request_->extra_headers.GetHeader( |
- info.request_header_name, &validation_value)) { |
- if (!external_validation_.values[i].empty() || |
- validation_value.empty()) { |
+ if (request_->extra_headers.GetHeader(info.request_header_name, |
+ &validation_value)) { |
+ if (!external_validation_.values[i].empty() || validation_value.empty()) { |
external_validation_error = true; |
} |
external_validation_.values[i] = validation_value; |
@@ -1912,15 +1906,13 @@ int HttpCache::Transaction::BeginExternallyConditionalizedRequest() { |
DCHECK_EQ(UPDATE, mode_); |
DCHECK(external_validation_.initialized); |
- for (size_t i = 0; i < arraysize(kValidationHeaders); i++) { |
+ for (size_t i = 0; i < arraysize(kValidationHeaders); i++) { |
if (external_validation_.values[i].empty()) |
continue; |
// Retrieve either the cached response's "etag" or "last-modified" header. |
std::string validator; |
response_.headers->EnumerateHeader( |
- NULL, |
- kValidationHeaders[i].related_response_header_name, |
- &validator); |
+ NULL, kValidationHeaders[i].related_response_header_name, &validator); |
if (response_.headers->response_code() != 200 || truncated_ || |
validator.empty() || validator != external_validation_.values[i]) { |
@@ -2031,8 +2023,8 @@ bool HttpCache::Transaction::ConditionalizeRequest() { |
std::string last_modified_value; |
if (!vary_mismatch_) { |
- response_.headers->EnumerateHeader(NULL, "last-modified", |
- &last_modified_value); |
+ response_.headers->EnumerateHeader( |
+ NULL, "last-modified", &last_modified_value); |
} |
if (etag_value.empty() && last_modified_value.empty()) |
@@ -2045,18 +2037,18 @@ bool HttpCache::Transaction::ConditionalizeRequest() { |
} |
DCHECK(custom_request_.get()); |
- bool use_if_range = partial_.get() && !partial_->IsCurrentRangeCached() && |
- !invalid_range_; |
+ bool use_if_range = |
+ partial_.get() && !partial_->IsCurrentRangeCached() && !invalid_range_; |
if (!etag_value.empty()) { |
if (use_if_range) { |
// We don't want to switch to WRITE mode if we don't have this block of a |
// byte-range request because we may have other parts cached. |
- custom_request_->extra_headers.SetHeader( |
- HttpRequestHeaders::kIfRange, etag_value); |
+ custom_request_->extra_headers.SetHeader(HttpRequestHeaders::kIfRange, |
+ etag_value); |
} else { |
- custom_request_->extra_headers.SetHeader( |
- HttpRequestHeaders::kIfNoneMatch, etag_value); |
+ custom_request_->extra_headers.SetHeader(HttpRequestHeaders::kIfNoneMatch, |
+ etag_value); |
} |
// For byte-range requests, make sure that we use only one way to validate |
// the request. |
@@ -2066,8 +2058,8 @@ bool HttpCache::Transaction::ConditionalizeRequest() { |
if (!last_modified_value.empty()) { |
if (use_if_range) { |
- custom_request_->extra_headers.SetHeader( |
- HttpRequestHeaders::kIfRange, last_modified_value); |
+ custom_request_->extra_headers.SetHeader(HttpRequestHeaders::kIfRange, |
+ last_modified_value); |
} else { |
custom_request_->extra_headers.SetHeader( |
HttpRequestHeaders::kIfModifiedSince, last_modified_value); |
@@ -2230,7 +2222,6 @@ int HttpCache::Transaction::SetupEntryForRead() { |
return OK; |
} |
- |
int HttpCache::Transaction::ReadFromNetwork(IOBuffer* data, int data_len) { |
read_buf_ = data; |
io_buf_len_ = data_len; |
@@ -2245,16 +2236,18 @@ int HttpCache::Transaction::ReadFromEntry(IOBuffer* data, int data_len) { |
return DoLoop(OK); |
} |
-int HttpCache::Transaction::WriteToEntry(int index, int offset, |
- IOBuffer* data, int data_len, |
+int HttpCache::Transaction::WriteToEntry(int index, |
+ int offset, |
+ IOBuffer* data, |
+ int data_len, |
const CompletionCallback& callback) { |
if (!entry_) |
return data_len; |
int rv = 0; |
if (!partial_.get() || !data_len) { |
- rv = entry_->disk_entry->WriteData(index, offset, data, data_len, callback, |
- true); |
+ rv = entry_->disk_entry->WriteData( |
+ index, offset, data, data_len, callback, true); |
} else { |
rv = partial_->CacheWrite(entry_->disk_entry, data, data_len, callback); |
} |
@@ -2296,18 +2289,20 @@ int HttpCache::Transaction::WriteResponseInfoToEntry(bool truncated) { |
data->Done(); |
io_buf_len_ = data->pickle()->size(); |
- return entry_->disk_entry->WriteData(kResponseInfoIndex, 0, data.get(), |
- io_buf_len_, io_callback_, true); |
+ return entry_->disk_entry->WriteData( |
+ kResponseInfoIndex, 0, data.get(), io_buf_len_, io_callback_, true); |
} |
int HttpCache::Transaction::AppendResponseDataToEntry( |
- IOBuffer* data, int data_len, const CompletionCallback& callback) { |
+ IOBuffer* data, |
+ int data_len, |
+ const CompletionCallback& callback) { |
if (!entry_ || !data_len) |
return data_len; |
int current_size = entry_->disk_entry->GetDataSize(kResponseContentIndex); |
- return WriteToEntry(kResponseContentIndex, current_size, data, data_len, |
- callback); |
+ return WriteToEntry( |
+ kResponseContentIndex, current_size, data, data_len, callback); |
} |
void HttpCache::Transaction::DoneWritingToEntry(bool success) { |
@@ -2464,13 +2459,12 @@ void HttpCache::Transaction::RecordHistograms() { |
UMA_HISTOGRAM_TIMES("HttpCache.AccessToDone", total_time); |
bool did_send_request = !send_request_since_.is_null(); |
- DCHECK( |
- (did_send_request && |
- (transaction_pattern_ == PATTERN_ENTRY_NOT_CACHED || |
- transaction_pattern_ == PATTERN_ENTRY_VALIDATED || |
- transaction_pattern_ == PATTERN_ENTRY_UPDATED || |
- transaction_pattern_ == PATTERN_ENTRY_CANT_CONDITIONALIZE)) || |
- (!did_send_request && transaction_pattern_ == PATTERN_ENTRY_USED)); |
+ DCHECK((did_send_request && |
+ (transaction_pattern_ == PATTERN_ENTRY_NOT_CACHED || |
+ transaction_pattern_ == PATTERN_ENTRY_VALIDATED || |
+ transaction_pattern_ == PATTERN_ENTRY_UPDATED || |
+ transaction_pattern_ == PATTERN_ENTRY_CANT_CONDITIONALIZE)) || |
+ (!did_send_request && transaction_pattern_ == PATTERN_ENTRY_USED)); |
if (!did_send_request) { |
DCHECK(transaction_pattern_ == PATTERN_ENTRY_USED); |
@@ -2479,9 +2473,9 @@ void HttpCache::Transaction::RecordHistograms() { |
} |
TimeDelta before_send_time = send_request_since_ - first_cache_access_since_; |
- int before_send_percent = |
- total_time.ToInternalValue() == 0 ? 0 |
- : before_send_time * 100 / total_time; |
+ int before_send_percent = total_time.ToInternalValue() == 0 |
+ ? 0 |
+ : before_send_time * 100 / total_time; |
DCHECK_LE(0, before_send_percent); |
DCHECK_GE(100, before_send_percent); |