Add option of string item IDs (given at create() time) to contextMenus API.

This will be (but is not yet) required for event pages.

BUG=123366
TEST=automated tests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137323 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_menu_manager.h b/chrome/browser/extensions/extension_menu_manager.h
index 299fa05..30a8b35 100644
--- a/chrome/browser/extensions/extension_menu_manager.h
+++ b/chrome/browser/extensions/extension_menu_manager.h
@@ -40,7 +40,10 @@
   // An Id uniquely identifies a context menu item registered by an extension.
   struct Id {
     Id();
-    Id(Profile* profile, const std::string& extension_id, int uid);
+    // Since the unique ID (uid or string_uid) is parsed from API arguments,
+    // the normal usage is to set the uid or string_uid immediately after
+    // construction.
+    Id(Profile* profile, const std::string& extension_id);
     ~Id();
 
     bool operator==(const Id& other) const;
@@ -49,7 +52,9 @@
 
     Profile* profile;
     std::string extension_id;
+    // Only one of uid or string_uid will be defined.
     int uid;
+    std::string string_uid;
   };
 
   // For context menus, these are the contexts where an item can appear.