Index: extensions/browser/process_manager.cc |
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc |
index fc45e6933cd0ab655e378df13216a20870ce54e4..fe5631553a7bc2d11ff4d74e0b81107de6fbe183 100644 |
--- a/extensions/browser/process_manager.cc |
+++ b/extensions/browser/process_manager.cc |
@@ -509,6 +509,33 @@ void ProcessManager::KeepaliveImpulse(const Extension* extension) { |
} |
} |
+// static |
+void ProcessManager::OnKeepaliveFromPlugin(int render_process_id, |
+ int render_frame_id, |
+ const std::string& extension_id) { |
+ content::RenderFrameHost* render_frame_host = |
+ content::RenderFrameHost::FromID(render_process_id, render_frame_id); |
+ if (!render_frame_host) |
+ return; |
+ |
+ content::SiteInstance* site_instance = render_frame_host->GetSiteInstance(); |
+ if (!site_instance) |
+ return; |
+ |
+ BrowserContext* browser_context = site_instance->GetBrowserContext(); |
+ const Extension* extension = |
+ ExtensionRegistry::Get(browser_context)->enabled_extensions().GetByID( |
+ extension_id); |
+ if (!extension) |
+ return; |
+ |
+ ProcessManager* pm = ExtensionSystem::Get(browser_context)->process_manager(); |
+ if (!pm) |
+ return; |
+ |
+ pm->KeepaliveImpulse(extension); |
+} |
+ |
// DecrementLazyKeepaliveCount is called when no calls to KeepaliveImpulse |
// have been made for at least event_page_idle_time_. In the best case an |
// impulse was made just before being cleared, and the decrement will occur |