NetLogEventParameter to Callback refactoring 1,
Get rid of all uses of NetLogEventParameters in net/base,
with the exception of net_log itself, of course.

[email protected]
BUG=126243

Review URL: https://chromiumcodereview.appspot.com/10539094

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141666 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/base/net_log.cc b/net/base/net_log.cc
index 4f18e46c..703fece 100644
--- a/net/base/net_log.cc
+++ b/net/base/net_log.cc
@@ -45,16 +45,22 @@
   return event_params;
 }
 
-Value* SingleIntegerCallback(const char* name,
+Value* NetLogIntegerCallback(const char* name,
                              int value,
                              NetLog::LogLevel /* log_level */) {
-  if (!value)
-    return NULL;
   DictionaryValue* event_params = new DictionaryValue();
   event_params->SetInteger(name, value);
   return event_params;
 }
 
+Value* NetLogStringCallback(const char* name,
+                            const std::string* value,
+                            NetLog::LogLevel /* log_level */) {
+  DictionaryValue* event_params = new DictionaryValue();
+  event_params->SetString(name, *value);
+  return event_params;
+}
+
 }  // namespace
 
 Value* NetLog::Source::ToValue() const {
@@ -263,7 +269,14 @@
 // static
 NetLog::ParametersCallback NetLog::IntegerCallback(const char* name,
                                                    int value) {
-  return base::Bind(&SingleIntegerCallback, name, value);
+  return base::Bind(&NetLogIntegerCallback, name, value);
+}
+
+// static
+NetLog::ParametersCallback NetLog::StringCallback(const char* name,
+                                                  const std::string* value) {
+  DCHECK(value);
+  return base::Bind(&NetLogStringCallback, name, value);
 }
 
 void NetLog::OnAddObserver(ThreadSafeObserver* observer, LogLevel log_level) {
@@ -376,7 +389,11 @@
 void BoundNetLog::EndEventWithNetErrorCode(NetLog::EventType event_type,
                                            int net_error) const {
   DCHECK_NE(ERR_IO_PENDING, net_error);
-  EndEvent(event_type, NetLog::IntegerCallback("net_error", net_error));
+  if (net_error >= 0) {
+    EndEvent(event_type);
+  } else {
+    EndEvent(event_type, NetLog::IntegerCallback("net_error", net_error));
+  }
 }
 
 void BoundNetLog::AddByteTransferEvent(NetLog::EventType event_type,