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

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

Issue 182993003: Add the ability for DevTools to wrap network transactions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 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 a HttpTransactionFactory implementation that can be 5 // This file declares a HttpTransactionFactory implementation that can be
6 // layered on top of another HttpTransactionFactory to add HTTP caching. The 6 // layered on top of another HttpTransactionFactory to add HTTP caching. The
7 // caching logic follows RFC 2616 (any exceptions are called out in the code). 7 // caching logic follows RFC 2616 (any exceptions are called out in the code).
8 // 8 //
9 // The HttpCache takes a disk_cache::Backend as a parameter, and uses that for 9 // The HttpCache takes a disk_cache::Backend as a parameter, and uses that for
10 // the cache storage. 10 // the cache storage.
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 const base::FilePath path_; 118 const base::FilePath path_;
119 int max_bytes_; 119 int max_bytes_;
120 scoped_refptr<base::MessageLoopProxy> thread_; 120 scoped_refptr<base::MessageLoopProxy> thread_;
121 }; 121 };
122 122
123 // The disk cache is initialized lazily (by CreateTransaction) in this case. 123 // The disk cache is initialized lazily (by CreateTransaction) in this case.
124 // The HttpCache takes ownership of the |backend_factory|. 124 // The HttpCache takes ownership of the |backend_factory|.
125 HttpCache(const net::HttpNetworkSession::Params& params, 125 HttpCache(const net::HttpNetworkSession::Params& params,
126 BackendFactory* backend_factory); 126 BackendFactory* backend_factory);
127 127
128 // The disk cache is initialized lazily (by CreateTransaction) in this case. 128 // The disk cache is initialized lazily (by CreateTransaction) in this case.
129 // Provide an existing HttpNetworkSession, the cache can construct a 129 // Provide an existing HttpNetworkSession, the cache can construct a
130 // network layer with a shared HttpNetworkSession in order for multiple 130 // network layer with a shared HttpNetworkSession in order for multiple
131 // network layers to share information (e.g. authentication data). The 131 // network layers to share information (e.g. authentication data). The
132 // HttpCache takes ownership of the |backend_factory|. 132 // HttpCache takes ownership of the |backend_factory|.
133 HttpCache(HttpNetworkSession* session, BackendFactory* backend_factory); 133 HttpCache(HttpNetworkSession* session, BackendFactory* backend_factory);
134 134
135 // Initialize the cache from its component parts, which is useful for 135 // Initialize the cache from its component parts. The lifetime of the
136 // testing. The lifetime of the network_layer and backend_factory are managed 136 // |network_layer| and |backend_factory| are managed by the HttpCache and
137 // by the HttpCache and will be destroyed using |delete| when the HttpCache is 137 // will be destroyed using |delete| when the HttpCache is destroyed.
138 // destroyed.
139 HttpCache(HttpTransactionFactory* network_layer, 138 HttpCache(HttpTransactionFactory* network_layer,
140 NetLog* net_log, 139 NetLog* net_log,
141 BackendFactory* backend_factory); 140 BackendFactory* backend_factory);
142 141
143 virtual ~HttpCache(); 142 virtual ~HttpCache();
144 143
145 HttpTransactionFactory* network_layer() { return network_layer_.get(); } 144 HttpTransactionFactory* network_layer() { return network_layer_.get(); }
146 145
147 // Retrieves the cache backend for this HttpCache instance. If the backend 146 // Retrieves the cache backend for this HttpCache instance. If the backend
148 // is not initialized yet, this method will initialize it. The return value is 147 // is not initialized yet, this method will initialize it. The return value is
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 void RemovePendingTransaction(Transaction* trans); 346 void RemovePendingTransaction(Transaction* trans);
348 347
349 // Removes the transaction |trans|, from the pending list of |entry|. 348 // Removes the transaction |trans|, from the pending list of |entry|.
350 bool RemovePendingTransactionFromEntry(ActiveEntry* entry, 349 bool RemovePendingTransactionFromEntry(ActiveEntry* entry,
351 Transaction* trans); 350 Transaction* trans);
352 351
353 // Removes the transaction |trans|, from the pending list of |pending_op|. 352 // Removes the transaction |trans|, from the pending list of |pending_op|.
354 bool RemovePendingTransactionFromPendingOp(PendingOp* pending_op, 353 bool RemovePendingTransactionFromPendingOp(PendingOp* pending_op,
355 Transaction* trans); 354 Transaction* trans);
356 355
356 // Instantiates and sets QUIC server info factory.
357 void SetupQuicServerInfoFactory(HttpNetworkSession* session);
358
357 // Resumes processing the pending list of |entry|. 359 // Resumes processing the pending list of |entry|.
358 void ProcessPendingQueue(ActiveEntry* entry); 360 void ProcessPendingQueue(ActiveEntry* entry);
359 361
360 // Events (called via PostTask) --------------------------------------------- 362 // Events (called via PostTask) ---------------------------------------------
361 363
362 void OnProcessPendingQueue(ActiveEntry* entry); 364 void OnProcessPendingQueue(ActiveEntry* entry);
363 365
364 // Callbacks ---------------------------------------------------------------- 366 // Callbacks ----------------------------------------------------------------
365 367
366 // Processes BackendCallback notifications. 368 // Processes BackendCallback notifications.
(...skipping 15 matching lines...) Expand all
382 // Variables ---------------------------------------------------------------- 384 // Variables ----------------------------------------------------------------
383 385
384 NetLog* net_log_; 386 NetLog* net_log_;
385 387
386 // Used when lazily constructing the disk_cache_. 388 // Used when lazily constructing the disk_cache_.
387 scoped_ptr<BackendFactory> backend_factory_; 389 scoped_ptr<BackendFactory> backend_factory_;
388 bool building_backend_; 390 bool building_backend_;
389 391
390 Mode mode_; 392 Mode mode_;
391 393
392 const scoped_ptr<QuicServerInfoFactoryAdaptor> quic_server_info_factory_; 394 scoped_ptr<QuicServerInfoFactoryAdaptor> quic_server_info_factory_;
393 395
394 scoped_ptr<HttpTransactionFactory> network_layer_; 396 scoped_ptr<HttpTransactionFactory> network_layer_;
395 397
396 scoped_ptr<disk_cache::Backend> disk_cache_; 398 scoped_ptr<disk_cache::Backend> disk_cache_;
397 399
398 // The set of active entries indexed by cache key. 400 // The set of active entries indexed by cache key.
399 ActiveEntriesMap active_entries_; 401 ActiveEntriesMap active_entries_;
400 402
401 // The set of doomed entries. 403 // The set of doomed entries.
402 ActiveEntriesSet doomed_entries_; 404 ActiveEntriesSet doomed_entries_;
403 405
404 // The set of entries "under construction". 406 // The set of entries "under construction".
405 PendingOpsMap pending_ops_; 407 PendingOpsMap pending_ops_;
406 408
407 scoped_ptr<PlaybackCacheMap> playback_cache_map_; 409 scoped_ptr<PlaybackCacheMap> playback_cache_map_;
408 410
409 DISALLOW_COPY_AND_ASSIGN(HttpCache); 411 DISALLOW_COPY_AND_ASSIGN(HttpCache);
410 }; 412 };
411 413
412 } // namespace net 414 } // namespace net
413 415
414 #endif // NET_HTTP_HTTP_CACHE_H_ 416 #endif // NET_HTTP_HTTP_CACHE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698