Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: net/http/http_cache_transaction.h

Issue 14625012: net: Return LoadTiming information in the case of a cache hit (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Missed a couple spots Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file declares HttpCache::Transaction, a private class of HttpCache so 5 // This file declares HttpCache::Transaction, a private class of HttpCache so
6 // it should only be included by http_cache.cc 6 // it should only be included by http_cache.cc
7 7
8 #ifndef NET_HTTP_HTTP_CACHE_TRANSACTION_H_ 8 #ifndef NET_HTTP_HTTP_CACHE_TRANSACTION_H_
9 #define NET_HTTP_HTTP_CACHE_TRANSACTION_H_ 9 #define NET_HTTP_HTTP_CACHE_TRANSACTION_H_
10 10
11 #include <string> 11 #include <string>
12 12
13 #include "base/time.h" 13 #include "base/time.h"
14 #include "net/base/completion_callback.h" 14 #include "net/base/completion_callback.h"
15 #include "net/base/net_log.h" 15 #include "net/base/net_log.h"
16 #include "net/base/request_priority.h" 16 #include "net/base/request_priority.h"
17 #include "net/http/http_cache.h" 17 #include "net/http/http_cache.h"
18 #include "net/http/http_response_info.h" 18 #include "net/http/http_response_info.h"
19 #include "net/http/http_request_headers.h" 19 #include "net/http/http_request_headers.h"
20 #include "net/http/http_transaction.h" 20 #include "net/http/http_transaction.h"
21 21
22 namespace net { 22 namespace net {
23 23
24 class PartialData; 24 class PartialData;
25 struct HttpRequestInfo; 25 struct HttpRequestInfo;
26 class HttpTransactionDelegate; 26 class HttpTransactionDelegate;
27 struct LoadTimingInfo;
27 28
28 // This is the transaction that is returned by the HttpCache transaction 29 // This is the transaction that is returned by the HttpCache transaction
29 // factory. 30 // factory.
30 class HttpCache::Transaction : public HttpTransaction { 31 class HttpCache::Transaction : public HttpTransaction {
31 public: 32 public:
32 // The transaction has the following modes, which apply to how it may access 33 // The transaction has the following modes, which apply to how it may access
33 // its cache entry. 34 // its cache entry.
34 // 35 //
35 // o If the mode of the transaction is NONE, then it is in "pass through" 36 // o If the mode of the transaction is NONE, then it is in "pass through"
36 // mode and all methods just forward to the inner network transaction. 37 // mode and all methods just forward to the inner network transaction.
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 379
379 // Resets cache_io_start_ to the current time, if |return_value| is 380 // Resets cache_io_start_ to the current time, if |return_value| is
380 // ERR_IO_PENDING. 381 // ERR_IO_PENDING.
381 // Returns |return_value|. 382 // Returns |return_value|.
382 int ResetCacheIOStart(int return_value); 383 int ResetCacheIOStart(int return_value);
383 384
384 void ScheduleDelayedLoop(base::TimeDelta delay, int result); 385 void ScheduleDelayedLoop(base::TimeDelta delay, int result);
385 void RunDelayedLoop(base::TimeTicks delay_start_time, 386 void RunDelayedLoop(base::TimeTicks delay_start_time,
386 base::TimeDelta intended_delay, int result); 387 base::TimeDelta intended_delay, int result);
387 388
389 // Resets |network_trans_|, which must be non-NULL. Also updates
390 // |old_network_trans_load_timing_|, which must NULL.
eroman 2013/05/15 01:11:50 "which must NULL" --> something is missing
mmenke 2013/05/15 01:52:38 Done.
391 void ResetNetworkTransaction();
392
388 State next_state_; 393 State next_state_;
389 const HttpRequestInfo* request_; 394 const HttpRequestInfo* request_;
390 RequestPriority priority_; 395 RequestPriority priority_;
391 BoundNetLog net_log_; 396 BoundNetLog net_log_;
392 scoped_ptr<HttpRequestInfo> custom_request_; 397 scoped_ptr<HttpRequestInfo> custom_request_;
393 HttpRequestHeaders request_headers_copy_; 398 HttpRequestHeaders request_headers_copy_;
394 // If extra_headers specified a "if-modified-since" or "if-none-match", 399 // If extra_headers specified a "if-modified-since" or "if-none-match",
395 // |external_validation_| contains the value of those headers. 400 // |external_validation_| contains the value of those headers.
396 ValidationHeaders external_validation_; 401 ValidationHeaders external_validation_;
397 base::WeakPtr<HttpCache> cache_; 402 base::WeakPtr<HttpCache> cache_;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 // a delay on return, we must defer that delay until AddToEntry has been 445 // a delay on return, we must defer that delay until AddToEntry has been
441 // called, to avoid a race condition on the address returned. 446 // called, to avoid a race condition on the address returned.
442 base::TimeDelta deferred_cache_sensitivity_delay_; 447 base::TimeDelta deferred_cache_sensitivity_delay_;
443 bool defer_cache_sensitivity_delay_; 448 bool defer_cache_sensitivity_delay_;
444 449
445 // For sensitivity analysis, the simulated increase in cache service times, 450 // For sensitivity analysis, the simulated increase in cache service times,
446 // in percent. 451 // in percent.
447 int sensitivity_analysis_percent_increase_; 452 int sensitivity_analysis_percent_increase_;
448 453
449 HttpTransactionDelegate* transaction_delegate_; 454 HttpTransactionDelegate* transaction_delegate_;
455
456 // Load timing information for the last network request, if any. Set in the
457 // 304 and 206 response cases, as the network transaction may be destroyed
458 // before the caller requests load timing information.
459 scoped_ptr<LoadTimingInfo> old_network_trans_load_timing_;
450 }; 460 };
451 461
452 } // namespace net 462 } // namespace net
453 463
454 #endif // NET_HTTP_HTTP_CACHE_TRANSACTION_H_ 464 #endif // NET_HTTP_HTTP_CACHE_TRANSACTION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698