Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3796)

Unified Diff: chrome/browser/extensions/activity_log.cc

Issue 12918020: Removing arguments from the activity log (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed memory leak Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/activity_log.h ('k') | chrome/browser/extensions/activity_log_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..34f820b1f3abf2feb0a83a5c2ad3ee3aee4490c5 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
@@ -230,10 +241,17 @@ void ActivityLog::LogAPIActionInternal(const Extension* extension,
// A wrapper around LogAPIActionInternal, but we know it's an API call.
void ActivityLog::LogAPIAction(const Extension* extension,
const std::string& api_call,
- const ListValue* args,
+ ListValue* args,
const std::string& extra) {
if (!IsLogEnabled()) return;
- LogAPIActionInternal(extension, api_call, args, extra, APIAction::CALL);
+ if (!log_arguments_ &&
+ arg_whitelist_api_.find(api_call) == arg_whitelist_api_.end())
+ args->Clear();
+ LogAPIActionInternal(extension,
+ api_call,
+ args,
+ extra,
+ APIAction::CALL);
}
// A wrapper around LogAPIActionInternal, but we know it's actually an event
@@ -242,9 +260,12 @@ void ActivityLog::LogAPIAction(const Extension* extension,
// handle them. Right now they're being handled almost the same.
void ActivityLog::LogEventAction(const Extension* extension,
const std::string& api_call,
- const ListValue* args,
+ ListValue* args,
const std::string& extra) {
if (!IsLogEnabled()) return;
+ if (!log_arguments_ &&
+ arg_whitelist_api_.find(api_call) == arg_whitelist_api_.end())
+ args->Clear();
LogAPIActionInternal(extension,
api_call,
args,
@@ -254,10 +275,13 @@ void ActivityLog::LogEventAction(const Extension* extension,
void ActivityLog::LogBlockedAction(const Extension* extension,
const std::string& blocked_call,
- const ListValue* args,
+ ListValue* args,
const char* reason,
const std::string& extra) {
if (!IsLogEnabled()) return;
+ if (!log_arguments_ &&
+ arg_whitelist_api_.find(blocked_call) == arg_whitelist_api_.end())
+ args->Clear();
scoped_refptr<BlockedAction> action = new BlockedAction(extension->id(),
base::Time::Now(),
blocked_call,
« no previous file with comments | « chrome/browser/extensions/activity_log.h ('k') | chrome/browser/extensions/activity_log_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698