Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1431)

Unified Diff: chrome/browser/extensions/extension_process_manager.cc

Issue 10641017: make "reload" on chrome://extensions automatically relaunch running apps (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review improvements Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
//

Powered by Google App Engine
This is Rietveld 408576698