Index: chrome/browser/extensions/activity_log.cc |
diff --git a/chrome/browser/extensions/activity_log.cc b/chrome/browser/extensions/activity_log.cc |
index dcf8e8fdd5a54c209d08ffb0492afe6d4533c2bc..8641f619cb84d7627727b133545f2ba42283ab44 100644 |
--- a/chrome/browser/extensions/activity_log.cc |
+++ b/chrome/browser/extensions/activity_log.cc |
@@ -357,6 +357,48 @@ void ActivityLog::LogDOMAction(const Extension* extension, |
DOMAction::MODIFIED); |
} |
+void ActivityLog::LogWebRequestAction(const Extension* extension, |
+ const GURL& url, |
+ const std::string& api_call, |
+ scoped_ptr<DictionaryValue> details, |
+ const std::string& extra) { |
+ string16 null_title; |
+ if (!IsLogEnabled()) return; |
+ |
+ if (!log_arguments_) { |
+ DictionaryValue::Iterator details_iterator(*details); |
+ while (!details_iterator.IsAtEnd()) { |
+ details->SetBoolean(details_iterator.key(), true); |
+ details_iterator.Advance(); |
+ } |
+ } |
+ std::string details_string; |
+ JSONStringValueSerializer serializer(&details_string); |
+ serializer.SerializeAndOmitBinaryValues(*details); |
+ |
+ scoped_refptr<DOMAction> action = new DOMAction( |
+ extension->id(), |
+ base::Time::Now(), |
+ DOMAction::WEBREQUEST, |
+ url, |
+ null_title, |
+ api_call, |
+ details_string, |
+ extra); |
+ ScheduleAndForget(&ActivityDatabase::RecordAction, action); |
+ |
+ // Display the action. |
+ ObserverMap::const_iterator iter = observers_.find(extension); |
+ if (iter != observers_.end()) { |
+ iter->second->Notify(&Observer::OnExtensionActivity, |
+ extension, |
+ ActivityLog::ACTIVITY_CONTENT_SCRIPT, |
+ action->PrettyPrintForDebug()); |
+ } |
+ if (log_activity_to_stdout_) |
+ LOG(INFO) << action->PrettyPrintForDebug(); |
+} |
+ |
void ActivityLog::GetActions( |
const std::string& extension_id, |
const int day, |