| Index: chrome/browser/extensions/extension_process_manager.cc
|
| diff --git a/chrome/browser/extensions/extension_process_manager.cc b/chrome/browser/extensions/extension_process_manager.cc
|
| index 8b606e7ed0a9ee162efcfb108e7d5b89b83f5857..9bc68d694ba36784b63c0e847a8530c3774fe8fa 100644
|
| --- a/chrome/browser/extensions/extension_process_manager.cc
|
| +++ b/chrome/browser/extensions/extension_process_manager.cc
|
| @@ -170,22 +170,6 @@ ExtensionProcessManager::~ExtensionProcessManager() {
|
| DCHECK(background_hosts_.empty());
|
| }
|
|
|
| -ExtensionHost* ExtensionProcessManager::CreateShellHost(
|
| - const Extension* extension,
|
| - const GURL& url) {
|
| - DCHECK(extension);
|
| - ExtensionHost* host = new ExtensionHost(extension,
|
| - GetSiteInstanceForURL(url),
|
| - url,
|
| - chrome::VIEW_TYPE_APP_SHELL);
|
| - host->CreateViewWithoutBrowser();
|
| - content::WebContents* host_contents = host->host_contents();
|
| - host_contents->GetMutableRendererPrefs()->browser_handles_all_requests = true;
|
| - host_contents->GetRenderViewHost()->SyncRendererPrefs();
|
| - OnExtensionHostCreated(host, false /* not a background host */);
|
| - return host;
|
| -}
|
| -
|
| void ExtensionProcessManager::EnsureBrowserWhenRequired(
|
| Browser* browser,
|
| content::ViewType view_type) {
|
| @@ -361,6 +345,11 @@ void ExtensionProcessManager::UnregisterRenderViewHost(
|
| if (view == all_extension_views_.end())
|
| return;
|
|
|
| + content::NotificationService::current()->Notify(
|
| + chrome::NOTIFICATION_EXTENSION_VIEW_UNREGISTERED,
|
| + content::Source<Profile>(GetProfile()),
|
| + content::Details<RenderViewHost>(render_view_host));
|
| +
|
| content::ViewType view_type = view->second;
|
| all_extension_views_.erase(view);
|
|
|
| @@ -381,18 +370,17 @@ void ExtensionProcessManager::UpdateRegisteredRenderView(
|
| if (view == all_extension_views_.end())
|
| return;
|
|
|
| + content::NotificationService::current()->Notify(
|
| + chrome::NOTIFICATION_EXTENSION_VIEW_REGISTERED,
|
| + content::Source<Profile>(GetProfile()),
|
| + content::Details<RenderViewHost>(render_view_host));
|
| +
|
| view->second = render_view_host->GetDelegate()->GetRenderViewType();
|
|
|
| // Keep the lazy background page alive as long as any non-background-page
|
| // extension views are visible. Keepalive count balanced in
|
| // UnregisterRenderViewHost.
|
| - if (view->second != content::VIEW_TYPE_INVALID &&
|
| - view->second != chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE) {
|
| - const Extension* extension = GetExtensionForRenderViewHost(
|
| - render_view_host);
|
| - if (extension)
|
| - IncrementLazyKeepaliveCount(extension);
|
| - }
|
| + IncrementLazyKeepaliveCountForView(render_view_host);
|
| }
|
|
|
| SiteInstance* ExtensionProcessManager::GetSiteInstanceForURL(const GURL& url) {
|
| @@ -442,6 +430,18 @@ int ExtensionProcessManager::DecrementLazyKeepaliveCount(
|
|
|
| return count;
|
| }
|
| +void ExtensionProcessManager::IncrementLazyKeepaliveCountForView(
|
| + RenderViewHost* render_view_host) {
|
| + content::ViewType view_type =
|
| + render_view_host->GetDelegate()->GetRenderViewType();
|
| + if (view_type != content::VIEW_TYPE_INVALID &&
|
| + view_type != chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE) {
|
| + const Extension* extension = GetExtensionForRenderViewHost(
|
| + render_view_host);
|
| + if (extension)
|
| + IncrementLazyKeepaliveCount(extension);
|
| + }
|
| +}
|
|
|
| void ExtensionProcessManager::OnLazyBackgroundPageIdle(
|
| const std::string& extension_id, int sequence_id) {
|
| @@ -552,7 +552,6 @@ void ExtensionProcessManager::Observe(
|
| ExtensionHost* host = content::Details<ExtensionHost>(details).ptr();
|
| if (background_hosts_.erase(host))
|
| ClearBackgroundPageData(host->extension()->id());
|
| - platform_app_hosts_.erase(host);
|
| break;
|
| }
|
|
|
| @@ -623,8 +622,6 @@ void ExtensionProcessManager::OnExtensionHostCreated(ExtensionHost* host,
|
| DCHECK_EQ(site_instance_->GetBrowserContext(), host->profile());
|
| if (is_background)
|
| background_hosts_.insert(host);
|
| - if (host->extension()->is_platform_app())
|
| - platform_app_hosts_.insert(host);
|
| }
|
|
|
| void ExtensionProcessManager::CloseBackgroundHost(ExtensionHost* host) {
|
| @@ -653,7 +650,7 @@ void ExtensionProcessManager::ClearBackgroundPageData(
|
| for (ExtensionRenderViews::const_iterator it = all_extension_views_.begin();
|
| it != all_extension_views_.end(); ++it) {
|
| if (GetExtensionID(it->first) == extension_id)
|
| - UpdateRegisteredRenderView(it->first);
|
| + IncrementLazyKeepaliveCountForView(it->first);
|
| }
|
| }
|
|
|
|
|