Chromium Code Reviews| Index: net/disk_cache/sparse_control.cc |
| =================================================================== |
| --- net/disk_cache/sparse_control.cc (revision 68857) |
| +++ net/disk_cache/sparse_control.cc (working copy) |
| @@ -223,6 +223,7 @@ |
| finished_ = false; |
| abort_ = false; |
| + entry_->net_log().BeginEvent(net::NetLog::TYPE_SPARSE_CONTROL, NULL); |
| DoChildrenIO(); |
| if (!pending_) { |
| @@ -610,8 +611,11 @@ |
| void SparseControl::DoChildrenIO() { |
| while (DoChildIO()) continue; |
| - if (pending_ && finished_) |
| - DoUserCallback(); |
| + if (finished_) { |
| + entry_->net_log().EndEvent(net::NetLog::TYPE_SPARSE_CONTROL, NULL); |
| + if (pending_) |
| + DoUserCallback(); |
| + } |
| } |
| bool SparseControl::DoChildIO() { |
| @@ -632,14 +636,32 @@ |
| int rv = 0; |
| switch (operation_) { |
| case kReadOperation: |
| + if (entry_->net_log().IsLoggingAllEvents()) { |
| + entry_->net_log().BeginEvent( |
| + net::NetLog::TYPE_SPARSE_CONTROL_READ, |
| + make_scoped_refptr(new net::NetLogSourceParameter( |
| + "source_dependency", |
| + child_->net_log().source()))); |
| + } |
| rv = child_->ReadDataImpl(kSparseData, child_offset_, user_buf_, |
| child_len_, callback); |
| break; |
| case kWriteOperation: |
| + if (entry_->net_log().IsLoggingAllEvents()) { |
| + entry_->net_log().BeginEvent( |
| + net::NetLog::TYPE_SPARSE_CONTROL_WRITE, |
| + make_scoped_refptr(new net::NetLogSourceParameter( |
| + "source_dependency", |
| + child_->net_log().source()))); |
| + } |
| rv = child_->WriteDataImpl(kSparseData, child_offset_, user_buf_, |
| child_len_, callback, false); |
| break; |
| case kGetRangeOperation: |
| + if (entry_->net_log().IsLoggingAllEvents()) { |
| + entry_->net_log().BeginEvent(net::NetLog::TYPE_SPARSE_CONTROL_GET_RANGE, |
| + NULL); |
| + } |
| rv = DoGetAvailableRange(); |
| break; |
| default: |
| @@ -712,6 +734,23 @@ |
| } |
| void SparseControl::DoChildIOCompleted(int result) { |
| + if (entry_->net_log().IsLoggingAllEvents()) { |
| + net::NetLog::EventType event_type; |
| + switch (operation_) { |
|
eroman
2011/01/05 02:39:06
I suggest moving this to a helper function.
mmenke
2011/01/05 16:32:25
Done.
|
| + case kReadOperation: |
| + event_type = net::NetLog::TYPE_SPARSE_CONTROL_READ; |
| + break; |
| + case kWriteOperation: |
| + event_type = net::NetLog::TYPE_SPARSE_CONTROL_WRITE; |
| + break; |
| + case kGetRangeOperation: |
| + event_type = net::NetLog::TYPE_SPARSE_CONTROL_GET_RANGE; |
| + break; |
| + default: |
| + NOTREACHED(); |
| + } |
| + entry_->net_log().EndEventWithErrorCode(event_type, result); |
| + } |
| if (result < 0) { |
| // We fail the whole operation if we encounter an error. |
| result_ = result; |
| @@ -737,6 +776,8 @@ |
| // We'll return the current result of the operation, which may be less than |
| // the bytes to read or write, but the user cancelled the operation. |
| abort_ = false; |
| + entry_->net_log().AddEvent(net::NetLog::TYPE_CANCELLED, NULL); |
| + entry_->net_log().EndEvent(net::NetLog::TYPE_SPARSE_CONTROL, NULL); |
| DoUserCallback(); |
| return DoAbortCallbacks(); |
| } |