diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-10 20:20:32 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-10 20:20:32 +0000 |
commit | 3abacd60fa00bc53d4cf3d28352e855d10533ac0 (patch) | |
tree | 444933dd014250163b78713a4e9d7a9ac8d4356b /net/url_request | |
parent | 8b2d262447607c79fd3b18efa5eb1e5c2efa4cad (diff) | |
download | chromium_src-3abacd60fa00bc53d4cf3d28352e855d10533ac0.zip chromium_src-3abacd60fa00bc53d4cf3d28352e855d10533ac0.tar.gz chromium_src-3abacd60fa00bc53d4cf3d28352e855d10533ac0.tar.bz2 |
Make NetLog take in callbacks that return Values rather
than refcounted objects. Avoids the need to create
classes and copy data. Also no longer get time whenever
an event is logged.
BUG=126243
Review URL: https://chromiumcodereview.appspot.com/10399083
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141377 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request')
-rw-r--r-- | net/url_request/url_request.cc | 4 | ||||
-rw-r--r-- | net/url_request/url_request_netlog_params.cc | 37 | ||||
-rw-r--r-- | net/url_request/url_request_netlog_params.h | 50 |
3 files changed, 41 insertions, 50 deletions
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index fef10fb..efc83c9 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -445,8 +445,8 @@ void URLRequest::StartJob(URLRequestJob* job) { net_log_.BeginEvent( NetLog::TYPE_URL_REQUEST_START_JOB, - make_scoped_refptr(new URLRequestStartEventParameters( - url(), method_, load_flags_, priority_))); + base::Bind(&NetLogURLRequestStartCallback, + &url(), &method_, load_flags_, priority_)); job_ = job; job_->SetExtraRequestHeaders(extra_request_headers_); diff --git a/net/url_request/url_request_netlog_params.cc b/net/url_request/url_request_netlog_params.cc index 29143ba..67d44c3 100644 --- a/net/url_request/url_request_netlog_params.cc +++ b/net/url_request/url_request_netlog_params.cc @@ -5,29 +5,32 @@ #include "net/url_request/url_request_netlog_params.h" #include "base/values.h" +#include "googleurl/src/gurl.h" namespace net { -URLRequestStartEventParameters::URLRequestStartEventParameters( - const GURL& url, - const std::string& method, - int load_flags, - RequestPriority priority) - : url_(url), - method_(method), - load_flags_(load_flags), - priority_(priority) { -} - -Value* URLRequestStartEventParameters::ToValue() const { +Value* NetLogURLRequestStartCallback(const GURL* url, + const std::string* method, + int load_flags, + RequestPriority priority, + NetLog::LogLevel /* log_level */) { DictionaryValue* dict = new DictionaryValue(); - dict->SetString("url", url_.possibly_invalid_spec()); - dict->SetString("method", method_); - dict->SetInteger("load_flags", load_flags_); - dict->SetInteger("priority", static_cast<int>(priority_)); + dict->SetString("url", url->possibly_invalid_spec()); + dict->SetString("method", *method); + dict->SetInteger("load_flags", load_flags); + dict->SetInteger("priority", static_cast<int>(priority)); return dict; } -URLRequestStartEventParameters::~URLRequestStartEventParameters() {} +bool StartEventLoadFlagsFromEventParams(const Value* event_params, + int* load_flags) { + const DictionaryValue* dict; + if (!event_params->GetAsDictionary(&dict) || + !dict->GetInteger("load_flags", load_flags)) { + *load_flags = 0; + return false; + } + return true; +} } // namespace net diff --git a/net/url_request/url_request_netlog_params.h b/net/url_request/url_request_netlog_params.h index d084f24..eb84f7c 100644 --- a/net/url_request/url_request_netlog_params.h +++ b/net/url_request/url_request_netlog_params.h @@ -8,44 +8,32 @@ #include <string> -#include "base/basictypes.h" -#include "googleurl/src/gurl.h" #include "net/base/net_export.h" #include "net/base/net_log.h" #include "net/base/request_priority.h" -namespace net { - -// Holds the parameters to emit to the NetLog when starting a URLRequest. -class NET_EXPORT URLRequestStartEventParameters - : public NetLog::EventParameters { - public: - URLRequestStartEventParameters(const GURL& url, - const std::string& method, - int load_flags, - RequestPriority priority); - - const GURL& url() const { - return url_; - } +class GURL; - int load_flags() const { - return load_flags_; - } +namespace base { +class Value; +} - virtual base::Value* ToValue() const OVERRIDE; - - protected: - virtual ~URLRequestStartEventParameters(); - - private: - const GURL url_; - const std::string method_; - const int load_flags_; - const RequestPriority priority_; +namespace net { - DISALLOW_COPY_AND_ASSIGN(URLRequestStartEventParameters); -}; +// Returns a Value containing NetLog parameters for starting a URLRequest. +NET_EXPORT base::Value* NetLogURLRequestStartCallback( + const GURL* url, + const std::string* method, + int load_flags, + RequestPriority priority, + NetLog::LogLevel /* log_level */); + +// Attempts to extract the load flags from a Value created by the above +// function. On success, sets |load_flags| accordingly and returns true. +// On failure, sets |load_flags| to 0. +NET_EXPORT bool StartEventLoadFlagsFromEventParams( + const base::Value* event_params, + int* load_flags); } // namespace net |