| Index: chrome/browser/renderer_host/chrome_render_message_filter.cc
 | 
| diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc
 | 
| index 0fbb8b021370f8b7fe92a3c4f9e395d193f85a32..58a0e33921c61bca8448ca5d1f1f657cf12d8688 100644
 | 
| --- a/chrome/browser/renderer_host/chrome_render_message_filter.cc
 | 
| +++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc
 | 
| @@ -57,8 +57,14 @@ using WebKit::WebSecurityOrigin;
 | 
|  
 | 
|  namespace {
 | 
|  
 | 
| +enum ActivityLogCallType {
 | 
| +  kApiCall,
 | 
| +  kEvent
 | 
| +};
 | 
| +
 | 
|  void AddAPIActionToExtensionActivityLog(
 | 
|      Profile* profile,
 | 
| +    const ActivityLogCallType call_type,
 | 
|      const extensions::Extension* extension,
 | 
|      const std::string& api_call,
 | 
|      scoped_ptr<ListValue> args,
 | 
| @@ -70,6 +76,7 @@ void AddAPIActionToExtensionActivityLog(
 | 
|                              FROM_HERE,
 | 
|                              base::Bind(&AddAPIActionToExtensionActivityLog,
 | 
|                                         profile,
 | 
| +                                       call_type,
 | 
|                                         extension,
 | 
|                                         api_call,
 | 
|                                         base::Passed(&args),
 | 
| @@ -77,8 +84,12 @@ void AddAPIActionToExtensionActivityLog(
 | 
|    } else {
 | 
|      extensions::ActivityLog* activity_log =
 | 
|          extensions::ActivityLog::GetInstance(profile);
 | 
| -    if (activity_log && activity_log->IsLogEnabled())
 | 
| -      activity_log->LogAPIAction(extension, api_call, args.get(), extra);
 | 
| +    if (activity_log && activity_log->IsLogEnabled()) {
 | 
| +      if (call_type == kApiCall)
 | 
| +        activity_log->LogAPIAction(extension, api_call, args.get(), extra);
 | 
| +      else if (call_type == kEvent)
 | 
| +        activity_log->LogEventAction(extension, api_call, args.get(), extra);
 | 
| +    }
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -182,6 +193,8 @@ bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message,
 | 
|                          OnAddAPIActionToExtensionActivityLog);
 | 
|      IPC_MESSAGE_HANDLER(ExtensionHostMsg_AddDOMActionToActivityLog,
 | 
|                          OnAddDOMActionToExtensionActivityLog);
 | 
| +    IPC_MESSAGE_HANDLER(ExtensionHostMsg_AddEventToActivityLog,
 | 
| +                        OnAddEventToExtensionActivityLog);
 | 
|      IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowDatabase, OnAllowDatabase)
 | 
|      IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowDOMStorage, OnAllowDOMStorage)
 | 
|      IPC_MESSAGE_HANDLER(ChromeViewHostMsg_AllowFileSystem, OnAllowFileSystem)
 | 
| @@ -591,13 +604,13 @@ void ChromeRenderMessageFilter::OnExtensionResumeRequests(int route_id) {
 | 
|  
 | 
|  void ChromeRenderMessageFilter::OnAddAPIActionToExtensionActivityLog(
 | 
|      const std::string& extension_id,
 | 
| -    const ExtensionHostMsg_APIAction_Params& params) {
 | 
| +    const ExtensionHostMsg_APIActionOrEvent_Params& params) {
 | 
|    const extensions::Extension* extension =
 | 
|        extension_info_map_->extensions().GetByID(extension_id);
 | 
|    scoped_ptr<ListValue> args(params.arguments.DeepCopy());
 | 
|    // The activity is recorded as an API action in the extension
 | 
|    // activity log.
 | 
| -  AddAPIActionToExtensionActivityLog(profile_, extension,
 | 
| +  AddAPIActionToExtensionActivityLog(profile_, kApiCall, extension,
 | 
|                                       params.api_call, args.Pass(),
 | 
|                                       params.extra);
 | 
|  }
 | 
| @@ -616,6 +629,19 @@ void ChromeRenderMessageFilter::OnAddDOMActionToExtensionActivityLog(
 | 
|                                       params.extra);
 | 
|  }
 | 
|  
 | 
| +void ChromeRenderMessageFilter::OnAddEventToExtensionActivityLog(
 | 
| +    const std::string& extension_id,
 | 
| +    const ExtensionHostMsg_APIActionOrEvent_Params& params) {
 | 
| +  const extensions::Extension* extension =
 | 
| +      extension_info_map_->extensions().GetByID(extension_id);
 | 
| +  scoped_ptr<ListValue> args(params.arguments.DeepCopy());
 | 
| +  // The activity is recorded as an event in the extension
 | 
| +  // activity log.
 | 
| +  AddAPIActionToExtensionActivityLog(profile_, kEvent, extension,
 | 
| +                                     params.api_call, args.Pass(),
 | 
| +                                     params.extra);
 | 
| +}
 | 
| +
 | 
|  void ChromeRenderMessageFilter::OnAllowDatabase(int render_view_id,
 | 
|                                                  const GURL& origin_url,
 | 
|                                                  const GURL& top_origin_url,
 | 
| 
 |