| OLD | NEW |
| 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 #include "net/log/net_log.h" | 5 #include "net/log/net_log.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/debug/alias.h" | 10 #include "base/debug/alias.h" |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 if (!IsCapturing()) | 403 if (!IsCapturing()) |
| 404 return; | 404 return; |
| 405 EntryData entry_data(type, source, phase, base::TimeTicks::Now(), | 405 EntryData entry_data(type, source, phase, base::TimeTicks::Now(), |
| 406 parameters_callback); | 406 parameters_callback); |
| 407 | 407 |
| 408 // Notify all of the log observers. | 408 // Notify all of the log observers. |
| 409 base::AutoLock lock(lock_); | 409 base::AutoLock lock(lock_); |
| 410 FOR_EACH_OBSERVER(ThreadSafeObserver, observers_, OnAddEntryData(entry_data)); | 410 FOR_EACH_OBSERVER(ThreadSafeObserver, observers_, OnAddEntryData(entry_data)); |
| 411 } | 411 } |
| 412 | 412 |
| 413 BoundNetLog::~BoundNetLog() { | 413 NetLogWithSource::~NetLogWithSource() { |
| 414 liveness_ = DEAD; | 414 liveness_ = DEAD; |
| 415 } | 415 } |
| 416 | 416 |
| 417 void BoundNetLog::AddEntry(NetLogEventType type, NetLogEventPhase phase) const { | 417 void NetLogWithSource::AddEntry(NetLogEventType type, |
| 418 NetLogEventPhase phase) const { |
| 418 CrashIfInvalid(); | 419 CrashIfInvalid(); |
| 419 | 420 |
| 420 if (!net_log_) | 421 if (!net_log_) |
| 421 return; | 422 return; |
| 422 net_log_->AddEntry(type, source_, phase, NULL); | 423 net_log_->AddEntry(type, source_, phase, NULL); |
| 423 } | 424 } |
| 424 | 425 |
| 425 void BoundNetLog::AddEntry( | 426 void NetLogWithSource::AddEntry( |
| 426 NetLogEventType type, | 427 NetLogEventType type, |
| 427 NetLogEventPhase phase, | 428 NetLogEventPhase phase, |
| 428 const NetLog::ParametersCallback& get_parameters) const { | 429 const NetLog::ParametersCallback& get_parameters) const { |
| 429 CrashIfInvalid(); | 430 CrashIfInvalid(); |
| 430 | 431 |
| 431 if (!net_log_) | 432 if (!net_log_) |
| 432 return; | 433 return; |
| 433 net_log_->AddEntry(type, source_, phase, &get_parameters); | 434 net_log_->AddEntry(type, source_, phase, &get_parameters); |
| 434 } | 435 } |
| 435 | 436 |
| 436 void BoundNetLog::AddEvent(NetLogEventType type) const { | 437 void NetLogWithSource::AddEvent(NetLogEventType type) const { |
| 437 AddEntry(type, NetLogEventPhase::NONE); | 438 AddEntry(type, NetLogEventPhase::NONE); |
| 438 } | 439 } |
| 439 | 440 |
| 440 void BoundNetLog::AddEvent( | 441 void NetLogWithSource::AddEvent( |
| 441 NetLogEventType type, | 442 NetLogEventType type, |
| 442 const NetLog::ParametersCallback& get_parameters) const { | 443 const NetLog::ParametersCallback& get_parameters) const { |
| 443 AddEntry(type, NetLogEventPhase::NONE, get_parameters); | 444 AddEntry(type, NetLogEventPhase::NONE, get_parameters); |
| 444 } | 445 } |
| 445 | 446 |
| 446 void BoundNetLog::BeginEvent(NetLogEventType type) const { | 447 void NetLogWithSource::BeginEvent(NetLogEventType type) const { |
| 447 AddEntry(type, NetLogEventPhase::BEGIN); | 448 AddEntry(type, NetLogEventPhase::BEGIN); |
| 448 } | 449 } |
| 449 | 450 |
| 450 void BoundNetLog::BeginEvent( | 451 void NetLogWithSource::BeginEvent( |
| 451 NetLogEventType type, | 452 NetLogEventType type, |
| 452 const NetLog::ParametersCallback& get_parameters) const { | 453 const NetLog::ParametersCallback& get_parameters) const { |
| 453 AddEntry(type, NetLogEventPhase::BEGIN, get_parameters); | 454 AddEntry(type, NetLogEventPhase::BEGIN, get_parameters); |
| 454 } | 455 } |
| 455 | 456 |
| 456 void BoundNetLog::EndEvent(NetLogEventType type) const { | 457 void NetLogWithSource::EndEvent(NetLogEventType type) const { |
| 457 AddEntry(type, NetLogEventPhase::END); | 458 AddEntry(type, NetLogEventPhase::END); |
| 458 } | 459 } |
| 459 | 460 |
| 460 void BoundNetLog::EndEvent( | 461 void NetLogWithSource::EndEvent( |
| 461 NetLogEventType type, | 462 NetLogEventType type, |
| 462 const NetLog::ParametersCallback& get_parameters) const { | 463 const NetLog::ParametersCallback& get_parameters) const { |
| 463 AddEntry(type, NetLogEventPhase::END, get_parameters); | 464 AddEntry(type, NetLogEventPhase::END, get_parameters); |
| 464 } | 465 } |
| 465 | 466 |
| 466 void BoundNetLog::AddEventWithNetErrorCode(NetLogEventType event_type, | 467 void NetLogWithSource::AddEventWithNetErrorCode(NetLogEventType event_type, |
| 467 int net_error) const { | 468 int net_error) const { |
| 468 DCHECK_NE(ERR_IO_PENDING, net_error); | 469 DCHECK_NE(ERR_IO_PENDING, net_error); |
| 469 if (net_error >= 0) { | 470 if (net_error >= 0) { |
| 470 AddEvent(event_type); | 471 AddEvent(event_type); |
| 471 } else { | 472 } else { |
| 472 AddEvent(event_type, NetLog::IntCallback("net_error", net_error)); | 473 AddEvent(event_type, NetLog::IntCallback("net_error", net_error)); |
| 473 } | 474 } |
| 474 } | 475 } |
| 475 | 476 |
| 476 void BoundNetLog::EndEventWithNetErrorCode(NetLogEventType event_type, | 477 void NetLogWithSource::EndEventWithNetErrorCode(NetLogEventType event_type, |
| 477 int net_error) const { | 478 int net_error) const { |
| 478 DCHECK_NE(ERR_IO_PENDING, net_error); | 479 DCHECK_NE(ERR_IO_PENDING, net_error); |
| 479 if (net_error >= 0) { | 480 if (net_error >= 0) { |
| 480 EndEvent(event_type); | 481 EndEvent(event_type); |
| 481 } else { | 482 } else { |
| 482 EndEvent(event_type, NetLog::IntCallback("net_error", net_error)); | 483 EndEvent(event_type, NetLog::IntCallback("net_error", net_error)); |
| 483 } | 484 } |
| 484 } | 485 } |
| 485 | 486 |
| 486 void BoundNetLog::AddByteTransferEvent(NetLogEventType event_type, | 487 void NetLogWithSource::AddByteTransferEvent(NetLogEventType event_type, |
| 487 int byte_count, | 488 int byte_count, |
| 488 const char* bytes) const { | 489 const char* bytes) const { |
| 489 AddEvent(event_type, base::Bind(BytesTransferredCallback, byte_count, bytes)); | 490 AddEvent(event_type, base::Bind(BytesTransferredCallback, byte_count, bytes)); |
| 490 } | 491 } |
| 491 | 492 |
| 492 bool BoundNetLog::IsCapturing() const { | 493 bool NetLogWithSource::IsCapturing() const { |
| 493 CrashIfInvalid(); | 494 CrashIfInvalid(); |
| 494 return net_log_ && net_log_->IsCapturing(); | 495 return net_log_ && net_log_->IsCapturing(); |
| 495 } | 496 } |
| 496 | 497 |
| 497 // static | 498 // static |
| 498 BoundNetLog BoundNetLog::Make(NetLog* net_log, NetLogSourceType source_type) { | 499 NetLogWithSource NetLogWithSource::Make(NetLog* net_log, |
| 500 NetLogSourceType source_type) { |
| 499 if (!net_log) | 501 if (!net_log) |
| 500 return BoundNetLog(); | 502 return NetLogWithSource(); |
| 501 | 503 |
| 502 NetLog::Source source(source_type, net_log->NextID()); | 504 NetLog::Source source(source_type, net_log->NextID()); |
| 503 return BoundNetLog(source, net_log); | 505 return NetLogWithSource(source, net_log); |
| 504 } | 506 } |
| 505 | 507 |
| 506 void BoundNetLog::CrashIfInvalid() const { | 508 void NetLogWithSource::CrashIfInvalid() const { |
| 507 Liveness liveness = liveness_; | 509 Liveness liveness = liveness_; |
| 508 | 510 |
| 509 if (liveness == ALIVE) | 511 if (liveness == ALIVE) |
| 510 return; | 512 return; |
| 511 | 513 |
| 512 base::debug::Alias(&liveness); | 514 base::debug::Alias(&liveness); |
| 513 CHECK_EQ(ALIVE, liveness); | 515 CHECK_EQ(ALIVE, liveness); |
| 514 } | 516 } |
| 515 | 517 |
| 516 } // namespace net | 518 } // namespace net |
| OLD | NEW |