| Index: chrome/common/child_process_info.h | 
| diff --git a/chrome/common/child_process_info.h b/chrome/common/child_process_info.h | 
| index 651978f6525eeedc9744bcf3cd193b0e70707bc9..de120e74ad73ab997eaa0efc2dddb756f75814fb 100644 | 
| --- a/chrome/common/child_process_info.h | 
| +++ b/chrome/common/child_process_info.h | 
| @@ -32,6 +32,19 @@ class ChildProcessInfo { | 
| PPAPI_PLUGIN_PROCESS | 
| }; | 
|  | 
| +  // NOTE: Do not remove or reorder the elements in this enum, and only add new | 
| +  // items at the end. We depend on these specific values in a histogram. | 
| +  enum RendererProcessType { | 
| +    RENDERER_UNKNOWN = 0, | 
| +    RENDERER_NORMAL, | 
| +    RENDERER_CHROME,        // DOMUI (chrome:// URL) | 
| +    RENDERER_EXTENSION,     // chrome-extension:// | 
| +    RENDERER_DEVTOOLS,      // Web inspector | 
| +    RENDERER_INTERSTITIAL,  // malware/phishing interstitial | 
| +    RENDERER_NOTIFICATION,  // HTML notification bubble | 
| +    RENDERER_BACKGROUND_APP // hosted app background page | 
| +  }; | 
| + | 
| ChildProcessInfo(const ChildProcessInfo& original); | 
| virtual ~ChildProcessInfo(); | 
|  | 
| @@ -40,6 +53,10 @@ class ChildProcessInfo { | 
| // Returns the type of the process. | 
| ProcessType type() const { return type_; } | 
|  | 
| +  // Returns the renderer subtype of this process. | 
| +  // Only valid if the type() is RENDER_PROCESS. | 
| +  RendererProcessType renderer_type() const { return renderer_type_; } | 
| + | 
| // Returns the name of the process.  i.e. for plugins it might be Flash, while | 
| // for workers it might be the domain that it's from. | 
| std::wstring name() const { return name_; } | 
| @@ -60,7 +77,10 @@ class ChildProcessInfo { | 
|  | 
| // Returns an English name of the process type, should only be used for non | 
| // user-visible strings, or debugging pages like about:memory. | 
| +  static std::string GetFullTypeNameInEnglish(ProcessType type, | 
| +                                              RendererProcessType rtype); | 
| static std::string GetTypeNameInEnglish(ProcessType type); | 
| +  static std::string GetRendererTypeNameInEnglish(RendererProcessType type); | 
|  | 
| // Returns a localized title for the child process.  For example, a plugin | 
| // process would be "Plug-in: Flash" when name is "Flash". | 
| @@ -99,12 +119,14 @@ class ChildProcessInfo { | 
| ChildProcessInfo(ProcessType type, int id); | 
|  | 
| void set_type(ProcessType type) { type_ = type; } | 
| +  void set_renderer_type(RendererProcessType type) { renderer_type_ = type; } | 
| void set_name(const std::wstring& name) { name_ = name; } | 
| void set_version(const std::wstring& ver) { version_ = ver; } | 
| void set_handle(base::ProcessHandle handle) { process_.set_handle(handle); } | 
|  | 
| private: | 
| ProcessType type_; | 
| +  RendererProcessType renderer_type_; | 
| std::wstring name_; | 
| std::wstring version_; | 
| int id_; | 
|  |