Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Unified Diff: net/proxy/single_threaded_proxy_resolver.cc

Issue 848006: Generalize the net module's LoadLog facility from a passive container, to an event stream (NetLog). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Split up RequestTracker into ConnectJobTracker+RequestTracker+RequestTrackerBase, address comments Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/proxy/single_threaded_proxy_resolver.h ('k') | net/proxy/single_threaded_proxy_resolver_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/proxy/single_threaded_proxy_resolver.cc
===================================================================
--- net/proxy/single_threaded_proxy_resolver.cc (revision 41560)
+++ net/proxy/single_threaded_proxy_resolver.cc (working copy)
@@ -5,7 +5,7 @@
#include "net/proxy/single_threaded_proxy_resolver.h"
#include "base/thread.h"
-#include "net/base/load_log.h"
+#include "net/base/net_log.h"
#include "net/base/net_errors.h"
#include "net/proxy/proxy_info.h"
@@ -110,11 +110,11 @@
const GURL& url,
ProxyInfo* results,
CompletionCallback* callback,
- LoadLog* load_log)
+ const BoundNetLog& net_log)
: coordinator_(coordinator),
callback_(callback),
results_(results),
- load_log_(load_log),
+ net_log_(net_log),
url_(url),
is_started_(false),
origin_loop_(MessageLoop::current()) {
@@ -125,7 +125,7 @@
void Start() {
is_started_ = true;
- size_t load_log_bound = load_log_ ? load_log_->max_num_entries() : 0;
+ size_t load_log_bound = 100;
coordinator_->thread()->message_loop()->PostTask(
FROM_HERE, NewRunnableMethod(this, &Job::DoQuery,
@@ -146,7 +146,7 @@
// Returns true if Cancel() has been called.
bool was_cancelled() const { return callback_ == NULL; }
- LoadLog* load_log() { return load_log_; }
+ BoundNetLog* net_log() { return &net_log_; }
private:
friend class base::RefCountedThreadSafe<SingleThreadedProxyResolver::Job>;
@@ -155,29 +155,23 @@
// Runs on the worker thread.
void DoQuery(ProxyResolver* resolver, size_t load_log_bound) {
- LoadLog* worker_log = NULL;
- if (load_log_bound > 0) {
- worker_log = new LoadLog(load_log_bound);
- worker_log->AddRef(); // Balanced in QueryComplete.
- }
+ scoped_ptr<CapturingNetLog> worker_log(new CapturingNetLog(load_log_bound));
+ BoundNetLog bound_worker_log(NetLog::Source(), worker_log.get());
int rv = resolver->GetProxyForURL(url_, &results_buf_, NULL, NULL,
- worker_log);
+ bound_worker_log);
DCHECK_NE(rv, ERR_IO_PENDING);
origin_loop_->PostTask(FROM_HERE,
- NewRunnableMethod(this, &Job::QueryComplete, rv, worker_log));
+ NewRunnableMethod(this, &Job::QueryComplete, rv, worker_log.release()));
}
// Runs the completion callback on the origin thread.
- void QueryComplete(int result_code, LoadLog* worker_log) {
+ void QueryComplete(int result_code, CapturingNetLog* worker_log) {
// Merge the load log that was generated on the worker thread, into the
// main log.
- if (worker_log) {
- if (load_log_)
- load_log_->Append(worker_log);
- worker_log->Release();
- }
+ CapturingBoundNetLog bound_worker_log(NetLog::Source(), worker_log);
+ bound_worker_log.AppendTo(net_log_);
// The Job may have been cancelled after it was started.
if (!was_cancelled()) {
@@ -197,7 +191,7 @@
SingleThreadedProxyResolver* coordinator_;
CompletionCallback* callback_;
ProxyInfo* results_;
- scoped_refptr<LoadLog> load_log_;
+ BoundNetLog net_log_;
GURL url_;
bool is_started_;
@@ -233,10 +227,10 @@
ProxyInfo* results,
CompletionCallback* callback,
RequestHandle* request,
- LoadLog* load_log) {
+ const BoundNetLog& net_log) {
DCHECK(callback);
- scoped_refptr<Job> job = new Job(this, url, results, callback, load_log);
+ scoped_refptr<Job> job = new Job(this, url, results, callback, net_log);
bool is_first_job = pending_jobs_.empty();
pending_jobs_.push_back(job); // Jobs can never finish synchronously.
@@ -246,9 +240,7 @@
job->Start();
} else {
// Otherwise the job will get started eventually by ProcessPendingJobs().
- LoadLog::BeginEvent(
- job->load_log(),
- LoadLog::TYPE_WAITING_FOR_SINGLE_PROXY_RESOLVER_THREAD);
+ job->net_log()->BeginEvent(NetLog::TYPE_WAITING_FOR_SINGLE_PROXY_RESOLVER_THREAD);
}
// Completion will be notified through |callback|, unless the caller cancels
@@ -329,9 +321,8 @@
if (job->is_started())
return;
- LoadLog::EndEvent(
- job->load_log(),
- LoadLog::TYPE_WAITING_FOR_SINGLE_PROXY_RESOLVER_THREAD);
+ job->net_log()->EndEvent(
+ NetLog::TYPE_WAITING_FOR_SINGLE_PROXY_RESOLVER_THREAD);
EnsureThreadStarted();
job->Start();
« no previous file with comments | « net/proxy/single_threaded_proxy_resolver.h ('k') | net/proxy/single_threaded_proxy_resolver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698