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,