diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-30 22:31:51 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-30 22:31:51 +0000 |
commit | 4875ba17099e50f482ec826fc38e7922096b7be2 (patch) | |
tree | 7bb5ec4498187f7c9673ada84c54aca1c0cdd6e5 /net/url_request/url_request.cc | |
parent | b04f6c6aea3ffd3a03368b67abacc1f36d2f8ce8 (diff) | |
download | chromium_src-4875ba17099e50f482ec826fc38e7922096b7be2.zip chromium_src-4875ba17099e50f482ec826fc38e7922096b7be2.tar.gz chromium_src-4875ba17099e50f482ec826fc38e7922096b7be2.tar.bz2 |
Add request_id to HttpRequestInfo and pass it to the NetworkDelegate for events.
This lets us look up the request associated with an http transaction and
send event details for the webRequest.onBeforeRequest extension event.
I also hooked up the onBeforeRequest event for HTTP network and cache transactions so that they are separate from other requests. This lets us have the request header information.
BUG=60101
TEST=no
Review URL: http://codereview.chromium.org/6698009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79905 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request/url_request.cc')
-rw-r--r-- | net/url_request/url_request.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index 17e23a5..5c437c2 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -44,7 +44,8 @@ void StripPostSpecificHeaders(HttpRequestHeaders* headers) { } // This counter keeps track of the identifiers used for URL requests so far. -uint64 g_next_url_request_identifier = 0; +// 0 is reserved to represent an invalid ID. +uint64 g_next_url_request_identifier = 1; // This lock protects g_next_url_request_identifier. base::Lock g_next_url_request_identifier_lock; @@ -130,6 +131,9 @@ URLRequest::URLRequest(const GURL& url, Delegate* delegate) } URLRequest::~URLRequest() { + if (context_ && context_->network_delegate()) + context_->network_delegate()->NotifyURLRequestDestroyed(this); + if (before_request_callback_) before_request_callback_->Cancel(); @@ -362,7 +366,7 @@ void URLRequest::Start() { before_request_callback_ = new CancelableCompletionCallback<URLRequest>( this, &URLRequest::BeforeRequestComplete); if (context_->network_delegate()->NotifyBeforeURLRequest( - this, before_request_callback_)) { + this, before_request_callback_) == net::ERR_IO_PENDING) { before_request_callback_->AddRef(); // balanced in BeforeRequestComplete net_log_.BeginEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_EXTENSION, NULL); return; // paused |