Chromium Code Reviews| Index: chrome/browser/extensions/activity_log.cc |
| diff --git a/chrome/browser/extensions/activity_log.cc b/chrome/browser/extensions/activity_log.cc |
| index 1814ef5caa82fd787ac4ce09b2e2a4a971322865..50f61f67fc7455758e8ea343b9fd846b11590ee3 100644 |
| --- a/chrome/browser/extensions/activity_log.cc |
| +++ b/chrome/browser/extensions/activity_log.cc |
| @@ -148,6 +148,17 @@ ActivityLog::ActivityLog(Profile* profile) { |
| log_activity_to_ui_ = CommandLine::ForCurrentProcess()-> |
| HasSwitch(switches::kEnableExtensionActivityUI); |
| + // enable-extension-activity-log-testing |
| + // Currently, this just controls whether arguments are collected. In the |
| + // future, it may also control other optional activity log features. |
| + log_arguments_ = CommandLine::ForCurrentProcess()-> |
| + HasSwitch(switches::kEnableExtensionActivityLogTesting); |
| + if (!log_arguments_) { |
| + for (int i = 0; i < APIAction::kSizeAlwaysLog; i++) { |
| + arg_whitelist_api_.insert(std::string(APIAction::kAlwaysLog[i])); |
| + } |
| + } |
| + |
| // If the database cannot be initialized for some reason, we keep |
| // chugging along but nothing will get recorded. If the UI is |
| // available, things will still get sent to the UI even if nothing |
| @@ -233,7 +244,20 @@ void ActivityLog::LogAPIAction(const Extension* extension, |
| const ListValue* args, |
| const std::string& extra) { |
| if (!IsLogEnabled()) return; |
| - LogAPIActionInternal(extension, api_call, args, extra, APIAction::CALL); |
| + if (log_arguments_ || |
|
Matt Perry
2013/03/19 01:25:06
nit: more compact:
bool log_args = ...;
LogAPIAc
|
| + arg_whitelist_api_.find(api_call) != arg_whitelist_api_.end()) { |
| + LogAPIActionInternal(extension, |
| + api_call, |
| + args, |
| + extra, |
| + APIAction::CALL); |
| + } else { |
| + LogAPIActionInternal(extension, |
| + api_call, |
| + new ListValue(), |
| + extra, |
| + APIAction::CALL); |
| + } |
| } |
| // A wrapper around LogAPIActionInternal, but we know it's actually an event |
| @@ -245,11 +269,18 @@ void ActivityLog::LogEventAction(const Extension* extension, |
| const ListValue* args, |
| const std::string& extra) { |
| if (!IsLogEnabled()) return; |
| - LogAPIActionInternal(extension, |
| - api_call, |
| - args, |
| - extra, |
| - APIAction::EVENT_CALLBACK); |
| + if (log_arguments_) |
| + LogAPIActionInternal(extension, |
| + api_call, |
| + args, |
| + extra, |
| + APIAction::EVENT_CALLBACK); |
| + else |
| + LogAPIActionInternal(extension, |
| + api_call, |
| + new ListValue(), |
| + extra, |
| + APIAction::EVENT_CALLBACK); |
| } |
| void ActivityLog::LogBlockedAction(const Extension* extension, |