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()) |