diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-14 21:52:36 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-14 21:52:36 +0000 |
commit | 26128342336043f70169489df27729ea97301972 (patch) | |
tree | 3c5cf414de217bbf8d6eac0f4e1ea1a45499663c | |
parent | 44603d54d54c8065abab89285404541f7288890e (diff) | |
download | chromium_src-26128342336043f70169489df27729ea97301972.zip chromium_src-26128342336043f70169489df27729ea97301972.tar.gz chromium_src-26128342336043f70169489df27729ea97301972.tar.bz2 |
Add the URLRequest's method and load flags to the NetLog.
BUG=37421
Review URL: http://codereview.chromium.org/2108003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47321 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/net/passive_log_collector.cc | 3 | ||||
-rw-r--r-- | chrome/browser/net/passive_log_collector_unittest.cc | 23 | ||||
-rw-r--r-- | net/base/net_log.h | 1 | ||||
-rw-r--r-- | net/base/net_log_event_type_list.h | 16 | ||||
-rw-r--r-- | net/net.gyp | 2 | ||||
-rw-r--r-- | net/url_request/url_request.cc | 4 | ||||
-rw-r--r-- | net/url_request/url_request_netlog_params.cc | 20 | ||||
-rw-r--r-- | net/url_request/url_request_netlog_params.h | 32 |
8 files changed, 80 insertions, 21 deletions
diff --git a/chrome/browser/net/passive_log_collector.cc b/chrome/browser/net/passive_log_collector.cc index 6bee50f..1192965 100644 --- a/chrome/browser/net/passive_log_collector.cc +++ b/chrome/browser/net/passive_log_collector.cc @@ -9,6 +9,7 @@ #include "base/string_util.h" #include "base/format_macros.h" #include "chrome/browser/chrome_thread.h" +#include "net/url_request/url_request_netlog_params.h" namespace { @@ -149,6 +150,8 @@ std::string PassiveLogCollector::RequestInfo::GetURL() const { if (entry.phase == net::NetLog::PHASE_BEGIN && entry.params) { switch (entry.type) { case net::NetLog::TYPE_URL_REQUEST_START: + return static_cast<URLRequestStartEventParameters*>( + entry.params.get())->url().possibly_invalid_spec(); case net::NetLog::TYPE_SOCKET_STREAM_CONNECT: return static_cast<net::NetLogStringParameter*>( entry.params.get())->value(); diff --git a/chrome/browser/net/passive_log_collector_unittest.cc b/chrome/browser/net/passive_log_collector_unittest.cc index 2839ded..e7e2f2e 100644 --- a/chrome/browser/net/passive_log_collector_unittest.cc +++ b/chrome/browser/net/passive_log_collector_unittest.cc @@ -7,6 +7,7 @@ #include "base/compiler_specific.h" #include "base/format_macros.h" #include "base/string_util.h" +#include "net/url_request/url_request_netlog_params.h" #include "testing/gtest/include/gtest/gtest.h" namespace { @@ -25,7 +26,7 @@ PassiveLogCollector::Entry MakeStartLogEntryWithURL(int source_id, base::TimeTicks(), NetLog::Source(kSourceType, source_id), NetLog::PHASE_BEGIN, - new net::NetLogStringParameter("url", url)); + new URLRequestStartEventParameters(GURL(url), "GET", 0)); } PassiveLogCollector::Entry MakeStartLogEntry(int source_id) { @@ -49,8 +50,8 @@ void AddStartURLRequestEntries(PassiveLogCollector* collector, uint32 id) { NetLog::PHASE_BEGIN, NULL); collector->OnAddEntry(NetLog::TYPE_URL_REQUEST_START, base::TimeTicks(), NetLog::Source(NetLog::SOURCE_URL_REQUEST, id), - NetLog::PHASE_BEGIN, new net::NetLogStringParameter( - "url", StringPrintf("http://req%d", id))); + NetLog::PHASE_BEGIN, new URLRequestStartEventParameters( + GURL(StringPrintf("http://req%d", id)), "GET", 0)); } void AddEndURLRequestEntries(PassiveLogCollector* collector, uint32 id) { @@ -82,11 +83,11 @@ TEST(RequestTrackerTest, BasicBounded) { RequestInfoList live_reqs = tracker.GetLiveRequests(); ASSERT_EQ(5u, live_reqs.size()); - EXPECT_EQ("http://req1", live_reqs[0].GetURL()); - EXPECT_EQ("http://req2", live_reqs[1].GetURL()); - EXPECT_EQ("http://req3", live_reqs[2].GetURL()); - EXPECT_EQ("http://req4", live_reqs[3].GetURL()); - EXPECT_EQ("http://req5", live_reqs[4].GetURL()); + EXPECT_EQ("http://req1/", live_reqs[0].GetURL()); + EXPECT_EQ("http://req2/", live_reqs[1].GetURL()); + EXPECT_EQ("http://req3/", live_reqs[2].GetURL()); + EXPECT_EQ("http://req4/", live_reqs[3].GetURL()); + EXPECT_EQ("http://req5/", live_reqs[4].GetURL()); tracker.OnAddEntry(MakeEndLogEntry(1)); tracker.OnAddEntry(MakeEndLogEntry(5)); @@ -97,8 +98,8 @@ TEST(RequestTrackerTest, BasicBounded) { live_reqs = tracker.GetLiveRequests(); ASSERT_EQ(2u, live_reqs.size()); - EXPECT_EQ("http://req2", live_reqs[0].GetURL()); - EXPECT_EQ("http://req4", live_reqs[1].GetURL()); + EXPECT_EQ("http://req2/", live_reqs[0].GetURL()); + EXPECT_EQ("http://req4/", live_reqs[1].GetURL()); } TEST(RequestTrackerTest, GraveyardBounded) { @@ -120,7 +121,7 @@ TEST(RequestTrackerTest, GraveyardBounded) { for (size_t i = 0; i < RequestTracker::kMaxGraveyardSize; ++i) { size_t req_number = i + RequestTracker::kMaxGraveyardSize; - std::string url = StringPrintf("http://req%" PRIuS, req_number); + std::string url = StringPrintf("http://req%" PRIuS "/", req_number); EXPECT_EQ(url, recent_reqs[i].GetURL()); } } diff --git a/net/base/net_log.h b/net/base/net_log.h index a2a8df2..9270d78 100644 --- a/net/base/net_log.h +++ b/net/base/net_log.h @@ -34,7 +34,6 @@ namespace net { // TODO(eroman): Make the DNS jobs emit into the NetLog. // TODO(eroman): Start a new Source each time URLRequest redirects // (simpler to reason about each as a separate entity). -// TODO(eroman): Add the URLRequest load flags to the start entry. class NetLog { public: diff --git a/net/base/net_log_event_type_list.h b/net/base/net_log_event_type_list.h index 86e6ffd..7a75f26 100644 --- a/net/base/net_log_event_type_list.h +++ b/net/base/net_log_event_type_list.h @@ -257,7 +257,9 @@ EVENT_TYPE(SOCKET_POOL_SOCKET_ID) // // For the BEGIN phase, the following parameters are attached: // { -// "url": <String of URL being loaded> +// "url": <String of URL being loaded>, +// "method": <The method ("POST" or "GET" or "HEAD" etc..)>, +// "load_flags": <Numeric value of the combined load flags> // } // // For the END phase, if there was an error, the following parameters are @@ -305,7 +307,7 @@ EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST) // This event is sent for a HTTP request. // The following parameters are attached: // { -// "line": <The HTTP request line, CRLF terminated> +// "line": <The HTTP request line, CRLF terminated>, // "headers": <The list of header:value pairs> // } EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST_HEADERS) @@ -313,7 +315,7 @@ EVENT_TYPE(HTTP_TRANSACTION_SEND_REQUEST_HEADERS) // This event is sent for a tunnel request. // The following parameters are attached: // { -// "line": <The HTTP request line, CRLF terminated> +// "line": <The HTTP request line, CRLF terminated>, // "headers": <The list of header:value pairs> // } EVENT_TYPE(HTTP_TRANSACTION_SEND_TUNNEL_HEADERS) @@ -370,8 +372,8 @@ EVENT_TYPE(SPDY_TRANSACTION_READ_BODY) // This event is sent for a SPDY SYN_STREAM. // The following parameters are attached: // { -// "flags": <The control frame flags> -// "headers": <The list of header:value pairs> +// "flags": <The control frame flags>, +// "headers": <The list of header:value pairs>, // "id": <The stream id> // } EVENT_TYPE(SPDY_STREAM_SYN_STREAM) @@ -385,8 +387,8 @@ EVENT_TYPE(SPDY_STREAM_SEND_BODY) // This event is sent for a SPDY SYN_REPLY. // The following parameters are attached: // { -// "flags": <The control frame flags> -// "headers": <The list of header:value pairs> +// "flags": <The control frame flags>, +// "headers": <The list of header:value pairs>, // "id": <The stream id> // } EVENT_TYPE(SPDY_STREAM_SYN_REPLY) diff --git a/net/net.gyp b/net/net.gyp index 9fb28ce..d07ca84 100644 --- a/net/net.gyp +++ b/net/net.gyp @@ -512,6 +512,8 @@ 'url_request/url_request_job_metrics.h', 'url_request/url_request_job_tracker.cc', 'url_request/url_request_job_tracker.h', + 'url_request/url_request_netlog_params.cc', + 'url_request/url_request_netlog_params.h', 'url_request/url_request_redirect_job.cc', 'url_request/url_request_redirect_job.h', 'url_request/url_request_simple_job.cc', diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index 701466e9a..81144af 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -18,6 +18,7 @@ #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job.h" #include "net/url_request/url_request_job_manager.h" +#include "net/url_request/url_request_netlog_params.h" using base::Time; using net::UploadData; @@ -267,8 +268,7 @@ void URLRequest::StartJob(URLRequestJob* job) { net_log_.BeginEvent( net::NetLog::TYPE_URL_REQUEST_START, - new net::NetLogStringParameter( - "url", original_url().possibly_invalid_spec())); + new URLRequestStartEventParameters(url_, method_, load_flags_)); 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 new file mode 100644 index 0000000..d432e79 --- /dev/null +++ b/net/url_request/url_request_netlog_params.cc @@ -0,0 +1,20 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "net/url_request/url_request_netlog_params.h" + +#include "base/values.h" + +URLRequestStartEventParameters::URLRequestStartEventParameters( + const GURL& url, const std::string& method, int load_flags) + : url_(url), method_(method), load_flags_(load_flags) {} + +Value* URLRequestStartEventParameters::ToValue() const { + DictionaryValue* dict = new DictionaryValue(); + dict->SetString(L"url", url_.possibly_invalid_spec()); + dict->SetString(L"method", method_); + dict->SetInteger(L"load_flags", load_flags_); + return dict; +} + diff --git a/net/url_request/url_request_netlog_params.h b/net/url_request/url_request_netlog_params.h new file mode 100644 index 0000000..45c9791 --- /dev/null +++ b/net/url_request/url_request_netlog_params.h @@ -0,0 +1,32 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_URL_REQUEST_URL_REQUEST_NETLOG_PARAMS_H_ +#define NET_URL_REQUEST_URL_REQUEST_NETLOG_PARAMS_H_ + +#include <string> + +#include "googleurl/src/gurl.h" +#include "net/base/net_log.h" + +// Holds the parameters to emit to the NetLog when starting a URLRequest. +class URLRequestStartEventParameters : public net::NetLog::EventParameters { + public: + URLRequestStartEventParameters(const GURL& url, + const std::string& method, + int load_flags); + + const GURL& url() const { + return url_; + } + + virtual Value* ToValue() const; + + private: + const GURL url_; + const std::string method_; + const int load_flags_; +}; + +#endif // NET_URL_REQUEST_URL_REQUEST_NETLOG_PARAMS_H_ |