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

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

Issue 11226037: Incognito-allowed package apps produce duplicate items in context menu (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: fixed unittest Created 8 years, 2 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 6a2a88f720126915fbdb8b8eb973fe0726d4bbe3..40bf7ecc02f6f248798b07e48e630e2e730b5d4c 100644
--- a/chrome/browser/extensions/extension_process_manager.cc
+++ b/chrome/browser/extensions/extension_process_manager.cc
@@ -66,7 +66,7 @@ std::string GetExtensionID(RenderViewHost* render_view_host) {
class IncognitoExtensionProcessManager : public ExtensionProcessManager {
public:
explicit IncognitoExtensionProcessManager(Profile* profile);
- virtual ~IncognitoExtensionProcessManager() {}
+ virtual ~IncognitoExtensionProcessManager();
virtual ExtensionHost* CreateViewHost(
const Extension* extension,
const GURL& url,
@@ -188,6 +188,17 @@ ExtensionProcessManager::~ExtensionProcessManager() {
DCHECK(background_hosts_.empty());
}
+const ExtensionProcessManager::ViewSet
+ExtensionProcessManager::GetAllViews() const {
+ ViewSet result;
+ for (ExtensionRenderViews::const_iterator iter =
+ all_extension_views_.begin();
+ iter != all_extension_views_.end(); ++iter) {
+ result.insert(iter->first);
+ }
+ return result;
+}
+
void ExtensionProcessManager::EnsureBrowserWhenRequired(
Browser* browser,
chrome::ViewType view_type) {
@@ -734,15 +745,13 @@ IncognitoExtensionProcessManager::IncognitoExtensionProcessManager(
content::NotificationService::AllSources());
}
-const ExtensionProcessManager::ViewSet
-ExtensionProcessManager::GetAllViews() const {
- ViewSet result;
- for (ExtensionRenderViews::const_iterator iter =
- all_extension_views_.begin();
- iter != all_extension_views_.end(); ++iter) {
- result.insert(iter->first);
- }
- return result;
+IncognitoExtensionProcessManager::~IncognitoExtensionProcessManager() {
+ // TODO(yoz): This cleanup code belongs in the MenuManager.
+ // Remove "incognito" "split" mode context menu items.
+ ExtensionService* service =
+ extensions::ExtensionSystem::Get(GetProfile())->extension_service();
+ if (service)
+ service->menu_manager()->RemoveAllIncognitoContextItems();
}
ExtensionHost* IncognitoExtensionProcessManager::CreateViewHost(
« no previous file with comments | « chrome/browser/extensions/extension_context_menu_browsertest.cc ('k') | chrome/browser/extensions/menu_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698