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..67c5f7ead06ad4e02aa6ce28a14aa1f7b477c5e9 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::SetUpdatingByteCount, this, true)); |
} |
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::SetUpdatingByteCount, this, false)); |
} |
void TaskManagerModel::StartListening() { |
@@ -1244,6 +1253,8 @@ 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_) |
+ return; |
// Only net::URLRequestJob instances created by the ResourceDispatcherHost |
// have an associated ResourceRequestInfo and a render frame associated. |
@@ -1393,6 +1404,11 @@ void TaskManagerModel::NotifyMultipleBytesRead() { |
base::Owned(bytes_read_buffer))); |
} |
+void TaskManagerModel::SetUpdatingByteCount(bool is_updating) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ is_updating_byte_count_ = is_updating; |
+} |
+ |
int64 TaskManagerModel::GetNetworkUsage(Resource* resource) const { |
int64 net_usage = GetNetworkUsageForResource(resource); |
if (net_usage == 0 && !resource->SupportNetworkUsage()) |