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