| 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 d96c33aef9fb099e6578e513c02e1dc6b91258cf..dee66b1e0c38223e9a4085ed1c6212fd891814c4 100644
|
| --- a/chrome/browser/extensions/extension_process_manager.cc
|
| +++ b/chrome/browser/extensions/extension_process_manager.cc
|
| @@ -312,21 +312,14 @@ ExtensionHost* ExtensionProcessManager::GetBackgroundHostForExtension(
|
| std::set<RenderViewHost*>
|
| ExtensionProcessManager::GetRenderViewHostsForExtension(
|
| const std::string& extension_id) {
|
| - std::set<RenderViewHost*> result;
|
| -
|
| - SiteInstance* site_instance = GetSiteInstanceForURL(
|
| - Extension::GetBaseURLFromExtensionId(extension_id));
|
| - if (!site_instance)
|
| - return result;
|
| -
|
| - // Gather up all the views for that site.
|
| - for (ExtensionRenderViews::iterator view = all_extension_views_.begin();
|
| - view != all_extension_views_.end(); ++view) {
|
| - if (view->first->GetSiteInstance() == site_instance)
|
| - result.insert(view->first);
|
| - }
|
| + return DoGetRenderViewHostsForExtension(
|
| + extension_id, false, chrome::VIEW_TYPE_INVALID);
|
| +}
|
|
|
| - return result;
|
| +std::set<RenderViewHost*>
|
| + ExtensionProcessManager::GetRenderViewHostsWithTypeForExtension(
|
| + const std::string& extension_id, chrome::ViewType view_type) {
|
| + return DoGetRenderViewHostsForExtension(extension_id, true, view_type);
|
| }
|
|
|
| const Extension* ExtensionProcessManager::GetExtensionForRenderViewHost(
|
| @@ -680,6 +673,30 @@ void ExtensionProcessManager::ClearBackgroundPageData(
|
| }
|
| }
|
|
|
| +std::set<RenderViewHost*>
|
| + ExtensionProcessManager::DoGetRenderViewHostsForExtension(
|
| + const std::string& extension_id,
|
| + bool restrict_to_type,
|
| + chrome::ViewType view_type) {
|
| + std::set<RenderViewHost*> result;
|
| +
|
| + SiteInstance* site_instance = GetSiteInstanceForURL(
|
| + Extension::GetBaseURLFromExtensionId(extension_id));
|
| + if (!site_instance)
|
| + return result;
|
| +
|
| + // Gather up all the views for that site.
|
| + for (ExtensionRenderViews::iterator view = all_extension_views_.begin();
|
| + view != all_extension_views_.end(); ++view) {
|
| + if (view->first->GetSiteInstance() == site_instance &&
|
| + (view->second == view_type || !restrict_to_type)) {
|
| + result.insert(view->first);
|
| + }
|
| + }
|
| +
|
| + return result;
|
| +}
|
| +
|
| //
|
| // IncognitoExtensionProcessManager
|
| //
|
|
|