Index: extensions/browser/process_manager.cc |
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc |
index e49d990ac61181b60014b7b963f1a35ec4dba9c7..1eb2903d2b7e774ead5524b8e343e111b394d24d 100644 |
--- a/extensions/browser/process_manager.cc |
+++ b/extensions/browser/process_manager.cc |
@@ -421,6 +421,9 @@ void ProcessManager::KeepaliveImpulse(const Extension* extension) { |
IncrementLazyKeepaliveCount(extension); |
} |
} |
+ |
+ if (!keepalive_impulse_callback_for_testing_.is_null()) |
+ keepalive_impulse_callback_for_testing_.Run(extension->id()); |
} |
// DecrementLazyKeepaliveCount is called when no calls to KeepaliveImpulse |
@@ -433,8 +436,11 @@ void ProcessManager::OnKeepaliveImpulseCheck() { |
for (BackgroundPageDataMap::iterator i = background_page_data_.begin(); |
i != background_page_data_.end(); |
++i) { |
- if (i->second.previous_keepalive_impulse && !i->second.keepalive_impulse) |
+ if (i->second.previous_keepalive_impulse && !i->second.keepalive_impulse) { |
DecrementLazyKeepaliveCount(i->first); |
+ if (!keepalive_impulse_decrement_callback_for_testing_.is_null()) |
+ keepalive_impulse_decrement_callback_for_testing_.Run(i->first); |
+ } |
i->second.previous_keepalive_impulse = i->second.keepalive_impulse; |
i->second.keepalive_impulse = false; |
@@ -553,6 +559,16 @@ content::BrowserContext* ProcessManager::GetBrowserContext() const { |
return site_instance_->GetBrowserContext(); |
} |
+void ProcessManager::SetKeepaliveImpulseCallbackForTesting( |
+ const ImpulseCallbackForTesting& callback) { |
+ keepalive_impulse_callback_for_testing_ = callback; |
+} |
+ |
+void ProcessManager::SetKeepaliveImpulseDecrementCallbackForTesting( |
+ const ImpulseCallbackForTesting& callback) { |
+ keepalive_impulse_decrement_callback_for_testing_ = callback; |
+} |
+ |
void ProcessManager::Observe(int type, |
const content::NotificationSource& source, |
const content::NotificationDetails& details) { |