Chromium Code Reviews| Index: chrome/browser/task_manager/task_manager.cc |
| diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc |
| index ce2c93e1e0262b00bef8a9aa725063959da6b429..51b51a62c63887bc87b91a3ea225197a7e3d0cc1 100644 |
| --- a/chrome/browser/task_manager/task_manager.cc |
| +++ b/chrome/browser/task_manager/task_manager.cc |
| @@ -241,6 +241,7 @@ TaskManagerModel::TaskManagerModel(TaskManager* task_manager) |
| update_requests_(0), |
| listen_requests_(0), |
| update_state_(IDLE), |
| + is_updating_byte_count_(false), |
| goat_salt_(base::RandUint64()) { |
| AddResourceProvider( |
| new task_manager::BrowserProcessResourceProvider(task_manager)); |
| @@ -1055,6 +1056,10 @@ void TaskManagerModel::StartUpdating() { |
| FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, |
| OnReadyPeriodicalUpdate()); |
| } |
| + |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, |
| + base::Bind(&TaskManagerModel::StartUpdatingByteCount, this)); |
| } |
| void TaskManagerModel::StopUpdating() { |
| @@ -1070,6 +1075,10 @@ void TaskManagerModel::StopUpdating() { |
| // Notify resource providers that we are done updating. |
| StopListening(); |
| + |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, FROM_HERE, |
| + base::Bind(&TaskManagerModel::StopUpdatingByteCount, this)); |
| } |
| void TaskManagerModel::StartListening() { |
| @@ -1244,6 +1253,9 @@ void TaskManagerModel::NotifyV8HeapStats(base::ProcessId renderer_id, |
| void TaskManagerModel::NotifyBytesRead(const net::URLRequest& request, |
| int byte_count) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + if (!is_updating_byte_count_) { |
|
Lei Zhang
2014/09/06 06:17:46
nit: no need for braces
tonyg
2014/09/08 18:59:38
Done.
|
| + return; |
| + } |
| // Only net::URLRequestJob instances created by the ResourceDispatcherHost |
| // have an associated ResourceRequestInfo and a render frame associated. |
| @@ -1393,6 +1405,16 @@ void TaskManagerModel::NotifyMultipleBytesRead() { |
| base::Owned(bytes_read_buffer))); |
| } |
| +void TaskManagerModel::StartUpdatingByteCount() { |
|
Lei Zhang
2014/09/06 06:17:47
maybe combine into SetUpdatingByteCount(bool is_up
tonyg
2014/09/08 18:59:38
Done.
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + is_updating_byte_count_ = true; |
| +} |
| + |
| +void TaskManagerModel::StopUpdatingByteCount() { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + is_updating_byte_count_ = false; |
| +} |
| + |
| int64 TaskManagerModel::GetNetworkUsage(Resource* resource) const { |
| int64 net_usage = GetNetworkUsageForResource(resource); |
| if (net_usage == 0 && !resource->SupportNetworkUsage()) |