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

Side by Side Diff: chrome/browser/net/passive_log_collector.h

Issue 8612007: Add OVERRIDE to chrome/browser/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_NET_PASSIVE_LOG_COLLECTOR_H_ 5 #ifndef CHROME_BROWSER_NET_PASSIVE_LOG_COLLECTOR_H_
6 #define CHROME_BROWSER_NET_PASSIVE_LOG_COLLECTOR_H_ 6 #define CHROME_BROWSER_NET_PASSIVE_LOG_COLLECTOR_H_
7 #pragma once 7 #pragma once
8 8
9 #include <deque> 9 #include <deque>
10 #include <string> 10 #include <string>
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 }; 86 };
87 87
88 // This source tracker is intended for TYPE_NONE. All entries go into a 88 // This source tracker is intended for TYPE_NONE. All entries go into a
89 // circular buffer, and there is no concept of live/dead requests. 89 // circular buffer, and there is no concept of live/dead requests.
90 class GlobalSourceTracker : public SourceTrackerInterface { 90 class GlobalSourceTracker : public SourceTrackerInterface {
91 public: 91 public:
92 GlobalSourceTracker(); 92 GlobalSourceTracker();
93 virtual ~GlobalSourceTracker(); 93 virtual ~GlobalSourceTracker();
94 94
95 // SourceTrackerInterface implementation: 95 // SourceTrackerInterface implementation:
96 virtual void OnAddEntry(const ChromeNetLog::Entry& entry); 96 virtual void OnAddEntry(const ChromeNetLog::Entry& entry) OVERRIDE;
97 virtual void Clear(); 97 virtual void Clear() OVERRIDE;
98 virtual void AppendAllEntries(ChromeNetLog::EntryList* out) const; 98 virtual void AppendAllEntries(ChromeNetLog::EntryList* out) const OVERRIDE;
99 99
100 private: 100 private:
101 typedef std::deque<ChromeNetLog::Entry> CircularEntryList; 101 typedef std::deque<ChromeNetLog::Entry> CircularEntryList;
102 CircularEntryList entries_; 102 CircularEntryList entries_;
103 DISALLOW_COPY_AND_ASSIGN(GlobalSourceTracker); 103 DISALLOW_COPY_AND_ASSIGN(GlobalSourceTracker);
104 }; 104 };
105 105
106 // This class stores and manages the passively logged information for 106 // This class stores and manages the passively logged information for
107 // URLRequests/SocketStreams/ConnectJobs. 107 // URLRequests/SocketStreams/ConnectJobs.
108 class SourceTracker : public SourceTrackerInterface { 108 class SourceTracker : public SourceTrackerInterface {
109 public: 109 public:
110 // Creates a SourceTracker that will track at most |max_num_sources|. 110 // Creates a SourceTracker that will track at most |max_num_sources|.
111 // Up to |max_graveyard_size| unreferenced sources will be kept around 111 // Up to |max_graveyard_size| unreferenced sources will be kept around
112 // before deleting them for good. |parent| may be NULL, and points to 112 // before deleting them for good. |parent| may be NULL, and points to
113 // the owning PassiveLogCollector (it is used when adding references 113 // the owning PassiveLogCollector (it is used when adding references
114 // to other sources). 114 // to other sources).
115 SourceTracker(size_t max_num_sources, 115 SourceTracker(size_t max_num_sources,
116 size_t max_graveyard_size, 116 size_t max_graveyard_size,
117 PassiveLogCollector* parent); 117 PassiveLogCollector* parent);
118 118
119 virtual ~SourceTracker(); 119 virtual ~SourceTracker();
120 120
121 // SourceTrackerInterface implementation: 121 // SourceTrackerInterface implementation:
122 virtual void OnAddEntry(const ChromeNetLog::Entry& entry); 122 virtual void OnAddEntry(const ChromeNetLog::Entry& entry) OVERRIDE;
123 virtual void Clear(); 123 virtual void Clear() OVERRIDE;
124 virtual void AppendAllEntries(ChromeNetLog::EntryList* out) const; 124 virtual void AppendAllEntries(ChromeNetLog::EntryList* out) const OVERRIDE;
125 125
126 #ifdef UNIT_TEST 126 #ifdef UNIT_TEST
127 // Helper used to inspect the current state by unit-tests. 127 // Helper used to inspect the current state by unit-tests.
128 // Retuns a copy of the source infos held by the tracker. 128 // Retuns a copy of the source infos held by the tracker.
129 SourceInfoList GetAllDeadOrAliveSources(bool is_alive) const { 129 SourceInfoList GetAllDeadOrAliveSources(bool is_alive) const {
130 SourceInfoList result; 130 SourceInfoList result;
131 for (SourceIDToInfoMap::const_iterator it = sources_.begin(); 131 for (SourceIDToInfoMap::const_iterator it = sources_.begin();
132 it != sources_.end(); ++it) { 132 it != sources_.end(); ++it) {
133 if (it->second.is_alive == is_alive) 133 if (it->second.is_alive == is_alive)
134 result.push_back(it->second); 134 result.push_back(it->second);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 // Specialization of SourceTracker for handling ConnectJobs. 195 // Specialization of SourceTracker for handling ConnectJobs.
196 class ConnectJobTracker : public SourceTracker { 196 class ConnectJobTracker : public SourceTracker {
197 public: 197 public:
198 static const size_t kMaxNumSources; 198 static const size_t kMaxNumSources;
199 static const size_t kMaxGraveyardSize; 199 static const size_t kMaxGraveyardSize;
200 200
201 explicit ConnectJobTracker(PassiveLogCollector* parent); 201 explicit ConnectJobTracker(PassiveLogCollector* parent);
202 202
203 private: 203 private:
204 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 204 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
205 SourceInfo* out_info); 205 SourceInfo* out_info) OVERRIDE;
206 DISALLOW_COPY_AND_ASSIGN(ConnectJobTracker); 206 DISALLOW_COPY_AND_ASSIGN(ConnectJobTracker);
207 }; 207 };
208 208
209 // Specialization of SourceTracker for handling Sockets. 209 // Specialization of SourceTracker for handling Sockets.
210 class SocketTracker : public SourceTracker { 210 class SocketTracker : public SourceTracker {
211 public: 211 public:
212 static const size_t kMaxNumSources; 212 static const size_t kMaxNumSources;
213 static const size_t kMaxGraveyardSize; 213 static const size_t kMaxGraveyardSize;
214 214
215 SocketTracker(); 215 SocketTracker();
216 216
217 private: 217 private:
218 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 218 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
219 SourceInfo* out_info); 219 SourceInfo* out_info) OVERRIDE;
220 220
221 DISALLOW_COPY_AND_ASSIGN(SocketTracker); 221 DISALLOW_COPY_AND_ASSIGN(SocketTracker);
222 }; 222 };
223 223
224 // Specialization of SourceTracker for handling net::URLRequest/SocketStream. 224 // Specialization of SourceTracker for handling net::URLRequest/SocketStream.
225 class RequestTracker : public SourceTracker { 225 class RequestTracker : public SourceTracker {
226 public: 226 public:
227 static const size_t kMaxNumSources; 227 static const size_t kMaxNumSources;
228 static const size_t kMaxGraveyardSize; 228 static const size_t kMaxGraveyardSize;
229 229
230 explicit RequestTracker(PassiveLogCollector* parent); 230 explicit RequestTracker(PassiveLogCollector* parent);
231 231
232 private: 232 private:
233 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 233 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
234 SourceInfo* out_info); 234 SourceInfo* out_info) OVERRIDE;
235 235
236 DISALLOW_COPY_AND_ASSIGN(RequestTracker); 236 DISALLOW_COPY_AND_ASSIGN(RequestTracker);
237 }; 237 };
238 238
239 // Specialization of SourceTracker for handling 239 // Specialization of SourceTracker for handling
240 // SOURCE_INIT_PROXY_RESOLVER. 240 // SOURCE_INIT_PROXY_RESOLVER.
241 class InitProxyResolverTracker : public SourceTracker { 241 class InitProxyResolverTracker : public SourceTracker {
242 public: 242 public:
243 static const size_t kMaxNumSources; 243 static const size_t kMaxNumSources;
244 static const size_t kMaxGraveyardSize; 244 static const size_t kMaxGraveyardSize;
245 245
246 InitProxyResolverTracker(); 246 InitProxyResolverTracker();
247 247
248 private: 248 private:
249 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 249 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
250 SourceInfo* out_info); 250 SourceInfo* out_info) OVERRIDE;
251 251
252 DISALLOW_COPY_AND_ASSIGN(InitProxyResolverTracker); 252 DISALLOW_COPY_AND_ASSIGN(InitProxyResolverTracker);
253 }; 253 };
254 254
255 // Tracks the log entries for the last seen SOURCE_SPDY_SESSION. 255 // Tracks the log entries for the last seen SOURCE_SPDY_SESSION.
256 class SpdySessionTracker : public SourceTracker { 256 class SpdySessionTracker : public SourceTracker {
257 public: 257 public:
258 static const size_t kMaxNumSources; 258 static const size_t kMaxNumSources;
259 static const size_t kMaxGraveyardSize; 259 static const size_t kMaxGraveyardSize;
260 260
261 SpdySessionTracker(); 261 SpdySessionTracker();
262 262
263 private: 263 private:
264 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 264 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
265 SourceInfo* out_info); 265 SourceInfo* out_info) OVERRIDE;
266 266
267 DISALLOW_COPY_AND_ASSIGN(SpdySessionTracker); 267 DISALLOW_COPY_AND_ASSIGN(SpdySessionTracker);
268 }; 268 };
269 269
270 // Tracks the log entries for the last seen SOURCE_HOST_RESOLVER_IMPL_REQUEST. 270 // Tracks the log entries for the last seen SOURCE_HOST_RESOLVER_IMPL_REQUEST.
271 class DNSRequestTracker : public SourceTracker { 271 class DNSRequestTracker : public SourceTracker {
272 public: 272 public:
273 static const size_t kMaxNumSources; 273 static const size_t kMaxNumSources;
274 static const size_t kMaxGraveyardSize; 274 static const size_t kMaxGraveyardSize;
275 275
276 DNSRequestTracker(); 276 DNSRequestTracker();
277 277
278 private: 278 private:
279 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 279 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
280 SourceInfo* out_info); 280 SourceInfo* out_info) OVERRIDE;
281 281
282 DISALLOW_COPY_AND_ASSIGN(DNSRequestTracker); 282 DISALLOW_COPY_AND_ASSIGN(DNSRequestTracker);
283 }; 283 };
284 284
285 // Tracks the log entries for the last seen SOURCE_HOST_RESOLVER_IMPL_JOB. 285 // Tracks the log entries for the last seen SOURCE_HOST_RESOLVER_IMPL_JOB.
286 class DNSJobTracker : public SourceTracker { 286 class DNSJobTracker : public SourceTracker {
287 public: 287 public:
288 static const size_t kMaxNumSources; 288 static const size_t kMaxNumSources;
289 static const size_t kMaxGraveyardSize; 289 static const size_t kMaxGraveyardSize;
290 290
291 DNSJobTracker(); 291 DNSJobTracker();
292 292
293 private: 293 private:
294 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 294 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
295 SourceInfo* out_info); 295 SourceInfo* out_info) OVERRIDE;
296 296
297 DISALLOW_COPY_AND_ASSIGN(DNSJobTracker); 297 DISALLOW_COPY_AND_ASSIGN(DNSJobTracker);
298 }; 298 };
299 299
300 // Tracks the log entries for the last seen SOURCE_DISK_CACHE_ENTRY. 300 // Tracks the log entries for the last seen SOURCE_DISK_CACHE_ENTRY.
301 class DiskCacheEntryTracker : public SourceTracker { 301 class DiskCacheEntryTracker : public SourceTracker {
302 public: 302 public:
303 static const size_t kMaxNumSources; 303 static const size_t kMaxNumSources;
304 static const size_t kMaxGraveyardSize; 304 static const size_t kMaxGraveyardSize;
305 305
306 DiskCacheEntryTracker(); 306 DiskCacheEntryTracker();
307 307
308 private: 308 private:
309 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 309 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
310 SourceInfo* out_info); 310 SourceInfo* out_info) OVERRIDE;
311 311
312 DISALLOW_COPY_AND_ASSIGN(DiskCacheEntryTracker); 312 DISALLOW_COPY_AND_ASSIGN(DiskCacheEntryTracker);
313 }; 313 };
314 314
315 // Tracks the log entries for the last seen SOURCE_DISK_CACHE_ENTRY. 315 // Tracks the log entries for the last seen SOURCE_DISK_CACHE_ENTRY.
316 class MemCacheEntryTracker : public SourceTracker { 316 class MemCacheEntryTracker : public SourceTracker {
317 public: 317 public:
318 static const size_t kMaxNumSources; 318 static const size_t kMaxNumSources;
319 static const size_t kMaxGraveyardSize; 319 static const size_t kMaxGraveyardSize;
320 320
321 MemCacheEntryTracker(); 321 MemCacheEntryTracker();
322 322
323 protected: 323 protected:
324 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 324 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
325 SourceInfo* out_info); 325 SourceInfo* out_info) OVERRIDE;
326 326
327 private: 327 private:
328 DISALLOW_COPY_AND_ASSIGN(MemCacheEntryTracker); 328 DISALLOW_COPY_AND_ASSIGN(MemCacheEntryTracker);
329 }; 329 };
330 330
331 class HttpStreamJobTracker : public SourceTracker { 331 class HttpStreamJobTracker : public SourceTracker {
332 public: 332 public:
333 static const size_t kMaxNumSources; 333 static const size_t kMaxNumSources;
334 static const size_t kMaxGraveyardSize; 334 static const size_t kMaxGraveyardSize;
335 335
336 explicit HttpStreamJobTracker(PassiveLogCollector* parent); 336 explicit HttpStreamJobTracker(PassiveLogCollector* parent);
337 337
338 private: 338 private:
339 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 339 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
340 SourceInfo* out_info); 340 SourceInfo* out_info) OVERRIDE;
341 DISALLOW_COPY_AND_ASSIGN(HttpStreamJobTracker); 341 DISALLOW_COPY_AND_ASSIGN(HttpStreamJobTracker);
342 }; 342 };
343 343
344 class ExponentialBackoffThrottlingTracker : public SourceTracker { 344 class ExponentialBackoffThrottlingTracker : public SourceTracker {
345 public: 345 public:
346 static const size_t kMaxNumSources; 346 static const size_t kMaxNumSources;
347 static const size_t kMaxGraveyardSize; 347 static const size_t kMaxGraveyardSize;
348 348
349 explicit ExponentialBackoffThrottlingTracker(PassiveLogCollector* parent); 349 explicit ExponentialBackoffThrottlingTracker(PassiveLogCollector* parent);
350 350
351 private: 351 private:
352 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 352 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
353 SourceInfo* out_info); 353 SourceInfo* out_info) OVERRIDE;
354 DISALLOW_COPY_AND_ASSIGN(ExponentialBackoffThrottlingTracker); 354 DISALLOW_COPY_AND_ASSIGN(ExponentialBackoffThrottlingTracker);
355 }; 355 };
356 356
357 // Tracks the log entries for the last seen SOURCE_DNS_TRANSACTION. 357 // Tracks the log entries for the last seen SOURCE_DNS_TRANSACTION.
358 class DnsTransactionTracker : public SourceTracker { 358 class DnsTransactionTracker : public SourceTracker {
359 public: 359 public:
360 static const size_t kMaxNumSources; 360 static const size_t kMaxNumSources;
361 static const size_t kMaxGraveyardSize; 361 static const size_t kMaxGraveyardSize;
362 362
363 DnsTransactionTracker(); 363 DnsTransactionTracker();
364 364
365 private: 365 private:
366 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 366 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
367 SourceInfo* out_info); 367 SourceInfo* out_info) OVERRIDE;
368 368
369 DISALLOW_COPY_AND_ASSIGN(DnsTransactionTracker); 369 DISALLOW_COPY_AND_ASSIGN(DnsTransactionTracker);
370 }; 370 };
371 371
372 // Tracks the log entries for the last seen SOURCE_ASYNC_HOST_RESOLVER_REQUEST 372 // Tracks the log entries for the last seen SOURCE_ASYNC_HOST_RESOLVER_REQUEST
373 class AsyncHostResolverRequestTracker : public SourceTracker { 373 class AsyncHostResolverRequestTracker : public SourceTracker {
374 public: 374 public:
375 static const size_t kMaxNumSources; 375 static const size_t kMaxNumSources;
376 static const size_t kMaxGraveyardSize; 376 static const size_t kMaxGraveyardSize;
377 377
378 AsyncHostResolverRequestTracker(); 378 AsyncHostResolverRequestTracker();
379 379
380 private: 380 private:
381 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 381 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
382 SourceInfo* out_info); 382 SourceInfo* out_info) OVERRIDE;
383 383
384 DISALLOW_COPY_AND_ASSIGN(AsyncHostResolverRequestTracker); 384 DISALLOW_COPY_AND_ASSIGN(AsyncHostResolverRequestTracker);
385 }; 385 };
386 386
387 387
388 // Tracks the log entries for the last seen SOURCE_UDP_SOCKET. 388 // Tracks the log entries for the last seen SOURCE_UDP_SOCKET.
389 class UDPSocketTracker : public SourceTracker { 389 class UDPSocketTracker : public SourceTracker {
390 public: 390 public:
391 static const size_t kMaxNumSources; 391 static const size_t kMaxNumSources;
392 static const size_t kMaxGraveyardSize; 392 static const size_t kMaxGraveyardSize;
393 393
394 UDPSocketTracker(); 394 UDPSocketTracker();
395 395
396 private: 396 private:
397 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 397 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
398 SourceInfo* out_info); 398 SourceInfo* out_info) OVERRIDE;
399 399
400 DISALLOW_COPY_AND_ASSIGN(UDPSocketTracker); 400 DISALLOW_COPY_AND_ASSIGN(UDPSocketTracker);
401 }; 401 };
402 402
403 // Tracks the log entries for the last seen SOURCE_CERT_VERIFIER_JOB 403 // Tracks the log entries for the last seen SOURCE_CERT_VERIFIER_JOB
404 class CertVerifierJobTracker : public SourceTracker { 404 class CertVerifierJobTracker : public SourceTracker {
405 public: 405 public:
406 static const size_t kMaxNumSources; 406 static const size_t kMaxNumSources;
407 static const size_t kMaxGraveyardSize; 407 static const size_t kMaxGraveyardSize;
408 408
409 CertVerifierJobTracker(); 409 CertVerifierJobTracker();
410 410
411 private: 411 private:
412 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry, 412 virtual Action DoAddEntry(const ChromeNetLog::Entry& entry,
413 SourceInfo* out_info); 413 SourceInfo* out_info) OVERRIDE;
414 414
415 DISALLOW_COPY_AND_ASSIGN(CertVerifierJobTracker); 415 DISALLOW_COPY_AND_ASSIGN(CertVerifierJobTracker);
416 }; 416 };
417 417
418 PassiveLogCollector(); 418 PassiveLogCollector();
419 virtual ~PassiveLogCollector(); 419 virtual ~PassiveLogCollector();
420 420
421 // ThreadSafeObserver implementation: 421 // ThreadSafeObserver implementation:
422 virtual void OnAddEntry(net::NetLog::EventType type, 422 virtual void OnAddEntry(net::NetLog::EventType type,
423 const base::TimeTicks& time, 423 const base::TimeTicks& time,
424 const net::NetLog::Source& source, 424 const net::NetLog::Source& source,
425 net::NetLog::EventPhase phase, 425 net::NetLog::EventPhase phase,
426 net::NetLog::EventParameters* params); 426 net::NetLog::EventParameters* params) OVERRIDE;
427 427
428 // Clears all of the passively logged data. 428 // Clears all of the passively logged data.
429 void Clear(); 429 void Clear();
430 430
431 // Fills |out| with the full list of events that have been passively 431 // Fills |out| with the full list of events that have been passively
432 // captured. The list is ordered by capture time. 432 // captured. The list is ordered by capture time.
433 void GetAllCapturedEvents(ChromeNetLog::EntryList* out) const; 433 void GetAllCapturedEvents(ChromeNetLog::EntryList* out) const;
434 434
435 private: 435 private:
436 // Returns the tracker to use for sources of type |source_type|, or NULL. 436 // Returns the tracker to use for sources of type |source_type|, or NULL.
(...skipping 29 matching lines...) Expand all
466 SourceTrackerInterface* trackers_[net::NetLog::SOURCE_COUNT]; 466 SourceTrackerInterface* trackers_[net::NetLog::SOURCE_COUNT];
467 467
468 // The count of how many events have flowed through this log. Used to set the 468 // The count of how many events have flowed through this log. Used to set the
469 // "order" field on captured events. 469 // "order" field on captured events.
470 uint32 num_events_seen_; 470 uint32 num_events_seen_;
471 471
472 DISALLOW_COPY_AND_ASSIGN(PassiveLogCollector); 472 DISALLOW_COPY_AND_ASSIGN(PassiveLogCollector);
473 }; 473 };
474 474
475 #endif // CHROME_BROWSER_NET_PASSIVE_LOG_COLLECTOR_H_ 475 #endif // CHROME_BROWSER_NET_PASSIVE_LOG_COLLECTOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698