Index: chrome/browser/task_manager/task_manager.h |
diff --git a/chrome/browser/task_manager/task_manager.h b/chrome/browser/task_manager/task_manager.h |
index fe88a0905a331b1fe9b843d6be1fdbde37c4f941..68838af7faa5bcc4f1b4373d058561f213a1ba61 100644 |
--- a/chrome/browser/task_manager/task_manager.h |
+++ b/chrome/browser/task_manager/task_manager.h |
@@ -255,6 +255,11 @@ class TaskManagerModelObserver { |
// Invoked when a range of items has been removed. |
virtual void OnItemsRemoved(int start, int length) = 0; |
+ // Invoked when a range of items is to be immediately removed. It differs |
+ // from OnItemsRemoved by the fact that the item is still in the task manager, |
+ // so it can be queried for and found. |
+ virtual void OnItemsToBeRemoved(int start, int length) {} |
+ |
// Invoked when the initialization of the model has been finished and |
// periodical updates is started. The first periodical update will be done |
// in a few seconds. (depending on platform) |
@@ -281,6 +286,7 @@ class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> { |
int64 GetNetworkUsage(int index) const; |
double GetCPUUsage(int index) const; |
int GetProcessId(int index) const; |
+ base::ProcessHandle GetProcess(int index) const; |
int GetResourceUniqueId(int index) const; |
// Returns the index of resource that has the given |unique_id|. Returns -1 if |
// no resouce has the |unique_id|. |
@@ -334,6 +340,10 @@ class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> { |
// resource for the given row isn't a renderer. |
bool GetV8Memory(int index, size_t* result) const; |
+ // Gets the amount of memory used for javascript. Returns false if the |
+ // resource for the given row isn't a renderer. |
+ bool GetV8MemoryUsed(int index, size_t* result) const; |
+ |
// Returns true if resource for the given row can be activated. |
bool CanActivate(int index) const; |
@@ -397,6 +407,14 @@ class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> { |
void StartUpdating(); |
void StopUpdating(); |
+ // Listening involves calling StartUpdating on all resource providers. This |
+ // causes all of them to subscribe to notifications and enumerate current |
+ // resources. It differs from StartUpdating that it doesn't start the |
+ // Refresh timer. The end result is that we have a full view of resources, but |
+ // don't spend unneeded time updating, unless we have a real need to. |
+ void StartListening(); |
+ void StopListening(); |
+ |
void Clear(); // Removes all items. |
// Sends OnModelChanged() to all observers to inform them of significant |
@@ -542,9 +560,17 @@ class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> { |
// StopUpdating. |
int update_requests_; |
+ // How many calls to StartListening have been made without matching calls to |
+ // StopListening. |
+ int listen_requests_; |
+ |
// Whether we are currently in the process of updating. |
UpdateState update_state_; |
+ // Whether we have resource managers listening for events and maintaining |
+ // the TaskManagerModel resources. |
+ bool is_listening_; |
+ |
// A salt lick for the goats. |
uint64 goat_salt_; |