Moved ExtensionMenuManager and ExtensionMenuItem into extensions namespace; rename them to MenuManager and MenuItem.

BUG=134711, 117261


Review URL: https://chromiumcodereview.appspot.com/10664037

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145550 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/api/context_menu/context_menu_api.cc b/chrome/browser/extensions/api/context_menu/context_menu_api.cc
index f9e330a..acc80a44 100644
--- a/chrome/browser/extensions/api/context_menu/context_menu_api.cc
+++ b/chrome/browser/extensions/api/context_menu/context_menu_api.cc
@@ -44,7 +44,7 @@
 const char kTitleNeededError[] =
     "All menu items except for separators must have a title";
 
-std::string GetIDString(const ExtensionMenuItem::Id& id) {
+std::string GetIDString(const extensions::MenuItem::Id& id) {
   if (id.uid == 0)
     return id.string_uid;
   else
@@ -58,12 +58,12 @@
 bool ExtensionContextMenuFunction::ParseContexts(
     const DictionaryValue& properties,
     const char* key,
-    ExtensionMenuItem::ContextList* result) {
+    MenuItem::ContextList* result) {
   ListValue* list = NULL;
   if (!properties.GetList(key, &list)) {
     return true;
   }
-  ExtensionMenuItem::ContextList tmp_result;
+  MenuItem::ContextList tmp_result;
 
   std::string value;
   for (size_t i = 0; i < list->GetSize(); i++) {
@@ -71,23 +71,23 @@
       return false;
 
     if (value == "all") {
-      tmp_result.Add(ExtensionMenuItem::ALL);
+      tmp_result.Add(MenuItem::ALL);
     } else if (value == "page") {
-      tmp_result.Add(ExtensionMenuItem::PAGE);
+      tmp_result.Add(MenuItem::PAGE);
     } else if (value == "selection") {
-      tmp_result.Add(ExtensionMenuItem::SELECTION);
+      tmp_result.Add(MenuItem::SELECTION);
     } else if (value == "link") {
-      tmp_result.Add(ExtensionMenuItem::LINK);
+      tmp_result.Add(MenuItem::LINK);
     } else if (value == "editable") {
-      tmp_result.Add(ExtensionMenuItem::EDITABLE);
+      tmp_result.Add(MenuItem::EDITABLE);
     } else if (value == "image") {
-      tmp_result.Add(ExtensionMenuItem::IMAGE);
+      tmp_result.Add(MenuItem::IMAGE);
     } else if (value == "video") {
-      tmp_result.Add(ExtensionMenuItem::VIDEO);
+      tmp_result.Add(MenuItem::VIDEO);
     } else if (value == "audio") {
-      tmp_result.Add(ExtensionMenuItem::AUDIO);
+      tmp_result.Add(MenuItem::AUDIO);
     } else if (value == "frame") {
-      tmp_result.Add(ExtensionMenuItem::FRAME);
+      tmp_result.Add(MenuItem::FRAME);
     } else {
       error_ = ExtensionErrorUtils::FormatErrorMessage(kInvalidValueError, key);
       return false;
@@ -99,8 +99,8 @@
 
 bool ExtensionContextMenuFunction::ParseType(
     const DictionaryValue& properties,
-    const ExtensionMenuItem::Type& default_value,
-    ExtensionMenuItem::Type* result) {
+    const MenuItem::Type& default_value,
+    MenuItem::Type* result) {
   DCHECK(result);
   if (!properties.HasKey(kTypeKey)) {
     *result = default_value;
@@ -112,13 +112,13 @@
     return false;
 
   if (type_string == "normal") {
-    *result = ExtensionMenuItem::NORMAL;
+    *result = MenuItem::NORMAL;
   } else if (type_string == "checkbox") {
-    *result = ExtensionMenuItem::CHECKBOX;
+    *result = MenuItem::CHECKBOX;
   } else if (type_string == "radio") {
-    *result = ExtensionMenuItem::RADIO;
+    *result = MenuItem::RADIO;
   } else if (type_string == "separator") {
-    *result = ExtensionMenuItem::SEPARATOR;
+    *result = MenuItem::SEPARATOR;
   } else {
     error_ = ExtensionErrorUtils::FormatErrorMessage(kInvalidTypeStringError,
                                                      type_string);
@@ -128,7 +128,7 @@
 }
 
 bool ExtensionContextMenuFunction::ParseChecked(
-    ExtensionMenuItem::Type type,
+    MenuItem::Type type,
     const DictionaryValue& properties,
     bool default_value,
     bool* checked) {
@@ -138,40 +138,37 @@
   }
   if (!properties.GetBoolean(kCheckedKey, checked))
     return false;
-  if (checked && type != ExtensionMenuItem::CHECKBOX &&
-      type != ExtensionMenuItem::RADIO) {
+  if (checked && type != MenuItem::CHECKBOX && type != MenuItem::RADIO) {
     error_ = kCheckedError;
     return false;
   }
   return true;
 }
 
-bool ExtensionContextMenuFunction::ParseID(
-    const Value* value,
-    ExtensionMenuItem::Id* result) {
+bool ExtensionContextMenuFunction::ParseID(const Value* value,
+                                           MenuItem::Id* result) {
   return (value->GetAsInteger(&result->uid) ||
           value->GetAsString(&result->string_uid));
 }
 
-bool ExtensionContextMenuFunction::GetParent(
-    const DictionaryValue& properties,
-    const ExtensionMenuManager& manager,
-    ExtensionMenuItem** result) {
+bool ExtensionContextMenuFunction::GetParent(const DictionaryValue& properties,
+                                             const MenuManager& manager,
+                                             MenuItem** result) {
   if (!properties.HasKey(kParentIdKey))
     return true;
-  ExtensionMenuItem::Id parent_id(profile()->IsOffTheRecord(), extension_id());
+  MenuItem::Id parent_id(profile()->IsOffTheRecord(), extension_id());
   Value* parent_id_value = NULL;
   if (properties.Get(kParentIdKey, &parent_id_value) &&
       !ParseID(parent_id_value, &parent_id))
     return false;
 
-  ExtensionMenuItem* parent = manager.GetItemById(parent_id);
+  MenuItem* parent = manager.GetItemById(parent_id);
   if (!parent) {
     error_ = ExtensionErrorUtils::FormatErrorMessage(
         kCannotFindItemError, GetIDString(parent_id));
     return false;
   }
-  if (parent->type() != ExtensionMenuItem::NORMAL) {
+  if (parent->type() != MenuItem::NORMAL) {
     error_ = kParentsMustBeNormalError;
     return false;
   }
@@ -184,7 +181,7 @@
   EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &properties));
   EXTENSION_FUNCTION_VALIDATE(properties != NULL);
 
-  ExtensionMenuItem::Id id(profile()->IsOffTheRecord(), extension_id());
+  MenuItem::Id id(profile()->IsOffTheRecord(), extension_id());
   if (properties->HasKey(kIdKey)) {
     EXTENSION_FUNCTION_VALIDATE(properties->GetString(kIdKey,
                                                       &id.string_uid));
@@ -202,8 +199,7 @@
       !properties->GetString(kTitleKey, &title))
     return false;
 
-  ExtensionMenuManager* menu_manager =
-      profile()->GetExtensionService()->menu_manager();
+  MenuManager* menu_manager = profile()->GetExtensionService()->menu_manager();
 
   if (menu_manager->GetItemById(id)) {
     error_ = ExtensionErrorUtils::FormatErrorMessage(kDuplicateIDError,
@@ -217,15 +213,15 @@
     return false;
   }
 
-  ExtensionMenuItem::ContextList contexts(ExtensionMenuItem::PAGE);
+  MenuItem::ContextList contexts(MenuItem::PAGE);
   if (!ParseContexts(*properties, kContextsKey, &contexts))
     return false;
 
-  ExtensionMenuItem::Type type;
-  if (!ParseType(*properties, ExtensionMenuItem::NORMAL, &type))
+  MenuItem::Type type;
+  if (!ParseType(*properties, MenuItem::NORMAL, &type))
     return false;
 
-  if (title.empty() && type != ExtensionMenuItem::SEPARATOR) {
+  if (title.empty() && type != MenuItem::SEPARATOR) {
     error_ = kTitleNeededError;
     return false;
   }
@@ -238,8 +234,8 @@
   if (properties->HasKey(kEnabledKey))
     EXTENSION_FUNCTION_VALIDATE(properties->GetBoolean(kEnabledKey, &enabled));
 
-  scoped_ptr<ExtensionMenuItem> item(
-      new ExtensionMenuItem(id, title, checked, enabled, type, contexts));
+  scoped_ptr<MenuItem> item(
+      new MenuItem(id, title, checked, enabled, type, contexts));
 
   if (!item->PopulateURLPatterns(
           *properties, kDocumentUrlPatternsKey, kTargetUrlPatternsKey, &error_))
@@ -247,7 +243,7 @@
 
   bool success = true;
   if (properties->HasKey(kParentIdKey)) {
-    ExtensionMenuItem* parent = NULL;
+    MenuItem* parent = NULL;
     if (!GetParent(*properties, *menu_manager, &parent))
       return false;
     success = menu_manager->AddChildItem(parent->id(), item.release());
@@ -264,14 +260,14 @@
 
 bool UpdateContextMenuFunction::RunImpl() {
   bool radioItemUpdated = false;
-  ExtensionMenuItem::Id item_id(profile()->IsOffTheRecord(), extension_id());
+  MenuItem::Id item_id(profile()->IsOffTheRecord(), extension_id());
   Value* id_value = NULL;
   EXTENSION_FUNCTION_VALIDATE(args_->Get(0, &id_value));
   EXTENSION_FUNCTION_VALIDATE(ParseID(id_value, &item_id));
 
   ExtensionService* service = profile()->GetExtensionService();
-  ExtensionMenuManager* manager = service->menu_manager();
-  ExtensionMenuItem* item = manager->GetItemById(item_id);
+  MenuManager* manager = service->menu_manager();
+  MenuItem* item = manager->GetItemById(item_id);
   if (!item || item->extension_id() != extension_id()) {
     error_ = ExtensionErrorUtils::FormatErrorMessage(
         kCannotFindItemError, GetIDString(item_id));
@@ -283,12 +279,11 @@
   EXTENSION_FUNCTION_VALIDATE(properties != NULL);
 
   // Type.
-  ExtensionMenuItem::Type type;
+  MenuItem::Type type;
   if (!ParseType(*properties, item->type(), &type))
     return false;
   if (type != item->type()) {
-    if (type == ExtensionMenuItem::RADIO ||
-        item->type() == ExtensionMenuItem::RADIO) {
+    if (type == MenuItem::RADIO || item->type() == MenuItem::RADIO) {
       radioItemUpdated = true;
     }
     item->set_type(type);
@@ -298,7 +293,7 @@
   if (properties->HasKey(kTitleKey)) {
     std::string title;
     EXTENSION_FUNCTION_VALIDATE(properties->GetString(kTitleKey, &title));
-    if (title.empty() && type != ExtensionMenuItem::SEPARATOR) {
+    if (title.empty() && type != MenuItem::SEPARATOR) {
       error_ = kTitleNeededError;
       return false;
     }
@@ -323,14 +318,14 @@
   }
 
   // Contexts.
-  ExtensionMenuItem::ContextList contexts(item->contexts());
+  MenuItem::ContextList contexts(item->contexts());
   if (!ParseContexts(*properties, kContextsKey, &contexts))
     return false;
   if (contexts != item->contexts())
     item->set_contexts(contexts);
 
   // Parent id.
-  ExtensionMenuItem* parent = NULL;
+  MenuItem* parent = NULL;
   if (!GetParent(*properties, *manager, &parent))
     return false;
   if (parent && !manager->ChangeParent(item->id(), &parent->id()))
@@ -350,14 +345,14 @@
 }
 
 bool RemoveContextMenuFunction::RunImpl() {
-  ExtensionMenuItem::Id id(profile()->IsOffTheRecord(), extension_id());
+  MenuItem::Id id(profile()->IsOffTheRecord(), extension_id());
   Value* id_value = NULL;
   EXTENSION_FUNCTION_VALIDATE(args_->Get(0, &id_value));
   EXTENSION_FUNCTION_VALIDATE(ParseID(id_value, &id));
   ExtensionService* service = profile()->GetExtensionService();
-  ExtensionMenuManager* manager = service->menu_manager();
+  MenuManager* manager = service->menu_manager();
 
-  ExtensionMenuItem* item = manager->GetItemById(id);
+  MenuItem* item = manager->GetItemById(id);
   // Ensure one extension can't remove another's menu items.
   if (!item || item->extension_id() != extension_id()) {
     error_ = ExtensionErrorUtils::FormatErrorMessage(
@@ -373,7 +368,7 @@
 
 bool RemoveAllContextMenusFunction::RunImpl() {
   ExtensionService* service = profile()->GetExtensionService();
-  ExtensionMenuManager* manager = service->menu_manager();
+  MenuManager* manager = service->menu_manager();
   manager->RemoveAllContextItems(GetExtension()->id());
   manager->WriteToStorage(GetExtension());
   return true;
diff --git a/chrome/browser/extensions/api/context_menu/context_menu_api.h b/chrome/browser/extensions/api/context_menu/context_menu_api.h
index fe09370..61e4823 100644
--- a/chrome/browser/extensions/api/context_menu/context_menu_api.h
+++ b/chrome/browser/extensions/api/context_menu/context_menu_api.h
@@ -7,10 +7,10 @@
 #pragma once
 
 #include "chrome/browser/extensions/extension_function.h"
-#include "chrome/browser/extensions/extension_menu_manager.h"
+#include "chrome/browser/extensions/menu_manager.h"
 #include "chrome/common/extensions/url_pattern_set.h"
 
-class ExtensionMenuItem;
+class MenuItem;
 
 namespace base {
 class DictionaryValue;
@@ -25,36 +25,35 @@
   // Helper function to read and parse a list of menu item contexts.
   bool ParseContexts(const base::DictionaryValue& properties,
                      const char* key,
-                     ExtensionMenuItem::ContextList* result);
+                     MenuItem::ContextList* result);
 
   // Looks in properties for the "type" key, and reads the value in |result|. On
   // error, returns false and puts an error message into error_. If the key is
   // not present, |result| is set to |default_value| and the return value is
   // true.
   bool ParseType(const base::DictionaryValue& properties,
-                 const ExtensionMenuItem::Type& default_value,
-                 ExtensionMenuItem::Type* result);
+                 const MenuItem::Type& default_value,
+                 MenuItem::Type* result);
 
   // Helper to read and parse the "checked" property.
-  bool ParseChecked(ExtensionMenuItem::Type type,
+  bool ParseChecked(MenuItem::Type type,
                     const base::DictionaryValue& properties,
                     bool default_value,
                     bool* checked);
 
   // Helper to read an ID from the Value*. The ID can be either a string or
   // integer.
-  bool ParseID(const Value* value,
-               ExtensionMenuItem::Id* result);
+  bool ParseID(const Value* value, MenuItem::Id* result);
 
   // If the parentId key was specified in properties, this will try looking up
-  // an ExtensionMenuItem with that id and set it into |result|. Returns false
+  // an MenuItem with that id and set it into |result|. Returns false
   // on error, with an explanation written into error_. Note that if the
   // parentId key is not in properties, this will return true and leave |result|
   // unset. Also, it is considered an error if the item found has a type other
   // than NORMAL.
   bool GetParent(const base::DictionaryValue& properties,
-                 const ExtensionMenuManager& manager,
-                 ExtensionMenuItem** result);
+                 const MenuManager& manager,
+                 MenuItem** result);
 };
 
 class CreateContextMenuFunction : public ExtensionContextMenuFunction {
diff --git a/chrome/browser/extensions/extension_context_menu_browsertest.cc b/chrome/browser/extensions/extension_context_menu_browsertest.cc
index 0338d113..e54cb3a 100644
--- a/chrome/browser/extensions/extension_context_menu_browsertest.cc
+++ b/chrome/browser/extensions/extension_context_menu_browsertest.cc
@@ -25,6 +25,7 @@
 
 using WebKit::WebContextMenuData;
 using content::WebContents;
+using extensions::MenuItem;
 using ui::MenuModel;
 
 namespace {
@@ -41,9 +42,9 @@
 
   bool HasExtensionItemWithLabel(const std::string& label) {
     string16 label16 = UTF8ToUTF16(label);
-    std::map<int, ExtensionMenuItem::Id>::iterator i;
+    std::map<int, MenuItem::Id>::iterator i;
     for (i = extension_item_map_.begin(); i != extension_item_map_.end(); ++i) {
-      const ExtensionMenuItem::Id& id = i->second;
+      const MenuItem::Id& id = i->second;
       string16 tmp_label;
       EXPECT_TRUE(GetItemLabel(id, &tmp_label));
       if (tmp_label == label16)
@@ -55,7 +56,7 @@
   // Looks in the menu for an extension item with |id|, and if it is found and
   // has a label, that is put in |result| and we return true. Otherwise returns
   // false.
-  bool GetItemLabel(const ExtensionMenuItem::Id& id, string16* result) {
+  bool GetItemLabel(const MenuItem::Id& id, string16* result) {
     int command_id = 0;
     if (!FindCommandId(id, &command_id))
       return false;
@@ -97,8 +98,8 @@
 
   // Given an extension menu item id, tries to find the corresponding command id
   // in the menu.
-  bool FindCommandId(const ExtensionMenuItem::Id& id, int* command_id) {
-    std::map<int, ExtensionMenuItem::Id>::const_iterator i;
+  bool FindCommandId(const MenuItem::Id& id, int* command_id) {
+    std::map<int, MenuItem::Id>::const_iterator i;
     for (i = extension_item_map_.begin(); i != extension_item_map_.end(); ++i) {
       if (i->second == id) {
         *command_id = i->first;
@@ -156,8 +157,8 @@
     return menu;
   }
 
-  // Shortcut to return the current ExtensionMenuManager.
-  ExtensionMenuManager* menu_manager() {
+  // Shortcut to return the current MenuManager.
+  extensions::MenuManager* menu_manager() {
     return browser()->profile()->GetExtensionService()->menu_manager();
   }
 
@@ -177,12 +178,12 @@
 
   // This gets all the items that any extension has registered for possible
   // inclusion in context menus.
-  ExtensionMenuItem::List GetItems() {
-    ExtensionMenuItem::List result;
+  MenuItem::List GetItems() {
+    MenuItem::List result;
     std::set<std::string> extension_ids = menu_manager()->ExtensionIds();
     std::set<std::string>::iterator i;
     for (i = extension_ids.begin(); i != extension_ids.end(); ++i) {
-      const ExtensionMenuItem::List* list = menu_manager()->MenuItems(*i);
+      const MenuItem::List* list = menu_manager()->MenuItems(*i);
       result.insert(result.end(), list->begin(), list->end());
     }
     return result;
@@ -303,9 +304,9 @@
 
   // Make sure we have an item registered with a long title.
   size_t limit = RenderViewContextMenu::kMaxExtensionItemTitleLength;
-  ExtensionMenuItem::List items = GetItems();
+  MenuItem::List items = GetItems();
   ASSERT_EQ(1u, items.size());
-  ExtensionMenuItem* item = items.at(0);
+  MenuItem* item = items.at(0);
   ASSERT_GT(item->title().size(), limit);
 
   // Create a context menu, then find the item's label. It should be properly
@@ -579,7 +580,7 @@
   LazyBackgroundObserver checkbox_checked;
   scoped_ptr<TestRenderViewContextMenu> menu(
       CreateMenu(browser(), about_blank, GURL(), GURL()));
-  ExtensionMenuItem::Id id(false, extension->id());
+  MenuItem::Id id(false, extension->id());
   id.string_uid = "checkbox1";
   int command_id = -1;
   ASSERT_TRUE(menu->FindCommandId(id, &command_id));
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
index 7d210b9..4a5e4e9 100644
--- a/chrome/browser/extensions/extension_prefs.cc
+++ b/chrome/browser/extensions/extension_prefs.cc
@@ -9,7 +9,6 @@
 #include "base/utf_string_conversions.h"
 #include "chrome/browser/extensions/admin_policy.h"
 #include "chrome/browser/extensions/api/omnibox/omnibox_api.h"
-#include "chrome/browser/extensions/extension_menu_manager.h"
 #include "chrome/browser/extensions/extension_pref_store.h"
 #include "chrome/browser/extensions/extension_sorting.h"
 #include "chrome/browser/prefs/pref_notifier.h"
diff --git a/chrome/browser/extensions/extension_prefs.h b/chrome/browser/extensions/extension_prefs.h
index e142fe1..bea4b2b 100644
--- a/chrome/browser/extensions/extension_prefs.h
+++ b/chrome/browser/extensions/extension_prefs.h
@@ -14,7 +14,6 @@
 #include "base/time.h"
 #include "base/values.h"
 #include "chrome/browser/extensions/api/content_settings/content_settings_store.h"
-#include "chrome/browser/extensions/extension_menu_manager.h"
 #include "chrome/browser/extensions/extension_prefs_scope.h"
 #include "chrome/browser/extensions/extension_scoped_prefs.h"
 #include "chrome/browser/extensions/management_policy.h"
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h
index 0b055b8..9537be6 100644
--- a/chrome/browser/extensions/extension_service.h
+++ b/chrome/browser/extensions/extension_service.h
@@ -28,7 +28,6 @@
 #include "chrome/browser/extensions/app_sync_bundle.h"
 #include "chrome/browser/extensions/apps_promo.h"
 #include "chrome/browser/extensions/extension_icon_manager.h"
-#include "chrome/browser/extensions/extension_menu_manager.h"
 #include "chrome/browser/extensions/extension_prefs.h"
 #include "chrome/browser/extensions/extension_process_manager.h"
 #include "chrome/browser/extensions/extension_sync_bundle.h"
@@ -36,6 +35,7 @@
 #include "chrome/browser/extensions/extension_warning_set.h"
 #include "chrome/browser/extensions/extensions_quota_service.h"
 #include "chrome/browser/extensions/external_extension_provider_interface.h"
+#include "chrome/browser/extensions/menu_manager.h"
 #include "chrome/browser/extensions/pending_extension_manager.h"
 #include "chrome/browser/extensions/process_map.h"
 #include "chrome/browser/prefs/pref_change_registrar.h"
@@ -493,7 +493,7 @@
 
   ExtensionsQuotaService* quota_service() { return &quota_service_; }
 
-  ExtensionMenuManager* menu_manager() { return &menu_manager_; }
+  extensions::MenuManager* menu_manager() { return &menu_manager_; }
 
   AppNotificationManager* app_notification_manager() {
     return app_notification_manager_.get();
@@ -784,7 +784,7 @@
   scoped_ptr<extensions::ComponentLoader> component_loader_;
 
   // Keeps track of menu items added by extensions.
-  ExtensionMenuManager menu_manager_;
+  extensions::MenuManager menu_manager_;
 
   // Keeps track of app notifications.
   scoped_refptr<AppNotificationManager> app_notification_manager_;
diff --git a/chrome/browser/extensions/extension_menu_manager.cc b/chrome/browser/extensions/menu_manager.cc
similarity index 73%
rename from chrome/browser/extensions/extension_menu_manager.cc
rename to chrome/browser/extensions/menu_manager.cc
index 48903fa..1ec34801 100644
--- a/chrome/browser/extensions/extension_menu_manager.cc
+++ b/chrome/browser/extensions/menu_manager.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/extensions/extension_menu_manager.h"
+#include "chrome/browser/extensions/menu_manager.h"
 
 #include <algorithm>
 
@@ -32,6 +32,8 @@
 
 using content::WebContents;
 
+namespace extensions {
+
 namespace {
 
 // Keys for serialization to and from Value to store in the preferences.
@@ -50,16 +52,16 @@
 
 void SetIdKeyValue(base::DictionaryValue* properties,
                    const char* key,
-                   const ExtensionMenuItem::Id& id) {
+                   const MenuItem::Id& id) {
   if (id.uid == 0)
     properties->SetString(key, id.string_uid);
   else
     properties->SetInteger(key, id.uid);
 }
 
-ExtensionMenuItem::List MenuItemsFromValue(const std::string& extension_id,
-                                           base::Value* value) {
-  ExtensionMenuItem::List items;
+MenuItem::List MenuItemsFromValue(const std::string& extension_id,
+                                  base::Value* value) {
+  MenuItem::List items;
 
   base::ListValue* list = NULL;
   if (!value || !value->GetAsList(&list))
@@ -69,7 +71,7 @@
     base::DictionaryValue* dict = NULL;
     if (!list->GetDictionary(i, &dict))
       continue;
-    ExtensionMenuItem* item = ExtensionMenuItem::Populate(
+    MenuItem* item = MenuItem::Populate(
         extension_id, *dict, NULL);
     if (!item)
       continue;
@@ -78,8 +80,7 @@
   return items;
 }
 
-scoped_ptr<base::Value> MenuItemsToValue(
-    const ExtensionMenuItem::List& items) {
+scoped_ptr<base::Value> MenuItemsToValue(const MenuItem::List& items) {
   scoped_ptr<base::ListValue> list(new ListValue());
   for (size_t i = 0; i < items.size(); ++i)
     list->Append(items[i]->ToValue().release());
@@ -88,12 +89,12 @@
 
 }  // namespace
 
-ExtensionMenuItem::ExtensionMenuItem(const Id& id,
-                                     const std::string& title,
-                                     bool checked,
-                                     bool enabled,
-                                     Type type,
-                                     const ContextList& contexts)
+MenuItem::MenuItem(const Id& id,
+                   const std::string& title,
+                   bool checked,
+                   bool enabled,
+                   Type type,
+                   const ContextList& contexts)
     : id_(id),
       title_(title),
       type_(type),
@@ -103,14 +104,14 @@
       parent_id_(0) {
 }
 
-ExtensionMenuItem::~ExtensionMenuItem() {
+MenuItem::~MenuItem() {
   STLDeleteElements(&children_);
 }
 
-ExtensionMenuItem* ExtensionMenuItem::ReleaseChild(const Id& child_id,
-                                                   bool recursive) {
+MenuItem* MenuItem::ReleaseChild(const Id& child_id,
+                                 bool recursive) {
   for (List::iterator i = children_.begin(); i != children_.end(); ++i) {
-    ExtensionMenuItem* child = NULL;
+    MenuItem* child = NULL;
     if ((*i)->id() == child_id) {
       child = *i;
       children_.erase(i);
@@ -124,16 +125,16 @@
   return NULL;
 }
 
-void ExtensionMenuItem::GetFlattenedSubtree(ExtensionMenuItem::List* list) {
+void MenuItem::GetFlattenedSubtree(MenuItem::List* list) {
   list->push_back(this);
   for (List::iterator i = children_.begin(); i != children_.end(); ++i)
     (*i)->GetFlattenedSubtree(list);
 }
 
-std::set<ExtensionMenuItem::Id> ExtensionMenuItem::RemoveAllDescendants() {
+std::set<MenuItem::Id> MenuItem::RemoveAllDescendants() {
   std::set<Id> result;
   for (List::iterator i = children_.begin(); i != children_.end(); ++i) {
-    ExtensionMenuItem* child = *i;
+    MenuItem* child = *i;
     result.insert(child->id());
     std::set<Id> removed = child->RemoveAllDescendants();
     result.insert(removed.begin(), removed.end());
@@ -142,7 +143,7 @@
   return result;
 }
 
-string16 ExtensionMenuItem::TitleWithReplacement(
+string16 MenuItem::TitleWithReplacement(
     const string16& selection, size_t max_length) const {
   string16 result = UTF8ToUTF16(title_);
   // TODO(asargent) - Change this to properly handle %% escaping so you can
@@ -154,19 +155,19 @@
   return result;
 }
 
-bool ExtensionMenuItem::SetChecked(bool checked) {
+bool MenuItem::SetChecked(bool checked) {
   if (type_ != CHECKBOX && type_ != RADIO)
     return false;
   checked_ = checked;
   return true;
 }
 
-void ExtensionMenuItem::AddChild(ExtensionMenuItem* item) {
+void MenuItem::AddChild(MenuItem* item) {
   item->parent_id_.reset(new Id(id_));
   children_.push_back(item);
 }
 
-scoped_ptr<DictionaryValue> ExtensionMenuItem::ToValue() const {
+scoped_ptr<DictionaryValue> MenuItem::ToValue() const {
   scoped_ptr<DictionaryValue> value(new DictionaryValue);
   // Should only be called for extensions with event pages, which only have
   // string IDs for items.
@@ -191,9 +192,9 @@
 }
 
 // static
-ExtensionMenuItem* ExtensionMenuItem::Populate(const std::string& extension_id,
-                                               const DictionaryValue& value,
-                                               std::string* error) {
+MenuItem* MenuItem::Populate(const std::string& extension_id,
+                             const DictionaryValue& value,
+                             std::string* error) {
   bool incognito = false;
   if (!value.GetBoolean(kIncognitoKey, &incognito))
     return NULL;
@@ -223,7 +224,7 @@
   if (!contexts.Populate(*contexts_value))
     return NULL;
 
-  scoped_ptr<ExtensionMenuItem> result(new ExtensionMenuItem(
+  scoped_ptr<MenuItem> result(new MenuItem(
       id, title, checked, enabled, type, contexts));
 
   if (!result->PopulateURLPatterns(
@@ -241,11 +242,10 @@
   return result.release();
 }
 
-bool ExtensionMenuItem::PopulateURLPatterns(
-    const DictionaryValue& properties,
-    const char* document_url_patterns_key,
-    const char* target_url_patterns_key,
-    std::string* error) {
+bool MenuItem::PopulateURLPatterns(const DictionaryValue& properties,
+                                   const char* document_url_patterns_key,
+                                   const char* target_url_patterns_key,
+                                   std::string* error) {
   if (properties.HasKey(document_url_patterns_key)) {
     ListValue* list = NULL;
     if (!properties.GetList(document_url_patterns_key, &list))
@@ -267,26 +267,26 @@
   return true;
 }
 
-ExtensionMenuManager::ExtensionMenuManager(Profile* profile)
+MenuManager::MenuManager(Profile* profile)
     : profile_(profile) {
   registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
                  content::Source<Profile>(profile));
   registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
                  content::Source<Profile>(profile));
 
-  extensions::StateStore* store = ExtensionSystem::Get(profile_)->state_store();
+  StateStore* store = ExtensionSystem::Get(profile_)->state_store();
   if (store)
     store->RegisterKey(kContextMenusKey);
 }
 
-ExtensionMenuManager::~ExtensionMenuManager() {
+MenuManager::~MenuManager() {
   MenuItemMap::iterator i;
   for (i = context_items_.begin(); i != context_items_.end(); ++i) {
     STLDeleteElements(&(i->second));
   }
 }
 
-std::set<std::string> ExtensionMenuManager::ExtensionIds() {
+std::set<std::string> MenuManager::ExtensionIds() {
   std::set<std::string> id_set;
   for (MenuItemMap::const_iterator i = context_items_.begin();
        i != context_items_.end(); ++i) {
@@ -295,7 +295,7 @@
   return id_set;
 }
 
-const ExtensionMenuItem::List* ExtensionMenuManager::MenuItems(
+const MenuItem::List* MenuManager::MenuItems(
     const std::string& extension_id) {
   MenuItemMap::iterator i = context_items_.find(extension_id);
   if (i != context_items_.end()) {
@@ -304,9 +304,9 @@
   return NULL;
 }
 
-bool ExtensionMenuManager::AddContextItem(
-    const extensions::Extension* extension,
-    ExtensionMenuItem* item) {
+bool MenuManager::AddContextItem(
+    const Extension* extension,
+    MenuItem* item) {
   const std::string& extension_id = item->extension_id();
   // The item must have a non-empty extension id, and not have already been
   // added.
@@ -319,7 +319,7 @@
   context_items_[extension_id].push_back(item);
   items_by_id_[item->id()] = item;
 
-  if (item->type() == ExtensionMenuItem::RADIO) {
+  if (item->type() == MenuItem::RADIO) {
     if (item->checked())
       RadioItemSelected(item);
     else
@@ -333,10 +333,10 @@
   return true;
 }
 
-bool ExtensionMenuManager::AddChildItem(const ExtensionMenuItem::Id& parent_id,
-                                        ExtensionMenuItem* child) {
-  ExtensionMenuItem* parent = GetItemById(parent_id);
-  if (!parent || parent->type() != ExtensionMenuItem::NORMAL ||
+bool MenuManager::AddChildItem(const MenuItem::Id& parent_id,
+                               MenuItem* child) {
+  MenuItem* parent = GetItemById(parent_id);
+  if (!parent || parent->type() != MenuItem::NORMAL ||
       parent->incognito() != child->incognito() ||
       parent->extension_id() != child->extension_id() ||
       ContainsKey(items_by_id_, child->id()))
@@ -344,21 +344,20 @@
   parent->AddChild(child);
   items_by_id_[child->id()] = child;
 
-  if (child->type() == ExtensionMenuItem::RADIO)
+  if (child->type() == MenuItem::RADIO)
     SanitizeRadioList(parent->children());
   return true;
 }
 
-bool ExtensionMenuManager::DescendantOf(
-    ExtensionMenuItem* item,
-    const ExtensionMenuItem::Id& ancestor_id) {
+bool MenuManager::DescendantOf(MenuItem* item,
+                               const MenuItem::Id& ancestor_id) {
   // Work our way up the tree until we find the ancestor or NULL.
-  ExtensionMenuItem::Id* id = item->parent_id();
+  MenuItem::Id* id = item->parent_id();
   while (id != NULL) {
     DCHECK(*id != item->id());  // Catch circular graphs.
     if (*id == ancestor_id)
       return true;
-    ExtensionMenuItem* next = GetItemById(*id);
+    MenuItem* next = GetItemById(*id);
     if (!next) {
       NOTREACHED();
       return false;
@@ -368,11 +367,10 @@
   return false;
 }
 
-bool ExtensionMenuManager::ChangeParent(
-    const ExtensionMenuItem::Id& child_id,
-    const ExtensionMenuItem::Id* parent_id) {
-  ExtensionMenuItem* child = GetItemById(child_id);
-  ExtensionMenuItem* new_parent = parent_id ? GetItemById(*parent_id) : NULL;
+bool MenuManager::ChangeParent(const MenuItem::Id& child_id,
+                               const MenuItem::Id* parent_id) {
+  MenuItem* child = GetItemById(child_id);
+  MenuItem* new_parent = parent_id ? GetItemById(*parent_id) : NULL;
   if ((parent_id && (child_id == *parent_id)) || !child ||
       (!new_parent && parent_id != NULL) ||
       (new_parent && (DescendantOf(new_parent, child_id) ||
@@ -380,14 +378,14 @@
                       child->extension_id() != new_parent->extension_id())))
     return false;
 
-  ExtensionMenuItem::Id* old_parent_id = child->parent_id();
+  MenuItem::Id* old_parent_id = child->parent_id();
   if (old_parent_id != NULL) {
-    ExtensionMenuItem* old_parent = GetItemById(*old_parent_id);
+    MenuItem* old_parent = GetItemById(*old_parent_id);
     if (!old_parent) {
       NOTREACHED();
       return false;
     }
-    ExtensionMenuItem* taken =
+    MenuItem* taken =
       old_parent->ReleaseChild(child_id, false /* non-recursive search*/);
     DCHECK(taken == child);
     SanitizeRadioList(old_parent->children());
@@ -399,8 +397,8 @@
       NOTREACHED();
       return false;
     }
-    ExtensionMenuItem::List& list = i->second;
-    ExtensionMenuItem::List::iterator j = std::find(list.begin(), list.end(),
+    MenuItem::List& list = i->second;
+    MenuItem::List::iterator j = std::find(list.begin(), list.end(),
                                                     child);
     if (j == list.end()) {
       NOTREACHED();
@@ -421,12 +419,11 @@
   return true;
 }
 
-bool ExtensionMenuManager::RemoveContextMenuItem(
-    const ExtensionMenuItem::Id& id) {
+bool MenuManager::RemoveContextMenuItem(const MenuItem::Id& id) {
   if (!ContainsKey(items_by_id_, id))
     return false;
 
-  ExtensionMenuItem* menu_item = GetItemById(id);
+  MenuItem* menu_item = GetItemById(id);
   DCHECK(menu_item);
   std::string extension_id = menu_item->extension_id();
   MenuItemMap::iterator i = context_items_.find(extension_id);
@@ -436,9 +433,9 @@
   }
 
   bool result = false;
-  std::set<ExtensionMenuItem::Id> items_removed;
-  ExtensionMenuItem::List& list = i->second;
-  ExtensionMenuItem::List::iterator j;
+  std::set<MenuItem::Id> items_removed;
+  MenuItem::List& list = i->second;
+  MenuItem::List::iterator j;
   for (j = list.begin(); j < list.end(); ++j) {
     // See if the current top-level item is a match.
     if ((*j)->id() == id) {
@@ -452,7 +449,7 @@
     } else {
       // See if the item to remove was found as a descendant of the current
       // top-level item.
-      ExtensionMenuItem* child = (*j)->ReleaseChild(id, true /* recursive */);
+      MenuItem* child = (*j)->ReleaseChild(id, true /* recursive */);
       if (child) {
         items_removed = child->RemoveAllDescendants();
         items_removed.insert(id);
@@ -466,7 +463,7 @@
   DCHECK(result);  // The check at the very top should have prevented this.
 
   // Clear entries from the items_by_id_ map.
-  std::set<ExtensionMenuItem::Id>::iterator removed_iter;
+  std::set<MenuItem::Id>::iterator removed_iter;
   for (removed_iter = items_removed.begin();
        removed_iter != items_removed.end();
        ++removed_iter) {
@@ -480,17 +477,16 @@
   return result;
 }
 
-void ExtensionMenuManager::RemoveAllContextItems(
-    const std::string& extension_id) {
-  ExtensionMenuItem::List::iterator i;
+void MenuManager::RemoveAllContextItems(const std::string& extension_id) {
+  MenuItem::List::iterator i;
   for (i = context_items_[extension_id].begin();
        i != context_items_[extension_id].end(); ++i) {
-    ExtensionMenuItem* item = *i;
+    MenuItem* item = *i;
     items_by_id_.erase(item->id());
 
     // Remove descendants from this item and erase them from the lookup cache.
-    std::set<ExtensionMenuItem::Id> removed_ids = item->RemoveAllDescendants();
-    std::set<ExtensionMenuItem::Id>::const_iterator j;
+    std::set<MenuItem::Id> removed_ids = item->RemoveAllDescendants();
+    std::set<MenuItem::Id>::const_iterator j;
     for (j = removed_ids.begin(); j != removed_ids.end(); ++j) {
       items_by_id_.erase(*j);
     }
@@ -500,9 +496,8 @@
   icon_manager_.RemoveIcon(extension_id);
 }
 
-ExtensionMenuItem* ExtensionMenuManager::GetItemById(
-    const ExtensionMenuItem::Id& id) const {
-  std::map<ExtensionMenuItem::Id, ExtensionMenuItem*>::const_iterator i =
+MenuItem* MenuManager::GetItemById(const MenuItem::Id& id) const {
+  std::map<MenuItem::Id, MenuItem*>::const_iterator i =
       items_by_id_.find(id);
   if (i != items_by_id_.end())
     return i->second;
@@ -510,12 +505,12 @@
     return NULL;
 }
 
-void ExtensionMenuManager::RadioItemSelected(ExtensionMenuItem* item) {
+void MenuManager::RadioItemSelected(MenuItem* item) {
   // If this is a child item, we need to get a handle to the list from its
   // parent. Otherwise get a handle to the top-level list.
-  const ExtensionMenuItem::List* list = NULL;
+  const MenuItem::List* list = NULL;
   if (item->parent_id()) {
-    ExtensionMenuItem* parent = GetItemById(*item->parent_id());
+    MenuItem* parent = GetItemById(*item->parent_id());
     if (!parent) {
       NOTREACHED();
       return;
@@ -530,7 +525,7 @@
   }
 
   // Find where |item| is in the list.
-  ExtensionMenuItem::List::const_iterator item_location;
+  MenuItem::List::const_iterator item_location;
   for (item_location = list->begin(); item_location != list->end();
        ++item_location) {
     if (*item_location == item)
@@ -542,12 +537,12 @@
   }
 
   // Iterate backwards from |item| and uncheck any adjacent radio items.
-  ExtensionMenuItem::List::const_iterator i;
+  MenuItem::List::const_iterator i;
   if (item_location != list->begin()) {
     i = item_location;
     do {
       --i;
-      if ((*i)->type() != ExtensionMenuItem::RADIO)
+      if ((*i)->type() != MenuItem::RADIO)
         break;
       (*i)->SetChecked(false);
     } while (i != list->begin());
@@ -555,7 +550,7 @@
 
   // Now iterate forwards from |item| and uncheck any adjacent radio items.
   for (i = item_location + 1; i != list->end(); ++i) {
-    if ((*i)->type() != ExtensionMenuItem::RADIO)
+    if ((*i)->type() != MenuItem::RADIO)
       break;
     (*i)->SetChecked(false);
   }
@@ -567,26 +562,25 @@
     dictionary->SetString(key, url.possibly_invalid_spec());
 }
 
-void ExtensionMenuManager::ExecuteCommand(
-    Profile* profile,
-    WebContents* web_contents,
-    const content::ContextMenuParams& params,
-    const ExtensionMenuItem::Id& menu_item_id) {
+void MenuManager::ExecuteCommand(Profile* profile,
+                                 WebContents* web_contents,
+                                 const content::ContextMenuParams& params,
+                                 const MenuItem::Id& menu_item_id) {
   ExtensionEventRouter* event_router = profile->GetExtensionEventRouter();
   if (!event_router)
     return;
 
-  ExtensionMenuItem* item = GetItemById(menu_item_id);
+  MenuItem* item = GetItemById(menu_item_id);
   if (!item)
     return;
 
   // ExtensionService/Extension can be NULL in unit tests :(
   ExtensionService* service =
       ExtensionSystem::Get(profile_)->extension_service();
-  const extensions::Extension* extension = service ?
+  const Extension* extension = service ?
       service->extensions()->GetByID(menu_item_id.extension_id) : NULL;
 
-  if (item->type() == ExtensionMenuItem::RADIO)
+  if (item->type() == MenuItem::RADIO)
     RadioItemSelected(item);
 
   ListValue args;
@@ -628,15 +622,15 @@
   else
     args.Append(new DictionaryValue());
 
-  if (item->type() == ExtensionMenuItem::CHECKBOX ||
-      item->type() == ExtensionMenuItem::RADIO) {
+  if (item->type() == MenuItem::CHECKBOX ||
+      item->type() == MenuItem::RADIO) {
     bool was_checked = item->checked();
     properties->SetBoolean("wasChecked", was_checked);
 
     // RADIO items always get set to true when you click on them, but CHECKBOX
     // items get their state toggled.
     bool checked =
-        (item->type() == ExtensionMenuItem::RADIO) ? true : !was_checked;
+        (item->type() == MenuItem::RADIO) ? true : !was_checked;
 
     item->SetChecked(checked);
     properties->SetBoolean("checked", item->checked());
@@ -664,11 +658,10 @@
       ExtensionEventRouter::USER_GESTURE_ENABLED);
 }
 
-void ExtensionMenuManager::SanitizeRadioList(
-    const ExtensionMenuItem::List& item_list) {
-  ExtensionMenuItem::List::const_iterator i = item_list.begin();
+void MenuManager::SanitizeRadioList(const MenuItem::List& item_list) {
+  MenuItem::List::const_iterator i = item_list.begin();
   while (i != item_list.end()) {
-    if ((*i)->type() != ExtensionMenuItem::RADIO) {
+    if ((*i)->type() != MenuItem::RADIO) {
       ++i;
       break;
     }
@@ -676,11 +669,11 @@
     // Uncheck any checked radio items in the run, and at the end reset
     // the appropriate one to checked. If no check radio items were found,
     // then check the first radio item in the run.
-    ExtensionMenuItem::List::const_iterator last_checked = item_list.end();
-    ExtensionMenuItem::List::const_iterator radio_run_iter;
+    MenuItem::List::const_iterator last_checked = item_list.end();
+    MenuItem::List::const_iterator radio_run_iter;
     for (radio_run_iter = i; radio_run_iter != item_list.end();
         ++radio_run_iter) {
-      if ((*radio_run_iter)->type() != ExtensionMenuItem::RADIO) {
+      if ((*radio_run_iter)->type() != MenuItem::RADIO) {
         break;
       }
 
@@ -699,11 +692,11 @@
   }
 }
 
-bool ExtensionMenuManager::ItemUpdated(const ExtensionMenuItem::Id& id) {
+bool MenuManager::ItemUpdated(const MenuItem::Id& id) {
   if (!ContainsKey(items_by_id_, id))
     return false;
 
-  ExtensionMenuItem* menu_item = GetItemById(id);
+  MenuItem* menu_item = GetItemById(id);
   DCHECK(menu_item);
 
   if (menu_item->parent_id()) {
@@ -721,41 +714,40 @@
   return true;
 }
 
-void ExtensionMenuManager::WriteToStorage(
-    const extensions::Extension* extension) {
+void MenuManager::WriteToStorage(const Extension* extension) {
   if (!extension->has_lazy_background_page())
     return;
-  const ExtensionMenuItem::List* top_items = MenuItems(extension->id());
-  ExtensionMenuItem::List all_items;
+  const MenuItem::List* top_items = MenuItems(extension->id());
+  MenuItem::List all_items;
   if (top_items) {
-    for (ExtensionMenuItem::List::const_iterator i = top_items->begin();
+    for (MenuItem::List::const_iterator i = top_items->begin();
          i != top_items->end(); ++i) {
       (*i)->GetFlattenedSubtree(&all_items);
     }
   }
 
-  extensions::StateStore* store = ExtensionSystem::Get(profile_)->state_store();
+  StateStore* store = ExtensionSystem::Get(profile_)->state_store();
   if (store)
     store->SetExtensionValue(extension->id(), kContextMenusKey,
                              MenuItemsToValue(all_items));
 }
 
-void ExtensionMenuManager::ReadFromStorage(const std::string& extension_id,
-                                           scoped_ptr<base::Value> value) {
-  const extensions::Extension* extension =
+void MenuManager::ReadFromStorage(const std::string& extension_id,
+                                  scoped_ptr<base::Value> value) {
+  const Extension* extension =
       ExtensionSystem::Get(profile_)->extension_service()->extensions()->
           GetByID(extension_id);
   if (!extension)
     return;
 
-  ExtensionMenuItem::List items = MenuItemsFromValue(extension_id, value.get());
+  MenuItem::List items = MenuItemsFromValue(extension_id, value.get());
   for (size_t i = 0; i < items.size(); ++i) {
     if (items[i]->parent_id()) {
       // Parent IDs are stored in the parent_id field for convenience, but
       // they have not yet been validated. Separate them out here.
       // Because of the order in which we store items in the prefs, parents will
       // precede children, so we should already know about any parent items.
-      scoped_ptr<ExtensionMenuItem::Id> parent_id;
+      scoped_ptr<MenuItem::Id> parent_id;
       parent_id.swap(items[i]->parent_id_);
       AddChildItem(*parent_id, items[i]);
     } else {
@@ -764,59 +756,57 @@
   }
 }
 
-void ExtensionMenuManager::Observe(
-    int type,
-    const content::NotificationSource& source,
-    const content::NotificationDetails& details) {
+void MenuManager::Observe(int type,
+                          const content::NotificationSource& source,
+                          const content::NotificationDetails& details) {
   if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED) {
     // Remove menu items for disabled/uninstalled extensions.
-    const extensions::Extension* extension =
-        content::Details<extensions::UnloadedExtensionInfo>(details)->extension;
+    const Extension* extension =
+        content::Details<UnloadedExtensionInfo>(details)->extension;
     if (ContainsKey(context_items_, extension->id())) {
       RemoveAllContextItems(extension->id());
     }
   } else if (type == chrome::NOTIFICATION_EXTENSION_LOADED) {
-    const extensions::Extension* extension =
-        content::Details<const extensions::Extension>(details).ptr();
-    extensions::StateStore* store =
-        ExtensionSystem::Get(profile_)->state_store();
+    const Extension* extension =
+        content::Details<const Extension>(details).ptr();
+    StateStore* store = ExtensionSystem::Get(profile_)->state_store();
     if (store && extension->has_lazy_background_page()) {
       store->GetExtensionValue(extension->id(), kContextMenusKey,
-          base::Bind(&ExtensionMenuManager::ReadFromStorage,
+          base::Bind(&MenuManager::ReadFromStorage,
                      AsWeakPtr(), extension->id()));
     }
   }
 }
 
-const SkBitmap& ExtensionMenuManager::GetIconForExtension(
+const SkBitmap& MenuManager::GetIconForExtension(
     const std::string& extension_id) {
   return icon_manager_.GetIcon(extension_id);
 }
 
-ExtensionMenuItem::Id::Id()
+MenuItem::Id::Id()
     : incognito(false), extension_id(""), uid(0), string_uid("") {
 }
 
-ExtensionMenuItem::Id::Id(bool incognito, const std::string& extension_id)
+MenuItem::Id::Id(bool incognito, const std::string& extension_id)
     : incognito(incognito), extension_id(extension_id), uid(0),
       string_uid("") {
 }
 
-ExtensionMenuItem::Id::~Id() {
+MenuItem::Id::~Id() {
 }
 
-bool ExtensionMenuItem::Id::operator==(const Id& other) const {
+bool MenuItem::Id::operator==(const Id& other) const {
   return (incognito == other.incognito &&
           extension_id == other.extension_id &&
           uid == other.uid &&
           string_uid == other.string_uid);
 }
 
-bool ExtensionMenuItem::Id::operator!=(const Id& other) const {
+bool MenuItem::Id::operator!=(const Id& other) const {
   return !(*this == other);
 }
 
-bool ExtensionMenuItem::Id::operator<(const Id& other) const {
+bool MenuItem::Id::operator<(const Id& other) const {
   if (incognito < other.incognito)
     return true;
   if (incognito == other.incognito) {
@@ -831,3 +821,5 @@
   }
   return false;
 }
+
+}  // namespace extensions
diff --git a/chrome/browser/extensions/extension_menu_manager.h b/chrome/browser/extensions/menu_manager.h
similarity index 77%
rename from chrome/browser/extensions/extension_menu_manager.h
rename to chrome/browser/extensions/menu_manager.h
index 0bacba74..38ef3f7 100644
--- a/chrome/browser/extensions/extension_menu_manager.h
+++ b/chrome/browser/extensions/menu_manager.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_MENU_MANAGER_H_
-#define CHROME_BROWSER_EXTENSIONS_EXTENSION_MENU_MANAGER_H_
+#ifndef CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_
+#define CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_
 #pragma once
 
 #include <map>
@@ -34,13 +34,12 @@
 
 namespace extensions {
 class Extension;
-}
 
 // Represents a menu item added by an extension.
-class ExtensionMenuItem {
+class MenuItem {
  public:
-  // A list of ExtensionMenuItem's.
-  typedef std::vector<ExtensionMenuItem*> List;
+  // A list of MenuItems.
+  typedef std::vector<MenuItem*> List;
 
   // An Id uniquely identifies a context menu item registered by an extension.
   struct Id {
@@ -126,13 +125,13 @@
     uint32 value_;  // A bitmask of Context values.
   };
 
-  ExtensionMenuItem(const Id& id,
-                    const std::string& title,
-                    bool checked,
-                    bool enabled,
-                    Type type,
-                    const ContextList& contexts);
-  virtual ~ExtensionMenuItem();
+  MenuItem(const Id& id,
+           const std::string& title,
+           bool checked,
+           bool enabled,
+           Type type,
+           const ContextList& contexts);
+  virtual ~MenuItem();
 
   // Simple accessor methods.
   bool incognito() const { return id_.incognito; }
@@ -176,11 +175,11 @@
   // Converts to Value for serialization to preferences.
   scoped_ptr<base::DictionaryValue> ToValue() const;
 
-  // Returns a new ExtensionMenuItem created from |value|, or NULL if there is
-  // an error. The caller takes ownership of the ExtensionMenuItem.
-  static ExtensionMenuItem* Populate(const std::string& extension_id,
-                                     const DictionaryValue& value,
-                                     std::string* error);
+  // Returns a new MenuItem created from |value|, or NULL if there is
+  // an error. The caller takes ownership of the MenuItem.
+  static MenuItem* Populate(const std::string& extension_id,
+                            const DictionaryValue& value,
+                            std::string* error);
 
   // Sets any document and target URL patterns from |properties|.
   bool PopulateURLPatterns(const base::DictionaryValue& properties,
@@ -189,18 +188,18 @@
                            std::string* error);
 
  protected:
-  friend class ExtensionMenuManager;
+  friend class MenuManager;
 
   // Takes ownership of |item| and sets its parent_id_.
-  void AddChild(ExtensionMenuItem* item);
+  void AddChild(MenuItem* item);
 
   // Takes the child item from this parent. The item is returned and the caller
   // then owns the pointer.
-  ExtensionMenuItem* ReleaseChild(const Id& child_id, bool recursive);
+  MenuItem* ReleaseChild(const Id& child_id, bool recursive);
 
   // Recursively appends all descendant items (children, grandchildren, etc.)
   // to the output |list|.
-  void GetFlattenedSubtree(ExtensionMenuItem::List* list);
+  void GetFlattenedSubtree(MenuItem::List* list);
 
   // Recursively removes all descendant items (children, grandchildren, etc.),
   // returning the ids of the removed items.
@@ -239,16 +238,15 @@
   // Any children this item may have.
   List children_;
 
-  DISALLOW_COPY_AND_ASSIGN(ExtensionMenuItem);
+  DISALLOW_COPY_AND_ASSIGN(MenuItem);
 };
 
 // This class keeps track of menu items added by extensions.
-class ExtensionMenuManager
-    : public content::NotificationObserver,
-      public base::SupportsWeakPtr<ExtensionMenuManager> {
+class MenuManager : public content::NotificationObserver,
+                    public base::SupportsWeakPtr<MenuManager> {
  public:
-  explicit ExtensionMenuManager(Profile* profile);
-  virtual ~ExtensionMenuManager();
+  explicit MenuManager(Profile* profile);
+  virtual ~MenuManager();
 
   // Returns the ids of extensions which have menu items registered.
   std::set<std::string> ExtensionIds();
@@ -258,49 +256,48 @@
   // AddChildItem); although those can be reached via the top-level items'
   // children. A view can then decide how to display these, including whether to
   // put them into a submenu if there are more than 1.
-  const ExtensionMenuItem::List* MenuItems(const std::string& extension_id);
+  const MenuItem::List* MenuItems(const std::string& extension_id);
 
   // Adds a top-level menu item for an extension, requiring the |extension|
   // pointer so it can load the icon for the extension. Takes ownership of
   // |item|. Returns a boolean indicating success or failure.
-  bool AddContextItem(const extensions::Extension* extension,
-                      ExtensionMenuItem* item);
+  bool AddContextItem(const Extension* extension, MenuItem* item);
 
   // Add an item as a child of another item which has been previously added, and
   // takes ownership of |item|. Returns a boolean indicating success or failure.
-  bool AddChildItem(const ExtensionMenuItem::Id& parent_id,
-                    ExtensionMenuItem* child);
+  bool AddChildItem(const MenuItem::Id& parent_id,
+                    MenuItem* child);
 
   // Makes existing item with |child_id| a child of the item with |parent_id|.
   // If the child item was already a child of another parent, this will remove
   // it from that parent first. It is an error to try and move an item to be a
   // child of one of its own descendants. It is legal to pass NULL for
   // |parent_id|, which means the item should be moved to the top-level.
-  bool ChangeParent(const ExtensionMenuItem::Id& child_id,
-                    const ExtensionMenuItem::Id* parent_id);
+  bool ChangeParent(const MenuItem::Id& child_id,
+                    const MenuItem::Id* parent_id);
 
   // Removes a context menu item with the given id (whether it is a top-level
   // item or a child of some other item), returning true if the item was found
   // and removed or false otherwise.
-  bool RemoveContextMenuItem(const ExtensionMenuItem::Id& id);
+  bool RemoveContextMenuItem(const MenuItem::Id& id);
 
   // Removes all items for the given extension id.
   void RemoveAllContextItems(const std::string& extension_id);
 
   // Returns the item with the given |id| or NULL.
-  ExtensionMenuItem* GetItemById(const ExtensionMenuItem::Id& id) const;
+  MenuItem* GetItemById(const MenuItem::Id& id) const;
 
-  // Notify the ExtensionMenuManager that an item has been updated not through
-  // an explicit call into ExtensionMenuManager. For example, if an item is
+  // Notify the MenuManager that an item has been updated not through
+  // an explicit call into MenuManager. For example, if an item is
   // acquired by a call to GetItemById and changed, then this should be called.
   // Returns true if the item was found or false otherwise.
-  bool ItemUpdated(const ExtensionMenuItem::Id& id);
+  bool ItemUpdated(const MenuItem::Id& id);
 
   // Called when a menu item is clicked on by the user.
   void ExecuteCommand(Profile* profile,
                       content::WebContents* web_contents,
                       const content::ContextMenuParams& params,
-                      const ExtensionMenuItem::Id& menu_item_id);
+                      const MenuItem::Id& menu_item_id);
 
   // This returns a bitmap of width/height kFaviconSize, loaded either from an
   // entry specified in the extension's 'icon' section of the manifest, or a
@@ -312,7 +309,7 @@
                        const content::NotificationDetails& details) OVERRIDE;
 
   // Stores the menu items for the extension in the state storage.
-  void WriteToStorage(const extensions::Extension* extension);
+  void WriteToStorage(const Extension* extension);
 
   // Reads menu items for the extension from the state storage. Any invalid
   // items are ignored.
@@ -320,31 +317,30 @@
                        scoped_ptr<base::Value> value);
 
  private:
-  FRIEND_TEST_ALL_PREFIXES(ExtensionMenuManagerTest, DeleteParent);
-  FRIEND_TEST_ALL_PREFIXES(ExtensionMenuManagerTest, RemoveOneByOne);
+  FRIEND_TEST_ALL_PREFIXES(MenuManagerTest, DeleteParent);
+  FRIEND_TEST_ALL_PREFIXES(MenuManagerTest, RemoveOneByOne);
 
   // This is a helper function which takes care of de-selecting any other radio
   // items in the same group (i.e. that are adjacent in the list).
-  void RadioItemSelected(ExtensionMenuItem* item);
+  void RadioItemSelected(MenuItem* item);
 
   // Make sure that there is only one radio item selected at once in any run.
   // If there are no radio items selected, then the first item in the run
   // will get selected. If there are multiple radio items selected, then only
   // the last one will get selcted.
-  void SanitizeRadioList(const ExtensionMenuItem::List& item_list);
+  void SanitizeRadioList(const MenuItem::List& item_list);
 
   // Returns true if item is a descendant of an item with id |ancestor_id|.
-  bool DescendantOf(ExtensionMenuItem* item,
-                    const ExtensionMenuItem::Id& ancestor_id);
+  bool DescendantOf(MenuItem* item, const MenuItem::Id& ancestor_id);
 
   // We keep items organized by mapping an extension id to a list of items.
-  typedef std::map<std::string, ExtensionMenuItem::List> MenuItemMap;
+  typedef std::map<std::string, MenuItem::List> MenuItemMap;
   MenuItemMap context_items_;
 
-  // This lets us make lookup by id fast. It maps id to ExtensionMenuItem* for
+  // This lets us make lookup by id fast. It maps id to MenuItem* for
   // all items the menu manager knows about, including all children of top-level
   // items.
-  std::map<ExtensionMenuItem::Id, ExtensionMenuItem*> items_by_id_;
+  std::map<MenuItem::Id, MenuItem*> items_by_id_;
 
   content::NotificationRegistrar registrar_;
 
@@ -352,7 +348,9 @@
 
   Profile* profile_;
 
-  DISALLOW_COPY_AND_ASSIGN(ExtensionMenuManager);
+  DISALLOW_COPY_AND_ASSIGN(MenuManager);
 };
 
-#endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_MENU_MANAGER_H_
+}  // namespace extensions
+
+#endif  // CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_
diff --git a/chrome/browser/extensions/extension_menu_manager_unittest.cc b/chrome/browser/extensions/menu_manager_unittest.cc
similarity index 78%
rename from chrome/browser/extensions/extension_menu_manager_unittest.cc
rename to chrome/browser/extensions/menu_manager_unittest.cc
index a88b32f..fb238e86 100644
--- a/chrome/browser/extensions/extension_menu_manager_unittest.cc
+++ b/chrome/browser/extensions/menu_manager_unittest.cc
@@ -13,7 +13,7 @@
 #include "base/values.h"
 #include "chrome/browser/extensions/extension_event_names.h"
 #include "chrome/browser/extensions/extension_event_router.h"
-#include "chrome/browser/extensions/extension_menu_manager.h"
+#include "chrome/browser/extensions/menu_manager.h"
 #include "chrome/browser/extensions/test_extension_prefs.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths.h"
@@ -27,40 +27,40 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 using content::BrowserThread;
-using extensions::Extension;
 using testing::_;
 using testing::AtLeast;
 using testing::InSequence;
 using testing::Return;
 using testing::SaveArg;
 
+namespace extensions {
+
 // Base class for tests.
-class ExtensionMenuManagerTest : public testing::Test {
+class MenuManagerTest : public testing::Test {
  public:
-  ExtensionMenuManagerTest()
-      : ui_thread_(BrowserThread::UI, &message_loop_),
-        file_thread_(BrowserThread::FILE, &message_loop_),
-        manager_(&profile_),
-        next_id_(1) {
+  MenuManagerTest() : ui_thread_(BrowserThread::UI, &message_loop_),
+                      file_thread_(BrowserThread::FILE, &message_loop_),
+                      manager_(&profile_),
+                      next_id_(1) {
   }
 
   // Returns a test item.
-  ExtensionMenuItem* CreateTestItem(Extension* extension) {
-    ExtensionMenuItem::Type type = ExtensionMenuItem::NORMAL;
-    ExtensionMenuItem::ContextList contexts(ExtensionMenuItem::ALL);
-    ExtensionMenuItem::Id id(false, extension->id());
+  MenuItem* CreateTestItem(Extension* extension) {
+    MenuItem::Type type = MenuItem::NORMAL;
+    MenuItem::ContextList contexts(MenuItem::ALL);
+    MenuItem::Id id(false, extension->id());
     id.uid = next_id_++;
-    return new ExtensionMenuItem(id, "test", false, true, type, contexts);
+    return new MenuItem(id, "test", false, true, type, contexts);
   }
 
   // Returns a test item with the given string ID.
-  ExtensionMenuItem* CreateTestItemWithID(Extension* extension,
-                                          const std::string& string_id) {
-    ExtensionMenuItem::Type type = ExtensionMenuItem::NORMAL;
-    ExtensionMenuItem::ContextList contexts(ExtensionMenuItem::ALL);
-    ExtensionMenuItem::Id id(false, extension->id());
+  MenuItem* CreateTestItemWithID(Extension* extension,
+                                 const std::string& string_id) {
+    MenuItem::Type type = MenuItem::NORMAL;
+    MenuItem::ContextList contexts(MenuItem::ALL);
+    MenuItem::Id id(false, extension->id());
     id.string_uid = string_id;
-    return new ExtensionMenuItem(id, "test", false, true, type, contexts);
+    return new MenuItem(id, "test", false, true, type, contexts);
   }
 
   // Creates and returns a test Extension. The caller does *not* own the return
@@ -77,31 +77,30 @@
   content::TestBrowserThread ui_thread_;
   content::TestBrowserThread file_thread_;
 
-  ExtensionMenuManager manager_;
-  extensions::ExtensionList extensions_;
+  MenuManager manager_;
+  ExtensionList extensions_;
   TestExtensionPrefs prefs_;
   int next_id_;
 
  private:
-  DISALLOW_COPY_AND_ASSIGN(ExtensionMenuManagerTest);
+  DISALLOW_COPY_AND_ASSIGN(MenuManagerTest);
 };
 
 // Tests adding, getting, and removing items.
-TEST_F(ExtensionMenuManagerTest, AddGetRemoveItems) {
+TEST_F(MenuManagerTest, AddGetRemoveItems) {
   Extension* extension = AddExtension("test");
 
   // Add a new item, make sure you can get it back.
-  ExtensionMenuItem* item1 = CreateTestItem(extension);
+  MenuItem* item1 = CreateTestItem(extension);
   ASSERT_TRUE(item1 != NULL);
   ASSERT_TRUE(manager_.AddContextItem(extension, item1));
   ASSERT_EQ(item1, manager_.GetItemById(item1->id()));
-  const ExtensionMenuItem::List* items =
-      manager_.MenuItems(item1->extension_id());
+  const MenuItem::List* items = manager_.MenuItems(item1->extension_id());
   ASSERT_EQ(1u, items->size());
   ASSERT_EQ(item1, items->at(0));
 
   // Add a second item, make sure it comes back too.
-  ExtensionMenuItem* item2 = CreateTestItemWithID(extension, "id2");
+  MenuItem* item2 = CreateTestItemWithID(extension, "id2");
   ASSERT_TRUE(manager_.AddContextItem(extension, item2));
   ASSERT_EQ(item2, manager_.GetItemById(item2->id()));
   items = manager_.MenuItems(item2->extension_id());
@@ -110,8 +109,8 @@
   ASSERT_EQ(item2, items->at(1));
 
   // Try adding item 3, then removing it.
-  ExtensionMenuItem* item3 = CreateTestItem(extension);
-  ExtensionMenuItem::Id id3 = item3->id();
+  MenuItem* item3 = CreateTestItem(extension);
+  MenuItem::Id id3 = item3->id();
   std::string extension_id = item3->extension_id();
   ASSERT_TRUE(manager_.AddContextItem(extension, item3));
   ASSERT_EQ(item3, manager_.GetItemById(id3));
@@ -121,49 +120,48 @@
   ASSERT_EQ(2u, manager_.MenuItems(extension_id)->size());
 
   // Make sure removing a non-existent item returns false.
-  ExtensionMenuItem::Id id(false, extension->id());
+  MenuItem::Id id(false, extension->id());
   id.uid = id3.uid + 50;
   ASSERT_FALSE(manager_.RemoveContextMenuItem(id));
 
   // Make sure adding an item with the same string ID returns false.
-  scoped_ptr<ExtensionMenuItem> item2too(
-      CreateTestItemWithID(extension, "id2"));
+  scoped_ptr<MenuItem> item2too(CreateTestItemWithID(extension, "id2"));
   ASSERT_FALSE(manager_.AddContextItem(extension, item2too.get()));
 
   // But the same string ID should not collide with another extension.
   Extension* extension2 = AddExtension("test2");
-  ExtensionMenuItem* item2other = CreateTestItemWithID(extension2, "id2");
+  MenuItem* item2other = CreateTestItemWithID(extension2, "id2");
   ASSERT_TRUE(manager_.AddContextItem(extension2, item2other));
 }
 
 // Test adding/removing child items.
-TEST_F(ExtensionMenuManagerTest, ChildFunctions) {
+TEST_F(MenuManagerTest, ChildFunctions) {
   Extension* extension1 = AddExtension("1111");
   Extension* extension2 = AddExtension("2222");
   Extension* extension3 = AddExtension("3333");
 
-  ExtensionMenuItem* item1 = CreateTestItem(extension1);
-  ExtensionMenuItem* item2 = CreateTestItem(extension2);
-  ExtensionMenuItem* item2_child = CreateTestItemWithID(extension2, "2child");
-  ExtensionMenuItem* item2_grandchild = CreateTestItem(extension2);
+  MenuItem* item1 = CreateTestItem(extension1);
+  MenuItem* item2 = CreateTestItem(extension2);
+  MenuItem* item2_child = CreateTestItemWithID(extension2, "2child");
+  MenuItem* item2_grandchild = CreateTestItem(extension2);
 
   // This third item we expect to fail inserting, so we use a scoped_ptr to make
   // sure it gets deleted.
-  scoped_ptr<ExtensionMenuItem> item3(CreateTestItem(extension3));
+  scoped_ptr<MenuItem> item3(CreateTestItem(extension3));
 
   // Add in the first two items.
   ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
   ASSERT_TRUE(manager_.AddContextItem(extension2, item2));
 
-  ExtensionMenuItem::Id id1 = item1->id();
-  ExtensionMenuItem::Id id2 = item2->id();
+  MenuItem::Id id1 = item1->id();
+  MenuItem::Id id2 = item2->id();
 
   // Try adding item3 as a child of item2 - this should fail because item3 has
   // a different extension id.
   ASSERT_FALSE(manager_.AddChildItem(id2, item3.get()));
 
   // Add item2_child as a child of item2.
-  ExtensionMenuItem::Id id2_child = item2_child->id();
+  MenuItem::Id id2_child = item2_child->id();
   ASSERT_TRUE(manager_.AddChildItem(id2, item2_child));
   ASSERT_EQ(1, item2->child_count());
   ASSERT_EQ(0, item1->child_count());
@@ -173,7 +171,7 @@
   ASSERT_EQ(item1, manager_.MenuItems(item1->extension_id())->at(0));
 
   // Add item2_grandchild as a child of item2_child, then remove it.
-  ExtensionMenuItem::Id id2_grandchild = item2_grandchild->id();
+  MenuItem::Id id2_grandchild = item2_grandchild->id();
   ASSERT_TRUE(manager_.AddChildItem(id2_child, item2_grandchild));
   ASSERT_EQ(1, item2->child_count());
   ASSERT_EQ(1, item2_child->child_count());
@@ -192,22 +190,22 @@
 }
 
 // Tests that deleting a parent properly removes descendants.
-TEST_F(ExtensionMenuManagerTest, DeleteParent) {
+TEST_F(MenuManagerTest, DeleteParent) {
   Extension* extension = AddExtension("1111");
 
   // Set up 5 items to add.
-  ExtensionMenuItem* item1 = CreateTestItem(extension);
-  ExtensionMenuItem* item2 = CreateTestItem(extension);
-  ExtensionMenuItem* item3 = CreateTestItemWithID(extension, "id3");
-  ExtensionMenuItem* item4 = CreateTestItemWithID(extension, "id4");
-  ExtensionMenuItem* item5 = CreateTestItem(extension);
-  ExtensionMenuItem* item6 = CreateTestItem(extension);
-  ExtensionMenuItem::Id item1_id = item1->id();
-  ExtensionMenuItem::Id item2_id = item2->id();
-  ExtensionMenuItem::Id item3_id = item3->id();
-  ExtensionMenuItem::Id item4_id = item4->id();
-  ExtensionMenuItem::Id item5_id = item5->id();
-  ExtensionMenuItem::Id item6_id = item6->id();
+  MenuItem* item1 = CreateTestItem(extension);
+  MenuItem* item2 = CreateTestItem(extension);
+  MenuItem* item3 = CreateTestItemWithID(extension, "id3");
+  MenuItem* item4 = CreateTestItemWithID(extension, "id4");
+  MenuItem* item5 = CreateTestItem(extension);
+  MenuItem* item6 = CreateTestItem(extension);
+  MenuItem::Id item1_id = item1->id();
+  MenuItem::Id item2_id = item2->id();
+  MenuItem::Id item3_id = item3->id();
+  MenuItem::Id item4_id = item4->id();
+  MenuItem::Id item5_id = item5->id();
+  MenuItem::Id item6_id = item6->id();
 
   // Add the items in the hierarchy
   // item1 -> item2 -> item3 -> item4 -> item5 -> item6.
@@ -257,25 +255,24 @@
 }
 
 // Tests changing parents.
-TEST_F(ExtensionMenuManagerTest, ChangeParent) {
+TEST_F(MenuManagerTest, ChangeParent) {
   Extension* extension1 = AddExtension("1111");
 
   // First create two items and add them both to the manager.
-  ExtensionMenuItem* item1 = CreateTestItem(extension1);
-  ExtensionMenuItem* item2 = CreateTestItem(extension1);
+  MenuItem* item1 = CreateTestItem(extension1);
+  MenuItem* item2 = CreateTestItem(extension1);
 
   ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
   ASSERT_TRUE(manager_.AddContextItem(extension1, item2));
 
-  const ExtensionMenuItem::List* items =
-      manager_.MenuItems(item1->extension_id());
+  const MenuItem::List* items = manager_.MenuItems(item1->extension_id());
   ASSERT_EQ(2u, items->size());
   ASSERT_EQ(item1, items->at(0));
   ASSERT_EQ(item2, items->at(1));
 
   // Now create a third item, initially add it as a child of item1, then move
   // it to be a child of item2.
-  ExtensionMenuItem* item3 = CreateTestItem(extension1);
+  MenuItem* item3 = CreateTestItem(extension1);
 
   ASSERT_TRUE(manager_.AddChildItem(item1->id(), item3));
   ASSERT_EQ(1, item1->child_count());
@@ -326,7 +323,7 @@
 
   // Make sure you can't move a node to be a child of another extension's item.
   Extension* extension2 = AddExtension("2222");
-  ExtensionMenuItem* item4 = CreateTestItem(extension2);
+  MenuItem* item4 = CreateTestItem(extension2);
   ASSERT_TRUE(manager_.AddContextItem(extension2, item4));
   ASSERT_FALSE(manager_.ChangeParent(item4->id(), &item1->id()));
   ASSERT_FALSE(manager_.ChangeParent(item1->id(), &item4->id()));
@@ -337,7 +334,7 @@
 
 // Tests that we properly remove an extension's menu item when that extension is
 // unloaded.
-TEST_F(ExtensionMenuManagerTest, ExtensionUnloadRemovesMenuItems) {
+TEST_F(MenuManagerTest, ExtensionUnloadRemovesMenuItems) {
   content::NotificationService* notifier =
       content::NotificationService::current();
   ASSERT_TRUE(notifier != NULL);
@@ -345,26 +342,26 @@
   // Create a test extension.
   Extension* extension1 = AddExtension("1111");
 
-  // Create an ExtensionMenuItem and put it into the manager.
-  ExtensionMenuItem* item1 = CreateTestItem(extension1);
-  ExtensionMenuItem::Id id1 = item1->id();
+  // Create an MenuItem and put it into the manager.
+  MenuItem* item1 = CreateTestItem(extension1);
+  MenuItem::Id id1 = item1->id();
   ASSERT_EQ(extension1->id(), item1->extension_id());
   ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
   ASSERT_EQ(1u, manager_.MenuItems(extension1->id())->size());
 
   // Create a menu item with a different extension id and add it to the manager.
   Extension* extension2 = AddExtension("2222");
-  ExtensionMenuItem* item2 = CreateTestItem(extension2);
+  MenuItem* item2 = CreateTestItem(extension2);
   ASSERT_NE(item1->extension_id(), item2->extension_id());
   ASSERT_TRUE(manager_.AddContextItem(extension2, item2));
 
   // Notify that the extension was unloaded, and make sure the right item is
   // gone.
-  extensions::UnloadedExtensionInfo details(
+  UnloadedExtensionInfo details(
       extension1, extension_misc::UNLOAD_REASON_DISABLE);
   notifier->Notify(chrome::NOTIFICATION_EXTENSION_UNLOADED,
                    content::Source<Profile>(&profile_),
-                   content::Details<extensions::UnloadedExtensionInfo>(
+                   content::Details<UnloadedExtensionInfo>(
                       &details));
   ASSERT_EQ(NULL, manager_.MenuItems(extension1->id()));
   ASSERT_EQ(1u, manager_.MenuItems(extension2->id())->size());
@@ -372,7 +369,7 @@
   ASSERT_TRUE(manager_.GetItemById(item2->id()) != NULL);
 }
 
-// A mock message service for tests of ExtensionMenuManager::ExecuteCommand.
+// A mock message service for tests of MenuManager::ExecuteCommand.
 class MockExtensionEventRouter : public ExtensionEventRouter {
  public:
   explicit MockExtensionEventRouter(Profile* profile) :
@@ -391,7 +388,7 @@
   DISALLOW_COPY_AND_ASSIGN(MockExtensionEventRouter);
 };
 
-// A mock profile for tests of ExtensionMenuManager::ExecuteCommand.
+// A mock profile for tests of MenuManager::ExecuteCommand.
 class MockTestingProfile : public TestingProfile {
  public:
   MockTestingProfile() {}
@@ -402,22 +399,22 @@
 };
 
 // Tests the RemoveAll functionality.
-TEST_F(ExtensionMenuManagerTest, RemoveAll) {
+TEST_F(MenuManagerTest, RemoveAll) {
   // Try removing all items for an extension id that doesn't have any items.
   manager_.RemoveAllContextItems("CCCC");
 
   // Add 2 top-level and one child item for extension 1.
   Extension* extension1 = AddExtension("1111");
-  ExtensionMenuItem* item1 = CreateTestItem(extension1);
-  ExtensionMenuItem* item2 = CreateTestItem(extension1);
-  ExtensionMenuItem* item3 = CreateTestItem(extension1);
+  MenuItem* item1 = CreateTestItem(extension1);
+  MenuItem* item2 = CreateTestItem(extension1);
+  MenuItem* item3 = CreateTestItem(extension1);
   ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
   ASSERT_TRUE(manager_.AddContextItem(extension1, item2));
   ASSERT_TRUE(manager_.AddChildItem(item1->id(), item3));
 
   // Add one top-level item for extension 2.
   Extension* extension2 = AddExtension("2222");
-  ExtensionMenuItem* item4 = CreateTestItem(extension2);
+  MenuItem* item4 = CreateTestItem(extension2);
   ASSERT_TRUE(manager_.AddContextItem(extension2, item4));
 
   EXPECT_EQ(2u, manager_.MenuItems(extension1->id())->size());
@@ -434,12 +431,12 @@
 }
 
 // Tests that removing all items one-by-one doesn't leave an entry around.
-TEST_F(ExtensionMenuManagerTest, RemoveOneByOne) {
+TEST_F(MenuManagerTest, RemoveOneByOne) {
   // Add 2 test items.
   Extension* extension1 = AddExtension("1111");
-  ExtensionMenuItem* item1 = CreateTestItem(extension1);
-  ExtensionMenuItem* item2 = CreateTestItem(extension1);
-  ExtensionMenuItem* item3 = CreateTestItemWithID(extension1, "id3");
+  MenuItem* item1 = CreateTestItem(extension1);
+  MenuItem* item2 = CreateTestItem(extension1);
+  MenuItem* item3 = CreateTestItemWithID(extension1, "id3");
   ASSERT_TRUE(manager_.AddContextItem(extension1, item1));
   ASSERT_TRUE(manager_.AddContextItem(extension1, item2));
   ASSERT_TRUE(manager_.AddContextItem(extension1, item3));
@@ -453,7 +450,7 @@
   ASSERT_TRUE(manager_.context_items_.empty());
 }
 
-TEST_F(ExtensionMenuManagerTest, ExecuteCommand) {
+TEST_F(MenuManagerTest, ExecuteCommand) {
   MockTestingProfile profile;
 
   scoped_ptr<MockExtensionEventRouter> mock_event_router(
@@ -467,8 +464,8 @@
   params.is_editable = false;
 
   Extension* extension = AddExtension("test");
-  ExtensionMenuItem* item = CreateTestItem(extension);
-  ExtensionMenuItem::Id id = item->id();
+  MenuItem* item = CreateTestItem(extension);
+  MenuItem::Id id = item->id();
   ASSERT_TRUE(manager_.AddContextItem(extension, item));
 
   EXPECT_CALL(profile, GetExtensionEventRouter())
@@ -538,13 +535,13 @@
 }
 
 // Test that there is always only one radio item selected.
-TEST_F(ExtensionMenuManagerTest, SanitizeRadioButtons) {
+TEST_F(MenuManagerTest, SanitizeRadioButtons) {
   Extension* extension = AddExtension("test");
 
   // A single unchecked item should get checked
-  ExtensionMenuItem* item1 = CreateTestItem(extension);
+  MenuItem* item1 = CreateTestItem(extension);
 
-  item1->set_type(ExtensionMenuItem::RADIO);
+  item1->set_type(MenuItem::RADIO);
   item1->SetChecked(false);
   ASSERT_FALSE(item1->checked());
   manager_.AddContextItem(extension, item1);
@@ -552,8 +549,8 @@
 
   // In a run of two unchecked items, the first should get selected.
   item1->SetChecked(false);
-  ExtensionMenuItem* item2 = CreateTestItem(extension);
-  item2->set_type(ExtensionMenuItem::RADIO);
+  MenuItem* item2 = CreateTestItem(extension);
+  item2->set_type(MenuItem::RADIO);
   item2->SetChecked(false);
   ASSERT_FALSE(item1->checked());
   ASSERT_FALSE(item2->checked());
@@ -582,8 +579,8 @@
   // If a checked item is added to a run that already has a checked item,
   // then the new item should get checked.
   item1->SetChecked(true);
-  ExtensionMenuItem* new_item = CreateTestItem(extension);
-  new_item->set_type(ExtensionMenuItem::RADIO);
+  MenuItem* new_item = CreateTestItem(extension);
+  new_item->set_type(MenuItem::RADIO);
   new_item->SetChecked(true);
   ASSERT_TRUE(item1->checked());
   ASSERT_TRUE(new_item->checked());
@@ -591,13 +588,13 @@
   ASSERT_FALSE(item1->checked());
   ASSERT_TRUE(new_item->checked());
   // Make sure that children are checked as well.
-  ExtensionMenuItem* parent = CreateTestItem(extension);
+  MenuItem* parent = CreateTestItem(extension);
   manager_.AddContextItem(extension, parent);
-  ExtensionMenuItem* child1 = CreateTestItem(extension);
-  child1->set_type(ExtensionMenuItem::RADIO);
+  MenuItem* child1 = CreateTestItem(extension);
+  child1->set_type(MenuItem::RADIO);
   child1->SetChecked(false);
-  ExtensionMenuItem* child2 = CreateTestItem(extension);
-  child2->set_type(ExtensionMenuItem::RADIO);
+  MenuItem* child2 = CreateTestItem(extension);
+  child2->set_type(MenuItem::RADIO);
   child2->SetChecked(true);
   ASSERT_FALSE(child1->checked());
   ASSERT_TRUE(child2->checked());
@@ -627,3 +624,5 @@
   ASSERT_FALSE(new_item->checked());
   ASSERT_TRUE(child1->checked());
 }
+
+}  // namespace extensions